@sapudex/web-components 2.31.0 → 2.32.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/cypress/specs/Breadcrumbs.cy.tsx +26 -0
  2. package/cypress/specs/MediaPlayer.cy.tsx +209 -0
  3. package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +74 -21
  4. package/cypress/specs/SecondaryNavigationMobile.cy.tsx +58 -1
  5. package/cypress/specs/SelectBox.cy.tsx +35 -0
  6. package/cypress/specs/StepInput.cy.tsx +507 -0
  7. package/cypress/specs/TabNavigation.cy.tsx +603 -39
  8. package/cypress/support/component-imports.instrumented.ts +4 -0
  9. package/cypress/support/component-imports.src.ts +7 -3
  10. package/dist/Breadcrumbs.d.ts +5 -0
  11. package/dist/Breadcrumbs.js +8 -1
  12. package/dist/Breadcrumbs.js.map +1 -1
  13. package/dist/HeroBanner.d.ts +0 -3
  14. package/dist/HeroBanner.js +0 -5
  15. package/dist/HeroBanner.js.map +1 -1
  16. package/dist/HeroBannerTemplate.d.ts +2 -0
  17. package/dist/HeroBannerTemplate.js +6 -1
  18. package/dist/HeroBannerTemplate.js.map +1 -1
  19. package/dist/MastheadItem.js +5 -4
  20. package/dist/MastheadItem.js.map +1 -1
  21. package/dist/MediaPlayer.d.ts +15 -0
  22. package/dist/MediaPlayer.js +28 -0
  23. package/dist/MediaPlayer.js.map +1 -1
  24. package/dist/SecondaryNavigation.d.ts +12 -2
  25. package/dist/SecondaryNavigation.js +59 -8
  26. package/dist/SecondaryNavigation.js.map +1 -1
  27. package/dist/SecondaryNavigationItem.d.ts +0 -1
  28. package/dist/SecondaryNavigationItem.js +0 -4
  29. package/dist/SecondaryNavigationItem.js.map +1 -1
  30. package/dist/SecondaryNavigationSubItem.js +1 -1
  31. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  32. package/dist/SelectBase.js +2 -1
  33. package/dist/SelectBase.js.map +1 -1
  34. package/dist/StepInput.d.ts +3 -0
  35. package/dist/StepInput.js +17 -0
  36. package/dist/StepInput.js.map +1 -1
  37. package/dist/StepInputTemplate.js +1 -1
  38. package/dist/StepInputTemplate.js.map +1 -1
  39. package/dist/Tab.d.ts +1 -1
  40. package/dist/Tab.js +3 -3
  41. package/dist/Tab.js.map +1 -1
  42. package/dist/TabNavigation.d.ts +64 -0
  43. package/dist/TabNavigation.js +124 -1
  44. package/dist/TabNavigation.js.map +1 -1
  45. package/dist/assets/{InputSuggestions-i2kFpCfC.js → InputSuggestions-DeXhpK0F.js} +1 -1
  46. package/dist/assets/{ListItemStandardExpandableTextTemplate-C1ceDaxu.js → ListItemStandardExpandableTextTemplate-jMEdrC07.js} +1 -1
  47. package/dist/assets/{bundle.esm-DQ3cxywT.js → bundle.esm-CwJAt93x.js} +219 -219
  48. package/dist/assets/messagebundle_en-iNqRB1VZ.js +1 -0
  49. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  50. package/dist/css/themes/FilterMenu.css +1 -1
  51. package/dist/css/themes/HeroBanner.css +1 -1
  52. package/dist/css/themes/Modal.css +1 -1
  53. package/dist/css/themes/RatingIndicator.css +1 -1
  54. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  55. package/dist/css/themes/Slider.css +1 -1
  56. package/dist/css/themes/TabNavigation.css +1 -1
  57. package/dist/custom-elements-internal.json +221 -0
  58. package/dist/custom-elements.json +149 -0
  59. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  60. package/dist/generated/i18n/i18n-defaults.js +1 -1
  61. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  62. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +1 -1
  63. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  64. package/dist/generated/templates/TabNavigationTemplate.lit.js +10 -8
  65. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  66. package/dist/generated/themes/BreadcrumbsPopover.css.d.ts +1 -1
  67. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  68. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  69. package/dist/generated/themes/FilterMenu.css.d.ts +1 -1
  70. package/dist/generated/themes/FilterMenu.css.js +1 -1
  71. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  72. package/dist/generated/themes/HeroBanner.css.d.ts +1 -1
  73. package/dist/generated/themes/HeroBanner.css.js +1 -1
  74. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  75. package/dist/generated/themes/Modal.css.d.ts +1 -1
  76. package/dist/generated/themes/Modal.css.js +1 -1
  77. package/dist/generated/themes/Modal.css.js.map +1 -1
  78. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  79. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  80. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  81. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
  82. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  83. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  84. package/dist/generated/themes/Slider.css.d.ts +1 -1
  85. package/dist/generated/themes/Slider.css.js +1 -1
  86. package/dist/generated/themes/Slider.css.js.map +1 -1
  87. package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
  88. package/dist/generated/themes/TabNavigation.css.js +1 -1
  89. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  90. package/dist/messagebundle.properties +1 -1
  91. package/dist/messagebundle_en.properties +1 -1
  92. package/dist/vscode.html-custom-data.json +23 -3
  93. package/dist/web-types.json +64 -4
  94. package/package.json +1 -1
  95. package/src/Breadcrumbs.ts +9 -1
  96. package/src/HeroBanner.ts +0 -5
  97. package/src/HeroBannerTemplate.tsx +6 -1
  98. package/src/MastheadItem.ts +5 -4
  99. package/src/MediaPlayer.ts +35 -0
  100. package/src/SecondaryNavigation.hbs +1 -0
  101. package/src/SecondaryNavigation.ts +77 -9
  102. package/src/SecondaryNavigationItem.ts +0 -6
  103. package/src/SecondaryNavigationSubItem.ts +1 -1
  104. package/src/SelectBase.ts +2 -1
  105. package/src/StepInput.ts +20 -0
  106. package/src/StepInputTemplate.tsx +1 -1
  107. package/src/Tab.ts +4 -4
  108. package/src/TabNavigation.hbs +15 -0
  109. package/src/TabNavigation.ts +134 -1
  110. package/src/generated/i18n/i18n-defaults.ts +1 -1
  111. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
  112. package/src/generated/templates/TabNavigationTemplate.lit.ts +10 -8
  113. package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
  114. package/src/generated/themes/FilterMenu.css.ts +1 -1
  115. package/src/generated/themes/HeroBanner.css.ts +1 -1
  116. package/src/generated/themes/Modal.css.ts +1 -1
  117. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  118. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  119. package/src/generated/themes/Slider.css.ts +1 -1
  120. package/src/generated/themes/TabNavigation.css.ts +1 -1
  121. package/src/i18n/messagebundle.properties +1 -1
  122. package/src/i18n/messagebundle_en.properties +1 -1
  123. package/src/themes/BreadcrumbsPopover.css +2 -2
  124. package/src/themes/FilterMenu.css +5 -1
  125. package/src/themes/HeroBanner.css +93 -76
  126. package/src/themes/Modal.css +3 -2
  127. package/src/themes/SecondaryNavigationItem.css +4 -1
  128. package/src/themes/TabNavigation.css +27 -16
  129. package/dist/assets/messagebundle_en-DWAgV5VH.js +0 -1
  130. package/dist/generated/templates/HeroBannerTemplate.lit.d.ts +0 -3
  131. package/dist/generated/templates/HeroBannerTemplate.lit.js +0 -15
  132. package/dist/generated/templates/HeroBannerTemplate.lit.js.map +0 -1
  133. package/src/HeroBanner.hbs +0 -46
  134. package/src/generated/templates/HeroBannerTemplate.lit.ts +0 -19
@@ -36,6 +36,7 @@ import UDExListGroupHeader from "../../instrumented/ListGroupHeader.js";
36
36
  import UDExListItem from "../../instrumented/ListItem.js";
37
37
  import UDExMastheadProfileMenu from "../../instrumented/MastheadProfileMenu.js";
38
38
  import UDExMessageStrip from "../../instrumented/MessageStrip.js";
39
+ import UDExMediaPlayer from "../../instrumented/MediaPlayer.js";
39
40
  import UDExPasswordField from "../../instrumented/PasswordField.js";
40
41
  import UDExPhoneNumberField from "../../instrumented/PhoneNumberField.js";
41
42
  import UDExPromoTile from "../../instrumented/PromoTile.js";
@@ -53,6 +54,7 @@ import UDExSlider from "../../instrumented/Slider.js";
53
54
  import UDExSocialMediaButton from "../../instrumented/SocialMediaButton.js";
54
55
  import UDExStatusBadge from "../../instrumented/StatusBadge.js";
55
56
  import UDExStatusMessage from "../../instrumented/StatusMessage.js";
57
+ import UDExStepInput from "../../instrumented/StepInput.js";
56
58
  import UDExSwitch from "../../instrumented/Switch.js";
57
59
  import UDExTable from "../../instrumented/Table.js";
58
60
  import UDExTableCell from "../../instrumented/TableCell.js";
@@ -111,6 +113,7 @@ export {
111
113
  UDExListGroupHeader,
112
114
  UDExMastheadProfileMenu,
113
115
  UDExMessageStrip,
116
+ UDExMediaPlayer,
114
117
  UDExPasswordField,
115
118
  UDExPhoneNumberField,
116
119
  UDExPromoTile,
@@ -128,6 +131,7 @@ export {
128
131
  UDExSocialMediaButton,
129
132
  UDExStatusBadge,
130
133
  UDExStatusMessage,
134
+ UDExStepInput,
131
135
  UDExSwitch,
132
136
  UDExTable,
133
137
  UDExTableCell,
@@ -31,11 +31,12 @@ import UDExInputGroup from "../../src/InputGroup.js";
31
31
  import UDExLink from "../../src/Link.js";
32
32
  import UDExLinkList from "../../src/LinkList.js";
33
33
  import UDExLinkListItem from "../../src/LinkListItem.js";
34
- import UDExList from "../../instrumented/List.js";
35
- import UDExListGroupHeader from "../../instrumented/ListGroupHeader.js";
36
- import UDExListItem from "../../instrumented/ListItem.js";
34
+ import UDExList from "../../src/List.js";
35
+ import UDExListGroupHeader from "../../src/ListGroupHeader.js";
36
+ import UDExListItem from "../../src/ListItem.js";
37
37
  import UDExMastheadProfileMenu from "../../src/MastheadProfileMenu.js";
38
38
  import UDExMessageStrip from "../../src/MessageStrip.js";
39
+ import UDExMediaPlayer from "../../src/MediaPlayer.js";
39
40
  import UDExPasswordField from "../../src/PasswordField.js";
40
41
  import UDExPhoneNumberField from "../../src/PhoneNumberField.js";
41
42
  import UDExPromoTile from "../../src/PromoTile.js";
@@ -53,6 +54,7 @@ import UDExSlider from "../../src/Slider.js";
53
54
  import UDExSocialMediaButton from "../../src/SocialMediaButton.js";
54
55
  import UDExStatusBadge from "../../src/StatusBadge.js";
55
56
  import UDExStatusMessage from "../../src/StatusMessage.js";
57
+ import UDExStepInput from "../../src/StepInput.js";
56
58
  import UDExSwitch from "../../src/Switch.js";
57
59
  import UDExTab from "../../src/Tab.js";
58
60
  import UDExTabNavigation from "../../src/TabNavigation.js";
@@ -113,6 +115,7 @@ export {
113
115
  UDExListGroupHeader,
114
116
  UDExMastheadProfileMenu,
115
117
  UDExMessageStrip,
118
+ UDExMediaPlayer,
116
119
  UDExPasswordField,
117
120
  UDExPhoneNumberField,
118
121
  UDExPromoTile,
@@ -130,6 +133,7 @@ export {
130
133
  UDExSocialMediaButton,
131
134
  UDExStatusBadge,
132
135
  UDExStatusMessage,
136
+ UDExStepInput,
133
137
  UDExSwitch,
134
138
  UDExTab,
135
139
  UDExTabNavigation,
@@ -12,7 +12,12 @@ type UDExBreadcrumbsItemClickEventDetail = {
12
12
  ctrlKey?: boolean;
13
13
  metaKey?: boolean;
14
14
  shiftKey?: boolean;
15
+ source?: UDExBreadcrumbsClickEventSource;
15
16
  };
17
+ declare enum UDExBreadcrumbsClickEventSource {
18
+ Main = "main",
19
+ Dropdown = "dropdown"
20
+ }
16
21
  /**
17
22
  * @class
18
23
  *
@@ -26,6 +26,11 @@ import translate from "./utils/translate.js";
26
26
  // Styles
27
27
  import BreadcrumbsCss from "./generated/themes/Breadcrumbs.css.js";
28
28
  import BreadcrumbsPopoverCss from "./generated/themes/BreadcrumbsPopover.css.js";
29
+ var UDExBreadcrumbsClickEventSource;
30
+ (function (UDExBreadcrumbsClickEventSource) {
31
+ UDExBreadcrumbsClickEventSource["Main"] = "main";
32
+ UDExBreadcrumbsClickEventSource["Dropdown"] = "dropdown";
33
+ })(UDExBreadcrumbsClickEventSource || (UDExBreadcrumbsClickEventSource = {}));
29
34
  /**
30
35
  * @class
31
36
  *
@@ -88,7 +93,7 @@ let UDExBreadcrumbs = UDExBreadcrumbs_1 = class UDExBreadcrumbs extends UI5Eleme
88
93
  if (item._isCurrentPageItem) {
89
94
  return;
90
95
  }
91
- if (this.fireDecoratorEvent("item-click", { item })) {
96
+ if (this.fireDecoratorEvent("item-click", { item, source: UDExBreadcrumbsClickEventSource.Dropdown })) {
92
97
  window.open(item.href, item.target || "_self", "noopener,noreferrer");
93
98
  this._toggleDropdown();
94
99
  }
@@ -102,6 +107,7 @@ let UDExBreadcrumbs = UDExBreadcrumbs_1 = class UDExBreadcrumbs extends UI5Eleme
102
107
  ctrlKey,
103
108
  metaKey,
104
109
  shiftKey,
110
+ source: UDExBreadcrumbsClickEventSource.Main,
105
111
  })) {
106
112
  e.preventDefault();
107
113
  }
@@ -231,6 +237,7 @@ UDExBreadcrumbs = UDExBreadcrumbs_1 = __decorate([
231
237
  * @param { boolean } ctrlKey
232
238
  * @param { boolean } metaKey
233
239
  * @param { boolean } shiftKey
240
+ * @param { UDExBreadcrumbsClickEventSource } source The source of the click event
234
241
  */
235
242
  ,
236
243
  event("item-click", { cancelable: true, bubbles: true })
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["../src/Breadcrumbs.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,WAAW,MAAM,iDAAiD,CAAC;AAC1E,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAC1F,OAAO,OAAO,MAAM,iCAAiC,CAAC;AAEtD,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,iBAAiB,MAAM,6DAA6D,CAAC;AAC5F,OAAO,kDAAkD,CAAC;AAC1D,OAAO,uCAAuC,CAAC;AAC/C,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAC3D,OAAO,mBAAmB,MAAM,sBAAsB,CAAC;AACvD,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,SAAS;AACT,OAAO,cAAc,MAAM,uCAAuC,CAAC;AACnE,OAAO,qBAAqB,MAAM,8CAA8C,CAAC;AAUjF;;;;;;;;;;;;;;;;GAgBG;AAgCH,IAAM,eAAe,uBAArB,MAAM,eAAgB,SAAQ,UAAU;IAwCtC;QACE,KAAK,EAAE,CAAC;QAnCV;;;;;WAKG;QAED,cAAS,GAAW,CAAC,CAAC;QA6BtB,IAAI,CAAC,UAAU,GAAG,kBAAkB,CAAC;IACvC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACrD,IAAI,CAAC,kBAAkB,CAAC,cAAc,GAAG,GAAG,CAAC;QAC7C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACtC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAG,CAAC,aAAa,CAAC,qBAAqB,IAAI,CAAC,YAAY,GAAG,CAAE,CAAC;QAC1G,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAe,SAAS,IAAI,CAAC,IAAK,uBAAuB,CAAE,CAAC;IACnG,CAAC;IAED,kBAAkB;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,CAAsB,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB,CAAC,CAAoC;QACvD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAqB,EACtC,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EACxB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAE,CAAC;QAEzD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,OAAO,EAAE,qBAAqB,CAAC,CAAC;YACtE,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,CAAoC;QAC/C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAkB,EAC/B,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EACxB,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,KAAK,IAAI,CAAC,EAAE,CAAE,EACpD,EACE,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,GACT,GAAG,CAAC,CAAC,MAAM,CAAC;QAEf,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;YACzC,IAAI;YACJ,MAAM;YACN,OAAO;YACP,OAAO;YACP,QAAQ;SACT,CAAC,EAAE,CAAC;YACH,CAAC,CAAC,cAAc,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,IAAyB;QACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC7D,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,cAAc,CAAC,CAAgB;QAC7B,MAAM,SAAS,GAAI,CAAC,CAAC,MAAsB,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,SAAS,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpE,MAAM,WAAW,GAAG,SAAS,KAAK,GAAG,CAAC;QAEtC,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;YACpC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAQ,EAAE,EAAE;YAClD,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,UAAW,CAAC,aAAa,CAAW,4BAA4B,CAAE,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAW,CAAC,gBAAgB,CAAW,6CAA6C,CAAC,CAAC,CAAC;IAChH,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAEhC,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACnB,IAAI,CAAC,kBAAkB,GAAG,KAAK,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,aAAa;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC,SAAS,EAAE;aACpB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aAClD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,aAAa;QACf,MAAM,SAAS,GAAG,kBAAkB,CAAC;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,SAAS,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,CAAC;IAED,IAAI,8BAA8B;QAChC,OAAO,SAAS,CAAC,iBAAe,EAAE,sBAAsB,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,gCAAgC;QAClC,OAAO,SAAS,CAAC,iBAAe,EAAE,+BAA+B,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,2BAA2B;QAC7B,OAAO,SAAS,CAAC,iBAAe,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC;CACF,CAAA;AAjOG;IADD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kDACH;AAStB;IADD,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wDACnB;AAS1B;IADD,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;8CACvC;AAG9B;IADN,IAAI,CAAC,yBAAyB,CAAC;yCACF;AAlC1B,eAAe;IA/BpB,aAAa,CAAC;QACb,GAAG,EAAE,kBAAkB;QACvB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,CAAC;QAClE,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC;KACrE,CAAC;IACF;;;;;;;OAOG;;IACF,KAAK,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEzD;;;;OAIG;;IACF,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAEjC;;;;OAIG;;IACF,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;GAE5B,eAAe,CA8OpB;AAED,eAAe,CAAC,MAAM,EAAE,CAAC;AAEzB,eAAe,eAAe,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.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 { isTabNext, isTabPrevious, isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UI5BreadcrumbsCss from \"@ui5/webcomponents/dist/generated/themes/Breadcrumbs.css.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/home.js\";\nimport BreadcrumbsTemplate from \"./BreadcrumbsTemplate.js\";\nimport UDExBreadcrumbsItem from \"./BreadcrumbsItem.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExLink from \"./Link.js\";\nimport {\n AVAILABLE_VALUES,\n BREADCRUMBS_ARIA_LABEL,\n BREADCRUMBS_OVERFLOW_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport BreadcrumbsCss from \"./generated/themes/Breadcrumbs.css.js\";\nimport BreadcrumbsPopoverCss from \"./generated/themes/BreadcrumbsPopover.css.js\";\n\ntype UDExBreadcrumbsItemClickEventDetail = {\n item: UDExBreadcrumbsItem;\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n shiftKey?: boolean;\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-breadcrumbs</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Breadcrumbs.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-breadcrumbs\",\n renderer: jsxRenderer,\n styles: [UI5BreadcrumbsCss, BreadcrumbsCss, BreadcrumbsPopoverCss],\n template: BreadcrumbsTemplate,\n dependencies: [UDExBreadcrumbsItem, UDExLink, UDExDropdown, UI5Icon],\n})\n/**\n * @public\n * @param { UDExBreadcrumbsItem } item The clicked breadcrumb item\n * @param { boolean } altKey\n * @param { boolean } ctrlKey\n * @param { boolean } metaKey\n * @param { boolean } shiftKey\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired after the dropdown is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired after the dropdown is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\nclass UDExBreadcrumbs extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExBreadcrumbsItemClickEventDetail,\n \"open\": void,\n \"close\": void,\n };\n /**\n * Defines how many breadcrumb items should be visible\n *\n * @default 3\n * @public\n */\n @property({ type: Number })\n showItems: number = 3;\n\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the component items.\n *\n * **Note:** Use the `udex-breadcrumbs-item` component to define the desired items.\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n items!: Array<UDExBreadcrumbsItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _responsivePopover?: UDExDropdown;\n _shouldFocusFirstVisibleItem!: boolean;\n _rootClass: string;\n\n constructor() {\n super();\n this._rootClass = \"udex-breadcrumbs\";\n }\n\n onBeforeRendering(): void {\n this._preprocessItems();\n }\n\n onAfterRendering(): void {\n this._responsivePopover = this._getResponsePopover();\n this._dropdownArrowLink.forcedTabIndex = \"0\";\n this._handleOutsideClick();\n\n if (this._shouldFocusFirstVisibleItem) {\n this._getFocusableItems()[1].focus();\n this._shouldFocusFirstVisibleItem = false;\n }\n }\n\n _preprocessItems(): void {\n this.items.forEach(item => {\n item._getRealDomRef = () => this.getDomRef()!.querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)!;\n });\n }\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`#udex-${this.__id!}-breadcrumbs__popover`)!;\n }\n\n _getFocusableItems(): Array<UDExLink> {\n const items = this._links;\n items.unshift(this._dropdownArrowLink);\n\n return items;\n }\n\n _getItems(): Array<UDExBreadcrumbsItem> {\n return this.getSlottedNodes<UDExBreadcrumbsItem>(\"items\");\n }\n\n _onDropdownLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const listItem = e.target as HTMLElement,\n items = this._getItems(),\n item = items.find(x => `${x._id}-li` === listItem.id)!;\n\n if (item._isCurrentPageItem) {\n return;\n }\n\n if (this.fireDecoratorEvent(\"item-click\", { item })) {\n window.open(item.href, item.target || \"_self\", \"noopener,noreferrer\");\n this._toggleDropdown();\n }\n\n this.setDropdownCloseState();\n }\n\n _onLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const link = e.target as UDExLink,\n items = this._getItems(),\n item = items.find(x => `${x._id}-link` === link.id)!,\n {\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n } = e.detail;\n\n if (!this.fireDecoratorEvent(\"item-click\", {\n item,\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n })) {\n e.preventDefault();\n }\n\n this.setDropdownCloseState();\n }\n\n _isItemVisible(item: UDExBreadcrumbsItem): boolean {\n return !item.hidden;\n }\n\n _afterDropdownOpen(): void {\n this._dropdownOpened = true;\n this.fireDecoratorEvent(\"open\");\n }\n\n _afterDropdownClose(): void {\n this._dropdownOpened = false;\n this.fireDecoratorEvent(\"close\");\n }\n\n _toggleDropdown(): void {\n if (this._responsivePopover) {\n this._responsivePopover.open = !this._responsivePopover.open;\n this._dropdownOpened = !this._dropdownOpened;\n }\n }\n\n _handleKeydown(e: KeyboardEvent): void {\n const itemIndex = (e.target as HTMLElement).getAttribute(\"data-index\");\n const isLastItem = itemIndex === (this.items.length - 2).toString();\n const isFirstItem = itemIndex === \"0\";\n\n if (isTabNext(e) && isLastItem) {\n this._shouldFocusFirstVisibleItem = true;\n this._toggleDropdown();\n return;\n }\n\n if (isTabPrevious(e) && isFirstItem) {\n e.preventDefault();\n this._dropdownArrowLink.focus();\n this._toggleDropdown();\n return;\n }\n\n if (isEscape(e)) {\n this._toggleDropdown();\n }\n }\n\n _handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: Event) => {\n if (e.target !== this) {\n this.setDropdownCloseState();\n }\n });\n }\n\n setDropdownCloseState(): void {\n if (this._responsivePopover) {\n this._dropdownOpened = false;\n }\n }\n\n /**\n * Getter for the interactive element that opens the overflow\n * @private\n */\n get _dropdownArrowLink(): UDExLink {\n return this.shadowRoot!.querySelector<UDExLink>(\".udex-breadcrumbs__trigger\")!;\n }\n\n /**\n * Getter for the list of links corresponding to the abstract breadcrumb items\n */\n get _links(): Array<UDExLink> {\n return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(\".udex-breadcrumbs__link-wrapper [udex-link]\"));\n }\n\n /**\n * Getter for the list of abstract breadcrumb items to be rendered as links outside the overflow\n */\n get _linksData(): Array<UDExBreadcrumbsItem> {\n const items = this._visibleItems;\n const itemsCount = items.length;\n\n return items\n .map((item, index) => {\n item._isCurrentPageItem = index === (itemsCount - 1);\n return item;\n });\n }\n\n get _visibleItems(): Array<UDExBreadcrumbsItem> {\n const items = this._getItems();\n const itemsLength = this.showItems ?? 0;\n\n return this._getItems()\n .slice(Math.max(items.length - itemsLength - 1, 0))\n .filter(i => this._isItemVisible(i));\n }\n\n get _dropdownItems(): Array<UDExBreadcrumbsItem> {\n return this._getItems().filter(i => this._isItemVisible(i));\n }\n\n get _triggerClass(): string {\n const rootClass = \"udex-breadcrumbs\";\n return this._dropdownOpened ? `${rootClass} ${rootClass}__trigger--opened` : rootClass;\n }\n\n get _breadcrumbsAccessibleNameText(): string {\n return translate(UDExBreadcrumbs, BREADCRUMBS_ARIA_LABEL);\n }\n\n get _dropdownArrowAccessibleNameText(): string {\n return translate(UDExBreadcrumbs, BREADCRUMBS_OVERFLOW_ARIA_LABEL);\n }\n\n get _dropdownAccessibleNameText(): string {\n return translate(UDExBreadcrumbs, AVAILABLE_VALUES);\n }\n}\n\nUDExBreadcrumbs.define();\n\nexport default UDExBreadcrumbs;\nexport type { UDExBreadcrumbsItemClickEventDetail };\n"]}
1
+ {"version":3,"file":"Breadcrumbs.js","sourceRoot":"","sources":["../src/Breadcrumbs.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.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 { isTabNext, isTabPrevious, isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport UI5BreadcrumbsCss from \"@ui5/webcomponents/dist/generated/themes/Breadcrumbs.css.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/home.js\";\nimport BreadcrumbsTemplate from \"./BreadcrumbsTemplate.js\";\nimport UDExBreadcrumbsItem from \"./BreadcrumbsItem.js\";\nimport UDExDropdown from \"./Dropdown.js\";\nimport UDExLink from \"./Link.js\";\nimport {\n AVAILABLE_VALUES,\n BREADCRUMBS_ARIA_LABEL,\n BREADCRUMBS_OVERFLOW_ARIA_LABEL,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport BreadcrumbsCss from \"./generated/themes/Breadcrumbs.css.js\";\nimport BreadcrumbsPopoverCss from \"./generated/themes/BreadcrumbsPopover.css.js\";\n\ntype UDExBreadcrumbsItemClickEventDetail = {\n item: UDExBreadcrumbsItem;\n altKey?: boolean;\n ctrlKey?: boolean;\n metaKey?: boolean;\n shiftKey?: boolean;\n source?: UDExBreadcrumbsClickEventSource;\n}\n\nenum UDExBreadcrumbsClickEventSource {\n Main = \"main\",\n Dropdown = \"dropdown\",\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-breadcrumbs</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/Breadcrumbs.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-breadcrumbs\",\n renderer: jsxRenderer,\n styles: [UI5BreadcrumbsCss, BreadcrumbsCss, BreadcrumbsPopoverCss],\n template: BreadcrumbsTemplate,\n dependencies: [UDExBreadcrumbsItem, UDExLink, UDExDropdown, UI5Icon],\n})\n/**\n * @public\n * @param { UDExBreadcrumbsItem } item The clicked breadcrumb item\n * @param { boolean } altKey\n * @param { boolean } ctrlKey\n * @param { boolean } metaKey\n * @param { boolean } shiftKey\n * @param { UDExBreadcrumbsClickEventSource } source The source of the click event\n */\n@event(\"item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired after the dropdown is opened.\n *\n * @public\n */\n@event(\"open\", { bubbles: true })\n\n/**\n * Fired after the dropdown is closed.\n *\n * @public\n */\n@event(\"close\", { bubbles: true })\n\nclass UDExBreadcrumbs extends UI5Element {\n eventDetails!: {\n \"item-click\": UDExBreadcrumbsItemClickEventDetail,\n \"open\": void,\n \"close\": void,\n };\n /**\n * Defines how many breadcrumb items should be visible\n *\n * @default 3\n * @public\n */\n @property({ type: Number })\n showItems: number = 3;\n\n /**\n * Indicates if dropdown is opened\n *\n * @default false\n * @private\n */\n @property({ noAttribute: true, type: Boolean })\n _dropdownOpened!: boolean;\n\n /**\n * Defines the component items.\n *\n * **Note:** Use the `udex-breadcrumbs-item` component to define the desired items.\n * @public\n */\n @slot({ type: HTMLElement, invalidateOnChildChange: true, \"default\": true })\n items!: Array<UDExBreadcrumbsItem>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _responsivePopover?: UDExDropdown;\n _shouldFocusFirstVisibleItem!: boolean;\n _rootClass: string;\n\n constructor() {\n super();\n this._rootClass = \"udex-breadcrumbs\";\n }\n\n onBeforeRendering(): void {\n this._preprocessItems();\n }\n\n onAfterRendering(): void {\n this._responsivePopover = this._getResponsePopover();\n this._dropdownArrowLink.forcedTabIndex = \"0\";\n this._handleOutsideClick();\n\n if (this._shouldFocusFirstVisibleItem) {\n this._getFocusableItems()[1].focus();\n this._shouldFocusFirstVisibleItem = false;\n }\n }\n\n _preprocessItems(): void {\n this.items.forEach(item => {\n item._getRealDomRef = () => this.getDomRef()!.querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)!;\n });\n }\n\n _getResponsePopover(): UDExDropdown {\n return this.shadowRoot!.querySelector<UDExDropdown>(`#udex-${this.__id!}-breadcrumbs__popover`)!;\n }\n\n _getFocusableItems(): Array<UDExLink> {\n const items = this._links;\n items.unshift(this._dropdownArrowLink);\n\n return items;\n }\n\n _getItems(): Array<UDExBreadcrumbsItem> {\n return this.getSlottedNodes<UDExBreadcrumbsItem>(\"items\");\n }\n\n _onDropdownLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const listItem = e.target as HTMLElement,\n items = this._getItems(),\n item = items.find(x => `${x._id}-li` === listItem.id)!;\n\n if (item._isCurrentPageItem) {\n return;\n }\n\n if (this.fireDecoratorEvent(\"item-click\", { item, source: UDExBreadcrumbsClickEventSource.Dropdown })) {\n window.open(item.href, item.target || \"_self\", \"noopener,noreferrer\");\n this._toggleDropdown();\n }\n\n this.setDropdownCloseState();\n }\n\n _onLinkPress(e: CustomEvent<LinkClickEventDetail>): void {\n const link = e.target as UDExLink,\n items = this._getItems(),\n item = items.find(x => `${x._id}-link` === link.id)!,\n {\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n } = e.detail;\n\n if (!this.fireDecoratorEvent(\"item-click\", {\n item,\n altKey,\n ctrlKey,\n metaKey,\n shiftKey,\n source: UDExBreadcrumbsClickEventSource.Main,\n })) {\n e.preventDefault();\n }\n\n this.setDropdownCloseState();\n }\n\n _isItemVisible(item: UDExBreadcrumbsItem): boolean {\n return !item.hidden;\n }\n\n _afterDropdownOpen(): void {\n this._dropdownOpened = true;\n this.fireDecoratorEvent(\"open\");\n }\n\n _afterDropdownClose(): void {\n this._dropdownOpened = false;\n this.fireDecoratorEvent(\"close\");\n }\n\n _toggleDropdown(): void {\n if (this._responsivePopover) {\n this._responsivePopover.open = !this._responsivePopover.open;\n this._dropdownOpened = !this._dropdownOpened;\n }\n }\n\n _handleKeydown(e: KeyboardEvent): void {\n const itemIndex = (e.target as HTMLElement).getAttribute(\"data-index\");\n const isLastItem = itemIndex === (this.items.length - 2).toString();\n const isFirstItem = itemIndex === \"0\";\n\n if (isTabNext(e) && isLastItem) {\n this._shouldFocusFirstVisibleItem = true;\n this._toggleDropdown();\n return;\n }\n\n if (isTabPrevious(e) && isFirstItem) {\n e.preventDefault();\n this._dropdownArrowLink.focus();\n this._toggleDropdown();\n return;\n }\n\n if (isEscape(e)) {\n this._toggleDropdown();\n }\n }\n\n _handleOutsideClick(): void {\n document.addEventListener(\"mousedown\", (e: Event) => {\n if (e.target !== this) {\n this.setDropdownCloseState();\n }\n });\n }\n\n setDropdownCloseState(): void {\n if (this._responsivePopover) {\n this._dropdownOpened = false;\n }\n }\n\n /**\n * Getter for the interactive element that opens the overflow\n * @private\n */\n get _dropdownArrowLink(): UDExLink {\n return this.shadowRoot!.querySelector<UDExLink>(\".udex-breadcrumbs__trigger\")!;\n }\n\n /**\n * Getter for the list of links corresponding to the abstract breadcrumb items\n */\n get _links(): Array<UDExLink> {\n return Array.from(this.shadowRoot!.querySelectorAll<UDExLink>(\".udex-breadcrumbs__link-wrapper [udex-link]\"));\n }\n\n /**\n * Getter for the list of abstract breadcrumb items to be rendered as links outside the overflow\n */\n get _linksData(): Array<UDExBreadcrumbsItem> {\n const items = this._visibleItems;\n const itemsCount = items.length;\n\n return items\n .map((item, index) => {\n item._isCurrentPageItem = index === (itemsCount - 1);\n return item;\n });\n }\n\n get _visibleItems(): Array<UDExBreadcrumbsItem> {\n const items = this._getItems();\n const itemsLength = this.showItems ?? 0;\n\n return this._getItems()\n .slice(Math.max(items.length - itemsLength - 1, 0))\n .filter(i => this._isItemVisible(i));\n }\n\n get _dropdownItems(): Array<UDExBreadcrumbsItem> {\n return this._getItems().filter(i => this._isItemVisible(i));\n }\n\n get _triggerClass(): string {\n const rootClass = \"udex-breadcrumbs\";\n return this._dropdownOpened ? `${rootClass} ${rootClass}__trigger--opened` : rootClass;\n }\n\n get _breadcrumbsAccessibleNameText(): string {\n return translate(UDExBreadcrumbs, BREADCRUMBS_ARIA_LABEL);\n }\n\n get _dropdownArrowAccessibleNameText(): string {\n return translate(UDExBreadcrumbs, BREADCRUMBS_OVERFLOW_ARIA_LABEL);\n }\n\n get _dropdownAccessibleNameText(): string {\n return translate(UDExBreadcrumbs, AVAILABLE_VALUES);\n }\n}\n\nUDExBreadcrumbs.define();\n\nexport default UDExBreadcrumbs;\nexport type { UDExBreadcrumbsItemClickEventDetail };\n"]}
@@ -1,6 +1,4 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
- import "@ui5/webcomponents-icons/dist/media-play.js";
3
- import "@ui5/webcomponents-icons/dist/media-pause.js";
4
2
  export declare enum UDExImageLoadingStrategies {
5
3
  Eager = "eager",
6
4
  Lazy = "lazy"
@@ -106,7 +104,6 @@ declare class UDExHeroBanner extends UI5Element {
106
104
  get hasMediaContent(): boolean;
107
105
  get hasAdditionalContent(): boolean;
108
106
  get hasCustomBackgroundPicture(): boolean;
109
- get mediaButtonIconName(): "media-play" | "media-pause";
110
107
  get _video(): HTMLVideoElement | null | undefined;
111
108
  _toggleMediaButton(): void;
112
109
  _calculateMediaButtonState(): void;
@@ -11,8 +11,6 @@ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
11
11
  import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
12
12
  import { isSpace } from "@ui5/webcomponents-base/dist/Keys.js";
13
13
  import Icon from "@ui5/webcomponents/dist/Icon.js";
14
- import "@ui5/webcomponents-icons/dist/media-play.js";
15
- import "@ui5/webcomponents-icons/dist/media-pause.js";
16
14
  import HeroBannerTemplate from "./HeroBannerTemplate.js";
17
15
  // Styles
18
16
  import HeroBannerCss from "./generated/themes/HeroBanner.css.js";
@@ -76,9 +74,6 @@ let UDExHeroBanner = class UDExHeroBanner extends UI5Element {
76
74
  get hasCustomBackgroundPicture() {
77
75
  return !!this.backgroundPicture?.length;
78
76
  }
79
- get mediaButtonIconName() {
80
- return this._isVideoRunning ? "media-pause" : "media-play";
81
- }
82
77
  get _video() {
83
78
  return this.shadowRoot?.querySelector("video");
84
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../src/HeroBanner.ts"],"names":[],"mappings":"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","sourcesContent":["import 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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport { isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/media-play.js\";\nimport \"@ui5/webcomponents-icons/dist/media-pause.js\";\nimport HeroBannerTemplate from \"./HeroBannerTemplate.js\";\n\n// Styles\nimport HeroBannerCss from \"./generated/themes/HeroBanner.css.js\";\n\nexport enum UDExImageLoadingStrategies {\n Eager = \"eager\",\n Lazy = \"lazy\",\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-hero-banner\n * @public\n */\n@customElement({\n tag: \"udex-hero-banner\",\n renderer: jsxRenderer,\n styles: HeroBannerCss,\n template: HeroBannerTemplate,\n dependencies: [Icon],\n})\nclass UDExHeroBanner extends UI5Element {\n /**\n * Allows control over the background image source.\n *\n * @public\n */\n @property({ type: String })\n backgroundImage?: string;\n\n /**\n * Allows control over the background image loading strategy.\n *\n * @public\n */\n @property()\n backgroundImageLoadingStrategy: `${UDExImageLoadingStrategies}` = UDExImageLoadingStrategies.Eager;\n\n /**\n * Used as the label for background image.\n *\n * @public\n */\n @property({ type: String })\n backgroundImageLabel?: string;\n\n /**\n * Allows control over the background video source.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideo?: string;\n\n /**\n * Used as the label for background video.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideoLabel?: string;\n\n /**\n * Allows control over the background color.\n * Value provided should be compatible with standard CSS rendering, e.g:\n * - HEX: \"#FFF\", \"#FFFFFF\", \"FFFFFFFF\"\n * - RGB/A: \"rgb(255, 255, 255)\", \"rgba(255, 255, 255, 1)\"\n * - HSL/A: \"hsl(0, 100%, 100%)\", \"hsla(0, 100%, 100%, 1\"\n * - Variables: \"var(--sapShell_Background)\", \"var(--udexColorNeutralWhite)\"\n * - Text values: \"white\", \"red\"\n *\n * @public\n */\n @property({ type: String })\n backgroundColor?: string;\n\n /**\n * Allows control over the background-image to set css gradient.\n * Value provided should be compatible with standard CSS linear-gradient rendering, e.g:\n * linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%);\n * linear-gradient(to bottom, var(--udexColorBlue2) 0%,var(--udexColorBlue4) 100%);\n *\n * @public\n */\n @property({ type: String })\n backgroundGradient?: string;\n\n @property({ type: Boolean, noAttribute: true })\n _isVideoRunning?: boolean;\n\n /**\n * Slot for primary content.\n *\n * @slot\n * @public\n */\n @slot()\n content?: Array<HTMLElement>;\n\n /**\n * Slot for image or video content.\n *\n * @slot\n * @public\n */\n @slot()\n mediaContent?: Array<HTMLElement>;\n\n /**\n * Slot for any additional content.\n *\n * @slot\n * @public\n */\n @slot()\n additionalContent?: Array<HTMLElement>;\n\n /**\n * Slot background picture override.\n *\n * @slot\n * @public\n */\n @slot()\n backgroundPicture?: Array<HTMLElement>;\n\n get hasBackgroundImage(): boolean {\n return !!this.backgroundImage;\n }\n get hasBackgroundVideo(): boolean {\n return !!this.backgroundVideo;\n }\n get wrapperBackgroundColor(): string {\n return this.backgroundColor ? this.backgroundColor : \"transparent\";\n }\n\n get wrapperBackgroundImage(): string {\n return this.backgroundGradient ? this.backgroundGradient : \"\";\n }\n\n /**\n * Determines if the video should autoplay based on the user's global preference.\n */\n get shouldVideoAutoplay() {\n return !window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n }\n\n get heroBannerClasses(): string {\n const heroBannerClasses = [\"udex-hero-banner\"];\n if (this.hasBackgroundVideo) {\n heroBannerClasses.push(\"udex-hero-banner--video\");\n }\n return heroBannerClasses.join(\" \");\n }\n\n get hasMediaContent() {\n return !!this.mediaContent?.length;\n }\n\n get hasAdditionalContent() {\n return !!this.additionalContent?.length;\n }\n\n get hasCustomBackgroundPicture() {\n return !!this.backgroundPicture?.length;\n }\n\n get mediaButtonIconName() {\n return this._isVideoRunning ? \"media-pause\" : \"media-play\";\n }\n get _video() {\n return this.shadowRoot?.querySelector<HTMLVideoElement>(\"video\");\n }\n\n _toggleMediaButton(): void {\n if (this._video?.paused) {\n this._video?.play();\n } else {\n this._video?.pause();\n }\n this._calculateMediaButtonState();\n }\n\n _calculateMediaButtonState() {\n this._isVideoRunning = this._video ? !this._video.paused : false;\n }\n\n _isHTMLDivElement = (element: HTMLElement): element is HTMLDivElement => {\n return element.tagName === \"DIV\";\n };\n\n _handleKeydown(event: KeyboardEvent): void {\n const target = <HTMLElement>event.target;\n if (this._isHTMLDivElement(target) && isSpace(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._toggleMediaButton();\n }\n }\n\n onEnterDOM() {\n if (this.backgroundVideo) {\n if (this.backgroundColor) {\n this.style.setProperty(\"--udexHeroBannerBackgroundVideoColor\", `${this.wrapperBackgroundColor}`);\n }\n this._video?.addEventListener(\"play\", () => {\n this._calculateMediaButtonState();\n });\n }\n }\n}\nUDExHeroBanner.define();\n\nexport default UDExHeroBanner;\n"]}
1
+ {"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../src/HeroBanner.ts"],"names":[],"mappings":"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","sourcesContent":["import 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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport { isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport HeroBannerTemplate from \"./HeroBannerTemplate.js\";\n\n// Styles\nimport HeroBannerCss from \"./generated/themes/HeroBanner.css.js\";\n\nexport enum UDExImageLoadingStrategies {\n Eager = \"eager\",\n Lazy = \"lazy\",\n}\n\n/**\n * @class\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-hero-banner\n * @public\n */\n@customElement({\n tag: \"udex-hero-banner\",\n renderer: jsxRenderer,\n styles: HeroBannerCss,\n template: HeroBannerTemplate,\n dependencies: [Icon],\n})\nclass UDExHeroBanner extends UI5Element {\n /**\n * Allows control over the background image source.\n *\n * @public\n */\n @property({ type: String })\n backgroundImage?: string;\n\n /**\n * Allows control over the background image loading strategy.\n *\n * @public\n */\n @property()\n backgroundImageLoadingStrategy: `${UDExImageLoadingStrategies}` = UDExImageLoadingStrategies.Eager;\n\n /**\n * Used as the label for background image.\n *\n * @public\n */\n @property({ type: String })\n backgroundImageLabel?: string;\n\n /**\n * Allows control over the background video source.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideo?: string;\n\n /**\n * Used as the label for background video.\n *\n * @public\n */\n @property({ type: String })\n backgroundVideoLabel?: string;\n\n /**\n * Allows control over the background color.\n * Value provided should be compatible with standard CSS rendering, e.g:\n * - HEX: \"#FFF\", \"#FFFFFF\", \"FFFFFFFF\"\n * - RGB/A: \"rgb(255, 255, 255)\", \"rgba(255, 255, 255, 1)\"\n * - HSL/A: \"hsl(0, 100%, 100%)\", \"hsla(0, 100%, 100%, 1\"\n * - Variables: \"var(--sapShell_Background)\", \"var(--udexColorNeutralWhite)\"\n * - Text values: \"white\", \"red\"\n *\n * @public\n */\n @property({ type: String })\n backgroundColor?: string;\n\n /**\n * Allows control over the background-image to set css gradient.\n * Value provided should be compatible with standard CSS linear-gradient rendering, e.g:\n * linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%);\n * linear-gradient(to bottom, var(--udexColorBlue2) 0%,var(--udexColorBlue4) 100%);\n *\n * @public\n */\n @property({ type: String })\n backgroundGradient?: string;\n\n @property({ type: Boolean, noAttribute: true })\n _isVideoRunning?: boolean;\n\n /**\n * Slot for primary content.\n *\n * @slot\n * @public\n */\n @slot()\n content?: Array<HTMLElement>;\n\n /**\n * Slot for image or video content.\n *\n * @slot\n * @public\n */\n @slot()\n mediaContent?: Array<HTMLElement>;\n\n /**\n * Slot for any additional content.\n *\n * @slot\n * @public\n */\n @slot()\n additionalContent?: Array<HTMLElement>;\n\n /**\n * Slot background picture override.\n *\n * @slot\n * @public\n */\n @slot()\n backgroundPicture?: Array<HTMLElement>;\n\n get hasBackgroundImage(): boolean {\n return !!this.backgroundImage;\n }\n get hasBackgroundVideo(): boolean {\n return !!this.backgroundVideo;\n }\n get wrapperBackgroundColor(): string {\n return this.backgroundColor ? this.backgroundColor : \"transparent\";\n }\n\n get wrapperBackgroundImage(): string {\n return this.backgroundGradient ? this.backgroundGradient : \"\";\n }\n\n /**\n * Determines if the video should autoplay based on the user's global preference.\n */\n get shouldVideoAutoplay() {\n return !window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n }\n\n get heroBannerClasses(): string {\n const heroBannerClasses = [\"udex-hero-banner\"];\n if (this.hasBackgroundVideo) {\n heroBannerClasses.push(\"udex-hero-banner--video\");\n }\n return heroBannerClasses.join(\" \");\n }\n\n get hasMediaContent() {\n return !!this.mediaContent?.length;\n }\n\n get hasAdditionalContent() {\n return !!this.additionalContent?.length;\n }\n\n get hasCustomBackgroundPicture() {\n return !!this.backgroundPicture?.length;\n }\n\n get _video() {\n return this.shadowRoot?.querySelector<HTMLVideoElement>(\"video\");\n }\n\n _toggleMediaButton(): void {\n if (this._video?.paused) {\n this._video?.play();\n } else {\n this._video?.pause();\n }\n this._calculateMediaButtonState();\n }\n\n _calculateMediaButtonState() {\n this._isVideoRunning = this._video ? !this._video.paused : false;\n }\n\n _isHTMLDivElement = (element: HTMLElement): element is HTMLDivElement => {\n return element.tagName === \"DIV\";\n };\n\n _handleKeydown(event: KeyboardEvent): void {\n const target = <HTMLElement>event.target;\n if (this._isHTMLDivElement(target) && isSpace(event)) {\n event.preventDefault();\n event.stopPropagation();\n this._toggleMediaButton();\n }\n }\n\n onEnterDOM() {\n if (this.backgroundVideo) {\n if (this.backgroundColor) {\n this.style.setProperty(\"--udexHeroBannerBackgroundVideoColor\", `${this.wrapperBackgroundColor}`);\n }\n this._video?.addEventListener(\"play\", () => {\n this._calculateMediaButtonState();\n });\n }\n }\n}\nUDExHeroBanner.define();\n\nexport default UDExHeroBanner;\n"]}
@@ -1,2 +1,4 @@
1
1
  import type HeroBanner from "./HeroBanner.js";
2
+ import "@ui5/webcomponents-icons/dist/play.js";
3
+ import "@ui5/webcomponents-icons/dist/pause.js";
2
4
  export default function HeroBannerTemplate(this: HeroBanner): import("@ui5/webcomponents-base").JSX.Element;
@@ -1,10 +1,15 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
2
  import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
3
+ import "@ui5/webcomponents-icons/dist/play.js";
4
+ import "@ui5/webcomponents-icons/dist/pause.js";
5
+ import playIcon from "@ui5/webcomponents-icons/play.js";
6
+ import pauseIcon from "@ui5/webcomponents-icons/pause.js";
3
7
  export default function HeroBannerTemplate() {
4
8
  const rootClass = "udex-hero-banner";
9
+ const btnIcon = this._isVideoRunning ? playIcon : pauseIcon;
5
10
  return (_jsxs("div", { className: this.heroBannerClasses, part: "wrapper", style: {
6
11
  backgroundColor: this.wrapperBackgroundColor,
7
12
  ...(this.wrapperBackgroundImage ? { backgroundImage: this.wrapperBackgroundImage } : {})
8
- }, children: [this.hasBackgroundVideo ? (_jsxs("div", { className: `${rootClass}__background-video-wrapper`, tabIndex: 0, onKeyDown: this._handleKeydown, children: [_jsx("video", { autoPlay: this.shouldVideoAutoplay, muted: true, loop: true, playsInline: true, part: "background-video", className: `${rootClass}__background-video`, "aria-label": this.backgroundVideoLabel, children: _jsx("source", { src: this.backgroundVideo, type: "video/mp4" }) }), _jsx("div", { className: `${rootClass}__background-video-overlay` }), this.hasBackgroundImage && (_jsx("picture", { children: _jsx("img", { loading: this.backgroundImageLoadingStrategy, src: this.backgroundImage, part: "background-image", className: `${rootClass}__background-image`, alt: this.backgroundImageLabel }) })), _jsxs("div", { className: `${rootClass}__content-container`, children: [_jsx("slot", { id: `${rootClass}__content`, name: "content", part: "content" }), _jsx("slot", { id: `${rootClass}__additionalContent`, name: "additionalContent", part: "additionalContent" })] }), _jsx("button", { className: `${rootClass}__media-button`, "aria-label": "Play / Pause button", role: "button", onClick: this._toggleMediaButton, children: _jsx(UI5Icon, { name: this.mediaButtonIconName }) })] })) : (_jsxs("div", { className: `${rootClass}__container`, children: [this.hasCustomBackgroundPicture ? (_jsx("slot", { name: "backgroundPicture" })) : this.hasBackgroundImage ? (_jsx("picture", { children: _jsx("img", { loading: this.backgroundImageLoadingStrategy, src: this.backgroundImage, part: "background-image", className: `${rootClass}__background-image`, alt: this.backgroundImageLabel }) })) : null, _jsxs("div", { className: `${rootClass}__content-container`, children: [_jsx("slot", { id: `${rootClass}__content`, name: "content", part: "content" }), this.hasAdditionalContent && (_jsx("slot", { id: `${rootClass}__additionalContent`, name: "additionalContent", part: "additionalContent" }))] })] })), this.hasMediaContent && (_jsx("slot", { id: `${rootClass}__mediaContent`, name: "mediaContent", part: "mediaContent" }))] }));
13
+ }, children: [this.hasBackgroundVideo ? (_jsxs("div", { className: `${rootClass}__background-video-wrapper`, tabIndex: 0, onKeyDown: this._handleKeydown, children: [_jsx("video", { autoPlay: this.shouldVideoAutoplay, muted: true, loop: true, playsInline: true, part: "background-video", className: `${rootClass}__background-video`, "aria-label": this.backgroundVideoLabel, children: _jsx("source", { src: this.backgroundVideo, type: "video/mp4" }) }), _jsx("div", { className: `${rootClass}__background-video-overlay` }), this.hasBackgroundImage && (_jsx("picture", { children: _jsx("img", { loading: this.backgroundImageLoadingStrategy, src: this.backgroundImage, part: "background-image", className: `${rootClass}__background-image`, alt: this.backgroundImageLabel }) })), _jsxs("div", { className: `${rootClass}__content-container`, children: [_jsx("slot", { id: `${rootClass}__content`, name: "content", part: "content" }), _jsx("slot", { id: `${rootClass}__additionalContent`, name: "additionalContent", part: "additionalContent" })] }), _jsx("button", { className: `${rootClass}__media-button`, "aria-label": "Play / Pause button", role: "button", onClick: this._toggleMediaButton, children: _jsx(UI5Icon, { name: btnIcon }) })] })) : (_jsxs("div", { className: `${rootClass}__container`, children: [this.hasCustomBackgroundPicture ? (_jsx("slot", { name: "backgroundPicture" })) : this.hasBackgroundImage ? (_jsx("picture", { children: _jsx("img", { loading: this.backgroundImageLoadingStrategy, src: this.backgroundImage, part: "background-image", className: `${rootClass}__background-image`, alt: this.backgroundImageLabel }) })) : null, _jsxs("div", { className: `${rootClass}__content-container`, children: [_jsx("slot", { id: `${rootClass}__content`, name: "content", part: "content" }), this.hasAdditionalContent && (_jsx("slot", { id: `${rootClass}__additionalContent`, name: "additionalContent", part: "additionalContent" }))] })] })), this.hasMediaContent && (_jsx("slot", { id: `${rootClass}__mediaContent`, name: "mediaContent", part: "mediaContent" }))] }));
9
14
  }
10
15
  //# sourceMappingURL=HeroBannerTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeroBannerTemplate.js","sourceRoot":"","sources":["../src/HeroBannerTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type HeroBanner from \"./HeroBanner.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\n\nexport default function HeroBannerTemplate(this: HeroBanner) {\n const rootClass = \"udex-hero-banner\";\n\n return (\n <div\n className={this.heroBannerClasses}\n part=\"wrapper\"\n style={{\n backgroundColor: this.wrapperBackgroundColor,\n ...(this.wrapperBackgroundImage ? { backgroundImage: this.wrapperBackgroundImage } : {})\n }}>\n {this.hasBackgroundVideo ? (\n <div\n className={`${rootClass}__background-video-wrapper`}\n tabIndex={0}\n onKeyDown={this._handleKeydown}>\n <video\n autoPlay={this.shouldVideoAutoplay}\n muted\n loop\n playsInline\n part=\"background-video\"\n className={`${rootClass}__background-video`}\n aria-label={this.backgroundVideoLabel}>\n <source src={this.backgroundVideo} type=\"video/mp4\" />\n </video>\n <div className={`${rootClass}__background-video-overlay`}></div>\n {this.hasBackgroundImage && (\n <picture>\n <img\n loading={this.backgroundImageLoadingStrategy}\n src={this.backgroundImage}\n part=\"background-image\"\n className={`${rootClass}__background-image`}\n alt={this.backgroundImageLabel}/>\n </picture>\n )}\n <div className={`${rootClass}__content-container`}>\n <slot\n id={`${rootClass}__content`}\n name=\"content\"\n part=\"content\">\n </slot>\n <slot\n id={`${rootClass}__additionalContent`}\n name=\"additionalContent\"\n part=\"additionalContent\">\n </slot>\n </div>\n <button\n className={`${rootClass}__media-button`}\n aria-label=\"Play / Pause button\"\n role=\"button\"\n onClick={this._toggleMediaButton}>\n <UI5Icon name={this.mediaButtonIconName}></UI5Icon>\n </button>\n </div>\n ) : (\n <div className={`${rootClass}__container`}>\n {this.hasCustomBackgroundPicture ? (\n <slot name=\"backgroundPicture\"></slot>\n ) : this.hasBackgroundImage ? (\n <picture>\n <img\n loading={this.backgroundImageLoadingStrategy}\n src={this.backgroundImage}\n part=\"background-image\"\n className={`${rootClass}__background-image`}\n alt={this.backgroundImageLabel}\n />\n </picture>\n ) : null}\n <div className={`${rootClass}__content-container`}>\n <slot\n id={`${rootClass}__content`}\n name=\"content\"\n part=\"content\">\n </slot>\n {this.hasAdditionalContent && (\n <slot\n id={`${rootClass}__additionalContent`}\n name=\"additionalContent\"\n part=\"additionalContent\">\n </slot>\n )}\n </div>\n </div>\n )}\n {this.hasMediaContent && (\n <slot\n id={`${rootClass}__mediaContent`}\n name=\"mediaContent\"\n part=\"mediaContent\">\n </slot>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"HeroBannerTemplate.js","sourceRoot":"","sources":["../src/HeroBannerTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type HeroBanner from \"./HeroBanner.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/play.js\";\nimport \"@ui5/webcomponents-icons/dist/pause.js\";\nimport playIcon from \"@ui5/webcomponents-icons/play.js\";\nimport pauseIcon from \"@ui5/webcomponents-icons/pause.js\";\n\nexport default function HeroBannerTemplate(this: HeroBanner) {\n const rootClass = \"udex-hero-banner\";\n const btnIcon = this._isVideoRunning ? playIcon : pauseIcon;\n\n return (\n <div\n className={this.heroBannerClasses}\n part=\"wrapper\"\n style={{\n backgroundColor: this.wrapperBackgroundColor,\n ...(this.wrapperBackgroundImage ? { backgroundImage: this.wrapperBackgroundImage } : {})\n }}>\n {this.hasBackgroundVideo ? (\n <div\n className={`${rootClass}__background-video-wrapper`}\n tabIndex={0}\n onKeyDown={this._handleKeydown}>\n <video\n autoPlay={this.shouldVideoAutoplay}\n muted\n loop\n playsInline\n part=\"background-video\"\n className={`${rootClass}__background-video`}\n aria-label={this.backgroundVideoLabel}>\n <source src={this.backgroundVideo} type=\"video/mp4\" />\n </video>\n <div className={`${rootClass}__background-video-overlay`}></div>\n {this.hasBackgroundImage && (\n <picture>\n <img\n loading={this.backgroundImageLoadingStrategy}\n src={this.backgroundImage}\n part=\"background-image\"\n className={`${rootClass}__background-image`}\n alt={this.backgroundImageLabel}/>\n </picture>\n )}\n <div className={`${rootClass}__content-container`}>\n <slot\n id={`${rootClass}__content`}\n name=\"content\"\n part=\"content\">\n </slot>\n <slot\n id={`${rootClass}__additionalContent`}\n name=\"additionalContent\"\n part=\"additionalContent\">\n </slot>\n </div>\n <button\n className={`${rootClass}__media-button`}\n aria-label=\"Play / Pause button\"\n role=\"button\"\n onClick={this._toggleMediaButton}>\n <UI5Icon name={btnIcon}></UI5Icon>\n </button>\n </div>\n ) : (\n <div className={`${rootClass}__container`}>\n {this.hasCustomBackgroundPicture ? (\n <slot name=\"backgroundPicture\"></slot>\n ) : this.hasBackgroundImage ? (\n <picture>\n <img\n loading={this.backgroundImageLoadingStrategy}\n src={this.backgroundImage}\n part=\"background-image\"\n className={`${rootClass}__background-image`}\n alt={this.backgroundImageLabel}\n />\n </picture>\n ) : null}\n <div className={`${rootClass}__content-container`}>\n <slot\n id={`${rootClass}__content`}\n name=\"content\"\n part=\"content\">\n </slot>\n {this.hasAdditionalContent && (\n <slot\n id={`${rootClass}__additionalContent`}\n name=\"additionalContent\"\n part=\"additionalContent\">\n </slot>\n )}\n </div>\n </div>\n )}\n {this.hasMediaContent && (\n <slot\n id={`${rootClass}__mediaContent`}\n name=\"mediaContent\"\n part=\"mediaContent\">\n </slot>\n )}\n </div>\n );\n}\n"]}
@@ -234,17 +234,18 @@ let UDExMastheadItem = UDExMastheadItem_1 = class UDExMastheadItem extends UI5El
234
234
  }
235
235
  calculateMarginInlineStart(rect) {
236
236
  const { left, right } = rect;
237
+ const viewportWidth = document.documentElement.clientWidth;
237
238
  if (this.isLtrDirection && left < 0) {
238
239
  return left * -1 + 15;
239
240
  }
240
241
  if (this.isRtlDirection && left < 0) {
241
242
  return left - 15;
242
243
  }
243
- if (this.isRtlDirection && right > window.innerWidth) {
244
- return right - window.innerWidth + 15;
244
+ if (this.isRtlDirection && right > viewportWidth) {
245
+ return right - viewportWidth + 15;
245
246
  }
246
- if (this.isLtrDirection && right > window.innerWidth) {
247
- return window.innerWidth - right - 15;
247
+ if (this.isLtrDirection && right > viewportWidth) {
248
+ return viewportWidth - right - 15;
248
249
  }
249
250
  return null;
250
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MastheadItem.js","sourceRoot":"","sources":["../src/MastheadItem.ts"],"names":[],"mappings":"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","sourcesContent":["import 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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n OPENS_IN_A_NEW_WINDOW, PROFILE, CART, COUNTRY_SELECTOR, SUPPORT, SEARCH,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport type UDExAvatar from \"./Avatar.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/world.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport MastheadItemTemplate from \"./generated/templates/MastheadItemTemplate.lit.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport type UDExMastheadProfileMenu from \"./MastheadProfileMenu.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport MastheadItemCss from \"./generated/themes/MastheadItem.css.js\";\n\nexport enum UDExMastheadDropdownItemAction {\n Open = \"Open\",\n Close = \"Close\",\n ClickOutside = \"Click Outside\",\n}\n\nexport interface IMastheadItem {\n selected?: boolean;\n icon?: string;\n avatar?: Array<HTMLElement>;\n href?: string;\n}\n\nexport type CategoryItem = {\n title: string;\n url: string;\n externalLink: boolean;\n};\n\nexport type SubMenuLinkItem = {\n category: string;\n url?: string;\n items: CategoryItem[];\n index: number;\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\n};\n\ntype UDExMastheadItemItemClickEventDetail = {\n originalEvent: PointerEvent,\n item: UDExMastheadItem,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\ntype UDExMastheadDropdownEventDetail = {\n title: string,\n action: UDExMastheadDropdownItemAction,\n analyticsName: AnalyticsName,\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-masthead-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-item\",\n renderer: litRender,\n languageAware: true,\n styles: MastheadItemCss,\n template: MastheadItemTemplate,\n dependencies: [\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent the original event object\n * @param {UDExMastheadItem} item the clicked item\n * @param {AnalyticsName} analyticsName the analytics name\n * @param {HTMLElement} sourceNode the source node\n */\n@event(\"item-click\", { bubbles: true })\n\n/**\n * Fires when dropdown is closed\n *\n * @allowPreventDefault\n * @public\n * @param {string} title the title of the item\n * @param {UDExMastheadDropdownItemAction} action the action that caused the event\n * @param {AnalyticsName} analyticsName the analytics name\n */\n@event(\"dropdown-closed\", { bubbles: true })\n\n/**\n * Fires when dropdown is opened\n *\n * @allowPreventDefault\n * @public\n * @param {string} title the title of the item\n * @param {UDExMastheadDropdownItemAction} action the action that caused the event\n * @param {AnalyticsName} analyticsName the analytics name\n */\n@event(\"dropdown-opened\", { bubbles: true })\n\nclass UDExMastheadItem extends UI5Element implements IMastheadItem {\n eventDetails!: {\n \"item-click\": UDExMastheadItemItemClickEventDetail,\n \"dropdown-closed\": UDExMastheadDropdownEventDetail,\n \"dropdown-opened\": UDExMastheadDropdownEventDetail,\n };\n /**\n * Defines sub items for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n subItems: string = \"\";\n\n /**\n * Defines a title for sub menu items\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n menuTitle: string = \"\";\n\n /**\n * Defines the selected item.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines if the arrow icon is hidden.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n hideArrowIcon!: boolean;\n\n /**\n * Defines the icon in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String })\n icon: string = \"\";\n\n /**\n * Defines the image in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String })\n image!: string;\n\n /**\n * Defines an alt text for item image\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n imageAlt!: string;\n\n /**\n * Defines the href of the item.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the item\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n */\n @property()\n target: UDExTarget = UDExTarget._self;\n\n /**\n * Controls the ARIA name of the item\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleRole?: string;\n\n /**\n * Defines an alt text for item icon\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n iconAlt: string = \"\";\n\n /**\n * Hide active border for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n hideActiveBorder!: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction!: string;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines the label for analytics\n *\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Slot for the dropdown\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n dropdown?: Array<HTMLElement>;\n\n /**\n * Slot for any content\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content?: Array<HTMLElement>;\n\n /**\n * Defines the prevents the item from losing focus.\n *\n * @private\n */\n\n @property({ type: Boolean })\n _preventFocusOut!: boolean;\n\n /**\n * Defines the item is a menu close button\n *\n * @private\n */\n @property({ type: Boolean })\n _isMenuCloseBtn?: boolean;\n\n /**\n * Defines if the image failed to load\n *\n * @private\n */\n @property({ type: Boolean })\n _imageLoadError = false;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _profileAvatar!: UDExAvatar;\n _mastheadShell!: UDExMastheadShell;\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering(): void {\n this.label = this.eventItemTitle;\n }\n\n onAfterRendering(): void {\n this._profileAvatar = this.profileAvatar;\n this._mastheadShell = this.mastheadShell;\n this.handleDirection();\n if (this.selected && this.hasDropdownSlot && !this.isMobile && !this.isExploreBtn) {\n this.setDropdownInsetStart();\n }\n\n this.handleOutsideClick();\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", (e: Event) => {\n const target = e.target as HTMLElement;\n const item = target.closest(\"[udex-masthead-item]\");\n if (item !== this && !this.isMobile && this.selected) {\n if (this.isDropdownOpened) {\n this.fireDropdownCloseEvent(this.eventItemTitle, UDExMastheadDropdownItemAction.ClickOutside);\n }\n\n this.selected = false;\n }\n });\n }\n\n handleMouseDown(): void {\n this._preventFocusOut = true;\n }\n\n handleMouseUp(): void {\n this._preventFocusOut = false;\n }\n\n handleFocusout(e: FocusEvent): void {\n if (this.isFocusOutPrevented(e)) {\n return;\n }\n\n this.handleFocusOutForDropdowns(e);\n }\n\n handleFocusOutForDropdowns(e: FocusEvent): void {\n const relatedTarget = e.relatedTarget as HTMLElement;\n const target = e.target as HTMLElement;\n\n if (this.shouldCloseDropdown(relatedTarget, target)) {\n this.closeDropdown();\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isEscape(e) && this.hasDropdownSlot) {\n if (this.isMobile) {\n this.handleKeyEscapeMobile();\n } else {\n this.handleKeyEscape();\n }\n }\n }\n\n handleKeyEscape(): void {\n this.closeDropdown();\n if (this.isProfileBtn) {\n this._profileAvatar.focus();\n } else {\n this.focus();\n }\n }\n\n handleKeyEscapeMobile(): void {\n this.fireDropdownCloseEvent(this.eventItemTitle, UDExMastheadDropdownItemAction.Close);\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n handleItemClick(e: PointerEvent): void {\n if (this.isProfileBtn) {\n this.handleProfileButtonClick();\n }\n this.handleSelectedChange();\n this.fireItemClickEvent(e);\n this.fireDropdownEvents();\n }\n\n handleSelectedChange(): void {\n this.selected = this.isMobile ? true : !this.selected;\n }\n\n handleProfileButtonClick(): void {\n const profile = this.profileSlot;\n if (profile) {\n profile.closeIdentitiesPanel();\n profile.scrollToTopProfileMenu();\n profile._requestRender = true;\n }\n }\n\n handleImageError(): void {\n this._imageLoadError = true;\n }\n\n fireDropdownEvents(): void {\n if (this.hasDropdownSlot) {\n const { Open, Close } = UDExMastheadDropdownItemAction;\n const action = this.selected ? Open : Close;\n if (this.selected) {\n this.fireDropdownOpenEvent(this.eventItemTitle, action);\n } else {\n this.fireDropdownCloseEvent(this.eventItemTitle, action);\n }\n }\n }\n\n fireDropdownCloseEvent(title: string, action: UDExMastheadDropdownItemAction): void {\n this.fireDecoratorEvent(\"dropdown-closed\", { title, action, analyticsName: AnalyticsName.Header });\n }\n\n fireDropdownOpenEvent(title: string, action: UDExMastheadDropdownItemAction): void {\n this.fireDecoratorEvent(\"dropdown-opened\", { title, action, analyticsName: AnalyticsName.Header });\n }\n\n fireItemClickEvent(e: PointerEvent): void {\n this.fireDecoratorEvent(\"item-click\", {\n item: this,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n sourceNode: e.currentTarget as HTMLElement,\n });\n }\n\n setDropdownInsetStart(): void {\n const dropdown = this.dropdownHolder;\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n const marginInlineStart = this.calculateMarginInlineStart(rect);\n\n if (marginInlineStart !== null) {\n dropdown.style.marginInlineStart = `${marginInlineStart - 3}px`;\n }\n }\n }\n\n recalculateDropdownPosition(): void {\n const dropdown = this.dropdownHolder;\n if (dropdown) {\n dropdown.style.marginInlineStart = \"\";\n this.setDropdownInsetStart();\n }\n }\n\n calculateMarginInlineStart(rect: DOMRect): number | null {\n const { left, right } = rect;\n\n if (this.isLtrDirection && left < 0) {\n return left * -1 + 15;\n }\n\n if (this.isRtlDirection && left < 0) {\n return left - 15;\n }\n\n if (this.isRtlDirection && right > window.innerWidth) {\n return right - window.innerWidth + 15;\n }\n\n if (this.isLtrDirection && right > window.innerWidth) {\n return window.innerWidth - right - 15;\n }\n\n return null;\n }\n\n handleDirection(): void {\n const directionStyles = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n closeDropdown(): void {\n this.selected = false;\n this.fireDropdownCloseEvent(this.accessibleName || this.eventItemTitle, UDExMastheadDropdownItemAction.Close);\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n getSubItems(): Array<MenuItem> {\n return parseArrayFromString(this.subItems);\n }\n\n private isFocusOutPrevented(e: FocusEvent): boolean {\n return this.isMobile || e.relatedTarget === null || this._preventFocusOut;\n }\n\n private isProfileButtonTarget(relatedTarget: HTMLElement | null): boolean {\n return (relatedTarget?.tagName === \"UDEX-AVATAR\" || relatedTarget?.tagName === \"UDEX-MASTHEAD-ITEM\") && this.isProfileBtn;\n }\n\n private isNavItemTarget(target: HTMLElement): boolean {\n return target.getAttribute(\"slot\") === \"dropdown\" && !this.isProfileBtn;\n }\n\n private isRelatedTargetOutside(relatedTarget: HTMLElement | null): boolean {\n return relatedTarget?.closest(\"[udex-masthead-item]\") === null;\n }\n\n private shouldCloseDropdown(relatedTarget: HTMLElement, target:HTMLElement): boolean {\n return this.isRelatedTargetOutside(relatedTarget)\n || this.isProfileButtonTarget(relatedTarget)\n || this.isNavItemTarget(target);\n }\n\n get dropdownHolder(): HTMLElement {\n return this.getDomElement(\".udex-masthead-item__dropdown\")!;\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get additionalClass(): string {\n const iconClass = (this.icon || this.image) ? \"udex-masthead-item__button--icon\" : \"\";\n const profileClass = this.isProfileBtn ? \"udex-masthead-item__button--profile\" : \"\";\n const exploreClass = this.isExploreBtn ? \"udex-masthead-item__button--explore\" : \"\";\n const supportClass = this.isSupportBtn ? \"udex-masthead-item__button--support\" : \"\";\n const countrySelectorClass = this.isCountrySelectorBtn ? \"udex-masthead-item__button--country-selector\" : \"\";\n return `udex-masthead-item ${iconClass} ${profileClass} ${exploreClass} ${countrySelectorClass} ${supportClass}`.trim();\n }\n\n get profileAvatar(): UDExAvatar {\n return this.querySelector(\"[udex-avatar]\")!;\n }\n\n get iconAltText(): string {\n return this._isMenuCloseBtn ? this.accessibleName || this.icon : this.iconAlt;\n }\n\n get isRtlDirection(): boolean {\n return this._direction === \"rtl\";\n }\n\n get isLtrDirection(): boolean {\n return this._direction === \"ltr\";\n }\n\n get hasHref(): boolean {\n return !!this.href?.length;\n }\n\n get accessibleRoleName(): string {\n return this.accessibleRole ? this.accessibleRole : \"button\";\n }\n\n get selectedClass(): string {\n return this.selected ? \" udex-masthead-item__button--active\" : \"\";\n }\n\n get ariaDescribedBy(): string | undefined {\n const labels = [];\n\n if (this.isTargetBlank) {\n labels.push(`new-win-desc`);\n }\n\n if (this.imageAlt) {\n labels.push(`image-desc`);\n }\n\n return labels.length ? labels.join(\" \").trim() : undefined;\n }\n\n get isDropdownOpened(): boolean {\n return this.hasDropdownSlot && this.selected;\n }\n\n get hasDropdownSlot(): boolean {\n return !!this.getSlottedNodes(\"dropdown\").length;\n }\n\n get hasArrowDown(): boolean {\n return this.hasDropdownSlot && !this.isProfileBtn && !this.icon.length && !this.hideArrowIcon;\n }\n\n get isProfileBtn(): boolean {\n return this.getAttribute(\"slot\") === \"profile\";\n }\n\n get isExploreBtn(): boolean {\n return this.getAttribute(\"slot\") === \"exploreSAP\";\n }\n\n get isCountrySelectorBtn(): boolean {\n return this.getAttribute(\"slot\") === \"countrySelector\";\n }\n\n get isCartBtn(): boolean {\n return this.getAttribute(\"slot\") === \"cart\";\n }\n\n get isSearchBtn(): boolean {\n return this.icon === \"search\";\n }\n\n get isSupportBtn(): boolean {\n return this.getAttribute(\"slot\") === \"support\";\n }\n\n get accessibleLabel(): string {\n return this.accessibleName || this.innerText || (this.isProfileBtn ? translate(UDExMastheadItem, PROFILE) : \"\");\n }\n\n get profileSlot(): UDExMastheadProfileMenu {\n return this.getSlottedNodes<UDExMastheadProfileMenu>(\"dropdown\")[0];\n }\n\n get isMobile(): boolean {\n return BreakpointUtils.isAtMost(\"M\") || this.mastheadShell?._isMobileMode;\n }\n\n get isTargetBlank(): boolean {\n return this.target === UDExTarget._blank;\n }\n\n get openInNewWindowText(): string {\n return translate(UDExMastheadItem, OPENS_IN_A_NEW_WINDOW);\n }\n\n get eventItemTitle(): string {\n if (this.isSearchBtn) {\n return translate(UDExMastheadItem, SEARCH);\n }\n if (this.isCartBtn) {\n return translate(UDExMastheadItem, CART);\n }\n if (this.isProfileBtn) {\n return translate(UDExMastheadItem, PROFILE);\n }\n if (this.isCountrySelectorBtn) {\n return translate(UDExMastheadItem, COUNTRY_SELECTOR);\n }\n if (this.isSupportBtn) {\n return translate(UDExMastheadItem, SUPPORT);\n }\n\n return this.firstChild?.nodeValue?.trim() || \"\";\n }\n\n get buttonAriaExpanded(): boolean | undefined {\n if (!this.hasDropdownSlot) {\n return undefined;\n }\n return this.selected || false;\n }\n\n get imageLoadError(): boolean {\n return this._imageLoadError && this.isCountrySelectorBtn;\n }\n}\n\nUDExMastheadItem.define();\n\nexport default UDExMastheadItem;\nexport type { UDExMastheadDropdownEventDetail, UDExMastheadItemItemClickEventDetail };\n"]}
1
+ {"version":3,"file":"MastheadItem.js","sourceRoot":"","sources":["../src/MastheadItem.ts"],"names":[],"mappings":"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","sourcesContent":["import 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 slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n OPENS_IN_A_NEW_WINDOW, PROFILE, CART, COUNTRY_SELECTOR, SUPPORT, SEARCH,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport type UDExAvatar from \"./Avatar.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-down.js\";\nimport \"@ui5/webcomponents-icons/dist/world.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport MastheadItemTemplate from \"./generated/templates/MastheadItemTemplate.lit.js\";\nimport { UDExTarget } from \"./types/common.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport type UDExMastheadProfileMenu from \"./MastheadProfileMenu.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport MastheadItemCss from \"./generated/themes/MastheadItem.css.js\";\n\nexport enum UDExMastheadDropdownItemAction {\n Open = \"Open\",\n Close = \"Close\",\n ClickOutside = \"Click Outside\",\n}\n\nexport interface IMastheadItem {\n selected?: boolean;\n icon?: string;\n avatar?: Array<HTMLElement>;\n href?: string;\n}\n\nexport type CategoryItem = {\n title: string;\n url: string;\n externalLink: boolean;\n};\n\nexport type SubMenuLinkItem = {\n category: string;\n url?: string;\n items: CategoryItem[];\n index: number;\n};\n\nexport type MenuItem = {\n subMenuLinkItems: SubMenuLinkItem[];\n};\n\ntype UDExMastheadItemItemClickEventDetail = {\n originalEvent: PointerEvent,\n item: UDExMastheadItem,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\ntype UDExMastheadDropdownEventDetail = {\n title: string,\n action: UDExMastheadDropdownItemAction,\n analyticsName: AnalyticsName,\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-masthead-item</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadItem.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-item\",\n renderer: litRender,\n languageAware: true,\n styles: MastheadItemCss,\n template: MastheadItemTemplate,\n dependencies: [\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fires when item is clicked\n *\n * @allowPreventDefault\n * @public\n * @param {Event} originalEvent the original event object\n * @param {UDExMastheadItem} item the clicked item\n * @param {AnalyticsName} analyticsName the analytics name\n * @param {HTMLElement} sourceNode the source node\n */\n@event(\"item-click\", { bubbles: true })\n\n/**\n * Fires when dropdown is closed\n *\n * @allowPreventDefault\n * @public\n * @param {string} title the title of the item\n * @param {UDExMastheadDropdownItemAction} action the action that caused the event\n * @param {AnalyticsName} analyticsName the analytics name\n */\n@event(\"dropdown-closed\", { bubbles: true })\n\n/**\n * Fires when dropdown is opened\n *\n * @allowPreventDefault\n * @public\n * @param {string} title the title of the item\n * @param {UDExMastheadDropdownItemAction} action the action that caused the event\n * @param {AnalyticsName} analyticsName the analytics name\n */\n@event(\"dropdown-opened\", { bubbles: true })\n\nclass UDExMastheadItem extends UI5Element implements IMastheadItem {\n eventDetails!: {\n \"item-click\": UDExMastheadItemItemClickEventDetail,\n \"dropdown-closed\": UDExMastheadDropdownEventDetail,\n \"dropdown-opened\": UDExMastheadDropdownEventDetail,\n };\n /**\n * Defines sub items for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n subItems: string = \"\";\n\n /**\n * Defines a title for sub menu items\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n menuTitle: string = \"\";\n\n /**\n * Defines the selected item.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n selected!: boolean;\n\n /**\n * Defines if the arrow icon is hidden.\n *\n * @public\n * @default false\n */\n @property({ type: Boolean })\n hideArrowIcon!: boolean;\n\n /**\n * Defines the icon in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String })\n icon: string = \"\";\n\n /**\n * Defines the image in the item.\n *\n * @public\n * @default \"\"\n */\n @property({ type: String })\n image!: string;\n\n /**\n * Defines an alt text for item image\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n imageAlt!: string;\n\n /**\n * Defines the href of the item.\n *\n * @public\n */\n @property({ type: String })\n href!: string;\n\n /**\n * Define the target of the item\n * <b>Note:</b> Standard hyperlink behavior is supported.\n * @public\n */\n @property()\n target: UDExTarget = UDExTarget._self;\n\n /**\n * Controls the ARIA name of the item\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleName?: string;\n\n /**\n * Controls the ARIA role of the item\n *\n * @default undefined\n * @public\n */\n @property({ type: String })\n accessibleRole?: string;\n\n /**\n * Defines an alt text for item icon\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n iconAlt: string = \"\";\n\n /**\n * Hide active border for item\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n hideActiveBorder!: boolean;\n\n /**\n * Defines direction of the text.\n *\n * @private\n */\n @property({ type: String })\n _direction!: string;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines the label for analytics\n *\n * @public\n */\n @property({ type: String })\n label!: string;\n\n /**\n * Slot for the dropdown\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement })\n dropdown?: Array<HTMLElement>;\n\n /**\n * Slot for any content\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true })\n content?: Array<HTMLElement>;\n\n /**\n * Defines the prevents the item from losing focus.\n *\n * @private\n */\n\n @property({ type: Boolean })\n _preventFocusOut!: boolean;\n\n /**\n * Defines the item is a menu close button\n *\n * @private\n */\n @property({ type: Boolean })\n _isMenuCloseBtn?: boolean;\n\n /**\n * Defines if the image failed to load\n *\n * @private\n */\n @property({ type: Boolean })\n _imageLoadError = false;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _profileAvatar!: UDExAvatar;\n _mastheadShell!: UDExMastheadShell;\n\n onEnterDOM(): void {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering(): void {\n this.label = this.eventItemTitle;\n }\n\n onAfterRendering(): void {\n this._profileAvatar = this.profileAvatar;\n this._mastheadShell = this.mastheadShell;\n this.handleDirection();\n if (this.selected && this.hasDropdownSlot && !this.isMobile && !this.isExploreBtn) {\n this.setDropdownInsetStart();\n }\n\n this.handleOutsideClick();\n }\n\n handleOutsideClick(): void {\n document.addEventListener(\"click\", (e: Event) => {\n const target = e.target as HTMLElement;\n const item = target.closest(\"[udex-masthead-item]\");\n if (item !== this && !this.isMobile && this.selected) {\n if (this.isDropdownOpened) {\n this.fireDropdownCloseEvent(this.eventItemTitle, UDExMastheadDropdownItemAction.ClickOutside);\n }\n\n this.selected = false;\n }\n });\n }\n\n handleMouseDown(): void {\n this._preventFocusOut = true;\n }\n\n handleMouseUp(): void {\n this._preventFocusOut = false;\n }\n\n handleFocusout(e: FocusEvent): void {\n if (this.isFocusOutPrevented(e)) {\n return;\n }\n\n this.handleFocusOutForDropdowns(e);\n }\n\n handleFocusOutForDropdowns(e: FocusEvent): void {\n const relatedTarget = e.relatedTarget as HTMLElement;\n const target = e.target as HTMLElement;\n\n if (this.shouldCloseDropdown(relatedTarget, target)) {\n this.closeDropdown();\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n if (isEscape(e) && this.hasDropdownSlot) {\n if (this.isMobile) {\n this.handleKeyEscapeMobile();\n } else {\n this.handleKeyEscape();\n }\n }\n }\n\n handleKeyEscape(): void {\n this.closeDropdown();\n if (this.isProfileBtn) {\n this._profileAvatar.focus();\n } else {\n this.focus();\n }\n }\n\n handleKeyEscapeMobile(): void {\n this.fireDropdownCloseEvent(this.eventItemTitle, UDExMastheadDropdownItemAction.Close);\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n handleItemClick(e: PointerEvent): void {\n if (this.isProfileBtn) {\n this.handleProfileButtonClick();\n }\n this.handleSelectedChange();\n this.fireItemClickEvent(e);\n this.fireDropdownEvents();\n }\n\n handleSelectedChange(): void {\n this.selected = this.isMobile ? true : !this.selected;\n }\n\n handleProfileButtonClick(): void {\n const profile = this.profileSlot;\n if (profile) {\n profile.closeIdentitiesPanel();\n profile.scrollToTopProfileMenu();\n profile._requestRender = true;\n }\n }\n\n handleImageError(): void {\n this._imageLoadError = true;\n }\n\n fireDropdownEvents(): void {\n if (this.hasDropdownSlot) {\n const { Open, Close } = UDExMastheadDropdownItemAction;\n const action = this.selected ? Open : Close;\n if (this.selected) {\n this.fireDropdownOpenEvent(this.eventItemTitle, action);\n } else {\n this.fireDropdownCloseEvent(this.eventItemTitle, action);\n }\n }\n }\n\n fireDropdownCloseEvent(title: string, action: UDExMastheadDropdownItemAction): void {\n this.fireDecoratorEvent(\"dropdown-closed\", { title, action, analyticsName: AnalyticsName.Header });\n }\n\n fireDropdownOpenEvent(title: string, action: UDExMastheadDropdownItemAction): void {\n this.fireDecoratorEvent(\"dropdown-opened\", { title, action, analyticsName: AnalyticsName.Header });\n }\n\n fireItemClickEvent(e: PointerEvent): void {\n this.fireDecoratorEvent(\"item-click\", {\n item: this,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n sourceNode: e.currentTarget as HTMLElement,\n });\n }\n\n setDropdownInsetStart(): void {\n const dropdown = this.dropdownHolder;\n if (dropdown) {\n const rect = dropdown.getBoundingClientRect();\n const marginInlineStart = this.calculateMarginInlineStart(rect);\n\n if (marginInlineStart !== null) {\n dropdown.style.marginInlineStart = `${marginInlineStart - 3}px`;\n }\n }\n }\n\n recalculateDropdownPosition(): void {\n const dropdown = this.dropdownHolder;\n if (dropdown) {\n dropdown.style.marginInlineStart = \"\";\n this.setDropdownInsetStart();\n }\n }\n\n calculateMarginInlineStart(rect: DOMRect): number | null {\n const { left, right } = rect;\n const viewportWidth = document.documentElement.clientWidth;\n\n if (this.isLtrDirection && left < 0) {\n return left * -1 + 15;\n }\n\n if (this.isRtlDirection && left < 0) {\n return left - 15;\n }\n\n if (this.isRtlDirection && right > viewportWidth) {\n return right - viewportWidth + 15;\n }\n\n if (this.isLtrDirection && right > viewportWidth) {\n return viewportWidth - right - 15;\n }\n\n return null;\n }\n\n handleDirection(): void {\n const directionStyles = window\n .getComputedStyle(this)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n\n closeDropdown(): void {\n this.selected = false;\n this.fireDropdownCloseEvent(this.accessibleName || this.eventItemTitle, UDExMastheadDropdownItemAction.Close);\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n getSubItems(): Array<MenuItem> {\n return parseArrayFromString(this.subItems);\n }\n\n private isFocusOutPrevented(e: FocusEvent): boolean {\n return this.isMobile || e.relatedTarget === null || this._preventFocusOut;\n }\n\n private isProfileButtonTarget(relatedTarget: HTMLElement | null): boolean {\n return (relatedTarget?.tagName === \"UDEX-AVATAR\" || relatedTarget?.tagName === \"UDEX-MASTHEAD-ITEM\") && this.isProfileBtn;\n }\n\n private isNavItemTarget(target: HTMLElement): boolean {\n return target.getAttribute(\"slot\") === \"dropdown\" && !this.isProfileBtn;\n }\n\n private isRelatedTargetOutside(relatedTarget: HTMLElement | null): boolean {\n return relatedTarget?.closest(\"[udex-masthead-item]\") === null;\n }\n\n private shouldCloseDropdown(relatedTarget: HTMLElement, target:HTMLElement): boolean {\n return this.isRelatedTargetOutside(relatedTarget)\n || this.isProfileButtonTarget(relatedTarget)\n || this.isNavItemTarget(target);\n }\n\n get dropdownHolder(): HTMLElement {\n return this.getDomElement(\".udex-masthead-item__dropdown\")!;\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get additionalClass(): string {\n const iconClass = (this.icon || this.image) ? \"udex-masthead-item__button--icon\" : \"\";\n const profileClass = this.isProfileBtn ? \"udex-masthead-item__button--profile\" : \"\";\n const exploreClass = this.isExploreBtn ? \"udex-masthead-item__button--explore\" : \"\";\n const supportClass = this.isSupportBtn ? \"udex-masthead-item__button--support\" : \"\";\n const countrySelectorClass = this.isCountrySelectorBtn ? \"udex-masthead-item__button--country-selector\" : \"\";\n return `udex-masthead-item ${iconClass} ${profileClass} ${exploreClass} ${countrySelectorClass} ${supportClass}`.trim();\n }\n\n get profileAvatar(): UDExAvatar {\n return this.querySelector(\"[udex-avatar]\")!;\n }\n\n get iconAltText(): string {\n return this._isMenuCloseBtn ? this.accessibleName || this.icon : this.iconAlt;\n }\n\n get isRtlDirection(): boolean {\n return this._direction === \"rtl\";\n }\n\n get isLtrDirection(): boolean {\n return this._direction === \"ltr\";\n }\n\n get hasHref(): boolean {\n return !!this.href?.length;\n }\n\n get accessibleRoleName(): string {\n return this.accessibleRole ? this.accessibleRole : \"button\";\n }\n\n get selectedClass(): string {\n return this.selected ? \" udex-masthead-item__button--active\" : \"\";\n }\n\n get ariaDescribedBy(): string | undefined {\n const labels = [];\n\n if (this.isTargetBlank) {\n labels.push(`new-win-desc`);\n }\n\n if (this.imageAlt) {\n labels.push(`image-desc`);\n }\n\n return labels.length ? labels.join(\" \").trim() : undefined;\n }\n\n get isDropdownOpened(): boolean {\n return this.hasDropdownSlot && this.selected;\n }\n\n get hasDropdownSlot(): boolean {\n return !!this.getSlottedNodes(\"dropdown\").length;\n }\n\n get hasArrowDown(): boolean {\n return this.hasDropdownSlot && !this.isProfileBtn && !this.icon.length && !this.hideArrowIcon;\n }\n\n get isProfileBtn(): boolean {\n return this.getAttribute(\"slot\") === \"profile\";\n }\n\n get isExploreBtn(): boolean {\n return this.getAttribute(\"slot\") === \"exploreSAP\";\n }\n\n get isCountrySelectorBtn(): boolean {\n return this.getAttribute(\"slot\") === \"countrySelector\";\n }\n\n get isCartBtn(): boolean {\n return this.getAttribute(\"slot\") === \"cart\";\n }\n\n get isSearchBtn(): boolean {\n return this.icon === \"search\";\n }\n\n get isSupportBtn(): boolean {\n return this.getAttribute(\"slot\") === \"support\";\n }\n\n get accessibleLabel(): string {\n return this.accessibleName || this.innerText || (this.isProfileBtn ? translate(UDExMastheadItem, PROFILE) : \"\");\n }\n\n get profileSlot(): UDExMastheadProfileMenu {\n return this.getSlottedNodes<UDExMastheadProfileMenu>(\"dropdown\")[0];\n }\n\n get isMobile(): boolean {\n return BreakpointUtils.isAtMost(\"M\") || this.mastheadShell?._isMobileMode;\n }\n\n get isTargetBlank(): boolean {\n return this.target === UDExTarget._blank;\n }\n\n get openInNewWindowText(): string {\n return translate(UDExMastheadItem, OPENS_IN_A_NEW_WINDOW);\n }\n\n get eventItemTitle(): string {\n if (this.isSearchBtn) {\n return translate(UDExMastheadItem, SEARCH);\n }\n if (this.isCartBtn) {\n return translate(UDExMastheadItem, CART);\n }\n if (this.isProfileBtn) {\n return translate(UDExMastheadItem, PROFILE);\n }\n if (this.isCountrySelectorBtn) {\n return translate(UDExMastheadItem, COUNTRY_SELECTOR);\n }\n if (this.isSupportBtn) {\n return translate(UDExMastheadItem, SUPPORT);\n }\n\n return this.firstChild?.nodeValue?.trim() || \"\";\n }\n\n get buttonAriaExpanded(): boolean | undefined {\n if (!this.hasDropdownSlot) {\n return undefined;\n }\n return this.selected || false;\n }\n\n get imageLoadError(): boolean {\n return this._imageLoadError && this.isCountrySelectorBtn;\n }\n}\n\nUDExMastheadItem.define();\n\nexport default UDExMastheadItem;\nexport type { UDExMastheadDropdownEventDetail, UDExMastheadItemItemClickEventDetail };\n"]}
@@ -16,6 +16,9 @@ export declare enum UDExAspectRatio {
16
16
  type UDExMediaPlayerVideoProgressEventDetail = {
17
17
  progress: number;
18
18
  };
19
+ type UDExMediaPlayerVideojsReadyEventDetail = {
20
+ videojs: any;
21
+ };
19
22
  /**
20
23
  * @class
21
24
  *
@@ -45,6 +48,7 @@ declare class UDExMediaPlayer extends UI5Element {
45
48
  "video25": void;
46
49
  "video50": void;
47
50
  "video75": void;
51
+ "videojsReady": UDExMediaPlayerVideojsReadyEventDetail;
48
52
  };
49
53
  /**
50
54
  * Defines the options object of video.js element
@@ -154,6 +158,17 @@ declare class UDExMediaPlayer extends UI5Element {
154
158
  videoStart: boolean;
155
159
  videoReady: boolean;
156
160
  videoProgress: number;
161
+ private _pendingPlugins;
162
+ /**
163
+ * Registers a custom VideoJS plugin to be applied before player initialization.
164
+ * Must be called before the component renders.
165
+ * For plugins registered after rendering, use the videojsReady event instead.
166
+ *
167
+ * @param name - The plugin name
168
+ * @param plugin - The plugin function or class
169
+ * @public
170
+ */
171
+ registerPlugin(name: string, plugin: (...args: any[]) => any): void;
157
172
  getPlayedTime: (target: EventTarget) => number;
158
173
  calculateVideoProgress(timeWatched: number): void;
159
174
  checkCaptionsAvailability(player: any): void;