@sapudex/web-components 0.230.3 → 0.231.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.
- package/dist/Accordion.d.ts +7 -5
- package/dist/Accordion.js +22 -16
- package/dist/Accordion.js.map +1 -1
- package/dist/AccordionItem.js +7 -0
- package/dist/AccordionItem.js.map +1 -1
- package/dist/CountrySelector.d.ts +1 -1
- package/dist/CountrySelector.js +6 -7
- package/dist/CountrySelector.js.map +1 -1
- package/dist/MastheadCountrySelector.d.ts +6 -0
- package/dist/MastheadCountrySelector.js +17 -2
- package/dist/MastheadCountrySelector.js.map +1 -1
- package/dist/MastheadItem.d.ts +3 -0
- package/dist/MastheadItem.js +25 -1
- package/dist/MastheadItem.js.map +1 -1
- package/dist/MastheadMenu.d.ts +3 -1
- package/dist/MastheadMenu.js +26 -14
- package/dist/MastheadMenu.js.map +1 -1
- package/dist/MastheadMobileMenu.d.ts +4 -0
- package/dist/MastheadMobileMenu.js +61 -8
- package/dist/MastheadMobileMenu.js.map +1 -1
- package/dist/MastheadShell.d.ts +17 -0
- package/dist/MastheadShell.js +57 -13
- package/dist/MastheadShell.js.map +1 -1
- package/dist/Search.js +3 -3
- package/dist/Search.js.map +1 -1
- package/dist/SearchableListBase.d.ts +4 -0
- package/dist/SearchableListBase.js +21 -2
- package/dist/SearchableListBase.js.map +1 -1
- package/dist/assets/{bundle.esm-6dbe4d40.js → bundle.esm-7a799a95.js} +194 -194
- package/dist/assets/messagebundle_ar-4acbb276.js +1 -0
- package/dist/assets/messagebundle_bg-76df681f.js +1 -0
- package/dist/assets/messagebundle_cs-5488afab.js +1 -0
- package/dist/assets/messagebundle_da-7b8fee05.js +1 -0
- package/dist/assets/messagebundle_de-6c3b79cd.js +1 -0
- package/dist/assets/messagebundle_el-6f926401.js +1 -0
- package/dist/assets/messagebundle_en-4b95b93e.js +1 -0
- package/dist/assets/messagebundle_es-b32ec403.js +1 -0
- package/dist/assets/messagebundle_et-bac74fdc.js +1 -0
- package/dist/assets/messagebundle_fi-3485fac7.js +1 -0
- package/dist/assets/messagebundle_fr-4fea234b.js +1 -0
- package/dist/assets/messagebundle_hr-455c228f.js +1 -0
- package/dist/assets/messagebundle_hu-a8d556d9.js +1 -0
- package/dist/assets/messagebundle_it-014d7d0c.js +1 -0
- package/dist/assets/messagebundle_iw-630f53fd.js +1 -0
- package/dist/assets/messagebundle_ko-fd7c94a4.js +1 -0
- package/dist/assets/messagebundle_lt-93f8402d.js +1 -0
- package/dist/assets/messagebundle_lv-db65919a.js +1 -0
- package/dist/assets/messagebundle_nl-08fb0493.js +1 -0
- package/dist/assets/messagebundle_no-af05c854.js +1 -0
- package/dist/assets/messagebundle_pl-f65552a3.js +1 -0
- package/dist/assets/messagebundle_pt-c00237ba.js +1 -0
- package/dist/assets/messagebundle_ro-8387820d.js +1 -0
- package/dist/assets/messagebundle_ru-8aaf2b34.js +1 -0
- package/dist/assets/messagebundle_sk-bccab7cc.js +1 -0
- package/dist/assets/messagebundle_sl-9f2d28b6.js +1 -0
- package/dist/assets/messagebundle_sr-58be5960.js +1 -0
- package/dist/assets/messagebundle_sv-a0fbe175.js +1 -0
- package/dist/assets/messagebundle_tr-64ad7959.js +1 -0
- package/dist/assets/messagebundle_uk-7c63d422.js +1 -0
- package/dist/assets/messagebundle_zh_CN-6234699a.js +1 -0
- package/dist/assets/messagebundle_zh_TW-62cc17d9.js +1 -0
- package/dist/css/themes/CountrySelector.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadMobileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/RatingIndicator.css +1 -1
- package/dist/css/themes/SearchableList.css +1 -1
- package/dist/css/themes/Slider.css +1 -1
- package/dist/custom-elements-internal.json +23 -15
- package/dist/custom-elements.json +22 -15
- package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
- package/dist/generated/assets/i18n/messagebundle_zh_TW.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/AccordionTemplate.lit.js +1 -1
- package/dist/generated/templates/AccordionTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMenuTemplate.lit.js +3 -3
- package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +11 -11
- package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js +1 -1
- package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.lit.js +1 -1
- package/dist/generated/templates/SearchableListBaseTemplate.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/MastheadCountrySelector.css.js +1 -1
- package/dist/generated/themes/MastheadCountrySelector.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/MastheadMenuItem.css.js +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMobileMenu.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/RatingIndicator.css.js +1 -1
- package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
- package/dist/generated/themes/SearchableList.css.js +1 -1
- package/dist/generated/themes/SearchableList.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/i18n/messagebundle.properties +3 -0
- package/dist/i18n/messagebundle_ar.properties +3 -0
- package/dist/i18n/messagebundle_bg.properties +3 -0
- package/dist/i18n/messagebundle_cs.properties +3 -0
- package/dist/i18n/messagebundle_da.properties +3 -0
- package/dist/i18n/messagebundle_de.properties +3 -0
- package/dist/i18n/messagebundle_el.properties +3 -0
- package/dist/i18n/messagebundle_en.properties +1 -0
- package/dist/i18n/messagebundle_es.properties +3 -0
- package/dist/i18n/messagebundle_et.properties +3 -0
- package/dist/i18n/messagebundle_fi.properties +3 -0
- package/dist/i18n/messagebundle_fr.properties +3 -0
- package/dist/i18n/messagebundle_hr.properties +3 -0
- package/dist/i18n/messagebundle_hu.properties +3 -0
- package/dist/i18n/messagebundle_it.properties +3 -0
- package/dist/i18n/messagebundle_iw.properties +3 -1
- package/dist/i18n/messagebundle_ko.properties +3 -0
- package/dist/i18n/messagebundle_lt.properties +3 -0
- package/dist/i18n/messagebundle_lv.properties +3 -0
- package/dist/i18n/messagebundle_nl.properties +3 -0
- package/dist/i18n/messagebundle_no.properties +3 -0
- package/dist/i18n/messagebundle_pl.properties +3 -0
- package/dist/i18n/messagebundle_pt.properties +3 -0
- package/dist/i18n/messagebundle_pt_BR.properties +3 -0
- package/dist/i18n/messagebundle_ro.properties +3 -0
- package/dist/i18n/messagebundle_ru.properties +3 -0
- package/dist/i18n/messagebundle_sk.properties +3 -0
- package/dist/i18n/messagebundle_sl.properties +3 -0
- package/dist/i18n/messagebundle_sr.properties +3 -1
- package/dist/i18n/messagebundle_sv.properties +3 -0
- package/dist/i18n/messagebundle_tr.properties +3 -0
- package/dist/i18n/messagebundle_uk.properties +3 -0
- package/dist/i18n/messagebundle_zh_CN.properties +3 -1
- package/dist/i18n/messagebundle_zh_TW.properties +3 -0
- package/dist/vscode.html-custom-data.json +1 -1
- package/dist/web-types.json +10 -2
- package/package.json +1 -1
- package/src/Accordion.hbs +1 -0
- package/src/Accordion.ts +26 -18
- package/src/AccordionItem.ts +19 -6
- package/src/CountrySelector.ts +8 -9
- package/src/MastheadCountrySelector.hbs +5 -9
- package/src/MastheadCountrySelector.ts +22 -0
- package/src/MastheadItem.ts +32 -1
- package/src/MastheadMenu.hbs +3 -3
- package/src/MastheadMenu.ts +35 -15
- package/src/MastheadMobileMenu.hbs +12 -1
- package/src/MastheadMobileMenu.ts +68 -9
- package/src/MastheadShell.hbs +5 -5
- package/src/MastheadShell.ts +68 -14
- package/src/Search.ts +3 -3
- package/src/SearchableListBase.hbs +6 -0
- package/src/SearchableListBase.ts +25 -2
- package/src/generated/i18n/i18n-defaults.ts +2 -2
- package/src/generated/templates/AccordionTemplate.lit.ts +1 -1
- package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMenuTemplate.lit.ts +3 -3
- package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +11 -11
- package/src/generated/templates/MastheadShellTemplate.lit.ts +1 -1
- package/src/generated/templates/SearchableListBaseTemplate.lit.ts +1 -1
- package/src/generated/themes/CountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
- package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/RatingIndicator.css.ts +1 -1
- package/src/generated/themes/SearchableList.css.ts +1 -1
- package/src/generated/themes/Slider.css.ts +1 -1
- package/src/i18n/messagebundle.properties +3 -0
- package/src/i18n/messagebundle_ar.properties +3 -0
- package/src/i18n/messagebundle_bg.properties +3 -0
- package/src/i18n/messagebundle_cs.properties +3 -0
- package/src/i18n/messagebundle_da.properties +3 -0
- package/src/i18n/messagebundle_de.properties +3 -0
- package/src/i18n/messagebundle_el.properties +3 -0
- package/src/i18n/messagebundle_en.properties +1 -0
- package/src/i18n/messagebundle_es.properties +3 -0
- package/src/i18n/messagebundle_et.properties +3 -0
- package/src/i18n/messagebundle_fi.properties +3 -0
- package/src/i18n/messagebundle_fr.properties +3 -0
- package/src/i18n/messagebundle_hr.properties +3 -0
- package/src/i18n/messagebundle_hu.properties +3 -0
- package/src/i18n/messagebundle_it.properties +3 -0
- package/src/i18n/messagebundle_iw.properties +3 -1
- package/src/i18n/messagebundle_ko.properties +3 -0
- package/src/i18n/messagebundle_lt.properties +3 -0
- package/src/i18n/messagebundle_lv.properties +3 -0
- package/src/i18n/messagebundle_nl.properties +3 -0
- package/src/i18n/messagebundle_no.properties +3 -0
- package/src/i18n/messagebundle_pl.properties +3 -0
- package/src/i18n/messagebundle_pt.properties +3 -0
- package/src/i18n/messagebundle_pt_BR.properties +3 -0
- package/src/i18n/messagebundle_ro.properties +3 -0
- package/src/i18n/messagebundle_ru.properties +3 -0
- package/src/i18n/messagebundle_sk.properties +3 -0
- package/src/i18n/messagebundle_sl.properties +3 -0
- package/src/i18n/messagebundle_sr.properties +3 -1
- package/src/i18n/messagebundle_sv.properties +3 -0
- package/src/i18n/messagebundle_tr.properties +3 -0
- package/src/i18n/messagebundle_uk.properties +3 -0
- package/src/i18n/messagebundle_zh_CN.properties +3 -1
- package/src/i18n/messagebundle_zh_TW.properties +3 -0
- package/src/themes/CountrySelector.css +11 -0
- package/src/themes/MastheadCountrySelector.css +11 -0
- package/src/themes/MastheadItem.css +6 -2
- package/src/themes/MastheadMenuItem.css +5 -0
- package/src/themes/MastheadMobileMenu.css +1 -0
- package/src/themes/MastheadShell.css +10 -5
- package/src/themes/SearchableList.css +11 -0
- package/dist/assets/messagebundle_ar-bb470511.js +0 -1
- package/dist/assets/messagebundle_bg-a533dfab.js +0 -1
- package/dist/assets/messagebundle_cs-c70a7f36.js +0 -1
- package/dist/assets/messagebundle_da-e292cac5.js +0 -1
- package/dist/assets/messagebundle_de-5c108de6.js +0 -1
- package/dist/assets/messagebundle_el-44746e0b.js +0 -1
- package/dist/assets/messagebundle_en-d0c2d2d4.js +0 -1
- package/dist/assets/messagebundle_es-c0c1060f.js +0 -1
- package/dist/assets/messagebundle_et-a5f15d3b.js +0 -1
- package/dist/assets/messagebundle_fi-f4b8eb82.js +0 -1
- package/dist/assets/messagebundle_fr-af18ac46.js +0 -1
- package/dist/assets/messagebundle_hr-d893e46d.js +0 -1
- package/dist/assets/messagebundle_hu-230c58c9.js +0 -1
- package/dist/assets/messagebundle_it-5bf1436c.js +0 -1
- package/dist/assets/messagebundle_iw-dd60afc4.js +0 -1
- package/dist/assets/messagebundle_ko-c450bda3.js +0 -1
- package/dist/assets/messagebundle_lt-87ab0529.js +0 -1
- package/dist/assets/messagebundle_lv-fc413852.js +0 -1
- package/dist/assets/messagebundle_nl-34d7e236.js +0 -1
- package/dist/assets/messagebundle_no-f22648fb.js +0 -1
- package/dist/assets/messagebundle_pl-10303f09.js +0 -1
- package/dist/assets/messagebundle_pt-b7a40c67.js +0 -1
- package/dist/assets/messagebundle_ro-94628623.js +0 -1
- package/dist/assets/messagebundle_ru-1f6595ba.js +0 -1
- package/dist/assets/messagebundle_sk-89eabac1.js +0 -1
- package/dist/assets/messagebundle_sl-d56532f1.js +0 -1
- package/dist/assets/messagebundle_sr-cf7f3b32.js +0 -1
- package/dist/assets/messagebundle_sv-3a3b20d3.js +0 -1
- package/dist/assets/messagebundle_tr-33b16d09.js +0 -1
- package/dist/assets/messagebundle_uk-82e1f2c1.js +0 -1
- package/dist/assets/messagebundle_zh_CN-15ca05aa.js +0 -1
- package/dist/assets/messagebundle_zh_TW-ad6445e7.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.231.1",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
"name": "udex-accordion-item",
|
|
47
|
-
"description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-accordion-item</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/AccordionItem.js\";</code>\n---\n\n\n### **Events:**\n - **accordion-item-focus** - Triggered when the user focuses on an accordion item.\n\n### **Slots:**\n - **default** - Slot for accordion item content.",
|
|
47
|
+
"description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n\n<h3>Usage</h3>\n\nFor the <code>udex-accordion-item</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/AccordionItem.js\";</code>\n---\n\n\n### **Events:**\n - **accordion-item-focus** - Triggered when the user focuses on an accordion item.\n- **accordion-item-click** - Triggered when the user clicks on an accordion item.\n\n### **Slots:**\n - **default** - Slot for accordion item content.",
|
|
48
48
|
"doc-url": "",
|
|
49
49
|
"attributes": [
|
|
50
50
|
{
|
|
@@ -78,6 +78,10 @@
|
|
|
78
78
|
{
|
|
79
79
|
"name": "accordion-item-focus",
|
|
80
80
|
"description": "Triggered when the user focuses on an accordion item."
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "accordion-item-click",
|
|
84
|
+
"description": "Triggered when the user clicks on an accordion item."
|
|
81
85
|
}
|
|
82
86
|
],
|
|
83
87
|
"js": {
|
|
@@ -107,6 +111,10 @@
|
|
|
107
111
|
{
|
|
108
112
|
"name": "accordion-item-focus",
|
|
109
113
|
"description": "Triggered when the user focuses on an accordion item."
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "accordion-item-click",
|
|
117
|
+
"description": "Triggered when the user clicks on an accordion item."
|
|
110
118
|
}
|
|
111
119
|
]
|
|
112
120
|
}
|
package/package.json
CHANGED
package/src/Accordion.hbs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<div
|
|
2
2
|
class="udex-accordion"
|
|
3
3
|
@keydown="{{keydownHandler}}"
|
|
4
|
+
@ui5-accordion-item-click="{{updateAllExpandedStatus}}"
|
|
4
5
|
@ui5-accordion-item-focus="{{itemFocusHandler}}">
|
|
5
6
|
<div class="udex-accordion__head" part="head">
|
|
6
7
|
<h3 class="udex-accordion__headline">{{headlineText}}</h3>
|
package/src/Accordion.ts
CHANGED
|
@@ -104,26 +104,12 @@ class UDExAccordion extends UI5Element {
|
|
|
104
104
|
UDExAccordion.i18nBundle = await getI18nBundle("@sapudex/web-components");
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
? UDExAccordion.i18nBundle.getText(COLLAPSE_ALL)
|
|
110
|
-
: UDExAccordion.i18nBundle.getText(EXPAND_ALL);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
get isExpanded(): boolean {
|
|
114
|
-
return this._allExpanded;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
get items(): {item: HTMLElement}[] {
|
|
118
|
-
return this._items.map(el => {
|
|
119
|
-
return {
|
|
120
|
-
item: el,
|
|
121
|
-
};
|
|
122
|
-
});
|
|
107
|
+
onEnterDOM() {
|
|
108
|
+
this.updateAllExpandedStatus();
|
|
123
109
|
}
|
|
124
110
|
|
|
125
|
-
|
|
126
|
-
|
|
111
|
+
updateAllExpandedStatus() {
|
|
112
|
+
this._allExpanded = this._items.every(item => item.expanded);
|
|
127
113
|
}
|
|
128
114
|
|
|
129
115
|
toggleAllHandler(e: Event) {
|
|
@@ -188,6 +174,28 @@ class UDExAccordion extends UI5Element {
|
|
|
188
174
|
this._activeItemIndex = this._items?.indexOf(target) ?? -1;
|
|
189
175
|
}
|
|
190
176
|
}
|
|
177
|
+
|
|
178
|
+
get toggleAllText(): string {
|
|
179
|
+
return this._allExpanded
|
|
180
|
+
? UDExAccordion.i18nBundle.getText(COLLAPSE_ALL)
|
|
181
|
+
: UDExAccordion.i18nBundle.getText(EXPAND_ALL);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
get isExpanded(): boolean {
|
|
185
|
+
return this._allExpanded;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
get items(): {item: HTMLElement}[] {
|
|
189
|
+
return this._items.map(el => {
|
|
190
|
+
return {
|
|
191
|
+
item: el,
|
|
192
|
+
};
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
get headlineText(): string {
|
|
197
|
+
return this.headline ? this.headline : "Default headline";
|
|
198
|
+
}
|
|
191
199
|
}
|
|
192
200
|
|
|
193
201
|
UDExAccordion.define();
|
package/src/AccordionItem.ts
CHANGED
|
@@ -49,6 +49,12 @@ import AccordionItemCss from "./generated/themes/AccordionItem.css.js";
|
|
|
49
49
|
*/
|
|
50
50
|
@event("accordion-item-focus")
|
|
51
51
|
|
|
52
|
+
/**
|
|
53
|
+
* Triggered when the user clicks on an accordion item.
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
@event("accordion-item-click")
|
|
57
|
+
|
|
52
58
|
class UDExAccordionItem extends UI5Element {
|
|
53
59
|
/**
|
|
54
60
|
* Defines the Badge at the end of the title item.
|
|
@@ -56,7 +62,8 @@ class UDExAccordionItem extends UI5Element {
|
|
|
56
62
|
* @default ""
|
|
57
63
|
* @public
|
|
58
64
|
*/
|
|
59
|
-
@property()
|
|
65
|
+
@property()
|
|
66
|
+
numberBadge!: string;
|
|
60
67
|
|
|
61
68
|
/**
|
|
62
69
|
* Defines the title of the accordion item component.
|
|
@@ -66,7 +73,8 @@ class UDExAccordionItem extends UI5Element {
|
|
|
66
73
|
* @default ""
|
|
67
74
|
* @public
|
|
68
75
|
*/
|
|
69
|
-
@property()
|
|
76
|
+
@property()
|
|
77
|
+
title!: string;
|
|
70
78
|
|
|
71
79
|
/**
|
|
72
80
|
* Defines if the accordion item is expanded by default
|
|
@@ -74,7 +82,8 @@ class UDExAccordionItem extends UI5Element {
|
|
|
74
82
|
* @default false
|
|
75
83
|
* @public
|
|
76
84
|
*/
|
|
77
|
-
@property({ type: Boolean })
|
|
85
|
+
@property({ type: Boolean })
|
|
86
|
+
expanded!: boolean;
|
|
78
87
|
|
|
79
88
|
/**
|
|
80
89
|
* Used internally to understand the component's open or closed state.
|
|
@@ -82,14 +91,16 @@ class UDExAccordionItem extends UI5Element {
|
|
|
82
91
|
* @default false
|
|
83
92
|
* @private
|
|
84
93
|
*/
|
|
85
|
-
@property({ type: Boolean, noAttribute: true })
|
|
94
|
+
@property({ type: Boolean, noAttribute: true })
|
|
95
|
+
isOpen = false;
|
|
86
96
|
|
|
87
97
|
/**
|
|
88
98
|
* Defines direction of the accordion item.
|
|
89
99
|
*
|
|
90
100
|
* @public
|
|
91
101
|
*/
|
|
92
|
-
@property({ type: String })
|
|
102
|
+
@property({ type: String })
|
|
103
|
+
_direction?: string;
|
|
93
104
|
|
|
94
105
|
/**
|
|
95
106
|
* Slot for accordion item content.
|
|
@@ -97,7 +108,8 @@ class UDExAccordionItem extends UI5Element {
|
|
|
97
108
|
* @slot
|
|
98
109
|
* @public
|
|
99
110
|
*/
|
|
100
|
-
@slot({ type: Node, "default": true })
|
|
111
|
+
@slot({ type: Node, "default": true })
|
|
112
|
+
content!: Array<Node>;
|
|
101
113
|
|
|
102
114
|
constructor() {
|
|
103
115
|
super();
|
|
@@ -121,6 +133,7 @@ class UDExAccordionItem extends UI5Element {
|
|
|
121
133
|
e.preventDefault();
|
|
122
134
|
this.toggleItemState(e.currentTarget as HTMLElement, this.expanded);
|
|
123
135
|
this.toggleExpanded();
|
|
136
|
+
this.fireEvent("accordion-item-click");
|
|
124
137
|
}
|
|
125
138
|
|
|
126
139
|
toggleItemState(el: HTMLElement, isActive: boolean) {
|
package/src/CountrySelector.ts
CHANGED
|
@@ -427,28 +427,23 @@ class UDExCountrySelector extends UDExSearchableListBase {
|
|
|
427
427
|
this._dropdown.onOpen(this.getInput());
|
|
428
428
|
this._search.focus();
|
|
429
429
|
this._search.value = key;
|
|
430
|
-
this.
|
|
430
|
+
this.fireChangeSearch();
|
|
431
431
|
}
|
|
432
432
|
|
|
433
433
|
handleInputMouseDown(e: CustomEvent): void {
|
|
434
434
|
e.preventDefault();
|
|
435
435
|
}
|
|
436
436
|
|
|
437
|
-
onValueSearch(searchValue: string) {
|
|
438
|
-
this._shouldFilterItems = true;
|
|
439
|
-
this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);
|
|
440
|
-
this.fireEvent("change-search", { value: searchValue });
|
|
441
|
-
}
|
|
442
|
-
|
|
443
437
|
handleTriggerClick() {
|
|
444
438
|
this._dropdown.open = !this._dropdown.open;
|
|
445
439
|
}
|
|
446
440
|
|
|
447
441
|
handleValueSearch(e:CustomEvent) {
|
|
448
|
-
this.
|
|
442
|
+
this.onSearch(e);
|
|
443
|
+
this.fireChangeSearch();
|
|
449
444
|
}
|
|
450
445
|
|
|
451
|
-
handleSubmitSearch() {
|
|
446
|
+
handleSubmitSearch(): void {
|
|
452
447
|
this.onSubmitSearch();
|
|
453
448
|
}
|
|
454
449
|
|
|
@@ -491,6 +486,10 @@ class UDExCountrySelector extends UDExSearchableListBase {
|
|
|
491
486
|
});
|
|
492
487
|
}
|
|
493
488
|
|
|
489
|
+
fireChangeSearch(): void {
|
|
490
|
+
this.fireEvent("change-search", { value: this._search.value });
|
|
491
|
+
}
|
|
492
|
+
|
|
494
493
|
getSearch(): Search {
|
|
495
494
|
return this.shadowRoot!.querySelector<Search>("[udex-search]")!;
|
|
496
495
|
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
<div class="udex-masthead-country-selector" @keydown="{{handleKeyDown}}">
|
|
2
2
|
{{#if _isActiveRegionOpen}}
|
|
3
|
-
<span class="udex-masthead-country-selector__title">
|
|
4
|
-
{{countryTitle}}
|
|
5
|
-
</span>
|
|
3
|
+
<span class="udex-masthead-country-selector__title">{{countryTitle}}</span>
|
|
6
4
|
{{#unless this.isSingleMode}}
|
|
7
5
|
<udex-masthead-menu-item
|
|
8
6
|
class="udex-masthead-country-selector__region-back-item"
|
|
@@ -25,9 +23,10 @@
|
|
|
25
23
|
non-interactive-submit-button
|
|
26
24
|
show-submit-button>
|
|
27
25
|
</udex-search>
|
|
26
|
+
<span aria-live="polite" aria-atomic="true" class="hidden">{{_accSearchResultInfo}}</span>
|
|
28
27
|
<ul class="udex-masthead-country-selector__list udex-masthead-country-selector__list_countries" role="menu">
|
|
29
28
|
{{#each _activeCountries}}
|
|
30
|
-
<li role="
|
|
29
|
+
<li role="none">
|
|
31
30
|
<udex-masthead-menu-item
|
|
32
31
|
class="udex-masthead-country-selector__item udex-masthead-country-selector__item_countries"
|
|
33
32
|
@click="{{../fireEventCountryItemClick}}"
|
|
@@ -41,19 +40,16 @@
|
|
|
41
40
|
{{/each}}
|
|
42
41
|
</ul>
|
|
43
42
|
{{else}}
|
|
44
|
-
<span class="udex-masthead-country-selector__title">
|
|
45
|
-
{{regionTitle}}
|
|
46
|
-
</span>
|
|
43
|
+
<span class="udex-masthead-country-selector__title">{{regionTitle}}</span>
|
|
47
44
|
<ul class="udex-masthead-country-selector__list" role="menu">
|
|
48
45
|
{{#each regionsData}}
|
|
49
|
-
<li role="
|
|
46
|
+
<li role="none">
|
|
50
47
|
<udex-masthead-menu-item
|
|
51
48
|
id="{{this._id}}"
|
|
52
49
|
@click="{{../handleRegionClick}}"
|
|
53
50
|
index="{{@index}}"
|
|
54
51
|
class="udex-masthead-country-selector__item udex-masthead-country-selector__item_region"
|
|
55
52
|
aria-has-popup="true"
|
|
56
|
-
accessible-role="button"
|
|
57
53
|
type="Button"
|
|
58
54
|
is-nav-item
|
|
59
55
|
has-border
|
|
@@ -4,6 +4,8 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
|
4
4
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
5
5
|
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
6
6
|
import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
|
|
7
|
+
import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
8
|
+
import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
|
|
7
9
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
8
10
|
import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
|
|
9
11
|
import {
|
|
@@ -15,6 +17,7 @@ import MastheadCountrySelectorTemplate from "./generated/templates/MastheadCount
|
|
|
15
17
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
16
18
|
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
17
19
|
import type UDExMastheadShell from "./MastheadShell.js";
|
|
20
|
+
import { NO_MATCHES_FOUND, RESULT_RETURNED } from "./generated/i18n/i18n-defaults.js";
|
|
18
21
|
|
|
19
22
|
// Styles
|
|
20
23
|
import MastheadCountrySelectorCss from "./generated/themes/MastheadCountrySelector.css.js";
|
|
@@ -227,8 +230,15 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
227
230
|
_activeCountries!: Array<Country>;
|
|
228
231
|
_shouldFocusBackBtn!: boolean;
|
|
229
232
|
_shouldFocusRegionByIndex!: boolean;
|
|
233
|
+
_accSearchResultInfo?: string;
|
|
230
234
|
_activeRegionIndex!: number;
|
|
231
235
|
|
|
236
|
+
static i18nBundle: I18nBundle;
|
|
237
|
+
|
|
238
|
+
static async onDefine() {
|
|
239
|
+
UDExMastheadCountrySelector.i18nBundle = await getI18nBundle("@sapudex/web-components");
|
|
240
|
+
}
|
|
241
|
+
|
|
232
242
|
constructor() {
|
|
233
243
|
super();
|
|
234
244
|
this._activeCountries = [];
|
|
@@ -325,6 +335,10 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
325
335
|
this.setActiveCountries(this._activeRegion.countries.filter(country => country.displayTitle.toLowerCase().includes(searchTerm)));
|
|
326
336
|
}
|
|
327
337
|
|
|
338
|
+
this._accSearchResultInfo = this._activeCountries.length
|
|
339
|
+
? `${this._activeCountries.length} ${this.resultReturnedText}`
|
|
340
|
+
: this.noMatchesFoundText;
|
|
341
|
+
|
|
328
342
|
this._shouldFocusBackBtn = false;
|
|
329
343
|
this.fireEvent<SearchEventDetail>("country-selector-search", {
|
|
330
344
|
value: e.detail.value,
|
|
@@ -502,6 +516,14 @@ class UDExMastheadCountrySelector extends UI5Element {
|
|
|
502
516
|
});
|
|
503
517
|
}
|
|
504
518
|
|
|
519
|
+
get noMatchesFoundText(): string {
|
|
520
|
+
return UDExMastheadCountrySelector.i18nBundle.getText(NO_MATCHES_FOUND);
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
get resultReturnedText(): string {
|
|
524
|
+
return UDExMastheadCountrySelector.i18nBundle.getText(RESULT_RETURNED);
|
|
525
|
+
}
|
|
526
|
+
|
|
505
527
|
get items(): Array<UDExMastheadMenuItem> {
|
|
506
528
|
const items = this.shadowRoot?.querySelectorAll<UDExMastheadMenuItem>(".udex-masthead-country-selector__item");
|
|
507
529
|
return items ? Array.from(items) : [];
|
package/src/MastheadItem.ts
CHANGED
|
@@ -10,6 +10,7 @@ import "@ui5/webcomponents-icons/dist/search.js";
|
|
|
10
10
|
import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
|
|
11
11
|
import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
|
|
12
12
|
import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
|
|
13
|
+
import { getFirstFocusableElement } from "@ui5/webcomponents-base/dist/util/FocusableElements.js";
|
|
13
14
|
import {
|
|
14
15
|
OPENS_IN_A_NEW_WINDOW, PROFILE, CART, COUNTRY_SELECTOR, SUPPORT, SEARCH,
|
|
15
16
|
} from "./generated/i18n/i18n-defaults.js";
|
|
@@ -17,6 +18,7 @@ import UDExMastheadMenu from "./MastheadMenu.js";
|
|
|
17
18
|
import UDExAvatar from "./Avatar.js";
|
|
18
19
|
import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
|
|
19
20
|
import UDExMastheadShell from "./MastheadShell.js";
|
|
21
|
+
import UDExMastheadMenuItem from "./MastheadMenuItem.js";
|
|
20
22
|
import { Target } from "./types/common.js";
|
|
21
23
|
import { BreakpointUtils } from "./utils/Breakpoints.js";
|
|
22
24
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
@@ -334,6 +336,10 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
|
|
|
334
336
|
this.setDropdownInsetStart();
|
|
335
337
|
}
|
|
336
338
|
|
|
339
|
+
if (this.shouldFocusFirstElement) {
|
|
340
|
+
this.applyFocusToFirstElement();
|
|
341
|
+
}
|
|
342
|
+
|
|
337
343
|
this.handleOutsideClick();
|
|
338
344
|
}
|
|
339
345
|
|
|
@@ -441,7 +447,7 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
|
|
|
441
447
|
}
|
|
442
448
|
|
|
443
449
|
setDropdownInsetStart(): void {
|
|
444
|
-
const dropdown = this.
|
|
450
|
+
const dropdown = this.dropdownHolder;
|
|
445
451
|
if (dropdown) {
|
|
446
452
|
const rect = dropdown.getBoundingClientRect();
|
|
447
453
|
const marginInlineStart = this.calculateMarginInlineStart(rect);
|
|
@@ -474,6 +480,23 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
|
|
|
474
480
|
return null;
|
|
475
481
|
}
|
|
476
482
|
|
|
483
|
+
async applyFocusToFirstElement(): Promise<void> {
|
|
484
|
+
const menu = this.querySelector("[udex-masthead-menu]");
|
|
485
|
+
|
|
486
|
+
if (menu) {
|
|
487
|
+
const menuItems = Array.from(menu.shadowRoot?.querySelectorAll<UDExMastheadMenuItem>("[udex-masthead-menu-item]") || []);
|
|
488
|
+
const itemWithUrl = menuItems.find(menuItem => menuItem.url);
|
|
489
|
+
const focusableElement = itemWithUrl?.shadowRoot?.querySelector<HTMLElement>(".udex-masthead-menu-item");
|
|
490
|
+
if (focusableElement) {
|
|
491
|
+
focusableElement.focus();
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
const focusedElement = await getFirstFocusableElement(this.dropdownHolder);
|
|
497
|
+
focusedElement?.focus();
|
|
498
|
+
}
|
|
499
|
+
|
|
477
500
|
handleDirection(): void {
|
|
478
501
|
const directionStyles = window
|
|
479
502
|
.getComputedStyle(this)
|
|
@@ -524,6 +547,10 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
|
|
|
524
547
|
|| this.isNavItemTarget(target);
|
|
525
548
|
}
|
|
526
549
|
|
|
550
|
+
get dropdownHolder(): HTMLElement {
|
|
551
|
+
return this.getDomElement(".udex-masthead-item__dropdown")!;
|
|
552
|
+
}
|
|
553
|
+
|
|
527
554
|
get mastheadShell(): UDExMastheadShell {
|
|
528
555
|
return document.querySelector<UDExMastheadShell>("[udex-masthead-shell]")!;
|
|
529
556
|
}
|
|
@@ -575,6 +602,10 @@ class UDExMastheadItem extends UI5Element implements IMastheadItem {
|
|
|
575
602
|
return labels.length ? labels.join(" ").trim() : undefined;
|
|
576
603
|
}
|
|
577
604
|
|
|
605
|
+
get shouldFocusFirstElement(): boolean {
|
|
606
|
+
return this.isDropdownOpened && !this._preventFocusOut;
|
|
607
|
+
}
|
|
608
|
+
|
|
578
609
|
get isDropdownOpened(): boolean {
|
|
579
610
|
return this.hasDropdownSlot && this.selected;
|
|
580
611
|
}
|
package/src/MastheadMenu.hbs
CHANGED
|
@@ -40,7 +40,9 @@
|
|
|
40
40
|
category="{{this.category}}">
|
|
41
41
|
{{#each this.items}}
|
|
42
42
|
<li>
|
|
43
|
-
{{#if this.
|
|
43
|
+
{{#if this.isDivider}}
|
|
44
|
+
<udex-divider class="udex-masthead-menu__item-divider"></udex-divider>
|
|
45
|
+
{{else}}
|
|
44
46
|
<udex-masthead-menu-item
|
|
45
47
|
@click="{{../../../handleMenuItemClick}}"
|
|
46
48
|
badge="{{this.badge}}"
|
|
@@ -48,8 +50,6 @@
|
|
|
48
50
|
url="{{this.url}}"
|
|
49
51
|
label="{{this.title}}">
|
|
50
52
|
</udex-masthead-menu-item>
|
|
51
|
-
{{else}}
|
|
52
|
-
<udex-divider class="udex-masthead-menu__item-divider"></udex-divider>
|
|
53
53
|
{{/if}}
|
|
54
54
|
</li>
|
|
55
55
|
{{/each}}
|
package/src/MastheadMenu.ts
CHANGED
|
@@ -12,6 +12,7 @@ import UDExMastheadMenuItem, { ItemType } from "./MastheadMenuItem.js";
|
|
|
12
12
|
import UDExDivider from "./Divider.js";
|
|
13
13
|
import MastheadMenuTemplate from "./generated/templates/MastheadMenuTemplate.lit.js";
|
|
14
14
|
import AnalyticsName from "./types/AnalyticsName.js";
|
|
15
|
+
import UDExMastheadItem from "./MastheadItem.js";
|
|
15
16
|
|
|
16
17
|
// Styles
|
|
17
18
|
import MastheadMenuCss from "./generated/themes/MastheadMenu.css.js";
|
|
@@ -22,6 +23,7 @@ export type Item = {
|
|
|
22
23
|
title: string;
|
|
23
24
|
url: string;
|
|
24
25
|
externalLink: boolean;
|
|
26
|
+
isDivider?: boolean;
|
|
25
27
|
};
|
|
26
28
|
|
|
27
29
|
export type SubMenuLinkItem = {
|
|
@@ -37,9 +39,10 @@ export type MenuItem = {
|
|
|
37
39
|
|
|
38
40
|
export type MenuItemClickEventDetail = {
|
|
39
41
|
category?: string,
|
|
42
|
+
analyticsPath: Array<string>,
|
|
43
|
+
analyticsName: AnalyticsName,
|
|
40
44
|
originalEvent: Event,
|
|
41
45
|
item: UDExMastheadMenuItem,
|
|
42
|
-
analyticsName: AnalyticsName,
|
|
43
46
|
sourceNode: HTMLElement,
|
|
44
47
|
}
|
|
45
48
|
|
|
@@ -79,6 +82,9 @@ export type MenuItemClickEventDetail = {
|
|
|
79
82
|
category: {
|
|
80
83
|
type: String,
|
|
81
84
|
},
|
|
85
|
+
analyticsPath: {
|
|
86
|
+
type: Array<string>,
|
|
87
|
+
},
|
|
82
88
|
item: {
|
|
83
89
|
type: HTMLElement,
|
|
84
90
|
},
|
|
@@ -143,18 +149,26 @@ class UDExMastheadMenu extends UI5Element {
|
|
|
143
149
|
}
|
|
144
150
|
|
|
145
151
|
handleMenuItemClick(e: Event): void {
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const list = item.closest(".udex-masthead-menu__list") as HTMLElement;
|
|
150
|
-
this.fireEvent<MenuItemClickEventDetail>("menu-item-click", {
|
|
151
|
-
sourceNode: item.shadowRoot?.querySelector(".udex-masthead-menu-item") as HTMLElement,
|
|
152
|
-
analyticsName: AnalyticsName.Header,
|
|
153
|
-
item,
|
|
154
|
-
originalEvent: e,
|
|
155
|
-
...(type !== ItemType.Heading && { category: list?.getAttribute("category") || "" }),
|
|
156
|
-
});
|
|
152
|
+
const menuItem = e.target as UDExMastheadMenuItem;
|
|
153
|
+
if (!menuItem.url?.length) {
|
|
154
|
+
return;
|
|
157
155
|
}
|
|
156
|
+
|
|
157
|
+
const mainItem = this.closest("[udex-masthead-item]") as UDExMastheadItem;
|
|
158
|
+
const menuList = menuItem.closest(".udex-masthead-menu__list") as HTMLElement;
|
|
159
|
+
const sourceNode = menuItem.shadowRoot?.querySelector(".udex-masthead-menu-item") as HTMLElement;
|
|
160
|
+
const category = menuList?.getAttribute("category") || "";
|
|
161
|
+
|
|
162
|
+
const eventDetail: MenuItemClickEventDetail = {
|
|
163
|
+
analyticsPath: [mainItem?.label, category, menuItem.label].filter(Boolean),
|
|
164
|
+
analyticsName: AnalyticsName.Header,
|
|
165
|
+
originalEvent: e,
|
|
166
|
+
item: menuItem,
|
|
167
|
+
sourceNode,
|
|
168
|
+
...(menuItem.type !== ItemType.Heading && { category }),
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
this.fireEvent<MenuItemClickEventDetail>("menu-item-click", eventDetail);
|
|
158
172
|
}
|
|
159
173
|
|
|
160
174
|
focusPreviousItem(item: UDExMastheadMenuItem): void {
|
|
@@ -186,10 +200,16 @@ class UDExMastheadMenu extends UI5Element {
|
|
|
186
200
|
get itemsList(): Array<MenuItem> {
|
|
187
201
|
let id = 1;
|
|
188
202
|
const parsedItems: Array<MenuItem> = this.parseArrayFromString(this.subItems);
|
|
203
|
+
|
|
189
204
|
return parsedItems.map((mainItem: MenuItem) => {
|
|
190
|
-
mainItem.subMenuLinkItems = mainItem.subMenuLinkItems.map((
|
|
191
|
-
|
|
192
|
-
|
|
205
|
+
mainItem.subMenuLinkItems = mainItem.subMenuLinkItems.map((subMenu: SubMenuLinkItem) => {
|
|
206
|
+
subMenu.categoryId = `${id++}`;
|
|
207
|
+
subMenu.items = subMenu.items.map((item: Item) => ({
|
|
208
|
+
...item,
|
|
209
|
+
...(item.title === "-" && { isDivider: true }),
|
|
210
|
+
}));
|
|
211
|
+
|
|
212
|
+
return subMenu;
|
|
193
213
|
});
|
|
194
214
|
|
|
195
215
|
return mainItem;
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
@click="{{handleExploreBackToMenuItems}}"
|
|
18
18
|
label="{{_clickedItem.innerText}}"
|
|
19
19
|
type="Button"
|
|
20
|
+
is-back
|
|
20
21
|
has-border
|
|
21
22
|
icon-start
|
|
22
23
|
is-explore-back>
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
@click="{{handleBackToMenuItems}}"
|
|
36
37
|
label="{{_clickedItem.innerText}}"
|
|
37
38
|
type="Button"
|
|
39
|
+
is-back
|
|
38
40
|
has-border
|
|
39
41
|
icon-start
|
|
40
42
|
is-back-to-nav>
|
|
@@ -51,6 +53,7 @@
|
|
|
51
53
|
@click="{{handleBackToCategories}}"
|
|
52
54
|
label="{{_category.category}}"
|
|
53
55
|
type="Button"
|
|
56
|
+
is-back
|
|
54
57
|
has-border
|
|
55
58
|
icon-start
|
|
56
59
|
is-back-to-categories>
|
|
@@ -68,6 +71,7 @@
|
|
|
68
71
|
@keydown="{{handleLeftRightKeys}}"
|
|
69
72
|
accessible-role="button"
|
|
70
73
|
type="Button"
|
|
74
|
+
first-level-btn
|
|
71
75
|
first-level
|
|
72
76
|
icon-end
|
|
73
77
|
is-explore
|
|
@@ -88,7 +92,8 @@
|
|
|
88
92
|
type="Button"
|
|
89
93
|
has-border
|
|
90
94
|
icon-end
|
|
91
|
-
first-level
|
|
95
|
+
first-level
|
|
96
|
+
first-level-btn>
|
|
92
97
|
</udex-masthead-menu-item>
|
|
93
98
|
{{else}}
|
|
94
99
|
<udex-masthead-menu-item
|
|
@@ -96,6 +101,7 @@
|
|
|
96
101
|
url="{{this.href}}"
|
|
97
102
|
label="{{this.innerText}}"
|
|
98
103
|
target="{{this.target}}"
|
|
104
|
+
first-level
|
|
99
105
|
has-border>
|
|
100
106
|
</udex-masthead-menu-item>
|
|
101
107
|
{{/if}}
|
|
@@ -110,6 +116,7 @@
|
|
|
110
116
|
url="{{_clickedItem.href}}"
|
|
111
117
|
label="{{overviewLinkText}}"
|
|
112
118
|
@click="{{handleMobileItemEvent}}"
|
|
119
|
+
second-level
|
|
113
120
|
has-border>
|
|
114
121
|
</udex-masthead-menu-item>
|
|
115
122
|
</li>
|
|
@@ -125,6 +132,7 @@
|
|
|
125
132
|
aria-has-popup="true"
|
|
126
133
|
type="Button"
|
|
127
134
|
second-level
|
|
135
|
+
second-level-btn
|
|
128
136
|
has-border
|
|
129
137
|
icon-end>
|
|
130
138
|
</udex-masthead-menu-item>
|
|
@@ -136,6 +144,7 @@
|
|
|
136
144
|
@click="{{../handleMobileItemEvent}}"
|
|
137
145
|
url="{{this.url}}"
|
|
138
146
|
label="{{this.title}}"
|
|
147
|
+
second-level
|
|
139
148
|
has-border>
|
|
140
149
|
</udex-masthead-menu-item>
|
|
141
150
|
</li>
|
|
@@ -151,6 +160,7 @@
|
|
|
151
160
|
@click="{{../handleMobileCategoryItemEvent}}"
|
|
152
161
|
url="{{this._category.url}}"
|
|
153
162
|
label="{{overviewLinkText}}"
|
|
163
|
+
third-level
|
|
154
164
|
has-border>
|
|
155
165
|
</udex-masthead-menu-item>
|
|
156
166
|
</li>
|
|
@@ -162,6 +172,7 @@
|
|
|
162
172
|
@click="{{../handleMobileCategoryItemEvent}}"
|
|
163
173
|
label="{{this.title}}"
|
|
164
174
|
url="{{this.url}}"
|
|
175
|
+
third-level
|
|
165
176
|
has-border>
|
|
166
177
|
</udex-masthead-menu-item>
|
|
167
178
|
</li>
|