@sapudex/web-components 2.25.1 → 2.26.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 (108) hide show
  1. package/cypress/fixtures/profile-menu.ts +2 -1
  2. package/cypress/specs/MastheadProfileMenu.cy.tsx +21 -6
  3. package/dist/List.d.ts +9 -0
  4. package/dist/List.js +33 -2
  5. package/dist/List.js.map +1 -1
  6. package/dist/MastheadCountrySelector.d.ts +11 -0
  7. package/dist/MastheadCountrySelector.js +71 -14
  8. package/dist/MastheadCountrySelector.js.map +1 -1
  9. package/dist/MastheadItem.d.ts +1 -0
  10. package/dist/MastheadItem.js +9 -1
  11. package/dist/MastheadItem.js.map +1 -1
  12. package/dist/MastheadMenu.d.ts +11 -0
  13. package/dist/MastheadMenu.js +43 -13
  14. package/dist/MastheadMenu.js.map +1 -1
  15. package/dist/MastheadProfileMenu.d.ts +33 -3
  16. package/dist/MastheadProfileMenu.js +93 -5
  17. package/dist/MastheadProfileMenu.js.map +1 -1
  18. package/dist/Pagination.d.ts +2 -0
  19. package/dist/Pagination.js +31 -6
  20. package/dist/Pagination.js.map +1 -1
  21. package/dist/PaginationTemplate.js +6 -5
  22. package/dist/PaginationTemplate.js.map +1 -1
  23. package/dist/Tooltip.js +3 -5
  24. package/dist/Tooltip.js.map +1 -1
  25. package/dist/TooltipTemplate.d.ts +2 -0
  26. package/dist/TooltipTemplate.js +7 -0
  27. package/dist/TooltipTemplate.js.map +1 -0
  28. package/dist/assets/{InputSuggestions-CTFZ6hH-.js → InputSuggestions-CG5owMFQ.js} +1 -1
  29. package/dist/assets/{ListItemStandardExpandableTextTemplate-wXdCijez.js → ListItemStandardExpandableTextTemplate-DpVr7qdn.js} +1 -1
  30. package/dist/assets/{bundle.esm-BXCZ9BP3.js → bundle.esm-CTkLMr6f.js} +185 -185
  31. package/dist/css/themes/MastheadCountrySelector.css +1 -1
  32. package/dist/css/themes/MastheadItem.css +1 -1
  33. package/dist/css/themes/MastheadMenu.css +1 -1
  34. package/dist/css/themes/MastheadMenuItem.css +1 -1
  35. package/dist/css/themes/MastheadProfileMenu.css +1 -1
  36. package/dist/css/themes/Quote.css +1 -1
  37. package/dist/css/themes/RatingIndicator.css +1 -1
  38. package/dist/css/themes/Slider.css +1 -1
  39. package/dist/custom-elements-internal.json +163 -155
  40. package/dist/custom-elements.json +144 -140
  41. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +1 -1
  42. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
  43. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +7 -5
  44. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  45. package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
  46. package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
  47. package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
  48. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  49. package/dist/generated/themes/MastheadItem.css.js +1 -1
  50. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  51. package/dist/generated/themes/MastheadMenu.css.d.ts +1 -1
  52. package/dist/generated/themes/MastheadMenu.css.js +1 -1
  53. package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
  54. package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
  55. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  56. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  57. package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
  58. package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
  59. package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
  60. package/dist/generated/themes/Quote.css.d.ts +1 -1
  61. package/dist/generated/themes/Quote.css.js +1 -1
  62. package/dist/generated/themes/Quote.css.js.map +1 -1
  63. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  64. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  65. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  66. package/dist/generated/themes/Slider.css.d.ts +1 -1
  67. package/dist/generated/themes/Slider.css.js +1 -1
  68. package/dist/generated/themes/Slider.css.js.map +1 -1
  69. package/dist/types/List.d.ts +6 -0
  70. package/dist/types/List.js +7 -0
  71. package/dist/types/List.js.map +1 -1
  72. package/dist/vscode.html-custom-data.json +1 -1
  73. package/dist/web-types.json +4 -6
  74. package/package.json +1 -1
  75. package/src/List.ts +41 -2
  76. package/src/MastheadCountrySelector.hbs +20 -16
  77. package/src/MastheadCountrySelector.ts +83 -16
  78. package/src/MastheadItem.ts +10 -1
  79. package/src/MastheadMenu.ts +56 -13
  80. package/src/MastheadProfileMenu.hbs +43 -26
  81. package/src/MastheadProfileMenu.ts +124 -7
  82. package/src/Pagination.ts +32 -6
  83. package/src/PaginationTemplate.tsx +19 -16
  84. package/src/Tooltip.ts +7 -6
  85. package/src/TooltipTemplate.tsx +29 -0
  86. package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +1 -1
  87. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +7 -5
  88. package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
  89. package/src/generated/themes/MastheadItem.css.ts +1 -1
  90. package/src/generated/themes/MastheadMenu.css.ts +1 -1
  91. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  92. package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
  93. package/src/generated/themes/Quote.css.ts +1 -1
  94. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  95. package/src/generated/themes/Slider.css.ts +1 -1
  96. package/src/themes/MastheadCountrySelector.css +70 -10
  97. package/src/themes/MastheadItem.css +0 -1
  98. package/src/themes/MastheadMenu.css +1 -2
  99. package/src/themes/MastheadMenuItem.css +1 -0
  100. package/src/themes/MastheadProfileMenu.css +113 -17
  101. package/src/themes/Quote.css +1 -1
  102. package/src/types/List.ts +7 -0
  103. package/cypress/downloads/downloads.html +0 -0
  104. package/dist/generated/templates/TooltipTemplate.lit.d.ts +0 -3
  105. package/dist/generated/templates/TooltipTemplate.lit.js +0 -8
  106. package/dist/generated/templates/TooltipTemplate.lit.js.map +0 -1
  107. package/src/Tooltip.hbs +0 -22
  108. package/src/generated/templates/TooltipTemplate.lit.ts +0 -12
@@ -12,11 +12,13 @@ import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
12
12
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
13
13
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
14
14
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
15
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
15
16
  import { LOGOUT, SWITCH_ACCOUNT, BACK, OTHER_IDENTITIES, ADD_OR_REMOVE_ACCOUNT, } from "./generated/i18n/i18n-defaults.js";
16
17
  import { isEscape } from "@ui5/webcomponents-base/Keys.js";
17
18
  import UDExMastheadMenu from "./MastheadMenu.js";
18
19
  import UDExButton from "./Button.js";
19
20
  import UDExList from "./List.js";
21
+ import UDExLink from "./Link.js";
20
22
  import UDExListItem from "./ListItem.js";
21
23
  import UDExMastheadMenuItem from "./MastheadMenuItem.js";
22
24
  import MastheadProfileMenuTemplate from "./generated/templates/MastheadProfileMenuTemplate.lit.js";
@@ -56,6 +58,14 @@ let UDExMastheadProfileMenu = UDExMastheadProfileMenu_1 = class UDExMastheadProf
56
58
  * @private
57
59
  */
58
60
  this._openIdentities = false;
61
+ /**
62
+ * Defines the request render state
63
+ *
64
+ * @private
65
+ */
66
+ this._requestRender = false;
67
+ this._identitiesListClassName = "udex-masthead-profile-menu__identities-list";
68
+ this._profileMenuLinksClassName = "udex-masthead-profile-menu__links";
59
69
  this._handleResizeBound = this.handleResize.bind(this);
60
70
  }
61
71
  onAfterRendering() {
@@ -63,9 +73,13 @@ let UDExMastheadProfileMenu = UDExMastheadProfileMenu_1 = class UDExMastheadProf
63
73
  this.updateFocusState(this._shouldFocusBackBtn, this.focusBackBtn.bind(this));
64
74
  this.updateFocusState(this._shouldFocusSwitchBtn, this.focusSwitchBtn.bind(this));
65
75
  this.setMenuItemsMobileMode();
76
+ this.checkScrollableElements();
66
77
  }
67
78
  onEnterDOM() {
68
79
  ResizeHandler.register(this, this._handleResizeBound);
80
+ if (isDesktop()) {
81
+ this.setAttribute("desktop", "");
82
+ }
69
83
  }
70
84
  onExitDOM() {
71
85
  ResizeHandler.deregister(this, this._handleResizeBound);
@@ -75,14 +89,15 @@ let UDExMastheadProfileMenu = UDExMastheadProfileMenu_1 = class UDExMastheadProf
75
89
  if (this.profileMenuLinks) {
76
90
  this.profileMenuLinks._isMobileMode = this.isMobile;
77
91
  }
92
+ this.checkScrollableElements();
78
93
  }
79
94
  handleSwitcherClick() {
80
95
  this._openIdentities = !this._openIdentities;
81
96
  this._shouldFocusBackBtn = this._openIdentities;
82
97
  this._shouldFocusSwitchBtn = !this._openIdentities;
83
98
  }
84
- handleUserLogoutItemClick(e) {
85
- this.fireLogoutItemClick(e);
99
+ handleUserLogoutClick(e) {
100
+ this.fireLogoutClick(e);
86
101
  if (this._isMobileMode) {
87
102
  this.closeMenu();
88
103
  }
@@ -141,14 +156,17 @@ let UDExMastheadProfileMenu = UDExMastheadProfileMenu_1 = class UDExMastheadProf
141
156
  e.preventDefault();
142
157
  }
143
158
  }
144
- fireLogoutItemClick(e) {
159
+ fireLogoutClick(e) {
145
160
  const item = e.target;
146
- this.fireDecoratorEvent("logout", {
161
+ const executeEvent = this.fireDecoratorEvent("logout", {
147
162
  item,
148
- sourceNode: item.shadowRoot?.querySelector(".udex-masthead-menu-item"),
163
+ sourceNode: item.shadowRoot?.querySelector("a"),
149
164
  originalEvent: e,
150
165
  analyticsName: AnalyticsName.Header,
151
166
  });
167
+ if (!executeEvent) {
168
+ e.preventDefault();
169
+ }
152
170
  }
153
171
  fireMenuItemClick(e) {
154
172
  const { item, originalEvent } = e.detail;
@@ -159,6 +177,63 @@ let UDExMastheadProfileMenu = UDExMastheadProfileMenu_1 = class UDExMastheadProf
159
177
  sourceNode: item.shadowRoot.querySelector(".udex-masthead-menu-item"),
160
178
  });
161
179
  }
180
+ checkScrollableElements() {
181
+ if (this._openIdentities) {
182
+ this.checkScrollableElement(this.identitiesHTMLElement, this._identitiesListClassName);
183
+ }
184
+ if (this.isMobile) {
185
+ this.checkScrollableElement(this.profileMenuHTMLElement, this._profileMenuLinksClassName);
186
+ }
187
+ }
188
+ checkScrollableElement(element, className) {
189
+ if (element) {
190
+ requestAnimationFrame(() => {
191
+ if (this.isScrollableElement(element)) {
192
+ element.classList.add(`${className}_scrollable`);
193
+ }
194
+ });
195
+ }
196
+ }
197
+ scrollToTopProfileMenu() {
198
+ setTimeout(() => {
199
+ this.profileMenuHTMLElement.scrollTop = 0;
200
+ }, 0);
201
+ }
202
+ isScrollableElement(element) {
203
+ return element.scrollHeight > element.clientHeight;
204
+ }
205
+ handleProfileMenuShadowVisible() {
206
+ this.toggleScrollableClass(this.profileMenuHTMLElement, this._profileMenuLinksClassName, this.scrollBottomProfileMenu);
207
+ }
208
+ handleIdentitiesListShadowVisible() {
209
+ this.toggleScrollableClass(this.identitiesHTMLElement, this._identitiesListClassName, this.scrollBottomIdentitiesList);
210
+ }
211
+ toggleScrollableClass(el, className, scrollBottom) {
212
+ if (scrollBottom === 0) {
213
+ el.classList.remove(`${className}_scrollable`);
214
+ }
215
+ else {
216
+ el.classList.add(`${className}_scrollable`);
217
+ }
218
+ }
219
+ get scrollBottomIdentitiesList() {
220
+ return this.calculateScrollBottom(this.identitiesHTMLElement);
221
+ }
222
+ get scrollBottomProfileMenu() {
223
+ return this.calculateScrollBottom(this.profileMenuHTMLElement);
224
+ }
225
+ calculateScrollBottom(element) {
226
+ return element.scrollHeight - element.scrollTop - element.clientHeight;
227
+ }
228
+ get profileMenuHTMLElement() {
229
+ return this.getElementByClassName(this._profileMenuLinksClassName);
230
+ }
231
+ get identitiesHTMLElement() {
232
+ return this.getElementByClassName(this._identitiesListClassName);
233
+ }
234
+ getElementByClassName(className) {
235
+ return this.shadowRoot?.querySelector(`.${className}`);
236
+ }
162
237
  closeMenu() {
163
238
  this._mastheadShell.closeMobileMenu();
164
239
  this._mastheadShell.mobileBtn?.focus();
@@ -192,6 +267,9 @@ let UDExMastheadProfileMenu = UDExMastheadProfileMenu_1 = class UDExMastheadProf
192
267
  get messageAvailable() {
193
268
  return !!this.message.length;
194
269
  }
270
+ get hasLogoutButton() {
271
+ return !!this.logoutButton.length;
272
+ }
195
273
  get logoutLink() {
196
274
  return !!this.logoutUrl?.length;
197
275
  }
@@ -226,6 +304,9 @@ let UDExMastheadProfileMenu = UDExMastheadProfileMenu_1 = class UDExMastheadProf
226
304
  get isMobile() {
227
305
  return this.isAtMostBreakpointSizeM || this.mastheadShell?.isMobileMenuMode;
228
306
  }
307
+ get hasActionButton() {
308
+ return this.logoutLink || this.hasLogoutButton;
309
+ }
229
310
  };
230
311
  __decorate([
231
312
  property()
@@ -245,9 +326,15 @@ __decorate([
245
326
  __decorate([
246
327
  property({ type: Boolean })
247
328
  ], UDExMastheadProfileMenu.prototype, "_openIdentities", void 0);
329
+ __decorate([
330
+ property({ type: Boolean, noAttribute: true })
331
+ ], UDExMastheadProfileMenu.prototype, "_requestRender", void 0);
248
332
  __decorate([
249
333
  slot({ type: Node, "default": false })
250
334
  ], UDExMastheadProfileMenu.prototype, "message", void 0);
335
+ __decorate([
336
+ slot({ type: HTMLElement })
337
+ ], UDExMastheadProfileMenu.prototype, "logoutButton", void 0);
251
338
  __decorate([
252
339
  i18n("@sapudex/web-components")
253
340
  ], UDExMastheadProfileMenu, "i18nBundle", void 0);
@@ -263,6 +350,7 @@ UDExMastheadProfileMenu = UDExMastheadProfileMenu_1 = __decorate([
263
350
  UDExListItem,
264
351
  UDExButton,
265
352
  UDExList,
353
+ UDExLink,
266
354
  ],
267
355
  })
268
356
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MastheadProfileMenu.js","sourceRoot":"","sources":["../src/MastheadProfileMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n LOGOUT, SWITCH_ACCOUNT, BACK, OTHER_IDENTITIES, ADD_OR_REMOVE_ACCOUNT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/Keys.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExList from \"./List.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExMastheadMenuItem from \"./MastheadMenuItem.js\";\nimport MastheadProfileMenuTemplate from \"./generated/templates/MastheadProfileMenuTemplate.lit.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/action.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport UDExStatusBadgeValueState from \"./types/StatusBadgeValueState.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport MastheadProfileMenuCss from \"./generated/themes/MastheadProfileMenu.css.js\";\n\nexport interface UserData {\n name?: string,\n username?: string,\n email?: string,\n avatarUrl?: string,\n avatarInitials?: string\n}\n\nexport interface UserIdentity {\n avatarUrl: string,\n email: string,\n name: string,\n idsUser: string,\n isLogged: boolean,\n}\n\nexport interface ExtendedUserIdentity extends UserIdentity {\n supportingText: string;\n statusBadge: string;\n}\n\ntype UDExMastheadProfileMenuIdentityClickEventDetail = {\n item: ExtendedUserIdentity;\n analyticsName: AnalyticsName,\n};\n\ntype UDExMastheadProfileMenuItemClickEventDetail = {\n item: UDExMastheadMenuItem,\n originalEvent: PointerEvent,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\ntype UDExMastheadProfileMenuAddOrRemoveClickEventDetail = {\n analyticsName: AnalyticsName,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-profile-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadProfileMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-profile-menu\",\n renderer: litRender,\n styles: [UDExMastheadMenu.styles, MastheadProfileMenuCss],\n template: MastheadProfileMenuTemplate,\n dependencies: [\n UDExMastheadMenuItem,\n UDExMastheadMenu,\n UDExListItem,\n UDExButton,\n UDExList,\n ],\n})\n\n/**\n * Fired when use click Logout link\n * @public\n * @param {UDExMastheadMenuItem} item The clicked logout item\n * @param {HTMLElement} sourceNode The HTML element of the clicked logout item\n * @param {PointerEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked logout item\n */\n@event(\"logout\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when profile menu item is clicked\n *\n * @public\n * @param {UDExMastheadMenuItem} item The clicked profile menu item\n * @param {PointerEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked profile menu item\n * @param {HTMLElement} sourceNode The HTML element of the clicked profile menu item\n */\n@event(\"profile-item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired when use click add or remove account button\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the clicked add or remove account button\n */\n@event(\"add-or-remove-account-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when identity item is clicked\n *\n * @public\n * @param {ExtendedUserIdentity} item The clicked identity item\n * @param {AnalyticsName} analyticsName The analytics name for the clicked identity item\n */\n@event(\"identity-item-click\", { cancelable: true, bubbles: true })\n\nclass UDExMastheadProfileMenu extends UI5Element {\n eventDetails!: {\n \"logout\": UDExMastheadProfileMenuItemClickEventDetail,\n \"profile-item-click\": UDExMastheadProfileMenuItemClickEventDetail,\n \"add-or-remove-account-click\": UDExMastheadProfileMenuAddOrRemoveClickEventDetail,\n \"identity-item-click\": UDExMastheadProfileMenuIdentityClickEventDetail,\n };\n\n /**\n * Defines the object of user identities\n *\n * @default \"\"\n * @public\n */\n @property()\n identities!: string;\n\n /**\n * Defines the object of link values\n *\n * @default \"\"\n * @public\n */\n @property()\n links!: string;\n\n /**\n * Defines the object of user profile data\n *\n * @default \"\"\n * @public\n */\n @property()\n loggedInUser!: string;\n\n /**\n * Defines the link for logout\n *\n * @default \"\"\n * @public\n */\n @property()\n logoutUrl!: string;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines the open identities panel state\n *\n * @private\n */\n @property({ type: Boolean })\n _openIdentities: boolean = false;\n\n /**\n * Placeholder for message strip.\n *\n * @public\n */\n @slot({ type: Node, \"default\": false })\n message!: Array<Node>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _mastheadShell!: UDExMastheadShell;\n _handleResizeBound: ResizeObserverCallback;\n _shouldFocusBackBtn!: boolean;\n _shouldFocusSwitchBtn!: boolean;\n\n constructor() {\n super();\n this._handleResizeBound = this.handleResize.bind(this);\n }\n\n onAfterRendering(): void {\n this._mastheadShell = this.mastheadShell;\n this.updateFocusState(this._shouldFocusBackBtn, this.focusBackBtn.bind(this));\n this.updateFocusState(this._shouldFocusSwitchBtn, this.focusSwitchBtn.bind(this));\n this.setMenuItemsMobileMode();\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n handleResize(): void {\n this._isMobileMode = this.isMobile;\n\n if (this.profileMenuLinks) {\n this.profileMenuLinks._isMobileMode = this.isMobile;\n }\n }\n\n handleSwitcherClick(): void {\n this._openIdentities = !this._openIdentities;\n this._shouldFocusBackBtn = this._openIdentities;\n this._shouldFocusSwitchBtn = !this._openIdentities;\n }\n\n handleUserLogoutItemClick(e: PointerEvent): void {\n this.fireLogoutItemClick(e);\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n handleProfileMenuItemClick(e: CustomEvent): void {\n this.fireMenuItemClick(e);\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n updateFocusState(shouldFocus: boolean, focusMethod: () => void): void {\n if (shouldFocus) {\n focusMethod();\n if (focusMethod === this.focusBackBtn) {\n this._shouldFocusBackBtn = false;\n } else if (focusMethod === this.focusSwitchBtn) {\n this._shouldFocusSwitchBtn = false;\n }\n }\n }\n\n handleKeydown(e: KeyboardEvent): void {\n if (isEscape(e) && this._openIdentities) {\n this.closeIdentitiesPanel();\n }\n }\n\n focusSwitchBtn(): void {\n this.focusElement(\".udex-masthead-profile-menu__btn-switcher\");\n }\n\n focusBackBtn(): void {\n this.focusElement(\".udex-masthead-profile-menu__btn-back\");\n }\n\n focusElement(selector: string): void {\n const element = this.shadowRoot?.querySelector<UDExButton>(selector);\n element?.focus();\n }\n\n fireEventIdentityItemClick(e: CustomEvent): void {\n const { item } = e.detail;\n const identity = this.identitiesList.find(({ idsUser }) => idsUser === item.id);\n const eventPrevented = !this.fireDecoratorEvent(\"identity-item-click\", {\n item: identity!,\n analyticsName: AnalyticsName.Header,\n });\n\n if (eventPrevented) {\n e.preventDefault();\n }\n\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n fireEventAddOrRemoveAccountClick(e: CustomEvent<LinkClickEventDetail>): void {\n const eventPrevented = !this.fireDecoratorEvent(\"add-or-remove-account-click\", {\n analyticsName: AnalyticsName.Header,\n });\n\n if (eventPrevented) {\n e.preventDefault();\n }\n }\n\n fireLogoutItemClick(e: PointerEvent): void {\n const item = e.target as UDExMastheadMenuItem;\n\n this.fireDecoratorEvent(\"logout\", {\n item,\n sourceNode: item.shadowRoot?.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n });\n }\n\n fireMenuItemClick(e: CustomEvent): void {\n const { item, originalEvent } = e.detail;\n\n this.fireDecoratorEvent(\"profile-item-click\", {\n item,\n originalEvent,\n analyticsName: AnalyticsName.Header,\n sourceNode: item.shadowRoot.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n });\n }\n\n closeMenu():void {\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n closeIdentitiesPanel(): void {\n this._openIdentities = false;\n }\n\n setMenuItemsMobileMode(): void {\n if (this._isMobileMode && this.profileMenuLinks) {\n this.profileMenuLinks._isMobileMode = true;\n }\n }\n\n get linksList(): string {\n return this.links ? JSON.stringify([{\n subMenuLinkItems: JSON.parse(this.links),\n }]) : \"\";\n }\n\n get hasIdentities(): boolean {\n return !!this.identities?.length;\n }\n\n get userData(): UserData {\n return parseArrayFromString(this.loggedInUser) as UserData;\n }\n\n get identitiesList(): Array<ExtendedUserIdentity> {\n return parseArrayFromString<ExtendedUserIdentity>(this.identities).map((identity: UserIdentity) => ({\n ...identity,\n statusBadge: identity.isLogged ? \"\" : UDExStatusBadgeValueState.Warning,\n supportingText: [identity.name, identity.idsUser].filter(Boolean).join(\", \"),\n }));\n }\n\n get messageAvailable(): boolean {\n return !!this.message.length;\n }\n\n get logoutLink(): boolean {\n return !!this.logoutUrl?.length;\n }\n\n get rootClass(): string {\n const root = \"udex-masthead-profile-menu\";\n return this._openIdentities ? `${root} ${root}_switcher` : root;\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get profileMenuLinks(): UDExMastheadMenu | undefined | null {\n return this.shadowRoot?.querySelector<UDExMastheadMenu>(\"[udex-masthead-menu]\");\n }\n\n get btnBackText(): string {\n return this._isMobileMode ? this.switcherAccountText : translate(UDExMastheadProfileMenu, BACK);\n }\n\n get listTitleText(): string {\n return `${translate(UDExMastheadProfileMenu, OTHER_IDENTITIES)} (${this.identitiesList.length})`;\n }\n\n get addOrRemoveAccountText(): string {\n return translate(UDExMastheadProfileMenu, ADD_OR_REMOVE_ACCOUNT);\n }\n\n get switcherAccountText(): string {\n return translate(UDExMastheadProfileMenu, SWITCH_ACCOUNT);\n }\n\n get logoutText(): string {\n return translate(UDExMastheadProfileMenu, LOGOUT);\n }\n\n get isAtMostBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtMost(\"M\");\n }\n\n get isMobile(): boolean {\n return this.isAtMostBreakpointSizeM || this.mastheadShell?.isMobileMenuMode;\n }\n}\n\nUDExMastheadProfileMenu.define();\n\nexport default UDExMastheadProfileMenu;\nexport type { UDExMastheadProfileMenuItemClickEventDetail, UDExMastheadProfileMenuIdentityClickEventDetail, UDExMastheadProfileMenuAddOrRemoveClickEventDetail };\n"]}
1
+ {"version":3,"file":"MastheadProfileMenu.js","sourceRoot":"","sources":["../src/MastheadProfileMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport {\n LOGOUT, SWITCH_ACCOUNT, BACK, OTHER_IDENTITIES, ADD_OR_REMOVE_ACCOUNT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/Keys.js\";\nimport UDExMastheadMenu from \"./MastheadMenu.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExList from \"./List.js\";\nimport UDExLink from \"./Link.js\";\nimport UDExListItem from \"./ListItem.js\";\nimport UDExMastheadMenuItem from \"./MastheadMenuItem.js\";\nimport MastheadProfileMenuTemplate from \"./generated/templates/MastheadProfileMenuTemplate.lit.js\";\nimport parseArrayFromString from \"./utils/parseArrayFromString.js\";\nimport AnalyticsName from \"./types/AnalyticsName.js\";\nimport type UDExMastheadShell from \"./MastheadShell.js\";\nimport \"@ui5/webcomponents-icons/dist/slim-arrow-right.js\";\nimport \"@ui5/webcomponents-icons/dist/action.js\";\nimport type { LinkClickEventDetail } from \"@ui5/webcomponents/dist/Link.js\";\nimport UDExStatusBadgeValueState from \"./types/StatusBadgeValueState.js\";\nimport type { ResizeObserverCallback } from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport ResizeHandler from \"@ui5/webcomponents-base/delegate/ResizeHandler.js\";\nimport { BreakpointUtils } from \"./utils/Breakpoints.js\";\nimport translate from \"./utils/translate.js\";\n\n// Styles\nimport MastheadProfileMenuCss from \"./generated/themes/MastheadProfileMenu.css.js\";\n\nexport interface UserData {\n name?: string,\n username?: string,\n email?: string,\n avatarUrl?: string,\n avatarInitials?: string\n fallbackIcon?: string,\n}\n\nexport interface UserIdentity {\n avatarUrl: string,\n email: string,\n name: string,\n idsUser: string,\n isLogged: boolean,\n}\n\nexport interface ExtendedUserIdentity extends UserIdentity {\n supportingText: string;\n statusBadge: string;\n}\n\ntype UDExMastheadProfileMenuIdentityClickEventDetail = {\n item: ExtendedUserIdentity;\n analyticsName: AnalyticsName,\n};\n\ntype UDExMastheadProfileMenuItemClickEventDetail = {\n item: UDExMastheadMenuItem,\n originalEvent: PointerEvent,\n analyticsName: AnalyticsName,\n sourceNode: HTMLElement,\n}\n\ntype UDExMastheadProfileMenuAddOrRemoveClickEventDetail = {\n analyticsName: AnalyticsName,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n *\n * <h3>Usage</h3>\n *\n * For the <code>udex-masthead-profile-menu</code>\n * <h3>ES6 Module Import</h3>\n *\n * <code>import \"@sapudex/web-components/dist/MastheadProfileMenu.js\";</code>\n *\n * @constructor\n * @extends UI5Element\n * @public\n */\n@customElement({\n tag: \"udex-masthead-profile-menu\",\n renderer: litRender,\n styles: [UDExMastheadMenu.styles, MastheadProfileMenuCss],\n template: MastheadProfileMenuTemplate,\n dependencies: [\n UDExMastheadMenuItem,\n UDExMastheadMenu,\n UDExListItem,\n UDExButton,\n UDExList,\n UDExLink,\n ],\n})\n\n/**\n * Fired when use click Logout link\n * @public\n * @param {UDExMastheadMenuItem} item The clicked logout item\n * @param {HTMLElement} sourceNode The HTML element of the clicked logout item\n * @param {PointerEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked logout item\n */\n@event(\"logout\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when profile menu item is clicked\n *\n * @public\n * @param {UDExMastheadMenuItem} item The clicked profile menu item\n * @param {PointerEvent} originalEvent The original event object\n * @param {AnalyticsName} analyticsName The analytics name for the clicked profile menu item\n * @param {HTMLElement} sourceNode The HTML element of the clicked profile menu item\n */\n@event(\"profile-item-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fired when use click add or remove account button\n *\n * @public\n * @param {AnalyticsName} analyticsName The analytics name for the clicked add or remove account button\n */\n@event(\"add-or-remove-account-click\", { cancelable: true, bubbles: true })\n\n/**\n * Fires when identity item is clicked\n *\n * @public\n * @param {ExtendedUserIdentity} item The clicked identity item\n * @param {AnalyticsName} analyticsName The analytics name for the clicked identity item\n */\n@event(\"identity-item-click\", { cancelable: true, bubbles: true })\n\nclass UDExMastheadProfileMenu extends UI5Element {\n eventDetails!: {\n \"logout\": UDExMastheadProfileMenuItemClickEventDetail,\n \"profile-item-click\": UDExMastheadProfileMenuItemClickEventDetail,\n \"add-or-remove-account-click\": UDExMastheadProfileMenuAddOrRemoveClickEventDetail,\n \"identity-item-click\": UDExMastheadProfileMenuIdentityClickEventDetail,\n };\n\n /**\n * Defines the object of user identities\n *\n * @default \"\"\n * @public\n */\n @property()\n identities!: string;\n\n /**\n * Defines the object of link values\n *\n * @default \"\"\n * @public\n */\n @property()\n links!: string;\n\n /**\n * Defines the object of user profile data\n *\n * @default \"\"\n * @public\n */\n @property()\n loggedInUser!: string;\n\n /**\n * Defines the link for logout\n *\n * @default \"\"\n * @public\n */\n @property()\n logoutUrl!: string;\n\n /**\n * Defines the mobile mode for component\n *\n * @private\n */\n @property({ type: Boolean })\n _isMobileMode!: boolean;\n\n /**\n * Defines the open identities panel state\n *\n * @private\n */\n @property({ type: Boolean })\n _openIdentities: boolean = false;\n\n /**\n * Defines the request render state\n *\n * @private\n */\n @property({ type: Boolean, noAttribute: true })\n _requestRender = false;\n\n /**\n * Slot for message strip.\n *\n * @public\n */\n @slot({ type: Node, \"default\": false })\n message!: Array<Node>;\n\n /**\n * Slot for logout button.\n *\n * @public\n */\n @slot({ type: HTMLElement })\n logoutButton!: Array<Node>;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _mastheadShell!: UDExMastheadShell;\n _handleResizeBound: ResizeObserverCallback;\n _shouldFocusBackBtn!: boolean;\n _shouldFocusSwitchBtn!: boolean;\n _identitiesListClassName = \"udex-masthead-profile-menu__identities-list\";\n _profileMenuLinksClassName = \"udex-masthead-profile-menu__links\";\n\n constructor() {\n super();\n this._handleResizeBound = this.handleResize.bind(this);\n }\n\n onAfterRendering(): void {\n this._mastheadShell = this.mastheadShell;\n this.updateFocusState(this._shouldFocusBackBtn, this.focusBackBtn.bind(this));\n this.updateFocusState(this._shouldFocusSwitchBtn, this.focusSwitchBtn.bind(this));\n this.setMenuItemsMobileMode();\n this.checkScrollableElements();\n }\n\n onEnterDOM(): void {\n ResizeHandler.register(this, this._handleResizeBound);\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onExitDOM(): void {\n ResizeHandler.deregister(this, this._handleResizeBound);\n }\n\n handleResize(): void {\n this._isMobileMode = this.isMobile;\n\n if (this.profileMenuLinks) {\n this.profileMenuLinks._isMobileMode = this.isMobile;\n }\n\n this.checkScrollableElements();\n }\n\n handleSwitcherClick(): void {\n this._openIdentities = !this._openIdentities;\n this._shouldFocusBackBtn = this._openIdentities;\n this._shouldFocusSwitchBtn = !this._openIdentities;\n }\n\n handleUserLogoutClick(e: PointerEvent): void {\n this.fireLogoutClick(e);\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n handleProfileMenuItemClick(e: CustomEvent): void {\n this.fireMenuItemClick(e);\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n updateFocusState(shouldFocus: boolean, focusMethod: () => void): void {\n if (shouldFocus) {\n focusMethod();\n if (focusMethod === this.focusBackBtn) {\n this._shouldFocusBackBtn = false;\n } else if (focusMethod === this.focusSwitchBtn) {\n this._shouldFocusSwitchBtn = false;\n }\n }\n }\n\n handleKeydown(e: KeyboardEvent): void {\n if (isEscape(e) && this._openIdentities) {\n this.closeIdentitiesPanel();\n }\n }\n\n focusSwitchBtn(): void {\n this.focusElement(\".udex-masthead-profile-menu__btn-switcher\");\n }\n\n focusBackBtn(): void {\n this.focusElement(\".udex-masthead-profile-menu__btn-back\");\n }\n\n focusElement(selector: string): void {\n const element = this.shadowRoot?.querySelector<UDExButton>(selector);\n element?.focus();\n }\n\n fireEventIdentityItemClick(e: CustomEvent): void {\n const { item } = e.detail;\n const identity = this.identitiesList.find(({ idsUser }) => idsUser === item.id);\n const eventPrevented = !this.fireDecoratorEvent(\"identity-item-click\", {\n item: identity!,\n analyticsName: AnalyticsName.Header,\n });\n\n if (eventPrevented) {\n e.preventDefault();\n }\n\n if (this._isMobileMode) {\n this.closeMenu();\n }\n }\n\n fireEventAddOrRemoveAccountClick(e: CustomEvent<LinkClickEventDetail>): void {\n const eventPrevented = !this.fireDecoratorEvent(\"add-or-remove-account-click\", {\n analyticsName: AnalyticsName.Header,\n });\n\n if (eventPrevented) {\n e.preventDefault();\n }\n }\n\n fireLogoutClick(e: PointerEvent): void {\n const item = e.target as UDExMastheadMenuItem;\n const executeEvent = this.fireDecoratorEvent(\"logout\", {\n item,\n sourceNode: item.shadowRoot?.querySelector(\"a\") as HTMLElement,\n originalEvent: e,\n analyticsName: AnalyticsName.Header,\n });\n\n if (!executeEvent) {\n e.preventDefault();\n }\n }\n\n fireMenuItemClick(e: CustomEvent): void {\n const { item, originalEvent } = e.detail;\n\n this.fireDecoratorEvent(\"profile-item-click\", {\n item,\n originalEvent,\n analyticsName: AnalyticsName.Header,\n sourceNode: item.shadowRoot.querySelector(\".udex-masthead-menu-item\") as HTMLElement,\n });\n }\n\n checkScrollableElements(): void {\n if (this._openIdentities) {\n this.checkScrollableElement(this.identitiesHTMLElement, this._identitiesListClassName);\n }\n\n if (this.isMobile) {\n this.checkScrollableElement(this.profileMenuHTMLElement, this._profileMenuLinksClassName);\n }\n }\n\n checkScrollableElement(element: HTMLElement, className: string): void {\n if (element) {\n requestAnimationFrame(() => {\n if (this.isScrollableElement(element)) {\n element.classList.add(`${className}_scrollable`);\n }\n });\n }\n }\n\n scrollToTopProfileMenu(): void {\n setTimeout(() => {\n this.profileMenuHTMLElement.scrollTop = 0;\n }, 0);\n }\n\n isScrollableElement(element: HTMLElement): boolean {\n return element.scrollHeight > element.clientHeight;\n }\n\n handleProfileMenuShadowVisible(): void {\n this.toggleScrollableClass(\n this.profileMenuHTMLElement,\n this._profileMenuLinksClassName,\n this.scrollBottomProfileMenu,\n );\n }\n\n handleIdentitiesListShadowVisible(): void {\n this.toggleScrollableClass(\n this.identitiesHTMLElement,\n this._identitiesListClassName,\n this.scrollBottomIdentitiesList,\n );\n }\n\n toggleScrollableClass(el: HTMLElement, className: string, scrollBottom: number): void {\n if (scrollBottom === 0) {\n el.classList.remove(`${className}_scrollable`);\n } else {\n el.classList.add(`${className}_scrollable`);\n }\n }\n\n get scrollBottomIdentitiesList(): number {\n return this.calculateScrollBottom(this.identitiesHTMLElement);\n }\n\n get scrollBottomProfileMenu(): number {\n return this.calculateScrollBottom(this.profileMenuHTMLElement);\n }\n\n calculateScrollBottom(element: HTMLElement): number {\n return element.scrollHeight - element.scrollTop - element.clientHeight;\n }\n\n get profileMenuHTMLElement(): HTMLElement {\n return this.getElementByClassName(this._profileMenuLinksClassName);\n }\n\n get identitiesHTMLElement(): HTMLElement {\n return this.getElementByClassName(this._identitiesListClassName);\n }\n\n getElementByClassName(className: string): HTMLElement {\n return this.shadowRoot?.querySelector<HTMLElement>(`.${className}`) as HTMLElement;\n }\n\n closeMenu():void {\n this._mastheadShell.closeMobileMenu();\n this._mastheadShell.mobileBtn?.focus();\n }\n\n closeIdentitiesPanel(): void {\n this._openIdentities = false;\n }\n\n setMenuItemsMobileMode(): void {\n if (this._isMobileMode && this.profileMenuLinks) {\n this.profileMenuLinks._isMobileMode = true;\n }\n }\n\n get linksList(): string {\n return this.links ? JSON.stringify([{\n subMenuLinkItems: JSON.parse(this.links),\n }]) : \"\";\n }\n\n get hasIdentities(): boolean {\n return !!this.identities?.length;\n }\n\n get userData(): UserData {\n return parseArrayFromString(this.loggedInUser) as UserData;\n }\n\n get identitiesList(): Array<ExtendedUserIdentity> {\n return parseArrayFromString<ExtendedUserIdentity>(this.identities).map((identity: UserIdentity) => ({\n ...identity,\n statusBadge: identity.isLogged ? \"\" : UDExStatusBadgeValueState.Warning,\n supportingText: [identity.name, identity.idsUser].filter(Boolean).join(\", \"),\n }));\n }\n\n get messageAvailable(): boolean {\n return !!this.message.length;\n }\n\n get hasLogoutButton(): boolean {\n return !!this.logoutButton.length;\n }\n\n get logoutLink(): boolean {\n return !!this.logoutUrl?.length;\n }\n\n get rootClass(): string {\n const root = \"udex-masthead-profile-menu\";\n return this._openIdentities ? `${root} ${root}_switcher` : root;\n }\n\n get mastheadShell(): UDExMastheadShell {\n return document.querySelector<UDExMastheadShell>(\"[udex-masthead-shell]\")!;\n }\n\n get profileMenuLinks(): UDExMastheadMenu | undefined | null {\n return this.shadowRoot?.querySelector<UDExMastheadMenu>(\"[udex-masthead-menu]\");\n }\n\n get btnBackText(): string {\n return this._isMobileMode ? this.switcherAccountText : translate(UDExMastheadProfileMenu, BACK);\n }\n\n get listTitleText(): string {\n return `${translate(UDExMastheadProfileMenu, OTHER_IDENTITIES)} (${this.identitiesList.length})`;\n }\n\n get addOrRemoveAccountText(): string {\n return translate(UDExMastheadProfileMenu, ADD_OR_REMOVE_ACCOUNT);\n }\n\n get switcherAccountText(): string {\n return translate(UDExMastheadProfileMenu, SWITCH_ACCOUNT);\n }\n\n get logoutText(): string {\n return translate(UDExMastheadProfileMenu, LOGOUT);\n }\n\n get isAtMostBreakpointSizeM(): boolean {\n return BreakpointUtils.isAtMost(\"M\");\n }\n\n get isMobile(): boolean {\n return this.isAtMostBreakpointSizeM || this.mastheadShell?.isMobileMenuMode;\n }\n\n get hasActionButton(): boolean {\n return this.logoutLink || this.hasLogoutButton;\n }\n}\n\nUDExMastheadProfileMenu.define();\n\nexport default UDExMastheadProfileMenu;\nexport type { UDExMastheadProfileMenuItemClickEventDetail, UDExMastheadProfileMenuIdentityClickEventDetail, UDExMastheadProfileMenuAddOrRemoveClickEventDetail };\n"]}
@@ -123,6 +123,8 @@ declare class UDExPagination extends UI5Element {
123
123
  getPageAccessibleName(index: number): string;
124
124
  onPageClick(e: Event): void;
125
125
  emitChangeEvent(): void;
126
+ focusActivePage(): void;
127
+ focusActiveArrow(): void;
126
128
  onAfterRendering(): void;
127
129
  }
128
130
  export default UDExPagination;
@@ -137,7 +137,7 @@ let UDExPagination = UDExPagination_1 = class UDExPagination extends UI5Element
137
137
  const effectiveDisabledText = this._prevButtonPseudoDisabled ? `${translate(UDExPagination_1, DISABLED)}` : "";
138
138
  return `${translate(UDExPagination_1, PREVIOUS_PAGE)} ${effectiveDisabledText}`;
139
139
  }
140
- return `${translate(UDExPagination_1, PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;
140
+ return `${this.typeShort && this.nextButtonDisabled ? this.paginationShortAccessibleName : ""} ${translate(UDExPagination_1, PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;
141
141
  }
142
142
  get previousBtnTooltip() {
143
143
  return !this.prevButtonDisabled ? `${translate(UDExPagination_1, PREVIOUS_PAGE)}` : "";
@@ -147,7 +147,7 @@ let UDExPagination = UDExPagination_1 = class UDExPagination extends UI5Element
147
147
  const effectiveDisabledText = this._nextButtonPseudoDisabled ? `${translate(UDExPagination_1, DISABLED)}` : "";
148
148
  return `${translate(UDExPagination_1, NEXT_PAGE)} ${effectiveDisabledText}`;
149
149
  }
150
- return `${translate(UDExPagination_1, NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;
150
+ return `${this.typeShort && this.prevButtonDisabled ? this.paginationShortAccessibleName : ""} ${translate(UDExPagination_1, NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;
151
151
  }
152
152
  get nextBtnTooltip() {
153
153
  return !this.nextButtonDisabled ? `${translate(UDExPagination_1, NEXT_PAGE)}` : "";
@@ -193,8 +193,17 @@ let UDExPagination = UDExPagination_1 = class UDExPagination extends UI5Element
193
193
  return;
194
194
  }
195
195
  this.currentPageIndex = currentPage + 1;
196
+ const isLastPage = this.currentPageIndex === (this.pages - 1);
196
197
  this._pageFocusedManually = false;
197
- this._nextButtonPseudoDisabled = this.currentPageIndex === (this.pages - 1);
198
+ this._nextButtonPseudoDisabled = isLastPage;
199
+ if (isLastPage) {
200
+ if (this.typeShort) {
201
+ this.focusActiveArrow();
202
+ }
203
+ else {
204
+ this.focusActivePage();
205
+ }
206
+ }
198
207
  this.emitChangeEvent();
199
208
  }
200
209
  get effectiveNextButtonDisabled() {
@@ -216,8 +225,17 @@ let UDExPagination = UDExPagination_1 = class UDExPagination extends UI5Element
216
225
  return;
217
226
  }
218
227
  this.currentPageIndex -= 1;
228
+ const isFirstPage = this.currentPageIndex === 0;
219
229
  this._pageFocusedManually = false;
220
- this._prevButtonPseudoDisabled = this.currentPageIndex === 0;
230
+ this._prevButtonPseudoDisabled = isFirstPage;
231
+ if (isFirstPage) {
232
+ if (this.typeShort) {
233
+ this.focusActiveArrow();
234
+ }
235
+ else {
236
+ this.focusActivePage();
237
+ }
238
+ }
221
239
  this.emitChangeEvent();
222
240
  }
223
241
  setupPages(pages) {
@@ -291,10 +309,17 @@ let UDExPagination = UDExPagination_1 = class UDExPagination extends UI5Element
291
309
  emitChangeEvent() {
292
310
  this.fireDecoratorEvent("change", { currentPage: this.currentPageIndex + 1 });
293
311
  }
312
+ focusActivePage() {
313
+ const activePageItem = this.shadowRoot?.querySelector(`.udex-pagination__page[data-index="${this.currentPageIndex}"]`);
314
+ activePageItem?.focus();
315
+ }
316
+ focusActiveArrow() {
317
+ const activeArrow = this.shadowRoot?.querySelector(`.udex-pagination__arrow--${this.currentPageIndex === 0 ? "next" : "prev"}`);
318
+ activeArrow?.shadowRoot?.querySelector("button")?.focus();
319
+ }
294
320
  onAfterRendering() {
295
321
  if (this._pageFocusedManually) {
296
- const activePageItem = this.shadowRoot?.querySelector(".udex-pagination__page[active]");
297
- activePageItem?.focus();
322
+ this.focusActivePage();
298
323
  }
299
324
  if (this.type === UDExPaginationType.full) {
300
325
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../src/Pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n OF,\n PAGINATION_PAGE,\n SELECTED,\n ACTIVATE_PAGE,\n PREVIOUS_PAGE,\n NEXT_PAGE,\n CURRENT_PAGE,\n DISABLED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Button from \"./Button.js\";\nimport translate from \"./utils/translate.js\";\n\n// Template\nimport PaginationTemplate from \"./PaginationTemplate.js\";\n\n// Styles\nimport PaginationCss from \"./generated/themes/Pagination.css.js\";\n\nexport interface Page {\n index: number;\n value: number;\n active: boolean;\n accessibleName: string;\n ariaCurrent?: string\n}\n\nexport enum UDExPaginationType {\n full = \"full\",\n short = \"short\",\n}\n\nexport enum UDExDisplayType {\n desktop = \"desktop\",\n mobile = \"mobile\"\n}\n\ntype UDExPaginationChangeEventDetail = {\n currentPage: number,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>udex-pagination</code> component is a pagination component used to navigate thought the pages.\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-pagination\n * @public\n */\n@customElement({\n tag: \"udex-pagination\",\n renderer: jsxRenderer,\n styles: PaginationCss,\n template: PaginationTemplate,\n dependencies: [Button],\n})\n/**\n * Fires when pagination item was clicked.\n *\n * @allowPreventDefault\n * @param {number} currentPage The current page number.\n * @public\n */\n@event(\"change\", { bubbles: true })\nclass UDExPagination extends UI5Element {\n eventDetails!: {\n \"change\": UDExPaginationChangeEventDetail,\n };\n /**\n * Defines number of pages.\n *\n * @public\n * @default 0\n */\n @property({ type: Number })\n pages: number = 0;\n\n /**\n * Defines type of pagination.\n *\n * @public\n * @default \"full\"\n */\n @property()\n type: `${UDExPaginationType}` = UDExPaginationType.full;\n\n /**\n * Define display purpose.\n *\n * @public\n * @default \"desktop\"\n */\n @property()\n display: `${UDExDisplayType}` = UDExDisplayType.desktop;\n\n /**\n * Current index of pagination page.\n * @public\n * @default 0\n */\n @property({ type: Number })\n currentPageIndex: number = 0;\n\n /**\n * Defines direction of the input.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Defines if the previous button is in pseudo-disabled.\n *\n * @private\n */\n @property({ type: Boolean })\n _nextButtonPseudoDisabled!: boolean;\n\n /**\n * Defines if the previous button is in pseudo-disabled.\n *\n * @private\n */\n @property({ type: Boolean })\n _prevButtonPseudoDisabled!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _pages: Page[];\n _visiblePages: Page[];\n\n _previousPageElement?: HTMLElement;\n\n _mobileDisplayNumber: number;\n _desktopDisplayNumber: number;\n _firstPageIndex!: number;\n _lastPageIndex!: number;\n _pageFocusedManually!: boolean;\n\n constructor() {\n super();\n this.pages = 0;\n this._pages = [];\n this._visiblePages = [];\n this.currentPageIndex = 0;\n this._mobileDisplayNumber = 5;\n this._desktopDisplayNumber = 10;\n this._pageFocusedManually = false;\n }\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering(): void {\n this.setupPages(this.pages);\n }\n\n get nextButtonDisabled(): boolean {\n return this.currentPageIndex + 1 === this.pages;\n }\n\n get prevButtonDisabled(): boolean {\n return this.currentPageIndex === 0;\n }\n\n get typeFull(): boolean {\n return (\n this.type === UDExPaginationType.full || this.display === UDExDisplayType.mobile\n );\n }\n\n get typeShort(): boolean {\n return (\n this.type === UDExPaginationType.short && this.display !== UDExDisplayType.mobile\n );\n }\n\n get shortTextStart(): string {\n if (!this.pages) {\n return \"\";\n }\n return `${this.currentPageIndex + 1}`;\n }\n\n get shortTextEnd(): string {\n if (!this.pages) {\n return \"\";\n }\n return `${this.pages}`;\n }\n\n get shortTextSeparator(): string {\n if (!this.pages) {\n return \"\";\n }\n return ` ${translate(UDExPagination, OF)} `;\n }\n\n get paginationAccessibleName(): string {\n if (this.typeShort) {\n return this.paginationShortAccessibleName;\n }\n return `${translate(UDExPagination, CURRENT_PAGE)} ${this.currentPageIndex + 1}`;\n }\n\n get pageAccessibleName(): string {\n return translate(UDExPagination, PAGINATION_PAGE);\n }\n\n get paginationShortAccessibleName(): string {\n return `${this.pageAccessibleName} ${this.shortTextStart} ${this.shortTextSeparator} ${this.shortTextEnd}`;\n }\n\n get activatePageAccessibleText() {\n return translate(UDExPagination, ACTIVATE_PAGE);\n }\n\n get previousPageAccessibleName(): string {\n if (this._prevButtonPseudoDisabled || this.prevButtonDisabled) {\n const effectiveDisabledText = this._prevButtonPseudoDisabled ? `${translate(UDExPagination, DISABLED)}` : \"\";\n return `${translate(UDExPagination, PREVIOUS_PAGE)} ${effectiveDisabledText}`;\n }\n return `${translate(UDExPagination, PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;\n }\n\n get previousBtnTooltip(): string {\n return !this.prevButtonDisabled ? `${translate(UDExPagination, PREVIOUS_PAGE)}` : \"\";\n }\n\n get nextPageAccessibleName(): string {\n if (this._nextButtonPseudoDisabled || this.nextButtonDisabled) {\n const effectiveDisabledText = this._nextButtonPseudoDisabled ? `${translate(UDExPagination, DISABLED)}` : \"\";\n return `${translate(UDExPagination, NEXT_PAGE)} ${effectiveDisabledText}`;\n }\n return `${translate(UDExPagination, NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;\n }\n\n get nextBtnTooltip(): string {\n return !this.nextButtonDisabled ? `${translate(UDExPagination, NEXT_PAGE)}` : \"\";\n }\n\n get pagination(): Page[] {\n return this._visiblePages;\n }\n\n get paginationClass(): string {\n let classes = \"udex-pagination\";\n if (this._direction === \"rtl\") {\n classes = `${classes} udex-pagination--${this._direction}`;\n }\n if (!this.display) {\n return classes;\n }\n return `${classes} udex-pagination--${this.display} udex-pagination--${this.type}`;\n }\n\n get displayNumber(): number {\n const lastIndex = this.display === UDExDisplayType.mobile ? this._mobileDisplayNumber : this._desktopDisplayNumber;\n return lastIndex;\n }\n\n get pageOffset(): number {\n if (this.display === UDExDisplayType.mobile) {\n return Math.floor(this._mobileDisplayNumber / 2);\n }\n return this._desktopDisplayNumber / 2 - 1;\n }\n\n setActive(element: HTMLElement): void {\n const pageIndex = element.getAttribute(\"data-index\")\n ? parseInt(element.getAttribute(\"data-index\") || \"\")\n : null;\n if (pageIndex === null) {\n return;\n }\n\n this.currentPageIndex = pageIndex;\n this._pageFocusedManually = true;\n this._previousPageElement = element;\n }\n\n setNextPage(e: Event): void {\n e.preventDefault();\n const currentPage = this.currentPageIndex ?? 1;\n if (this.pages && currentPage >= this.pages - 1) {\n return;\n }\n\n this.currentPageIndex = currentPage + 1;\n this._pageFocusedManually = false;\n\n this._nextButtonPseudoDisabled = this.currentPageIndex === (this.pages - 1);\n\n this.emitChangeEvent();\n }\n\n get effectiveNextButtonDisabled(): boolean {\n return !this._nextButtonPseudoDisabled && this.nextButtonDisabled;\n }\n\n get effectivePrevButtonDisabled(): boolean {\n return !this._prevButtonPseudoDisabled && this.prevButtonDisabled;\n }\n\n handlePrevFocusOut(): void {\n this._prevButtonPseudoDisabled = false;\n }\n\n handleNextFocusOut(): void {\n this._nextButtonPseudoDisabled = false;\n }\n\n setPrevPage(e: Event): void {\n e.preventDefault();\n const currentPage = this.currentPageIndex ?? 1;\n if (this.pages && currentPage <= 0) {\n return;\n }\n this.currentPageIndex -= 1;\n this._pageFocusedManually = false;\n\n this._prevButtonPseudoDisabled = this.currentPageIndex === 0;\n\n this.emitChangeEvent();\n }\n\n setupPages(pages: number) {\n if (!pages) {\n this._visiblePages = [];\n return;\n }\n\n if (!this._pages.length || this._visiblePages.length < this.displayNumber) {\n this._firstPageIndex = 0;\n this._lastPageIndex = pages > this.displayNumber ? this.displayNumber : pages;\n this._pageFocusedManually = false;\n }\n\n this._pages = this.setupPagesData();\n\n if (this.currentPageIndex < this._firstPageIndex || this.currentPageIndex - this._firstPageIndex <= this.pageOffset) {\n this._visiblePages = this.shiftVisiblePages(true);\n return;\n }\n\n this._visiblePages = this.shiftVisiblePages();\n }\n\n setupPagesData(): Page[] {\n const updatedPages = [];\n if (this.pages) {\n this._previousPageElement?.removeAttribute(\"aria-current\");\n for (let index = 0; index < this.pages; index++) {\n const isCurrent = index === this.currentPageIndex;\n const ariaCurrent = \"page\";\n const accessibleName = this.getPageAccessibleName(index);\n updatedPages.push({\n index,\n value: index + 1,\n active: isCurrent,\n accessibleName,\n ...(isCurrent && { ariaCurrent }),\n });\n }\n }\n return updatedPages;\n }\n\n shiftVisiblePages(shiftBackwards: boolean = false): Page[] {\n if (shiftBackwards) {\n while (this.currentPageIndex - this._firstPageIndex < this.pageOffset && this._firstPageIndex > 0) {\n this._firstPageIndex--;\n this._lastPageIndex--;\n }\n } else {\n while (this._lastPageIndex - this.currentPageIndex - 1 < this.pageOffset && this._lastPageIndex < this.pages) {\n this._firstPageIndex++;\n this._lastPageIndex++;\n }\n }\n return this._pages.slice(this._firstPageIndex, this._lastPageIndex);\n }\n\n getPageAccessibleName(index: number): string {\n const isCurrent = index === this.currentPageIndex;\n\n const accessibleName = isCurrent ? `\n ${this.pageAccessibleName} ${index + 1} ${translate(UDExPagination, OF)} ${this.pages}, ${translate(UDExPagination, SELECTED)}` : `\n ${this.pageAccessibleName} ${index + 1} ${translate(UDExPagination, OF)} ${this.pages}`;\n\n return accessibleName;\n }\n\n onPageClick(e: Event) {\n e.preventDefault();\n const target = e.target as HTMLElement;\n const element = target !== e.currentTarget ? (target.parentNode as HTMLElement) : target;\n if (element.getAttribute(\"active\") !== null) {\n return;\n }\n this.setActive(element);\n this.emitChangeEvent();\n }\n\n emitChangeEvent() {\n this.fireDecoratorEvent(\"change\", { currentPage: this.currentPageIndex + 1 });\n }\n\n onAfterRendering() {\n if (this._pageFocusedManually) {\n const activePageItem = this.shadowRoot?.querySelector<HTMLElement>(\".udex-pagination__page[active]\");\n activePageItem?.focus();\n }\n\n if (this.type === UDExPaginationType.full) {\n return;\n }\n\n const shortPaginationElement = this.shadowRoot?.querySelector<HTMLElement>(\n \".udex-pagination__item--short\",\n );\n\n if (!shortPaginationElement) {\n return;\n }\n\n const directionStyles: string = window\n .getComputedStyle(shortPaginationElement)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n}\n\nUDExPagination.define();\n\nexport default UDExPagination;\nexport type { UDExPaginationChangeEventDetail };\n"]}
1
+ {"version":3,"file":"Pagination.js","sourceRoot":"","sources":["../src/Pagination.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport {\n OF,\n PAGINATION_PAGE,\n SELECTED,\n ACTIVATE_PAGE,\n PREVIOUS_PAGE,\n NEXT_PAGE,\n CURRENT_PAGE,\n DISABLED,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Button from \"./Button.js\";\nimport translate from \"./utils/translate.js\";\n\n// Template\nimport PaginationTemplate from \"./PaginationTemplate.js\";\n\n// Styles\nimport PaginationCss from \"./generated/themes/Pagination.css.js\";\n\nexport interface Page {\n index: number;\n value: number;\n active: boolean;\n accessibleName: string;\n ariaCurrent?: string\n}\n\nexport enum UDExPaginationType {\n full = \"full\",\n short = \"short\",\n}\n\nexport enum UDExDisplayType {\n desktop = \"desktop\",\n mobile = \"mobile\"\n}\n\ntype UDExPaginationChangeEventDetail = {\n currentPage: number,\n}\n\n/**\n * @class\n *\n * <h3 class=\"comment-api-title\">Overview</h3>\n *\n * The <code>udex-pagination</code> component is a pagination component used to navigate thought the pages.\n *\n * @constructor\n * @extends UI5Element\n * @tagname udex-pagination\n * @public\n */\n@customElement({\n tag: \"udex-pagination\",\n renderer: jsxRenderer,\n styles: PaginationCss,\n template: PaginationTemplate,\n dependencies: [Button],\n})\n/**\n * Fires when pagination item was clicked.\n *\n * @allowPreventDefault\n * @param {number} currentPage The current page number.\n * @public\n */\n@event(\"change\", { bubbles: true })\nclass UDExPagination extends UI5Element {\n eventDetails!: {\n \"change\": UDExPaginationChangeEventDetail,\n };\n /**\n * Defines number of pages.\n *\n * @public\n * @default 0\n */\n @property({ type: Number })\n pages: number = 0;\n\n /**\n * Defines type of pagination.\n *\n * @public\n * @default \"full\"\n */\n @property()\n type: `${UDExPaginationType}` = UDExPaginationType.full;\n\n /**\n * Define display purpose.\n *\n * @public\n * @default \"desktop\"\n */\n @property()\n display: `${UDExDisplayType}` = UDExDisplayType.desktop;\n\n /**\n * Current index of pagination page.\n * @public\n * @default 0\n */\n @property({ type: Number })\n currentPageIndex: number = 0;\n\n /**\n * Defines direction of the input.\n *\n * @private\n */\n @property({ type: String })\n _direction?: string;\n\n /**\n * Defines if the previous button is in pseudo-disabled.\n *\n * @private\n */\n @property({ type: Boolean })\n _nextButtonPseudoDisabled!: boolean;\n\n /**\n * Defines if the previous button is in pseudo-disabled.\n *\n * @private\n */\n @property({ type: Boolean })\n _prevButtonPseudoDisabled!: boolean;\n\n @i18n(\"@sapudex/web-components\")\n static i18nBundle: I18nBundle;\n\n _pages: Page[];\n _visiblePages: Page[];\n\n _previousPageElement?: HTMLElement;\n\n _mobileDisplayNumber: number;\n _desktopDisplayNumber: number;\n _firstPageIndex!: number;\n _lastPageIndex!: number;\n _pageFocusedManually!: boolean;\n\n constructor() {\n super();\n this.pages = 0;\n this._pages = [];\n this._visiblePages = [];\n this.currentPageIndex = 0;\n this._mobileDisplayNumber = 5;\n this._desktopDisplayNumber = 10;\n this._pageFocusedManually = false;\n }\n\n onEnterDOM() {\n if (isDesktop()) {\n this.setAttribute(\"desktop\", \"\");\n }\n }\n\n onBeforeRendering(): void {\n this.setupPages(this.pages);\n }\n\n get nextButtonDisabled(): boolean {\n return this.currentPageIndex + 1 === this.pages;\n }\n\n get prevButtonDisabled(): boolean {\n return this.currentPageIndex === 0;\n }\n\n get typeFull(): boolean {\n return (\n this.type === UDExPaginationType.full || this.display === UDExDisplayType.mobile\n );\n }\n\n get typeShort(): boolean {\n return (\n this.type === UDExPaginationType.short && this.display !== UDExDisplayType.mobile\n );\n }\n\n get shortTextStart(): string {\n if (!this.pages) {\n return \"\";\n }\n return `${this.currentPageIndex + 1}`;\n }\n\n get shortTextEnd(): string {\n if (!this.pages) {\n return \"\";\n }\n return `${this.pages}`;\n }\n\n get shortTextSeparator(): string {\n if (!this.pages) {\n return \"\";\n }\n return ` ${translate(UDExPagination, OF)} `;\n }\n\n get paginationAccessibleName(): string {\n if (this.typeShort) {\n return this.paginationShortAccessibleName;\n }\n return `${translate(UDExPagination, CURRENT_PAGE)} ${this.currentPageIndex + 1}`;\n }\n\n get pageAccessibleName(): string {\n return translate(UDExPagination, PAGINATION_PAGE);\n }\n\n get paginationShortAccessibleName(): string {\n return `${this.pageAccessibleName} ${this.shortTextStart} ${this.shortTextSeparator} ${this.shortTextEnd}`;\n }\n\n get activatePageAccessibleText() {\n return translate(UDExPagination, ACTIVATE_PAGE);\n }\n\n get previousPageAccessibleName(): string {\n if (this._prevButtonPseudoDisabled || this.prevButtonDisabled) {\n const effectiveDisabledText = this._prevButtonPseudoDisabled ? `${translate(UDExPagination, DISABLED)}` : \"\";\n return `${translate(UDExPagination, PREVIOUS_PAGE)} ${effectiveDisabledText}`;\n }\n return `${this.typeShort && this.nextButtonDisabled ? this.paginationShortAccessibleName : \"\"} ${translate(UDExPagination, PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;\n }\n\n get previousBtnTooltip(): string {\n return !this.prevButtonDisabled ? `${translate(UDExPagination, PREVIOUS_PAGE)}` : \"\";\n }\n\n get nextPageAccessibleName(): string {\n if (this._nextButtonPseudoDisabled || this.nextButtonDisabled) {\n const effectiveDisabledText = this._nextButtonPseudoDisabled ? `${translate(UDExPagination, DISABLED)}` : \"\";\n return `${translate(UDExPagination, NEXT_PAGE)} ${effectiveDisabledText}`;\n }\n return `${this.typeShort && this.prevButtonDisabled ? this.paginationShortAccessibleName : \"\"} ${translate(UDExPagination, NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;\n }\n\n get nextBtnTooltip(): string {\n return !this.nextButtonDisabled ? `${translate(UDExPagination, NEXT_PAGE)}` : \"\";\n }\n\n get pagination(): Page[] {\n return this._visiblePages;\n }\n\n get paginationClass(): string {\n let classes = \"udex-pagination\";\n if (this._direction === \"rtl\") {\n classes = `${classes} udex-pagination--${this._direction}`;\n }\n if (!this.display) {\n return classes;\n }\n return `${classes} udex-pagination--${this.display} udex-pagination--${this.type}`;\n }\n\n get displayNumber(): number {\n const lastIndex = this.display === UDExDisplayType.mobile ? this._mobileDisplayNumber : this._desktopDisplayNumber;\n return lastIndex;\n }\n\n get pageOffset(): number {\n if (this.display === UDExDisplayType.mobile) {\n return Math.floor(this._mobileDisplayNumber / 2);\n }\n return this._desktopDisplayNumber / 2 - 1;\n }\n\n setActive(element: HTMLElement): void {\n const pageIndex = element.getAttribute(\"data-index\")\n ? parseInt(element.getAttribute(\"data-index\") || \"\")\n : null;\n if (pageIndex === null) {\n return;\n }\n\n this.currentPageIndex = pageIndex;\n this._pageFocusedManually = true;\n this._previousPageElement = element;\n }\n\n setNextPage(e: Event): void {\n e.preventDefault();\n const currentPage = this.currentPageIndex ?? 1;\n if (this.pages && currentPage >= this.pages - 1) {\n return;\n }\n\n this.currentPageIndex = currentPage + 1;\n const isLastPage = this.currentPageIndex === (this.pages - 1);\n this._pageFocusedManually = false;\n this._nextButtonPseudoDisabled = isLastPage;\n\n if (isLastPage) {\n if (this.typeShort) {\n this.focusActiveArrow();\n } else {\n this.focusActivePage();\n }\n }\n\n this.emitChangeEvent();\n }\n\n get effectiveNextButtonDisabled(): boolean {\n return !this._nextButtonPseudoDisabled && this.nextButtonDisabled;\n }\n\n get effectivePrevButtonDisabled(): boolean {\n return !this._prevButtonPseudoDisabled && this.prevButtonDisabled;\n }\n\n handlePrevFocusOut(): void {\n this._prevButtonPseudoDisabled = false;\n }\n\n handleNextFocusOut(): void {\n this._nextButtonPseudoDisabled = false;\n }\n\n setPrevPage(e: Event): void {\n e.preventDefault();\n const currentPage = this.currentPageIndex ?? 1;\n if (this.pages && currentPage <= 0) {\n return;\n }\n\n this.currentPageIndex -= 1;\n const isFirstPage = this.currentPageIndex === 0;\n this._pageFocusedManually = false;\n this._prevButtonPseudoDisabled = isFirstPage;\n\n if (isFirstPage) {\n if (this.typeShort) {\n this.focusActiveArrow();\n } else {\n this.focusActivePage();\n }\n }\n\n this.emitChangeEvent();\n }\n\n setupPages(pages: number) {\n if (!pages) {\n this._visiblePages = [];\n return;\n }\n\n if (!this._pages.length || this._visiblePages.length < this.displayNumber) {\n this._firstPageIndex = 0;\n this._lastPageIndex = pages > this.displayNumber ? this.displayNumber : pages;\n this._pageFocusedManually = false;\n }\n\n this._pages = this.setupPagesData();\n\n if (this.currentPageIndex < this._firstPageIndex || this.currentPageIndex - this._firstPageIndex <= this.pageOffset) {\n this._visiblePages = this.shiftVisiblePages(true);\n return;\n }\n\n this._visiblePages = this.shiftVisiblePages();\n }\n\n setupPagesData(): Page[] {\n const updatedPages = [];\n if (this.pages) {\n this._previousPageElement?.removeAttribute(\"aria-current\");\n for (let index = 0; index < this.pages; index++) {\n const isCurrent = index === this.currentPageIndex;\n const ariaCurrent = \"page\";\n const accessibleName = this.getPageAccessibleName(index);\n updatedPages.push({\n index,\n value: index + 1,\n active: isCurrent,\n accessibleName,\n ...(isCurrent && { ariaCurrent }),\n });\n }\n }\n return updatedPages;\n }\n\n shiftVisiblePages(shiftBackwards: boolean = false): Page[] {\n if (shiftBackwards) {\n while (this.currentPageIndex - this._firstPageIndex < this.pageOffset && this._firstPageIndex > 0) {\n this._firstPageIndex--;\n this._lastPageIndex--;\n }\n } else {\n while (this._lastPageIndex - this.currentPageIndex - 1 < this.pageOffset && this._lastPageIndex < this.pages) {\n this._firstPageIndex++;\n this._lastPageIndex++;\n }\n }\n return this._pages.slice(this._firstPageIndex, this._lastPageIndex);\n }\n\n getPageAccessibleName(index: number): string {\n const isCurrent = index === this.currentPageIndex;\n\n const accessibleName = isCurrent ? `\n ${this.pageAccessibleName} ${index + 1} ${translate(UDExPagination, OF)} ${this.pages}, ${translate(UDExPagination, SELECTED)}` : `\n ${this.pageAccessibleName} ${index + 1} ${translate(UDExPagination, OF)} ${this.pages}`;\n\n return accessibleName;\n }\n\n onPageClick(e: Event) {\n e.preventDefault();\n const target = e.target as HTMLElement;\n const element = target !== e.currentTarget ? (target.parentNode as HTMLElement) : target;\n if (element.getAttribute(\"active\") !== null) {\n return;\n }\n this.setActive(element);\n this.emitChangeEvent();\n }\n\n emitChangeEvent() {\n this.fireDecoratorEvent(\"change\", { currentPage: this.currentPageIndex + 1 });\n }\n\n focusActivePage() {\n const activePageItem = this.shadowRoot?.querySelector<HTMLElement>(`.udex-pagination__page[data-index=\"${this.currentPageIndex}\"]`);\n activePageItem?.focus();\n }\n\n focusActiveArrow() {\n const activeArrow = this.shadowRoot?.querySelector(`.udex-pagination__arrow--${this.currentPageIndex === 0 ? \"next\" : \"prev\"}`);\n activeArrow?.shadowRoot?.querySelector<HTMLElement>(\"button\")?.focus();\n }\n\n onAfterRendering() {\n if (this._pageFocusedManually) {\n this.focusActivePage();\n }\n\n if (this.type === UDExPaginationType.full) {\n return;\n }\n\n const shortPaginationElement = this.shadowRoot?.querySelector<HTMLElement>(\n \".udex-pagination__item--short\",\n );\n\n if (!shortPaginationElement) {\n return;\n }\n\n const directionStyles: string = window\n .getComputedStyle(shortPaginationElement)\n .getPropertyValue(\"direction\");\n if (!directionStyles) {\n this._direction = \"ltr\";\n } else {\n this._direction = directionStyles;\n }\n }\n}\n\nUDExPagination.define();\n\nexport default UDExPagination;\nexport type { UDExPaginationChangeEventDetail };\n"]}
@@ -10,14 +10,15 @@ export default function PaginationTemplate() {
10
10
  if (!this.pages) {
11
11
  return (_jsx(_Fragment, {}));
12
12
  }
13
- return (_jsx("nav", { class: this.paginationClass, role: "navigation", "aria-label": this.paginationAccessibleName, children: _jsxs("ul", { class: "udex-pagination__list", children: [_jsx("li", { class: "udex-pagination__item--prev udex-pagination__item", children: _jsx(UDExButton, { "aria-disabled": this.effectivePrevButtonDisabled, ...(this._prevButtonPseudoDisabled ? { "_aria-disabled": "" } : {}), "accessible-name": this.previousPageAccessibleName, tooltip: this.previousBtnTooltip, onFocusOut: this.handlePrevFocusOut, icon: navigationLeftArrow, onClick: this.setPrevPage, design: UDExButtonDesign.Tertiary, size: UDExButtonSize.Large }) }), this.typeFull ? renderFullPagination.call(this) : "", this.typeShort ? renderShortPagination.call(this) : "", _jsx("li", { class: "udex-pagination__item--next udex-pagination__item", children: _jsx(UDExButton, { "aria-disabled": this.effectiveNextButtonDisabled, ...(this._nextButtonPseudoDisabled ? { "_aria-disabled": "" } : {}), "accessible-name": this.nextPageAccessibleName, tooltip: this.nextBtnTooltip, onFocusOut: this.handleNextFocusOut, icon: navigationRightArrow, onClick: this.setNextPage, design: UDExButtonDesign.Tertiary, size: UDExButtonSize.Large }) })] }) }));
13
+ const rootClass = "udex-pagination";
14
+ return (_jsx("nav", { class: this.paginationClass, role: "navigation", "aria-label": this.paginationAccessibleName, children: _jsxs("ul", { class: `${rootClass}__list`, children: [_jsx("li", { class: `${rootClass}__item ${rootClass}__item--prev`, children: _jsx(UDExButton, { class: `${rootClass}__arrow ${rootClass}__arrow--prev`, disabled: this.effectivePrevButtonDisabled, ...(this._prevButtonPseudoDisabled ? { "_aria-disabled": "" } : {}), "accessible-name": this.previousPageAccessibleName, tooltip: this.previousBtnTooltip, onFocusOut: this.handlePrevFocusOut, icon: navigationLeftArrow, onClick: this.setPrevPage, design: UDExButtonDesign.Tertiary, size: UDExButtonSize.Large }) }), this.typeFull ? renderFullPagination.call(this, rootClass) : "", this.typeShort ? renderShortPagination.call(this, rootClass) : "", _jsx("li", { class: `${rootClass}__item ${rootClass}__item--next`, children: _jsx(UDExButton, { class: `${rootClass}__arrow ${rootClass}__arrow--next`, disabled: this.effectiveNextButtonDisabled, ...(this._nextButtonPseudoDisabled ? { "_aria-disabled": "" } : {}), "accessible-name": this.nextPageAccessibleName, tooltip: this.nextBtnTooltip, onFocusOut: this.handleNextFocusOut, icon: navigationRightArrow, onClick: this.setNextPage, design: UDExButtonDesign.Tertiary, size: UDExButtonSize.Large }) })] }) }));
14
15
  }
15
- function renderFullPagination() {
16
+ function renderFullPagination(rootClass) {
16
17
  return this.pagination.map((page, i) => {
17
- return (_jsx("li", { class: "udex-pagination__item", children: _jsx("a", { class: "udex-pagination__page", href: "#", "aria-label": page.accessibleName, onClick: this.onPageClick, ...(page.active ? { active: "" } : {}), "aria-current": page.ariaCurrent, "data-index": page.index, children: _jsx("span", { class: "udex-pagination__page--value", children: page.value }) }) }, i));
18
+ return (_jsx("li", { class: `${rootClass}__item`, children: _jsx("a", { class: `${rootClass}__page`, href: "#", "aria-label": page.accessibleName, onClick: this.onPageClick, ...(page.active ? { active: "" } : {}), "aria-current": page.ariaCurrent, "data-index": page.index, children: _jsx("span", { class: `${rootClass}__page--value`, children: page.value }) }) }, i));
18
19
  });
19
20
  }
20
- function renderShortPagination() {
21
- return (_jsxs("li", { class: "udex-pagination__item udex-pagination__item--short", "tab-index": "-1", "aria-label": this.paginationShortAccessibleName, children: [_jsx("span", { class: "udex-pagination__item--short-value", children: this.shortTextStart }), _jsx("span", { class: "udex-pagination__item--short-separator", children: this.shortTextSeparator }), _jsx("span", { class: "udex-pagination__item--short-value", children: this.shortTextEnd })] }));
21
+ function renderShortPagination(rootClass) {
22
+ return (_jsxs("li", { class: `${rootClass}__item ${rootClass}__item--short`, "tab-index": "-1", "aria-label": this.paginationShortAccessibleName, children: [_jsx("span", { class: `${rootClass}__item--short-value`, children: this.shortTextStart }), _jsx("span", { class: `${rootClass}__item--short-separator`, children: this.shortTextSeparator }), _jsx("span", { class: `${rootClass}__item--short-value`, children: this.shortTextEnd })] }));
22
23
  }
23
24
  //# sourceMappingURL=PaginationTemplate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationTemplate.js","sourceRoot":"","sources":["../src/PaginationTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExPagination from \"./Pagination.js\";\nimport navigationLeftArrow from \"@ui5/webcomponents-icons/dist/navigation-left-arrow.js\";\nimport navigationRightArrow from \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport type { AriaCurrent } from \"@ui5/webcomponents-base/dist/types.js\";\n\nexport default function PaginationTemplate(this: UDExPagination) {\n // This can maybe be cleaned up nicer as we can't simply\n // return empty(\"return;\") as the renderer expects an element\n if (!this.pages) { return (<></>); }\n\n return (\n <nav class={this.paginationClass} role=\"navigation\" aria-label={this.paginationAccessibleName}>\n <ul class=\"udex-pagination__list\">\n <li class=\"udex-pagination__item--prev udex-pagination__item\">\n <UDExButton\n aria-disabled={this.effectivePrevButtonDisabled}\n {...(this._prevButtonPseudoDisabled ? { \"_aria-disabled\": \"\" } : {})}\n accessible-name={this.previousPageAccessibleName}\n tooltip={this.previousBtnTooltip}\n onFocusOut={this.handlePrevFocusOut}\n icon={navigationLeftArrow}\n onClick={this.setPrevPage}\n design={UDExButtonDesign.Tertiary}\n size={UDExButtonSize.Large}\n ></UDExButton>\n </li>\n\n { this.typeFull ? renderFullPagination.call(this) : \"\" }\n { this.typeShort ? renderShortPagination.call(this) : \"\" }\n\n <li class=\"udex-pagination__item--next udex-pagination__item\">\n <UDExButton\n aria-disabled={this.effectiveNextButtonDisabled}\n {...(this._nextButtonPseudoDisabled ? { \"_aria-disabled\": \"\" } : {})}\n accessible-name={this.nextPageAccessibleName}\n tooltip={this.nextBtnTooltip}\n onFocusOut={this.handleNextFocusOut}\n icon={navigationRightArrow}\n onClick={this.setNextPage}\n design={UDExButtonDesign.Tertiary}\n size={UDExButtonSize.Large}\n ></UDExButton>\n </li>\n </ul>\n </nav>\n );\n}\n\nfunction renderFullPagination(this: UDExPagination) {\n return this.pagination.map((page, i) => {\n return (\n <li key={i} class=\"udex-pagination__item\">\n <a\n class=\"udex-pagination__page\"\n href=\"#\"\n aria-label={page.accessibleName}\n onClick={this.onPageClick}\n {...(page.active ? { active: \"\" } : {})}\n aria-current={page.ariaCurrent as AriaCurrent}\n data-index={page.index}\n >\n <span class=\"udex-pagination__page--value\">{page.value}</span>\n </a>\n </li>\n );\n });\n}\n\nfunction renderShortPagination(this: UDExPagination) {\n return (\n <li class=\"udex-pagination__item udex-pagination__item--short\" tab-index=\"-1\" aria-label={this.paginationShortAccessibleName}>\n <span class=\"udex-pagination__item--short-value\">{this.shortTextStart}</span>\n <span class=\"udex-pagination__item--short-separator\">{this.shortTextSeparator}</span>\n <span class=\"udex-pagination__item--short-value\">{this.shortTextEnd}</span>\n </li>\n );\n}\n"]}
1
+ {"version":3,"file":"PaginationTemplate.js","sourceRoot":"","sources":["../src/PaginationTemplate.tsx"],"names":[],"mappings":"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","sourcesContent":["import type UDExPagination from \"./Pagination.js\";\nimport navigationLeftArrow from \"@ui5/webcomponents-icons/dist/navigation-left-arrow.js\";\nimport navigationRightArrow from \"@ui5/webcomponents-icons/dist/navigation-right-arrow.js\";\nimport UDExButton from \"./Button.js\";\nimport UDExButtonDesign from \"./types/ButtonDesign.js\";\nimport UDExButtonSize from \"./types/ButtonSize.js\";\nimport type { AriaCurrent } from \"@ui5/webcomponents-base/dist/types.js\";\n\nexport default function PaginationTemplate(this: UDExPagination) {\n // This can maybe be cleaned up nicer as we can't simply\n // return empty(\"return;\") as the renderer expects an element\n if (!this.pages) { return (<></>); }\n const rootClass = \"udex-pagination\";\n\n return (\n <nav class={this.paginationClass} role=\"navigation\" aria-label={this.paginationAccessibleName}>\n <ul class={`${rootClass}__list`}>\n <li class={`${rootClass}__item ${rootClass}__item--prev`}>\n <UDExButton\n class={`${rootClass}__arrow ${rootClass}__arrow--prev`}\n disabled={this.effectivePrevButtonDisabled}\n {...(this._prevButtonPseudoDisabled ? { \"_aria-disabled\": \"\" } : {})}\n accessible-name={this.previousPageAccessibleName}\n tooltip={this.previousBtnTooltip}\n onFocusOut={this.handlePrevFocusOut}\n icon={navigationLeftArrow}\n onClick={this.setPrevPage}\n design={UDExButtonDesign.Tertiary}\n size={UDExButtonSize.Large}\n ></UDExButton>\n </li>\n\n { this.typeFull ? renderFullPagination.call(this, rootClass) : \"\" }\n { this.typeShort ? renderShortPagination.call(this, rootClass) : \"\" }\n\n <li class={`${rootClass}__item ${rootClass}__item--next`}>\n <UDExButton\n class={`${rootClass}__arrow ${rootClass}__arrow--next`}\n disabled={this.effectiveNextButtonDisabled}\n {...(this._nextButtonPseudoDisabled ? { \"_aria-disabled\": \"\" } : {})}\n accessible-name={this.nextPageAccessibleName}\n tooltip={this.nextBtnTooltip}\n onFocusOut={this.handleNextFocusOut}\n icon={navigationRightArrow}\n onClick={this.setNextPage}\n design={UDExButtonDesign.Tertiary}\n size={UDExButtonSize.Large}\n ></UDExButton>\n </li>\n </ul>\n </nav>\n );\n}\n\nfunction renderFullPagination(this: UDExPagination, rootClass: string) {\n return this.pagination.map((page, i) => {\n return (\n <li key={i} class={`${rootClass}__item`}>\n <a\n class={`${rootClass}__page`}\n href=\"#\"\n aria-label={page.accessibleName}\n onClick={this.onPageClick}\n {...(page.active ? { active: \"\" } : {})}\n aria-current={page.ariaCurrent as AriaCurrent}\n data-index={page.index}\n >\n <span class={`${rootClass}__page--value`}>{page.value}</span>\n </a>\n </li>\n );\n });\n}\n\nfunction renderShortPagination(this: UDExPagination, rootClass: string) {\n return (\n <li class={`${rootClass}__item ${rootClass}__item--short`} tab-index=\"-1\" aria-label={this.paginationShortAccessibleName}>\n <span class={`${rootClass}__item--short-value`}>{this.shortTextStart}</span>\n <span class={`${rootClass}__item--short-separator`}>{this.shortTextSeparator}</span>\n <span class={`${rootClass}__item--short-value`}>{this.shortTextEnd}</span>\n </li>\n );\n}\n"]}
package/dist/Tooltip.js CHANGED
@@ -9,12 +9,11 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
9
9
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
10
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
11
11
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
12
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
13
- import Popover from "@ui5/webcomponents/dist/Popover.js";
12
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
14
13
  import PopupAccessibleRole from "@ui5/webcomponents/dist/types/PopupAccessibleRole.js";
15
14
  import { HorizontalAlign, Placement, VerticalAlign } from "./types/Dropdown.js";
16
15
  // Template
17
- import TooltipTemplate from "./generated/templates/TooltipTemplate.lit.js";
16
+ import TooltipTemplate from "./TooltipTemplate.js";
18
17
  // Styles
19
18
  import TooltipCss from "./generated/themes/Tooltip.css.js";
20
19
  /**
@@ -142,10 +141,9 @@ __decorate([
142
141
  UDExTooltip = __decorate([
143
142
  customElement({
144
143
  tag: "udex-tooltip",
145
- renderer: litRender,
144
+ renderer: jsxRenderer,
146
145
  styles: TooltipCss,
147
146
  template: TooltipTemplate,
148
- dependencies: [Popover],
149
147
  })
150
148
  /**
151
149
  * Fired before the component is opened. This event can be cancelled, which will prevent the popup from opening.