@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.
- package/dist/CountrySelector.d.ts +2 -0
- package/dist/CountrySelector.js +5 -1
- package/dist/CountrySelector.js.map +1 -1
- package/dist/MastheadItem.d.ts +10 -1
- package/dist/MastheadItem.js +11 -5
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +6 -0
- package/dist/MastheadMenu.js +3 -0
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMenuItem.d.ts +1 -0
- package/dist/MastheadMenuItem.js +3 -0
- package/dist/MastheadMenuItem.js.map +1 -1
- package/dist/MastheadProfileMenu.d.ts +6 -0
- package/dist/MastheadProfileMenu.js +3 -0
- package/dist/MastheadProfileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +34 -4
- package/dist/MastheadShell.js +122 -11
- package/dist/MastheadShell.js.map +1 -1
- package/dist/Pagination.d.ts +3 -2
- package/dist/Pagination.js +4 -2
- package/dist/Pagination.js.map +1 -1
- package/dist/SelectBox.d.ts +2 -0
- package/dist/SelectBox.js +5 -1
- package/dist/SelectBox.js.map +1 -1
- package/dist/Tab.d.ts +4 -13
- package/dist/Tab.js +11 -14
- package/dist/Tab.js.map +1 -1
- package/dist/TabNavigation.js +0 -1
- package/dist/TabNavigation.js.map +1 -1
- package/dist/TextArea.d.ts +13 -22
- package/dist/TextArea.js +30 -33
- package/dist/TextArea.js.map +1 -1
- package/dist/assets/{bundle.esm-d98e72b5.js → bundle.esm-809b9769.js} +177 -177
- package/dist/assets/messagebundle_en-06c0dadc.js +1 -0
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenu.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/MediaPlayer.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/TextArea.css +1 -1
- package/dist/custom-elements-internal.json +14 -12
- package/dist/custom-elements.json +14 -12
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/MastheadItemTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +2 -2
- package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +8 -9
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js +1 -1
- package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.js +1 -1
- package/dist/generated/templates/TabHeaderTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/TabNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextAreaTemplate.lit.js +5 -4
- package/dist/generated/templates/TextAreaTemplate.lit.js.map +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js +1 -1
- package/dist/generated/templates/TextFieldTemplate.lit.js.map +1 -1
- package/dist/generated/themes/CountrySelector.css.js +1 -1
- package/dist/generated/themes/CountrySelector.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MediaPlayer.css.js +1 -1
- package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
- package/dist/generated/themes/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/Search.css.js +1 -1
- package/dist/generated/themes/Search.css.js.map +1 -1
- package/dist/generated/themes/Slider.css.js +1 -1
- package/dist/generated/themes/Slider.css.js.map +1 -1
- package/dist/generated/themes/TextArea.css.js +1 -1
- package/dist/generated/themes/TextArea.css.js.map +1 -1
- package/dist/i18n/messagebundle.properties +3 -0
- package/dist/i18n/messagebundle_en.properties +1 -0
- package/dist/web-types.json +3 -3
- package/package.json +1 -1
- package/src/CountrySelector.hbs +30 -30
- package/src/CountrySelector.ts +18 -13
- package/src/MastheadItem.hbs +3 -3
- package/src/MastheadItem.ts +22 -10
- package/src/MastheadMenu.ts +8 -0
- package/src/MastheadMenuItem.hbs +2 -1
- package/src/MastheadMenuItem.ts +4 -0
- package/src/MastheadProfileMenu.ts +8 -0
- package/src/MastheadShell.hbs +69 -67
- package/src/MastheadShell.ts +154 -16
- package/src/Pagination.hbs +2 -2
- package/src/Pagination.ts +8 -5
- package/src/SelectBox.ts +7 -1
- package/src/Tab.ts +18 -29
- package/src/TabHeader.hbs +1 -1
- package/src/TabNavigation.hbs +1 -2
- package/src/TabNavigation.ts +2 -1
- package/src/TextArea.hbs +21 -21
- package/src/TextArea.ts +82 -78
- package/src/TextField.hbs +4 -2
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/MastheadItemTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +2 -2
- package/src/generated/templates/MastheadShellTemplate.lit.ts +8 -9
- package/src/generated/templates/PaginationTemplate.lit.ts +1 -1
- package/src/generated/templates/TabHeaderTemplate.lit.ts +1 -1
- package/src/generated/templates/TabNavigationTemplate.lit.ts +1 -1
- package/src/generated/templates/TextAreaTemplate.lit.ts +5 -4
- package/src/generated/templates/TextFieldTemplate.lit.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMenu.css.ts +1 -1
- package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/MediaPlayer.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/Search.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/TextArea.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/themes/CountrySelector.css +23 -16
- package/src/themes/MastheadItem.css +40 -2
- package/src/themes/MastheadMenu.css +72 -0
- package/src/themes/MastheadMenuItem.css +1 -0
- package/src/themes/MastheadProfileMenu.css +8 -0
- package/src/themes/MastheadShell.css +59 -27
- package/src/themes/MediaPlayer.css +18 -9
- package/src/themes/Search.css +4 -4
- package/src/themes/TextArea.css +12 -1
- package/dist/assets/messagebundle_en-4997b226.js +0 -1
package/dist/web-types.json
CHANGED
|
@@ -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.
|
|
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
|
|
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
|
|
3987
|
+
"value": { "type": "number" }
|
|
3988
3988
|
},
|
|
3989
3989
|
{
|
|
3990
3990
|
"name": "type",
|
package/package.json
CHANGED
package/src/CountrySelector.hbs
CHANGED
|
@@ -20,9 +20,9 @@
|
|
|
20
20
|
</udex-dropdown>
|
|
21
21
|
{{#if supportingText}}
|
|
22
22
|
<udex-status-message
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
class="udex-country-selector__image"
|
|
38
|
+
aria-label="{{flagAriaLabel}}"
|
|
39
|
+
style="background-position-x: {{selectedCountryFlagX}}; background-position-y: {{selectedCountryFlagY}}">
|
|
40
40
|
{{/if}}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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}}
|
package/src/CountrySelector.ts
CHANGED
|
@@ -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
|
|
package/src/MastheadItem.hbs
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
href="{{href}}"
|
|
16
16
|
aria-label="{{accessibleLabel}}"
|
|
17
17
|
aria-describedby="{{ariaDescribedBy}}"
|
|
18
|
-
@click="{{
|
|
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="{{
|
|
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="{{
|
|
48
|
+
@click="{{handleItemClick}}">
|
|
49
49
|
{{> content}}
|
|
50
50
|
</button>
|
|
51
51
|
{{#if showDropdown}}
|
package/src/MastheadItem.ts
CHANGED
|
@@ -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
|
-
|
|
284
|
-
|
|
285
|
-
mastheadShell.closeMobileMenu();
|
|
286
|
-
mastheadShell.mobileBtn?.focus();
|
|
293
|
+
this._mastheadShell.closeMobileMenu();
|
|
294
|
+
this._mastheadShell.mobileBtn?.focus();
|
|
287
295
|
}
|
|
288
296
|
|
|
289
|
-
|
|
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 {
|
package/src/MastheadMenu.ts
CHANGED
|
@@ -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);
|
package/src/MastheadMenuItem.hbs
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
aria-describedby="{{ariaDescribedby}}"
|
|
12
12
|
role="{{accessibleRoleText}}"
|
|
13
13
|
href="{{url}}"
|
|
14
|
-
part="
|
|
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"
|
package/src/MastheadMenuItem.ts
CHANGED
|
@@ -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
|
*
|
package/src/MastheadShell.hbs
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
<
|
|
1
|
+
<header class="udex-masthead-shell" @keydown="{{handleKeyDown}}">
|
|
2
2
|
<div class="udex-masthead-shell__main-content">
|
|
3
|
-
|
|
4
|
-
{{
|
|
5
|
-
|
|
3
|
+
<div class="udex-masthead-shell__landing-wrap">
|
|
4
|
+
{{#if logoUrl}}
|
|
5
|
+
{{>logo}}
|
|
6
|
+
{{/if}}
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
{{#if siteLabel}}
|
|
9
|
+
{{>siteLabel}}
|
|
10
|
+
{{/if}}
|
|
11
|
+
</div>
|
|
10
12
|
|
|
11
13
|
{{#if isMainMenuVisible}}
|
|
12
|
-
<nav
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
accessible-
|
|
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
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|