@sapudex/web-components 0.230.0 → 0.230.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/Assets.js +31 -0
  2. package/dist/Assets.js.map +1 -1
  3. package/dist/CountrySelector.d.ts +0 -3
  4. package/dist/CountrySelector.js +0 -4
  5. package/dist/CountrySelector.js.map +1 -1
  6. package/dist/MastheadCountrySelector.d.ts +6 -0
  7. package/dist/MastheadCountrySelector.js +26 -3
  8. package/dist/MastheadCountrySelector.js.map +1 -1
  9. package/dist/MastheadItem.d.ts +22 -9
  10. package/dist/MastheadItem.js +27 -15
  11. package/dist/MastheadItem.js.map +1 -1
  12. package/dist/MastheadMenu.d.ts +3 -0
  13. package/dist/MastheadMenu.js +9 -0
  14. package/dist/MastheadMenu.js.map +1 -1
  15. package/dist/MastheadMenuItem.d.ts +1 -1
  16. package/dist/MastheadMenuItem.js +1 -1
  17. package/dist/MastheadMenuItem.js.map +1 -1
  18. package/dist/MastheadMobileMenu.d.ts +4 -0
  19. package/dist/MastheadMobileMenu.js +25 -2
  20. package/dist/MastheadMobileMenu.js.map +1 -1
  21. package/dist/MastheadProfileMenu.d.ts +4 -4
  22. package/dist/MastheadProfileMenu.js +22 -0
  23. package/dist/MastheadProfileMenu.js.map +1 -1
  24. package/dist/MastheadShell.d.ts +18 -0
  25. package/dist/MastheadShell.js +32 -17
  26. package/dist/MastheadShell.js.map +1 -1
  27. package/dist/SearchableListBase.js +5 -1
  28. package/dist/SearchableListBase.js.map +1 -1
  29. package/dist/assets/{bundle.esm-8241e0d1.js → bundle.esm-edd066ac.js} +199 -196
  30. package/dist/assets/messagebundle_en-d0c2d2d4.js +1 -0
  31. package/dist/css/themes/Modal.css +1 -1
  32. package/dist/css/themes/RatingIndicator.css +1 -1
  33. package/dist/css/themes/Slider.css +1 -1
  34. package/dist/css/themes/TabInOverflow.css +1 -1
  35. package/dist/custom-elements-internal.json +93 -80
  36. package/dist/custom-elements.json +92 -79
  37. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  38. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  39. package/dist/generated/i18n/i18n-defaults.js +2 -1
  40. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  41. package/dist/generated/templates/MastheadItemTemplate.lit.js +25 -22
  42. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  43. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +1 -1
  44. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  45. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +8 -8
  46. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +1 -1
  47. package/dist/generated/themes/Modal.css.js +1 -1
  48. package/dist/generated/themes/Modal.css.js.map +1 -1
  49. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  50. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  51. package/dist/generated/themes/Slider.css.js +1 -1
  52. package/dist/generated/themes/Slider.css.js.map +1 -1
  53. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  54. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  55. package/dist/i18n/messagebundle.properties +3 -0
  56. package/dist/i18n/messagebundle_en.properties +1 -0
  57. package/dist/types/AnalyticsName.d.ts +5 -0
  58. package/dist/types/AnalyticsName.js +7 -0
  59. package/dist/types/AnalyticsName.js.map +1 -0
  60. package/dist/vscode.html-custom-data.json +5 -5
  61. package/dist/web-types.json +11 -11
  62. package/package.json +1 -1
  63. package/src/Assets.ts +29 -0
  64. package/src/CountrySelector.ts +0 -8
  65. package/src/MastheadCountrySelector.ts +31 -4
  66. package/src/MastheadItem.hbs +8 -0
  67. package/src/MastheadItem.ts +41 -30
  68. package/src/MastheadMenu.ts +11 -1
  69. package/src/MastheadMenuItem.hbs +1 -1
  70. package/src/MastheadMenuItem.ts +2 -2
  71. package/src/MastheadMobileMenu.hbs +8 -8
  72. package/src/MastheadMobileMenu.ts +29 -3
  73. package/src/MastheadProfileMenu.ts +29 -8
  74. package/src/MastheadShell.ts +34 -17
  75. package/src/SearchableListBase.ts +6 -1
  76. package/src/generated/i18n/i18n-defaults.ts +2 -2
  77. package/src/generated/templates/MastheadItemTemplate.lit.ts +25 -22
  78. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +1 -1
  79. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +8 -8
  80. package/src/generated/themes/Modal.css.ts +1 -1
  81. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  82. package/src/generated/themes/Slider.css.ts +1 -1
  83. package/src/generated/themes/TabInOverflow.css.ts +1 -1
  84. package/src/i18n/messagebundle.properties +3 -0
  85. package/src/i18n/messagebundle_en.properties +1 -0
  86. package/src/themes/Modal.css +4 -4
  87. package/src/themes/TabInOverflow.css +1 -1
  88. package/src/types/AnalyticsName.ts +6 -0
  89. package/dist/assets/messagebundle_en-f0b5e0d9.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MastheadProfileMenu.js","sourceRoot":"","sources":["../src/MastheadProfileMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { LOGOUT } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport MastheadProfileMenuTemplate from \"./generated/templates/MastheadProfileMenuTemplate.lit.js\";\nimport UDExMastheadMenuItem from \"./MastheadMenuItem.js\";\n\n// Styles\nimport MastheadProfileMenuCss from \"./generated/themes/MastheadProfileMenu.css.js\";\n\ninterface UserData {\n name?: string,\n username?: string,\n email?: string,\n avatarUrl?: string,\n avatarInitials?: string\n}\n\nexport type LogoutClickEventDetail = {\n originalEvent: Event,\n}\n\nexport type ProfileMenuItemClickEventDetail = {\n item: UDExMastheadMenuItem,\n originalEvent: Event,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-profile-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadProfileMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-profile-menu\",\n renderer: litRender,\n styles: [UDExMastheadMenu.styles, MastheadProfileMenuCss],\n template: MastheadProfileMenuTemplate,\n dependencies: [UDExMastheadMenu],\n})\n\n/**\n * Fired when use click Logout link\n * @public\n */\n@event(\"logout\", {\n detail: {\n originalEvent: {\n type: Event,\n },\n },\n})\n\n/**\n * Fires when profile menu item is clicked\n *\n * @public\n */\n@event(\"profile-item-click\", {\n detail: {\n item: {\n type: HTMLElement,\n },\n originalEvent: {\n type: Event,\n },\n },\n})\n\nclass UDExMastheadProfileMenu extends UI5Element {\n /**\n * Defines the object of link values\n *\n * @default \"\"\n * @public\n */\n @property()\n links!: string;\n\n /**\n * Defines the object of user profile data\n *\n * @default \"\"\n * @public\n */\n @property()\n loggedInUser!: string;\n\n /**\n * Defines the link for logout\n *\n * @default \"\"\n * @public\n */\n @property()\n logoutUrl!: string;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Placeholder for message strip.\n *\n * @public\n */\n @slot({ type: Node, \"default\": false })\n message!: Array<Node>;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExMastheadProfileMenu.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n\n handleUserLogoutItemClick(e: Event): void {\n this.fireEvent<LogoutClickEventDetail>(\"logout\", {\n originalEvent: e,\n });\n }\n\n handleProfileMenuItemClick(e: CustomEvent): void {\n const { item, originalEvent } = e.detail;\n\n this.fireEvent<ProfileMenuItemClickEventDetail>(\"profile-item-click\", {\n item,\n originalEvent,\n });\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n get linksList(): string {\n return this.links ? JSON.stringify([{\n subMenuLinkItems: JSON.parse(this.links),\n }]) : \"\";\n }\n\n get userData(): UserData {\n return this.parseArrayFromString(this.loggedInUser) as UserData;\n }\n\n get messageAvailable(): boolean {\n return !!this.message.length;\n }\n\n get logoutLink(): boolean {\n return !!this.logoutUrl.length;\n }\n\n get logoutText(): string {\n return UDExMastheadProfileMenu.i18nBundle.getText(LOGOUT);\n }\n}\n\nUDExMastheadProfileMenu.define();\n\nexport default UDExMastheadProfileMenu;\n"]}
1
+ {"version":3,"file":"MastheadProfileMenu.js","sourceRoot":"","sources":["../src/MastheadProfileMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { LOGOUT } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport MastheadProfileMenuTemplate from \"./generated/templates/MastheadProfileMenuTemplate.lit.js\";\nimport UDExMastheadMenuItem from \"./MastheadMenuItem.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\n\n// Styles\nimport MastheadProfileMenuCss from \"./generated/themes/MastheadProfileMenu.css.js\";\n\ninterface UserData {\n name?: string,\n username?: string,\n email?: string,\n avatarUrl?: string,\n avatarInitials?: string\n}\n\nexport type UDExProfileClickEventDetail = {\n originalEvent: Event,\n analyticsName: AnalyticsName,\n item: UDExMastheadMenuItem\n sourceNode: HTMLElement,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-profile-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadProfileMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-profile-menu\",\n renderer: litRender,\n styles: [UDExMastheadMenu.styles, MastheadProfileMenuCss],\n template: MastheadProfileMenuTemplate,\n dependencies: [UDExMastheadMenu],\n})\n\n/**\n * Fired when use click Logout link\n * @public\n */\n@event(\"logout\", {\n detail: {\n originalEvent: {\n type: Event,\n },\n analyticsName: {\n type: AnalyticsName,\n },\n item: {\n type: HTMLElement,\n },\n sourceNode: {\n type: HTMLElement,\n },\n },\n})\n\n/**\n * Fires when profile menu item is clicked\n *\n * @public\n */\n@event(\"profile-item-click\", {\n detail: {\n item: {\n type: HTMLElement,\n },\n originalEvent: {\n type: Event,\n },\n analyticsName: {\n type: AnalyticsName,\n },\n sourceNode: {\n type: HTMLElement,\n },\n },\n})\n\nclass UDExMastheadProfileMenu extends UI5Element {\n /**\n * Defines the object of link values\n *\n * @default \"\"\n * @public\n */\n @property()\n links!: string;\n\n /**\n * Defines the object of user profile data\n *\n * @default \"\"\n * @public\n */\n @property()\n loggedInUser!: string;\n\n /**\n * Defines the link for logout\n *\n * @default \"\"\n * @public\n */\n @property()\n logoutUrl!: string;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Placeholder for message strip.\n *\n * @public\n */\n @slot({ type: Node, \"default\": false })\n message!: Array<Node>;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExMastheadProfileMenu.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n\n handleUserLogoutItemClick(e: Event): void {\n const item = e.target as UDExMastheadMenuItem;\n\n this.fireEvent<UDExProfileClickEventDetail>(\"logout\", {\n item,\n sourceNode: item.shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n });\n }\n\n handleProfileMenuItemClick(e: CustomEvent): void {\n const { item, originalEvent } = e.detail;\n\n this.fireEvent<UDExProfileClickEventDetail>(\"profile-item-click\", {\n item,\n originalEvent,\n analyticsName: AnalyticsName.Header,\n sourceNode: item.shadowRoot.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n });\n }\n\n parseArrayFromString<T>(string: string): T[] {\n return string ? JSON.parse(string) as T[] : [];\n }\n\n get linksList(): string {\n return this.links ? JSON.stringify([{\n subMenuLinkItems: JSON.parse(this.links),\n }]) : \"\";\n }\n\n get userData(): UserData {\n return this.parseArrayFromString(this.loggedInUser) as UserData;\n }\n\n get messageAvailable(): boolean {\n return !!this.message.length;\n }\n\n get logoutLink(): boolean {\n return !!this.logoutUrl.length;\n }\n\n get logoutText(): string {\n return UDExMastheadProfileMenu.i18nBundle.getText(LOGOUT);\n }\n}\n\nUDExMastheadProfileMenu.define();\n\nexport default UDExMastheadProfileMenu;\n"]}
@@ -9,6 +9,7 @@ import UDExMastheadMenu from "./MastheadMenu.js";
9
9
  import UDExMastheadMobileMenu from "./MastheadMobileMenu.js";
10
10
  import UDExMastheadProfileMenu from "./MastheadProfileMenu.js";
11
11
  import UDExMastheadCountrySelector from "./MastheadCountrySelector.js";
12
+ import AnalyticsName from "./types/AnalyticsName.js";
12
13
  type MastheadSlottedItem = UDExMastheadItem | UDExMastheadProfileMenu | UDExMastheadMenu | UDExMastheadCountrySelector | undefined | null;
13
14
  type MastheadItemType = UDExMastheadItem | null | undefined;
14
15
  export declare const MastheadOriginalEvent: {
@@ -23,6 +24,22 @@ export declare const MastheadOriginalEvent: {
23
24
  readonly NONE: number;
24
25
  };
25
26
  };
27
+ analyticsName: {
28
+ type: typeof AnalyticsName;
29
+ };
30
+ sourceNode: {
31
+ type: {
32
+ new (): HTMLElement;
33
+ prototype: HTMLElement;
34
+ };
35
+ };
36
+ };
37
+ };
38
+ export declare const AnalyticsNameEventDetail: {
39
+ detail: {
40
+ analyticsName: {
41
+ type: typeof AnalyticsName;
42
+ };
26
43
  };
27
44
  };
28
45
  /**
@@ -257,6 +274,7 @@ declare class UDExMastheadShell extends UI5Element {
257
274
  * @public
258
275
  */
259
276
  closeSearch(): void;
277
+ fireMastheadEvent(eventName: string, e?: CustomEvent): void;
260
278
  /**
261
279
  * Open the search panel.
262
280
  * @public
@@ -25,12 +25,20 @@ import UDExControlButton from "./ControlButton.js";
25
25
  import UDExMastheadMobileMenu from "./MastheadMobileMenu.js";
26
26
  import MastheadShellTemplate from "./generated/templates/MastheadShellTemplate.lit.js";
27
27
  import { BreakpointUtils } from "./utils/Breakpoints.js";
28
+ import AnalyticsName from "./types/AnalyticsName.js";
28
29
  // Styles
29
30
  import MastheadShellCss from "./generated/themes/MastheadShell.css.js";
30
31
  const canvasContentFont = "16px '72 Brand Variable'";
31
32
  export const MastheadOriginalEvent = {
32
33
  detail: {
33
34
  originalEvent: { type: Event },
35
+ analyticsName: { type: AnalyticsName },
36
+ sourceNode: { type: HTMLElement },
37
+ },
38
+ };
39
+ export const AnalyticsNameEventDetail = {
40
+ detail: {
41
+ analyticsName: { type: AnalyticsName },
34
42
  },
35
43
  };
36
44
  /**
@@ -152,31 +160,31 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
152
160
  }
153
161
  }
154
162
  handleLogoClick(e) {
155
- this.fireEvent("logo-click", { originalEvent: e });
163
+ this.fireMastheadEvent("logo-click", e);
156
164
  }
157
165
  handleSiteLabelClick(e) {
158
- this.fireEvent("site-label-click", { originalEvent: e });
166
+ this.fireMastheadEvent("site-label-click", e);
159
167
  }
160
168
  handleSearchClick(e) {
161
169
  e.stopPropagation();
162
- this.fireEvent("search-click", { originalEvent: e });
170
+ this.fireMastheadEvent("search-click", e);
163
171
  this.openSearch();
164
172
  }
165
173
  handleCartClick(e) {
166
174
  e.stopPropagation();
167
- this.fireEvent("cart-click", { originalEvent: e });
175
+ this.fireMastheadEvent("cart-click", e);
168
176
  }
169
177
  handleSupportClick(e) {
170
178
  e.stopPropagation();
171
- this.fireEvent("support-click", { originalEvent: e });
179
+ this.fireMastheadEvent("support-click", e);
172
180
  }
173
181
  handleProfileClick(e) {
174
182
  e.stopPropagation();
175
- this.fireEvent("profile-click", { originalEvent: e });
183
+ this.fireMastheadEvent("profile-click", e);
176
184
  }
177
185
  handleCountrySelectorClick(e) {
178
186
  e.stopPropagation();
179
- this.fireEvent("country-selector-click", { originalEvent: e });
187
+ this.fireMastheadEvent("country-selector-click", e);
180
188
  }
181
189
  handleOpenMobileMenu() {
182
190
  const clickedItem = this.mobileBtn;
@@ -188,11 +196,11 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
188
196
  if (this.bodyOverflow) {
189
197
  this.setOverflowBody();
190
198
  }
191
- this.fireEvent("mobile-menu-open");
199
+ this.fireMastheadEvent("mobile-menu-open");
192
200
  }
193
201
  handleCloseSearch(e) {
194
202
  this._closeBtnClicked = true;
195
- this.fireEvent("search-close-click", { originalEvent: e });
203
+ this.fireMastheadEvent("search-close-click", e);
196
204
  this.closeSearch();
197
205
  }
198
206
  handleEnterAndSpaceOnCloseBtn(e) {
@@ -356,7 +364,15 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
356
364
  */
357
365
  closeSearch() {
358
366
  this._isSearchOpened = false;
359
- this.fireEvent("search-closed");
367
+ this.fireMastheadEvent("search-closed");
368
+ }
369
+ fireMastheadEvent(eventName, e) {
370
+ const eventDetails = {
371
+ analyticsName: AnalyticsName.Header,
372
+ ...(e && { originalEvent: e }),
373
+ ...(e && { sourceNode: e.currentTarget }),
374
+ };
375
+ this.fireEvent(eventName, eventDetails);
360
376
  }
361
377
  /**
362
378
  * Open the search panel.
@@ -375,7 +391,7 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
375
391
  if (this._searchOpener) {
376
392
  this._searchOpener.selected = false;
377
393
  }
378
- this.fireEvent("search-opened");
394
+ this.fireMastheadEvent("search-opened");
379
395
  }
380
396
  /**
381
397
  * Open the mobile menu panel.
@@ -401,7 +417,7 @@ let UDExMastheadShell = UDExMastheadShell_1 = class UDExMastheadShell extends UI
401
417
  if (this.bodyOverflow) {
402
418
  this.removeOverflowBody();
403
419
  }
404
- this.fireEvent("mobile-menu-close");
420
+ this.fireMastheadEvent("mobile-menu-close");
405
421
  }
406
422
  get slottedItems() {
407
423
  return [
@@ -587,14 +603,14 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
587
603
  * @public
588
604
  */
589
605
  ,
590
- event("mobile-menu-open")
606
+ event("mobile-menu-open", AnalyticsNameEventDetail)
591
607
  /**
592
608
  * Fired event when the user clicks the mobile menu button closer.
593
609
  *
594
610
  * @public
595
611
  */
596
612
  ,
597
- event("mobile-menu-close")
613
+ event("mobile-menu-close", AnalyticsNameEventDetail)
598
614
  /**
599
615
  * Fired event when the user clicks the search button trigger.
600
616
  *
@@ -615,14 +631,14 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
615
631
  * @public
616
632
  */
617
633
  ,
618
- event("search-opened")
634
+ event("search-opened", AnalyticsNameEventDetail)
619
635
  /**
620
636
  * Fired event when the search panel is closed.
621
637
  *
622
638
  * @public
623
639
  */
624
640
  ,
625
- event("search-closed")
641
+ event("search-closed", AnalyticsNameEventDetail)
626
642
  /**
627
643
  * Fired event when the user clicks the cart button trigger.
628
644
  *
@@ -662,7 +678,6 @@ UDExMastheadShell = UDExMastheadShell_1 = __decorate([
662
678
  * Fired event when the user clicks the site label.
663
679
  *
664
680
  * @public
665
- * @public
666
681
  */
667
682
  ,
668
683
  event("site-label-click", MastheadOriginalEvent)
@@ -1 +1 @@
1
- {"version":3,"file":"MastheadShell.js","sourceRoot":"","sources":["../src/MastheadShell.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n isLeft, isRight, isSpace, isEnter, isEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/menu2.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MAIN_LINKS } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadItem, { DropdownItemAction } from \"./MastheadItem.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExMastheadMobileMenu from \"./MastheadMobileMenu.js\";\nimport UDExMastheadProfileMenu from \"./MastheadProfileMenu.js\";\nimport UDExMastheadCountrySelector from \"./MastheadCountrySelector.js\";\nimport MastheadShellTemplate from \"./generated/templates/MastheadShellTemplate.lit.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\n\n// Styles\nimport MastheadShellCss from \"./generated/themes/MastheadShell.css.js\";\n\nconst canvasContentFont = \"16px '72 Brand Variable'\";\ntype MastheadSlottedItem = UDExMastheadItem | UDExMastheadProfileMenu | UDExMastheadMenu | UDExMastheadCountrySelector | undefined | null;\ntype MastheadItemType = UDExMastheadItem | null | undefined;\nexport const MastheadOriginalEvent = {\n detail: {\n originalEvent: { type: Event },\n },\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-shell</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadShell.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-shell\",\n languageAware: true,\n renderer: litRender,\n styles: MastheadShellCss,\n template: MastheadShellTemplate,\n dependencies: [\n UDExMastheadMobileMenu,\n UDExControlButton,\n UDExMastheadItem,\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fired event when the user clicks the mobile menu button opener.\n *\n * @public\n */\n@event(\"mobile-menu-open\")\n\n/**\n * Fired event when the user clicks the mobile menu button closer.\n *\n * @public\n */\n@event(\"mobile-menu-close\")\n\n/**\n * Fired event when the user clicks the search button trigger.\n *\n * @public\n */\n@event(\"search-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the search close button.\n *\n * @public\n */\n@event(\"search-close-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the search panel is opened.\n *\n * @public\n */\n@event(\"search-opened\")\n\n/**\n * Fired event when the search panel is closed.\n *\n * @public\n */\n@event(\"search-closed\")\n\n/**\n * Fired event when the user clicks the cart button trigger.\n *\n * @public\n */\n@event(\"cart-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the support button trigger.\n *\n * @public\n */\n@event(\"support-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the profile button trigger.\n *\n * @public\n */\n@event(\"profile-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the country selector button trigger.\n *\n * @public\n */\n@event(\"country-selector-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the logo.\n *\n * @public\n */\n@event(\"logo-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the site label.\n *\n * @public\n * @public\n */\n@event(\"site-label-click\", MastheadOriginalEvent)\n\nclass UDExMastheadShell extends UI5Element {\n /**\n * Slot for country selector item.\n *\n * @public\n */\n @slot({ type: Node })\n countrySelector!: Array<UDExMastheadItem>;\n\n /**\n * Slot for mobile menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n mobileMenu!: Array<Node>;\n\n /**\n * Slot for main menu items.\n *\n * @public\n */\n @slot({ type: HTMLElement, individualSlots: true, \"default\": true })\n menuItems!: Array<UDExMastheadItem>;\n\n /**\n * Slot for search component - will be visible on search icon click.\n * Note: search component should be hidden by default.\n * Note: search icon won't be visible if this slot would be empty\n *\n * @public\n */\n @slot({ type: Node })\n search!: Array<Node>;\n\n /**\n * Slot for 'Explore SAP' menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n exploreSAP!: Array<UDExMastheadItem>;\n\n /**\n * Slot for cart menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n cart!: Array<UDExMastheadItem>;\n\n /**\n * Slot for avatar\n *\n * @public\n */\n @slot({ type: HTMLElement })\n profile!: Array<UDExMastheadItem>;\n\n /**\n * Slot for support\n *\n * @public\n */\n @slot({ type: HTMLElement })\n support!: Array<UDExMastheadItem>;\n\n /**\n * Defines URL to homepage. It will be used as a link on a logo and a site label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n homeUrl!: string;\n\n /**\n * Defines URL for site label. It will be used as a link on a logo and a site label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n siteLabelUrl!: string;\n\n /**\n * Defines overflow style for the body after clicking mobile menu opener button\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n bodyOverflow!: boolean;\n\n /**\n * Defines the visibility of the Search by default.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n showSearchByDefault!: boolean;\n\n /**\n * Defines sticky position for component\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n stickyPosition!: boolean;\n\n /**\n * Defines the Logo image URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n logoUrl!: string;\n\n /**\n * Defines the Logo default title\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n logoTitle!: string;\n\n /**\n * Defines a site label. It will be displayed next to a logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n siteLabel!: string;\n\n /**\n * Defines an alt text for logo\n *\n * @public\n */\n @property({ type: String })\n logoAlt!: string;\n\n /**\n * Defines an accessible name for close icon for the search bar\n *\n * default: \"\"\n * @public\n */\n @property({ type: String })\n closeButtonAccessibleName!: string;\n\n /**\n * Defines an aria label for the homepage link\n *\n * @public\n */\n @property({ type: String })\n homepageAriaLabel!: string;\n\n /**\n * Defines an aria label for the site label\n *\n * @public\n */\n @property({ type: String })\n siteLabelAriaLabel!: string;\n\n /**\n * Defines if the search container is opened\n *\n * @private\n */\n @property({ type: Boolean })\n _isSearchOpened!: boolean;\n\n /**\n * Defines if the mobile menu is open\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMenuOpen!: boolean;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines if the close button was clicked\n *\n * @private\n */\n @property({ type: Boolean })\n _closeBtnClicked!: boolean;\n\n _searchOpener!: UDExMastheadItem | null | undefined;\n _mobileMenu!: UDExMastheadMobileMenu | null | undefined;\n _handleResizeBound: ResizeObserverCallback;\n _rootHolder!: HTMLElement | null | undefined;\n _shouldHandleResize!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExMastheadShell.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onBeforeRendering() {\n if (this.isMobileMenuMode) {\n this.setMobileMenuHeight();\n }\n }\n\n onAfterRendering() {\n this._rootHolder = this.mastheadHolder;\n this._searchOpener = this.searchOpener;\n this._mobileMenu = this.mastheadMobileMenu;\n\n if (this._isSearchOpened) {\n this.focusSearchInput();\n }\n\n if (this._closeBtnClicked) {\n this.focusSearchBtn();\n }\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n _handleResize(): void {\n if (this.shouldHandleMobileView) {\n this.handleMobileMode();\n }\n\n if (this.isAtMostBreakpointSizeM) {\n this._isSearchOpened = false;\n }\n\n if (this._shouldHandleResize && this._isMobileMenuOpen) {\n this.closeMobileMenu();\n this.resetSelectedItems();\n return;\n }\n\n if (this.isMobileMenuMode) {\n this.setMobileMenuHeight();\n }\n\n this._shouldHandleResize = true;\n }\n\n handleMobileMode(): void {\n const rootHolder = this.getDomRef();\n if (rootHolder) {\n const rootHolderWidth = this.getRootHolderWidth(rootHolder);\n const landingHolderWidth = this.getLandingHolderWidth();\n const rightMenuWidth = this.getRightMenuWidth();\n const mainMenuWidth = this.getMainMenuWidth();\n const availableWidth = rootHolderWidth - rightMenuWidth - landingHolderWidth;\n\n if (mainMenuWidth >= availableWidth) {\n this.setMobileMode();\n } else {\n this.removeMobileMode();\n }\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleSearchKeyDown(e: CustomEvent): void {\n e.stopPropagation();\n const keyEvent = e.detail as KeyboardEvent;\n\n if (isEscape(keyEvent)) {\n if (this.showSearchByDefault && this.isAtLeastBreakpointSizeM) {\n return;\n }\n this.closeSearch();\n this.focusSearchBtn();\n }\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n if (isLeft(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n if (currentItem.selected) {\n currentItem.closeDropdown();\n }\n this.focusPreviousMenuItem(currentItem);\n }\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n if (isRight(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n if (currentItem.selected) {\n currentItem.closeDropdown();\n }\n this.focusNextMenuItem(currentItem);\n }\n }\n }\n\n handleLogoClick(e: CustomEvent): void {\n this.fireEvent(\"logo-click\", { originalEvent: e });\n }\n\n handleSiteLabelClick(e: CustomEvent): void {\n this.fireEvent(\"site-label-click\", { originalEvent: e });\n }\n\n handleSearchClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireEvent(\"search-click\", { originalEvent: e });\n this.openSearch();\n }\n\n handleCartClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireEvent(\"cart-click\", { originalEvent: e });\n }\n\n handleSupportClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireEvent(\"support-click\", { originalEvent: e });\n }\n\n handleProfileClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireEvent(\"profile-click\", { originalEvent: e });\n }\n\n handleCountrySelectorClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireEvent(\"country-selector-click\", { originalEvent: e });\n }\n\n handleOpenMobileMenu(): void {\n const clickedItem = this.mobileBtn as UDExMastheadItem;\n if (!clickedItem) {\n return;\n }\n\n this.resetSelectedItems(clickedItem._id);\n this._isMobileMenuOpen = true;\n\n if (this.bodyOverflow) {\n this.setOverflowBody();\n }\n\n this.fireEvent(\"mobile-menu-open\");\n }\n\n handleCloseSearch(e: CustomEvent): void {\n this._closeBtnClicked = true;\n this.fireEvent(\"search-close-click\", { originalEvent: e });\n this.closeSearch();\n }\n\n handleEnterAndSpaceOnCloseBtn(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.closeMobileMenu();\n this.mobileBtn?.focus();\n }\n }\n\n focusSearchInput(): void {\n const searchSlot = this.querySelector<UDExSearch>(\"[udex-search]\");\n if (searchSlot) {\n const input = searchSlot.shadowRoot!.querySelector<HTMLElement>(\"input\");\n input?.focus();\n }\n }\n\n focusPreviousMenuItem(item: UDExMastheadItem): void {\n const menuItems = this.menuItems;\n const lastItemIndex = menuItems.length - 1;\n const currentSelectedIndex = this.getCurrentIndex(item);\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n menuItems[previousSelectIndex].focus();\n }\n\n focusNextMenuItem(item: UDExMastheadItem): void {\n const menuItems = this.menuItems;\n const currentSelectedIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectedIndex + 1 > menuItems.length - 1 ? 0 : currentSelectedIndex + 1;\n menuItems[nextSelectIndex].focus();\n }\n\n resetSelectedItems(clickedId?: string): void {\n this.getSelectedItems().forEach(item => {\n if (item._id !== clickedId && item.selected) {\n if (item.hasDropdownSlot) {\n item.fireDropdownCloseEvent(item.eventItemTitle, DropdownItemAction.ClickOutside);\n }\n item.selected = false;\n }\n });\n }\n\n setSelectedItem(e: CustomEvent): void {\n const clickedItem: UDExMastheadItem = e.detail.item;\n if (clickedItem) {\n this.resetSelectedItems(clickedItem._id);\n }\n }\n\n focusSearchBtn(): void {\n if (this._searchOpener) {\n this._searchOpener.focus();\n this._closeBtnClicked = false;\n }\n }\n\n getCurrentIndex(item: UDExMastheadItem): number {\n return this.menuItems.indexOf(item);\n }\n\n getSelectedItems(): Array<UDExMastheadItem> {\n const buttonsArray: Array<UDExMastheadItem> = [\n ...this.menuItems,\n ...this.exploreSAP,\n ...this.cart,\n ...this.support,\n ...this.profile,\n ...this.countrySelector,\n ...(this.mobileBtn && this.closeBtn ? [this.mobileBtn, this.closeBtn] : []),\n ];\n\n return buttonsArray.filter(({ selected }) => selected);\n }\n\n getRootHolderWidth(root: HTMLElement): number {\n const rootPadding = parseInt(window.getComputedStyle(root).getPropertyValue(\"padding-left\")) * 2;\n const scrollWidth = window.innerWidth - document.documentElement.clientWidth;\n return this.getDomRef()!.clientWidth + scrollWidth - rootPadding;\n }\n\n getLandingHolderWidth(): number {\n const landingHolder = this.getDomElement(\".udex-masthead-shell__landing-wrap\");\n return landingHolder?.offsetWidth || 0;\n }\n\n getRightMenuWidth(): number {\n const itemsIcon = [...this.shadowRoot!.querySelectorAll<HTMLDivElement>(\".udex-masthead-shell__item_icon\")];\n const itemIconWidths = itemsIcon.length * this.getItemIconWidth();\n const itemIconGaps = itemsIcon.length * this.getItemIconGap();\n const exploreSAPWidth = this.hasExploreSAP ? this.getItemWidth(this.exploreSAP[0]) : 0;\n const rightMenuGaps = this.getRightMenuGap() + this.getExploreSapBtnGap() + itemIconGaps;\n return exploreSAPWidth + itemIconWidths + rightMenuGaps;\n }\n\n getItemIconWidth(): number {\n const item = this.querySelector(\"[udex-masthead-item]\");\n\n if (!item) { return 0; }\n\n const style = window.getComputedStyle(item);\n const itemIconWidthVar = style.getPropertyValue(\"--udex-masthead-item-button-icon-size\");\n return parseInt(itemIconWidthVar);\n }\n\n getMainMenuWidth(): number {\n const mainItems = this.getSlottedNodes(\"menuItems\");\n const gapItemVar = this.getRootVar(\"--udex-masthead-shell-item-gap\");\n return mainItems.reduce((accumulatedWidth, item, index) => {\n return accumulatedWidth + this.getItemWidth(item as UDExMastheadItem) + (index && parseInt(gapItemVar));\n }, 0);\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n getItemWidth(item: UDExMastheadItem): number {\n const context = this.getCanvasContext();\n context.font = canvasContentFont;\n return Math.ceil(context.measureText(item.innerText.trim()).width);\n }\n\n getCanvasContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n return canvas.getContext(\"2d\")!;\n }\n\n getItemIconGap(): number {\n const gapIconItemVar = this.getRootVar(\"--udex-masthead-shell-item-icon-gap\");\n return parseInt(gapIconItemVar);\n }\n\n getExploreSapBtnGap(): number {\n const exploreSapBtnGapVar = this.getRootVar(\"--udex-masthead-shell-explore-margin\");\n return this.hasExploreSAP ? parseInt(exploreSapBtnGapVar) : 0;\n }\n\n getRightMenuGap(): number {\n const rightMenuGapVar = this.getRootVar(\"--udex-masthead-right-menu-padding\");\n return parseInt(rightMenuGapVar);\n }\n\n getRootVar(variableName: string): string {\n return window.getComputedStyle(this.getDomRef()!).getPropertyValue(`${variableName}`);\n }\n\n isNavigationItem(item: UDExMastheadItem): boolean {\n return this.menuItems.some(menuItem => menuItem === item);\n }\n\n setOverflowBody() {\n const { body: { style } } = document;\n this._shouldHandleResize = false;\n style.overflow = \"hidden\";\n }\n\n removeOverflowBody() {\n const { body: { style } } = document;\n style.removeProperty(\"overflow\");\n }\n\n setMobileMode(): void {\n this._isMobileMode = true;\n this.slottedItems.forEach((item: MastheadSlottedItem) => {\n if (item) {\n item._isMobileMode = true;\n }\n });\n }\n\n setMobileMenuHeight(): void {\n const mastheadHeight = parseInt(window.getComputedStyle(this).getPropertyValue(\"--udex-masthead-shell-height\"));\n const mobileMenuHeight = `${window.innerHeight - mastheadHeight}px`;\n this.style.setProperty(\"--udex-masthead-shell-mobile-menu-height\", mobileMenuHeight);\n }\n\n removeMobileMode(): void {\n this._isMobileMode = false;\n this.slottedItems.forEach((item: MastheadSlottedItem) => {\n item?.removeAttribute(\"_is-mobile-mode\");\n });\n }\n\n /**\n * Close the search panel.\n * @public\n */\n closeSearch(): void {\n this._isSearchOpened = false;\n this.fireEvent(\"search-closed\");\n }\n\n /**\n * Open the search panel.\n * @public\n */\n openSearch(): void {\n const shouldPreventOpeningSearch = this._isSearchOpened\n || (this.isAtMostBreakpointSizeM && !this.showSearchByDefault)\n || this._isMobileMode\n || (this.isAtLeastBreakpointSizeM && this.showSearchByDefault);\n\n if (shouldPreventOpeningSearch) {\n return;\n }\n\n this._isSearchOpened = true;\n this.resetSelectedItems();\n\n if (this._searchOpener) {\n this._searchOpener.selected = false;\n }\n\n this.fireEvent(\"search-opened\");\n }\n\n /**\n * Open the mobile menu panel.\n * @public\n */\n openMobileMenu(): void {\n if (!this._isMobileMenuOpen && this.isMobileMenuMode) {\n this.mobileBtn?.handleSelectedChange();\n this.handleOpenMobileMenu();\n }\n }\n\n /**\n * Close the mobile menu panel.\n * @public\n */\n closeMobileMenu(): void {\n if (!this._isMobileMenuOpen) {\n return;\n }\n\n (this.mobileBtn as UDExMastheadItem).selected = false;\n this._isMobileMenuOpen = false;\n this._mobileMenu?.showFirstLevelMenu();\n\n if (this.bodyOverflow) {\n this.removeOverflowBody();\n }\n\n this.fireEvent(\"mobile-menu-close\");\n }\n\n get slottedItems(): (MastheadSlottedItem)[] {\n return [\n this.profileItem,\n this.profileMenu,\n this.cartItem,\n this.supportItem,\n this.profileMenu,\n this.profileMenuLinks,\n this.countrySelectorItem,\n this.countrySelectorMenu,\n ];\n }\n\n get searchOpener(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__search-btn\");\n }\n\n get mastheadHolder(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell\");\n }\n\n get mastheadMobileMenu(): UDExMastheadMobileMenu | null {\n return this.querySelector(\"[udex-masthead-mobile-menu]\");\n }\n\n get mobileBtn(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__menu-btn\");\n }\n\n get closeBtn(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__close-btn\");\n }\n\n get profileItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"profile\")[0];\n }\n\n get countrySelectorItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"countrySelector\")[0];\n }\n\n get cartItem(): MastheadItemType {\n return this.getSlottedNodes<UDExMastheadItem>(\"cart\")[0];\n }\n\n get supportItem(): MastheadItemType {\n return this.getSlottedNodes<UDExMastheadItem>(\"support\")[0];\n }\n\n get profileMenu(): UDExMastheadProfileMenu {\n return this.querySelector(\"[udex-masthead-profile-menu]\")!;\n }\n\n get countrySelectorMenu(): UDExMastheadCountrySelector {\n return this.querySelector(\"[udex-masthead-country-selector]\")!;\n }\n\n get profileMenuLinks(): UDExMastheadMenu | undefined | null {\n return this.profileMenu?.shadowRoot?.querySelector(\"[udex-masthead-menu]\");\n }\n\n get hasProfile(): boolean {\n return !!this.profile.length;\n }\n\n get hasCart(): boolean {\n return !!this.cart.length;\n }\n\n get hasSearch(): boolean {\n return !!this.search.length;\n }\n\n get hasExploreSAP(): boolean {\n return !!this.exploreSAP.length;\n }\n\n get hasCountrySelector(): boolean {\n return !!this.countrySelector.length;\n }\n\n get hasSupport(): boolean {\n return !!this.support.length;\n }\n\n get hasMobileMenuButtons(): boolean {\n return !!this.mobileMenu.length;\n }\n\n get isAtMostBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtMost(\"M\");\n }\n\n get isAtLeastBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtLeast(\"M\");\n }\n\n get isMobileMenuMode(): boolean {\n return this._isMobileMode || this.isAtMostBreakpointSizeM;\n }\n\n get isMainMenuVisible(): boolean {\n return !this.showSearchByDefault && !this._isSearchOpened;\n }\n\n get isSearchVisible(): boolean {\n return this.showSearchByDefault || this._isSearchOpened;\n }\n\n get shouldHandleMobileView(): boolean {\n return !this.isAtMostBreakpointSizeM && !this.showSearchByDefault;\n }\n\n get mainNavigationAriaLabel(): string {\n return UDExMastheadShell.i18nBundle.getText(MAIN_LINKS);\n }\n}\n\nUDExMastheadShell.define();\n\nexport default UDExMastheadShell;\n"]}
1
+ {"version":3,"file":"MastheadShell.js","sourceRoot":"","sources":["../src/MastheadShell.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport UI5Icon from \"@ui5/webcomponents/dist/Icon.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler, { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport {\n isLeft, isRight, isSpace, isEnter, isEscape,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/menu2.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { MAIN_LINKS } from \"./generated/i18n/i18n-defaults.js\";\nimport UDExMastheadItem, { DropdownItemAction } from \"./MastheadItem.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExControlButton from \"./ControlButton.js\";\nimport UDExSearch from \"./Search.js\";\nimport UDExMastheadMobileMenu from \"./MastheadMobileMenu.js\";\nimport UDExMastheadProfileMenu from \"./MastheadProfileMenu.js\";\nimport UDExMastheadCountrySelector from \"./MastheadCountrySelector.js\";\nimport MastheadShellTemplate from \"./generated/templates/MastheadShellTemplate.lit.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\n\n// Styles\nimport MastheadShellCss from \"./generated/themes/MastheadShell.css.js\";\n\nconst canvasContentFont = \"16px '72 Brand Variable'\";\ntype MastheadSlottedItem = UDExMastheadItem | UDExMastheadProfileMenu | UDExMastheadMenu | UDExMastheadCountrySelector | undefined | null;\ntype MastheadItemType = UDExMastheadItem | null | undefined;\nexport const MastheadOriginalEvent = {\n detail: {\n originalEvent: { type: Event },\n analyticsName: { type: AnalyticsName },\n sourceNode: { type: HTMLElement },\n },\n};\n\nexport const AnalyticsNameEventDetail = {\n detail: {\n analyticsName: { type: AnalyticsName },\n },\n};\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-shell</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadShell.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-shell\",\n languageAware: true,\n renderer: litRender,\n styles: MastheadShellCss,\n template: MastheadShellTemplate,\n dependencies: [\n UDExMastheadMobileMenu,\n UDExControlButton,\n UDExMastheadItem,\n UDExMastheadMenu,\n UI5Icon,\n ],\n})\n\n/**\n * Fired event when the user clicks the mobile menu button opener.\n *\n * @public\n */\n@event(\"mobile-menu-open\", AnalyticsNameEventDetail)\n\n/**\n * Fired event when the user clicks the mobile menu button closer.\n *\n * @public\n */\n@event(\"mobile-menu-close\", AnalyticsNameEventDetail)\n\n/**\n * Fired event when the user clicks the search button trigger.\n *\n * @public\n */\n@event(\"search-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the search close button.\n *\n * @public\n */\n@event(\"search-close-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the search panel is opened.\n *\n * @public\n */\n@event(\"search-opened\", AnalyticsNameEventDetail)\n\n/**\n * Fired event when the search panel is closed.\n *\n * @public\n */\n@event(\"search-closed\", AnalyticsNameEventDetail)\n\n/**\n * Fired event when the user clicks the cart button trigger.\n *\n * @public\n */\n@event(\"cart-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the support button trigger.\n *\n * @public\n */\n@event(\"support-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the profile button trigger.\n *\n * @public\n */\n@event(\"profile-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the country selector button trigger.\n *\n * @public\n */\n@event(\"country-selector-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the logo.\n *\n * @public\n */\n@event(\"logo-click\", MastheadOriginalEvent)\n\n/**\n * Fired event when the user clicks the site label.\n *\n * @public\n */\n@event(\"site-label-click\", MastheadOriginalEvent)\n\nclass UDExMastheadShell extends UI5Element {\n /**\n * Slot for country selector item.\n *\n * @public\n */\n @slot({ type: Node })\n countrySelector!: Array<UDExMastheadItem>;\n\n /**\n * Slot for mobile menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n mobileMenu!: Array<Node>;\n\n /**\n * Slot for main menu items.\n *\n * @public\n */\n @slot({ type: HTMLElement, individualSlots: true, \"default\": true })\n menuItems!: Array<UDExMastheadItem>;\n\n /**\n * Slot for search component - will be visible on search icon click.\n * Note: search component should be hidden by default.\n * Note: search icon won't be visible if this slot would be empty\n *\n * @public\n */\n @slot({ type: Node })\n search!: Array<Node>;\n\n /**\n * Slot for 'Explore SAP' menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n exploreSAP!: Array<UDExMastheadItem>;\n\n /**\n * Slot for cart menu\n *\n * @public\n */\n @slot({ type: HTMLElement })\n cart!: Array<UDExMastheadItem>;\n\n /**\n * Slot for avatar\n *\n * @public\n */\n @slot({ type: HTMLElement })\n profile!: Array<UDExMastheadItem>;\n\n /**\n * Slot for support\n *\n * @public\n */\n @slot({ type: HTMLElement })\n support!: Array<UDExMastheadItem>;\n\n /**\n * Defines URL to homepage. It will be used as a link on a logo and a site label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n homeUrl!: string;\n\n /**\n * Defines URL for site label. It will be used as a link on a logo and a site label\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n siteLabelUrl!: string;\n\n /**\n * Defines overflow style for the body after clicking mobile menu opener button\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n bodyOverflow!: boolean;\n\n /**\n * Defines the visibility of the Search by default.\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n showSearchByDefault!: boolean;\n\n /**\n * Defines sticky position for component\n *\n * @default \"\"\n * @public\n */\n @property({ type: Boolean })\n stickyPosition!: boolean;\n\n /**\n * Defines the Logo image URL\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n logoUrl!: string;\n\n /**\n * Defines the Logo default title\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n logoTitle!: string;\n\n /**\n * Defines a site label. It will be displayed next to a logo.\n *\n * @default \"\"\n * @public\n */\n @property({ type: String })\n siteLabel!: string;\n\n /**\n * Defines an alt text for logo\n *\n * @public\n */\n @property({ type: String })\n logoAlt!: string;\n\n /**\n * Defines an accessible name for close icon for the search bar\n *\n * default: \"\"\n * @public\n */\n @property({ type: String })\n closeButtonAccessibleName!: string;\n\n /**\n * Defines an aria label for the homepage link\n *\n * @public\n */\n @property({ type: String })\n homepageAriaLabel!: string;\n\n /**\n * Defines an aria label for the site label\n *\n * @public\n */\n @property({ type: String })\n siteLabelAriaLabel!: string;\n\n /**\n * Defines if the search container is opened\n *\n * @private\n */\n @property({ type: Boolean })\n _isSearchOpened!: boolean;\n\n /**\n * Defines if the mobile menu is open\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMenuOpen!: boolean;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines if the close button was clicked\n *\n * @private\n */\n @property({ type: Boolean })\n _closeBtnClicked!: boolean;\n\n _searchOpener!: UDExMastheadItem | null | undefined;\n _mobileMenu!: UDExMastheadMobileMenu | null | undefined;\n _handleResizeBound: ResizeObserverCallback;\n _rootHolder!: HTMLElement | null | undefined;\n _shouldHandleResize!: boolean;\n\n static i18nBundle: I18nBundle;\n\n static async onDefine(): Promise<void> {\n UDExMastheadShell.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n\n constructor() {\n super();\n this._handleResizeBound = this._handleResize.bind(this);\n }\n\n onBeforeRendering() {\n if (this.isMobileMenuMode) {\n this.setMobileMenuHeight();\n }\n }\n\n onAfterRendering() {\n this._rootHolder = this.mastheadHolder;\n this._searchOpener = this.searchOpener;\n this._mobileMenu = this.mastheadMobileMenu;\n\n if (this._isSearchOpened) {\n this.focusSearchInput();\n }\n\n if (this._closeBtnClicked) {\n this.focusSearchBtn();\n }\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n _handleResize(): void {\n if (this.shouldHandleMobileView) {\n this.handleMobileMode();\n }\n\n if (this.isAtMostBreakpointSizeM) {\n this._isSearchOpened = false;\n }\n\n if (this._shouldHandleResize && this._isMobileMenuOpen) {\n this.closeMobileMenu();\n this.resetSelectedItems();\n return;\n }\n\n if (this.isMobileMenuMode) {\n this.setMobileMenuHeight();\n }\n\n this._shouldHandleResize = true;\n }\n\n handleMobileMode(): void {\n const rootHolder = this.getDomRef();\n if (rootHolder) {\n const rootHolderWidth = this.getRootHolderWidth(rootHolder);\n const landingHolderWidth = this.getLandingHolderWidth();\n const rightMenuWidth = this.getRightMenuWidth();\n const mainMenuWidth = this.getMainMenuWidth();\n const availableWidth = rootHolderWidth - rightMenuWidth - landingHolderWidth;\n\n if (mainMenuWidth >= availableWidth) {\n this.setMobileMode();\n } else {\n this.removeMobileMode();\n }\n }\n }\n\n handleKeyDown(e: KeyboardEvent): void {\n e.stopPropagation();\n this.handleLeftArrow(e);\n this.handleRightArrow(e);\n }\n\n handleSearchKeyDown(e: CustomEvent): void {\n e.stopPropagation();\n const keyEvent = e.detail as KeyboardEvent;\n\n if (isEscape(keyEvent)) {\n if (this.showSearchByDefault && this.isAtLeastBreakpointSizeM) {\n return;\n }\n this.closeSearch();\n this.focusSearchBtn();\n }\n }\n\n handleLeftArrow(e: KeyboardEvent): void {\n if (isLeft(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n if (currentItem.selected) {\n currentItem.closeDropdown();\n }\n this.focusPreviousMenuItem(currentItem);\n }\n }\n }\n\n handleRightArrow(e: KeyboardEvent): void {\n if (isRight(e)) {\n const currentItem = e.target as UDExMastheadItem;\n if (this.isNavigationItem(currentItem)) {\n if (currentItem.selected) {\n currentItem.closeDropdown();\n }\n this.focusNextMenuItem(currentItem);\n }\n }\n }\n\n handleLogoClick(e: CustomEvent): void {\n this.fireMastheadEvent(\"logo-click\", e);\n }\n\n handleSiteLabelClick(e: CustomEvent): void {\n this.fireMastheadEvent(\"site-label-click\", e);\n }\n\n handleSearchClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"search-click\", e);\n this.openSearch();\n }\n\n handleCartClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"cart-click\", e);\n }\n\n handleSupportClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"support-click\", e);\n }\n\n handleProfileClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"profile-click\", e);\n }\n\n handleCountrySelectorClick(e: CustomEvent): void {\n e.stopPropagation();\n this.fireMastheadEvent(\"country-selector-click\", e);\n }\n\n handleOpenMobileMenu(): void {\n const clickedItem = this.mobileBtn as UDExMastheadItem;\n if (!clickedItem) {\n return;\n }\n\n this.resetSelectedItems(clickedItem._id);\n this._isMobileMenuOpen = true;\n\n if (this.bodyOverflow) {\n this.setOverflowBody();\n }\n\n this.fireMastheadEvent(\"mobile-menu-open\");\n }\n\n handleCloseSearch(e: CustomEvent): void {\n this._closeBtnClicked = true;\n this.fireMastheadEvent(\"search-close-click\", e);\n this.closeSearch();\n }\n\n handleEnterAndSpaceOnCloseBtn(e: KeyboardEvent): void {\n if (isSpace(e) || isEnter(e)) {\n e.preventDefault();\n this.closeMobileMenu();\n this.mobileBtn?.focus();\n }\n }\n\n focusSearchInput(): void {\n const searchSlot = this.querySelector<UDExSearch>(\"[udex-search]\");\n if (searchSlot) {\n const input = searchSlot.shadowRoot!.querySelector<HTMLElement>(\"input\");\n input?.focus();\n }\n }\n\n focusPreviousMenuItem(item: UDExMastheadItem): void {\n const menuItems = this.menuItems;\n const lastItemIndex = menuItems.length - 1;\n const currentSelectedIndex = this.getCurrentIndex(item);\n const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;\n menuItems[previousSelectIndex].focus();\n }\n\n focusNextMenuItem(item: UDExMastheadItem): void {\n const menuItems = this.menuItems;\n const currentSelectedIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectedIndex + 1 > menuItems.length - 1 ? 0 : currentSelectedIndex + 1;\n menuItems[nextSelectIndex].focus();\n }\n\n resetSelectedItems(clickedId?: string): void {\n this.getSelectedItems().forEach(item => {\n if (item._id !== clickedId && item.selected) {\n if (item.hasDropdownSlot) {\n item.fireDropdownCloseEvent(item.eventItemTitle, DropdownItemAction.ClickOutside);\n }\n item.selected = false;\n }\n });\n }\n\n setSelectedItem(e: CustomEvent): void {\n const clickedItem: UDExMastheadItem = e.detail.item;\n if (clickedItem) {\n this.resetSelectedItems(clickedItem._id);\n }\n }\n\n focusSearchBtn(): void {\n if (this._searchOpener) {\n this._searchOpener.focus();\n this._closeBtnClicked = false;\n }\n }\n\n getCurrentIndex(item: UDExMastheadItem): number {\n return this.menuItems.indexOf(item);\n }\n\n getSelectedItems(): Array<UDExMastheadItem> {\n const buttonsArray: Array<UDExMastheadItem> = [\n ...this.menuItems,\n ...this.exploreSAP,\n ...this.cart,\n ...this.support,\n ...this.profile,\n ...this.countrySelector,\n ...(this.mobileBtn && this.closeBtn ? [this.mobileBtn, this.closeBtn] : []),\n ];\n\n return buttonsArray.filter(({ selected }) => selected);\n }\n\n getRootHolderWidth(root: HTMLElement): number {\n const rootPadding = parseInt(window.getComputedStyle(root).getPropertyValue(\"padding-left\")) * 2;\n const scrollWidth = window.innerWidth - document.documentElement.clientWidth;\n return this.getDomRef()!.clientWidth + scrollWidth - rootPadding;\n }\n\n getLandingHolderWidth(): number {\n const landingHolder = this.getDomElement(\".udex-masthead-shell__landing-wrap\");\n return landingHolder?.offsetWidth || 0;\n }\n\n getRightMenuWidth(): number {\n const itemsIcon = [...this.shadowRoot!.querySelectorAll<HTMLDivElement>(\".udex-masthead-shell__item_icon\")];\n const itemIconWidths = itemsIcon.length * this.getItemIconWidth();\n const itemIconGaps = itemsIcon.length * this.getItemIconGap();\n const exploreSAPWidth = this.hasExploreSAP ? this.getItemWidth(this.exploreSAP[0]) : 0;\n const rightMenuGaps = this.getRightMenuGap() + this.getExploreSapBtnGap() + itemIconGaps;\n return exploreSAPWidth + itemIconWidths + rightMenuGaps;\n }\n\n getItemIconWidth(): number {\n const item = this.querySelector(\"[udex-masthead-item]\");\n\n if (!item) { return 0; }\n\n const style = window.getComputedStyle(item);\n const itemIconWidthVar = style.getPropertyValue(\"--udex-masthead-item-button-icon-size\");\n return parseInt(itemIconWidthVar);\n }\n\n getMainMenuWidth(): number {\n const mainItems = this.getSlottedNodes(\"menuItems\");\n const gapItemVar = this.getRootVar(\"--udex-masthead-shell-item-gap\");\n return mainItems.reduce((accumulatedWidth, item, index) => {\n return accumulatedWidth + this.getItemWidth(item as UDExMastheadItem) + (index && parseInt(gapItemVar));\n }, 0);\n }\n\n getDomElement(selector: string): HTMLElement | undefined | null {\n return this.shadowRoot?.querySelector(`${selector}`);\n }\n\n getItemWidth(item: UDExMastheadItem): number {\n const context = this.getCanvasContext();\n context.font = canvasContentFont;\n return Math.ceil(context.measureText(item.innerText.trim()).width);\n }\n\n getCanvasContext(): CanvasRenderingContext2D {\n const canvas = document.createElement(\"canvas\");\n return canvas.getContext(\"2d\")!;\n }\n\n getItemIconGap(): number {\n const gapIconItemVar = this.getRootVar(\"--udex-masthead-shell-item-icon-gap\");\n return parseInt(gapIconItemVar);\n }\n\n getExploreSapBtnGap(): number {\n const exploreSapBtnGapVar = this.getRootVar(\"--udex-masthead-shell-explore-margin\");\n return this.hasExploreSAP ? parseInt(exploreSapBtnGapVar) : 0;\n }\n\n getRightMenuGap(): number {\n const rightMenuGapVar = this.getRootVar(\"--udex-masthead-right-menu-padding\");\n return parseInt(rightMenuGapVar);\n }\n\n getRootVar(variableName: string): string {\n return window.getComputedStyle(this.getDomRef()!).getPropertyValue(`${variableName}`);\n }\n\n isNavigationItem(item: UDExMastheadItem): boolean {\n return this.menuItems.some(menuItem => menuItem === item);\n }\n\n setOverflowBody() {\n const { body: { style } } = document;\n this._shouldHandleResize = false;\n style.overflow = \"hidden\";\n }\n\n removeOverflowBody() {\n const { body: { style } } = document;\n style.removeProperty(\"overflow\");\n }\n\n setMobileMode(): void {\n this._isMobileMode = true;\n this.slottedItems.forEach((item: MastheadSlottedItem) => {\n if (item) {\n item._isMobileMode = true;\n }\n });\n }\n\n setMobileMenuHeight(): void {\n const mastheadHeight = parseInt(window.getComputedStyle(this).getPropertyValue(\"--udex-masthead-shell-height\"));\n const mobileMenuHeight = `${window.innerHeight - mastheadHeight}px`;\n this.style.setProperty(\"--udex-masthead-shell-mobile-menu-height\", mobileMenuHeight);\n }\n\n removeMobileMode(): void {\n this._isMobileMode = false;\n this.slottedItems.forEach((item: MastheadSlottedItem) => {\n item?.removeAttribute(\"_is-mobile-mode\");\n });\n }\n\n /**\n * Close the search panel.\n * @public\n */\n closeSearch(): void {\n this._isSearchOpened = false;\n this.fireMastheadEvent(\"search-closed\");\n }\n\n fireMastheadEvent(eventName: string, e?: CustomEvent): void {\n const eventDetails = {\n analyticsName: AnalyticsName.Header,\n ...(e && { originalEvent: e }),\n ...(e && { sourceNode: e.currentTarget as HTMLElement }),\n };\n this.fireEvent(eventName, eventDetails);\n }\n\n /**\n * Open the search panel.\n * @public\n */\n openSearch(): void {\n const shouldPreventOpeningSearch = this._isSearchOpened\n || (this.isAtMostBreakpointSizeM && !this.showSearchByDefault)\n || this._isMobileMode\n || (this.isAtLeastBreakpointSizeM && this.showSearchByDefault);\n\n if (shouldPreventOpeningSearch) {\n return;\n }\n\n this._isSearchOpened = true;\n this.resetSelectedItems();\n\n if (this._searchOpener) {\n this._searchOpener.selected = false;\n }\n\n this.fireMastheadEvent(\"search-opened\");\n }\n\n /**\n * Open the mobile menu panel.\n * @public\n */\n openMobileMenu(): void {\n if (!this._isMobileMenuOpen && this.isMobileMenuMode) {\n this.mobileBtn?.handleSelectedChange();\n this.handleOpenMobileMenu();\n }\n }\n\n /**\n * Close the mobile menu panel.\n * @public\n */\n closeMobileMenu(): void {\n if (!this._isMobileMenuOpen) {\n return;\n }\n\n (this.mobileBtn as UDExMastheadItem).selected = false;\n this._isMobileMenuOpen = false;\n this._mobileMenu?.showFirstLevelMenu();\n\n if (this.bodyOverflow) {\n this.removeOverflowBody();\n }\n\n this.fireMastheadEvent(\"mobile-menu-close\");\n }\n\n get slottedItems(): (MastheadSlottedItem)[] {\n return [\n this.profileItem,\n this.profileMenu,\n this.cartItem,\n this.supportItem,\n this.profileMenu,\n this.profileMenuLinks,\n this.countrySelectorItem,\n this.countrySelectorMenu,\n ];\n }\n\n get searchOpener(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__search-btn\");\n }\n\n get mastheadHolder(): HTMLElement | null | undefined {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell\");\n }\n\n get mastheadMobileMenu(): UDExMastheadMobileMenu | null {\n return this.querySelector(\"[udex-masthead-mobile-menu]\");\n }\n\n get mobileBtn(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__menu-btn\");\n }\n\n get closeBtn(): MastheadItemType {\n return this.shadowRoot?.querySelector(\".udex-masthead-shell__close-btn\");\n }\n\n get profileItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"profile\")[0];\n }\n\n get countrySelectorItem(): UDExMastheadItem {\n return this.getSlottedNodes<UDExMastheadItem>(\"countrySelector\")[0];\n }\n\n get cartItem(): MastheadItemType {\n return this.getSlottedNodes<UDExMastheadItem>(\"cart\")[0];\n }\n\n get supportItem(): MastheadItemType {\n return this.getSlottedNodes<UDExMastheadItem>(\"support\")[0];\n }\n\n get profileMenu(): UDExMastheadProfileMenu {\n return this.querySelector(\"[udex-masthead-profile-menu]\")!;\n }\n\n get countrySelectorMenu(): UDExMastheadCountrySelector {\n return this.querySelector(\"[udex-masthead-country-selector]\")!;\n }\n\n get profileMenuLinks(): UDExMastheadMenu | undefined | null {\n return this.profileMenu?.shadowRoot?.querySelector(\"[udex-masthead-menu]\");\n }\n\n get hasProfile(): boolean {\n return !!this.profile.length;\n }\n\n get hasCart(): boolean {\n return !!this.cart.length;\n }\n\n get hasSearch(): boolean {\n return !!this.search.length;\n }\n\n get hasExploreSAP(): boolean {\n return !!this.exploreSAP.length;\n }\n\n get hasCountrySelector(): boolean {\n return !!this.countrySelector.length;\n }\n\n get hasSupport(): boolean {\n return !!this.support.length;\n }\n\n get hasMobileMenuButtons(): boolean {\n return !!this.mobileMenu.length;\n }\n\n get isAtMostBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtMost(\"M\");\n }\n\n get isAtLeastBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtLeast(\"M\");\n }\n\n get isMobileMenuMode(): boolean {\n return this._isMobileMode || this.isAtMostBreakpointSizeM;\n }\n\n get isMainMenuVisible(): boolean {\n return !this.showSearchByDefault && !this._isSearchOpened;\n }\n\n get isSearchVisible(): boolean {\n return this.showSearchByDefault || this._isSearchOpened;\n }\n\n get shouldHandleMobileView(): boolean {\n return !this.isAtMostBreakpointSizeM && !this.showSearchByDefault;\n }\n\n get mainNavigationAriaLabel(): string {\n return UDExMastheadShell.i18nBundle.getText(MAIN_LINKS);\n }\n}\n\nUDExMastheadShell.define();\n\nexport default UDExMastheadShell;\n"]}
@@ -160,7 +160,11 @@ let UDExSearchableListBase = UDExSearchableListBase_1 = class UDExSearchableList
160
160
  return false;
161
161
  }
162
162
  addSearchTermTag(text, str) {
163
- return text.replace(new RegExp(`(${str})`, "i"), "<b>$&</b>");
163
+ if (!str.length) {
164
+ return text;
165
+ }
166
+ const regex = new RegExp(`(${str})`, "i");
167
+ return text.replace(regex, "<b>$1</b>");
164
168
  }
165
169
  isIncludes(string, value) {
166
170
  return string.toLowerCase().includes(value.toLowerCase());
@@ -1 +1 @@
1
- {"version":3,"file":"SearchableListBase.js","sourceRoot":"","sources":["../src/SearchableListBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport {\n isDown, isUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport Search from \"./Search.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport { ListMode } from \"./types/List.js\";\nimport UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport { ProcessedItem, SHOW_SEARCH_AFTER_COUNT } from \"./types/SearchableListBase.js\";\nimport { NO_MATCHES_FOUND } from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExFilterMenu</code> , <code>UDExSelectBox</code> and <code>UDExCountrySelector/code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @public\n */\n\n/**\n * Fired event when the user click on an item on the list.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#selectionChange\n * @public\n */\n@event(\"selection-change\", {\n detail: {\n selectedItems: { type: Array },\n item: { type: HTMLElement },\n },\n})\n\n/**\n * Fired event when the user clicks on the Select All header.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#selectAll\n * @public\n */\n@event(\"select-all\")\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#submitSearch\n * @public\n */\n@event(\"submit-search\", {\n detail: {\n selectedItems: { type: Array },\n },\n})\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#resetSearch\n * @public\n */\n@event(\"reset-search\")\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#changeSearch\n * @public\n */\n@event(\"change-search\", {\n detail: {\n value: { type: String },\n },\n})\n\nclass UDExSearchableListBase extends UI5Element {\n /**\n * Defines if the search input is visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSearchInput!: boolean;\n\n /**\n * Defines if the component would display a loading indicator.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n busy?: boolean;\n\n /**\n * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n *\n * @default 1000\n * @public\n */\n @property({ type: Number, defaultValue: 1000, validator: Integer })\n busyDelay?: number;\n\n /**\n * Defines the \"no result\" text of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n noResultText!: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property()\n searchPlaceholder!: string;\n\n /**\n * Defines the selectAll option of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selectAll?: boolean;\n\n /**\n * Defines label text for select all header.\n *\n * @default \"Select All\"\n * @public\n */\n @property()\n selectAllLabel!: string;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property({ type: ListMode, defaultValue: ListMode.SingleSelect })\n mode!: `${ListMode}`;\n\n /**\n * Slot for items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n items!: Array<UDExListItemBase | UDExListGroupHeaderBase>;\n\n /**\n * Defines the default accessible role for the list componnet.\n *\n * @default \"list\"\n * @public\n */\n @property({ type: String, defaultValue: \"list\" })\n defaultAccessibleRole!: string;\n\n @property({ type: Object })\n _filteredItems!: Array<ProcessedItem>;\n\n _shouldFilterItems?: boolean;\n\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._filteredItems = [];\n }\n\n onBeforeRendering() {\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onItemPress(e:CustomEvent) {\n const dropdownItemId: string = e.detail.item.getAttribute(\"data-token-id\");\n this.handleDropdownItemPress(dropdownItemId);\n this.fireSelectionChange(dropdownItemId);\n }\n\n onFilterSelectAllHeaderPress(e:CustomEvent) {\n const dropdownHeaderItemId = this.getDataTokenId(e);\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === dropdownHeaderItemId) {\n this.activateHeaderAndSetAllItems(item as UDExListGroupHeaderBase);\n }\n });\n\n this.syncFilteredItems();\n this.fireSelectionChange(dropdownHeaderItemId);\n }\n\n activateHeaderAndSetAllItems(item: UDExListGroupHeaderBase) {\n item.activateHeader();\n item.setAllItems(false);\n }\n\n handleDropdownItemPress(dropdownItemId: string) {\n this.getProcessedItems().forEach(({ item, groupItems, isGroup }) => {\n if (isGroup) {\n const groupItem: UDExListItemBase = groupItems.find(({ _id }) => _id === dropdownItemId)!;\n if (groupItem) {\n this.handleItemClick(groupItem);\n this.handleGroupHeaderState(item as UDExListGroupHeaderBase);\n }\n } else if (item._id === dropdownItemId) {\n this.handleItemClick(item);\n }\n });\n\n this.syncFilteredItems();\n }\n\n handleItemClick(item: UDExListItemBase) {\n if (this.modeSingleSelect) {\n this.revertSelectedItems(this.selectedItems);\n }\n\n if (this.modeRadioGroup) {\n const groupHeader = item.parentElement as UDExListGroupHeaderBase;\n this.revertSelectedItems(groupHeader.getItems());\n }\n\n item.selected = !item.selected;\n }\n\n handleGroupHeaderState(groupHeader: UDExListGroupHeaderBase) {\n if (this.modeMultiSelect) {\n if (groupHeader.isFilterMenuSelectAllHeader) {\n groupHeader.deactivateHeader();\n\n if (groupHeader.isAllDeselected()) {\n groupHeader.activateHeader();\n }\n } else {\n groupHeader.handleHeaderState();\n }\n }\n }\n\n onHeaderPress(e:CustomEvent) {\n const dropdownHeaderItemId = this.getDataTokenId(e);\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === dropdownHeaderItemId) {\n (item as UDExListGroupHeaderBase).handleSelectionGroupState();\n }\n });\n\n this.syncFilteredItems();\n this.fireSelectionChange(dropdownHeaderItemId);\n }\n\n onSearch(e:CustomEvent) {\n const searchValue: string = e.detail.value;\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n this.fireEvent(\"change-search\", { value: searchValue });\n }\n\n onReset() {\n this.revertSelectedItems(this.selectedItems);\n }\n\n onResetSearch() {\n this.resetSearch();\n this.fireEvent(\"reset-search\");\n }\n\n onSubmitSearch() {\n this.fireEvent(\"submit-search\", {\n selectedItems: this.selectedItems,\n });\n }\n\n /**\n * Reset the search value.\n * @public\n */\n resetSearch() {\n const search = this.getSearch();\n search.value = \"\";\n this._filteredItems = this.filterItems(this.getProcessedItems(), \"\");\n }\n\n filterItems(items: Array<ProcessedItem>, str: string): Array<ProcessedItem> {\n return items.filter(preparedItem => {\n const { isGroup, item } = preparedItem;\n if (isGroup) {\n preparedItem.groupItems = this.filterItemsForLabel(preparedItem.groupItems, str);\n return preparedItem.groupItems.length > 0;\n }\n return this.checkAndUpdateLabel(item, str);\n });\n }\n\n filterItemsForLabel(groupItems: Array<UDExListItemBase>, str: string): Array<UDExListItemBase> {\n return groupItems.filter(groupItem => this.checkAndUpdateLabel(groupItem, str));\n }\n\n checkAndUpdateLabel(item: UDExListItemBase | UDExListGroupHeaderBase, str: string): boolean {\n const cleanedLabel = cleanLabel(item.label);\n if (this.isIncludes(cleanedLabel, str)) {\n item.label = this.addSearchTermTag(cleanedLabel, str);\n return true;\n }\n return false;\n }\n\n addSearchTermTag(text: string, str: string): string {\n return text.replace(new RegExp(`(${str})`, \"i\"), \"<b>$&</b>\");\n }\n\n isIncludes(string: string, value: string): boolean {\n return string.toLowerCase().includes(value.toLowerCase());\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>) {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n syncFilteredItems() {\n const search = this.getSearch();\n if (this._shouldFilterItems) {\n this._filteredItems = this.filterItems(this.getProcessedItems(), search.value);\n } else {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (isUp(e)) {\n this.handlePreviousItemFocus(e);\n }\n if (isDown(e)) {\n this.handleNextListItemFocus(e);\n }\n }\n\n getSlottedItems(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<UDExListItemBase | UDExListGroupHeaderBase> {\n const arr: Array<UDExListItemBase | UDExListGroupHeaderBase> = [];\n items.forEach(item => {\n arr.push(item);\n if (item.isGroup) {\n arr.push(...(item as UDExListGroupHeaderBase).getItems());\n }\n });\n return arr;\n }\n\n getItemFromList(itemId:string) {\n let menuItem = null;\n\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i];\n\n if (item.isGroup) {\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n menuItem = groupItems.find(({ _id }) => _id === itemId);\n\n if (menuItem) {\n break;\n }\n } else if (item._id === itemId) {\n menuItem = item;\n break;\n }\n }\n\n return menuItem;\n }\n\n fireSelectionChange(itemId: string) {\n this.fireEvent(\"selection-change\", {\n selectedItems: this.selectedItems,\n item: this.getItemFromList(itemId),\n });\n }\n\n // moves focus to next list item\n handlePreviousItemFocus(e: KeyboardEvent) {\n const item = e.target as HTMLElement;\n const listItems = this.getDomListItems();\n const currentSelectIndex = this.getCurrentIndex(item);\n const previousSelectIndex = currentSelectIndex - 1;\n if (currentSelectIndex > 0) {\n e.preventDefault();\n (listItems[previousSelectIndex] as HTMLElement).focus();\n }\n }\n\n // moves focus to previous list item\n handleNextListItemFocus(e: KeyboardEvent) {\n const item = e.target as HTMLElement;\n const listItems = this.getDomListItems();\n const lastItemIndex = listItems.length - 1;\n const currentSelectIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectIndex + 1;\n if (nextSelectIndex <= lastItemIndex) {\n e.preventDefault();\n (listItems[nextSelectIndex] as HTMLElement).focus();\n }\n }\n\n getCurrentIndex(item: Element): number {\n return this.getDomListItems().indexOf(item);\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"[udex-search]\")!;\n }\n\n getDomListItems(): Element[] {\n const elementList = this.shadowRoot!.querySelector(\"[udex-list]\") as HTMLElement;\n return elementList ? Array.from(elementList.querySelectorAll(\"[udex-list-item]\")) : [];\n }\n\n setItemsModeAndControl(items: Array<UDExFilterMenuItem>) {\n items.forEach(item => {\n item.mode = this.mode;\n item.controlled = this.isControlled;\n });\n }\n\n getDataTokenId(e:CustomEvent): string {\n return e.detail.item.getAttribute(\"data-token-id\") as string;\n }\n\n getProcessedItems(): Array<ProcessedItem> {\n return this.items.map(item => {\n if (item.isGroup) {\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n this.setItemsModeAndControl(groupItems);\n }\n item.mode = this.mode;\n item.controlled = this.isControlled;\n return {\n item,\n groupItems: item.isGroup ? (item as UDExListGroupHeaderBase).getItems() : [],\n isGroup: item.isGroup,\n };\n });\n }\n\n get getNoResultText(): string {\n const hasTextProperty = this.noResultText !== \"undefined\" && this.noResultText.length > 0;\n return hasTextProperty ? this.noResultText : UDExSearchableListBase.i18nBundle.getText(NO_MATCHES_FOUND);\n }\n\n get isListEmpty(): boolean {\n return this._filteredItems.length === 0;\n }\n\n get selectedItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this.items).filter(({ selected }) => selected);\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === ListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === ListMode.SingleSelect;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === ListMode.RadioGroup;\n }\n\n get isControlled(): boolean {\n const isGrouping = this.items.some(({ isGroup }) => isGroup);\n return this.mode === ListMode.MultiSelect && isGrouping;\n }\n\n get additionalClassName(): string {\n return `udex-searchable-list__header`;\n }\n\n get groupClassName(): string {\n const classHeader = `udex-searchable-list__header`;\n return this.showSearch ? `${classHeader} udex-searchable-list__header_no-margin` : classHeader;\n }\n\n get showSearch(): boolean {\n return this.showSearchInput || (this.isSearchActive && !this.modeRadioGroup);\n }\n\n get isSearchActive(): boolean {\n return this.nonGroupItems.length > SHOW_SEARCH_AFTER_COUNT;\n }\n\n get nonGroupItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this.items).filter(item => !item.isGroup);\n }\n\n get roleForGroupList(): string {\n return this._filteredItems.some(element => element.isGroup) ? \"group\" : \"none\";\n }\n\n get accessibleRoleForList(): string {\n return this._filteredItems.some(element => element.isGroup) ? \"group\" : this.defaultAccessibleRole;\n }\n\n static async onDefine(): Promise<void> {\n UDExSearchableListBase.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n}\n\nexport default UDExSearchableListBase;\n"]}
1
+ {"version":3,"file":"SearchableListBase.js","sourceRoot":"","sources":["../src/SearchableListBase.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport {\n isDown, isUp,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { cleanLabel } from \"./utils/listItemLabelUtils.js\";\nimport Search from \"./Search.js\";\nimport UDExListItemBase from \"./ListItemBase.js\";\nimport UDExListGroupHeaderBase from \"./ListGroupHeaderBase.js\";\nimport { ListMode } from \"./types/List.js\";\nimport UDExFilterMenuItem from \"./FilterMenuItem.js\";\nimport { ProcessedItem, SHOW_SEARCH_AFTER_COUNT } from \"./types/SearchableListBase.js\";\nimport { NO_MATCHES_FOUND } from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * A class to serve as a foundation\n * for the <code>UDExFilterMenu</code> , <code>UDExSelectBox</code> and <code>UDExCountrySelector/code> classes.\n *\n * @constructor\n * @author SAP SE\n * @extends UI5Element\n * @public\n */\n\n/**\n * Fired event when the user click on an item on the list.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#selectionChange\n * @public\n */\n@event(\"selection-change\", {\n detail: {\n selectedItems: { type: Array },\n item: { type: HTMLElement },\n },\n})\n\n/**\n * Fired event when the user clicks on the Select All header.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#selectAll\n * @public\n */\n@event(\"select-all\")\n\n/**\n * Fired event when the user clicks on the submitted icon in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#submitSearch\n * @public\n */\n@event(\"submit-search\", {\n detail: {\n selectedItems: { type: Array },\n },\n})\n\n/**\n * Fired event when the user clicks on the reset button in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#resetSearch\n * @public\n */\n@event(\"reset-search\")\n\n/**\n * Fired event when the user submitted the value in the search.\n *\n * @event sap.ui.webc.web-components.UDExSearchableListBase#changeSearch\n * @public\n */\n@event(\"change-search\", {\n detail: {\n value: { type: String },\n },\n})\n\nclass UDExSearchableListBase extends UI5Element {\n /**\n * Defines if the search input is visible.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n showSearchInput!: boolean;\n\n /**\n * Defines if the component would display a loading indicator.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n busy?: boolean;\n\n /**\n * Defines the delay in milliseconds, after which the busy indicator will show up for this component.\n *\n * @default 1000\n * @public\n */\n @property({ type: Number, defaultValue: 1000, validator: Integer })\n busyDelay?: number;\n\n /**\n * Defines the \"no result\" text of the component.\n *\n * @default \"\"\n * @public\n */\n @property()\n noResultText!: string;\n\n /**\n * Defines the placeholder of the search.\n *\n * @default \"\"\n * @public\n */\n @property()\n searchPlaceholder!: string;\n\n /**\n * Defines the selectAll option of the component.\n *\n * @default false\n * @public\n */\n @property({ type: Boolean })\n selectAll?: boolean;\n\n /**\n * Defines label text for select all header.\n *\n * @default \"Select All\"\n * @public\n */\n @property()\n selectAllLabel!: string;\n\n /**\n * Defines the mode of the component.\n *\n * @default \"SingleSelect\"\n * @public\n */\n @property({ type: ListMode, defaultValue: ListMode.SingleSelect })\n mode!: `${ListMode}`;\n\n /**\n * Slot for items.\n *\n * @slot\n * @public\n */\n @slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n items!: Array<UDExListItemBase | UDExListGroupHeaderBase>;\n\n /**\n * Defines the default accessible role for the list componnet.\n *\n * @default \"list\"\n * @public\n */\n @property({ type: String, defaultValue: \"list\" })\n defaultAccessibleRole!: string;\n\n @property({ type: Object })\n _filteredItems!: Array<ProcessedItem>;\n\n _shouldFilterItems?: boolean;\n\n static i18nBundle: I18nBundle;\n\n constructor() {\n super();\n this._shouldFilterItems = false;\n this._filteredItems = [];\n }\n\n onBeforeRendering() {\n if (!this._shouldFilterItems) {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n onItemPress(e:CustomEvent) {\n const dropdownItemId: string = e.detail.item.getAttribute(\"data-token-id\");\n this.handleDropdownItemPress(dropdownItemId);\n this.fireSelectionChange(dropdownItemId);\n }\n\n onFilterSelectAllHeaderPress(e:CustomEvent) {\n const dropdownHeaderItemId = this.getDataTokenId(e);\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === dropdownHeaderItemId) {\n this.activateHeaderAndSetAllItems(item as UDExListGroupHeaderBase);\n }\n });\n\n this.syncFilteredItems();\n this.fireSelectionChange(dropdownHeaderItemId);\n }\n\n activateHeaderAndSetAllItems(item: UDExListGroupHeaderBase) {\n item.activateHeader();\n item.setAllItems(false);\n }\n\n handleDropdownItemPress(dropdownItemId: string) {\n this.getProcessedItems().forEach(({ item, groupItems, isGroup }) => {\n if (isGroup) {\n const groupItem: UDExListItemBase = groupItems.find(({ _id }) => _id === dropdownItemId)!;\n if (groupItem) {\n this.handleItemClick(groupItem);\n this.handleGroupHeaderState(item as UDExListGroupHeaderBase);\n }\n } else if (item._id === dropdownItemId) {\n this.handleItemClick(item);\n }\n });\n\n this.syncFilteredItems();\n }\n\n handleItemClick(item: UDExListItemBase) {\n if (this.modeSingleSelect) {\n this.revertSelectedItems(this.selectedItems);\n }\n\n if (this.modeRadioGroup) {\n const groupHeader = item.parentElement as UDExListGroupHeaderBase;\n this.revertSelectedItems(groupHeader.getItems());\n }\n\n item.selected = !item.selected;\n }\n\n handleGroupHeaderState(groupHeader: UDExListGroupHeaderBase) {\n if (this.modeMultiSelect) {\n if (groupHeader.isFilterMenuSelectAllHeader) {\n groupHeader.deactivateHeader();\n\n if (groupHeader.isAllDeselected()) {\n groupHeader.activateHeader();\n }\n } else {\n groupHeader.handleHeaderState();\n }\n }\n }\n\n onHeaderPress(e:CustomEvent) {\n const dropdownHeaderItemId = this.getDataTokenId(e);\n this.getProcessedItems().forEach(({ item }) => {\n if (item._id === dropdownHeaderItemId) {\n (item as UDExListGroupHeaderBase).handleSelectionGroupState();\n }\n });\n\n this.syncFilteredItems();\n this.fireSelectionChange(dropdownHeaderItemId);\n }\n\n onSearch(e:CustomEvent) {\n const searchValue: string = e.detail.value;\n this._shouldFilterItems = true;\n this._filteredItems = this.filterItems(this.getProcessedItems(), searchValue);\n this.fireEvent(\"change-search\", { value: searchValue });\n }\n\n onReset() {\n this.revertSelectedItems(this.selectedItems);\n }\n\n onResetSearch() {\n this.resetSearch();\n this.fireEvent(\"reset-search\");\n }\n\n onSubmitSearch() {\n this.fireEvent(\"submit-search\", {\n selectedItems: this.selectedItems,\n });\n }\n\n /**\n * Reset the search value.\n * @public\n */\n resetSearch() {\n const search = this.getSearch();\n search.value = \"\";\n this._filteredItems = this.filterItems(this.getProcessedItems(), \"\");\n }\n\n filterItems(items: Array<ProcessedItem>, str: string): Array<ProcessedItem> {\n return items.filter(preparedItem => {\n const { isGroup, item } = preparedItem;\n if (isGroup) {\n preparedItem.groupItems = this.filterItemsForLabel(preparedItem.groupItems, str);\n return preparedItem.groupItems.length > 0;\n }\n return this.checkAndUpdateLabel(item, str);\n });\n }\n\n filterItemsForLabel(groupItems: Array<UDExListItemBase>, str: string): Array<UDExListItemBase> {\n return groupItems.filter(groupItem => this.checkAndUpdateLabel(groupItem, str));\n }\n\n checkAndUpdateLabel(item: UDExListItemBase | UDExListGroupHeaderBase, str: string): boolean {\n const cleanedLabel = cleanLabel(item.label);\n if (this.isIncludes(cleanedLabel, str)) {\n item.label = this.addSearchTermTag(cleanedLabel, str);\n return true;\n }\n return false;\n }\n\n addSearchTermTag(text: string, str: string): string {\n if (!str.length) {\n return text;\n }\n\n const regex = new RegExp(`(${str})`, \"i\");\n return text.replace(regex, \"<b>$1</b>\");\n }\n\n isIncludes(string: string, value: string): boolean {\n return string.toLowerCase().includes(value.toLowerCase());\n }\n\n revertSelectedItems(items: Array<UDExListItemBase>) {\n items.forEach((item: UDExListItemBase) => {\n if (!item.disabled) {\n item.selected = false;\n }\n });\n }\n\n syncFilteredItems() {\n const search = this.getSearch();\n if (this._shouldFilterItems) {\n this._filteredItems = this.filterItems(this.getProcessedItems(), search.value);\n } else {\n this._filteredItems = this.getProcessedItems();\n }\n }\n\n handleKeyDown(e: KeyboardEvent) {\n if (isUp(e)) {\n this.handlePreviousItemFocus(e);\n }\n if (isDown(e)) {\n this.handleNextListItemFocus(e);\n }\n }\n\n getSlottedItems(items: Array<UDExListItemBase | UDExListGroupHeaderBase>): Array<UDExListItemBase | UDExListGroupHeaderBase> {\n const arr: Array<UDExListItemBase | UDExListGroupHeaderBase> = [];\n items.forEach(item => {\n arr.push(item);\n if (item.isGroup) {\n arr.push(...(item as UDExListGroupHeaderBase).getItems());\n }\n });\n return arr;\n }\n\n getItemFromList(itemId:string) {\n let menuItem = null;\n\n for (let i = 0; i < this.items.length; i++) {\n const item = this.items[i];\n\n if (item.isGroup) {\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n menuItem = groupItems.find(({ _id }) => _id === itemId);\n\n if (menuItem) {\n break;\n }\n } else if (item._id === itemId) {\n menuItem = item;\n break;\n }\n }\n\n return menuItem;\n }\n\n fireSelectionChange(itemId: string) {\n this.fireEvent(\"selection-change\", {\n selectedItems: this.selectedItems,\n item: this.getItemFromList(itemId),\n });\n }\n\n // moves focus to next list item\n handlePreviousItemFocus(e: KeyboardEvent) {\n const item = e.target as HTMLElement;\n const listItems = this.getDomListItems();\n const currentSelectIndex = this.getCurrentIndex(item);\n const previousSelectIndex = currentSelectIndex - 1;\n if (currentSelectIndex > 0) {\n e.preventDefault();\n (listItems[previousSelectIndex] as HTMLElement).focus();\n }\n }\n\n // moves focus to previous list item\n handleNextListItemFocus(e: KeyboardEvent) {\n const item = e.target as HTMLElement;\n const listItems = this.getDomListItems();\n const lastItemIndex = listItems.length - 1;\n const currentSelectIndex = this.getCurrentIndex(item);\n const nextSelectIndex = currentSelectIndex + 1;\n if (nextSelectIndex <= lastItemIndex) {\n e.preventDefault();\n (listItems[nextSelectIndex] as HTMLElement).focus();\n }\n }\n\n getCurrentIndex(item: Element): number {\n return this.getDomListItems().indexOf(item);\n }\n\n getSearch(): Search {\n return this.shadowRoot!.querySelector<Search>(\"[udex-search]\")!;\n }\n\n getDomListItems(): Element[] {\n const elementList = this.shadowRoot!.querySelector(\"[udex-list]\") as HTMLElement;\n return elementList ? Array.from(elementList.querySelectorAll(\"[udex-list-item]\")) : [];\n }\n\n setItemsModeAndControl(items: Array<UDExFilterMenuItem>) {\n items.forEach(item => {\n item.mode = this.mode;\n item.controlled = this.isControlled;\n });\n }\n\n getDataTokenId(e:CustomEvent): string {\n return e.detail.item.getAttribute(\"data-token-id\") as string;\n }\n\n getProcessedItems(): Array<ProcessedItem> {\n return this.items.map(item => {\n if (item.isGroup) {\n const groupItems = (item as UDExListGroupHeaderBase).getItems();\n this.setItemsModeAndControl(groupItems);\n }\n item.mode = this.mode;\n item.controlled = this.isControlled;\n return {\n item,\n groupItems: item.isGroup ? (item as UDExListGroupHeaderBase).getItems() : [],\n isGroup: item.isGroup,\n };\n });\n }\n\n get getNoResultText(): string {\n const hasTextProperty = this.noResultText !== \"undefined\" && this.noResultText.length > 0;\n return hasTextProperty ? this.noResultText : UDExSearchableListBase.i18nBundle.getText(NO_MATCHES_FOUND);\n }\n\n get isListEmpty(): boolean {\n return this._filteredItems.length === 0;\n }\n\n get selectedItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this.items).filter(({ selected }) => selected);\n }\n\n get modeMultiSelect(): boolean {\n return this.mode === ListMode.MultiSelect;\n }\n\n get modeSingleSelect(): boolean {\n return this.mode === ListMode.SingleSelect;\n }\n\n get modeRadioGroup(): boolean {\n return this.mode === ListMode.RadioGroup;\n }\n\n get isControlled(): boolean {\n const isGrouping = this.items.some(({ isGroup }) => isGroup);\n return this.mode === ListMode.MultiSelect && isGrouping;\n }\n\n get additionalClassName(): string {\n return `udex-searchable-list__header`;\n }\n\n get groupClassName(): string {\n const classHeader = `udex-searchable-list__header`;\n return this.showSearch ? `${classHeader} udex-searchable-list__header_no-margin` : classHeader;\n }\n\n get showSearch(): boolean {\n return this.showSearchInput || (this.isSearchActive && !this.modeRadioGroup);\n }\n\n get isSearchActive(): boolean {\n return this.nonGroupItems.length > SHOW_SEARCH_AFTER_COUNT;\n }\n\n get nonGroupItems(): Array<UDExListItemBase> {\n return this.getSlottedItems(this.items).filter(item => !item.isGroup);\n }\n\n get roleForGroupList(): string {\n return this._filteredItems.some(element => element.isGroup) ? \"group\" : \"none\";\n }\n\n get accessibleRoleForList(): string {\n return this._filteredItems.some(element => element.isGroup) ? \"group\" : this.defaultAccessibleRole;\n }\n\n static async onDefine(): Promise<void> {\n UDExSearchableListBase.i18nBundle = await getI18nBundle(\"@sapudex/web-components\");\n }\n}\n\nexport default UDExSearchableListBase;\n"]}