@ui5/webcomponents-fiori 2.23.0-rc.2 → 2.23.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.
Files changed (123) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/HeroBanner.d.ts +147 -0
  4. package/dist/HeroBanner.js +165 -0
  5. package/dist/HeroBanner.js.map +1 -0
  6. package/dist/HeroBannerTemplate.d.ts +2 -0
  7. package/dist/HeroBannerTemplate.js +17 -0
  8. package/dist/HeroBannerTemplate.js.map +1 -0
  9. package/dist/NotificationListItem.d.ts +0 -1
  10. package/dist/NotificationListItem.js +2 -3
  11. package/dist/NotificationListItem.js.map +1 -1
  12. package/dist/ShellBar.d.ts +0 -1
  13. package/dist/ShellBar.js +2 -11
  14. package/dist/ShellBar.js.map +1 -1
  15. package/dist/ShellBarTemplate.js +1 -1
  16. package/dist/ShellBarTemplate.js.map +1 -1
  17. package/dist/bundle.esm.js +1 -0
  18. package/dist/bundle.esm.js.map +1 -1
  19. package/dist/css/themes/HeroBanner.css +1 -0
  20. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  21. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  22. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  23. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  24. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  25. package/dist/css/themes/sap_horizon_auto/parameters-bundle.css +6 -0
  26. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +6 -0
  27. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +6 -0
  28. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +6 -0
  29. package/dist/css/themes/sap_horizon_hc_auto/parameters-bundle.css +6 -0
  30. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +6 -0
  31. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +6 -0
  32. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +6 -0
  33. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +6 -0
  34. package/dist/custom-elements-internal.json +381 -136
  35. package/dist/custom-elements.json +269 -4
  36. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  37. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  38. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  39. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  40. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  41. package/dist/generated/assets/themes/sap_horizon_auto/parameters-bundle.css.json +1 -1
  42. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  43. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  44. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  45. package/dist/generated/assets/themes/sap_horizon_hc_auto/parameters-bundle.css.json +1 -1
  46. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  47. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  48. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  49. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  50. package/dist/generated/themes/HeroBanner.css.d.ts +2 -0
  51. package/dist/generated/themes/HeroBanner.css.js +8 -0
  52. package/dist/generated/themes/HeroBanner.css.js.map +1 -0
  53. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  54. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  55. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  56. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  57. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  58. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  59. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  60. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  61. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  62. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  63. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  64. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  65. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  66. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  67. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  68. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.d.ts +1 -1
  69. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js +6 -0
  70. package/dist/generated/themes/sap_horizon_auto/parameters-bundle.css.js.map +1 -1
  71. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  72. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +6 -0
  73. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  74. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.d.ts +1 -1
  75. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +6 -0
  76. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  77. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.d.ts +1 -1
  78. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +6 -0
  79. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  80. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.d.ts +1 -1
  81. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js +6 -0
  82. package/dist/generated/themes/sap_horizon_hc_auto/parameters-bundle.css.js.map +1 -1
  83. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  84. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +6 -0
  85. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  86. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.d.ts +1 -1
  87. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +6 -0
  88. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  89. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  90. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +6 -0
  91. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  92. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.d.ts +1 -1
  93. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +6 -0
  94. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  95. package/dist/types/HeroBannerActionsPlacement.d.ts +20 -0
  96. package/dist/types/HeroBannerActionsPlacement.js +22 -0
  97. package/dist/types/HeroBannerActionsPlacement.js.map +1 -0
  98. package/dist/types/HeroBannerColumnsRatio.d.ts +21 -0
  99. package/dist/types/HeroBannerColumnsRatio.js +23 -0
  100. package/dist/types/HeroBannerColumnsRatio.js.map +1 -0
  101. package/dist/types/HeroBannerHeaderBlockPlacement.d.ts +20 -0
  102. package/dist/types/HeroBannerHeaderBlockPlacement.js +22 -0
  103. package/dist/types/HeroBannerHeaderBlockPlacement.js.map +1 -0
  104. package/dist/vscode.html-custom-data.json +32 -0
  105. package/dist/web-types.json +104 -1
  106. package/package.json +7 -7
  107. package/src/HeroBannerTemplate.tsx +65 -0
  108. package/src/ShellBarTemplate.tsx +1 -1
  109. package/src/themes/HeroBanner.css +359 -0
  110. package/src/themes/base/HeroBanner-parameters.css +8 -0
  111. package/src/themes/sap_fiori_3/parameters-bundle.css +1 -0
  112. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +1 -0
  113. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -0
  114. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -0
  115. package/src/themes/sap_horizon/HeroBanner-parameters.css +4 -0
  116. package/src/themes/sap_horizon/parameters-bundle.css +2 -0
  117. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -0
  118. package/src/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -0
  119. package/src/themes/sap_horizon_exp/parameters-bundle.css +2 -0
  120. package/src/themes/sap_horizon_hcb/parameters-bundle.css +1 -0
  121. package/src/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -0
  122. package/src/themes/sap_horizon_hcw/parameters-bundle.css +1 -0
  123. package/src/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -0
@@ -0,0 +1,147 @@
1
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
+ import type { Slot, DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
3
+ import type HeroBannerColumnsRatio from "./types/HeroBannerColumnsRatio.js";
4
+ import type HeroBannerActionsPlacement from "./types/HeroBannerActionsPlacement.js";
5
+ import type HeroBannerHeaderBlockPlacement from "./types/HeroBannerHeaderBlockPlacement.js";
6
+ /**
7
+ * @class
8
+ *
9
+ * ### Overview
10
+ *
11
+ * The `ui5-hero-banner` is a flexible, full-width banner designed for placement at the top of a page.
12
+ * It provides a personalized greeting and quick access to key information or actions.
13
+ *
14
+ * ### Structure
15
+ *
16
+ * The HeroBanner consists of the following building blocks:
17
+ *
18
+ * - **Banner Canvas** - the visual base with a background color, optional background image and shadow.
19
+ * - **Overline** (optional) - contextual text at the top, e.g. the current date or a status message.
20
+ * - **Header** (optional) - the main greeting header below the overline, e.g. "Hello, John".
21
+ * - **Free Slots** (optional) - customizable content areas that can contain KPI cards, search components, text, buttons, etc.
22
+ *
23
+ * The banner is not sticky — it scrolls away with the page content when the user scrolls down.
24
+ *
25
+ * ### Usage
26
+ *
27
+ * Place the `ui5-hero-banner` at the top of a page to welcome the user and surface relevant
28
+ * information or shortcuts at a glance.
29
+ *
30
+ * The hero banner itself is non-interactive. However, interactive elements such as buttons, cards,
31
+ * or search fields can be placed inside the free content slots and will follow their own
32
+ * interactive states.
33
+ *
34
+ * ### Responsive Behavior
35
+ *
36
+ * The hero banner adapts to different screen sizes:
37
+ * - On smaller screens, split layouts (Equal, FirstWider) collapse to a single stacked column.
38
+ * - The heading text wraps to multiple lines as needed.
39
+ * - Buttons in the headerAction slot will wrap.
40
+ * - On screens ≤1024px, the header text is wrapped to a maximum of 3 lines.
41
+ *
42
+ * ### ES6 Module Import
43
+ *
44
+ * `import "@ui5/webcomponents-fiori/dist/HeroBanner.js";`
45
+ *
46
+ * @constructor
47
+ * @extends UI5Element
48
+ * @public
49
+ * @since 2.23.0
50
+ * @experimental
51
+ * @csspart canvas - Used to style the banner canvas container
52
+ * @csspart content - Used to style the content area of the banner
53
+ * @csspart header - Used to style the header area (salutation, date, header actions)
54
+ * @csspart startContent - Used to style the start (default) content block
55
+ * @csspart endContent - Used to style the end content block
56
+ */
57
+ declare class HeroBanner extends UI5Element {
58
+ /**
59
+ * Defines the header text displayed in the hero banner.
60
+ *
61
+ * This is the main greeting header, typically a personalized message
62
+ * such as "Hello, John".
63
+ *
64
+ * @default undefined
65
+ * @public
66
+ */
67
+ headerText?: string;
68
+ /**
69
+ * Defines text displayed above the heading as an overline.
70
+ * Can be used to show the current date, a status message, or any other relevant contextual information.
71
+ *
72
+ * @default undefined
73
+ * @public
74
+ */
75
+ overlineText?: string;
76
+ /**
77
+ * Defines the ratio between the two content columns inside the hero banner.
78
+ *
79
+ * Takes effect only when `endContent` is provided. When no `endContent` is present, the content spans the full width (single column).
80
+ *
81
+ * - **Equal** - Two equal columns. Both content blocks share the available width equally.
82
+ * On smaller screens, both slots stack vertically.
83
+ * - **FirstWider** - Two unequal columns. The start content takes two-thirds of the width, the end content one-third.
84
+ * On smaller screens, both slots stack vertically.
85
+ *
86
+ * @default "FirstWider"
87
+ * @public
88
+ */
89
+ columnsRatio: `${HeroBannerColumnsRatio}`;
90
+ /**
91
+ * Defines the first (default) free content block of the hero banner.
92
+ *
93
+ * This is the default slot — content placed directly inside `<ui5-hero-banner>`
94
+ * without a slot attribute lands here.
95
+ * Can contain KPI cards, search input fields, text, buttons, and more.
96
+ *
97
+ * @public
98
+ */
99
+ startContent: DefaultSlot<HTMLElement>;
100
+ /**
101
+ * Defines the second free content block of the hero banner.
102
+ *
103
+ * Used alongside `startContent` when `columnsRatio` is set (`Equal`, `FirstWider`).
104
+ * Can contain cards, buttons, and other interactive elements.
105
+ *
106
+ * @public
107
+ */
108
+ endContent: Slot<HTMLElement>;
109
+ /**
110
+ * Defines action buttons displayed to the right of the header area.
111
+ * Typically used to display actions buttons in the top right corner.
112
+ *
113
+ * Can contain buttons, links, or other interactive elements that provide
114
+ * quick access to relevant actions directly from the hero banner header.
115
+ *
116
+ * @public
117
+ */
118
+ actions: Slot<HTMLElement>;
119
+ /**
120
+ * Defines the placement of the actions slot within the hero banner header.
121
+ *
122
+ * - **TopEnd** (default) - Actions are displayed to the right of the header text, at the top of the header row.
123
+ * - **BottomStart** - Actions are displayed below the header text, left-aligned, regardless of `columnsRatio` or slot usage.
124
+ *
125
+ * @default "TopEnd"
126
+ * @public
127
+ */
128
+ actionsPlacement: `${HeroBannerActionsPlacement}`;
129
+ /**
130
+ * Defines the vertical placement of the header block within the content area.
131
+ *
132
+ * - **Top** (default) - Header block is placed at the top of the content area.
133
+ * - **Bottom** - Header block is pushed to the bottom of column 1. Only takes effect when `columnsRatio`
134
+ * is `Equal` or `FirstWider` and only `endContent` is provided (no default slot content).
135
+ * When `actionsPlacement` is also `BottomStart`, the `endContent` slot spans the full height.
136
+ *
137
+ * @default "Top"
138
+ * @public
139
+ */
140
+ headerBlockPlacement: `${HeroBannerHeaderBlockPlacement}`;
141
+ get _hasStartContent(): boolean;
142
+ get _hasEndContent(): boolean;
143
+ get _hasActions(): boolean;
144
+ get _headerAtBottom(): boolean;
145
+ get _actionsAsGridItem(): boolean;
146
+ }
147
+ export default HeroBanner;
@@ -0,0 +1,165 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
8
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
9
+ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
10
+ import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
11
+ import jsxRenderer from "@ui5/webcomponents-base/dist/renderer/JsxRenderer.js";
12
+ // Template
13
+ import HeroBannerTemplate from "./HeroBannerTemplate.js";
14
+ // Styles
15
+ import HeroBannerCss from "./generated/themes/HeroBanner.css.js";
16
+ /**
17
+ * @class
18
+ *
19
+ * ### Overview
20
+ *
21
+ * The `ui5-hero-banner` is a flexible, full-width banner designed for placement at the top of a page.
22
+ * It provides a personalized greeting and quick access to key information or actions.
23
+ *
24
+ * ### Structure
25
+ *
26
+ * The HeroBanner consists of the following building blocks:
27
+ *
28
+ * - **Banner Canvas** - the visual base with a background color, optional background image and shadow.
29
+ * - **Overline** (optional) - contextual text at the top, e.g. the current date or a status message.
30
+ * - **Header** (optional) - the main greeting header below the overline, e.g. "Hello, John".
31
+ * - **Free Slots** (optional) - customizable content areas that can contain KPI cards, search components, text, buttons, etc.
32
+ *
33
+ * The banner is not sticky — it scrolls away with the page content when the user scrolls down.
34
+ *
35
+ * ### Usage
36
+ *
37
+ * Place the `ui5-hero-banner` at the top of a page to welcome the user and surface relevant
38
+ * information or shortcuts at a glance.
39
+ *
40
+ * The hero banner itself is non-interactive. However, interactive elements such as buttons, cards,
41
+ * or search fields can be placed inside the free content slots and will follow their own
42
+ * interactive states.
43
+ *
44
+ * ### Responsive Behavior
45
+ *
46
+ * The hero banner adapts to different screen sizes:
47
+ * - On smaller screens, split layouts (Equal, FirstWider) collapse to a single stacked column.
48
+ * - The heading text wraps to multiple lines as needed.
49
+ * - Buttons in the headerAction slot will wrap.
50
+ * - On screens ≤1024px, the header text is wrapped to a maximum of 3 lines.
51
+ *
52
+ * ### ES6 Module Import
53
+ *
54
+ * `import "@ui5/webcomponents-fiori/dist/HeroBanner.js";`
55
+ *
56
+ * @constructor
57
+ * @extends UI5Element
58
+ * @public
59
+ * @since 2.23.0
60
+ * @experimental
61
+ * @csspart canvas - Used to style the banner canvas container
62
+ * @csspart content - Used to style the content area of the banner
63
+ * @csspart header - Used to style the header area (salutation, date, header actions)
64
+ * @csspart startContent - Used to style the start (default) content block
65
+ * @csspart endContent - Used to style the end content block
66
+ */
67
+ let HeroBanner = class HeroBanner extends UI5Element {
68
+ constructor() {
69
+ super(...arguments);
70
+ /**
71
+ * Defines the ratio between the two content columns inside the hero banner.
72
+ *
73
+ * Takes effect only when `endContent` is provided. When no `endContent` is present, the content spans the full width (single column).
74
+ *
75
+ * - **Equal** - Two equal columns. Both content blocks share the available width equally.
76
+ * On smaller screens, both slots stack vertically.
77
+ * - **FirstWider** - Two unequal columns. The start content takes two-thirds of the width, the end content one-third.
78
+ * On smaller screens, both slots stack vertically.
79
+ *
80
+ * @default "FirstWider"
81
+ * @public
82
+ */
83
+ this.columnsRatio = "FirstWider";
84
+ /**
85
+ * Defines the placement of the actions slot within the hero banner header.
86
+ *
87
+ * - **TopEnd** (default) - Actions are displayed to the right of the header text, at the top of the header row.
88
+ * - **BottomStart** - Actions are displayed below the header text, left-aligned, regardless of `columnsRatio` or slot usage.
89
+ *
90
+ * @default "TopEnd"
91
+ * @public
92
+ */
93
+ this.actionsPlacement = "TopEnd";
94
+ /**
95
+ * Defines the vertical placement of the header block within the content area.
96
+ *
97
+ * - **Top** (default) - Header block is placed at the top of the content area.
98
+ * - **Bottom** - Header block is pushed to the bottom of column 1. Only takes effect when `columnsRatio`
99
+ * is `Equal` or `FirstWider` and only `endContent` is provided (no default slot content).
100
+ * When `actionsPlacement` is also `BottomStart`, the `endContent` slot spans the full height.
101
+ *
102
+ * @default "Top"
103
+ * @public
104
+ */
105
+ this.headerBlockPlacement = "Top";
106
+ }
107
+ get _hasStartContent() {
108
+ return this.startContent.length > 0;
109
+ }
110
+ get _hasEndContent() {
111
+ return this.endContent.length > 0;
112
+ }
113
+ get _hasActions() {
114
+ return this.actions.length > 0;
115
+ }
116
+ // headerBlockPlacement="Bottom" only takes effect in split grid layouts with only endContent
117
+ get _headerAtBottom() {
118
+ return this.headerBlockPlacement === "Bottom"
119
+ && !!this.columnsRatio
120
+ && !this._hasStartContent
121
+ && this._hasEndContent;
122
+ }
123
+ // TopEnd actions must be a standalone grid item when the header is at the bottom,
124
+ // so they stay at the top of col 1 independently of the header position
125
+ get _actionsAsGridItem() {
126
+ return this._hasActions
127
+ && this.actionsPlacement !== "BottomStart"
128
+ && this._headerAtBottom;
129
+ }
130
+ };
131
+ __decorate([
132
+ property()
133
+ ], HeroBanner.prototype, "headerText", void 0);
134
+ __decorate([
135
+ property()
136
+ ], HeroBanner.prototype, "overlineText", void 0);
137
+ __decorate([
138
+ property()
139
+ ], HeroBanner.prototype, "columnsRatio", void 0);
140
+ __decorate([
141
+ slot({ type: HTMLElement, "default": true })
142
+ ], HeroBanner.prototype, "startContent", void 0);
143
+ __decorate([
144
+ slot()
145
+ ], HeroBanner.prototype, "endContent", void 0);
146
+ __decorate([
147
+ slot()
148
+ ], HeroBanner.prototype, "actions", void 0);
149
+ __decorate([
150
+ property()
151
+ ], HeroBanner.prototype, "actionsPlacement", void 0);
152
+ __decorate([
153
+ property()
154
+ ], HeroBanner.prototype, "headerBlockPlacement", void 0);
155
+ HeroBanner = __decorate([
156
+ customElement({
157
+ tag: "ui5-hero-banner",
158
+ renderer: jsxRenderer,
159
+ styles: HeroBannerCss,
160
+ template: HeroBannerTemplate,
161
+ })
162
+ ], HeroBanner);
163
+ HeroBanner.define();
164
+ export default HeroBanner;
165
+ //# sourceMappingURL=HeroBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../src/HeroBanner.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AACpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAO/E,WAAW;AACX,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,SAAS;AACT,OAAO,aAAa,MAAM,sCAAsC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAOH,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,UAAU;IAAnC;;QAuBC;;;;;;;;;;;;WAYG;QAEH,iBAAY,GAAgC,YAAY,CAAC;QAqCzD;;;;;;;;WAQG;QAEH,qBAAgB,GAAoC,QAAQ,CAAC;QAE7D;;;;;;;;;;WAUG;QAEH,yBAAoB,GAAwC,KAAK,CAAC;IA6BnE,CAAC;IA3BA,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,6FAA6F;IAC7F,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,oBAAoB,KAAK,QAAQ;eACzC,CAAC,CAAC,IAAI,CAAC,YAAY;eACnB,CAAC,IAAI,CAAC,gBAAgB;eACtB,IAAI,CAAC,cAAc,CAAC;IACzB,CAAC;IAED,kFAAkF;IAClF,wEAAwE;IACxE,IAAI,kBAAkB;QACrB,OAAO,IAAI,CAAC,WAAW;eACnB,IAAI,CAAC,gBAAgB,KAAK,aAAa;eACvC,IAAI,CAAC,eAAe,CAAC;IAC1B,CAAC;CACD,CAAA;AApHA;IADC,QAAQ,EAAE;8CACS;AAUpB;IADC,QAAQ,EAAE;gDACW;AAgBtB;IADC,QAAQ,EAAE;gDAC8C;AAYzD;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gDACL;AAWxC;IADC,IAAI,EAAE;8CACwB;AAY/B;IADC,IAAI,EAAE;2CACqB;AAY5B;IADC,QAAQ,EAAE;oDACkD;AAc7D;IADC,QAAQ,EAAE;wDACuD;AAlG7D,UAAU;IANf,aAAa,CAAC;QACd,GAAG,EAAE,iBAAiB;QACtB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,kBAAkB;KAC5B,CAAC;GACI,UAAU,CA+Hf;AAED,UAAU,CAAC,MAAM,EAAE,CAAC;AAEpB,eAAe,UAAU,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\nimport type HeroBannerColumnsRatio from \"./types/HeroBannerColumnsRatio.js\";\nimport type HeroBannerActionsPlacement from \"./types/HeroBannerActionsPlacement.js\";\nimport type HeroBannerHeaderBlockPlacement from \"./types/HeroBannerHeaderBlockPlacement.js\";\n\n// Template\nimport HeroBannerTemplate from \"./HeroBannerTemplate.js\";\n\n// Styles\nimport HeroBannerCss from \"./generated/themes/HeroBanner.css.js\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-hero-banner` is a flexible, full-width banner designed for placement at the top of a page.\n * It provides a personalized greeting and quick access to key information or actions.\n *\n * ### Structure\n *\n * The HeroBanner consists of the following building blocks:\n *\n * - **Banner Canvas** - the visual base with a background color, optional background image and shadow.\n * - **Overline** (optional) - contextual text at the top, e.g. the current date or a status message.\n * - **Header** (optional) - the main greeting header below the overline, e.g. \"Hello, John\".\n * - **Free Slots** (optional) - customizable content areas that can contain KPI cards, search components, text, buttons, etc.\n *\n * The banner is not sticky — it scrolls away with the page content when the user scrolls down.\n *\n * ### Usage\n *\n * Place the `ui5-hero-banner` at the top of a page to welcome the user and surface relevant\n * information or shortcuts at a glance.\n *\n * The hero banner itself is non-interactive. However, interactive elements such as buttons, cards,\n * or search fields can be placed inside the free content slots and will follow their own\n * interactive states.\n *\n * ### Responsive Behavior\n *\n * The hero banner adapts to different screen sizes:\n * - On smaller screens, split layouts (Equal, FirstWider) collapse to a single stacked column.\n * - The heading text wraps to multiple lines as needed.\n * - Buttons in the headerAction slot will wrap.\n * - On screens ≤1024px, the header text is wrapped to a maximum of 3 lines.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/HeroBanner.js\";`\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 2.23.0\n * @experimental\n * @csspart canvas - Used to style the banner canvas container\n * @csspart content - Used to style the content area of the banner\n * @csspart header - Used to style the header area (salutation, date, header actions)\n * @csspart startContent - Used to style the start (default) content block\n * @csspart endContent - Used to style the end content block\n */\n@customElement({\n\ttag: \"ui5-hero-banner\",\n\trenderer: jsxRenderer,\n\tstyles: HeroBannerCss,\n\ttemplate: HeroBannerTemplate,\n})\nclass HeroBanner extends UI5Element {\n\t/**\n\t * Defines the header text displayed in the hero banner.\n\t *\n\t * This is the main greeting header, typically a personalized message\n\t * such as \"Hello, John\".\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\theaderText?: string;\n\n\t/**\n\t * Defines text displayed above the heading as an overline.\n\t * Can be used to show the current date, a status message, or any other relevant contextual information.\n\t *\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\toverlineText?: string;\n\n\t/**\n\t * Defines the ratio between the two content columns inside the hero banner.\n\t *\n\t * Takes effect only when `endContent` is provided. When no `endContent` is present, the content spans the full width (single column).\n\t *\n\t * - **Equal** - Two equal columns. Both content blocks share the available width equally.\n\t * On smaller screens, both slots stack vertically.\n\t * - **FirstWider** - Two unequal columns. The start content takes two-thirds of the width, the end content one-third.\n\t * On smaller screens, both slots stack vertically.\n\t *\n\t * @default \"FirstWider\"\n\t * @public\n\t */\n\t@property()\n\tcolumnsRatio: `${HeroBannerColumnsRatio}` = \"FirstWider\";\n\n\t/**\n\t * Defines the first (default) free content block of the hero banner.\n\t *\n\t * This is the default slot — content placed directly inside `<ui5-hero-banner>`\n\t * without a slot attribute lands here.\n\t * Can contain KPI cards, search input fields, text, buttons, and more.\n\t *\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tstartContent!: DefaultSlot<HTMLElement>;\n\n\t/**\n\t * Defines the second free content block of the hero banner.\n\t *\n\t * Used alongside `startContent` when `columnsRatio` is set (`Equal`, `FirstWider`).\n\t * Can contain cards, buttons, and other interactive elements.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tendContent!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines action buttons displayed to the right of the header area.\n\t * Typically used to display actions buttons in the top right corner.\n\t *\n\t * Can contain buttons, links, or other interactive elements that provide\n\t * quick access to relevant actions directly from the hero banner header.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tactions!: Slot<HTMLElement>;\n\n\t/**\n\t * Defines the placement of the actions slot within the hero banner header.\n\t *\n\t * - **TopEnd** (default) - Actions are displayed to the right of the header text, at the top of the header row.\n\t * - **BottomStart** - Actions are displayed below the header text, left-aligned, regardless of `columnsRatio` or slot usage.\n\t *\n\t * @default \"TopEnd\"\n\t * @public\n\t */\n\t@property()\n\tactionsPlacement: `${HeroBannerActionsPlacement}` = \"TopEnd\";\n\n\t/**\n\t * Defines the vertical placement of the header block within the content area.\n\t *\n\t * - **Top** (default) - Header block is placed at the top of the content area.\n\t * - **Bottom** - Header block is pushed to the bottom of column 1. Only takes effect when `columnsRatio`\n\t * is `Equal` or `FirstWider` and only `endContent` is provided (no default slot content).\n\t * When `actionsPlacement` is also `BottomStart`, the `endContent` slot spans the full height.\n\t *\n\t * @default \"Top\"\n\t * @public\n\t */\n\t@property()\n\theaderBlockPlacement: `${HeroBannerHeaderBlockPlacement}` = \"Top\";\n\n\tget _hasStartContent() {\n\t\treturn this.startContent.length > 0;\n\t}\n\n\tget _hasEndContent() {\n\t\treturn this.endContent.length > 0;\n\t}\n\n\tget _hasActions() {\n\t\treturn this.actions.length > 0;\n\t}\n\n\t// headerBlockPlacement=\"Bottom\" only takes effect in split grid layouts with only endContent\n\tget _headerAtBottom() {\n\t\treturn this.headerBlockPlacement === \"Bottom\"\n\t\t\t&& !!this.columnsRatio\n\t\t\t&& !this._hasStartContent\n\t\t\t&& this._hasEndContent;\n\t}\n\n\t// TopEnd actions must be a standalone grid item when the header is at the bottom,\n\t// so they stay at the top of col 1 independently of the header position\n\tget _actionsAsGridItem() {\n\t\treturn this._hasActions\n\t\t\t&& this.actionsPlacement !== \"BottomStart\"\n\t\t\t&& this._headerAtBottom;\n\t}\n}\n\nHeroBanner.define();\n\nexport default HeroBanner;\n"]}
@@ -0,0 +1,2 @@
1
+ import type HeroBanner from "./HeroBanner.js";
2
+ export default function HeroBannerTemplate(this: HeroBanner): import("@ui5/webcomponents-base/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@ui5/webcomponents-base/jsx-runtime";
2
+ export default function HeroBannerTemplate() {
3
+ const actionsBottomStart = this.actionsPlacement === "BottomStart";
4
+ return (_jsx("div", { class: "ui5-banner-root", role: "banner", part: "canvas", children: _jsxs("div", { class: {
5
+ "ui5-banner-content": true,
6
+ "ui5-banner-columns-equal": this.columnsRatio === "Equal" && this._hasEndContent,
7
+ "ui5-banner-columns-first-wider": this.columnsRatio === "FirstWider" && this._hasEndContent,
8
+ }, part: "content", children: [_jsxs("div", { class: "ui5-banner-header", part: "header", children: [_jsxs("div", { class: "ui5-banner-header-text", children: [this.overlineText &&
9
+ _jsx("div", { class: "ui5-banner-overline", children: this.overlineText }), this.headerText &&
10
+ _jsx("h2", { class: "ui5-banner-heading", children: this.headerText }), actionsBottomStart && this._hasActions &&
11
+ _jsx("div", { class: "ui5-banner-actions ui5-banner-actions-bottom-start", children: _jsx("slot", { name: "actions" }) })] }), !actionsBottomStart && !this._actionsAsGridItem && this._hasActions &&
12
+ _jsx("div", { class: "ui5-banner-actions", children: _jsx("slot", { name: "actions" }) })] }), this._hasStartContent &&
13
+ _jsx("div", { class: "ui5-banner-block ui5-banner-block-start", part: "startContent", children: _jsx("slot", {}) }), this._hasEndContent &&
14
+ _jsx("div", { class: "ui5-banner-block ui5-banner-block-end", part: "endContent", children: _jsx("slot", { name: "endContent" }) }), this._actionsAsGridItem &&
15
+ _jsx("div", { class: "ui5-banner-actions ui5-banner-actions-grid-item", children: _jsx("slot", { name: "actions" }) })] }) }));
16
+ }
17
+ //# sourceMappingURL=HeroBannerTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroBannerTemplate.js","sourceRoot":"","sources":["../src/HeroBannerTemplate.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,kBAAkB;IACzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,KAAK,aAAa,CAAC;IAEnE,OAAO,CACN,cACC,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,YAEb,eAAK,KAAK,EAAE;gBACX,oBAAoB,EAAE,IAAI;gBAC1B,0BAA0B,EAAE,IAAI,CAAC,YAAY,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc;gBAChF,gCAAgC,EAAE,IAAI,CAAC,YAAY,KAAK,YAAY,IAAI,IAAI,CAAC,cAAc;aAC3F,EAAE,IAAI,EAAC,SAAS,aAChB,eAAK,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,QAAQ,aAC3C,eAAK,KAAK,EAAC,wBAAwB,aACjC,IAAI,CAAC,YAAY;oCACjB,cAAK,KAAK,EAAC,qBAAqB,YAC9B,IAAI,CAAC,YAAY,GACb,EAGN,IAAI,CAAC,UAAU;oCACf,aAAI,KAAK,EAAC,oBAAoB,YAC5B,IAAI,CAAC,UAAU,GACZ,EAGL,kBAAkB,IAAI,IAAI,CAAC,WAAW;oCACtC,cAAK,KAAK,EAAC,oDAAoD,YAC9D,eAAM,IAAI,EAAC,SAAS,GAAQ,GACvB,IAEF,EAEL,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,WAAW;4BACnE,cAAK,KAAK,EAAC,oBAAoB,YAC9B,eAAM,IAAI,EAAC,SAAS,GAAQ,GACvB,IAEF,EAEL,IAAI,CAAC,gBAAgB;oBACrB,cAAK,KAAK,EAAC,yCAAyC,EAAC,IAAI,EAAC,cAAc,YACvE,gBAAa,GACR,EAGN,IAAI,CAAC,cAAc;oBACnB,cAAK,KAAK,EAAC,uCAAuC,EAAC,IAAI,EAAC,YAAY,YACnE,eAAM,IAAI,EAAC,YAAY,GAAQ,GAC1B,EAGN,IAAI,CAAC,kBAAkB;oBACvB,cAAK,KAAK,EAAC,iDAAiD,YAC3D,eAAM,IAAI,EAAC,SAAS,GAAQ,GACvB,IAEF,GACD,CACN,CAAC;AACH,CAAC","sourcesContent":["import type HeroBanner from \"./HeroBanner.js\";\n\nexport default function HeroBannerTemplate(this: HeroBanner) {\n\tconst actionsBottomStart = this.actionsPlacement === \"BottomStart\";\n\n\treturn (\n\t\t<div\n\t\t\tclass=\"ui5-banner-root\"\n\t\t\trole=\"banner\"\n\t\t\tpart=\"canvas\"\n\t\t>\n\t\t\t<div class={{\n\t\t\t\t\"ui5-banner-content\": true,\n\t\t\t\t\"ui5-banner-columns-equal\": this.columnsRatio === \"Equal\" && this._hasEndContent,\n\t\t\t\t\"ui5-banner-columns-first-wider\": this.columnsRatio === \"FirstWider\" && this._hasEndContent,\n\t\t\t}} part=\"content\">\n\t\t\t\t<div class=\"ui5-banner-header\" part=\"header\">\n\t\t\t\t\t<div class=\"ui5-banner-header-text\">\n\t\t\t\t\t\t{this.overlineText &&\n\t\t\t\t\t\t\t<div class=\"ui5-banner-overline\">\n\t\t\t\t\t\t\t\t{this.overlineText}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t{this.headerText &&\n\t\t\t\t\t\t\t<h2 class=\"ui5-banner-heading\">\n\t\t\t\t\t\t\t\t{this.headerText}\n\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t{actionsBottomStart && this._hasActions &&\n\t\t\t\t\t\t\t<div class=\"ui5-banner-actions ui5-banner-actions-bottom-start\">\n\t\t\t\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{!actionsBottomStart && !this._actionsAsGridItem && this._hasActions &&\n\t\t\t\t\t\t<div class=\"ui5-banner-actions\">\n\t\t\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\n\t\t\t\t{this._hasStartContent &&\n\t\t\t\t\t<div class=\"ui5-banner-block ui5-banner-block-start\" part=\"startContent\">\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t{this._hasEndContent &&\n\t\t\t\t\t<div class=\"ui5-banner-block ui5-banner-block-end\" part=\"endContent\">\n\t\t\t\t\t\t<slot name=\"endContent\"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\n\t\t\t\t{this._actionsAsGridItem &&\n\t\t\t\t\t<div class=\"ui5-banner-actions ui5-banner-actions-grid-item\">\n\t\t\t\t\t\t<slot name=\"actions\"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -16,7 +16,6 @@ type NotificationListItemPressEventDetail = {
16
16
  item: NotificationListItem;
17
17
  };
18
18
  type NotificationListItemClickEventDetail = {
19
- item: NotificationListItem;
20
19
  originalEvent: Event;
21
20
  };
22
21
  /**
@@ -358,7 +358,7 @@ let NotificationListItem = NotificationListItem_1 = class NotificationListItem e
358
358
  // NotificationListItem will never be assigned to a variable of type ListItemBase
359
359
  // typescipt complains here, if that is the case, the parameter to the _press event handler could be a ListItemBase item,
360
360
  // but this is never the case, all components are used by their class and never assigned to a variable with a type of ListItemBase
361
- this.fireDecoratorEvent("click", { item: this, originalEvent: e });
361
+ this.fireDecoratorEvent("click", { originalEvent: e });
362
362
  this.fireDecoratorEvent("_press", { item: this });
363
363
  }
364
364
  onResize() {
@@ -437,9 +437,8 @@ NotificationListItem = NotificationListItem_1 = __decorate([
437
437
  /**
438
438
  * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.
439
439
  *
440
- * @since 2.22.0
440
+ * @since 2.23.0
441
441
  * @public
442
- * @param {NotificationListItem} item The activated item.
443
442
  * @param {Event} originalEvent The original event from the user interaction.
444
443
  */
445
444
  ,
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationListItem.js","sourceRoot":"","sources":["../src/NotificationListItem.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisSpace, isDelete, isF10Shift, isEnterShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ButtonAccessibilityAttributes } from \"@ui5/webcomponents/dist/Button.js\";\nimport type Link from \"@ui5/webcomponents/dist/Link.js\";\nimport WrappingType from \"@ui5/webcomponents/dist/types/WrappingType.js\";\nimport type Menu from \"@ui5/webcomponents/dist/Menu.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport NotificationListItemImportance from \"./types/NotificationListItemImportance.js\";\nimport NotificationListItemBase from \"./NotificationListItemBase.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n// Icons\nimport iconSysEnter2 from \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport iconAlert from \"@ui5/webcomponents-icons/dist/alert.js\";\nimport iconError from \"@ui5/webcomponents-icons/dist/error.js\";\nimport iconInformation from \"@ui5/webcomponents-icons/dist/information.js\";\n\n// Texts\nimport {\n\tNOTIFICATION_LIST_ITEM_READ,\n\tNOTIFICATION_LIST_ITEM_UNREAD,\n\tNOTIFICATION_LIST_ITEM_SHOW_MORE,\n\tNOTIFICATION_LIST_ITEM_SHOW_LESS,\n\tNOTIFICATION_LIST_ITEM_INFORMATION_STATUS_TXT,\n\tNOTIFICATION_LIST_ITEM_POSITIVE_STATUS_TXT,\n\tNOTIFICATION_LIST_ITEM_NEGATIVE_STATUS_TXT,\n\tNOTIFICATION_LIST_ITEM_CRITICAL_STATUS_TXT,\n\tNOTIFICATION_LIST_ITEM_MENU_BTN_TITLE,\n\tNOTIFICATION_LIST_ITEM_MORE_LINK_LABEL_FULL,\n\tNOTIFICATION_LIST_ITEM_MORE_LINK_LABEL_TRUNCATE,\n\tNOTIFICATION_LIST_ITEM_CLOSE_BTN_TITLE,\n\tNOTIFICATION_LIST_ITEM_IMPORTANT_TXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport NotificationListItemTemplate from \"./NotificationListItemTemplate.js\";\n\n// Styles\nimport NotificationListItemCss from \"./generated/themes/NotificationListItem.css.js\";\nimport IconDesign from \"@ui5/webcomponents/dist/types/IconDesign.js\";\n\ntype NotificationListItemCloseEventDetail = {\n\titem: HTMLElement,\n};\n\ntype NotificationListItemPressEventDetail = {\n\titem: NotificationListItem,\n};\n\ntype NotificationListItemClickEventDetail = {\n\titem: NotificationListItem,\n\toriginalEvent: Event,\n};\n\ntype Footnote = Record<string, any>;\n\n/**\n * Defines the icons name corresponding to the notification's status indicator.\n */\nconst ICON_PER_STATUS_NAME = {\n\t[ValueState.Negative]: iconError,\n\t[ValueState.Critical]: iconAlert,\n\t[ValueState.Positive]: iconSysEnter2,\n\t[ValueState.Information]: iconInformation,\n\t[ValueState.None]: \"\",\n};\n\n/**\n * Defines the icons design (color) corresponding to the notification's status indicator.\n */\nconst ICON_PER_STATUS_DESIGN = {\n\t[ValueState.Negative]: IconDesign.Negative,\n\t[ValueState.Critical]: IconDesign.Critical,\n\t[ValueState.Positive]: IconDesign.Positive,\n\t[ValueState.Information]: IconDesign.Information,\n\t[ValueState.None]: undefined,\n};\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-li-notification` is a type of list item, meant to display notifications.\n *\n * The component has a rich set of various properties that allows the user to set `avatar`, `menu`, `titleText`, descriptive `content`\n * and `footnotes` to fully describe a notification.\n *\n * The user can:\n *\n * - display a `Close` button\n * - can control whether the `titleText` and `description` should wrap or truncate\n * and display a `ShowMore` button to switch between less and more information\n * - add actions by using the `ui5-menu` component\n *\n * **Note:** Adding custom actions by using the `ui5-notification-action` component is deprecated as of version 2.0!\n *\n * ### Usage\n * The component should be used inside a `ui5-notification-list`.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * The user can use the following keyboard shortcuts to perform actions (such as select, delete):\n *\n * - [Enter] - select an item (trigger \"item-click\" event)\n * - [Delete] - close an item (trigger \"item-close\" event)\n *\n * #### Fast Navigation\n * This component provides a fast navigation using the following keyboard shortcuts:\n *\n * - [Shift] + [Enter] - 'More'/'Less' link will be triggered\n * - [Shift] + [F10] - 'Menu' (Actions) button will be triggered (clicked)\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/NotificationListItem.js\";`\n *\n * @constructor\n * @extends NotificationListItemBase\n * @since 1.0.0-rc.8\n * @public\n * @csspart title-text - Used to style the titleText of the notification list item\n */\n@customElement({\n\ttag: \"ui5-li-notification\",\n\tlanguageAware: true,\n\tstyles: [\n\t\tNotificationListItemCss,\n\t],\n\trenderer: jsxRenderer,\n\ttemplate: NotificationListItemTemplate,\n})\n\n@event(\"_press\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * @since 2.22.0\n * @public\n * @param {NotificationListItem} item The activated item.\n * @param {Event} originalEvent The original event from the user interaction.\n */\n@event(\"click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the `Close` button is pressed.\n * @param {HTMLElement} item the closed item.\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired when the `Close` button is pressed.\n * @param {HTMLElement} item the closed item.\n * @private\n */\n@event(\"_close\", {\n\tbubbles: true,\n})\n\nclass NotificationListItem extends NotificationListItemBase {\n\teventDetails!: NotificationListItemBase[\"eventDetails\"] & {\n\t\t_press: NotificationListItemPressEventDetail,\n\t\tclick: NotificationListItemClickEventDetail,\n\t\tclose: NotificationListItemCloseEventDetail,\n\t\t_close: NotificationListItemCloseEventDetail,\n\t}\n\t/**\n\t* Defines if the `titleText` and `description` should wrap,\n\t* they truncate by default.\n\t*\n\t* **Note:** by default the `titleText` and `description`,\n\t* and a `ShowMore/Less` button would be displayed.\n\t* @default \"None\"\n\t* @public\n\t* @since 1.0.0-rc.15\n\t*/\n\t@property()\n\twrappingType: `${WrappingType}` = \"None\";\n\n\t/**\n\t * Defines the status indicator of the item.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tstate: `${ValueState}` = \"None\"\n\n\t/**\n\t * Defines if the `Close` button would be displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowClose = false;\n\n\t/**\n\t * Defines the `Important` label of the item.\n\t * @default \"Standard\"\n\t * @public\n\t */\n\t@property()\n\timportance: `${NotificationListItemImportance}` = \"Standard\";\n\n\t/**\n\t* Defines the state of the `titleText` and `description`,\n\t* if less or more information is displayed.\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\t_showMorePressed = false;\n\n\t/**\n\t* Defines the visibility of the `showMore` button.\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\t_showMore = false;\n\n\t/**\n\t* Defines the avatar, displayed in the `ui5-li-notification`.\n\t*\n\t* **Note:** Consider using the `ui5-avatar` to display icons, initials or images.\n\t*\n\t* **Note:** In order to be complaint with the UX guidlines and for best experience,\n\t* we recommend using avatars with 2rem X 2rem in size (32px X 32px). In case you are using the `ui5-avatar`\n\t* you can set its `size` property to `XS` to get the required size - `<ui5-avatar size=\"XS\"></ui5-avatar>`.\n\t* @public\n\t*/\n\t@slot()\n\tavatar!: Slot<HTMLElement>;\n\n\t/**\n\t* Defines the menu, displayed in the `ui5-li-notification`.\n\t*\n\t* **Note:** Use this for implementing actions.\n\t*\n\t* **Note:** Should be used instead `u5-notification-action`, which is deprecated as of version 2.0.\n\t* @public\n\t*/\n\t@slot()\n\tmenu!: Slot<HTMLElement>;\n\n\t/**\n\t* Defines the elements, displayed in the footer of the of the component.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement, individualSlots: true })\n\tfootnotes!: Slot<HTMLElement>;\n\n\t/**\n\t* Defines the content of the `ui5-li-notification`,\n\t* usually a description of the notification.\n\t*\n\t* **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t* @public\n\t*/\n\t@slot({ type: Node, \"default\": true })\n\tdescription!: DefaultSlot<Node>;\n\n\t@query(\".ui5-nli-title-text\")\n\ttitleTextDOM?: HTMLElement;\n\n\t@query(\".ui5-nli-menu-btn\")\n\tmenuButtonDOM?: HTMLElement;\n\n\t@query(\".ui5-nli-description\")\n\tdescriptionDOM?: HTMLElement;\n\n\t_titleTextOverflowHeight: number;\n\t_descOverflowHeight: number;\n\t_onResizeBound: ResizeObserverCallback;\n\n\t_ariaLevel?: number;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// the titleText overflow height\n\t\tthis._titleTextOverflowHeight = 0;\n\n\t\t// the description overflow height\n\t\tthis._descOverflowHeight = 0;\n\n\t\t// the resize handler\n\t\tthis._onResizeBound = this.onResize.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tsuper.onEnterDOM();\n\t\tResizeHandler.register(this, this._onResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tget hasState() {\n\t\treturn this.state !== ValueState.None;\n\t}\n\n\tget hasDesc() {\n\t\treturn willShowContent(this.description);\n\t}\n\n\tget hasImportance() {\n\t\treturn this.importance !== NotificationListItemImportance.Standard;\n\t}\n\n\tget hasFootNotes() {\n\t\treturn !!this.footnotes.length;\n\t}\n\n\tget showMoreText() {\n\t\tif (this._showMorePressed) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_SHOW_LESS);\n\t\t}\n\n\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_SHOW_MORE);\n\t}\n\n\tget menuBtnAccessibleName() {\n\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_MENU_BTN_TITLE);\n\t}\n\n\tget moreLinkAccessibleName() {\n\t\treturn this._showMorePressed ? NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_MORE_LINK_LABEL_TRUNCATE) : NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_MORE_LINK_LABEL_FULL);\n\t}\n\n\tget closeBtnAccessibleName() {\n\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_CLOSE_BTN_TITLE);\n\t}\n\n\tget hideShowMore() {\n\t\tif (this.wrappingType === WrappingType.None && this._showMore) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tget titleTextHeight() {\n\t\treturn (this.titleTextDOM as HTMLElement).offsetHeight;\n\t}\n\n\tget descriptionHeight() {\n\t\treturn (this.descriptionDOM as HTMLElement).offsetHeight;\n\t}\n\n\tget titleTextOverflows() {\n\t\tconst titleText = this.titleTextDOM;\n\n\t\tif (!titleText) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn titleText.offsetHeight < titleText.scrollHeight;\n\t}\n\n\tget descriptionOverflows() {\n\t\tconst description = this.descriptionDOM;\n\n\t\tif (!description) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn description.offsetHeight < description.scrollHeight;\n\t}\n\n\tget footerItems() {\n\t\treturn this.footnotes.map((el, idx, arr) => {\n\t\t\treturn {\n\t\t\t\tslotName: (el as Footnote)._individualSlot,\n\t\t\t\tshowDivider: idx !== arr.length - 1,\n\t\t\t};\n\t\t});\n\t}\n\n\tget ariaLabelledBy() {\n\t\tconst id = this._id;\n\n\t\tif (this.loading) {\n\t\t\treturn `${id}-loading`;\n\t\t}\n\n\t\tconst ids = [];\n\n\t\tif (this.hasImportance) {\n\t\t\tids.push(`${id}-importance`);\n\t\t}\n\n\t\tif (this.hasTitleText) {\n\t\t\tids.push(`${id}-title-text`);\n\t\t}\n\n\t\tids.push(`${id}-read`);\n\n\t\tif (this.hasDesc) {\n\t\t\tids.push(`${id}-description`);\n\t\t}\n\n\t\tif (this.hasFootNotes) {\n\t\t\tids.push(`${id}-footnotes`);\n\t\t}\n\n\t\treturn ids.join(\" \");\n\t}\n\n\tget itemClasses() {\n\t\tconst classes = [\"ui5-nli-root\", \"ui5-nli-focusable\"];\n\n\t\tif (this.getMenu() && this.showClose) {\n\t\t\tclasses.push(\"ui5-nli-two-buttons\");\n\t\t} else if (this.getMenu() || this.showClose) {\n\t\t\tclasses.push(\"ui5-nli-one-button\");\n\t\t}\n\n\t\treturn classes.join(\" \");\n\t}\n\n\tget statusIconName() {\n\t\treturn ICON_PER_STATUS_NAME[this.state];\n\t}\n\n\tget statusIconDesign() {\n\t\treturn ICON_PER_STATUS_DESIGN[this.state];\n\t}\n\n\tget importanceText() {\n\t\tlet text;\n\t\tif (this.hasImportance) {\n\t\t\ttext = NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_IMPORTANT_TXT);\n\t\t} else {\n\t\t\ttext = \"\";\n\t\t}\n\n\t\treturn text;\n\t}\n\n\tget stateText() {\n\t\tif (this.state === ValueState.Positive) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_POSITIVE_STATUS_TXT);\n\t\t}\n\n\t\tif (this.state === ValueState.Critical) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_CRITICAL_STATUS_TXT);\n\t\t}\n\n\t\tif (this.state === ValueState.Negative) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_NEGATIVE_STATUS_TXT);\n\t\t}\n\n\t\tif (this.state === ValueState.Information) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_INFORMATION_STATUS_TXT);\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget readText() {\n\t\treturn this.read ? NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_READ) : NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_UNREAD);\n\t}\n\n\tget menuButtonAccessibilityAttributes(): ButtonAccessibilityAttributes {\n\t\treturn {\n\t\t\thasPopup: \"menu\",\n\t\t};\n\t}\n\n\tget moreLinkAccessibilityAttributes() {\n\t\treturn {\n\t\t\texpanded: this._showMorePressed,\n\t\t};\n\t}\n\n\tget showMenu() {\n\t\treturn !!this.getMenu();\n\t}\n\n\t/**\n\t * Event handlers\n\t */\n\t_onclick(e: MouseEvent) {\n\t\te.stopPropagation();\n\t\tthis.fireItemPress(e);\n\t}\n\n\t_onShowMoreClick(e: UI5CustomEvent<Link, \"click\">) {\n\t\te.preventDefault();\n\t\tthis._toggleShowMorePressed();\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tawait super._onkeydown(e);\n\n\t\tif (isF10Shift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tconst space = isSpace(e);\n\n\t\tif (space && this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\te.preventDefault();\n\t\t\tthis._toggleShowMorePressed();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isDelete(e)) {\n\t\t\tthis.fireDecoratorEvent(\"close\", { item: this });\n\t\t\tthis.fireDecoratorEvent(\"_close\", { item: this });\n\t\t}\n\n\t\tif (isF10Shift(e)) {\n\t\t\tthis._onBtnMenuClick();\n\t\t}\n\n\t\tif (isEnterShift(e)) {\n\t\t\tthis._toggleShowMorePressed();\n\t\t}\n\t}\n\n\t_onBtnCloseClick() {\n\t\tthis.fireDecoratorEvent(\"close\", { item: this });\n\t\tthis.fireDecoratorEvent(\"_close\", { item: this });\n\t}\n\n\t_onBtnMenuClick() {\n\t\tif (this.getMenu()) {\n\t\t\tthis.openMenu();\n\t\t}\n\t}\n\n\t_toggleShowMorePressed() {\n\t\tthis._showMorePressed = !this._showMorePressed;\n\t}\n\n\topenMenu() {\n\t\tconst menu = this.getMenu();\n\t\tmenu.opener = this.menuButtonDOM;\n\t\tmenu.open = true;\n\t}\n\n\tgetMenu() {\n\t\tconst menu = this.querySelector<Menu>(\"[ui5-menu]\")!;\n\t\treturn menu;\n\t}\n\n\t/**\n\t * Private\n\t */\n\tfireItemPress(e: Event) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\t// NotificationListItem will never be assigned to a variable of type ListItemBase\n\t\t// typescipt complains here, if that is the case, the parameter to the _press event handler could be a ListItemBase item,\n\t\t// but this is never the case, all components are used by their class and never assigned to a variable with a type of ListItemBase\n\t\tthis.fireDecoratorEvent(\"click\", { item: this, originalEvent: e });\n\t\tthis.fireDecoratorEvent(\"_press\", { item: this });\n\t}\n\n\tonResize() {\n\t\tif (this.wrappingType === WrappingType.Normal) {\n\t\t\tthis._showMore = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst titleTextWouldOverflow = this.titleTextHeight > this._titleTextOverflowHeight;\n\t\tconst descWouldOverflow = this.hasDesc && this.descriptionHeight > this._descOverflowHeight;\n\t\tconst overflows = titleTextWouldOverflow || descWouldOverflow;\n\n\t\tif (this._showMorePressed && overflows) {\n\t\t\tthis._showMore = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.titleTextOverflows || this.descriptionOverflows) {\n\t\t\tthis._titleTextOverflowHeight = this.titleTextHeight;\n\t\t\tthis._descOverflowHeight = this.hasDesc ? this.descriptionHeight : 0;\n\t\t\tthis._showMore = true;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showMore = false;\n\t}\n}\n\nNotificationListItem.define();\n\nexport default NotificationListItem;\nexport type {\n\tNotificationListItemPressEventDetail,\n\tNotificationListItemClickEventDetail,\n\tNotificationListItemCloseEventDetail,\n};\n"]}
1
+ {"version":3,"file":"NotificationListItem.js","sourceRoot":"","sources":["../src/NotificationListItem.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tisSpace, isDelete, isF10Shift, isEnterShift,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/dist/delegate/ResizeHandler.js\";\nimport type { ButtonAccessibilityAttributes } from \"@ui5/webcomponents/dist/Button.js\";\nimport type Link from \"@ui5/webcomponents/dist/Link.js\";\nimport WrappingType from \"@ui5/webcomponents/dist/types/WrappingType.js\";\nimport type Menu from \"@ui5/webcomponents/dist/Menu.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport willShowContent from \"@ui5/webcomponents-base/dist/util/willShowContent.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport NotificationListItemImportance from \"./types/NotificationListItemImportance.js\";\nimport NotificationListItemBase from \"./NotificationListItemBase.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n// Icons\nimport iconSysEnter2 from \"@ui5/webcomponents-icons/dist/sys-enter-2.js\";\nimport iconAlert from \"@ui5/webcomponents-icons/dist/alert.js\";\nimport iconError from \"@ui5/webcomponents-icons/dist/error.js\";\nimport iconInformation from \"@ui5/webcomponents-icons/dist/information.js\";\n\n// Texts\nimport {\n\tNOTIFICATION_LIST_ITEM_READ,\n\tNOTIFICATION_LIST_ITEM_UNREAD,\n\tNOTIFICATION_LIST_ITEM_SHOW_MORE,\n\tNOTIFICATION_LIST_ITEM_SHOW_LESS,\n\tNOTIFICATION_LIST_ITEM_INFORMATION_STATUS_TXT,\n\tNOTIFICATION_LIST_ITEM_POSITIVE_STATUS_TXT,\n\tNOTIFICATION_LIST_ITEM_NEGATIVE_STATUS_TXT,\n\tNOTIFICATION_LIST_ITEM_CRITICAL_STATUS_TXT,\n\tNOTIFICATION_LIST_ITEM_MENU_BTN_TITLE,\n\tNOTIFICATION_LIST_ITEM_MORE_LINK_LABEL_FULL,\n\tNOTIFICATION_LIST_ITEM_MORE_LINK_LABEL_TRUNCATE,\n\tNOTIFICATION_LIST_ITEM_CLOSE_BTN_TITLE,\n\tNOTIFICATION_LIST_ITEM_IMPORTANT_TXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Templates\nimport NotificationListItemTemplate from \"./NotificationListItemTemplate.js\";\n\n// Styles\nimport NotificationListItemCss from \"./generated/themes/NotificationListItem.css.js\";\nimport IconDesign from \"@ui5/webcomponents/dist/types/IconDesign.js\";\n\ntype NotificationListItemCloseEventDetail = {\n\titem: HTMLElement,\n};\n\ntype NotificationListItemPressEventDetail = {\n\titem: NotificationListItem,\n};\n\ntype NotificationListItemClickEventDetail = {\n\toriginalEvent: Event,\n};\n\ntype Footnote = Record<string, any>;\n\n/**\n * Defines the icons name corresponding to the notification's status indicator.\n */\nconst ICON_PER_STATUS_NAME = {\n\t[ValueState.Negative]: iconError,\n\t[ValueState.Critical]: iconAlert,\n\t[ValueState.Positive]: iconSysEnter2,\n\t[ValueState.Information]: iconInformation,\n\t[ValueState.None]: \"\",\n};\n\n/**\n * Defines the icons design (color) corresponding to the notification's status indicator.\n */\nconst ICON_PER_STATUS_DESIGN = {\n\t[ValueState.Negative]: IconDesign.Negative,\n\t[ValueState.Critical]: IconDesign.Critical,\n\t[ValueState.Positive]: IconDesign.Positive,\n\t[ValueState.Information]: IconDesign.Information,\n\t[ValueState.None]: undefined,\n};\n\n/**\n * @class\n *\n * ### Overview\n * The `ui5-li-notification` is a type of list item, meant to display notifications.\n *\n * The component has a rich set of various properties that allows the user to set `avatar`, `menu`, `titleText`, descriptive `content`\n * and `footnotes` to fully describe a notification.\n *\n * The user can:\n *\n * - display a `Close` button\n * - can control whether the `titleText` and `description` should wrap or truncate\n * and display a `ShowMore` button to switch between less and more information\n * - add actions by using the `ui5-menu` component\n *\n * **Note:** Adding custom actions by using the `ui5-notification-action` component is deprecated as of version 2.0!\n *\n * ### Usage\n * The component should be used inside a `ui5-notification-list`.\n *\n * ### Keyboard Handling\n *\n * #### Basic Navigation\n * The user can use the following keyboard shortcuts to perform actions (such as select, delete):\n *\n * - [Enter] - select an item (trigger \"item-click\" event)\n * - [Delete] - close an item (trigger \"item-close\" event)\n *\n * #### Fast Navigation\n * This component provides a fast navigation using the following keyboard shortcuts:\n *\n * - [Shift] + [Enter] - 'More'/'Less' link will be triggered\n * - [Shift] + [F10] - 'Menu' (Actions) button will be triggered (clicked)\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/NotificationListItem.js\";`\n *\n * @constructor\n * @extends NotificationListItemBase\n * @since 1.0.0-rc.8\n * @public\n * @csspart title-text - Used to style the titleText of the notification list item\n */\n@customElement({\n\ttag: \"ui5-li-notification\",\n\tlanguageAware: true,\n\tstyles: [\n\t\tNotificationListItemCss,\n\t],\n\trenderer: jsxRenderer,\n\ttemplate: NotificationListItemTemplate,\n})\n\n@event(\"_press\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the component is activated either with a mouse/tap or by using the Enter or Space key.\n *\n * @since 2.23.0\n * @public\n * @param {Event} originalEvent The original event from the user interaction.\n */\n@event(\"click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the `Close` button is pressed.\n * @param {HTMLElement} item the closed item.\n * @public\n */\n@event(\"close\")\n\n/**\n * Fired when the `Close` button is pressed.\n * @param {HTMLElement} item the closed item.\n * @private\n */\n@event(\"_close\", {\n\tbubbles: true,\n})\n\nclass NotificationListItem extends NotificationListItemBase {\n\teventDetails!: NotificationListItemBase[\"eventDetails\"] & {\n\t\t_press: NotificationListItemPressEventDetail,\n\t\tclick: NotificationListItemClickEventDetail,\n\t\tclose: NotificationListItemCloseEventDetail,\n\t\t_close: NotificationListItemCloseEventDetail,\n\t}\n\t/**\n\t* Defines if the `titleText` and `description` should wrap,\n\t* they truncate by default.\n\t*\n\t* **Note:** by default the `titleText` and `description`,\n\t* and a `ShowMore/Less` button would be displayed.\n\t* @default \"None\"\n\t* @public\n\t* @since 1.0.0-rc.15\n\t*/\n\t@property()\n\twrappingType: `${WrappingType}` = \"None\";\n\n\t/**\n\t * Defines the status indicator of the item.\n\t * @default \"None\"\n\t * @public\n\t */\n\t@property()\n\tstate: `${ValueState}` = \"None\"\n\n\t/**\n\t * Defines if the `Close` button would be displayed.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tshowClose = false;\n\n\t/**\n\t * Defines the `Important` label of the item.\n\t * @default \"Standard\"\n\t * @public\n\t */\n\t@property()\n\timportance: `${NotificationListItemImportance}` = \"Standard\";\n\n\t/**\n\t* Defines the state of the `titleText` and `description`,\n\t* if less or more information is displayed.\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\t_showMorePressed = false;\n\n\t/**\n\t* Defines the visibility of the `showMore` button.\n\t* @private\n\t*/\n\t@property({ type: Boolean })\n\t_showMore = false;\n\n\t/**\n\t* Defines the avatar, displayed in the `ui5-li-notification`.\n\t*\n\t* **Note:** Consider using the `ui5-avatar` to display icons, initials or images.\n\t*\n\t* **Note:** In order to be complaint with the UX guidlines and for best experience,\n\t* we recommend using avatars with 2rem X 2rem in size (32px X 32px). In case you are using the `ui5-avatar`\n\t* you can set its `size` property to `XS` to get the required size - `<ui5-avatar size=\"XS\"></ui5-avatar>`.\n\t* @public\n\t*/\n\t@slot()\n\tavatar!: Slot<HTMLElement>;\n\n\t/**\n\t* Defines the menu, displayed in the `ui5-li-notification`.\n\t*\n\t* **Note:** Use this for implementing actions.\n\t*\n\t* **Note:** Should be used instead `u5-notification-action`, which is deprecated as of version 2.0.\n\t* @public\n\t*/\n\t@slot()\n\tmenu!: Slot<HTMLElement>;\n\n\t/**\n\t* Defines the elements, displayed in the footer of the of the component.\n\t* @public\n\t*/\n\t@slot({ type: HTMLElement, individualSlots: true })\n\tfootnotes!: Slot<HTMLElement>;\n\n\t/**\n\t* Defines the content of the `ui5-li-notification`,\n\t* usually a description of the notification.\n\t*\n\t* **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t* @public\n\t*/\n\t@slot({ type: Node, \"default\": true })\n\tdescription!: DefaultSlot<Node>;\n\n\t@query(\".ui5-nli-title-text\")\n\ttitleTextDOM?: HTMLElement;\n\n\t@query(\".ui5-nli-menu-btn\")\n\tmenuButtonDOM?: HTMLElement;\n\n\t@query(\".ui5-nli-description\")\n\tdescriptionDOM?: HTMLElement;\n\n\t_titleTextOverflowHeight: number;\n\t_descOverflowHeight: number;\n\t_onResizeBound: ResizeObserverCallback;\n\n\t_ariaLevel?: number;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// the titleText overflow height\n\t\tthis._titleTextOverflowHeight = 0;\n\n\t\t// the description overflow height\n\t\tthis._descOverflowHeight = 0;\n\n\t\t// the resize handler\n\t\tthis._onResizeBound = this.onResize.bind(this);\n\t}\n\n\tonEnterDOM() {\n\t\tsuper.onEnterDOM();\n\t\tResizeHandler.register(this, this._onResizeBound);\n\t}\n\n\tonExitDOM() {\n\t\tResizeHandler.deregister(this, this._onResizeBound);\n\t}\n\n\tget hasState() {\n\t\treturn this.state !== ValueState.None;\n\t}\n\n\tget hasDesc() {\n\t\treturn willShowContent(this.description);\n\t}\n\n\tget hasImportance() {\n\t\treturn this.importance !== NotificationListItemImportance.Standard;\n\t}\n\n\tget hasFootNotes() {\n\t\treturn !!this.footnotes.length;\n\t}\n\n\tget showMoreText() {\n\t\tif (this._showMorePressed) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_SHOW_LESS);\n\t\t}\n\n\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_SHOW_MORE);\n\t}\n\n\tget menuBtnAccessibleName() {\n\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_MENU_BTN_TITLE);\n\t}\n\n\tget moreLinkAccessibleName() {\n\t\treturn this._showMorePressed ? NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_MORE_LINK_LABEL_TRUNCATE) : NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_MORE_LINK_LABEL_FULL);\n\t}\n\n\tget closeBtnAccessibleName() {\n\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_CLOSE_BTN_TITLE);\n\t}\n\n\tget hideShowMore() {\n\t\tif (this.wrappingType === WrappingType.None && this._showMore) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tget titleTextHeight() {\n\t\treturn (this.titleTextDOM as HTMLElement).offsetHeight;\n\t}\n\n\tget descriptionHeight() {\n\t\treturn (this.descriptionDOM as HTMLElement).offsetHeight;\n\t}\n\n\tget titleTextOverflows() {\n\t\tconst titleText = this.titleTextDOM;\n\n\t\tif (!titleText) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn titleText.offsetHeight < titleText.scrollHeight;\n\t}\n\n\tget descriptionOverflows() {\n\t\tconst description = this.descriptionDOM;\n\n\t\tif (!description) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn description.offsetHeight < description.scrollHeight;\n\t}\n\n\tget footerItems() {\n\t\treturn this.footnotes.map((el, idx, arr) => {\n\t\t\treturn {\n\t\t\t\tslotName: (el as Footnote)._individualSlot,\n\t\t\t\tshowDivider: idx !== arr.length - 1,\n\t\t\t};\n\t\t});\n\t}\n\n\tget ariaLabelledBy() {\n\t\tconst id = this._id;\n\n\t\tif (this.loading) {\n\t\t\treturn `${id}-loading`;\n\t\t}\n\n\t\tconst ids = [];\n\n\t\tif (this.hasImportance) {\n\t\t\tids.push(`${id}-importance`);\n\t\t}\n\n\t\tif (this.hasTitleText) {\n\t\t\tids.push(`${id}-title-text`);\n\t\t}\n\n\t\tids.push(`${id}-read`);\n\n\t\tif (this.hasDesc) {\n\t\t\tids.push(`${id}-description`);\n\t\t}\n\n\t\tif (this.hasFootNotes) {\n\t\t\tids.push(`${id}-footnotes`);\n\t\t}\n\n\t\treturn ids.join(\" \");\n\t}\n\n\tget itemClasses() {\n\t\tconst classes = [\"ui5-nli-root\", \"ui5-nli-focusable\"];\n\n\t\tif (this.getMenu() && this.showClose) {\n\t\t\tclasses.push(\"ui5-nli-two-buttons\");\n\t\t} else if (this.getMenu() || this.showClose) {\n\t\t\tclasses.push(\"ui5-nli-one-button\");\n\t\t}\n\n\t\treturn classes.join(\" \");\n\t}\n\n\tget statusIconName() {\n\t\treturn ICON_PER_STATUS_NAME[this.state];\n\t}\n\n\tget statusIconDesign() {\n\t\treturn ICON_PER_STATUS_DESIGN[this.state];\n\t}\n\n\tget importanceText() {\n\t\tlet text;\n\t\tif (this.hasImportance) {\n\t\t\ttext = NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_IMPORTANT_TXT);\n\t\t} else {\n\t\t\ttext = \"\";\n\t\t}\n\n\t\treturn text;\n\t}\n\n\tget stateText() {\n\t\tif (this.state === ValueState.Positive) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_POSITIVE_STATUS_TXT);\n\t\t}\n\n\t\tif (this.state === ValueState.Critical) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_CRITICAL_STATUS_TXT);\n\t\t}\n\n\t\tif (this.state === ValueState.Negative) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_NEGATIVE_STATUS_TXT);\n\t\t}\n\n\t\tif (this.state === ValueState.Information) {\n\t\t\treturn NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_INFORMATION_STATUS_TXT);\n\t\t}\n\n\t\treturn \"\";\n\t}\n\n\tget readText() {\n\t\treturn this.read ? NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_READ) : NotificationListItem.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_UNREAD);\n\t}\n\n\tget menuButtonAccessibilityAttributes(): ButtonAccessibilityAttributes {\n\t\treturn {\n\t\t\thasPopup: \"menu\",\n\t\t};\n\t}\n\n\tget moreLinkAccessibilityAttributes() {\n\t\treturn {\n\t\t\texpanded: this._showMorePressed,\n\t\t};\n\t}\n\n\tget showMenu() {\n\t\treturn !!this.getMenu();\n\t}\n\n\t/**\n\t * Event handlers\n\t */\n\t_onclick(e: MouseEvent) {\n\t\te.stopPropagation();\n\t\tthis.fireItemPress(e);\n\t}\n\n\t_onShowMoreClick(e: UI5CustomEvent<Link, \"click\">) {\n\t\te.preventDefault();\n\t\tthis._toggleShowMorePressed();\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tawait super._onkeydown(e);\n\n\t\tif (isF10Shift(e)) {\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tconst space = isSpace(e);\n\n\t\tif (space && this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\te.preventDefault();\n\t\t\tthis._toggleShowMorePressed();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isDelete(e)) {\n\t\t\tthis.fireDecoratorEvent(\"close\", { item: this });\n\t\t\tthis.fireDecoratorEvent(\"_close\", { item: this });\n\t\t}\n\n\t\tif (isF10Shift(e)) {\n\t\t\tthis._onBtnMenuClick();\n\t\t}\n\n\t\tif (isEnterShift(e)) {\n\t\t\tthis._toggleShowMorePressed();\n\t\t}\n\t}\n\n\t_onBtnCloseClick() {\n\t\tthis.fireDecoratorEvent(\"close\", { item: this });\n\t\tthis.fireDecoratorEvent(\"_close\", { item: this });\n\t}\n\n\t_onBtnMenuClick() {\n\t\tif (this.getMenu()) {\n\t\t\tthis.openMenu();\n\t\t}\n\t}\n\n\t_toggleShowMorePressed() {\n\t\tthis._showMorePressed = !this._showMorePressed;\n\t}\n\n\topenMenu() {\n\t\tconst menu = this.getMenu();\n\t\tmenu.opener = this.menuButtonDOM;\n\t\tmenu.open = true;\n\t}\n\n\tgetMenu() {\n\t\tconst menu = this.querySelector<Menu>(\"[ui5-menu]\")!;\n\t\treturn menu;\n\t}\n\n\t/**\n\t * Private\n\t */\n\tfireItemPress(e: Event) {\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\t// NotificationListItem will never be assigned to a variable of type ListItemBase\n\t\t// typescipt complains here, if that is the case, the parameter to the _press event handler could be a ListItemBase item,\n\t\t// but this is never the case, all components are used by their class and never assigned to a variable with a type of ListItemBase\n\t\tthis.fireDecoratorEvent(\"click\", { originalEvent: e });\n\t\tthis.fireDecoratorEvent(\"_press\", { item: this });\n\t}\n\n\tonResize() {\n\t\tif (this.wrappingType === WrappingType.Normal) {\n\t\t\tthis._showMore = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst titleTextWouldOverflow = this.titleTextHeight > this._titleTextOverflowHeight;\n\t\tconst descWouldOverflow = this.hasDesc && this.descriptionHeight > this._descOverflowHeight;\n\t\tconst overflows = titleTextWouldOverflow || descWouldOverflow;\n\n\t\tif (this._showMorePressed && overflows) {\n\t\t\tthis._showMore = true;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.titleTextOverflows || this.descriptionOverflows) {\n\t\t\tthis._titleTextOverflowHeight = this.titleTextHeight;\n\t\t\tthis._descOverflowHeight = this.hasDesc ? this.descriptionHeight : 0;\n\t\t\tthis._showMore = true;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._showMore = false;\n\t}\n}\n\nNotificationListItem.define();\n\nexport default NotificationListItem;\nexport type {\n\tNotificationListItemPressEventDetail,\n\tNotificationListItemClickEventDetail,\n\tNotificationListItemCloseEventDetail,\n};\n"]}
@@ -405,7 +405,6 @@ declare class ShellBar extends UI5Element {
405
405
  getPackedSeparatorInfo(item: HTMLElement, isStartGroup: boolean): {
406
406
  shouldPack: boolean;
407
407
  };
408
- sortItems(items: readonly ShellBarItem[]): ShellBarItem[];
409
408
  get actionsAccessibilityInfo(): ShellBarAccessibilityInfo;
410
409
  get actionsRole(): "toolbar" | undefined;
411
410
  get contentRole(): "group" | undefined;
package/dist/ShellBar.js CHANGED
@@ -43,8 +43,6 @@ import ShellBarItemNavigation from "./shellbar/ShellBarItemNavigation.js";
43
43
  import ShellBarItem from "./ShellBarItem.js";
44
44
  import ShellBarSpacer from "./ShellBarSpacer.js";
45
45
  import { SHELLBAR_LABEL, SHELLBAR_NOTIFICATIONS, SHELLBAR_NOTIFICATIONS_NO_COUNT, SHELLBAR_PROFILE, SHELLBAR_PRODUCTS, SHELLBAR_SEARCH, SHELLBAR_ASSISTANT, SHELLBAR_OVERFLOW, SHELLBAR_ADDITIONAL_CONTEXT, } from "./generated/i18n/i18n-defaults.js";
46
- // actions always visible in lean mode, order is important
47
- const PREDEFINED_PLACE_ITEMS = ["feedback", "sys-help"];
48
46
  const ShellBarActions = {
49
47
  Search: "search",
50
48
  Profile: "profile",
@@ -337,7 +335,7 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
337
335
  const result = this.overflow.updateOverflow({
338
336
  actions: this.actions,
339
337
  content: this.sortContent(this.content),
340
- customItems: this.sortItems(this.items),
338
+ customItems: this.items,
341
339
  hiddenItemsIds: this.hiddenItemsIds,
342
340
  showSearchField: this.enabledFeatures.search && this.showSearchField,
343
341
  overflowOuter: this.overflowOuter,
@@ -419,7 +417,7 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
419
417
  get overflowItems() {
420
418
  return this.overflow.getOverflowItems({
421
419
  actions: this.actions,
422
- customItems: this.sortItems(this.items),
420
+ customItems: this.items,
423
421
  hiddenItemsIds: this.hiddenItemsIds,
424
422
  });
425
423
  }
@@ -578,13 +576,6 @@ let ShellBar = ShellBar_1 = class ShellBar extends UI5Element {
578
576
  return { shouldPack: isHidden && isLastItem };
579
577
  }
580
578
  /* =================== Items Management =================== */
581
- sortItems(items) {
582
- return items.toSorted((a, b) => {
583
- const aIndex = PREDEFINED_PLACE_ITEMS.indexOf(a.icon || "");
584
- const bIndex = PREDEFINED_PLACE_ITEMS.indexOf(b.icon || "");
585
- return aIndex - bIndex;
586
- });
587
- }
588
579
  /* =================== Accessibility =================== */
589
580
  get actionsAccessibilityInfo() {
590
581
  return this.accessibility.getActionsAccessibilityAttributes(this.texts, {