@sapudex/web-components 0.111.0 → 0.114.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/.npmrc +1 -2
- package/bundle.esm.js +1 -0
- package/dist/AccordionItem.d.ts +7 -0
- package/dist/AccordionItem.js +6 -2
- package/dist/AccordionItem.js.map +1 -1
- package/dist/CountrySelector.d.ts +5 -7
- package/dist/CountrySelector.js +12 -7
- package/dist/CountrySelector.js.map +1 -1
- package/dist/Dropdown.d.ts +10 -0
- package/dist/Dropdown.js +10 -0
- package/dist/Dropdown.js.map +1 -1
- package/dist/Footer.d.ts +40 -1
- package/dist/Footer.js +151 -1
- package/dist/Footer.js.map +1 -1
- package/dist/InputGroup.d.ts +75 -0
- package/dist/InputGroup.js +101 -0
- package/dist/InputGroup.js.map +1 -0
- package/dist/MastheadMobileMenu.d.ts +4 -1
- package/dist/MastheadMobileMenu.js +10 -3
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/PhoneNumberField.d.ts +8 -0
- package/dist/PhoneNumberField.js +23 -10
- package/dist/PhoneNumberField.js.map +1 -1
- package/dist/Search.d.ts +58 -2
- package/dist/Search.js +159 -12
- package/dist/Search.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +5 -1
- package/dist/SecondaryNavigation.js +18 -2
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SelectBox.d.ts +6 -0
- package/dist/SelectBox.js +14 -1
- package/dist/SelectBox.js.map +1 -1
- package/dist/Table.d.ts +5 -5
- package/dist/Table.js +5 -5
- package/dist/Table.js.map +1 -1
- package/dist/Tag.d.ts +7 -1
- package/dist/Tag.js +6 -2
- package/dist/Tag.js.map +1 -1
- package/dist/TextArea.js.map +1 -1
- package/dist/assets/{bundle.esm-b7920968.js → bundle.esm-ab45813e.js} +181 -179
- package/dist/css/themes/AccordionItem.css +1 -1
- package/dist/css/themes/Breadcrumbs.css +1 -1
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/DatePicker.css +1 -1
- package/dist/css/themes/Dropdown.css +1 -1
- package/dist/css/themes/InputGroup.css +1 -0
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/PhoneNumberField.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/Search.css +1 -1
- package/dist/css/themes/SearchSuggestions.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/css/themes/Tag.css +1 -1
- package/dist/css/themes/TextField.css +1 -1
- package/dist/custom-elements-internal.json +405 -53
- package/dist/custom-elements.json +358 -52
- package/dist/features/SearchSuggestionsPopover.d.ts +3 -3
- package/dist/features/SearchSuggestionsPopover.js +16 -18
- package/dist/features/SearchSuggestionsPopover.js.map +1 -1
- package/dist/generated/templates/AccordionItemTemplate.lit.js +2 -1
- package/dist/generated/templates/AccordionItemTemplate.lit.js.map +1 -1
- package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
- package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/FooterTemplate.lit.js +15 -15
- package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
- package/dist/generated/templates/InputGroupTemplate.lit.d.ts +4 -0
- package/dist/generated/templates/InputGroupTemplate.lit.js +7 -0
- package/dist/generated/templates/InputGroupTemplate.lit.js.map +1 -0
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +15 -10
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +11 -10
- package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchTemplate.lit.js +11 -10
- package/dist/generated/templates/SearchTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +2 -1
- package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/themes/AccordionItem.css.js +1 -1
- package/dist/generated/themes/AccordionItem.css.js.map +1 -1
- package/dist/generated/themes/Breadcrumbs.css.js +1 -1
- package/dist/generated/themes/Breadcrumbs.css.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/DatePicker.css.js +1 -1
- package/dist/generated/themes/DatePicker.css.js.map +1 -1
- package/dist/generated/themes/Dropdown.css.js +1 -1
- package/dist/generated/themes/Dropdown.css.js.map +1 -1
- package/dist/generated/themes/InputGroup.css.d.ts +3 -0
- package/dist/generated/themes/InputGroup.css.js +9 -0
- package/dist/generated/themes/InputGroup.css.js.map +1 -0
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.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/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/PhoneNumberField.css.js +1 -1
- package/dist/generated/themes/PhoneNumberField.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/SearchSuggestions.css.js +1 -1
- package/dist/generated/themes/SearchSuggestions.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/Tag.css.js +1 -1
- package/dist/generated/themes/Tag.css.js.map +1 -1
- package/dist/generated/themes/TextField.css.js +1 -1
- package/dist/generated/themes/TextField.css.js.map +1 -1
- package/dist/types/callback.d.ts +2 -0
- package/dist/types/callback.js +2 -0
- package/dist/types/callback.js.map +1 -0
- package/dist/utils/debounce.d.ts +2 -2
- package/dist/utils/debounce.js.map +1 -1
- package/dist/utils/retryUntilSuccessful.d.ts +3 -0
- package/dist/utils/retryUntilSuccessful.js +21 -0
- package/dist/utils/retryUntilSuccessful.js.map +1 -0
- package/dist/vscode.html-custom-data.json +48 -12
- package/dist/web-types.json +205 -29
- package/package.json +1 -1
- package/src/AccordionItem.hbs +12 -1
- package/src/AccordionItem.ts +11 -2
- package/src/CountrySelector.hbs +1 -2
- package/src/CountrySelector.ts +18 -20
- package/src/Dropdown.ts +10 -0
- package/src/Footer.hbs +154 -91
- package/src/Footer.ts +158 -1
- package/src/InputGroup.hbs +20 -0
- package/src/InputGroup.ts +136 -0
- package/src/MastheadMobileMenu.hbs +51 -28
- package/src/MastheadMobileMenu.ts +12 -3
- package/src/MastheadProfileMenu.hbs +1 -1
- package/src/PhoneNumberField.ts +27 -3
- package/src/Search.hbs +23 -1
- package/src/Search.ts +203 -15
- package/src/SearchSuggestions.hbs +46 -48
- package/src/SecondaryNavigation.hbs +6 -4
- package/src/SecondaryNavigation.ts +23 -3
- package/src/SelectBox.ts +22 -0
- package/src/Table.ts +7 -7
- package/src/Tag.ts +12 -3
- package/src/TextArea.ts +1 -1
- package/src/features/SearchSuggestionsPopover.ts +18 -20
- package/src/generated/templates/AccordionItemTemplate.lit.ts +2 -1
- package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
- package/src/generated/templates/FooterTemplate.lit.ts +15 -15
- package/src/generated/templates/InputGroupTemplate.lit.ts +12 -0
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +15 -10
- package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +11 -10
- package/src/generated/templates/SearchTemplate.lit.ts +10 -9
- package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +2 -1
- package/src/generated/themes/AccordionItem.css.ts +1 -1
- package/src/generated/themes/Breadcrumbs.css.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/DatePicker.css.ts +1 -1
- package/src/generated/themes/Dropdown.css.ts +1 -1
- package/src/generated/themes/InputGroup.css.ts +13 -0
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/PhoneNumberField.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/SearchSuggestions.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/generated/themes/Tag.css.ts +1 -1
- package/src/generated/themes/TextField.css.ts +1 -1
- package/src/themes/AccordionItem.css +20 -15
- package/src/themes/Breadcrumbs.css +4 -2
- package/src/themes/CountrySelector.css +12 -1
- package/src/themes/DatePicker.css +1 -1
- package/src/themes/Dropdown.css +2 -2
- package/src/themes/InputGroup.css +19 -0
- package/src/themes/MastheadItem.css +2 -7
- package/src/themes/MastheadMenuItem.css +0 -4
- package/src/themes/MastheadShell.css +9 -10
- package/src/themes/PhoneNumberField.css +13 -3
- package/src/themes/Search.css +160 -17
- package/src/themes/SearchSuggestions.css +7 -1
- package/src/themes/Tag.css +6 -1
- package/src/themes/TextField.css +10 -1
- package/src/types/callback.ts +3 -0
- package/src/utils/debounce.ts +1 -1
- package/src/utils/retryUntilSuccessful.ts +23 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
2
|
+
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
3
|
+
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
4
|
+
import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
|
|
5
|
+
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
6
|
+
|
|
7
|
+
import Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
8
|
+
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
10
|
+
import UDExCheckbox from "./Checkbox.js";
|
|
11
|
+
import UDExRadioButton from "./RadioButton.js";
|
|
12
|
+
import UDExStatusMessage from "./StatusMessage.js";
|
|
13
|
+
import InputGroupTemplate from "./generated/templates/InputGroupTemplate.lit.js";
|
|
14
|
+
import {
|
|
15
|
+
VALUE_STATE_ERROR,
|
|
16
|
+
VALUE_STATE_SUCCESS,
|
|
17
|
+
} from "./generated/i18n/i18n-defaults.js";
|
|
18
|
+
|
|
19
|
+
// Styles
|
|
20
|
+
import InputGroupCss from "./generated/themes/InputGroup.css.js";
|
|
21
|
+
|
|
22
|
+
export enum GroupValueState {
|
|
23
|
+
Standard = "Standard",
|
|
24
|
+
Error = "Error",
|
|
25
|
+
Success = "Success",
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export enum Orientation {
|
|
29
|
+
Vertical = "Vertical",
|
|
30
|
+
Horizontal = "Horizontal",
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @class
|
|
35
|
+
*
|
|
36
|
+
* <h3 class="comment-api-title">Overview</h3>
|
|
37
|
+
*
|
|
38
|
+
*
|
|
39
|
+
* <h3>Usage</h3>
|
|
40
|
+
*
|
|
41
|
+
* For the <code>udex-input-group</code>
|
|
42
|
+
* <h3>ES6 Module Import</h3>
|
|
43
|
+
*
|
|
44
|
+
* <code>import "@udex/web-components/dist/InputGroup.js";</code>
|
|
45
|
+
*
|
|
46
|
+
* @constructor
|
|
47
|
+
* @extends UI5Element
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
@customElement({
|
|
52
|
+
tag: "udex-input-group",
|
|
53
|
+
renderer: litRender,
|
|
54
|
+
styles: InputGroupCss,
|
|
55
|
+
template: InputGroupTemplate,
|
|
56
|
+
dependencies: [Icon, UDExStatusMessage],
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
class UDExInputGroup extends UI5Element {
|
|
60
|
+
/**
|
|
61
|
+
* Defines the group name of the component.
|
|
62
|
+
*
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
@property({ type: String })
|
|
66
|
+
groupName?: string;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Defines the orientation of the component.
|
|
70
|
+
*
|
|
71
|
+
* @default "Vertical"
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
@property({ type: Orientation, defaultValue: Orientation.Vertical })
|
|
75
|
+
orientation!: `${Orientation}`;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Defines the value state of the component.
|
|
79
|
+
*
|
|
80
|
+
* @default "Standard"
|
|
81
|
+
* @public
|
|
82
|
+
*/
|
|
83
|
+
@property({ type: GroupValueState, defaultValue: GroupValueState.Standard })
|
|
84
|
+
valueState!: `${GroupValueState}`;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Defines supporting text under the Input Group.
|
|
88
|
+
*
|
|
89
|
+
* @default ""
|
|
90
|
+
* @public
|
|
91
|
+
*/
|
|
92
|
+
@property({ type: String })
|
|
93
|
+
supportingText!: string;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Slot for input elements items.
|
|
97
|
+
*
|
|
98
|
+
* @slot
|
|
99
|
+
* @public
|
|
100
|
+
*/
|
|
101
|
+
@slot({ type: HTMLElement, "default": true, individualSlots: true }) items!: Array<UDExCheckbox | UDExRadioButton>;
|
|
102
|
+
|
|
103
|
+
static i18nBundle: I18nBundle;
|
|
104
|
+
|
|
105
|
+
static async onDefine() {
|
|
106
|
+
UDExInputGroup.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
get _items() {
|
|
110
|
+
return this.items.map(el => {
|
|
111
|
+
if (this.groupName) { el.name = this.groupName; }
|
|
112
|
+
return {
|
|
113
|
+
item: el,
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
get valueStateTypeMappings(): Record<string, string> {
|
|
119
|
+
return {
|
|
120
|
+
"Success": UDExInputGroup.i18nBundle.getText(VALUE_STATE_SUCCESS),
|
|
121
|
+
"Error": UDExInputGroup.i18nBundle.getText(VALUE_STATE_ERROR),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
get hasValueState(): boolean {
|
|
126
|
+
return this.valueState !== GroupValueState.Standard;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
get valueStateText(): string | undefined {
|
|
130
|
+
return this.supportingText || this.valueStateTypeMappings[this.valueState];
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
UDExInputGroup.define();
|
|
135
|
+
|
|
136
|
+
export default UDExInputGroup;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
<nav class="udex-masthead-mobile-menu" @keydown="{{handleKeyDown}}">
|
|
2
2
|
<div class="udex-masthead-mobile-menu__nav-holder">
|
|
3
|
-
|
|
4
|
-
<
|
|
5
|
-
|
|
3
|
+
{{#if hasSearchSlot}}
|
|
4
|
+
<div class="udex-masthead-mobile-menu__list-search">
|
|
5
|
+
<slot name="search"></slot>
|
|
6
|
+
</div>
|
|
7
|
+
{{/if}}
|
|
6
8
|
<ul class="udex-masthead-mobile-menu__list" role="menu">
|
|
7
9
|
{{#if showNavigation}}
|
|
8
10
|
{{>nav-items}}
|
|
@@ -33,15 +35,6 @@
|
|
|
33
35
|
back-to-categories>
|
|
34
36
|
</udex-masthead-menu-item>
|
|
35
37
|
</li>
|
|
36
|
-
{{#if _category.url}}
|
|
37
|
-
<li class="udex-masthead-mobile-menu__list-item" role="menuitem">
|
|
38
|
-
<udex-masthead-menu-item
|
|
39
|
-
url="{{this._category.url}}"
|
|
40
|
-
label="{{categoryLinkText}}"
|
|
41
|
-
has-border>
|
|
42
|
-
</udex-masthead-menu-item>
|
|
43
|
-
</li>
|
|
44
|
-
{{/if}}
|
|
45
38
|
{{>category-items}}
|
|
46
39
|
{{/if}}
|
|
47
40
|
</ul>
|
|
@@ -64,13 +57,7 @@
|
|
|
64
57
|
{{#*inline "nav-items"}}
|
|
65
58
|
{{#each items}}
|
|
66
59
|
<li class="udex-masthead-mobile-menu__list-item" role="menuitem">
|
|
67
|
-
{{#if this.
|
|
68
|
-
<udex-masthead-menu-item
|
|
69
|
-
url="{{this.href}}"
|
|
70
|
-
label="{{this.innerText}}"
|
|
71
|
-
has-border>
|
|
72
|
-
</udex-masthead-menu-item>
|
|
73
|
-
{{else}}
|
|
60
|
+
{{#if this.subItems}}
|
|
74
61
|
<udex-masthead-menu-item
|
|
75
62
|
@click="{{../handleMenuItemClick}}"
|
|
76
63
|
label="{{this.innerText}}"
|
|
@@ -80,29 +67,65 @@
|
|
|
80
67
|
icon-end
|
|
81
68
|
first-level>
|
|
82
69
|
</udex-masthead-menu-item>
|
|
70
|
+
{{else}}
|
|
71
|
+
<udex-masthead-menu-item
|
|
72
|
+
url="{{this.href}}"
|
|
73
|
+
label="{{this.innerText}}"
|
|
74
|
+
has-border>
|
|
75
|
+
</udex-masthead-menu-item>
|
|
83
76
|
{{/if}}
|
|
84
77
|
</li>
|
|
85
78
|
{{/each}}
|
|
86
79
|
{{/inline}}
|
|
87
80
|
|
|
88
81
|
{{#*inline "categories"}}
|
|
89
|
-
{{#
|
|
82
|
+
{{#if _clickedItem.href}}
|
|
90
83
|
<li class="udex-masthead-mobile-menu__list-item" role="menuitem">
|
|
91
84
|
<udex-masthead-menu-item
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
label="{{this.category}}"
|
|
96
|
-
type="Button"
|
|
97
|
-
second-level
|
|
98
|
-
has-border
|
|
99
|
-
icon-end>
|
|
85
|
+
url="{{_clickedItem.href}}"
|
|
86
|
+
label="{{overviewLinkText}}"
|
|
87
|
+
has-border>
|
|
100
88
|
</udex-masthead-menu-item>
|
|
101
89
|
</li>
|
|
90
|
+
{{/if}}
|
|
91
|
+
{{#each _categories}}
|
|
92
|
+
{{#if this.category}}
|
|
93
|
+
<li class="udex-masthead-mobile-menu__list-item" role="menuitem">
|
|
94
|
+
<udex-masthead-menu-item
|
|
95
|
+
@click="{{../handleMenuCategoryClick}}"
|
|
96
|
+
url="{{this.url}}"
|
|
97
|
+
id="{{@index}}"
|
|
98
|
+
label="{{this.category}}"
|
|
99
|
+
type="Button"
|
|
100
|
+
second-level
|
|
101
|
+
has-border
|
|
102
|
+
icon-end>
|
|
103
|
+
</udex-masthead-menu-item>
|
|
104
|
+
</li>
|
|
105
|
+
{{else}}
|
|
106
|
+
{{#each this.items}}
|
|
107
|
+
<li class="udex-masthead-mobile-menu__list-item" role="menuitem">
|
|
108
|
+
<udex-masthead-menu-item
|
|
109
|
+
url="{{this.url}}"
|
|
110
|
+
label="{{this.title}}"
|
|
111
|
+
has-border>
|
|
112
|
+
</udex-masthead-menu-item>
|
|
113
|
+
</li>
|
|
114
|
+
{{/each}}
|
|
115
|
+
{{/if}}
|
|
102
116
|
{{/each}}
|
|
103
117
|
{{/inline}}
|
|
104
118
|
|
|
105
119
|
{{#*inline "category-items"}}
|
|
120
|
+
{{#if _category.url}}
|
|
121
|
+
<li class="udex-masthead-mobile-menu__list-item" role="menuitem">
|
|
122
|
+
<udex-masthead-menu-item
|
|
123
|
+
url="{{this._category.url}}"
|
|
124
|
+
label="{{overviewLinkText}}"
|
|
125
|
+
has-border>
|
|
126
|
+
</udex-masthead-menu-item>
|
|
127
|
+
</li>
|
|
128
|
+
{{/if}}
|
|
106
129
|
{{#each _category.items}}
|
|
107
130
|
<li class="udex-masthead-mobile-menu__list-item" role="menuitem">
|
|
108
131
|
<udex-masthead-menu-item
|
|
@@ -230,13 +230,13 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
230
230
|
const item = this.getItemByList(e.target as UDExMastheadItem);
|
|
231
231
|
this._clickedItem = item;
|
|
232
232
|
this._categories = this.getCategories(item.getSubItems());
|
|
233
|
+
this.setCategoryByItem(item);
|
|
233
234
|
this._showCategories = true;
|
|
234
235
|
}
|
|
235
236
|
|
|
236
237
|
openCategoryItems(e: Event) {
|
|
237
238
|
const item = e.target as UDExMastheadMenuItem;
|
|
238
|
-
|
|
239
|
-
this._category = this._categories[index];
|
|
239
|
+
this.setCategoryByItem(item);
|
|
240
240
|
this._showCategories = false;
|
|
241
241
|
this._showCategoryItems = true;
|
|
242
242
|
}
|
|
@@ -252,6 +252,11 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
252
252
|
this._showCategoryItems = false;
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
+
setCategoryByItem(item: UDExMastheadMenuItem | UDExMastheadItem) {
|
|
256
|
+
const index = Number(item.getAttribute("id"));
|
|
257
|
+
this._category = this._categories[index];
|
|
258
|
+
}
|
|
259
|
+
|
|
255
260
|
getItemByList(el: UDExMastheadItem): UDExMastheadItem {
|
|
256
261
|
const items = [
|
|
257
262
|
...this.items,
|
|
@@ -291,7 +296,7 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
291
296
|
return !this._showCategories && !this._showCategoryItems;
|
|
292
297
|
}
|
|
293
298
|
|
|
294
|
-
get
|
|
299
|
+
get overviewLinkText(): string {
|
|
295
300
|
return UDExMastheadMobileMenu.i18nBundle.getText(OVERVIEW);
|
|
296
301
|
}
|
|
297
302
|
|
|
@@ -306,6 +311,10 @@ class UDExMastheadMobileMenu extends UI5Element {
|
|
|
306
311
|
get hasExploreBtnSlot(): boolean {
|
|
307
312
|
return !!this.getSlottedNodes("exploreSapMobileButton").length;
|
|
308
313
|
}
|
|
314
|
+
|
|
315
|
+
get hasSearchSlot(): boolean {
|
|
316
|
+
return !!this.search.length;
|
|
317
|
+
}
|
|
309
318
|
}
|
|
310
319
|
|
|
311
320
|
UDExMastheadMobileMenu.define();
|
package/src/PhoneNumberField.ts
CHANGED
|
@@ -6,6 +6,7 @@ import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
|
|
|
6
6
|
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
7
7
|
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
8
8
|
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
9
|
+
import ResizeHandler, { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
|
|
9
10
|
import { COUNTRY_SELECT } from "./generated/i18n/i18n-defaults.js";
|
|
10
11
|
import { Country, CountryListDB } from "./data/CountryListISO3166.js";
|
|
11
12
|
import UDExDropdown from "./Dropdown.js";
|
|
@@ -258,6 +259,8 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
258
259
|
previousKey!: string;
|
|
259
260
|
|
|
260
261
|
static i18nBundle: I18nBundle;
|
|
262
|
+
_dropdown!: UDExDropdown;
|
|
263
|
+
_handleResizeBound: ResizeObserverCallback
|
|
261
264
|
|
|
262
265
|
static async onDefine() {
|
|
263
266
|
UDExPhoneNumberField.i18nBundle = await getI18nBundle("sap-ui-webcomponents-bundle");
|
|
@@ -273,6 +276,23 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
273
276
|
|
|
274
277
|
countriesList: ExtendedCountriesListPhoneNumberData[] = CountryListDB;
|
|
275
278
|
|
|
279
|
+
constructor() {
|
|
280
|
+
super();
|
|
281
|
+
this._handleResizeBound = this._handleResize.bind(this);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
onEnterDOM(): void {
|
|
285
|
+
ResizeHandler.register(this, this._handleResizeBound);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
onExitDOM(): void {
|
|
289
|
+
ResizeHandler.deregister(this, this._handleResizeBound);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
onAfterRendering() {
|
|
293
|
+
this._dropdown = this.getDropdown();
|
|
294
|
+
}
|
|
295
|
+
|
|
276
296
|
onClick(): void {
|
|
277
297
|
if (this.isButtonDisabled) {
|
|
278
298
|
return;
|
|
@@ -287,6 +307,10 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
287
307
|
}
|
|
288
308
|
}
|
|
289
309
|
|
|
310
|
+
_handleResize() {
|
|
311
|
+
this._dropdown.style.setProperty("--udex-dropdown-pane-width", `${this.offsetWidth}px`);
|
|
312
|
+
}
|
|
313
|
+
|
|
290
314
|
handleInput(e: InputEvent) {
|
|
291
315
|
this.value = (e.target as HTMLInputElement)?.value.trim();
|
|
292
316
|
|
|
@@ -309,11 +333,11 @@ class UDExPhoneNumberField extends UI5Element {
|
|
|
309
333
|
}
|
|
310
334
|
|
|
311
335
|
handleKeyDown = (e: KeyboardEvent) => {
|
|
312
|
-
const isKeyAllowed = e.key
|
|
336
|
+
const isKeyAllowed = e.key.match(/\d/)
|
|
313
337
|
|| this.allowedKeys.includes(e.key)
|
|
314
338
|
|| e.metaKey
|
|
315
|
-
|| e.ctrlKey
|
|
316
|
-
|
|
339
|
+
|| e.ctrlKey;
|
|
340
|
+
|
|
317
341
|
if (!isKeyAllowed) {
|
|
318
342
|
e.preventDefault();
|
|
319
343
|
}
|
package/src/Search.hbs
CHANGED
|
@@ -1,4 +1,26 @@
|
|
|
1
|
-
<div class="udex-search__root">
|
|
1
|
+
<div class="udex-search__root {{classWithPrefix}}">
|
|
2
|
+
{{#if isShowSearchHomePrefix}}
|
|
3
|
+
<div class="udex-search__prefix">
|
|
4
|
+
<button type="button"
|
|
5
|
+
aria-haspopup="true"
|
|
6
|
+
aria-controls="udex-search-prefix"
|
|
7
|
+
class="udex-search__prefix-button"
|
|
8
|
+
@click="{{handleDropdownClick}}">
|
|
9
|
+
<span class="udex-search__prefix-label">{{labelPrefix}}</span>
|
|
10
|
+
<ui5-icon class="udex-search__prefix-icon" name="slim-arrow-down"></ui5-icon>
|
|
11
|
+
</button>
|
|
12
|
+
<ui5-popover
|
|
13
|
+
id="udex-search-prefix"
|
|
14
|
+
class="udex-search__prefix-popover"
|
|
15
|
+
hide-arrow
|
|
16
|
+
placement-type="Bottom"
|
|
17
|
+
horizontal-align="Left"
|
|
18
|
+
style="{{prefixPopoverStyles}}"
|
|
19
|
+
@after-close="{{handleAfterClosePrefixPopover}}">
|
|
20
|
+
<slot></slot>
|
|
21
|
+
</ui5-popover>
|
|
22
|
+
</div>
|
|
23
|
+
{{/if}}
|
|
2
24
|
<form role="search" class="udex-search__container {{focusClasses}} {{isNotEmptyClass}}">
|
|
3
25
|
{{#if labelAnimationDisabled}}
|
|
4
26
|
<input
|