@ui5/webcomponents-fiori 1.21.1 → 1.22.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -2
- package/dist/Bar.d.ts +6 -27
- package/dist/Bar.js +3 -14
- package/dist/Bar.js.map +1 -1
- package/dist/BarcodeScannerDialog.d.ts +2 -13
- package/dist/BarcodeScannerDialog.js +10 -12
- package/dist/BarcodeScannerDialog.js.map +1 -1
- package/dist/DynamicSideContent.d.ts +9 -35
- package/dist/DynamicSideContent.js +15 -7
- package/dist/DynamicSideContent.js.map +1 -1
- package/dist/FilterItem.d.ts +3 -14
- package/dist/FilterItem.js +1 -5
- package/dist/FilterItem.js.map +1 -1
- package/dist/FilterItemOption.d.ts +3 -11
- package/dist/FilterItemOption.js +1 -5
- package/dist/FilterItemOption.js.map +1 -1
- package/dist/FlexibleColumnLayout.d.ts +13 -51
- package/dist/FlexibleColumnLayout.js +28 -26
- package/dist/FlexibleColumnLayout.js.map +1 -1
- package/dist/IllustratedMessage.d.ts +9 -35
- package/dist/IllustratedMessage.js +1 -4
- package/dist/IllustratedMessage.js.map +1 -1
- package/dist/Interfaces.d.ts +28 -88
- package/dist/Interfaces.js +2 -113
- package/dist/Interfaces.js.map +1 -1
- package/dist/MediaGallery.d.ts +9 -26
- package/dist/MediaGallery.js +4 -8
- package/dist/MediaGallery.js.map +1 -1
- package/dist/MediaGalleryItem.d.ts +7 -22
- package/dist/MediaGalleryItem.js +2 -5
- package/dist/MediaGalleryItem.js.map +1 -1
- package/dist/NotificationAction.d.ts +7 -20
- package/dist/NotificationAction.js +3 -9
- package/dist/NotificationAction.js.map +1 -1
- package/dist/NotificationListGroupItem.d.ts +5 -27
- package/dist/NotificationListGroupItem.js +1 -16
- package/dist/NotificationListGroupItem.js.map +1 -1
- package/dist/NotificationListItem.d.ts +3 -27
- package/dist/NotificationListItem.js +2 -15
- package/dist/NotificationListItem.js.map +1 -1
- package/dist/NotificationListItemBase.d.ts +7 -32
- package/dist/NotificationListItemBase.js +15 -15
- package/dist/NotificationListItemBase.js.map +1 -1
- package/dist/Page.d.ts +7 -35
- package/dist/Page.js +2 -13
- package/dist/Page.js.map +1 -1
- package/dist/ProductSwitch.d.ts +3 -10
- package/dist/ProductSwitch.js +1 -5
- package/dist/ProductSwitch.js.map +1 -1
- package/dist/ProductSwitchItem.d.ts +9 -22
- package/dist/ProductSwitchItem.js +2 -7
- package/dist/ProductSwitchItem.js.map +1 -1
- package/dist/ShellBar.d.ts +30 -90
- package/dist/ShellBar.js +28 -41
- package/dist/ShellBar.js.map +1 -1
- package/dist/ShellBarItem.d.ts +9 -14
- package/dist/ShellBarItem.js +6 -6
- package/dist/ShellBarItem.js.map +1 -1
- package/dist/SideNavigation.d.ts +29 -17
- package/dist/SideNavigation.js +155 -9
- package/dist/SideNavigation.js.map +1 -1
- package/dist/SideNavigationItem.d.ts +4 -17
- package/dist/SideNavigationItem.js +1 -5
- package/dist/SideNavigationItem.js.map +1 -1
- package/dist/SideNavigationItemBase.d.ts +7 -36
- package/dist/SideNavigationItemBase.js +20 -12
- package/dist/SideNavigationItemBase.js.map +1 -1
- package/dist/SideNavigationSubItem.d.ts +1 -5
- package/dist/SideNavigationSubItem.js +1 -5
- package/dist/SideNavigationSubItem.js.map +1 -1
- package/dist/SortItem.d.ts +3 -11
- package/dist/SortItem.js +1 -5
- package/dist/SortItem.js.map +1 -1
- package/dist/Timeline.d.ts +5 -16
- package/dist/Timeline.js +1 -5
- package/dist/Timeline.js.map +1 -1
- package/dist/TimelineItem.d.ts +11 -34
- package/dist/TimelineItem.js +3 -15
- package/dist/TimelineItem.js.map +1 -1
- package/dist/UploadCollection.d.ts +11 -32
- package/dist/UploadCollection.js +7 -9
- package/dist/UploadCollection.js.map +1 -1
- package/dist/UploadCollectionItem.d.ts +16 -47
- package/dist/UploadCollectionItem.js +3 -10
- package/dist/UploadCollectionItem.js.map +1 -1
- package/dist/ViewSettingsDialog.d.ts +5 -28
- package/dist/ViewSettingsDialog.js +34 -18
- package/dist/ViewSettingsDialog.js.map +1 -1
- package/dist/Wizard.d.ts +15 -39
- package/dist/Wizard.js +23 -33
- package/dist/Wizard.js.map +1 -1
- package/dist/WizardStep.d.ts +8 -31
- package/dist/WizardStep.js +2 -5
- package/dist/WizardStep.js.map +1 -1
- package/dist/WizardTab.d.ts +20 -24
- package/dist/WizardTab.js +1 -5
- package/dist/WizardTab.js.map +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/custom-elements-internal.json +6682 -0
- package/dist/custom-elements.json +4098 -1
- package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
- package/dist/generated/i18n/i18n-defaults.js +2 -1
- package/dist/generated/i18n/i18n-defaults.js.map +1 -1
- package/dist/generated/templates/SideNavigationPopoverTemplate.lit.js +6 -2
- package/dist/generated/templates/SideNavigationPopoverTemplate.lit.js.map +1 -1
- package/dist/generated/templates/SideNavigationTemplate.lit.js +1 -1
- package/dist/generated/templates/SideNavigationTemplate.lit.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.js +1 -1
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/types/BarDesign.d.ts +0 -8
- package/dist/types/BarDesign.js +0 -8
- package/dist/types/BarDesign.js.map +1 -1
- package/dist/types/FCLLayout.d.ts +0 -13
- package/dist/types/FCLLayout.js +0 -13
- package/dist/types/FCLLayout.js.map +1 -1
- package/dist/types/IllustrationMessageSize.d.ts +0 -9
- package/dist/types/IllustrationMessageSize.js +0 -9
- package/dist/types/IllustrationMessageSize.js.map +1 -1
- package/dist/types/IllustrationMessageType.d.ts +0 -107
- package/dist/types/IllustrationMessageType.js +0 -107
- package/dist/types/IllustrationMessageType.js.map +1 -1
- package/dist/types/MediaGalleryItemLayout.d.ts +0 -6
- package/dist/types/MediaGalleryItemLayout.js +0 -6
- package/dist/types/MediaGalleryItemLayout.js.map +1 -1
- package/dist/types/MediaGalleryLayout.d.ts +0 -7
- package/dist/types/MediaGalleryLayout.js +0 -7
- package/dist/types/MediaGalleryLayout.js.map +1 -1
- package/dist/types/MediaGalleryMenuHorizontalAlign.d.ts +0 -6
- package/dist/types/MediaGalleryMenuHorizontalAlign.js +0 -6
- package/dist/types/MediaGalleryMenuHorizontalAlign.js.map +1 -1
- package/dist/types/MediaGalleryMenuVerticalAlign.d.ts +0 -6
- package/dist/types/MediaGalleryMenuVerticalAlign.js +0 -6
- package/dist/types/MediaGalleryMenuVerticalAlign.js.map +1 -1
- package/dist/types/PageBackgroundDesign.d.ts +0 -7
- package/dist/types/PageBackgroundDesign.js +0 -7
- package/dist/types/PageBackgroundDesign.js.map +1 -1
- package/dist/types/SideContentFallDown.d.ts +0 -8
- package/dist/types/SideContentFallDown.js +0 -8
- package/dist/types/SideContentFallDown.js.map +1 -1
- package/dist/types/SideContentPosition.d.ts +0 -6
- package/dist/types/SideContentPosition.js +0 -6
- package/dist/types/SideContentPosition.js.map +1 -1
- package/dist/types/SideContentVisibility.d.ts +0 -9
- package/dist/types/SideContentVisibility.js +0 -9
- package/dist/types/SideContentVisibility.js.map +1 -1
- package/dist/types/TimelineLayout.d.ts +0 -6
- package/dist/types/TimelineLayout.js +0 -6
- package/dist/types/TimelineLayout.js.map +1 -1
- package/dist/types/UploadCollectionDnDMode.d.ts +0 -7
- package/dist/types/UploadCollectionDnDMode.js +0 -7
- package/dist/types/UploadCollectionDnDMode.js.map +1 -1
- package/dist/types/UploadState.d.ts +0 -8
- package/dist/types/UploadState.js +0 -8
- package/dist/types/UploadState.js.map +1 -1
- package/dist/types/ViewSettingsDialogMode.d.ts +0 -6
- package/dist/types/ViewSettingsDialogMode.js +0 -6
- package/dist/types/ViewSettingsDialogMode.js.map +1 -1
- package/dist/types/WizardContentLayout.d.ts +0 -6
- package/dist/types/WizardContentLayout.js +0 -6
- package/dist/types/WizardContentLayout.js.map +1 -1
- package/package.json +7 -7
- package/src/SideNavigation.hbs +21 -0
- package/src/SideNavigationPopover.hbs +61 -28
- package/src/i18n/messagebundle.properties +3 -0
- package/src/themes/SideNavigation.css +11 -1
- package/dist/api.json +0 -1
package/dist/ShellBar.js
CHANGED
|
@@ -55,15 +55,6 @@ const HANDLE_RESIZE_DEBOUNCE_RATE = 200; // ms
|
|
|
55
55
|
* <li>product-switch</li>
|
|
56
56
|
* </ul>
|
|
57
57
|
*
|
|
58
|
-
* <h3>CSS Shadow Parts</h3>
|
|
59
|
-
*
|
|
60
|
-
* <ui5-link target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/CSS/::part">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.
|
|
61
|
-
* <br>
|
|
62
|
-
* The <code>ui5-shellbar</code> exposes the following CSS Shadow Parts:
|
|
63
|
-
* <ul>
|
|
64
|
-
* <li>root - Used to style the outermost wrapper of the <code>ui5-shellbar</code></li>
|
|
65
|
-
* </ul>
|
|
66
|
-
*
|
|
67
58
|
* <h3>Keyboard Handling</h3>
|
|
68
59
|
*
|
|
69
60
|
* <h4>Fast Navigation</h4>
|
|
@@ -75,12 +66,10 @@ const HANDLE_RESIZE_DEBOUNCE_RATE = 200; // ms
|
|
|
75
66
|
* <h3>ES6 Module Import</h3>
|
|
76
67
|
* <code>import "@ui5/webcomponents-fiori/dist/ShellBar";</code>
|
|
77
68
|
*
|
|
69
|
+
* @csspart root - Used to style the outermost wrapper of the <code>ui5-shellbar</code>
|
|
70
|
+
*
|
|
78
71
|
* @constructor
|
|
79
|
-
* @
|
|
80
|
-
* @alias sap.ui.webc.fiori.ShellBar
|
|
81
|
-
* @extends sap.ui.webc.base.UI5Element
|
|
82
|
-
* @tagname ui5-shellbar
|
|
83
|
-
* @appenddocs sap.ui.webc.fiori.ShellBarItem
|
|
72
|
+
* @extends UI5Element
|
|
84
73
|
* @public
|
|
85
74
|
* @since 0.8.0
|
|
86
75
|
*/
|
|
@@ -225,8 +214,6 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
225
214
|
* Closes the overflow area.
|
|
226
215
|
* Useful to manually close the overflow after having suppressed automatic closing with preventDefault() of ShellbarItem's press event
|
|
227
216
|
* @public
|
|
228
|
-
* @method
|
|
229
|
-
* @name sap.ui.webc.fiori.ShellBar#closeOverflow
|
|
230
217
|
*/
|
|
231
218
|
closeOverflow() {
|
|
232
219
|
if (this.overflowPopover) {
|
|
@@ -379,10 +366,8 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
379
366
|
}
|
|
380
367
|
/**
|
|
381
368
|
* Returns the <code>logo</code> DOM ref.
|
|
382
|
-
* @type {HTMLElement}
|
|
383
|
-
* @name sap.ui.webc.fiori.ShellBar.prototype.logoDomRef
|
|
384
369
|
* @public
|
|
385
|
-
* @
|
|
370
|
+
* @default null
|
|
386
371
|
* @since 1.0.0-rc.16
|
|
387
372
|
*/
|
|
388
373
|
get logoDomRef() {
|
|
@@ -390,10 +375,8 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
390
375
|
}
|
|
391
376
|
/**
|
|
392
377
|
* Returns the <code>copilot</code> DOM ref.
|
|
393
|
-
* @type {HTMLElement}
|
|
394
|
-
* @name sap.ui.webc.fiori.ShellBar.prototype.copilotDomRef
|
|
395
378
|
* @public
|
|
396
|
-
* @
|
|
379
|
+
* @default null
|
|
397
380
|
* @since 1.0.0-rc.16
|
|
398
381
|
*/
|
|
399
382
|
get copilotDomRef() {
|
|
@@ -401,10 +384,8 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
401
384
|
}
|
|
402
385
|
/**
|
|
403
386
|
* Returns the <code>notifications</code> icon DOM ref.
|
|
404
|
-
* @type {HTMLElement}
|
|
405
|
-
* @name sap.ui.webc.fiori.ShellBar.prototype.notificationsDomRef
|
|
406
387
|
* @public
|
|
407
|
-
* @
|
|
388
|
+
* @default null
|
|
408
389
|
* @since 1.0.0-rc.16
|
|
409
390
|
*/
|
|
410
391
|
get notificationsDomRef() {
|
|
@@ -412,10 +393,8 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
412
393
|
}
|
|
413
394
|
/**
|
|
414
395
|
* Returns the <code>overflow</code> icon DOM ref.
|
|
415
|
-
* @type {HTMLElement}
|
|
416
|
-
* @name sap.ui.webc.fiori.ShellBar.prototype.overflowDomRef
|
|
417
396
|
* @public
|
|
418
|
-
* @
|
|
397
|
+
* @default null
|
|
419
398
|
* @since 1.0.0-rc.16
|
|
420
399
|
*/
|
|
421
400
|
get overflowDomRef() {
|
|
@@ -423,10 +402,8 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
423
402
|
}
|
|
424
403
|
/**
|
|
425
404
|
* Returns the <code>profile</code> icon DOM ref.
|
|
426
|
-
* @type {HTMLElement}
|
|
427
|
-
* @name sap.ui.webc.fiori.ShellBar.prototype.profileDomRef
|
|
428
405
|
* @public
|
|
429
|
-
* @
|
|
406
|
+
* @default null
|
|
430
407
|
* @since 1.0.0-rc.16
|
|
431
408
|
*/
|
|
432
409
|
get profileDomRef() {
|
|
@@ -434,10 +411,8 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
434
411
|
}
|
|
435
412
|
/**
|
|
436
413
|
* Returns the <code>product-switch</code> icon DOM ref.
|
|
437
|
-
* @type {HTMLElement}
|
|
438
|
-
* @name sap.ui.webc.fiori.ShellBar.prototype.productSwitchDomRef
|
|
439
414
|
* @public
|
|
440
|
-
* @
|
|
415
|
+
* @default null
|
|
441
416
|
* @since 1.0.0-rc.16
|
|
442
417
|
*/
|
|
443
418
|
get productSwitchDomRef() {
|
|
@@ -445,7 +420,7 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
|
|
|
445
420
|
}
|
|
446
421
|
/**
|
|
447
422
|
* Returns all items that will be placed in the right of the bar as icons / dom elements.
|
|
448
|
-
* @param
|
|
423
|
+
* @param showOverflowButton Determines if overflow button should be visible (not overflowing)
|
|
449
424
|
*/
|
|
450
425
|
_getAllItems(showOverflowButton) {
|
|
451
426
|
let domOrder = -1;
|
|
@@ -854,7 +829,6 @@ ShellBar = ShellBar_1 = __decorate([
|
|
|
854
829
|
*
|
|
855
830
|
* Fired, when the notification icon is activated.
|
|
856
831
|
*
|
|
857
|
-
* @event sap.ui.webc.fiori.ShellBar#notifications-click
|
|
858
832
|
* @allowPreventDefault
|
|
859
833
|
* @param {HTMLElement} targetRef dom ref of the activated element
|
|
860
834
|
* @public
|
|
@@ -862,19 +836,24 @@ ShellBar = ShellBar_1 = __decorate([
|
|
|
862
836
|
,
|
|
863
837
|
event("notifications-click", {
|
|
864
838
|
detail: {
|
|
839
|
+
/**
|
|
840
|
+
* @public
|
|
841
|
+
*/
|
|
865
842
|
targetRef: { type: HTMLElement },
|
|
866
843
|
},
|
|
867
844
|
})
|
|
868
845
|
/**
|
|
869
846
|
* Fired, when the profile slot is present.
|
|
870
847
|
*
|
|
871
|
-
* @event sap.ui.webc.fiori.ShellBar#profile-click
|
|
872
848
|
* @param {HTMLElement} targetRef dom ref of the activated element
|
|
873
849
|
* @public
|
|
874
850
|
*/
|
|
875
851
|
,
|
|
876
852
|
event("profile-click", {
|
|
877
853
|
detail: {
|
|
854
|
+
/**
|
|
855
|
+
* @public
|
|
856
|
+
*/
|
|
878
857
|
targetRef: { type: HTMLElement },
|
|
879
858
|
},
|
|
880
859
|
})
|
|
@@ -882,7 +861,6 @@ ShellBar = ShellBar_1 = __decorate([
|
|
|
882
861
|
* Fired, when the product switch icon is activated.
|
|
883
862
|
* <b>Note:</b> You can prevent closing of overflow popover by calling <code>event.preventDefault()</code>.
|
|
884
863
|
*
|
|
885
|
-
* @event sap.ui.webc.fiori.ShellBar#product-switch-click
|
|
886
864
|
* @allowPreventDefault
|
|
887
865
|
* @param {HTMLElement} targetRef dom ref of the activated element
|
|
888
866
|
* @public
|
|
@@ -890,13 +868,15 @@ ShellBar = ShellBar_1 = __decorate([
|
|
|
890
868
|
,
|
|
891
869
|
event("product-switch-click", {
|
|
892
870
|
detail: {
|
|
871
|
+
/**
|
|
872
|
+
* @public
|
|
873
|
+
*/
|
|
893
874
|
targetRef: { type: HTMLElement },
|
|
894
875
|
},
|
|
895
876
|
})
|
|
896
877
|
/**
|
|
897
878
|
* Fired, when the logo is activated.
|
|
898
879
|
*
|
|
899
|
-
* @event sap.ui.webc.fiori.ShellBar#logo-click
|
|
900
880
|
* @param {HTMLElement} targetRef dom ref of the activated element
|
|
901
881
|
* @since 0.10
|
|
902
882
|
* @public
|
|
@@ -904,13 +884,15 @@ ShellBar = ShellBar_1 = __decorate([
|
|
|
904
884
|
,
|
|
905
885
|
event("logo-click", {
|
|
906
886
|
detail: {
|
|
887
|
+
/**
|
|
888
|
+
* @public
|
|
889
|
+
*/
|
|
907
890
|
targetRef: { type: HTMLElement },
|
|
908
891
|
},
|
|
909
892
|
})
|
|
910
893
|
/**
|
|
911
894
|
* Fired, when the co pilot is activated.
|
|
912
895
|
*
|
|
913
|
-
* @event sap.ui.webc.fiori.ShellBar#co-pilot-click
|
|
914
896
|
* @param {HTMLElement} targetRef dom ref of the activated element
|
|
915
897
|
* @since 0.10
|
|
916
898
|
* @public
|
|
@@ -918,6 +900,9 @@ ShellBar = ShellBar_1 = __decorate([
|
|
|
918
900
|
,
|
|
919
901
|
event("co-pilot-click", {
|
|
920
902
|
detail: {
|
|
903
|
+
/**
|
|
904
|
+
* @public
|
|
905
|
+
*/
|
|
921
906
|
targetRef: { type: HTMLElement },
|
|
922
907
|
},
|
|
923
908
|
})
|
|
@@ -925,7 +910,6 @@ ShellBar = ShellBar_1 = __decorate([
|
|
|
925
910
|
* Fired, when a menu item is activated
|
|
926
911
|
* <b>Note:</b> You can prevent closing of overflow popover by calling <code>event.preventDefault()</code>.
|
|
927
912
|
*
|
|
928
|
-
* @event sap.ui.webc.fiori.ShellBar#menu-item-click
|
|
929
913
|
* @param {HTMLElement} item DOM ref of the activated list item
|
|
930
914
|
* @since 0.10
|
|
931
915
|
* @public
|
|
@@ -933,6 +917,9 @@ ShellBar = ShellBar_1 = __decorate([
|
|
|
933
917
|
,
|
|
934
918
|
event("menu-item-click", {
|
|
935
919
|
detail: {
|
|
920
|
+
/**
|
|
921
|
+
* @public
|
|
922
|
+
*/
|
|
936
923
|
item: { type: HTMLElement },
|
|
937
924
|
},
|
|
938
925
|
})
|
package/dist/ShellBar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellBar.js","sourceRoot":"","sources":["../src/ShellBar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport AnimationMode from \"@ui5/webcomponents-base/dist/types/AnimationMode.js\";\nimport { getAnimationMode } from \"@ui5/webcomponents-base/dist/config/AnimationMode.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport StandardListItem from \"@ui5/webcomponents/dist/StandardListItem.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport type { ListSelectionChangeEventDetail } from \"@ui5/webcomponents/dist/List.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport HasPopup from \"@ui5/webcomponents/dist/types/HasPopup.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport \"@ui5/webcomponents-icons/dist/bell.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport \"@ui5/webcomponents-icons/dist/grid.js\";\nimport type { Timeout, ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type ShellBarItem from \"./ShellBarItem.js\";\n\n// Templates\nimport ShellBarTemplate from \"./generated/templates/ShellBarTemplate.lit.js\";\nimport ShellBarPopoverTemplate from \"./generated/templates/ShellBarPopoverTemplate.lit.js\";\n\n// Styles\nimport shellBarStyles from \"./generated/themes/ShellBar.css.js\";\nimport ShellBarPopoverCss from \"./generated/themes/ShellBarPopover.css.js\";\n\nimport {\n\tSHELLBAR_LABEL,\n\tSHELLBAR_LOGO,\n\tSHELLBAR_COPILOT,\n\tSHELLBAR_NOTIFICATIONS,\n\tSHELLBAR_CANCEL,\n\tSHELLBAR_PROFILE,\n\tSHELLBAR_PRODUCTS,\n\tSHELLBAR_SEARCH,\n\tSHELLBAR_OVERFLOW,\n} from \"./generated/i18n/i18n-defaults.js\";\n\ntype AccessibilityRoles = {\n\tlogoRole?: string;\n};\n\ntype AccessibilityTexts = {\n\tlogoTitle?: string;\n\tprofileButtonTitle?: string;\n};\n\ntype AccessibilityAttributesValue = {\n\tariaHasPopup?: string;\n\texpanded?: boolean;\n}\n\ntype AccessibilityAttributes = {\n\tnotifications?: AccessibilityAttributesValue;\n\tprofile?: AccessibilityAttributesValue;\n\tproduct?: AccessibilityAttributesValue;\n\tsearch?: AccessibilityAttributesValue;\n\toverflow?: AccessibilityAttributesValue;\n};\n\ntype ShellBarNotificationsClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarProfileClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarProductSwitchClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarLogoClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarCoPilotClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarMenuItemClickEventDetail = {\n\titem: HTMLElement;\n};\n\ntype ShellBarCoPilot = {\n\tanimated?: boolean,\n\tanimationValues?: string,\n};\n\ninterface IShelBarItemInfo {\n\tid: string,\n\ticon?: string,\n\ttext: string,\n\tpriority: number,\n\tshow: boolean,\n\tcount?: string,\n\tcustom?: boolean,\n\ttitle?: string,\n\tstableDomRef?: string,\n\trefItemid?: string,\n\tpress: (e: MouseEvent) => void,\n\tstyles: object,\n\tdomOrder: number,\n\tclasses: string,\n\torder?: number,\n\tprofile?: boolean,\n}\n\nconst HANDLE_RESIZE_DEBOUNCE_RATE = 200; // ms\n\n/**\n * @class\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-shellbar</code> is meant to serve as an application header\n * and includes numerous built-in features, such as: logo, profile image/icon, title, search field, notifications and so on.\n * <br><br>\n *\n * <h3>Stable DOM Refs</h3>\n *\n * You can use the following stable DOM refs for the <code>ui5-shellbar</code>:\n * <ul>\n * <li>logo</li>\n * <li>copilot</li>\n * <li>notifications</li>\n * <li>overflow</li>\n * <li>profile</li>\n * <li>product-switch</li>\n * </ul>\n *\n * <h3>CSS Shadow Parts</h3>\n *\n * <ui5-link target=\"_blank\" href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/::part\">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.\n * <br>\n * The <code>ui5-shellbar</code> exposes the following CSS Shadow Parts:\n * <ul>\n * <li>root - Used to style the outermost wrapper of the <code>ui5-shellbar</code></li>\n * </ul>\n *\n * <h3>Keyboard Handling</h3>\n *\n * <h4>Fast Navigation</h4>\n * This component provides a build in fast navigation group which can be used via <code>F6 / Shift + F6</code> or <code> Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up</code>.\n * In order to use this functionality, you need to import the following module:\n * <code>import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"</code>\n * <br><br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents-fiori/dist/ShellBar\";</code>\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webc.fiori.ShellBar\n * @extends sap.ui.webc.base.UI5Element\n * @tagname ui5-shellbar\n * @appenddocs sap.ui.webc.fiori.ShellBarItem\n * @public\n * @since 0.8.0\n */\n\n@customElement({\n\ttag: \"ui5-shellbar\",\n\tfastNavigation: true,\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: ShellBarTemplate,\n\tstaticAreaTemplate: ShellBarPopoverTemplate,\n\tstyles: shellBarStyles,\n\tstaticAreaStyles: [ShellBarPopoverCss],\n\tdependencies: [\n\t\tButton,\n\t\tList,\n\t\tPopover,\n\t\tStandardListItem,\n\t],\n})\n/**\n *\n * Fired, when the notification icon is activated.\n *\n * @event sap.ui.webc.fiori.ShellBar#notifications-click\n * @allowPreventDefault\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"notifications-click\", {\n\tdetail: {\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when the profile slot is present.\n *\n * @event sap.ui.webc.fiori.ShellBar#profile-click\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"profile-click\", {\n\tdetail: {\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when the product switch icon is activated.\n * <b>Note:</b> You can prevent closing of overflow popover by calling <code>event.preventDefault()</code>.\n *\n * @event sap.ui.webc.fiori.ShellBar#product-switch-click\n * @allowPreventDefault\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"product-switch-click\", {\n\tdetail: {\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when the logo is activated.\n *\n * @event sap.ui.webc.fiori.ShellBar#logo-click\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @since 0.10\n * @public\n */\n@event(\"logo-click\", {\n\tdetail: {\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when the co pilot is activated.\n *\n * @event sap.ui.webc.fiori.ShellBar#co-pilot-click\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @since 0.10\n * @public\n */\n@event(\"co-pilot-click\", {\n\tdetail: {\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when a menu item is activated\n * <b>Note:</b> You can prevent closing of overflow popover by calling <code>event.preventDefault()</code>.\n *\n * @event sap.ui.webc.fiori.ShellBar#menu-item-click\n * @param {HTMLElement} item DOM ref of the activated list item\n * @since 0.10\n * @public\n */\n@event(\"menu-item-click\", {\n\tdetail: {\n\t\titem: { type: HTMLElement },\n\t},\n})\n\nclass ShellBar extends UI5Element {\n\t/**\n\t * Defines the <code>primaryTitle</code>.\n\t * <br><br>\n\t * <b>Note:</b> The <code>primaryTitle</code> would be hidden on S screen size (less than approx. 700px).\n\t * @type {string}\n\t * @defaultvalue \"\"\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.primaryTitle\n\t * @public\n\t */\n\t@property()\n\tprimaryTitle!: string;\n\n\t/**\n\t * Defines the <code>secondaryTitle</code>.\n\t * <br><br>\n\t * <b>Note:</b> The <code>secondaryTitle</code> would be hidden on S and M screen sizes (less than approx. 1300px).\n\t * @type {string}\n\t * @defaultvalue \"\"\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.secondaryTitle\n\t * @public\n\t */\n\t@property()\n\tsecondaryTitle!: string;\n\n\t/**\n\t * Defines the <code>notificationsCount</code>,\n\t * displayed in the notification icon top-right corner.\n\t * @type {string}\n\t * @defaultvalue \"\"\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.notificationsCount\n\t * @public\n\t */\n\t@property()\n\tnotificationsCount!: string;\n\n\t/**\n\t * Defines, if the notification icon would be displayed.\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.showNotifications\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowNotifications!: boolean;\n\n\t/**\n\t * Defines, if the product switch icon would be displayed.\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.showProductSwitch\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowProductSwitch!: boolean;\n\n\t/**\n\t * Defines, if the product CoPilot icon would be displayed.\n\t * <br><b>Note:</b> By default the co-pilot is displayed as static SVG.\n\t * If you need an animated co-pilot, you can import the <code>\"@ui5/webcomponents-fiori/dist/features/CoPilotAnimation.js\"</code> module as add-on feature.\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.showCoPilot\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowCoPilot!: boolean;\n\n\t/**\n\t * Defines, if the Search Field would be displayed when there is a valid <code>searchField</code> slot.\n\t * <br><b>Note:</b> By default the Search Field is not displayed.\n\t * @type {boolean}\n\t * @defaultvalue false\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.showSearchField\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSearchField!: boolean;\n\n\t/**\n\t * An object of strings that defines additional accessibility roles for further customization.\n\t *\n\t * It supports the following fields:\n\t * - <code>logoRole</code>: the accessibility role for the <code>logo</code>\n\t *\n\t * @type {object}\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.accessibilityRoles\n\t * @public\n\t * @since 1.6.0\n\t */\n\t@property({ type: Object })\n\taccessibilityRoles!: AccessibilityRoles;\n\n\t/**\n\t * An object of strings that defines several additional accessibility texts\n\t * for even further customization.\n\t *\n\t * It supports the following fields:\n\t * - <code>profileButtonTitle</code>: defines the tooltip for the profile button\n\t * - <code>logoTitle</code>: defines the tooltip for the logo\n\t *\n\t * @type {object}\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.accessibilityTexts\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property({ type: Object })\n\taccessibilityTexts!: AccessibilityTexts;\n\n\t/**\n\t * An object of strings that defines several additional accessibility attribute values\n\t * for customization depending on the use case.\n\t *\n\t * It supports the following fields:\n\t *\n\t * <ul>\n\t * \t\t<li><code>expanded</code>: Indicates whether the anchor element, or another grouping element it controls, is currently expanded or collapsed. Accepts the following string values:\n\t *\t\t\t<ul>\n\t *\t\t\t\t<li><code>true</code></li>\n\t *\t\t\t\t<li><code>false</code></li>\n\t *\t\t\t</ul>\n\t * \t\t</li>\n\t * \t\t<li><code>hasPopup</code>: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the anchor element. Accepts the following string values:\n\t * \t\t\t<ul>\n\t *\t\t\t\t<li><code>Dialog</code></li>\n\t *\t\t\t\t<li><code>Grid</code></li>\n\t *\t\t\t\t<li><code>ListBox</code></li>\n\t *\t\t\t\t<li><code>Menu</code></li>\n\t *\t\t\t\t<li><code>Tree</code></li>\n\t * \t\t\t</ul>\n\t * \t\t</li>\n\t * </ul>\n\t * @type {object}\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.accessibilityAttributes\n\t * @public\n\t * @since 1.10.0\n\t */\n\t @property({ type: Object })\n\t accessibilityAttributes!: AccessibilityAttributes;\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\tbreakpointSize!: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tcoPilotActive!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\twithLogo!: boolean;\n\n\t@property({ type: Object })\n\t_itemsInfo!: Array<IShelBarItemInfo>;\n\n\t@property({ type: Object, multiple: true })\n\t_menuPopoverItems!: Array<HTMLElement>;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_menuPopoverExpanded!: boolean;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_overflowPopoverExpanded!: boolean;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_fullWidthSearch!: boolean;\n\n\t/**\n\t * Defines the <code>ui5-shellbar</code> aditional items.\n\t * <br><br>\n\t * <b>Note:</b>\n\t * You can use the <ui5-shellbar-item></ui5-shellbar-item>.\n\t *\n\t * @type {sap.ui.webc.fiori.IShellBarItem[]}\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.default\n\t * @slot items\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n\titems!: Array<ShellBarItem>;\n\n\t/**\n\t * You can pass <code>ui5-avatar</code> to set the profile image/icon.\n\t * If no profile slot is set - profile will be excluded from actions.\n\t *\n\t * Note: We recommend not using the <code>size</code> attribute of <code>ui5-avatar</code> because\n\t * it should have specific size by design in the context of <code>ui5-shellbar</code> profile.\n\t * @type {sap.ui.webc.main.IAvatar}\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.profile\n\t * @slot profile\n\t * @since 1.0.0-rc.6\n\t * @public\n\t */\n\t@slot()\n\tprofile!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the logo of the <code>ui5-shellbar</code>.\n\t * For example, you can use <code>ui5-avatar</code> or <code>img</code> elements as logo.\n\t * @type {sap.ui.webc.main.IAvatar}\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.logo\n\t * @slot\n\t * @since 1.0.0-rc.8\n\t * @public\n\t */\n\t@slot()\n\tlogo!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the items displayed in menu after a click on the primary title.\n\t * <br><br>\n\t * <b>Note:</b>\n\t * You can use the <ui5-li></ui5-li> and its ancestors.\n\t *\n\t * @type {sap.ui.webc.main.IListItem[]}\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.menuItems\n\t * @slot\n\t * @since 0.10\n\t * @public\n\t */\n\t@slot()\n\tmenuItems!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the <code>ui5-input</code>, that will be used as a search field.\n\t *\n\t * @type {sap.ui.webc.main.IInput}\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.searchField\n\t * @slot\n\t * @public\n\t */\n\t@slot()\n\tsearchField!: Array<Input>;\n\n\t/**\n\t * Defines a <code>ui5-button</code> in the bar that will be placed in the beginning.\n\t * We encourage this slot to be used for a back or home button.\n\t * It gets overstyled to match ShellBar's styling.\n\t *\n\t * @type {sap.ui.webc.main.IButton}\n\t * @name sap.ui.webc.fiori.ShellBar.prototype.startButton\n\t * @slot\n\t * @public\n\t */\n\t@slot()\n\tstartButton!: Array<Button>;\n\n\tstatic i18nBundle: I18nBundle;\n\toverflowPopover?: Popover | null;\n\tmenuPopover?: Popover | null;\n\t_isInitialRendering: boolean;\n\t_defaultItemPressPrevented: boolean;\n\tmenuItemsObserver: MutationObserver;\n\tcoPilot?: ShellBarCoPilot;\n\t_debounceInterval?: Timeout | null;\n\t_hiddenIcons?: Array<IShelBarItemInfo>;\n\t_handleResize: ResizeObserverCallback;\n\t_headerPress: () => Promise<void>;\n\n\tstatic get FIORI_3_BREAKPOINTS() {\n\t\treturn [\n\t\t\t599,\n\t\t\t1023,\n\t\t\t1439,\n\t\t\t1919,\n\t\t\t10000,\n\t\t];\n\t}\n\n\tstatic get FIORI_3_BREAKPOINTS_MAP(): Record<string, string> {\n\t\treturn {\n\t\t\t\"599\": \"S\",\n\t\t\t\"1023\": \"M\",\n\t\t\t\"1439\": \"L\",\n\t\t\t\"1919\": \"XL\",\n\t\t\t\"10000\": \"XXL\",\n\t\t};\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemsInfo = [];\n\t\tthis._isInitialRendering = true;\n\n\t\t// marks if preventDefault() is called in item's press handler\n\t\tthis._defaultItemPressPrevented = false;\n\n\t\tthis.menuItemsObserver = new MutationObserver(() => {\n\t\t\tthis._updateClonedMenuItems();\n\t\t});\n\n\t\tthis._headerPress = async () => {\n\t\t\tthis._updateClonedMenuItems();\n\n\t\t\tif (this.hasMenuItems) {\n\t\t\t\tconst menuPopover = await this._getMenuPopover();\n\t\t\t\tmenuPopover!.showAt(this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-menu-button\")!, true);\n\t\t\t}\n\t\t};\n\n\t\tthis._handleResize = () => {\n\t\t\tthis._debounce(async () => {\n\t\t\t\tawait this._getResponsivePopover();\n\t\t\t\tthis.overflowPopover!.close();\n\t\t\t\tthis._overflowActions();\n\t\t\t}, HANDLE_RESIZE_DEBOUNCE_RATE);\n\t\t};\n\t}\n\n\t_debounce(fn: () => Promise<void>, delay: number) {\n\t\tclearTimeout(this._debounceInterval!);\n\t\tthis._debounceInterval = setTimeout(() => {\n\t\t\tthis._debounceInterval = null;\n\t\t\tfn();\n\t\t}, delay);\n\t}\n\n\t_menuItemPress(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tthis.menuPopover!.close();\n\t\tthis.fireEvent<ShellBarMenuItemClickEventDetail>(\"menu-item-click\", {\n\t\t\titem: e.detail.selectedItems[0],\n\t\t}, true);\n\t}\n\n\t_logoPress() {\n\t\tthis.fireEvent<ShellBarLogoClickEventDetail>(\"logo-click\", {\n\t\t\ttargetRef: this.shadowRoot!.querySelector(\".ui5-shellbar-logo\")!,\n\t\t});\n\t}\n\n\t_menuPopoverBeforeOpen() {\n\t\tthis._menuPopoverExpanded = true;\n\t\tif (this.menuPopover!.content && this.menuPopover!.content.length) {\n\t\t\t(<List> this.menuPopover!.content[0]).focusFirstItem();\n\t\t}\n\t}\n\n\t_menuPopoverAfterClose() {\n\t\tthis._menuPopoverExpanded = false;\n\t}\n\n\t_overflowPopoverBeforeOpen() {\n\t\tthis._overflowPopoverExpanded = true;\n\t\tif (this.overflowPopover!.content && this.overflowPopover!.content.length) {\n\t\t\t(<List> this.overflowPopover!.content[0]).focusFirstItem();\n\t\t}\n\t}\n\n\t_overflowPopoverAfterClose() {\n\t\tthis._overflowPopoverExpanded = false;\n\t}\n\n\t_logoKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._logoPress();\n\t\t}\n\t}\n\n\t_logoKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._logoPress();\n\t\t}\n\t}\n\n\t_fireCoPilotClick() {\n\t\tthis.fireEvent<ShellBarCoPilotClickEventDetail>(\"co-pilot-click\", {\n\t\t\ttargetRef: this.shadowRoot!.querySelector(\".ui5-shellbar-coPilot\")!,\n\t\t});\n\t}\n\n\t_coPilotClick() {\n\t\tthis._fireCoPilotClick();\n\t}\n\n\t_coPilotKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.coPilotActive = true;\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.coPilotActive = true;\n\t\t\tthis._fireCoPilotClick();\n\t\t}\n\t}\n\n\t_coPilotKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._fireCoPilotClick();\n\t\t}\n\t\tthis.coPilotActive = false;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst animationsOn = getAnimationMode() === AnimationMode.Full;\n\t\tconst coPilotAnimation = getFeature(\"CoPilotAnimation\");\n\t\tthis.coPilot = coPilotAnimation && animationsOn ? coPilotAnimation : { animated: false };\n\t\tthis.withLogo = this.hasLogo;\n\n\t\tthis._hiddenIcons = this._itemsInfo.filter(info => {\n\t\t\tconst isHidden = (info.classes.indexOf(\"ui5-shellbar-hidden-button\") !== -1);\n\t\t\tconst isSet = info.classes.indexOf(\"ui5-shellbar-invisible-button\") === -1;\n\t\t\tconst isOverflowIcon = info.classes.indexOf(\"ui5-shellbar-overflow-button\") !== -1;\n\t\t\tconst isImageIcon = info.classes.indexOf(\"ui5-shellbar-image-button\") !== -1;\n\t\t\tconst shouldStayOnScreen = isOverflowIcon || (isImageIcon && this.hasProfile);\n\n\t\t\treturn isHidden && isSet && !shouldStayOnScreen;\n\t\t});\n\n\t\tthis._observeMenuItems();\n\t}\n\n\tonAfterRendering() {\n\t\tthis._overflowActions();\n\n\t\tthis._fullWidthSearch = this._showFullWidthSearch;\n\t}\n\n\t/**\n\t * Closes the overflow area.\n\t * Useful to manually close the overflow after having suppressed automatic closing with preventDefault() of ShellbarItem's press event\n\t * @public\n * @method\n * @name sap.ui.webc.fiori.ShellBar#closeOverflow\n\t */\n\tcloseOverflow() {\n\t\tif (this.overflowPopover) {\n\t\t\tthis.overflowPopover.close();\n\t\t}\n\t}\n\n\t_handleBarBreakpoints() {\n\t\tconst width = this.getBoundingClientRect().width;\n\t\tconst breakpoints = ShellBar.FIORI_3_BREAKPOINTS;\n\n\t\tconst size = breakpoints.find(bp1 => width <= bp1) || ShellBar.FIORI_3_BREAKPOINTS[ShellBar.FIORI_3_BREAKPOINTS.length - 1];\n\t\tconst mappedSize = ShellBar.FIORI_3_BREAKPOINTS_MAP[size];\n\n\t\tif (this.breakpointSize !== mappedSize) {\n\t\t\tthis.breakpointSize = mappedSize;\n\t\t}\n\n\t\treturn mappedSize;\n\t}\n\n\t_handleSizeS() {\n\t\tconst hasIcons = this.showNotifications || this.showProductSwitch || !!this.searchField.length || !!this.items.length;\n\n\t\tconst newItems = this._getAllItems(hasIcons).map((info): IShelBarItemInfo => {\n\t\t\tconst isOverflowIcon = info.classes.indexOf(\"ui5-shellbar-overflow-button\") !== -1;\n\t\t\tconst isImageIcon = info.classes.indexOf(\"ui5-shellbar-image-button\") !== -1;\n\t\t\tconst shouldStayOnScreen = isOverflowIcon || (isImageIcon && this.hasProfile);\n\n\t\t\treturn {\n\t\t\t\t...info,\n\t\t\t\tclasses: `${info.classes} ${shouldStayOnScreen ? \"\" : \"ui5-shellbar-hidden-button\"} ui5-shellbar-button`,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: shouldStayOnScreen ? 1 : -1,\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\n\t\tthis._updateItemsInfo(newItems);\n\t}\n\n\t_handleActionsOverflow() {\n\t\tconst rightContainerRect = this.shadowRoot!.querySelector(\".ui5-shellbar-overflow-container-right\")!.getBoundingClientRect();\n\t\tlet overflowSelector = \".ui5-shellbar-button:not(.ui5-shellbar-overflow-button):not(.ui5-shellbar-invisible-button)\";\n\n\t\tif (this.showSearchField) {\n\t\t\toverflowSelector += \",.ui5-shellbar-search-field\";\n\t\t}\n\n\t\tconst elementsToOverflow = this.shadowRoot!.querySelectorAll<Button>(overflowSelector);\n\t\tconst isRTL = this.effectiveDir === \"rtl\";\n\n\t\tconst overflowButtons = [...elementsToOverflow].filter(icon => {\n\t\t\tconst iconRect = (icon).getBoundingClientRect();\n\n\t\t\tif (isRTL) {\n\t\t\t\treturn (iconRect.left + iconRect.width) > (rightContainerRect.left + rightContainerRect.width);\n\t\t\t}\n\n\t\t\treturn iconRect.left < rightContainerRect.left;\n\t\t});\n\t\tconst showOverflowButton = !!overflowButtons.length;\n\n\t\tconst items = this._getAllItems(showOverflowButton).filter(item => item.show);\n\n\t\tconst itemsByPriority = items.sort((item1, item2) => {\n\t\t\tif (item1.priority > item2.priority) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif (item1.priority < item2.priority) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t});\n\n\t\tfor (let i = 0; i < itemsByPriority.length; i++) {\n\t\t\tif (i < overflowButtons.length) {\n\t\t\t\titemsByPriority[i].classes = `${itemsByPriority[i].classes} ui5-shellbar-hidden-button`;\n\t\t\t\titemsByPriority[i].styles = {\n\t\t\t\t\torder: -1,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn itemsByPriority;\n\t}\n\n\t_overflowActions() {\n\t\tconst size = this._handleBarBreakpoints();\n\n\t\tif (size === \"S\") {\n\t\t\treturn this._handleSizeS();\n\t\t}\n\n\t\tconst newItems = this._handleActionsOverflow();\n\t\tthis._updateItemsInfo(newItems);\n\t}\n\n\tasync _toggleActionPopover() {\n\t\tconst overflowButton = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-overflow-button\")!;\n\t\tconst overflowPopover = await this._getOverflowPopover();\n\t\toverflowPopover!.showAt(overflowButton, true);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResize);\n\t}\n\n\tonExitDOM() {\n\t\tthis.menuItemsObserver.disconnect();\n\t\tResizeHandler.deregister(this, this._handleResize);\n\t\tclearTimeout(this._debounceInterval!);\n\t\tthis._debounceInterval = null;\n\t}\n\n\t_handleSearchIconPress() {\n\t\tthis.showSearchField = !this.showSearchField;\n\n\t\tif (!this.showSearchField) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst input = this.searchField[0];\n\n\t\t// update the state immediately\n\t\tif (input) {\n\t\t\tinput.focused = true;\n\t\t}\n\n\t\t// move the focus later\n\t\tsetTimeout(() => {\n\t\t\tif (input) {\n\t\t\t\tinput.focus();\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\tasync _handleActionListClick() {\n\t\tif (!this._defaultItemPressPrevented) {\n\t\t\tthis.closeOverflow();\n\t\t\t// wait for DOM to be updated when ui5-popover is closed, otherwise if Enter key is hold\n\t\t\t// there will be no visual indication that this has happened\n\t\t\tawait renderFinished();\n\t\t}\n\n\t\tthis._defaultItemPressPrevented = false;\n\t}\n\n\t_handleCustomActionPress(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst refItemId = target.getAttribute(\"data-ui5-external-action-item-id\");\n\n\t\tif (refItemId) {\n\t\t\tconst shellbarItem = this.items.find(item => {\n\t\t\t\treturn item._id === refItemId;\n\t\t\t});\n\n\t\t\tconst prevented = shellbarItem!.fireClickEvent(e);\n\n\t\t\tthis._defaultItemPressPrevented = prevented;\n\t\t}\n\t}\n\n\t_handleOverflowPress() {\n\t\tthis._toggleActionPopover();\n\t}\n\n\t_handleNotificationsPress(e: MouseEvent) {\n\t\tconst notificationIconRef = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-bell-button\")!,\n\t\t\ttarget = e.target as HTMLElement;\n\n\t\tthis._defaultItemPressPrevented = !this.fireEvent<ShellBarNotificationsClickEventDetail>(\"notifications-click\", {\n\t\t\ttargetRef: notificationIconRef.classList.contains(\"ui5-shellbar-hidden-button\") ? target : notificationIconRef,\n\t\t}, true);\n\t}\n\n\t_handleProfilePress() {\n\t\tthis.fireEvent<ShellBarProfileClickEventDetail>(\"profile-click\", {\n\t\t\ttargetRef: this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-image-button\")!,\n\t\t});\n\t}\n\n\t_handleCancelButtonPress() {\n\t\tthis.showSearchField = false;\n\t}\n\n\t_handleProductSwitchPress(e: MouseEvent) {\n\t\tconst buttonRef = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-button-product-switch\")!,\n\t\t\ttarget = e.target as HTMLElement;\n\n\t\tthis._defaultItemPressPrevented = !this.fireEvent<ShellBarProductSwitchClickEventDetail>(\"product-switch-click\", {\n\t\t\ttargetRef: buttonRef.classList.contains(\"ui5-shellbar-hidden-button\") ? target : buttonRef,\n\t\t}, true);\n\t}\n\n\t/**\n\t * Returns the <code>logo</code> DOM ref.\n\t * @type {HTMLElement}\n * @name sap.ui.webc.fiori.ShellBar.prototype.logoDomRef\n\t * @public\n\t * @readonly\n\t * @since 1.0.0-rc.16\n\t */\n\tget logoDomRef() {\n\t\treturn this.shadowRoot!.querySelector<Button>(`*[data-ui5-stable=\"logo\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>copilot</code> DOM ref.\n\t * @type {HTMLElement}\n * @name sap.ui.webc.fiori.ShellBar.prototype.copilotDomRef\n\t * @public\n\t * @readonly\n\t * @since 1.0.0-rc.16\n\t */\n\tget copilotDomRef() {\n\t\treturn this.shadowRoot!.querySelector<Button>(`*[data-ui5-stable=\"copilot\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>notifications</code> icon DOM ref.\n\t * @type {HTMLElement}\n * @name sap.ui.webc.fiori.ShellBar.prototype.notificationsDomRef\n\t * @public\n\t * @readonly\n\t * @since 1.0.0-rc.16\n\t */\n\tget notificationsDomRef() {\n\t\treturn this.shadowRoot!.querySelector<Button>(`*[data-ui5-stable=\"notifications\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>overflow</code> icon DOM ref.\n\t * @type {HTMLElement}\n * @name sap.ui.webc.fiori.ShellBar.prototype.overflowDomRef\n\t * @public\n\t * @readonly\n\t * @since 1.0.0-rc.16\n\t */\n\tget overflowDomRef() {\n\t\treturn this.shadowRoot!.querySelector<Button>(`*[data-ui5-stable=\"overflow\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>profile</code> icon DOM ref.\n\t * @type {HTMLElement}\n * @name sap.ui.webc.fiori.ShellBar.prototype.profileDomRef\n\t * @public\n\t * @readonly\n\t * @since 1.0.0-rc.16\n\t */\n\tget profileDomRef() {\n\t\treturn this.shadowRoot!.querySelector<Button>(`*[data-ui5-stable=\"profile\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>product-switch</code> icon DOM ref.\n\t * @type {HTMLElement}\n * @name sap.ui.webc.fiori.ShellBar.prototype.productSwitchDomRef\n\t * @public\n\t * @readonly\n\t * @since 1.0.0-rc.16\n\t */\n\tget productSwitchDomRef() {\n\t\treturn this.shadowRoot!.querySelector<Button>(`*[data-ui5-stable=\"product-switch\"]`);\n\t}\n\n\t/**\n\t * Returns all items that will be placed in the right of the bar as icons / dom elements.\n\t * @param {boolean} showOverflowButton Determines if overflow button should be visible (not overflowing)\n\t */\n\t_getAllItems(showOverflowButton: boolean) {\n\t\tlet domOrder = -1;\n\n\t\tconst items: Array<IShelBarItemInfo> = [\n\t\t\t{\n\t\t\t\ticon: \"search\",\n\t\t\t\ttext: this._searchText,\n\t\t\t\tclasses: `${this.searchField.length ? \"\" : \"ui5-shellbar-invisible-button\"} ui5-shellbar-search-button ui5-shellbar-button`,\n\t\t\t\tpriority: 4,\n\t\t\t\tdomOrder: this.searchField.length ? (++domOrder) : -1,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: this.searchField.length ? 1 : -10,\n\t\t\t\t},\n\t\t\t\tid: `${this._id}-item-${1}`,\n\t\t\t\tpress: this._handleSearchIconPress.bind(this),\n\t\t\t\tshow: !!this.searchField.length,\n\t\t\t},\n\t\t\t...this.items.map((item: ShellBarItem) => {\n\t\t\t\titem._getRealDomRef = () => this.getDomRef()!.querySelector(`*[data-ui5-stable=${item.stableDomRef}]`)!;\n\t\t\t\treturn {\n\t\t\t\t\ticon: item.icon,\n\t\t\t\t\tid: item._id,\n\t\t\t\t\tcount: item.count || undefined,\n\t\t\t\t\trefItemid: item._id,\n\t\t\t\t\ttext: item.text,\n\t\t\t\t\tclasses: \"ui5-shellbar-custom-item ui5-shellbar-button\",\n\t\t\t\t\tpriority: 1,\n\t\t\t\t\tdomOrder: (++domOrder),\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\torder: 2,\n\t\t\t\t\t},\n\t\t\t\t\tshow: true,\n\t\t\t\t\tpress: this._handleCustomActionPress.bind(this),\n\t\t\t\t\tcustom: true,\n\t\t\t\t\ttitle: item.title,\n\t\t\t\t\tstableDomRef: item.stableDomRef,\n\t\t\t\t};\n\t\t\t}),\n\t\t\t{\n\t\t\t\ticon: \"bell\",\n\t\t\t\ttext: this._notificationsText,\n\t\t\t\tclasses: `${this.showNotifications ? \"\" : \"ui5-shellbar-invisible-button\"} ui5-shellbar-bell-button ui5-shellbar-button`,\n\t\t\t\tpriority: 3,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: this.showNotifications ? 3 : -10,\n\t\t\t\t},\n\t\t\t\tid: `${this._id}-item-${2}`,\n\t\t\t\tshow: this.showNotifications,\n\t\t\t\tdomOrder: this.showNotifications ? (++domOrder) : -1,\n\t\t\t\tpress: this._handleNotificationsPress.bind(this),\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: \"overflow\",\n\t\t\t\ttext: \"Overflow\",\n\t\t\t\tclasses: `${showOverflowButton ? \"\" : \"ui5-shellbar-hidden-button\"} ui5-shellbar-overflow-button-shown ui5-shellbar-overflow-button ui5-shellbar-button`,\n\t\t\t\tpriority: 5,\n\t\t\t\torder: 4,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: showOverflowButton ? 4 : -1,\n\t\t\t\t},\n\t\t\t\tdomOrder: showOverflowButton ? (++domOrder) : -1,\n\t\t\t\tid: `${this.id}-item-${5}`,\n\t\t\t\tpress: this._handleOverflowPress.bind(this),\n\t\t\t\tshow: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"Person\",\n\t\t\t\tclasses: `${this.hasProfile ? \"\" : \"ui5-shellbar-invisible-button\"} ui5-shellbar-image-button ui5-shellbar-button`,\n\t\t\t\tpriority: 4,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: this.hasProfile ? 5 : -10,\n\t\t\t\t},\n\t\t\t\tprofile: true,\n\t\t\t\tid: `${this._id}-item-${3}`,\n\t\t\t\tdomOrder: this.hasProfile ? (++domOrder) : -1,\n\t\t\t\tshow: this.hasProfile,\n\t\t\t\tpress: this._handleProfilePress.bind(this),\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: \"grid\",\n\t\t\t\ttext: this._productsText,\n\t\t\t\tclasses: `${this.showProductSwitch ? \"\" : \"ui5-shellbar-invisible-button\"} ui5-shellbar-button ui5-shellbar-button-product-switch`,\n\t\t\t\tpriority: 2,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: this.showProductSwitch ? 6 : -10,\n\t\t\t\t},\n\t\t\t\tid: `${this._id}-item-${4}`,\n\t\t\t\tshow: this.showProductSwitch,\n\t\t\t\tdomOrder: this.showProductSwitch ? (++domOrder) : -1,\n\t\t\t\tpress: this._handleProductSwitchPress.bind(this),\n\t\t\t},\n\t\t];\n\t\treturn items;\n\t}\n\n\t_updateItemsInfo(newItems: Array<IShelBarItemInfo>) {\n\t\tconst isDifferent = JSON.stringify(this._itemsInfo) !== JSON.stringify(newItems);\n\t\tif (isDifferent) {\n\t\t\tthis._itemsInfo = newItems;\n\t\t}\n\t}\n\n\t_updateClonedMenuItems() {\n\t\tthis._menuPopoverItems = [];\n\n\t\tthis.menuItems.forEach(item => {\n\t\t\t// clone the menuItem and remove the slot=\"menuItems\",\n\t\t\t// otherwise would not be slotted in the internal ui5-li\n\t\t\tconst clonedItem = item.cloneNode(true) as HTMLElement;\n\t\t\tclonedItem.removeAttribute(\"slot\");\n\n\t\t\tthis._menuPopoverItems.push(clonedItem);\n\t\t});\n\t}\n\n\t_observeMenuItems() {\n\t\tthis.menuItems.forEach(item => {\n\t\t\tthis.menuItemsObserver.observe(item, {\n\t\t\t\tcharacterData: true,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync _getResponsivePopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tthis.overflowPopover = staticAreaItem!.querySelector<Popover>(\".ui5-shellbar-overflow-popover\");\n\t\tthis.menuPopover = staticAreaItem!.querySelector<Popover>(\".ui5-shellbar-menu-popover\");\n\t}\n\n\tasync _getOverflowPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-shellbar-overflow-popover\");\n\t}\n\n\tasync _getMenuPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-shellbar-menu-popover\");\n\t}\n\n\tisIconHidden(name: string) {\n\t\tconst itemInfo = this._itemsInfo.find(item => item.icon === name);\n\n\t\tif (!itemInfo) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn itemInfo.classes.indexOf(\"ui5-shellbar-hidden-button\") !== -1;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\t\"ui5-shellbar-root\": true,\n\t\t\t\t\"ui5-shellbar-with-searchfield\": this.hasSearchField,\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\t\"ui5-shellbar-menu-button--interactive\": this.hasMenuItems,\n\t\t\t\t\"ui5-shellbar-menu-button\": true,\n\t\t\t},\n\t\t\titems: {\n\t\t\t\tnotification: {\n\t\t\t\t\t\"ui5-shellbar-hidden-button\": this.isIconHidden(\"bell\"),\n\t\t\t\t},\n\t\t\t\tproduct: {\n\t\t\t\t\t\"ui5-shellbar-hidden-button\": this.isIconHidden(\"grid\"),\n\t\t\t\t},\n\t\t\t\tsearch: {\n\t\t\t\t\t\"ui5-shellbar-hidden-button\": this.isIconHidden(\"search\"),\n\t\t\t\t},\n\t\t\t\toverflow: {\n\t\t\t\t\t\"ui5-shellbar-hidden-button\": this.isIconHidden(\"overflow\"),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\titems: {\n\t\t\t\tnotification: {\n\t\t\t\t\t\"order\": this.isIconHidden(\"bell\") ? \"-1\" : \"3\",\n\t\t\t\t},\n\t\t\t\toverflow: {\n\t\t\t\t\t\"order\": this.isIconHidden(\"overflow\") ? \"-1\" : \"4\",\n\t\t\t\t},\n\t\t\t\tprofile: {\n\t\t\t\t\t\"order\": this.hasProfile ? \"5\" : \"-1\",\n\t\t\t\t},\n\t\t\t\tproduct: {\n\t\t\t\t\t\"order\": this.isIconHidden(\"grid\") ? \"-1\" : \"6\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tsearchField: {\n\t\t\t\t\"display\": this.correctSearchFieldStyles,\n\t\t\t},\n\t\t};\n\t}\n\n\tget correctSearchFieldStyles() {\n\t\tif (this.showSearchField) {\n\t\t\treturn \"flex\";\n\t\t}\n\n\t\treturn \"none\";\n\t}\n\n\tget customItemsInfo() {\n\t\treturn this._itemsInfo.filter(itemInfo => !!itemInfo.custom);\n\t}\n\n\tget hasLogo() {\n\t\treturn !!this.logo.length;\n\t}\n\n\tget showLogoInMenuButton() {\n\t\treturn this.hasLogo && this.breakpointSize === \"S\";\n\t}\n\n\tget showTitleInMenuButton() {\n\t\treturn this.primaryTitle && !(this.showLogoInMenuButton);\n\t}\n\n\tget showMenuButton() {\n\t\treturn this.primaryTitle || this.showLogoInMenuButton;\n\t}\n\n\tget popoverHorizontalAlign() {\n\t\treturn this.effectiveDir === \"rtl\" ? \"Left\" : \"Right\";\n\t}\n\n\tget hasSearchField() {\n\t\treturn !!this.searchField.length;\n\t}\n\n\tget hasProfile() {\n\t\treturn !!this.profile.length;\n\t}\n\n\tget hasMenuItems() {\n\t\treturn this.menuItems.length > 0;\n\t}\n\n\tget _shellbarText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_LABEL);\n\t}\n\n\tget _logoText() {\n\t\treturn this.accessibilityTexts.logoTitle || ShellBar.i18nBundle.getText(SHELLBAR_LOGO);\n\t}\n\n\tget _copilotText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_COPILOT);\n\t}\n\n\tget _notificationsText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_NOTIFICATIONS, this.notificationsCount);\n\t}\n\n\tget _cancelBtnText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_CANCEL);\n\t}\n\n\tget _showFullWidthSearch() {\n\t\tconst size = this._handleBarBreakpoints();\n\t\tconst searchBtnHidden = !!this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-search-button.ui5-shellbar-hidden-button\");\n\n\t\treturn ((size === \"S\") || searchBtnHidden);\n\t}\n\n\tget _profileText() {\n\t\treturn this.accessibilityTexts.profileButtonTitle || ShellBar.i18nBundle.getText(SHELLBAR_PROFILE);\n\t}\n\n\tget _productsText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_PRODUCTS);\n\t}\n\n\tget _searchText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_SEARCH);\n\t}\n\n\tget _overflowText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_OVERFLOW);\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\tnotifications: {\n\t\t\t\t\"title\": this._notificationsText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._notificationsHasPopup,\n\t\t\t\t},\n\t\t\t},\n\t\t\tprofile: {\n\t\t\t\t\"title\": this._profileText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._profileHasPopup,\n\t\t\t\t},\n\t\t\t},\n\t\t\tproducts: {\n\t\t\t\t\"title\": this._productsText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._productsHasPopup,\n\t\t\t\t},\n\t\t\t},\n\t\t\tsearch: {\n\t\t\t\t\"title\": this._searchText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._searchHasPopup,\n\t\t\t\t\texpanded: this.showSearchField,\n\t\t\t\t},\n\t\t\t},\n\t\t\toverflow: {\n\t\t\t\t\"title\": this._overflowText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._overflowHasPopup,\n\t\t\t\t\texpanded: this._overflowPopoverExpanded,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tget _notificationsHasPopup() {\n\t\tconst notificationsAccAttributes = this.accessibilityAttributes.notifications;\n\t\treturn notificationsAccAttributes ? notificationsAccAttributes.ariaHasPopup : null;\n\t}\n\n\tget _profileHasPopup() {\n\t\tconst profileAccAttributes = this.accessibilityAttributes.profile;\n\t\treturn profileAccAttributes ? profileAccAttributes.ariaHasPopup : null;\n\t}\n\n\tget _productsHasPopup() {\n\t\tconst productsAccAttributes = this.accessibilityAttributes.product;\n\t\treturn productsAccAttributes ? productsAccAttributes.ariaHasPopup : null;\n\t}\n\n\tget _searchHasPopup() {\n\t\tconst searcAccAttributes = this.accessibilityAttributes.search;\n\t\treturn searcAccAttributes ? searcAccAttributes.ariaHasPopup : null;\n\t}\n\n\tget _overflowHasPopup() {\n\t\tconst overflowAccAttributes = this.accessibilityAttributes.overflow;\n\t\treturn overflowAccAttributes ? overflowAccAttributes.ariaHasPopup : HasPopup.Menu;\n\t}\n\n\tget accLogoRole() {\n\t\treturn this.accessibilityRoles.logoRole || \"button\";\n\t}\n\n\tstatic async onDefine() {\n\t\tShellBar.i18nBundle = await getI18nBundle(\"@ui5/webcomponents-fiori\");\n\t}\n}\n\nShellBar.define();\n\nexport default ShellBar;\n\nexport type {\n\tShellBarNotificationsClickEventDetail,\n\tShellBarProfileClickEventDetail,\n\tShellBarProductSwitchClickEventDetail,\n\tShellBarLogoClickEventDetail,\n\tShellBarCoPilotClickEventDetail,\n\tShellBarMenuItemClickEventDetail,\n};\n"]}
|
|
1
|
+
{"version":3,"file":"ShellBar.js","sourceRoot":"","sources":["../src/ShellBar.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport AnimationMode from \"@ui5/webcomponents-base/dist/types/AnimationMode.js\";\nimport { getAnimationMode } from \"@ui5/webcomponents-base/dist/config/AnimationMode.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport StandardListItem from \"@ui5/webcomponents/dist/StandardListItem.js\";\nimport List from \"@ui5/webcomponents/dist/List.js\";\nimport type { ListSelectionChangeEventDetail } from \"@ui5/webcomponents/dist/List.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { IButton } from \"@ui5/webcomponents/dist/Interfaces.js\";\nimport HasPopup from \"@ui5/webcomponents/dist/types/HasPopup.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/search.js\";\nimport \"@ui5/webcomponents-icons/dist/bell.js\";\nimport \"@ui5/webcomponents-icons/dist/overflow.js\";\nimport \"@ui5/webcomponents-icons/dist/grid.js\";\nimport type { Timeout, ClassMap } from \"@ui5/webcomponents-base/dist/types.js\";\nimport type ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport type ShellBarItem from \"./ShellBarItem.js\";\n\n// Templates\nimport ShellBarTemplate from \"./generated/templates/ShellBarTemplate.lit.js\";\nimport ShellBarPopoverTemplate from \"./generated/templates/ShellBarPopoverTemplate.lit.js\";\n\n// Styles\nimport shellBarStyles from \"./generated/themes/ShellBar.css.js\";\nimport ShellBarPopoverCss from \"./generated/themes/ShellBarPopover.css.js\";\n\nimport {\n\tSHELLBAR_LABEL,\n\tSHELLBAR_LOGO,\n\tSHELLBAR_COPILOT,\n\tSHELLBAR_NOTIFICATIONS,\n\tSHELLBAR_CANCEL,\n\tSHELLBAR_PROFILE,\n\tSHELLBAR_PRODUCTS,\n\tSHELLBAR_SEARCH,\n\tSHELLBAR_OVERFLOW,\n} from \"./generated/i18n/i18n-defaults.js\";\n\ntype AccessibilityRoles = {\n\tlogoRole?: string;\n};\n\ntype AccessibilityTexts = {\n\tlogoTitle?: string;\n\tprofileButtonTitle?: string;\n};\n\ntype AccessibilityAttributesValue = {\n\tariaHasPopup?: string;\n\texpanded?: boolean;\n}\n\ntype AccessibilityAttributes = {\n\tnotifications?: AccessibilityAttributesValue;\n\tprofile?: AccessibilityAttributesValue;\n\tproduct?: AccessibilityAttributesValue;\n\tsearch?: AccessibilityAttributesValue;\n\toverflow?: AccessibilityAttributesValue;\n};\n\ntype ShellBarNotificationsClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarProfileClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarProductSwitchClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarLogoClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarCoPilotClickEventDetail = {\n\ttargetRef: HTMLElement;\n};\n\ntype ShellBarMenuItemClickEventDetail = {\n\titem: HTMLElement;\n};\n\ntype ShellBarCoPilot = {\n\tanimated?: boolean,\n\tanimationValues?: string,\n};\n\ninterface IShelBarItemInfo {\n\tid: string,\n\ticon?: string,\n\ttext: string,\n\tpriority: number,\n\tshow: boolean,\n\tcount?: string,\n\tcustom?: boolean,\n\ttitle?: string,\n\tstableDomRef?: string,\n\trefItemid?: string,\n\tpress: (e: MouseEvent) => void,\n\tstyles: object,\n\tdomOrder: number,\n\tclasses: string,\n\torder?: number,\n\tprofile?: boolean,\n}\n\nconst HANDLE_RESIZE_DEBOUNCE_RATE = 200; // ms\n\n/**\n * @class\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>ui5-shellbar</code> is meant to serve as an application header\n * and includes numerous built-in features, such as: logo, profile image/icon, title, search field, notifications and so on.\n * <br><br>\n *\n * <h3>Stable DOM Refs</h3>\n *\n * You can use the following stable DOM refs for the <code>ui5-shellbar</code>:\n * <ul>\n * <li>logo</li>\n * <li>copilot</li>\n * <li>notifications</li>\n * <li>overflow</li>\n * <li>profile</li>\n * <li>product-switch</li>\n * </ul>\n *\n * <h3>Keyboard Handling</h3>\n *\n * <h4>Fast Navigation</h4>\n * This component provides a build in fast navigation group which can be used via <code>F6 / Shift + F6</code> or <code> Ctrl + Alt(Option) + Down / Ctrl + Alt(Option) + Up</code>.\n * In order to use this functionality, you need to import the following module:\n * <code>import \"@ui5/webcomponents-base/dist/features/F6Navigation.js\"</code>\n * <br><br>\n *\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents-fiori/dist/ShellBar\";</code>\n *\n * @csspart root - Used to style the outermost wrapper of the <code>ui5-shellbar</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 0.8.0\n */\n\n@customElement({\n\ttag: \"ui5-shellbar\",\n\tfastNavigation: true,\n\tlanguageAware: true,\n\trenderer: litRender,\n\ttemplate: ShellBarTemplate,\n\tstaticAreaTemplate: ShellBarPopoverTemplate,\n\tstyles: shellBarStyles,\n\tstaticAreaStyles: [ShellBarPopoverCss],\n\tdependencies: [\n\t\tButton,\n\t\tList,\n\t\tPopover,\n\t\tStandardListItem,\n\t],\n})\n/**\n *\n * Fired, when the notification icon is activated.\n *\n * @allowPreventDefault\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"notifications-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when the profile slot is present.\n *\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"profile-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when the product switch icon is activated.\n * <b>Note:</b> You can prevent closing of overflow popover by calling <code>event.preventDefault()</code>.\n *\n * @allowPreventDefault\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @public\n */\n@event(\"product-switch-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when the logo is activated.\n *\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @since 0.10\n * @public\n */\n@event(\"logo-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when the co pilot is activated.\n *\n * @param {HTMLElement} targetRef dom ref of the activated element\n * @since 0.10\n * @public\n */\n@event(\"co-pilot-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\n/**\n * Fired, when a menu item is activated\n * <b>Note:</b> You can prevent closing of overflow popover by calling <code>event.preventDefault()</code>.\n *\n * @param {HTMLElement} item DOM ref of the activated list item\n * @since 0.10\n * @public\n */\n@event(\"menu-item-click\", {\n\tdetail: {\n\t\t/**\n\t\t * @public\n\t\t */\n\t\titem: { type: HTMLElement },\n\t},\n})\n\nclass ShellBar extends UI5Element {\n\t/**\n\t * Defines the <code>primaryTitle</code>.\n\t * <br><br>\n\t * <b>Note:</b> The <code>primaryTitle</code> would be hidden on S screen size (less than approx. 700px).\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tprimaryTitle!: string;\n\n\t/**\n\t * Defines the <code>secondaryTitle</code>.\n\t * <br><br>\n\t * <b>Note:</b> The <code>secondaryTitle</code> would be hidden on S and M screen sizes (less than approx. 1300px).\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tsecondaryTitle!: string;\n\n\t/**\n\t * Defines the <code>notificationsCount</code>,\n\t * displayed in the notification icon top-right corner.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tnotificationsCount!: string;\n\n\t/**\n\t * Defines, if the notification icon would be displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowNotifications!: boolean;\n\n\t/**\n\t * Defines, if the product switch icon would be displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowProductSwitch!: boolean;\n\n\t/**\n\t * Defines, if the product CoPilot icon would be displayed.\n\t * <br><b>Note:</b> By default the co-pilot is displayed as static SVG.\n\t * If you need an animated co-pilot, you can import the <code>\"@ui5/webcomponents-fiori/dist/features/CoPilotAnimation.js\"</code> module as add-on feature.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowCoPilot!: boolean;\n\n\t/**\n\t * Defines, if the Search Field would be displayed when there is a valid <code>searchField</code> slot.\n\t * <br><b>Note:</b> By default the Search Field is not displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowSearchField!: boolean;\n\n\t/**\n\t * An object of strings that defines additional accessibility roles for further customization.\n\t *\n\t * It supports the following fields:\n\t * - <code>logoRole</code>: the accessibility role for the <code>logo</code>\n\t * @default {}\n\t * @public\n\t * @since 1.6.0\n\t */\n\t@property({ type: Object })\n\taccessibilityRoles!: AccessibilityRoles;\n\n\t/**\n\t * An object of strings that defines several additional accessibility texts\n\t * for even further customization.\n\t *\n\t * It supports the following fields:\n\t * - <code>profileButtonTitle</code>: defines the tooltip for the profile button\n\t * - <code>logoTitle</code>: defines the tooltip for the logo\n\t *\n\t * @default {}\n\t * @public\n\t * @since 1.1.0\n\t */\n\t@property({ type: Object })\n\taccessibilityTexts!: AccessibilityTexts;\n\n\t/**\n\t * An object of strings that defines several additional accessibility attribute values\n\t * for customization depending on the use case.\n\t *\n\t * It supports the following fields:\n\t *\n\t * <ul>\n\t * \t\t<li><code>expanded</code>: Indicates whether the anchor element, or another grouping element it controls, is currently expanded or collapsed. Accepts the following string values:\n\t *\t\t\t<ul>\n\t *\t\t\t\t<li><code>true</code></li>\n\t *\t\t\t\t<li><code>false</code></li>\n\t *\t\t\t</ul>\n\t * \t\t</li>\n\t * \t\t<li><code>hasPopup</code>: Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by the anchor element. Accepts the following string values:\n\t * \t\t\t<ul>\n\t *\t\t\t\t<li><code>Dialog</code></li>\n\t *\t\t\t\t<li><code>Grid</code></li>\n\t *\t\t\t\t<li><code>ListBox</code></li>\n\t *\t\t\t\t<li><code>Menu</code></li>\n\t *\t\t\t\t<li><code>Tree</code></li>\n\t * \t\t\t</ul>\n\t * \t\t</li>\n\t * </ul>\n\t * @default {}\n\t * @public\n\t * @since 1.10.0\n\t */\n\t @property({ type: Object })\n\t accessibilityAttributes!: AccessibilityAttributes;\n\n\t/**\n\t * @private\n\t */\n\t@property()\n\tbreakpointSize!: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tcoPilotActive!: boolean;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\twithLogo!: boolean;\n\n\t@property({ type: Object })\n\t_itemsInfo!: Array<IShelBarItemInfo>;\n\n\t@property({ type: Object, multiple: true })\n\t_menuPopoverItems!: Array<HTMLElement>;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_menuPopoverExpanded!: boolean;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_overflowPopoverExpanded!: boolean;\n\n\t@property({ type: Boolean, noAttribute: true })\n\t_fullWidthSearch!: boolean;\n\n\t/**\n\t * Defines the <code>ui5-shellbar</code> aditional items.\n\t * <br><br>\n\t * <b>Note:</b>\n\t * You can use the <ui5-shellbar-item></ui5-shellbar-item>.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true, invalidateOnChildChange: true })\n\titems!: Array<ShellBarItem>;\n\n\t/**\n\t * You can pass <code>ui5-avatar</code> to set the profile image/icon.\n\t * If no profile slot is set - profile will be excluded from actions.\n\t *\n\t * Note: We recommend not using the <code>size</code> attribute of <code>ui5-avatar</code> because\n\t * it should have specific size by design in the context of <code>ui5-shellbar</code> profile.\n\t * @since 1.0.0-rc.6\n\t * @public\n\t */\n\t@slot()\n\tprofile!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the logo of the <code>ui5-shellbar</code>.\n\t * For example, you can use <code>ui5-avatar</code> or <code>img</code> elements as logo.\n\t * @since 1.0.0-rc.8\n\t * @public\n\t */\n\t@slot()\n\tlogo!: Array<HTMLElement>;\n\n\t/**\n\t * Defines the items displayed in menu after a click on the primary title.\n\t * <br><br>\n\t * <b>Note:</b>\n\t * You can use the <ui5-li></ui5-li> and its ancestors.\n\t *\n\t * @since 0.10\n\t * @public\n\t */\n\t@slot()\n\tmenuItems!: Array<ListItemBase>;\n\n\t/**\n\t * Defines the <code>ui5-input</code>, that will be used as a search field.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tsearchField!: Array<Input>;\n\n\t/**\n\t * Defines a <code>ui5-button</code> in the bar that will be placed in the beginning.\n\t * We encourage this slot to be used for a back or home button.\n\t * It gets overstyled to match ShellBar's styling.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tstartButton!: Array<IButton>;\n\n\tstatic i18nBundle: I18nBundle;\n\toverflowPopover?: Popover | null;\n\tmenuPopover?: Popover | null;\n\t_isInitialRendering: boolean;\n\t_defaultItemPressPrevented: boolean;\n\tmenuItemsObserver: MutationObserver;\n\tcoPilot?: ShellBarCoPilot;\n\t_debounceInterval?: Timeout | null;\n\t_hiddenIcons?: Array<IShelBarItemInfo>;\n\t_handleResize: ResizeObserverCallback;\n\t_headerPress: () => Promise<void>;\n\n\tstatic get FIORI_3_BREAKPOINTS() {\n\t\treturn [\n\t\t\t599,\n\t\t\t1023,\n\t\t\t1439,\n\t\t\t1919,\n\t\t\t10000,\n\t\t];\n\t}\n\n\tstatic get FIORI_3_BREAKPOINTS_MAP(): Record<string, string> {\n\t\treturn {\n\t\t\t\"599\": \"S\",\n\t\t\t\"1023\": \"M\",\n\t\t\t\"1439\": \"L\",\n\t\t\t\"1919\": \"XL\",\n\t\t\t\"10000\": \"XXL\",\n\t\t};\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemsInfo = [];\n\t\tthis._isInitialRendering = true;\n\n\t\t// marks if preventDefault() is called in item's press handler\n\t\tthis._defaultItemPressPrevented = false;\n\n\t\tthis.menuItemsObserver = new MutationObserver(() => {\n\t\t\tthis._updateClonedMenuItems();\n\t\t});\n\n\t\tthis._headerPress = async () => {\n\t\t\tthis._updateClonedMenuItems();\n\n\t\t\tif (this.hasMenuItems) {\n\t\t\t\tconst menuPopover = await this._getMenuPopover();\n\t\t\t\tmenuPopover!.showAt(this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-menu-button\")!, true);\n\t\t\t}\n\t\t};\n\n\t\tthis._handleResize = () => {\n\t\t\tthis._debounce(async () => {\n\t\t\t\tawait this._getResponsivePopover();\n\t\t\t\tthis.overflowPopover!.close();\n\t\t\t\tthis._overflowActions();\n\t\t\t}, HANDLE_RESIZE_DEBOUNCE_RATE);\n\t\t};\n\t}\n\n\t_debounce(fn: () => Promise<void>, delay: number) {\n\t\tclearTimeout(this._debounceInterval!);\n\t\tthis._debounceInterval = setTimeout(() => {\n\t\t\tthis._debounceInterval = null;\n\t\t\tfn();\n\t\t}, delay);\n\t}\n\n\t_menuItemPress(e: CustomEvent<ListSelectionChangeEventDetail>) {\n\t\tthis.menuPopover!.close();\n\t\tthis.fireEvent<ShellBarMenuItemClickEventDetail>(\"menu-item-click\", {\n\t\t\titem: e.detail.selectedItems[0],\n\t\t}, true);\n\t}\n\n\t_logoPress() {\n\t\tthis.fireEvent<ShellBarLogoClickEventDetail>(\"logo-click\", {\n\t\t\ttargetRef: this.shadowRoot!.querySelector(\".ui5-shellbar-logo\")!,\n\t\t});\n\t}\n\n\t_menuPopoverBeforeOpen() {\n\t\tthis._menuPopoverExpanded = true;\n\t\tif (this.menuPopover!.content && this.menuPopover!.content.length) {\n\t\t\t(<List> this.menuPopover!.content[0]).focusFirstItem();\n\t\t}\n\t}\n\n\t_menuPopoverAfterClose() {\n\t\tthis._menuPopoverExpanded = false;\n\t}\n\n\t_overflowPopoverBeforeOpen() {\n\t\tthis._overflowPopoverExpanded = true;\n\t\tif (this.overflowPopover!.content && this.overflowPopover!.content.length) {\n\t\t\t(<List> this.overflowPopover!.content[0]).focusFirstItem();\n\t\t}\n\t}\n\n\t_overflowPopoverAfterClose() {\n\t\tthis._overflowPopoverExpanded = false;\n\t}\n\n\t_logoKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._logoPress();\n\t\t}\n\t}\n\n\t_logoKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._logoPress();\n\t\t}\n\t}\n\n\t_fireCoPilotClick() {\n\t\tthis.fireEvent<ShellBarCoPilotClickEventDetail>(\"co-pilot-click\", {\n\t\t\ttargetRef: this.shadowRoot!.querySelector(\".ui5-shellbar-coPilot\")!,\n\t\t});\n\t}\n\n\t_coPilotClick() {\n\t\tthis._fireCoPilotClick();\n\t}\n\n\t_coPilotKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.coPilotActive = true;\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis.coPilotActive = true;\n\t\t\tthis._fireCoPilotClick();\n\t\t}\n\t}\n\n\t_coPilotKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._fireCoPilotClick();\n\t\t}\n\t\tthis.coPilotActive = false;\n\t}\n\n\tonBeforeRendering() {\n\t\tconst animationsOn = getAnimationMode() === AnimationMode.Full;\n\t\tconst coPilotAnimation = getFeature(\"CoPilotAnimation\");\n\t\tthis.coPilot = coPilotAnimation && animationsOn ? coPilotAnimation : { animated: false };\n\t\tthis.withLogo = this.hasLogo;\n\n\t\tthis._hiddenIcons = this._itemsInfo.filter(info => {\n\t\t\tconst isHidden = (info.classes.indexOf(\"ui5-shellbar-hidden-button\") !== -1);\n\t\t\tconst isSet = info.classes.indexOf(\"ui5-shellbar-invisible-button\") === -1;\n\t\t\tconst isOverflowIcon = info.classes.indexOf(\"ui5-shellbar-overflow-button\") !== -1;\n\t\t\tconst isImageIcon = info.classes.indexOf(\"ui5-shellbar-image-button\") !== -1;\n\t\t\tconst shouldStayOnScreen = isOverflowIcon || (isImageIcon && this.hasProfile);\n\n\t\t\treturn isHidden && isSet && !shouldStayOnScreen;\n\t\t});\n\n\t\tthis._observeMenuItems();\n\t}\n\n\tonAfterRendering() {\n\t\tthis._overflowActions();\n\n\t\tthis._fullWidthSearch = this._showFullWidthSearch;\n\t}\n\n\t/**\n\t * Closes the overflow area.\n\t * Useful to manually close the overflow after having suppressed automatic closing with preventDefault() of ShellbarItem's press event\n\t * @public\n\t */\n\tcloseOverflow(): void {\n\t\tif (this.overflowPopover) {\n\t\t\tthis.overflowPopover.close();\n\t\t}\n\t}\n\n\t_handleBarBreakpoints() {\n\t\tconst width = this.getBoundingClientRect().width;\n\t\tconst breakpoints = ShellBar.FIORI_3_BREAKPOINTS;\n\n\t\tconst size = breakpoints.find(bp1 => width <= bp1) || ShellBar.FIORI_3_BREAKPOINTS[ShellBar.FIORI_3_BREAKPOINTS.length - 1];\n\t\tconst mappedSize = ShellBar.FIORI_3_BREAKPOINTS_MAP[size];\n\n\t\tif (this.breakpointSize !== mappedSize) {\n\t\t\tthis.breakpointSize = mappedSize;\n\t\t}\n\n\t\treturn mappedSize;\n\t}\n\n\t_handleSizeS() {\n\t\tconst hasIcons = this.showNotifications || this.showProductSwitch || !!this.searchField.length || !!this.items.length;\n\n\t\tconst newItems = this._getAllItems(hasIcons).map((info): IShelBarItemInfo => {\n\t\t\tconst isOverflowIcon = info.classes.indexOf(\"ui5-shellbar-overflow-button\") !== -1;\n\t\t\tconst isImageIcon = info.classes.indexOf(\"ui5-shellbar-image-button\") !== -1;\n\t\t\tconst shouldStayOnScreen = isOverflowIcon || (isImageIcon && this.hasProfile);\n\n\t\t\treturn {\n\t\t\t\t...info,\n\t\t\t\tclasses: `${info.classes} ${shouldStayOnScreen ? \"\" : \"ui5-shellbar-hidden-button\"} ui5-shellbar-button`,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: shouldStayOnScreen ? 1 : -1,\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\n\t\tthis._updateItemsInfo(newItems);\n\t}\n\n\t_handleActionsOverflow() {\n\t\tconst rightContainerRect = this.shadowRoot!.querySelector(\".ui5-shellbar-overflow-container-right\")!.getBoundingClientRect();\n\t\tlet overflowSelector = \".ui5-shellbar-button:not(.ui5-shellbar-overflow-button):not(.ui5-shellbar-invisible-button)\";\n\n\t\tif (this.showSearchField) {\n\t\t\toverflowSelector += \",.ui5-shellbar-search-field\";\n\t\t}\n\n\t\tconst elementsToOverflow = this.shadowRoot!.querySelectorAll<Button>(overflowSelector);\n\t\tconst isRTL = this.effectiveDir === \"rtl\";\n\n\t\tconst overflowButtons = [...elementsToOverflow].filter(icon => {\n\t\t\tconst iconRect = (icon).getBoundingClientRect();\n\n\t\t\tif (isRTL) {\n\t\t\t\treturn (iconRect.left + iconRect.width) > (rightContainerRect.left + rightContainerRect.width);\n\t\t\t}\n\n\t\t\treturn iconRect.left < rightContainerRect.left;\n\t\t});\n\t\tconst showOverflowButton = !!overflowButtons.length;\n\n\t\tconst items = this._getAllItems(showOverflowButton).filter(item => item.show);\n\n\t\tconst itemsByPriority = items.sort((item1, item2) => {\n\t\t\tif (item1.priority > item2.priority) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif (item1.priority < item2.priority) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t});\n\n\t\tfor (let i = 0; i < itemsByPriority.length; i++) {\n\t\t\tif (i < overflowButtons.length) {\n\t\t\t\titemsByPriority[i].classes = `${itemsByPriority[i].classes} ui5-shellbar-hidden-button`;\n\t\t\t\titemsByPriority[i].styles = {\n\t\t\t\t\torder: -1,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn itemsByPriority;\n\t}\n\n\t_overflowActions() {\n\t\tconst size = this._handleBarBreakpoints();\n\n\t\tif (size === \"S\") {\n\t\t\treturn this._handleSizeS();\n\t\t}\n\n\t\tconst newItems = this._handleActionsOverflow();\n\t\tthis._updateItemsInfo(newItems);\n\t}\n\n\tasync _toggleActionPopover() {\n\t\tconst overflowButton = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-overflow-button\")!;\n\t\tconst overflowPopover = await this._getOverflowPopover();\n\t\toverflowPopover!.showAt(overflowButton, true);\n\t}\n\n\tonEnterDOM() {\n\t\tResizeHandler.register(this, this._handleResize);\n\t}\n\n\tonExitDOM() {\n\t\tthis.menuItemsObserver.disconnect();\n\t\tResizeHandler.deregister(this, this._handleResize);\n\t\tclearTimeout(this._debounceInterval!);\n\t\tthis._debounceInterval = null;\n\t}\n\n\t_handleSearchIconPress() {\n\t\tthis.showSearchField = !this.showSearchField;\n\n\t\tif (!this.showSearchField) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst input = this.searchField[0];\n\n\t\t// update the state immediately\n\t\tif (input) {\n\t\t\tinput.focused = true;\n\t\t}\n\n\t\t// move the focus later\n\t\tsetTimeout(() => {\n\t\t\tif (input) {\n\t\t\t\tinput.focus();\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\tasync _handleActionListClick() {\n\t\tif (!this._defaultItemPressPrevented) {\n\t\t\tthis.closeOverflow();\n\t\t\t// wait for DOM to be updated when ui5-popover is closed, otherwise if Enter key is hold\n\t\t\t// there will be no visual indication that this has happened\n\t\t\tawait renderFinished();\n\t\t}\n\n\t\tthis._defaultItemPressPrevented = false;\n\t}\n\n\t_handleCustomActionPress(e: MouseEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\tconst refItemId = target.getAttribute(\"data-ui5-external-action-item-id\");\n\n\t\tif (refItemId) {\n\t\t\tconst shellbarItem = this.items.find(item => {\n\t\t\t\treturn item._id === refItemId;\n\t\t\t});\n\n\t\t\tconst prevented = shellbarItem!.fireClickEvent(e);\n\n\t\t\tthis._defaultItemPressPrevented = prevented;\n\t\t}\n\t}\n\n\t_handleOverflowPress() {\n\t\tthis._toggleActionPopover();\n\t}\n\n\t_handleNotificationsPress(e: MouseEvent) {\n\t\tconst notificationIconRef = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-bell-button\")!,\n\t\t\ttarget = e.target as HTMLElement;\n\n\t\tthis._defaultItemPressPrevented = !this.fireEvent<ShellBarNotificationsClickEventDetail>(\"notifications-click\", {\n\t\t\ttargetRef: notificationIconRef.classList.contains(\"ui5-shellbar-hidden-button\") ? target : notificationIconRef,\n\t\t}, true);\n\t}\n\n\t_handleProfilePress() {\n\t\tthis.fireEvent<ShellBarProfileClickEventDetail>(\"profile-click\", {\n\t\t\ttargetRef: this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-image-button\")!,\n\t\t});\n\t}\n\n\t_handleCancelButtonPress() {\n\t\tthis.showSearchField = false;\n\t}\n\n\t_handleProductSwitchPress(e: MouseEvent) {\n\t\tconst buttonRef = this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-button-product-switch\")!,\n\t\t\ttarget = e.target as HTMLElement;\n\n\t\tthis._defaultItemPressPrevented = !this.fireEvent<ShellBarProductSwitchClickEventDetail>(\"product-switch-click\", {\n\t\t\ttargetRef: buttonRef.classList.contains(\"ui5-shellbar-hidden-button\") ? target : buttonRef,\n\t\t}, true);\n\t}\n\n\t/**\n\t * Returns the <code>logo</code> DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget logoDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"logo\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>copilot</code> DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget copilotDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"copilot\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>notifications</code> icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget notificationsDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"notifications\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>overflow</code> icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget overflowDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"overflow\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>profile</code> icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget profileDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"profile\"]`);\n\t}\n\n\t/**\n\t * Returns the <code>product-switch</code> icon DOM ref.\n\t * @public\n\t * @default null\n\t * @since 1.0.0-rc.16\n\t */\n\tget productSwitchDomRef(): HTMLElement | null {\n\t\treturn this.shadowRoot!.querySelector<HTMLElement>(`*[data-ui5-stable=\"product-switch\"]`);\n\t}\n\n\t/**\n\t * Returns all items that will be placed in the right of the bar as icons / dom elements.\n\t * @param showOverflowButton Determines if overflow button should be visible (not overflowing)\n\t */\n\t_getAllItems(showOverflowButton: boolean) {\n\t\tlet domOrder = -1;\n\n\t\tconst items: Array<IShelBarItemInfo> = [\n\t\t\t{\n\t\t\t\ticon: \"search\",\n\t\t\t\ttext: this._searchText,\n\t\t\t\tclasses: `${this.searchField.length ? \"\" : \"ui5-shellbar-invisible-button\"} ui5-shellbar-search-button ui5-shellbar-button`,\n\t\t\t\tpriority: 4,\n\t\t\t\tdomOrder: this.searchField.length ? (++domOrder) : -1,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: this.searchField.length ? 1 : -10,\n\t\t\t\t},\n\t\t\t\tid: `${this._id}-item-${1}`,\n\t\t\t\tpress: this._handleSearchIconPress.bind(this),\n\t\t\t\tshow: !!this.searchField.length,\n\t\t\t},\n\t\t\t...this.items.map((item: ShellBarItem) => {\n\t\t\t\titem._getRealDomRef = () => this.getDomRef()!.querySelector(`*[data-ui5-stable=${item.stableDomRef}]`)!;\n\t\t\t\treturn {\n\t\t\t\t\ticon: item.icon,\n\t\t\t\t\tid: item._id,\n\t\t\t\t\tcount: item.count || undefined,\n\t\t\t\t\trefItemid: item._id,\n\t\t\t\t\ttext: item.text,\n\t\t\t\t\tclasses: \"ui5-shellbar-custom-item ui5-shellbar-button\",\n\t\t\t\t\tpriority: 1,\n\t\t\t\t\tdomOrder: (++domOrder),\n\t\t\t\t\tstyles: {\n\t\t\t\t\t\torder: 2,\n\t\t\t\t\t},\n\t\t\t\t\tshow: true,\n\t\t\t\t\tpress: this._handleCustomActionPress.bind(this),\n\t\t\t\t\tcustom: true,\n\t\t\t\t\ttitle: item.title,\n\t\t\t\t\tstableDomRef: item.stableDomRef,\n\t\t\t\t};\n\t\t\t}),\n\t\t\t{\n\t\t\t\ticon: \"bell\",\n\t\t\t\ttext: this._notificationsText,\n\t\t\t\tclasses: `${this.showNotifications ? \"\" : \"ui5-shellbar-invisible-button\"} ui5-shellbar-bell-button ui5-shellbar-button`,\n\t\t\t\tpriority: 3,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: this.showNotifications ? 3 : -10,\n\t\t\t\t},\n\t\t\t\tid: `${this._id}-item-${2}`,\n\t\t\t\tshow: this.showNotifications,\n\t\t\t\tdomOrder: this.showNotifications ? (++domOrder) : -1,\n\t\t\t\tpress: this._handleNotificationsPress.bind(this),\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: \"overflow\",\n\t\t\t\ttext: \"Overflow\",\n\t\t\t\tclasses: `${showOverflowButton ? \"\" : \"ui5-shellbar-hidden-button\"} ui5-shellbar-overflow-button-shown ui5-shellbar-overflow-button ui5-shellbar-button`,\n\t\t\t\tpriority: 5,\n\t\t\t\torder: 4,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: showOverflowButton ? 4 : -1,\n\t\t\t\t},\n\t\t\t\tdomOrder: showOverflowButton ? (++domOrder) : -1,\n\t\t\t\tid: `${this.id}-item-${5}`,\n\t\t\t\tpress: this._handleOverflowPress.bind(this),\n\t\t\t\tshow: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\ttext: \"Person\",\n\t\t\t\tclasses: `${this.hasProfile ? \"\" : \"ui5-shellbar-invisible-button\"} ui5-shellbar-image-button ui5-shellbar-button`,\n\t\t\t\tpriority: 4,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: this.hasProfile ? 5 : -10,\n\t\t\t\t},\n\t\t\t\tprofile: true,\n\t\t\t\tid: `${this._id}-item-${3}`,\n\t\t\t\tdomOrder: this.hasProfile ? (++domOrder) : -1,\n\t\t\t\tshow: this.hasProfile,\n\t\t\t\tpress: this._handleProfilePress.bind(this),\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: \"grid\",\n\t\t\t\ttext: this._productsText,\n\t\t\t\tclasses: `${this.showProductSwitch ? \"\" : \"ui5-shellbar-invisible-button\"} ui5-shellbar-button ui5-shellbar-button-product-switch`,\n\t\t\t\tpriority: 2,\n\t\t\t\tstyles: {\n\t\t\t\t\torder: this.showProductSwitch ? 6 : -10,\n\t\t\t\t},\n\t\t\t\tid: `${this._id}-item-${4}`,\n\t\t\t\tshow: this.showProductSwitch,\n\t\t\t\tdomOrder: this.showProductSwitch ? (++domOrder) : -1,\n\t\t\t\tpress: this._handleProductSwitchPress.bind(this),\n\t\t\t},\n\t\t];\n\t\treturn items;\n\t}\n\n\t_updateItemsInfo(newItems: Array<IShelBarItemInfo>) {\n\t\tconst isDifferent = JSON.stringify(this._itemsInfo) !== JSON.stringify(newItems);\n\t\tif (isDifferent) {\n\t\t\tthis._itemsInfo = newItems;\n\t\t}\n\t}\n\n\t_updateClonedMenuItems() {\n\t\tthis._menuPopoverItems = [];\n\n\t\tthis.menuItems.forEach(item => {\n\t\t\t// clone the menuItem and remove the slot=\"menuItems\",\n\t\t\t// otherwise would not be slotted in the internal ui5-li\n\t\t\tconst clonedItem = item.cloneNode(true) as HTMLElement;\n\t\t\tclonedItem.removeAttribute(\"slot\");\n\n\t\t\tthis._menuPopoverItems.push(clonedItem);\n\t\t});\n\t}\n\n\t_observeMenuItems() {\n\t\tthis.menuItems.forEach(item => {\n\t\t\tthis.menuItemsObserver.observe(item, {\n\t\t\t\tcharacterData: true,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tattributes: true,\n\t\t\t});\n\t\t});\n\t}\n\n\tasync _getResponsivePopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\tthis.overflowPopover = staticAreaItem!.querySelector<Popover>(\".ui5-shellbar-overflow-popover\");\n\t\tthis.menuPopover = staticAreaItem!.querySelector<Popover>(\".ui5-shellbar-menu-popover\");\n\t}\n\n\tasync _getOverflowPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-shellbar-overflow-popover\");\n\t}\n\n\tasync _getMenuPopover() {\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem!.querySelector<Popover>(\".ui5-shellbar-menu-popover\");\n\t}\n\n\tisIconHidden(name: string) {\n\t\tconst itemInfo = this._itemsInfo.find(item => item.icon === name);\n\n\t\tif (!itemInfo) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn itemInfo.classes.indexOf(\"ui5-shellbar-hidden-button\") !== -1;\n\t}\n\n\tget classes(): ClassMap {\n\t\treturn {\n\t\t\twrapper: {\n\t\t\t\t\"ui5-shellbar-root\": true,\n\t\t\t\t\"ui5-shellbar-with-searchfield\": this.hasSearchField,\n\t\t\t},\n\t\t\tbutton: {\n\t\t\t\t\"ui5-shellbar-menu-button--interactive\": this.hasMenuItems,\n\t\t\t\t\"ui5-shellbar-menu-button\": true,\n\t\t\t},\n\t\t\titems: {\n\t\t\t\tnotification: {\n\t\t\t\t\t\"ui5-shellbar-hidden-button\": this.isIconHidden(\"bell\"),\n\t\t\t\t},\n\t\t\t\tproduct: {\n\t\t\t\t\t\"ui5-shellbar-hidden-button\": this.isIconHidden(\"grid\"),\n\t\t\t\t},\n\t\t\t\tsearch: {\n\t\t\t\t\t\"ui5-shellbar-hidden-button\": this.isIconHidden(\"search\"),\n\t\t\t\t},\n\t\t\t\toverflow: {\n\t\t\t\t\t\"ui5-shellbar-hidden-button\": this.isIconHidden(\"overflow\"),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\titems: {\n\t\t\t\tnotification: {\n\t\t\t\t\t\"order\": this.isIconHidden(\"bell\") ? \"-1\" : \"3\",\n\t\t\t\t},\n\t\t\t\toverflow: {\n\t\t\t\t\t\"order\": this.isIconHidden(\"overflow\") ? \"-1\" : \"4\",\n\t\t\t\t},\n\t\t\t\tprofile: {\n\t\t\t\t\t\"order\": this.hasProfile ? \"5\" : \"-1\",\n\t\t\t\t},\n\t\t\t\tproduct: {\n\t\t\t\t\t\"order\": this.isIconHidden(\"grid\") ? \"-1\" : \"6\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tsearchField: {\n\t\t\t\t\"display\": this.correctSearchFieldStyles,\n\t\t\t},\n\t\t};\n\t}\n\n\tget correctSearchFieldStyles() {\n\t\tif (this.showSearchField) {\n\t\t\treturn \"flex\";\n\t\t}\n\n\t\treturn \"none\";\n\t}\n\n\tget customItemsInfo() {\n\t\treturn this._itemsInfo.filter(itemInfo => !!itemInfo.custom);\n\t}\n\n\tget hasLogo() {\n\t\treturn !!this.logo.length;\n\t}\n\n\tget showLogoInMenuButton() {\n\t\treturn this.hasLogo && this.breakpointSize === \"S\";\n\t}\n\n\tget showTitleInMenuButton() {\n\t\treturn this.primaryTitle && !(this.showLogoInMenuButton);\n\t}\n\n\tget showMenuButton() {\n\t\treturn this.primaryTitle || this.showLogoInMenuButton;\n\t}\n\n\tget popoverHorizontalAlign() {\n\t\treturn this.effectiveDir === \"rtl\" ? \"Left\" : \"Right\";\n\t}\n\n\tget hasSearchField() {\n\t\treturn !!this.searchField.length;\n\t}\n\n\tget hasProfile() {\n\t\treturn !!this.profile.length;\n\t}\n\n\tget hasMenuItems() {\n\t\treturn this.menuItems.length > 0;\n\t}\n\n\tget _shellbarText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_LABEL);\n\t}\n\n\tget _logoText() {\n\t\treturn this.accessibilityTexts.logoTitle || ShellBar.i18nBundle.getText(SHELLBAR_LOGO);\n\t}\n\n\tget _copilotText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_COPILOT);\n\t}\n\n\tget _notificationsText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_NOTIFICATIONS, this.notificationsCount);\n\t}\n\n\tget _cancelBtnText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_CANCEL);\n\t}\n\n\tget _showFullWidthSearch() {\n\t\tconst size = this._handleBarBreakpoints();\n\t\tconst searchBtnHidden = !!this.shadowRoot!.querySelector<Button>(\".ui5-shellbar-search-button.ui5-shellbar-hidden-button\");\n\n\t\treturn ((size === \"S\") || searchBtnHidden);\n\t}\n\n\tget _profileText() {\n\t\treturn this.accessibilityTexts.profileButtonTitle || ShellBar.i18nBundle.getText(SHELLBAR_PROFILE);\n\t}\n\n\tget _productsText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_PRODUCTS);\n\t}\n\n\tget _searchText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_SEARCH);\n\t}\n\n\tget _overflowText() {\n\t\treturn ShellBar.i18nBundle.getText(SHELLBAR_OVERFLOW);\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\tnotifications: {\n\t\t\t\t\"title\": this._notificationsText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._notificationsHasPopup,\n\t\t\t\t},\n\t\t\t},\n\t\t\tprofile: {\n\t\t\t\t\"title\": this._profileText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._profileHasPopup,\n\t\t\t\t},\n\t\t\t},\n\t\t\tproducts: {\n\t\t\t\t\"title\": this._productsText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._productsHasPopup,\n\t\t\t\t},\n\t\t\t},\n\t\t\tsearch: {\n\t\t\t\t\"title\": this._searchText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._searchHasPopup,\n\t\t\t\t\texpanded: this.showSearchField,\n\t\t\t\t},\n\t\t\t},\n\t\t\toverflow: {\n\t\t\t\t\"title\": this._overflowText,\n\t\t\t\t\"accessibilityAttributes\": {\n\t\t\t\t\thasPopup: this._overflowHasPopup,\n\t\t\t\t\texpanded: this._overflowPopoverExpanded,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t}\n\n\tget _notificationsHasPopup() {\n\t\tconst notificationsAccAttributes = this.accessibilityAttributes.notifications;\n\t\treturn notificationsAccAttributes ? notificationsAccAttributes.ariaHasPopup : null;\n\t}\n\n\tget _profileHasPopup() {\n\t\tconst profileAccAttributes = this.accessibilityAttributes.profile;\n\t\treturn profileAccAttributes ? profileAccAttributes.ariaHasPopup : null;\n\t}\n\n\tget _productsHasPopup() {\n\t\tconst productsAccAttributes = this.accessibilityAttributes.product;\n\t\treturn productsAccAttributes ? productsAccAttributes.ariaHasPopup : null;\n\t}\n\n\tget _searchHasPopup() {\n\t\tconst searcAccAttributes = this.accessibilityAttributes.search;\n\t\treturn searcAccAttributes ? searcAccAttributes.ariaHasPopup : null;\n\t}\n\n\tget _overflowHasPopup() {\n\t\tconst overflowAccAttributes = this.accessibilityAttributes.overflow;\n\t\treturn overflowAccAttributes ? overflowAccAttributes.ariaHasPopup : HasPopup.Menu;\n\t}\n\n\tget accLogoRole() {\n\t\treturn this.accessibilityRoles.logoRole || \"button\";\n\t}\n\n\tstatic async onDefine() {\n\t\tShellBar.i18nBundle = await getI18nBundle(\"@ui5/webcomponents-fiori\");\n\t}\n}\n\nShellBar.define();\n\nexport default ShellBar;\n\nexport type {\n\tShellBarNotificationsClickEventDetail,\n\tShellBarProfileClickEventDetail,\n\tShellBarProductSwitchClickEventDetail,\n\tShellBarLogoClickEventDetail,\n\tShellBarCoPilotClickEventDetail,\n\tShellBarMenuItemClickEventDetail,\n};\n"]}
|
package/dist/ShellBarItem.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
2
2
|
type ShellBarItemClickEventDetail = {
|
|
3
3
|
targetRef: HTMLElement;
|
|
4
4
|
};
|
|
5
|
+
/**
|
|
6
|
+
* Interface for components that may be slotted inside <code>ui5-shellbar</code> as items
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
5
10
|
/**
|
|
6
11
|
* @class
|
|
7
12
|
* The <code>ui5-shellbar-item</code> represents a custom item, that
|
|
@@ -11,20 +16,14 @@ type ShellBarItemClickEventDetail = {
|
|
|
11
16
|
* <code>import "@ui5/webcomponents-fiori/dist/ShellBarItem";</code>
|
|
12
17
|
*
|
|
13
18
|
* @constructor
|
|
14
|
-
* @
|
|
15
|
-
* @alias sap.ui.webc.fiori.ShellBarItem
|
|
16
|
-
* @extends sap.ui.webc.base.UI5Element
|
|
19
|
+
* @extends UI5Element
|
|
17
20
|
* @abstract
|
|
18
|
-
* @tagname ui5-shellbar-item
|
|
19
|
-
* @implements sap.ui.webc.fiori.IShellBarItem
|
|
20
21
|
* @public
|
|
21
22
|
*/
|
|
22
23
|
declare class ShellBarItem extends UI5Element {
|
|
23
24
|
/**
|
|
24
25
|
* Defines the name of the item's icon.
|
|
25
|
-
* @
|
|
26
|
-
* @defaultvalue ""
|
|
27
|
-
* @name sap.ui.webc.fiori.ShellBarItem.prototype.icon
|
|
26
|
+
* @default ""
|
|
28
27
|
* @public
|
|
29
28
|
*/
|
|
30
29
|
icon: string;
|
|
@@ -32,17 +31,13 @@ declare class ShellBarItem extends UI5Element {
|
|
|
32
31
|
* Defines the item text.
|
|
33
32
|
* <br><br>
|
|
34
33
|
* <b>Note:</b> The text is only displayed inside the overflow popover list view.
|
|
35
|
-
* @
|
|
36
|
-
* @defaultvalue ""
|
|
37
|
-
* @name sap.ui.webc.fiori.ShellBarItem.prototype.text
|
|
34
|
+
* @default ""
|
|
38
35
|
* @public
|
|
39
36
|
*/
|
|
40
37
|
text: string;
|
|
41
38
|
/**
|
|
42
39
|
* Defines the count displayed in the top-right corner.
|
|
43
|
-
* @
|
|
44
|
-
* @defaultValue ""
|
|
45
|
-
* @name sap.ui.webc.fiori.ShellBarItem.prototype.count
|
|
40
|
+
* @default ""
|
|
46
41
|
* @since 1.0.0-rc.6
|
|
47
42
|
* @public
|
|
48
43
|
*/
|
package/dist/ShellBarItem.js
CHANGED
|
@@ -8,6 +8,11 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
|
|
|
8
8
|
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
|
|
9
9
|
import event from "@ui5/webcomponents-base/dist/decorators/event.js";
|
|
10
10
|
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
|
|
11
|
+
/**
|
|
12
|
+
* Interface for components that may be slotted inside <code>ui5-shellbar</code> as items
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
11
16
|
/**
|
|
12
17
|
* @class
|
|
13
18
|
* The <code>ui5-shellbar-item</code> represents a custom item, that
|
|
@@ -17,12 +22,8 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
|
|
|
17
22
|
* <code>import "@ui5/webcomponents-fiori/dist/ShellBarItem";</code>
|
|
18
23
|
*
|
|
19
24
|
* @constructor
|
|
20
|
-
* @
|
|
21
|
-
* @alias sap.ui.webc.fiori.ShellBarItem
|
|
22
|
-
* @extends sap.ui.webc.base.UI5Element
|
|
25
|
+
* @extends UI5Element
|
|
23
26
|
* @abstract
|
|
24
|
-
* @tagname ui5-shellbar-item
|
|
25
|
-
* @implements sap.ui.webc.fiori.IShellBarItem
|
|
26
27
|
* @public
|
|
27
28
|
*/
|
|
28
29
|
let ShellBarItem = class ShellBarItem extends UI5Element {
|
|
@@ -49,7 +50,6 @@ ShellBarItem = __decorate([
|
|
|
49
50
|
/**
|
|
50
51
|
* Fired, when the item is pressed.
|
|
51
52
|
*
|
|
52
|
-
* @event sap.ui.webc.fiori.ShellBarItem#click
|
|
53
53
|
* @allowPreventDefault
|
|
54
54
|
* @param {HTMLElement} targetRef DOM ref of the clicked element
|
|
55
55
|
* @public
|
package/dist/ShellBarItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellBarItem.js","sourceRoot":"","sources":["../src/ShellBarItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAMrF
|
|
1
|
+
{"version":3,"file":"ShellBarItem.js","sourceRoot":"","sources":["../src/ShellBarItem.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AAMrF;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AAeH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IA4BpC,IAAI,YAAY;QACf,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,iBAAiB,CAAC;IAC5E,CAAC;IAED,cAAc,CAAC,CAAa;QAC3B,OAAO,IAAI,CAAC,SAAS,CAA+B,OAAO,EAAE;YAC5D,SAAS,EAAG,CAAC,CAAC,MAAsB;SACpC,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;CACD,CAAA;AA9BA;IADC,QAAQ,EAAE;0CACG;AAUd;IADC,QAAQ,EAAE;0CACG;AASd;IADC,QAAQ,EAAE;2CACI;AA1BV,YAAY;IAdjB,aAAa,CAAC,mBAAmB,CAAC;IACnC;;;;;;OAMG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,MAAM,EAAE;YACP,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;SAChC;KACD,CAAC;GAEI,YAAY,CAqCjB;AAED,YAAY,CAAC,MAAM,EAAE,CAAC;AAEtB,eAAe,YAAY,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\n\ntype ShellBarItemClickEventDetail = {\n\ttargetRef: HTMLElement,\n};\n\n/**\n * Interface for components that may be slotted inside <code>ui5-shellbar</code> as items\n *\n * @public\n */\n\n/**\n * @class\n * The <code>ui5-shellbar-item</code> represents a custom item, that\n * might be added to the <code>ui5-shellbar</code>.\n * <br><br>\n * <h3>ES6 Module Import</h3>\n * <code>import \"@ui5/webcomponents-fiori/dist/ShellBarItem\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @abstract\n * @public\n */\n@customElement(\"ui5-shellbar-item\")\n/**\n * Fired, when the item is pressed.\n *\n * @allowPreventDefault\n * @param {HTMLElement} targetRef DOM ref of the clicked element\n * @public\n */\n@event(\"click\", {\n\tdetail: {\n\t\ttargetRef: { type: HTMLElement },\n\t},\n})\n\nclass ShellBarItem extends UI5Element {\n\t/**\n\t * Defines the name of the item's icon.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ticon!: string;\n\n\t/**\n\t * Defines the item text.\n * <br><br>\n * <b>Note:</b> The text is only displayed inside the overflow popover list view.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\ttext!: string;\n\n\t/**\n\t * Defines the count displayed in the top-right corner.\n\t * @default \"\"\n\t * @since 1.0.0-rc.6\n\t * @public\n\t */\n\t@property()\n\tcount!: string;\n\n\tget stableDomRef() {\n\t\treturn this.getAttribute(\"stable-dom-ref\") || `${this._id}-stable-dom-ref`;\n\t}\n\n\tfireClickEvent(e: MouseEvent) {\n\t\treturn this.fireEvent<ShellBarItemClickEventDetail>(\"click\", {\n\t\t\ttargetRef: (e.target as HTMLElement),\n\t\t}, true);\n\t}\n}\n\nShellBarItem.define();\n\nexport default ShellBarItem;\n\nexport type { ShellBarItemClickEventDetail };\n"]}
|