@sapudex/web-components 0.184.0 → 0.192.2

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 (145) hide show
  1. package/dist/CountrySelector.d.ts +2 -0
  2. package/dist/CountrySelector.js +5 -1
  3. package/dist/CountrySelector.js.map +1 -1
  4. package/dist/MastheadItem.d.ts +10 -1
  5. package/dist/MastheadItem.js +11 -5
  6. package/dist/MastheadItem.js.map +1 -1
  7. package/dist/MastheadMenu.d.ts +6 -0
  8. package/dist/MastheadMenu.js +3 -0
  9. package/dist/MastheadMenu.js.map +1 -1
  10. package/dist/MastheadMenuItem.d.ts +1 -0
  11. package/dist/MastheadMenuItem.js +3 -0
  12. package/dist/MastheadMenuItem.js.map +1 -1
  13. package/dist/MastheadProfileMenu.d.ts +6 -0
  14. package/dist/MastheadProfileMenu.js +3 -0
  15. package/dist/MastheadProfileMenu.js.map +1 -1
  16. package/dist/MastheadShell.d.ts +34 -4
  17. package/dist/MastheadShell.js +122 -11
  18. package/dist/MastheadShell.js.map +1 -1
  19. package/dist/Pagination.d.ts +3 -2
  20. package/dist/Pagination.js +4 -2
  21. package/dist/Pagination.js.map +1 -1
  22. package/dist/SelectBox.d.ts +2 -0
  23. package/dist/SelectBox.js +5 -1
  24. package/dist/SelectBox.js.map +1 -1
  25. package/dist/Tab.d.ts +4 -13
  26. package/dist/Tab.js +11 -14
  27. package/dist/Tab.js.map +1 -1
  28. package/dist/TabNavigation.js +0 -1
  29. package/dist/TabNavigation.js.map +1 -1
  30. package/dist/TextArea.d.ts +13 -22
  31. package/dist/TextArea.js +30 -33
  32. package/dist/TextArea.js.map +1 -1
  33. package/dist/assets/{bundle.esm-d98e72b5.js → bundle.esm-809b9769.js} +177 -177
  34. package/dist/assets/messagebundle_en-06c0dadc.js +1 -0
  35. package/dist/css/themes/CountrySelector.css +1 -1
  36. package/dist/css/themes/MastheadItem.css +1 -1
  37. package/dist/css/themes/MastheadMenu.css +1 -1
  38. package/dist/css/themes/MastheadMenuItem.css +1 -1
  39. package/dist/css/themes/MastheadProfileMenu.css +1 -1
  40. package/dist/css/themes/MastheadShell.css +1 -1
  41. package/dist/css/themes/MediaPlayer.css +1 -1
  42. package/dist/css/themes/RatingIndicator.css +1 -1
  43. package/dist/css/themes/Search.css +1 -1
  44. package/dist/css/themes/Slider.css +1 -1
  45. package/dist/css/themes/TextArea.css +1 -1
  46. package/dist/custom-elements-internal.json +14 -12
  47. package/dist/custom-elements.json +14 -12
  48. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  49. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  50. package/dist/generated/i18n/i18n-defaults.js +2 -1
  51. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  52. package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
  53. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  54. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +2 -2
  55. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  56. package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -9
  57. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  58. package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
  59. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  60. package/dist/generated/templates/TabHeaderTemplate.lit.js +1 -1
  61. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
  62. package/dist/generated/templates/TabNavigationTemplate.lit.js +1 -1
  63. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
  64. package/dist/generated/templates/TextAreaTemplate.lit.js +5 -4
  65. package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
  66. package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
  67. package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
  68. package/dist/generated/themes/CountrySelector.css.js +1 -1
  69. package/dist/generated/themes/CountrySelector.css.js.map +1 -1
  70. package/dist/generated/themes/MastheadItem.css.js +1 -1
  71. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  72. package/dist/generated/themes/MastheadMenu.css.js +1 -1
  73. package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
  74. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  75. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  76. package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
  77. package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
  78. package/dist/generated/themes/MastheadShell.css.js +1 -1
  79. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  80. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  81. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  82. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  83. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  84. package/dist/generated/themes/Search.css.js +1 -1
  85. package/dist/generated/themes/Search.css.js.map +1 -1
  86. package/dist/generated/themes/Slider.css.js +1 -1
  87. package/dist/generated/themes/Slider.css.js.map +1 -1
  88. package/dist/generated/themes/TextArea.css.js +1 -1
  89. package/dist/generated/themes/TextArea.css.js.map +1 -1
  90. package/dist/i18n/messagebundle.properties +3 -0
  91. package/dist/i18n/messagebundle_en.properties +1 -0
  92. package/dist/web-types.json +3 -3
  93. package/package.json +1 -1
  94. package/src/CountrySelector.hbs +30 -30
  95. package/src/CountrySelector.ts +18 -13
  96. package/src/MastheadItem.hbs +3 -3
  97. package/src/MastheadItem.ts +22 -10
  98. package/src/MastheadMenu.ts +8 -0
  99. package/src/MastheadMenuItem.hbs +2 -1
  100. package/src/MastheadMenuItem.ts +4 -0
  101. package/src/MastheadProfileMenu.ts +8 -0
  102. package/src/MastheadShell.hbs +69 -67
  103. package/src/MastheadShell.ts +154 -16
  104. package/src/Pagination.hbs +2 -2
  105. package/src/Pagination.ts +8 -5
  106. package/src/SelectBox.ts +7 -1
  107. package/src/Tab.ts +18 -29
  108. package/src/TabHeader.hbs +1 -1
  109. package/src/TabNavigation.hbs +1 -2
  110. package/src/TabNavigation.ts +2 -1
  111. package/src/TextArea.hbs +21 -21
  112. package/src/TextArea.ts +82 -78
  113. package/src/TextField.hbs +4 -2
  114. package/src/generated/i18n/i18n-defaults.ts +2 -2
  115. package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
  116. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +2 -2
  117. package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -9
  118. package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
  119. package/src/generated/templates/TabHeaderTemplate.lit.ts +1 -1
  120. package/src/generated/templates/TabNavigationTemplate.lit.ts +1 -1
  121. package/src/generated/templates/TextAreaTemplate.lit.ts +5 -4
  122. package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
  123. package/src/generated/themes/CountrySelector.css.ts +1 -1
  124. package/src/generated/themes/MastheadItem.css.ts +1 -1
  125. package/src/generated/themes/MastheadMenu.css.ts +1 -1
  126. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  127. package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
  128. package/src/generated/themes/MastheadShell.css.ts +1 -1
  129. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  130. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  131. package/src/generated/themes/Search.css.ts +1 -1
  132. package/src/generated/themes/Slider.css.ts +1 -1
  133. package/src/generated/themes/TextArea.css.ts +1 -1
  134. package/src/i18n/messagebundle.properties +3 -0
  135. package/src/i18n/messagebundle_en.properties +1 -0
  136. package/src/themes/CountrySelector.css +23 -16
  137. package/src/themes/MastheadItem.css +40 -2
  138. package/src/themes/MastheadMenu.css +72 -0
  139. package/src/themes/MastheadMenuItem.css +1 -0
  140. package/src/themes/MastheadProfileMenu.css +8 -0
  141. package/src/themes/MastheadShell.css +59 -27
  142. package/src/themes/MediaPlayer.css +18 -9
  143. package/src/themes/Search.css +4 -4
  144. package/src/themes/TextArea.css +12 -1
  145. package/dist/assets/messagebundle_en-4997b226.js +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@sapudex/web-components",
4
- "version": "0.184.0",
4
+ "version": "0.192.2",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -3944,7 +3944,7 @@
3944
3944
  {
3945
3945
  "name": "pages",
3946
3946
  "description": "Defines number of pages.",
3947
- "value": { "type": "number | undefined" }
3947
+ "value": { "type": "number", "default": "0" }
3948
3948
  },
3949
3949
  {
3950
3950
  "name": "type",
@@ -3984,7 +3984,7 @@
3984
3984
  {
3985
3985
  "name": "pages",
3986
3986
  "description": "Defines number of pages.",
3987
- "value": { "type": "number | undefined" }
3987
+ "value": { "type": "number" }
3988
3988
  },
3989
3989
  {
3990
3990
  "name": "type",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapudex/web-components",
3
- "version": "0.184.0",
3
+ "version": "0.192.2",
4
4
  "publishConfig": {
5
5
  "registry": "https://registry.npmjs.org/"
6
6
  },
@@ -20,9 +20,9 @@
20
20
  </udex-dropdown>
21
21
  {{#if supportingText}}
22
22
  <udex-status-message
23
- ?disabled="{{disabled}}"
24
- supporting-text="{{supportingText}}"
25
- value-state="{{valueState}}">
23
+ ?disabled="{{disabled}}"
24
+ supporting-text="{{supportingText}}"
25
+ value-state="{{valueState}}">
26
26
  </udex-status-message>
27
27
  {{/if}}
28
28
  </div>
@@ -34,33 +34,33 @@
34
34
  slot="trigger">
35
35
  {{#if showFlagImages}}
36
36
  <img
37
- class="udex-country-selector__image"
38
- aria-label="{{flagAriaLabel}}"
39
- style="background-position-x: {{selectedCountryFlagX}}; background-position-y: {{selectedCountryFlagY}}">
37
+ class="udex-country-selector__image"
38
+ aria-label="{{flagAriaLabel}}"
39
+ style="background-position-x: {{selectedCountryFlagX}}; background-position-y: {{selectedCountryFlagY}}">
40
40
  {{/if}}
41
- <udex-text-field
42
- label="{{effectiveAriaLabel}}"
43
- id="udexTextField"
44
- class="udex-country-selector__text"
45
- value="{{selectedCountryName}}"
46
- value-state="{{valueState}}"
47
- direction="left"
48
- aria-label="{{effectiveAriaLabel}}"
49
- accessible-name="{{supportingText}}"
50
- accessible-name-ref="{{accessibleNameRef}}"
51
- aria-controls="{{ariaControls}}"
52
- role="combobox"
53
- aria-haspopup="true"
54
- aria-expanded="{{_open}}"
55
- ?required="{{required}}"
56
- ?disabled="{{disabled}}"
57
- ?readonly="{{readonly}}"
58
- ?displayonly="{{displayonly}}"
59
- @click-trigger="{{handleKeyDown}}"
60
- @mousedown="{{handleInputMouseDown}}"
61
- icon="{{triggerIcon}}"
62
- accessible-icon-name="{{effectiveAriaLabel}}"
63
- maxlength="0">
64
- </udex-text-field>
41
+ <udex-text-field
42
+ label="{{effectiveAriaLabel}}"
43
+ id="udexTextField"
44
+ class="udex-country-selector__text"
45
+ value="{{selectedCountryName}}"
46
+ value-state="{{valueState}}"
47
+ direction="left"
48
+ aria-label="{{effectiveAriaLabel}}"
49
+ accessible-name="{{supportingText}}"
50
+ accessible-name-ref="{{accessibleNameRef}}"
51
+ aria-controls="{{ariaControls}}"
52
+ role="combobox"
53
+ aria-haspopup="true"
54
+ aria-expanded="{{_open}}"
55
+ ?required="{{required}}"
56
+ ?disabled="{{disabled}}"
57
+ ?readonly="{{readonly}}"
58
+ ?displayonly="{{displayonly}}"
59
+ @click-trigger="{{handleKeyDown}}"
60
+ @mousedown="{{handleInputMouseDown}}"
61
+ icon="{{triggerIcon}}"
62
+ accessible-icon-name="{{effectiveAriaLabel}}"
63
+ maxlength="0">
64
+ </udex-text-field>
65
65
  </div>
66
66
  {{/inline}}
@@ -269,10 +269,10 @@ class CountrySelector extends UDExSearchableListBase {
269
269
 
270
270
  countryList: Country[] = CountryListDB;
271
271
  selectedCountry!: Country | undefined;
272
+ _trigger!: HTMLElement;
272
273
 
273
274
  _dropdown!: UDExDropdown;
274
275
  _search!: Search;
275
-
276
276
  _handleResizeBound: ResizeObserverCallback;
277
277
 
278
278
  static i18nBundle: I18nBundle;
@@ -316,6 +316,11 @@ class CountrySelector extends UDExSearchableListBase {
316
316
  onAfterRendering() {
317
317
  this._dropdown = this.getDropdown();
318
318
  this._search = this.getSearch();
319
+ this._trigger = this.getTrigger();
320
+ }
321
+
322
+ getTrigger(): HTMLElement {
323
+ return this.shadowRoot!.querySelector(".udex-country-selector__dropdown")!;
319
324
  }
320
325
 
321
326
  _dropdownBeforeOpen() {
@@ -346,7 +351,7 @@ class CountrySelector extends UDExSearchableListBase {
346
351
  }
347
352
 
348
353
  _handleResize() {
349
- this._dropdown.style.setProperty("--udex-dropdown-pane-width", `${this.offsetWidth}px`);
354
+ this._dropdown.style.setProperty("--udex-dropdown-pane-width", `${this._trigger.offsetWidth}px`);
350
355
  }
351
356
 
352
357
  get ariaControls(): string | null | undefined {
@@ -354,19 +359,19 @@ class CountrySelector extends UDExSearchableListBase {
354
359
  return list?.getAttribute("id");
355
360
  }
356
361
 
357
- get selectedCountryFlagX() {
362
+ get selectedCountryFlagX(): string | undefined {
358
363
  return this.selectedCountry?.flagX;
359
364
  }
360
365
 
361
- get selectedCountryFlagY() {
366
+ get selectedCountryFlagY(): string | undefined {
362
367
  return this.selectedCountry?.flagY;
363
368
  }
364
369
 
365
- get selectedCountryName() {
370
+ get selectedCountryName(): string | null {
366
371
  return this.selectedCountry ? this.getCountryLabel(this.selectedCountry.countryName, this.selectedCountry.localName) : "";
367
372
  }
368
373
 
369
- get flagAriaLabel():string {
374
+ get flagAriaLabel(): string {
370
375
  return this.getCountryLabel(this.selectedCountry?.countryName, this.selectedCountry?.localName) || "None";
371
376
  }
372
377
 
@@ -374,12 +379,12 @@ class CountrySelector extends UDExSearchableListBase {
374
379
  return this._open ? "navigation-up-arrow" : "navigation-down-arrow";
375
380
  }
376
381
 
377
- get countrySelectorClasses() {
382
+ get countrySelectorClasses(): string {
378
383
  const baseClass = "udex-country-selector__dropdown";
379
384
  return this.hideFlagImages ? `${baseClass} ${baseClass}--hide-flag` : baseClass;
380
385
  }
381
386
 
382
- get countrySelectorTriggerClasses() {
387
+ get countrySelectorTriggerClasses(): string {
383
388
  const baseClass = "udex-country-selector__trigger";
384
389
  const classes = [baseClass];
385
390
 
@@ -398,15 +403,15 @@ class CountrySelector extends UDExSearchableListBase {
398
403
  return classes.join(" ");
399
404
  }
400
405
 
401
- get showFlagImages() {
406
+ get showFlagImages(): boolean {
402
407
  return !this.hideFlagImages;
403
408
  }
404
409
 
405
- get isOpenerDisabled() {
410
+ get isOpenerDisabled(): boolean {
406
411
  return this.readonly || this.displayonly || this.disabled;
407
412
  }
408
413
 
409
- getItemTemplate(country: Country) {
414
+ getItemTemplate(country: Country): string | undefined {
410
415
  return this.hideFlagImages ? undefined : `<span class="udex-country-selector-item__image" style="background-position:${country.flagX}">`;
411
416
  }
412
417
 
@@ -507,7 +512,7 @@ class CountrySelector extends UDExSearchableListBase {
507
512
  }
508
513
  }
509
514
 
510
- dropDownClose():void {
515
+ dropDownClose(): void {
511
516
  this.getDropdownPopover()?.close(false, false, true);
512
517
  }
513
518
 
@@ -532,7 +537,7 @@ class CountrySelector extends UDExSearchableListBase {
532
537
  return this.shadowRoot!.querySelector<Search>("[udex-search]")!;
533
538
  }
534
539
 
535
- getDropdownPopover() {
540
+ getDropdownPopover(): Popover {
536
541
  return this._dropdown.shadowRoot!.querySelector<Popover>("[ui5-popover]")!;
537
542
  }
538
543
 
@@ -15,7 +15,7 @@
15
15
  href="{{href}}"
16
16
  aria-label="{{accessibleLabel}}"
17
17
  aria-describedby="{{ariaDescribedBy}}"
18
- @click="{{handleNavigationItemClick}}">
18
+ @click="{{handleItemClick}}">
19
19
  {{> content}}
20
20
  </a>
21
21
  {{else if isProfileBtn}}
@@ -29,7 +29,7 @@
29
29
  aria-haspopup="{{hasDropdownSlot}}"
30
30
  aria-label="{{accessibleLabel}}"
31
31
  @keydown="{{handleKeyDown}}"
32
- @click="{{handleNavigationItemClick}}">
32
+ @click="{{handleItemClick}}">
33
33
  {{> content}}
34
34
  </span>
35
35
  {{#if showDropdown}}
@@ -45,7 +45,7 @@
45
45
  aria-haspopup="{{hasDropdownSlot}}"
46
46
  aria-label="{{accessibleLabel}}"
47
47
  @keydown="{{handleKeyDown}}"
48
- @click="{{handleNavigationItemClick}}">
48
+ @click="{{handleItemClick}}">
49
49
  {{> content}}
50
50
  </button>
51
51
  {{#if showDropdown}}
@@ -13,9 +13,8 @@ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
13
13
  import { OPENS_IN_A_NEW_WINDOW, PROFILE } from "./generated/i18n/i18n-defaults.js";
14
14
  import UDExMastheadMenu from "./MastheadMenu.js";
15
15
  import UDExAvatar from "./Avatar.js";
16
- import MastheadShell from "./MastheadShell.js";
17
16
  import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
18
-
17
+ import UDExMastheadShell from "./MastheadShell.js";
19
18
  import MastheadItemTemplate from "./generated/templates/MastheadItemTemplate.lit.js";
20
19
 
21
20
  // Styles
@@ -212,6 +211,14 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
212
211
  @property({ type: String })
213
212
  _direction?: string;
214
213
 
214
+ /**
215
+ * Defines the mobile mode for component
216
+ *
217
+ * @private
218
+ */
219
+ @property({ type: Boolean })
220
+ _isMobileMode!: boolean;
221
+
215
222
  /**
216
223
  * Slot for the dropdown
217
224
  *
@@ -231,20 +238,23 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
231
238
  content?: Array<HTMLElement>;
232
239
 
233
240
  _profileAvatar!: UDExAvatar;
241
+ _mastheadShell!: UDExMastheadShell;
242
+
234
243
  static i18nBundle: I18nBundle;
235
244
 
236
245
  static async onDefine(): Promise<void> {
237
246
  UDExMastheadItem.i18nBundle = await getI18nBundle("@udex/web-components");
238
247
  }
239
248
 
240
- onEnterDOM() {
249
+ onEnterDOM(): void {
241
250
  if (isDesktop()) {
242
251
  this.setAttribute("desktop", "");
243
252
  }
244
253
  }
245
254
 
246
- onAfterRendering() {
255
+ onAfterRendering(): void {
247
256
  this._profileAvatar = this.profileAvatar;
257
+ this._mastheadShell = this.mastheadShell;
248
258
  this.handleDirection();
249
259
  if (this.selected && this.hasDropdownSlot && !this.isMobile && !this.isExploreBtn) {
250
260
  this.setDropdownInsetStart();
@@ -280,13 +290,11 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
280
290
  }
281
291
 
282
292
  handleKeyEscapeMobile(): void {
283
- const mastheadShell: MastheadShell = document.querySelector<MastheadShell>("[udex-masthead-shell]")!;
284
-
285
- mastheadShell.closeMobileMenu();
286
- mastheadShell.mobileBtn?.focus();
293
+ this._mastheadShell.closeMobileMenu();
294
+ this._mastheadShell.mobileBtn?.focus();
287
295
  }
288
296
 
289
- handleNavigationItemClick(e: Event): void {
297
+ handleItemClick(e: Event): void {
290
298
  this.selected = this.isMobile ? true : !this.selected;
291
299
 
292
300
  this.fireEvent<ItemClickEventDetail>("item-click", {
@@ -357,6 +365,10 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
357
365
  return this.parseArrayFromString(this.subItems);
358
366
  }
359
367
 
368
+ get mastheadShell(): UDExMastheadShell {
369
+ return document.querySelector<UDExMastheadShell>("[udex-masthead-shell]")!;
370
+ }
371
+
360
372
  get additionalClass(): string {
361
373
  const iconClass = this.icon ? "udex-masthead-item__button--icon" : "";
362
374
  const profileClass = this.isProfileBtn ? "udex-masthead-item__button--profile" : "";
@@ -435,7 +447,7 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
435
447
  }
436
448
 
437
449
  get isMobile(): boolean {
438
- return window.innerWidth < breakpointSizeM;
450
+ return window.innerWidth < breakpointSizeM || this.mastheadShell?._isMobileMode;
439
451
  }
440
452
 
441
453
  get isTargetBlank(): boolean {
@@ -99,6 +99,14 @@ class UDExMastheadMenu extends UI5Element {
99
99
  @property({ type: String, defaultValue: "[]" })
100
100
  subItems!: string;
101
101
 
102
+ /**
103
+ * Defines the mobile mode for component
104
+ *
105
+ * @private
106
+ */
107
+ @property({ type: Boolean })
108
+ _isMobileMode!: boolean;
109
+
102
110
  handleKeyDown(e: KeyboardEvent): void {
103
111
  this.handleUpArrow(e);
104
112
  this.handleDownArrow(e);
@@ -11,7 +11,7 @@
11
11
  aria-describedby="{{ariaDescribedby}}"
12
12
  role="{{accessibleRoleText}}"
13
13
  href="{{url}}"
14
- part="menu-item-link"
14
+ part="{{partAttr}}"
15
15
  target="{{target}}">
16
16
  {{#if iconStart}}
17
17
  {{>arrow-left}}
@@ -25,6 +25,7 @@
25
25
  </a>
26
26
  {{#if badge}}
27
27
  <udex-badge
28
+ part="badge"
28
29
  class="udex-masthead-menu-item-badge"
29
30
  type="Number"
30
31
  number-design="Blue"
@@ -196,6 +196,10 @@ class UDExMastheadMenuItem extends UI5Element {
196
196
  get accessibleRoleText(): string | null {
197
197
  return this.accessibleRole ? this.accessibleRole : null;
198
198
  }
199
+
200
+ get partAttr(): string {
201
+ return this.badge ? "menu-item-link-badge" : "menu-item-link";
202
+ }
199
203
  }
200
204
 
201
205
  UDExMastheadMenuItem.define();
@@ -112,6 +112,14 @@ class UDExMastheadProfileMenu extends UI5Element {
112
112
  @property()
113
113
  logoutUrl!: string;
114
114
 
115
+ /**
116
+ * Defines the mobile mode for component
117
+ *
118
+ * @private
119
+ */
120
+ @property({ type: Boolean })
121
+ _isMobileMode!: boolean;
122
+
115
123
  /**
116
124
  * Placeholder for message strip.
117
125
  *
@@ -1,15 +1,19 @@
1
- <div class="udex-masthead-shell" @keydown="{{handleKeyDown}}">
1
+ <header class="udex-masthead-shell" @keydown="{{handleKeyDown}}">
2
2
  <div class="udex-masthead-shell__main-content">
3
- {{#if logoUrl}}
4
- {{>logo}}
5
- {{/if}}
3
+ <div class="udex-masthead-shell__landing-wrap">
4
+ {{#if logoUrl}}
5
+ {{>logo}}
6
+ {{/if}}
6
7
 
7
- {{#if siteLabel}}
8
- {{>siteLabel}}
9
- {{/if}}
8
+ {{#if siteLabel}}
9
+ {{>siteLabel}}
10
+ {{/if}}
11
+ </div>
10
12
 
11
13
  {{#if isMainMenuVisible}}
12
- <nav aria-label="{{mainNavigationAriaLabel}}">
14
+ <nav
15
+ class="udex-masthead-shell__nav"
16
+ aria-label="{{mainNavigationAriaLabel}}">
13
17
  <ul
14
18
  class="udex-masthead-shell__main-menu"
15
19
  aria-label="{{mainNavigationAriaLabel}}">
@@ -39,67 +43,65 @@
39
43
  {{/if}}
40
44
  {{/if}}
41
45
 
42
- {{#if isRightMenuVisible}}
43
- <div class="udex-masthead-shell__right-menu">
44
- {{#if hasMobileMenuButtons}}
45
- <udex-masthead-item
46
- @ui5-item-click="{{handleMobileMenuClick}}"
47
- class="udex-masthead-shell__menu-btn"
48
- accessible-role="button"
49
- icon="menu2"
50
- part="menu-open-btn"
51
- accessible-name="menu">
52
- <slot slot="dropdown" name="mobileMenu"></slot>
53
- </udex-masthead-item>
54
- {{/if}}
55
- {{#if hasExploreSAP}}
56
- <div
57
- class="udex-masthead-shell__explore"
58
- @ui5-item-click="{{setSelectedItem}}">
59
- <slot name="exploreSAP"></slot>
60
- </div>
61
- {{/if}}
62
- {{#if hasSearch}}
63
- <div class="udex-masthead-shell__search-icon">
64
- <udex-masthead-item
65
- class="udex-masthead-shell__search-btn"
66
- icon="search"
67
- @click="{{handleSearchClick}}"
68
- accessible-name="search">
69
- </udex-masthead-item>
70
- </div>
71
- {{/if}}
72
- {{#if hasCart}}
73
- <div
74
- class="udex-masthead-shell__cart"
75
- @ui5-item-click="{{setSelectedItem}}"
76
- @click="{{handleCartClick}}">
77
- <slot name="cart"></slot>
78
- </div>
79
- {{/if}}
80
- {{#if hasProfile}}
81
- <div
82
- class="udex-masthead-shell__profile"
83
- @ui5-item-click="{{setSelectedItem}}"
84
- @click="{{handleProfileClick}}">
85
- <slot name="profile"></slot>
86
- </div>
87
- {{/if}}
88
- {{#if hasMobileMenuButtons}}
46
+ <div class="udex-masthead-shell__right-menu">
47
+ {{#if hasMobileMenuButtons}}
48
+ <udex-masthead-item
49
+ @ui5-item-click="{{handleMobileMenuClick}}"
50
+ class="udex-masthead-shell__menu-btn"
51
+ accessible-role="button"
52
+ icon="menu2"
53
+ part="menu-open-btn"
54
+ accessible-name="menu">
55
+ <slot slot="dropdown" name="mobileMenu"></slot>
56
+ </udex-masthead-item>
57
+ {{/if}}
58
+ {{#if hasExploreSAP}}
59
+ <div
60
+ class="udex-masthead-shell__explore"
61
+ @ui5-item-click="{{setSelectedItem}}">
62
+ <slot name="exploreSAP"></slot>
63
+ </div>
64
+ {{/if}}
65
+ {{#if hasSearch}}
66
+ <div class="udex-masthead-shell__search-icon udex-masthead-shell__item_icon">
89
67
  <udex-masthead-item
90
- @keydown="{{handleEnterAndSpaceOnCloseBtn}}"
91
- @ui5-item-click="{{handleMobileCloseClick}}"
92
- class="udex-masthead-shell__close-btn"
93
- accessible-role="button"
94
- icon="decline"
95
- accessible-name="close"
96
- part="menu-close-btn"
97
- hide-active-border>
68
+ class="udex-masthead-shell__search-btn"
69
+ icon="search"
70
+ @click="{{handleSearchClick}}"
71
+ accessible-name="search">
98
72
  </udex-masthead-item>
99
- {{/if}}
100
- </div>
101
- {{/if}}
102
- </div>
73
+ </div>
74
+ {{/if}}
75
+ {{#if hasCart}}
76
+ <div
77
+ class="udex-masthead-shell__cart udex-masthead-shell__item_icon"
78
+ @ui5-item-click="{{setSelectedItem}}"
79
+ @click="{{handleCartClick}}">
80
+ <slot name="cart"></slot>
81
+ </div>
82
+ {{/if}}
83
+ {{#if hasProfile}}
84
+ <div
85
+ class="udex-masthead-shell__profile udex-masthead-shell__item_icon"
86
+ @ui5-item-click="{{setSelectedItem}}"
87
+ @click="{{handleProfileClick}}">
88
+ <slot name="profile"></slot>
89
+ </div>
90
+ {{/if}}
91
+ {{#if hasMobileMenuButtons}}
92
+ <udex-masthead-item
93
+ @keydown="{{handleEnterAndSpaceOnCloseBtn}}"
94
+ @ui5-item-click="{{handleMobileCloseClick}}"
95
+ class="udex-masthead-shell__close-btn"
96
+ accessible-role="button"
97
+ icon="decline"
98
+ accessible-name="close"
99
+ part="menu-close-btn"
100
+ hide-active-border>
101
+ </udex-masthead-item>
102
+ {{/if}}
103
+ </div>
104
+ </header>
103
105
 
104
106
  {{#*inline "item"}}
105
107
  <li