@ui5/webcomponents-fiori 2.22.0-rc.4 → 2.22.0-rc.6

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 (214) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/DynamicPage.d.ts +1 -1
  4. package/dist/DynamicPage.js +8 -3
  5. package/dist/DynamicPage.js.map +1 -1
  6. package/dist/DynamicSideContent.d.ts +8 -3
  7. package/dist/DynamicSideContent.js +15 -4
  8. package/dist/DynamicSideContent.js.map +1 -1
  9. package/dist/DynamicSideContentTemplate.js +2 -2
  10. package/dist/DynamicSideContentTemplate.js.map +1 -1
  11. package/dist/NavigationMenuItemTemplate.d.ts +2 -2
  12. package/dist/NavigationMenuItemTemplate.js.map +1 -1
  13. package/dist/NotificationListItem.d.ts +8 -3
  14. package/dist/NotificationListItem.js +17 -3
  15. package/dist/NotificationListItem.js.map +1 -1
  16. package/dist/NotificationListItemBase.js +8 -3
  17. package/dist/NotificationListItemBase.js.map +1 -1
  18. package/dist/Search.d.ts +4 -0
  19. package/dist/Search.js.map +1 -1
  20. package/dist/SearchItemShowMore.d.ts +2 -1
  21. package/dist/SearchItemShowMore.js +1 -1
  22. package/dist/SearchItemShowMore.js.map +1 -1
  23. package/dist/ShellBarSearch.d.ts +1 -0
  24. package/dist/ShellBarSearch.js +11 -0
  25. package/dist/ShellBarSearch.js.map +1 -1
  26. package/dist/Timeline.d.ts +3 -35
  27. package/dist/Timeline.js +4 -62
  28. package/dist/Timeline.js.map +1 -1
  29. package/dist/TimelineItem.d.ts +0 -2
  30. package/dist/TimelineItem.js +0 -2
  31. package/dist/TimelineItem.js.map +1 -1
  32. package/dist/TimelineTemplate.js +1 -1
  33. package/dist/TimelineTemplate.js.map +1 -1
  34. package/dist/UploadCollectionItem.d.ts +2 -0
  35. package/dist/UploadCollectionItem.js +24 -0
  36. package/dist/UploadCollectionItem.js.map +1 -1
  37. package/dist/UserMenuItem.d.ts +24 -0
  38. package/dist/UserMenuItem.js +52 -3
  39. package/dist/UserMenuItem.js.map +1 -1
  40. package/dist/UserMenuItemTemplate.js +10 -1
  41. package/dist/UserMenuItemTemplate.js.map +1 -1
  42. package/dist/ViewSettingsDialog.d.ts +12 -11
  43. package/dist/ViewSettingsDialog.js +26 -23
  44. package/dist/ViewSettingsDialog.js.map +1 -1
  45. package/dist/ViewSettingsDialogCustomTab.d.ts +5 -5
  46. package/dist/ViewSettingsDialogCustomTab.js +7 -7
  47. package/dist/ViewSettingsDialogCustomTab.js.map +1 -1
  48. package/dist/ViewSettingsDialogTemplate.js +2 -2
  49. package/dist/ViewSettingsDialogTemplate.js.map +1 -1
  50. package/dist/Wizard.d.ts +6 -0
  51. package/dist/Wizard.js +17 -0
  52. package/dist/Wizard.js.map +1 -1
  53. package/dist/bundle.esm.js +0 -2
  54. package/dist/bundle.esm.js.map +1 -1
  55. package/dist/css/themes/SearchField.css +1 -1
  56. package/dist/css/themes/ShellBar.css +1 -1
  57. package/dist/css/themes/ShellBarItem.css +1 -1
  58. package/dist/css/themes/Timeline.css +1 -1
  59. package/dist/css/themes/UserMenuItem.css +1 -1
  60. package/dist/custom-elements-internal.json +772 -716
  61. package/dist/custom-elements.json +444 -474
  62. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  63. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  64. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  65. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  66. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  67. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  68. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  69. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  70. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  71. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  72. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  73. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  74. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  75. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  76. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  77. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  78. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  79. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  80. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  81. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  82. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  83. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  84. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  85. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  86. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  87. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  88. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  89. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  90. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  91. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  92. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  93. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  94. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  95. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  96. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  97. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  98. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  99. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  100. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  101. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  102. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  103. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  113. package/dist/generated/i18n/i18n-defaults.d.ts +1 -11
  114. package/dist/generated/i18n/i18n-defaults.js +5 -15
  115. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  116. package/dist/generated/themes/SearchField.css.d.ts +1 -1
  117. package/dist/generated/themes/SearchField.css.js +1 -1
  118. package/dist/generated/themes/SearchField.css.js.map +1 -1
  119. package/dist/generated/themes/ShellBar.css.d.ts +1 -1
  120. package/dist/generated/themes/ShellBar.css.js +1 -1
  121. package/dist/generated/themes/ShellBar.css.js.map +1 -1
  122. package/dist/generated/themes/ShellBarItem.css.d.ts +1 -1
  123. package/dist/generated/themes/ShellBarItem.css.js +1 -1
  124. package/dist/generated/themes/ShellBarItem.css.js.map +1 -1
  125. package/dist/generated/themes/Timeline.css.d.ts +1 -1
  126. package/dist/generated/themes/Timeline.css.js +1 -1
  127. package/dist/generated/themes/Timeline.css.js.map +1 -1
  128. package/dist/generated/themes/UserMenuItem.css.d.ts +1 -1
  129. package/dist/generated/themes/UserMenuItem.css.js +1 -1
  130. package/dist/generated/themes/UserMenuItem.css.js.map +1 -1
  131. package/dist/vscode.html-custom-data.json +86 -67
  132. package/dist/web-types.json +132 -198
  133. package/package-scripts.cjs +1 -0
  134. package/package.json +7 -7
  135. package/src/DynamicSideContentTemplate.tsx +2 -2
  136. package/src/NavigationMenuItemTemplate.tsx +3 -3
  137. package/src/TimelineTemplate.tsx +0 -7
  138. package/src/UserMenuItemTemplate.tsx +19 -1
  139. package/src/ViewSettingsDialogTemplate.tsx +3 -3
  140. package/src/i18n/messagebundle.properties +1 -31
  141. package/src/i18n/messagebundle_ar.properties +4 -4
  142. package/src/i18n/messagebundle_bg.properties +5 -5
  143. package/src/i18n/messagebundle_ca.properties +5 -5
  144. package/src/i18n/messagebundle_cnr.properties +4 -4
  145. package/src/i18n/messagebundle_cs.properties +4 -4
  146. package/src/i18n/messagebundle_cy.properties +4 -4
  147. package/src/i18n/messagebundle_da.properties +5 -5
  148. package/src/i18n/messagebundle_de.properties +4 -4
  149. package/src/i18n/messagebundle_el.properties +4 -4
  150. package/src/i18n/messagebundle_en.properties +4 -4
  151. package/src/i18n/messagebundle_en_GB.properties +4 -4
  152. package/src/i18n/messagebundle_en_US_sappsd.properties +4 -4
  153. package/src/i18n/messagebundle_en_US_saprigi.properties +4 -4
  154. package/src/i18n/messagebundle_en_US_saptrc.properties +4 -4
  155. package/src/i18n/messagebundle_es.properties +6 -6
  156. package/src/i18n/messagebundle_es_MX.properties +5 -5
  157. package/src/i18n/messagebundle_et.properties +4 -4
  158. package/src/i18n/messagebundle_fi.properties +4 -4
  159. package/src/i18n/messagebundle_fr.properties +4 -4
  160. package/src/i18n/messagebundle_fr_CA.properties +4 -4
  161. package/src/i18n/messagebundle_hi.properties +4 -4
  162. package/src/i18n/messagebundle_hr.properties +4 -4
  163. package/src/i18n/messagebundle_hu.properties +4 -4
  164. package/src/i18n/messagebundle_id.properties +6 -6
  165. package/src/i18n/messagebundle_it.properties +4 -4
  166. package/src/i18n/messagebundle_iw.properties +4 -4
  167. package/src/i18n/messagebundle_ja.properties +4 -4
  168. package/src/i18n/messagebundle_kk.properties +5 -5
  169. package/src/i18n/messagebundle_ko.properties +3 -3
  170. package/src/i18n/messagebundle_lt.properties +4 -4
  171. package/src/i18n/messagebundle_lv.properties +4 -4
  172. package/src/i18n/messagebundle_mk.properties +6 -6
  173. package/src/i18n/messagebundle_ms.properties +11 -11
  174. package/src/i18n/messagebundle_nl.properties +4 -4
  175. package/src/i18n/messagebundle_no.properties +4 -4
  176. package/src/i18n/messagebundle_pl.properties +6 -6
  177. package/src/i18n/messagebundle_pt.properties +5 -5
  178. package/src/i18n/messagebundle_pt_PT.properties +4 -4
  179. package/src/i18n/messagebundle_ro.properties +4 -4
  180. package/src/i18n/messagebundle_ru.properties +4 -4
  181. package/src/i18n/messagebundle_sh.properties +4 -4
  182. package/src/i18n/messagebundle_sk.properties +4 -4
  183. package/src/i18n/messagebundle_sl.properties +5 -5
  184. package/src/i18n/messagebundle_sr.properties +4 -4
  185. package/src/i18n/messagebundle_sv.properties +4 -4
  186. package/src/i18n/messagebundle_th.properties +3 -3
  187. package/src/i18n/messagebundle_tr.properties +4 -4
  188. package/src/i18n/messagebundle_uk.properties +7 -7
  189. package/src/i18n/messagebundle_vi.properties +3 -3
  190. package/src/i18n/messagebundle_zh_CN.properties +3 -3
  191. package/src/i18n/messagebundle_zh_TW.properties +3 -3
  192. package/src/themes/SearchField.css +1 -1
  193. package/src/themes/ShellBar.css +4 -1
  194. package/src/themes/ShellBarItem.css +3 -1
  195. package/src/themes/Timeline.css +7 -21
  196. package/src/themes/UserMenuItem.css +37 -3
  197. package/dist/TimelineFilterOption.d.ts +0 -37
  198. package/dist/TimelineFilterOption.js +0 -59
  199. package/dist/TimelineFilterOption.js.map +0 -1
  200. package/dist/TimelineHeaderBar.d.ts +0 -114
  201. package/dist/TimelineHeaderBar.js +0 -264
  202. package/dist/TimelineHeaderBar.js.map +0 -1
  203. package/dist/TimelineHeaderBarTemplate.d.ts +0 -2
  204. package/dist/TimelineHeaderBarTemplate.js +0 -18
  205. package/dist/TimelineHeaderBarTemplate.js.map +0 -1
  206. package/dist/css/themes/TimelineHeaderBar.css +0 -1
  207. package/dist/generated/themes/TimelineHeaderBar.css.d.ts +0 -2
  208. package/dist/generated/themes/TimelineHeaderBar.css.js +0 -8
  209. package/dist/generated/themes/TimelineHeaderBar.css.js.map +0 -1
  210. package/dist/types/TimelineSortOrder.d.ts +0 -18
  211. package/dist/types/TimelineSortOrder.js +0 -20
  212. package/dist/types/TimelineSortOrder.js.map +0 -1
  213. package/src/TimelineHeaderBarTemplate.tsx +0 -104
  214. package/src/themes/TimelineHeaderBar.css +0 -17
package/dist/Timeline.js CHANGED
@@ -16,7 +16,7 @@ import { isSpace, isEnter, isUp, isDown, isLeft, isRight, isF2, } from "@ui5/web
16
16
  import "./TimelineItem.js";
17
17
  import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
18
18
  import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
19
- import { TIMELINE_ARIA_LABEL, TIMELINE_LOAD_MORE_BUTTON_TEXT, } from "./generated/i18n/i18n-defaults.js";
19
+ import { TIMELINE_ARIA_LABEL, TIMELINE_LOAD_MORE_BUTTON_TEXT } from "./generated/i18n/i18n-defaults.js";
20
20
  import TimelineTemplate from "./TimelineTemplate.js";
21
21
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
22
22
  import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
@@ -43,15 +43,6 @@ const GROWING_WITH_SCROLL_DEBOUNCE_RATE = 250; // ms
43
43
  * These entries can be generated by the system (for example, value XY changed from A to B), or added manually.
44
44
  * There are two distinct variants of the timeline: basic and social. The basic timeline is read-only,
45
45
  * while the social timeline offers a high level of interaction and collaboration, and is integrated within SAP Jam.
46
- *
47
- * ### Header Bar
48
- *
49
- * The Timeline supports a `header-bar` slot for search, filter, and sort functionality.
50
- * Use the `ui5-timeline-header-bar` component in this slot.
51
- * The Timeline fires `search`, `filter`, and `sort` events that the application should handle
52
- * by adding, removing, or reordering items in the DOM. The Timeline itself does not perform
53
- * filtering or sorting — it renders whatever items are provided in the default slot.
54
- *
55
46
  * @constructor
56
47
  * @extends UI5Element
57
48
  * @public
@@ -129,12 +120,6 @@ let Timeline = Timeline_1 = class Timeline extends UI5Element {
129
120
  get growsWithButton() {
130
121
  return this.growing === TimelineGrowingMode.Button;
131
122
  }
132
- get _hasHeaderBar() {
133
- return this.headerBar.length > 0;
134
- }
135
- onExitDOM() {
136
- this.unobserveTimelineEnd();
137
- }
138
123
  onAfterRendering() {
139
124
  if (this.growsOnScroll) {
140
125
  this.observeTimelineEnd();
@@ -144,6 +129,9 @@ let Timeline = Timeline_1 = class Timeline extends UI5Element {
144
129
  }
145
130
  this.growingIntersectionObserver = this.getIntersectionObserver();
146
131
  }
132
+ onExitDOM() {
133
+ this.unobserveTimelineEnd();
134
+ }
147
135
  async observeTimelineEnd() {
148
136
  if (!this.timeLineEndObserved) {
149
137
  await renderFinished();
@@ -358,9 +346,6 @@ __decorate([
358
346
  __decorate([
359
347
  slot({ type: HTMLElement, individualSlots: true, "default": true })
360
348
  ], Timeline.prototype, "items", void 0);
361
- __decorate([
362
- slot()
363
- ], Timeline.prototype, "headerBar", void 0);
364
349
  __decorate([
365
350
  query(".ui5-timeline-end-marker")
366
351
  ], Timeline.prototype, "timelineEndMarker", void 0);
@@ -389,49 +374,6 @@ Timeline = Timeline_1 = __decorate([
389
374
  event("load-more", {
390
375
  bubbles: true,
391
376
  })
392
- /**
393
- * Fired when the user performs a search in the header bar.
394
- *
395
- * **Note:** The Timeline does not perform filtering. The application should handle
396
- * this event and add/remove items from the DOM to reflect the search results.
397
- *
398
- * @param {string} value The search value entered by the user.
399
- * @public
400
- * @since 2.22.0
401
- */
402
- ,
403
- event("search", {
404
- bubbles: true,
405
- })
406
- /**
407
- * Fired when the user changes filter selection in the header bar.
408
- *
409
- * **Note:** The Timeline does not perform filtering. The application should handle
410
- * this event and add/remove items from the DOM to reflect the filter selection.
411
- *
412
- * @param {string} filterBy The filter category.
413
- * @param {string[]} selectedOptions The selected filter option texts.
414
- * @public
415
- * @since 2.22.0
416
- */
417
- ,
418
- event("filter", {
419
- bubbles: true,
420
- })
421
- /**
422
- * Fired when the user changes sort order in the header bar.
423
- *
424
- * **Note:** The Timeline does not perform sorting. The application should handle
425
- * this event and reorder the items in the DOM accordingly.
426
- *
427
- * @param {string} sortOrder The sort order ("Ascending" or "Descending").
428
- * @public
429
- * @since 2.22.0
430
- */
431
- ,
432
- event("sort", {
433
- bubbles: true,
434
- })
435
377
  ], Timeline);
436
378
  Timeline.define();
437
379
  export default Timeline;
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.js","sourceRoot":"","sources":["../src/Timeline.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,GACJ,MAAM,sCAAsC,CAAC;AAG9C,OAAO,mBAAmB,CAAC;AAC3B,OAAO,cAAc,MAAM,yDAAyD,CAAC;AACrF,OAAO,cAAc,MAAM,sDAAsD,CAAC;AAClF,OAAO,EACN,mBAAmB,EACnB,8BAA8B,GAC9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,QAAQ,MAAM,+CAA+C,CAAC;AACrE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,OAAO,MAAM,0CAA0C,CAAC;AAC/D,OAAO,SAAS,MAAM,6CAA6C,CAAC;AACpE,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAC7D,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO;AACP,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,gBAAgB,MAAM,uDAAuD,CAAC;AAiCrF,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,MAAM,iCAAiC,GAAG,GAAG,CAAC,CAAC,KAAK;AAEpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA+DH,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,UAAU;IAuGhC;QACC,KAAK,EAAE,CAAC;QAjGT;;;;;WAKG;QAEH,WAAM,GAAwB,UAAU,CAAC;QAWzC;;;;;;WAMG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;WAIG;QAEH,iBAAY,GAAG,IAAI,CAAC;QAEpB;;;;;;;;;;;;;;;WAeG;QAEH,YAAO,GAA6B,MAAM,CAAC;QAE3C;;;WAGG;QAEH,oBAAe,GAAG,KAAK,CAAC;QAiCxB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,wBAAmB,GAAG,IAAI,CAAC;QAK1B,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE;YAC/C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe;SAC5C,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,cAAc;YACzB,CAAC,CAAC,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;YAC9E,CAAC,CAAC,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,MAAM,CAAC;IACpD,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,MAAM,KAAK,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,MAAM,CAAC;IACpD,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,SAAS;QACR,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,MAAM,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACjC,CAAC;IACF,CAAC;IAED,oBAAoB;QACnB,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACtC,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,CAAC;YAC9C,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAClC,CAAC;IACF,CAAC;IAED,uBAAuB;QACtB,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACvC,IAAI,CAAC,2BAA2B,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC3F,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,GAAG;aACd,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,2BAA2B,CAAC;IACzC,CAAC;IAED,cAAc,CAAC,OAAyC;QACvD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,OAAO;QACR,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,iCAAiC,CAAC,CAAC;QACvE,CAAC;IACF,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,cAAc;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAAC,CAAgB;QAClC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAChC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,IAAI,MAAM,GAAG,CAAC,CAAC,MAAsC,CAAC;QAEtD,IAAK,MAAwB,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,GAAG,MAAM,CAAC,UAAW,CAAC,aAAa,CAAe,qBAAqB,CAAE,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,KAAK,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;QAEvI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACnC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,UAAU,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,UAAU,CAAC;YAC1C,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,gBAAgB,CAAC;YAClD,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/E,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,gBAAgB,CAAC;YAClD,CAAC;QACF,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAC1C,CAAC;IAED,YAAY;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzC,CAAC;IACF,CAAC;IAED,mBAAmB;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;QACvC,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;YACtC,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAgB;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAuB,EACvC,iBAAiB,GAAG,MAAM,EAAE,cAAc,EAAE,EAC5C,iCAAiC,GAAG,iBAAiB,KAAK,IAAI,CAAC,cAAc,EAAE,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC;QAElH,IAAI,iCAAiC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,iCAAiC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAE1C,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,OAAO;YACR,CAAC;YAED,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBACnE,cAAc,EAAE,KAAK,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACP,MAAM,UAAU,GAAI,CAAC,CAAC,MAAsB,EAAE,OAAO,CAAC,mBAAmB,CAAgB,CAAC;gBAC1F,UAAU,EAAE,KAAK,EAAE,CAAC;YACrB,CAAC;QACF,CAAC;IACF,CAAC;IAED,WAAW;QACV,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3B,CAAC;IACF,CAAC;IAED,kBAAkB;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QAExD,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,SAAS,CAAC,CAAgB;QACzB,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;YACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEzC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEzB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC9B,CAAC;IACF,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,IAAkC;QAC3C,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,eAAe;QAClB,MAAM,gBAAgB,GAAwC,EAAE,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE5B,OAAO;YACR,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAe,qBAAqB,CAAC,CAAC;YAE5F,IAAI,eAAe,EAAE,CAAC;gBACrB,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;oBAC/B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IACzB,CAAC;CACD,CAAA;AA1XA;IADC,QAAQ,EAAE;wCAC8B;AASzC;IADC,QAAQ,EAAE;gDACa;AAUxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACZ;AAQhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACP;AAmBpB;IADC,QAAQ,EAAE;yCACgC;AAO3C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACJ;AAOxB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;uCACjC;AAanC;IADC,IAAI,EAAE;2CAC6B;AAGpC;IADC,KAAK,CAAC,0BAA0B,CAAC;mDACF;AAGhC;IADC,KAAK,CAAC,CAAC,iCAAiC,CAAC,CAAC;+CACf;AAGrB;IADN,IAAI,CAAC,0BAA0B,CAAC;kCACH;AAhGzB,QAAQ;IA9Db,aAAa,CAAC;QACd,GAAG,EAAE,cAAc;QACnB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,gBAAgB;KAC1B,CAAC;IAEF;;;;;;OAMG;;IACF,KAAK,CAAC,WAAW,EAAE;QACnB,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;;;;;;OASG;;IACF,KAAK,CAAC,QAAQ,EAAE;QAChB,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;;;;;;;OAUG;;IACF,KAAK,CAAC,QAAQ,EAAE;QAChB,OAAO,EAAE,IAAI;KACb,CAAC;IAEF;;;;;;;;;OASG;;IACF,KAAK,CAAC,MAAM,EAAE;QACd,OAAO,EAAE,IAAI;KACb,CAAC;GAEI,QAAQ,CAwYb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot, Slot } 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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisUp,\n\tisDown,\n\tisLeft,\n\tisRight,\n\tisF2,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type ToggleButton from \"@ui5/webcomponents/dist/ToggleButton.js\";\nimport \"./TimelineItem.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport {\n\tTIMELINE_ARIA_LABEL,\n\tTIMELINE_LOAD_MORE_BUTTON_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport TimelineTemplate from \"./TimelineTemplate.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport debounce from \"@ui5/webcomponents-base/dist/util/debounce.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport process from \"@ui5/webcomponents-icons/dist/process.js\";\nimport drillDown from \"@ui5/webcomponents-icons/dist/drill-down.js\";\n// Styles\nimport TimelineCss from \"./generated/themes/Timeline.css.js\";\nimport TimelineLayout from \"./types/TimelineLayout.js\";\n// Mode\nimport TimelineGrowingMode from \"./types/TimelineGrowingMode.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport type TimelineHeaderBar from \"./TimelineHeaderBar.js\";\nimport type { TimelineHeaderBarSearchEventDetail, TimelineHeaderBarFilterEventDetail, TimelineHeaderBarSortEventDetail } from \"./TimelineHeaderBar.js\";\n\n/**\n * Interface for components that may be slotted inside `ui5-timeline` as items\n * @public\n */\ninterface ITimelineItem extends UI5Element, ITabbable {\n\tlayout: `${TimelineLayout}`;\n\tisGroupItem: boolean;\n\tforcedLineWidth?: string;\n\ticon?: string;\n\tnameClickable?: boolean;\n\tpositionInGroup?: number;\n\tcollapsed?: boolean;\n\titems?: Array<ITimelineItem>;\n\tfocusLink?(): void;\n\tlastItem: boolean;\n\tisNextItemGroup?: boolean;\n\tfirstItemInTimeline?: boolean;\n\teffectiveRole?: string;\n\ttitleText?: string;\n\tname?: string;\n\tsubtitleText?: string;\n}\n\ntype TimelineSearchEventDetail = TimelineHeaderBarSearchEventDetail;\n\ntype TimelineFilterEventDetail = TimelineHeaderBarFilterEventDetail;\n\ntype TimelineSortEventDetail = TimelineHeaderBarSortEventDetail;\n\nconst SHORT_LINE_WIDTH = \"ShortLineWidth\";\nconst LARGE_LINE_WIDTH = \"LargeLineWidth\";\nconst GROWING_WITH_SCROLL_DEBOUNCE_RATE = 250; // ms\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-timeline` component shows entries (such as objects, events, or posts) in chronological order.\n * A common use case is to provide information about changes to an object, or events related to an object.\n * These entries can be generated by the system (for example, value XY changed from A to B), or added manually.\n * There are two distinct variants of the timeline: basic and social. The basic timeline is read-only,\n * while the social timeline offers a high level of interaction and collaboration, and is integrated within SAP Jam.\n *\n * ### Header Bar\n *\n * The Timeline supports a `header-bar` slot for search, filter, and sort functionality.\n * Use the `ui5-timeline-header-bar` component in this slot.\n * The Timeline fires `search`, `filter`, and `sort` events that the application should handle\n * by adding, removing, or reordering items in the DOM. The Timeline itself does not perform\n * filtering or sorting — it renders whatever items are provided in the default slot.\n *\n * @constructor\n * @extends UI5Element\n * @public\n * @since 0.8.0\n */\n@customElement({\n\ttag: \"ui5-timeline\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: TimelineCss,\n\ttemplate: TimelineTemplate,\n})\n\n/**\n * Fired when the user presses the `More` button or scrolls to the Timeline's end.\n *\n * **Note:** The event will be fired if `growing` is set to `Button` or `Scroll`.\n * @public\n * @since 2.7.0\n */\n@event(\"load-more\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the user performs a search in the header bar.\n *\n * **Note:** The Timeline does not perform filtering. The application should handle\n * this event and add/remove items from the DOM to reflect the search results.\n *\n * @param {string} value The search value entered by the user.\n * @public\n * @since 2.22.0\n */\n@event(\"search\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the user changes filter selection in the header bar.\n *\n * **Note:** The Timeline does not perform filtering. The application should handle\n * this event and add/remove items from the DOM to reflect the filter selection.\n *\n * @param {string} filterBy The filter category.\n * @param {string[]} selectedOptions The selected filter option texts.\n * @public\n * @since 2.22.0\n */\n@event(\"filter\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the user changes sort order in the header bar.\n *\n * **Note:** The Timeline does not perform sorting. The application should handle\n * this event and reorder the items in the DOM accordingly.\n *\n * @param {string} sortOrder The sort order (\"Ascending\" or \"Descending\").\n * @public\n * @since 2.22.0\n */\n@event(\"sort\", {\n\tbubbles: true,\n})\n\nclass Timeline extends UI5Element {\n\teventDetails!: {\n\t\t\"load-more\": void,\n\t\t\"search\": TimelineSearchEventDetail,\n\t\t\"filter\": TimelineFilterEventDetail,\n\t\t\"sort\": TimelineSortEventDetail,\n\t}\n\t/**\n\t * Defines the items orientation.\n\t * @default \"Vertical\"\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\t@property()\n\tlayout: `${TimelineLayout}` = \"Vertical\";\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines if the component should display a loading indicator over the Timeline.\n\t *\n\t * @default false\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will show up for this component.\n\t * @default 1000\n\t * @public\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines whether the Timeline will have growing capability either by pressing a \"More\" button,\n\t * or via user scroll. In both cases a `load-more` event is fired.\n\t *\n\t * Available options:\n\t *\n\t * `Button` - Displays a button at the end of the Timeline, which when pressed triggers the `load-more` event.\n\t *\n\t * `Scroll` -Triggers the `load-more` event when the user scrolls to the end of the Timeline.\n\t *\n\t * `None` (default) - The growing functionality is off.\n\t *\n\t * @default \"None\"\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@property()\n\tgrowing: `${TimelineGrowingMode}` = \"None\";\n\n\t/**\n\t * Defines the active state of the `More` button.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_loadMoreActive = false;\n\n\t/**\n\t * Determines the content of the `ui5-timeline`.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, individualSlots: true, \"default\": true })\n\titems!: DefaultSlot<ITimelineItem>;\n\n\t/**\n\t * Defines the header bar of the timeline.\n\t * Use `ui5-timeline-header-bar` for filtering, sorting, and search functionality.\n\t *\n\t * **Note:** The Timeline fires `search`, `filter`, and `sort` events when the user interacts\n\t * with the header bar. The application should handle these events to filter/sort the items.\n\t *\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@slot()\n\theaderBar!: Slot<TimelineHeaderBar>;\n\n\t@query(\".ui5-timeline-end-marker\")\n\ttimelineEndMarker!: HTMLElement;\n\n\t@query((`[id=\"ui5-timeline-growing-btn\"]`))\n\tgrowingButton!: HTMLElement;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_itemNavigation: ItemNavigation;\n\tgrowingIntersectionObserver?: IntersectionObserver | null;\n\ttimeLineEndObserved = false;\n\tinitialIntersection = true;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this._navigableItems,\n\t\t});\n\t}\n\n\tget ariaLabel() {\n\t\treturn this.accessibleName\n\t\t\t? `${Timeline.i18nBundle.getText(TIMELINE_ARIA_LABEL)} ${this.accessibleName}`\n\t\t\t: Timeline.i18nBundle.getText(TIMELINE_ARIA_LABEL);\n\t}\n\n\tget showBusyIndicatorOverlay() {\n\t\treturn !this.growsWithButton && this.loading;\n\t}\n\n\tget growsOnScroll(): boolean {\n\t\treturn this.growing === TimelineGrowingMode.Scroll;\n\t}\n\n\tget growingButtonIcon() {\n\t\treturn this.layout === TimelineLayout.Horizontal ? process : drillDown;\n\t}\n\n\tget growingButtonText() {\n\t\treturn Timeline.i18nBundle.getText(TIMELINE_LOAD_MORE_BUTTON_TEXT);\n\t}\n\n\tget growsWithButton(): boolean {\n\t\treturn this.growing === TimelineGrowingMode.Button;\n\t}\n\n\tget _hasHeaderBar(): boolean {\n\t\treturn this.headerBar.length > 0;\n\t}\n\n\tonExitDOM() {\n\t\tthis.unobserveTimelineEnd();\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.growsOnScroll) {\n\t\t\tthis.observeTimelineEnd();\n\t\t} else if (this.timeLineEndObserved) {\n\t\t\tthis.unobserveTimelineEnd();\n\t\t}\n\n\t\tthis.growingIntersectionObserver = this.getIntersectionObserver();\n\t}\n\n\tasync observeTimelineEnd() {\n\t\tif (!this.timeLineEndObserved) {\n\t\t\tawait renderFinished();\n\t\t\tthis.getIntersectionObserver().observe(this.timelineEndMarker);\n\t\t\tthis.timeLineEndObserved = true;\n\t\t}\n\t}\n\n\tunobserveTimelineEnd() {\n\t\tif (this.growingIntersectionObserver) {\n\t\t\tthis.growingIntersectionObserver.disconnect();\n\t\t\tthis.growingIntersectionObserver = null;\n\t\t\tthis.timeLineEndObserved = false;\n\t\t}\n\t}\n\n\tgetIntersectionObserver(): IntersectionObserver {\n\t\tif (!this.growingIntersectionObserver) {\n\t\t\tthis.growingIntersectionObserver = new IntersectionObserver(this.onIntersection.bind(this), {\n\t\t\t\troot: null,\n\t\t\t\tthreshold: 1.0,\n\t\t\t});\n\t\t}\n\n\t\treturn this.growingIntersectionObserver;\n\t}\n\n\tonIntersection(entries: Array<IntersectionObserverEntry>) {\n\t\tif (this.initialIntersection) {\n\t\t\tthis.initialIntersection = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (entries.some(entry => entry.isIntersecting)) {\n\t\t\tdebounce(this.loadMore.bind(this), GROWING_WITH_SCROLL_DEBOUNCE_RATE);\n\t\t}\n\t}\n\n\tloadMore() {\n\t\tthis.fireDecoratorEvent(\"load-more\");\n\t}\n\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this._itemNavigation._getCurrentItem();\n\t}\n\n\t_onLoadMoreKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\t}\n\n\t_onLoadMoreKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t}\n\t\tthis._loadMoreActive = false;\n\t}\n\n\t_onLoadMoreClick() {\n\t\tthis.fireDecoratorEvent(\"load-more\");\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tlet target = e.target as ITimelineItem | ToggleButton;\n\n\t\tif ((target as ITimelineItem).isGroupItem) {\n\t\t\ttarget = target.shadowRoot!.querySelector<ToggleButton>(\"[ui5-toggle-button]\")!;\n\t\t}\n\n\t\tthis._itemNavigation.setCurrentItem(target);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._itemNavigation._navigationMode = this.layout === TimelineLayout.Horizontal ? NavigationMode.Horizontal : NavigationMode.Vertical;\n\n\t\tif (!this.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < this.items.length; i++) {\n\t\t\tthis.items[i].layout = this.layout;\n\t\t\tif (this.hasGroupItems) {\n\t\t\t\tthis.items[i].effectiveRole = \"treeitem\";\n\t\t\t} else {\n\t\t\t\tthis.items[i].effectiveRole = \"listitem\";\n\t\t\t}\n\n\t\t\tif (this.items[i + 1] && !!this.items[i + 1].icon) {\n\t\t\t\tthis.items[i].forcedLineWidth = SHORT_LINE_WIDTH;\n\t\t\t} else if (this.items[i].icon && this.items[i + 1] && !this.items[i + 1].icon) {\n\t\t\t\tthis.items[i].forcedLineWidth = LARGE_LINE_WIDTH;\n\t\t\t}\n\t\t}\n\n\t\tthis._setLastItem();\n\t\tthis._setIsNextItemGroup();\n\t\tthis.items[0].firstItemInTimeline = true;\n\t}\n\n\t_setLastItem() {\n\t\tconst items = this.items;\n\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\titems[i].lastItem = false;\n\t\t}\n\n\t\tif (items.length > 0) {\n\t\t\titems[items.length - 1].lastItem = true;\n\t\t}\n\t}\n\n\t_setIsNextItemGroup() {\n\t\tfor (let i = 0; i < this.items.length; i++) {\n\t\t\tthis.items[i].isNextItemGroup = false;\n\t\t}\n\n\t\tfor (let i = 0; i < this.items.length; i++) {\n\t\t\tif (this.items[i + 1] && this.items[i + 1].isGroupItem) {\n\t\t\t\tthis.items[i].isNextItemGroup = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as ITimelineItem,\n\t\t\ttargetfocusDomRef = target?.getFocusDomRef(),\n\t\t\tshouldHandleCustomArrowNavigation = targetfocusDomRef === this.getFocusDomRef() || target === this.growingButton;\n\n\t\tif (shouldHandleCustomArrowNavigation && (isDown(e) || isRight(e))) {\n\t\t\tthis._handleDown();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (shouldHandleCustomArrowNavigation && (isUp(e) || isLeft(e))) {\n\t\t\tthis._handleUp(e);\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isF2(e)) {\n\t\t\te.stopImmediatePropagation();\n\t\t\tconst activeElement = getActiveElement();\n\t\t\tconst focusDomRef = this.getFocusDomRef();\n\n\t\t\tif (!focusDomRef) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (activeElement === focusDomRef) {\n\t\t\t\tconst firstFocusable = await getFirstFocusableElement(focusDomRef);\n\t\t\t\tfirstFocusable?.focus();\n\t\t\t} else {\n\t\t\t\tconst parentItem = (e.target as HTMLElement)?.closest(\"ui5-timeline-item\") as HTMLElement;\n\t\t\t\tparentItem?.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleDown() {\n\t\tif (this.growsWithButton) {\n\t\t\tthis.focusGrowingButton();\n\t\t}\n\t}\n\n\tfocusGrowingButton() {\n\t\tconst items = this._navigableItems;\n\t\tconst lastIndex = items.length - 1;\n\t\tconst currentIndex = this._itemNavigation._currentIndex;\n\n\t\tif (currentIndex !== -1 && currentIndex === lastIndex) {\n\t\t\tthis.growingButton?.focus();\n\t\t}\n\t}\n\n\t_handleUp(e: KeyboardEvent) {\n\t\tif (this.growingButton === e.target) {\n\t\t\tconst items = this._navigableItems;\n\t\t\tconst lastItem = items[items.length - 1];\n\n\t\t\tthis.focusItem(lastItem);\n\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\t/**\n\t * Focuses a list item and sets its tabindex to \"0\" via the ItemNavigation\n\t * @protected\n\t * @param item\n\t */\n\tfocusItem(item: ITimelineItem | ToggleButton) {\n\t\tthis._itemNavigation.setCurrentItem(item);\n\t\titem.focus();\n\t}\n\n\tget hasGroupItems() {\n\t\treturn this.items.some(item => item.isGroupItem);\n\t}\n\n\tget _navigableItems() {\n\t\tconst navigatableItems: Array<ITimelineItem | ToggleButton> = [];\n\n\t\tif (!this.items.length) {\n\t\t\treturn [];\n\t\t}\n\n\t\tthis.items.forEach(item => {\n\t\t\tif (!item.isGroupItem) {\n\t\t\t\tnavigatableItems.push(item);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst navigatableItem = item.shadowRoot!.querySelector<ToggleButton>(\"[ui5-toggle-button]\");\n\n\t\t\tif (navigatableItem) {\n\t\t\t\tnavigatableItems.push(navigatableItem);\n\t\t\t}\n\n\t\t\tif (!item.collapsed) {\n\t\t\t\titem.items?.forEach(groupItem => {\n\t\t\t\t\tnavigatableItems.push(groupItem);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn navigatableItems;\n\t}\n}\n\nTimeline.define();\n\nexport default Timeline;\nexport type {\n\tITimelineItem,\n\tTimelineSearchEventDetail,\n\tTimelineFilterEventDetail,\n\tTimelineSortEventDetail,\n};\n"]}
1
+ {"version":3,"file":"Timeline.js","sourceRoot":"","sources":["../src/Timeline.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,UAAU,MAAM,4CAA4C,CAAC;AAEpE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,wDAAwD,CAAC;AAC1E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AACnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAE/E,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,GACJ,MAAM,sCAAsC,CAAC;AAG9C,OAAO,mBAAmB,CAAC;AAC3B,OAAO,cAAc,MAAM,yDAAyD,CAAC;AACrF,OAAO,cAAc,MAAM,sDAAsD,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACxG,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,QAAQ,MAAM,+CAA+C,CAAC;AACrE,OAAO,KAAK,MAAM,kDAAkD,CAAC;AACrE,OAAO,OAAO,MAAM,0CAA0C,CAAC;AAC/D,OAAO,SAAS,MAAM,6CAA6C,CAAC;AACpE,SAAS;AACT,OAAO,WAAW,MAAM,oCAAoC,CAAC;AAC7D,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO;AACP,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,gBAAgB,MAAM,uDAAuD,CAAC;AAsBrF,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,MAAM,iCAAiC,GAAG,GAAG,CAAC,CAAC,KAAK;AAEpD;;;;;;;;;;;;;;GAcG;AAoBH,IAAM,QAAQ,gBAAd,MAAM,QAAS,SAAQ,UAAU;IAuFhC;QACC,KAAK,EAAE,CAAC;QApFT;;;;;WAKG;QAEH,WAAM,GAAwB,UAAU,CAAC;QAWzC;;;;;;WAMG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;WAIG;QAEH,iBAAY,GAAG,IAAI,CAAC;QAEpB;;;;;;;;;;;;;;;WAeG;QAEH,YAAO,GAA6B,MAAM,CAAC;QAE3C;;;WAGG;QAEH,oBAAe,GAAG,KAAK,CAAC;QAoBxB,wBAAmB,GAAG,KAAK,CAAC;QAC5B,wBAAmB,GAAG,IAAI,CAAC;QAK1B,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE;YAC/C,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe;SAC5C,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,cAAc;YACzB,CAAC,CAAC,GAAG,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;YAC9E,CAAC,CAAC,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC;IAC9C,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,MAAM,CAAC;IACpD,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,MAAM,KAAK,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,UAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,MAAM,CAAC;IACpD,CAAC;IAED,gBAAgB;QACf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3B,CAAC;aAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACrC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACnE,CAAC;IAED,SAAS;QACR,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,kBAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/B,MAAM,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACjC,CAAC;IACF,CAAC;IAED,oBAAoB;QACnB,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACtC,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,CAAC;YAC9C,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QAClC,CAAC;IACF,CAAC;IAED,uBAAuB;QACtB,IAAI,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACvC,IAAI,CAAC,2BAA2B,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC3F,IAAI,EAAE,IAAI;gBACV,SAAS,EAAE,GAAG;aACd,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,2BAA2B,CAAC;IACzC,CAAC;IAED,cAAc,CAAC,OAAyC;QACvD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,OAAO;QACR,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,iCAAiC,CAAC,CAAC;QACvE,CAAC;IACF,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,cAAc;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED,kBAAkB,CAAC,CAAgB;QAClC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,gBAAgB,CAAC,CAAgB;QAChC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,IAAI,MAAM,GAAG,CAAC,CAAC,MAAsC,CAAC;QAEtD,IAAK,MAAwB,CAAC,WAAW,EAAE,CAAC;YAC3C,MAAM,GAAG,MAAM,CAAC,UAAW,CAAC,aAAa,CAAe,qBAAqB,CAAE,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB;QAChB,IAAI,CAAC,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,KAAK,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC;QAEvI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACnC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,UAAU,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,UAAU,CAAC;YAC1C,CAAC;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,gBAAgB,CAAC;YAClD,CAAC;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/E,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,gBAAgB,CAAC;YAClD,CAAC;QACF,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAC1C,CAAC;IAED,YAAY;QACX,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC3B,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzC,CAAC;IACF,CAAC;IAED,mBAAmB;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,KAAK,CAAC;QACvC,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;YACtC,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAgB;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAuB,EACvC,iBAAiB,GAAG,MAAM,EAAE,cAAc,EAAE,EAC5C,iCAAiC,GAAG,iBAAiB,KAAK,IAAI,CAAC,cAAc,EAAE,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC;QAElH,IAAI,iCAAiC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,iCAAiC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YAE1C,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,OAAO;YACR,CAAC;YAED,IAAI,aAAa,KAAK,WAAW,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;gBACnE,cAAc,EAAE,KAAK,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACP,MAAM,UAAU,GAAI,CAAC,CAAC,MAAsB,EAAE,OAAO,CAAC,mBAAmB,CAAgB,CAAC;gBAC1F,UAAU,EAAE,KAAK,EAAE,CAAC;YACrB,CAAC;QACF,CAAC;IACF,CAAC;IAED,WAAW;QACV,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3B,CAAC;IACF,CAAC;IAED,kBAAkB;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QAExD,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,SAAS,CAAC,CAAgB;QACzB,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;YACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEzC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEzB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC9B,CAAC;IACF,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,IAAkC;QAC3C,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;IACd,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,eAAe;QAClB,MAAM,gBAAgB,GAAwC,EAAE,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACX,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE5B,OAAO;YACR,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,CAAC,UAAW,CAAC,aAAa,CAAe,qBAAqB,CAAC,CAAC;YAE5F,IAAI,eAAe,EAAE,CAAC;gBACrB,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE;oBAC/B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IACzB,CAAC;CACD,CAAA;AAzWA;IADC,QAAQ,EAAE;wCAC8B;AASzC;IADC,QAAQ,EAAE;gDACa;AAUxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACZ;AAQhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CACP;AAmBpB;IADC,QAAQ,EAAE;yCACgC;AAO3C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDACJ;AAOxB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;uCACjC;AAGnC;IADC,KAAK,CAAC,0BAA0B,CAAC;mDACF;AAGhC;IADC,KAAK,CAAC,CAAC,iCAAiC,CAAC,CAAC;+CACf;AAGrB;IADN,IAAI,CAAC,0BAA0B,CAAC;kCACH;AAhFzB,QAAQ;IAnBb,aAAa,CAAC;QACd,GAAG,EAAE,cAAc;QACnB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,gBAAgB;KAC1B,CAAC;IAEF;;;;;;OAMG;;IACF,KAAK,CAAC,WAAW,EAAE;QACnB,OAAO,EAAE,IAAI;KACb,CAAC;GAEI,QAAQ,CAoXb;AAED,QAAQ,CAAC,MAAM,EAAE,CAAC;AAElB,eAAe,QAAQ,CAAC","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } 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 i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisUp,\n\tisDown,\n\tisLeft,\n\tisRight,\n\tisF2,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport type { ITabbable } from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport type ToggleButton from \"@ui5/webcomponents/dist/ToggleButton.js\";\nimport \"./TimelineItem.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport { TIMELINE_ARIA_LABEL, TIMELINE_LOAD_MORE_BUTTON_TEXT } from \"./generated/i18n/i18n-defaults.js\";\nimport TimelineTemplate from \"./TimelineTemplate.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport debounce from \"@ui5/webcomponents-base/dist/util/debounce.js\";\nimport query from \"@ui5/webcomponents-base/dist/decorators/query.js\";\nimport process from \"@ui5/webcomponents-icons/dist/process.js\";\nimport drillDown from \"@ui5/webcomponents-icons/dist/drill-down.js\";\n// Styles\nimport TimelineCss from \"./generated/themes/Timeline.css.js\";\nimport TimelineLayout from \"./types/TimelineLayout.js\";\n// Mode\nimport TimelineGrowingMode from \"./types/TimelineGrowingMode.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\n\n/**\n * Interface for components that may be slotted inside `ui5-timeline` as items\n * @public\n */\ninterface ITimelineItem extends UI5Element, ITabbable {\n\tlayout: `${TimelineLayout}`;\n\tisGroupItem: boolean;\n\tforcedLineWidth?: string;\n\ticon?: string;\n\tnameClickable?: boolean;\n\tpositionInGroup?: number;\n\tcollapsed?: boolean;\n\titems?: Array<ITimelineItem>;\n\tfocusLink?(): void;\n\tlastItem: boolean;\n\tisNextItemGroup?: boolean;\n\tfirstItemInTimeline?: boolean;\n\teffectiveRole?: string;\n}\n\nconst SHORT_LINE_WIDTH = \"ShortLineWidth\";\nconst LARGE_LINE_WIDTH = \"LargeLineWidth\";\nconst GROWING_WITH_SCROLL_DEBOUNCE_RATE = 250; // ms\n\n/**\n * @class\n *\n * ### Overview\n *\n * The `ui5-timeline` component shows entries (such as objects, events, or posts) in chronological order.\n * A common use case is to provide information about changes to an object, or events related to an object.\n * These entries can be generated by the system (for example, value XY changed from A to B), or added manually.\n * There are two distinct variants of the timeline: basic and social. The basic timeline is read-only,\n * while the social timeline offers a high level of interaction and collaboration, and is integrated within SAP Jam.\n * @constructor\n * @extends UI5Element\n * @public\n * @since 0.8.0\n */\n@customElement({\n\ttag: \"ui5-timeline\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: TimelineCss,\n\ttemplate: TimelineTemplate,\n})\n\n/**\n * Fired when the user presses the `More` button or scrolls to the Timeline's end.\n *\n * **Note:** The event will be fired if `growing` is set to `Button` or `Scroll`.\n * @public\n * @since 2.7.0\n */\n@event(\"load-more\", {\n\tbubbles: true,\n})\n\nclass Timeline extends UI5Element {\n\teventDetails!: {\n\t\t\"load-more\": void,\n\t}\n\t/**\n\t * Defines the items orientation.\n\t * @default \"Vertical\"\n\t * @since 1.0.0-rc.15\n\t * @public\n\t */\n\t@property()\n\tlayout: `${TimelineLayout}` = \"Vertical\";\n\n\t/**\n\t * Defines the accessible ARIA name of the component.\n\t * @default undefined\n\t * @public\n\t * @since 1.2.0\n\t */\n\t@property()\n\taccessibleName?: string;\n\n\t/**\n\t * Defines if the component should display a loading indicator over the Timeline.\n\t *\n\t * @default false\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the loading indicator will show up for this component.\n\t * @default 1000\n\t * @public\n\t */\n\t@property({ type: Number })\n\tloadingDelay = 1000;\n\n\t/**\n\t * Defines whether the Timeline will have growing capability either by pressing a \"More\" button,\n\t * or via user scroll. In both cases a `load-more` event is fired.\n\t *\n\t * Available options:\n\t *\n\t * `Button` - Displays a button at the end of the Timeline, which when pressed triggers the `load-more` event.\n\t *\n\t * `Scroll` -Triggers the `load-more` event when the user scrolls to the end of the Timeline.\n\t *\n\t * `None` (default) - The growing functionality is off.\n\t *\n\t * @default \"None\"\n\t * @since 2.7.0\n\t * @public\n\t */\n\t@property()\n\tgrowing: `${TimelineGrowingMode}` = \"None\";\n\n\t/**\n\t * Defines the active state of the `More` button.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_loadMoreActive = false;\n\n\t/**\n\t * Determines the content of the `ui5-timeline`.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, individualSlots: true, \"default\": true })\n\titems!: DefaultSlot<ITimelineItem>;\n\n\t@query(\".ui5-timeline-end-marker\")\n\ttimelineEndMarker!: HTMLElement;\n\n\t@query((`[id=\"ui5-timeline-growing-btn\"]`))\n\tgrowingButton!: HTMLElement;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\t_itemNavigation: ItemNavigation;\n\tgrowingIntersectionObserver?: IntersectionObserver | null;\n\ttimeLineEndObserved = false;\n\tinitialIntersection = true;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tgetItemsCallback: () => this._navigableItems,\n\t\t});\n\t}\n\n\tget ariaLabel() {\n\t\treturn this.accessibleName\n\t\t\t? `${Timeline.i18nBundle.getText(TIMELINE_ARIA_LABEL)} ${this.accessibleName}`\n\t\t\t: Timeline.i18nBundle.getText(TIMELINE_ARIA_LABEL);\n\t}\n\n\tget showBusyIndicatorOverlay() {\n\t\treturn !this.growsWithButton && this.loading;\n\t}\n\n\tget growsOnScroll(): boolean {\n\t\treturn this.growing === TimelineGrowingMode.Scroll;\n\t}\n\n\tget growingButtonIcon() {\n\t\treturn this.layout === TimelineLayout.Horizontal ? process : drillDown;\n\t}\n\n\tget growingButtonText() {\n\t\treturn Timeline.i18nBundle.getText(TIMELINE_LOAD_MORE_BUTTON_TEXT);\n\t}\n\n\tget growsWithButton(): boolean {\n\t\treturn this.growing === TimelineGrowingMode.Button;\n\t}\n\n\tonAfterRendering() {\n\t\tif (this.growsOnScroll) {\n\t\t\tthis.observeTimelineEnd();\n\t\t} else if (this.timeLineEndObserved) {\n\t\t\tthis.unobserveTimelineEnd();\n\t\t}\n\n\t\tthis.growingIntersectionObserver = this.getIntersectionObserver();\n\t}\n\n\tonExitDOM() {\n\t\tthis.unobserveTimelineEnd();\n\t}\n\n\tasync observeTimelineEnd() {\n\t\tif (!this.timeLineEndObserved) {\n\t\t\tawait renderFinished();\n\t\t\tthis.getIntersectionObserver().observe(this.timelineEndMarker);\n\t\t\tthis.timeLineEndObserved = true;\n\t\t}\n\t}\n\n\tunobserveTimelineEnd() {\n\t\tif (this.growingIntersectionObserver) {\n\t\t\tthis.growingIntersectionObserver.disconnect();\n\t\t\tthis.growingIntersectionObserver = null;\n\t\t\tthis.timeLineEndObserved = false;\n\t\t}\n\t}\n\n\tgetIntersectionObserver(): IntersectionObserver {\n\t\tif (!this.growingIntersectionObserver) {\n\t\t\tthis.growingIntersectionObserver = new IntersectionObserver(this.onIntersection.bind(this), {\n\t\t\t\troot: null,\n\t\t\t\tthreshold: 1.0,\n\t\t\t});\n\t\t}\n\n\t\treturn this.growingIntersectionObserver;\n\t}\n\n\tonIntersection(entries: Array<IntersectionObserverEntry>) {\n\t\tif (this.initialIntersection) {\n\t\t\tthis.initialIntersection = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (entries.some(entry => entry.isIntersecting)) {\n\t\t\tdebounce(this.loadMore.bind(this), GROWING_WITH_SCROLL_DEBOUNCE_RATE);\n\t\t}\n\t}\n\n\tloadMore() {\n\t\tthis.fireDecoratorEvent(\"load-more\");\n\t}\n\n\tgetFocusDomRef(): HTMLElement | undefined {\n\t\treturn this._itemNavigation._getCurrentItem();\n\t}\n\n\t_onLoadMoreKeydown(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\te.preventDefault();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\n\t\tif (isEnter(e)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t\tthis._loadMoreActive = true;\n\t\t}\n\t}\n\n\t_onLoadMoreKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onLoadMoreClick();\n\t\t}\n\t\tthis._loadMoreActive = false;\n\t}\n\n\t_onLoadMoreClick() {\n\t\tthis.fireDecoratorEvent(\"load-more\");\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tlet target = e.target as ITimelineItem | ToggleButton;\n\n\t\tif ((target as ITimelineItem).isGroupItem) {\n\t\t\ttarget = target.shadowRoot!.querySelector<ToggleButton>(\"[ui5-toggle-button]\")!;\n\t\t}\n\n\t\tthis._itemNavigation.setCurrentItem(target);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._itemNavigation._navigationMode = this.layout === TimelineLayout.Horizontal ? NavigationMode.Horizontal : NavigationMode.Vertical;\n\n\t\tif (!this.items.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < this.items.length; i++) {\n\t\t\tthis.items[i].layout = this.layout;\n\t\t\tif (this.hasGroupItems) {\n\t\t\t\tthis.items[i].effectiveRole = \"treeitem\";\n\t\t\t} else {\n\t\t\t\tthis.items[i].effectiveRole = \"listitem\";\n\t\t\t}\n\n\t\t\tif (this.items[i + 1] && !!this.items[i + 1].icon) {\n\t\t\t\tthis.items[i].forcedLineWidth = SHORT_LINE_WIDTH;\n\t\t\t} else if (this.items[i].icon && this.items[i + 1] && !this.items[i + 1].icon) {\n\t\t\t\tthis.items[i].forcedLineWidth = LARGE_LINE_WIDTH;\n\t\t\t}\n\t\t}\n\n\t\tthis._setLastItem();\n\t\tthis._setIsNextItemGroup();\n\t\tthis.items[0].firstItemInTimeline = true;\n\t}\n\n\t_setLastItem() {\n\t\tconst items = this.items;\n\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\titems[i].lastItem = false;\n\t\t}\n\n\t\tif (items.length > 0) {\n\t\t\titems[items.length - 1].lastItem = true;\n\t\t}\n\t}\n\n\t_setIsNextItemGroup() {\n\t\tfor (let i = 0; i < this.items.length; i++) {\n\t\t\tthis.items[i].isNextItemGroup = false;\n\t\t}\n\n\t\tfor (let i = 0; i < this.items.length; i++) {\n\t\t\tif (this.items[i + 1] && this.items[i + 1].isGroupItem) {\n\t\t\t\tthis.items[i].isNextItemGroup = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as ITimelineItem,\n\t\t\ttargetfocusDomRef = target?.getFocusDomRef(),\n\t\t\tshouldHandleCustomArrowNavigation = targetfocusDomRef === this.getFocusDomRef() || target === this.growingButton;\n\n\t\tif (shouldHandleCustomArrowNavigation && (isDown(e) || isRight(e))) {\n\t\t\tthis._handleDown();\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (shouldHandleCustomArrowNavigation && (isUp(e) || isLeft(e))) {\n\t\t\tthis._handleUp(e);\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isF2(e)) {\n\t\t\te.stopImmediatePropagation();\n\t\t\tconst activeElement = getActiveElement();\n\t\t\tconst focusDomRef = this.getFocusDomRef();\n\n\t\t\tif (!focusDomRef) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (activeElement === focusDomRef) {\n\t\t\t\tconst firstFocusable = await getFirstFocusableElement(focusDomRef);\n\t\t\t\tfirstFocusable?.focus();\n\t\t\t} else {\n\t\t\t\tconst parentItem = (e.target as HTMLElement)?.closest(\"ui5-timeline-item\") as HTMLElement;\n\t\t\t\tparentItem?.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleDown() {\n\t\tif (this.growsWithButton) {\n\t\t\tthis.focusGrowingButton();\n\t\t}\n\t}\n\n\tfocusGrowingButton() {\n\t\tconst items = this._navigableItems;\n\t\tconst lastIndex = items.length - 1;\n\t\tconst currentIndex = this._itemNavigation._currentIndex;\n\n\t\tif (currentIndex !== -1 && currentIndex === lastIndex) {\n\t\t\tthis.growingButton?.focus();\n\t\t}\n\t}\n\n\t_handleUp(e: KeyboardEvent) {\n\t\tif (this.growingButton === e.target) {\n\t\t\tconst items = this._navigableItems;\n\t\t\tconst lastItem = items[items.length - 1];\n\n\t\t\tthis.focusItem(lastItem);\n\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\t/**\n\t * Focuses a list item and sets its tabindex to \"0\" via the ItemNavigation\n\t * @protected\n\t * @param item\n\t */\n\tfocusItem(item: ITimelineItem | ToggleButton) {\n\t\tthis._itemNavigation.setCurrentItem(item);\n\t\titem.focus();\n\t}\n\n\tget hasGroupItems() {\n\t\treturn this.items.some(item => item.isGroupItem);\n\t}\n\n\tget _navigableItems() {\n\t\tconst navigatableItems: Array<ITimelineItem | ToggleButton> = [];\n\n\t\tif (!this.items.length) {\n\t\t\treturn [];\n\t\t}\n\n\t\tthis.items.forEach(item => {\n\t\t\tif (!item.isGroupItem) {\n\t\t\t\tnavigatableItems.push(item);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst navigatableItem = item.shadowRoot!.querySelector<ToggleButton>(\"[ui5-toggle-button]\");\n\n\t\t\tif (navigatableItem) {\n\t\t\t\tnavigatableItems.push(navigatableItem);\n\t\t\t}\n\n\t\t\tif (!item.collapsed) {\n\t\t\t\titem.items?.forEach(groupItem => {\n\t\t\t\t\tnavigatableItems.push(groupItem);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn navigatableItems;\n\t}\n}\n\nTimeline.define();\n\nexport default Timeline;\nexport type {\n\tITimelineItem,\n};\n"]}
@@ -103,8 +103,6 @@ declare class TimelineItem extends UI5Element implements ITimelineItem {
103
103
  */
104
104
  lastItem: boolean;
105
105
  /**
106
- * Used internally by TimelineGroupItem for collapse/expand mechanics.
107
- * Applications should not use this for filtering — instead, add/remove items from the DOM.
108
106
  * @private
109
107
  */
110
108
  hidden: boolean;
@@ -67,8 +67,6 @@ let TimelineItem = TimelineItem_1 = class TimelineItem extends UI5Element {
67
67
  */
68
68
  this.lastItem = false;
69
69
  /**
70
- * Used internally by TimelineGroupItem for collapse/expand mechanics.
71
- * Applications should not use this for filtering — instead, add/remove items from the DOM.
72
70
  * @private
73
71
  */
74
72
  this.hidden = false;
@@ -1 +1 @@
1
- {"version":3,"file":"TimelineItem.js","sourceRoot":"","sources":["../src/TimelineItem.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Link from \"@ui5/webcomponents/dist/Link.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ITimelineItem } from \"./Timeline.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport TimelineItemTemplate from \"./TimelineItemTemplate.js\";\n// Styles\nimport type TimelineLayout from \"./types/TimelineLayout.js\";\n\nimport {\n\tTIMELINE_ITEM_INFORMATION_STATE_TEXT,\n\tTIMELINE_ITEM_POSITIVE_STATE_TEXT,\n\tTIMELINE_ITEM_NEGATIVE_STATE_TEXT,\n\tTIMELINE_ITEM_CRITICAL_STATE_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport TimelineItemCss from \"./generated/themes/TimelineItem.css.js\";\n\ntype TimelineItemRole = \"listitem\" | \"treeitem\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * An entry posted on the timeline.\n * @constructor\n * @extends UI5Element\n * @implements { ITimelineItem }\n * @public\n */\n@customElement({\n\ttag: \"ui5-timeline-item\",\n\trenderer: jsxRenderer,\n\tstyles: TimelineItemCss,\n\ttemplate: TimelineItemTemplate,\n})\n/**\n * Fired when the item name is pressed either with a\n * click/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `name-clickable`\n * attribute is not set.\n * @public\n */\n@event(\"name-click\", {\n\tbubbles: true,\n})\nclass TimelineItem extends UI5Element implements ITimelineItem {\n\teventDetails!: {\n\t\t\"name-click\": void\n\t}\n\t/**\n\t * Defines the icon to be displayed as graphical element within the `ui5-timeline-item`.\n\t * SAP-icons font provides numerous options.\n\t *\n\t * See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the tooltip of the graphical icon.\n\t * @default undefined\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@property()\n\ticonTooltip?: string;\n\n\t/**\n\t * Defines the name of the item, displayed before the `title-text`.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines if the `name` is clickable.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnameClickable = false;\n\n\t/**\n\t * Defines the title text of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttitleText?: string;\n\n\t/**\n\t * Defines the subtitle text of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tsubtitleText?: string;\n\n\t/**\n\t * Defines the state of the icon displayed in the `ui5-timeline-item`.\n\t * @default \"None\"\n\t * @public\n\t * @since 2.7.0\n\t */\n\t@property()\n\tstate: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines the content of the `ui5-timeline-item`.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: DefaultSlot<Node>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfirstItemInTimeline = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tisNextItemGroup = false;\n\n\t@property({ noAttribute: true })\n\tforcedTabIndex = \"-1\";\n\n\t/**\n\t * Defines the items orientation.\n\t * @default \"Vertical\"\n\t * @private\n\t */\n\t@property()\n\tlayout: `${TimelineLayout}` = \"Vertical\";\n\n\t/**\n\t * Defines the indicator line width.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tforcedLineWidth?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thideBubble = false;\n\n\t/**\n\t * Marks the last `<ui5-timeline-item>`\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tlastItem = false;\n\n\t/**\n\t * Used internally by TimelineGroupItem for collapse/expand mechanics.\n\t * Applications should not use this for filtering — instead, add/remove items from the DOM.\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thidden = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\teffectiveRole: `${TimelineItemRole}` = \"listitem\";\n\n\t/**\n\t * Defines the position of the item in a group.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tpositionInGroup?: number;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundleFiori: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonNamePress() {\n\t\tthis.fireDecoratorEvent(\"name-click\");\n\t}\n\n\t/**\n\t * Focus the internal link.\n\t */\n\tfocusLink() {\n\t\tthis.shadowRoot!.querySelector<Link>(\"[ui5-link]\")?.focus();\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Information\": TIMELINE_ITEM_INFORMATION_STATE_TEXT,\n\t\t\t\"Positive\": TIMELINE_ITEM_POSITIVE_STATE_TEXT,\n\t\t\t\"Negative\": TIMELINE_ITEM_NEGATIVE_STATE_TEXT,\n\t\t\t\"Critical\": TIMELINE_ITEM_CRITICAL_STATE_TEXT,\n\t\t};\n\t}\n\n\tget timelineItemStateText() {\n\t\treturn this.state !== \"None\" ? TimelineItem.i18nBundleFiori.getText(TimelineItem.typeTextMappings()[this.state]) : undefined;\n\t}\n\n\tget isGroupItem() {\n\t\treturn false;\n\t}\n\n\tget _getAccessibleLabel() {\n\t\tconst parts = [];\n\n\t\tif (this.name) {\n\t\t\tparts.push(this.name);\n\t\t}\n\n\t\tif (this.titleText) {\n\t\t\tparts.push(this.titleText);\n\t\t}\n\n\t\tif (this.subtitleText) {\n\t\t\tparts.push(this.subtitleText);\n\t\t}\n\n\t\tif (this.timelineItemStateText) {\n\t\t\tparts.push(this.timelineItemStateText);\n\t\t}\n\n\t\tif (this.iconTooltip) {\n\t\t\tparts.push(this.iconTooltip);\n\t\t}\n\n\t\treturn parts.join(\", \");\n\t}\n}\n\nTimelineItem.define();\n\nexport default TimelineItem;\n"]}
1
+ {"version":3,"file":"TimelineItem.js","sourceRoot":"","sources":["../src/TimelineItem.ts"],"names":[],"mappings":"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","sourcesContent":["import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Link from \"@ui5/webcomponents/dist/Link.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { I18nText } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type { ITimelineItem } from \"./Timeline.js\";\nimport type ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport TimelineItemTemplate from \"./TimelineItemTemplate.js\";\n// Styles\nimport type TimelineLayout from \"./types/TimelineLayout.js\";\n\nimport {\n\tTIMELINE_ITEM_INFORMATION_STATE_TEXT,\n\tTIMELINE_ITEM_POSITIVE_STATE_TEXT,\n\tTIMELINE_ITEM_NEGATIVE_STATE_TEXT,\n\tTIMELINE_ITEM_CRITICAL_STATE_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\nimport TimelineItemCss from \"./generated/themes/TimelineItem.css.js\";\n\ntype TimelineItemRole = \"listitem\" | \"treeitem\";\n\n/**\n * @class\n *\n * ### Overview\n *\n * An entry posted on the timeline.\n * @constructor\n * @extends UI5Element\n * @implements { ITimelineItem }\n * @public\n */\n@customElement({\n\ttag: \"ui5-timeline-item\",\n\trenderer: jsxRenderer,\n\tstyles: TimelineItemCss,\n\ttemplate: TimelineItemTemplate,\n})\n/**\n * Fired when the item name is pressed either with a\n * click/tap or by using the Enter or Space key.\n *\n * **Note:** The event will not be fired if the `name-clickable`\n * attribute is not set.\n * @public\n */\n@event(\"name-click\", {\n\tbubbles: true,\n})\nclass TimelineItem extends UI5Element implements ITimelineItem {\n\teventDetails!: {\n\t\t\"name-click\": void\n\t}\n\t/**\n\t * Defines the icon to be displayed as graphical element within the `ui5-timeline-item`.\n\t * SAP-icons font provides numerous options.\n\t *\n\t * See all the available icons in the [Icon Explorer](https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html).\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ticon?: string;\n\n\t/**\n\t * Defines the tooltip of the graphical icon.\n\t * @default undefined\n\t * @public\n\t * @since 2.22.0\n\t */\n\t@property()\n\ticonTooltip?: string;\n\n\t/**\n\t * Defines the name of the item, displayed before the `title-text`.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tname?: string;\n\n\t/**\n\t * Defines if the `name` is clickable.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnameClickable = false;\n\n\t/**\n\t * Defines the title text of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttitleText?: string;\n\n\t/**\n\t * Defines the subtitle text of the component.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\tsubtitleText?: string;\n\n\t/**\n\t * Defines the state of the icon displayed in the `ui5-timeline-item`.\n\t * @default \"None\"\n\t * @public\n\t * @since 2.7.0\n\t */\n\t@property()\n\tstate: `${ValueState}` = \"None\";\n\n\t/**\n\t * Defines the content of the `ui5-timeline-item`.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement, \"default\": true })\n\tcontent!: DefaultSlot<Node>;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tfirstItemInTimeline = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tisNextItemGroup = false;\n\n\t@property({ noAttribute: true })\n\tforcedTabIndex = \"-1\";\n\n\t/**\n\t * Defines the items orientation.\n\t * @default \"Vertical\"\n\t * @private\n\t */\n\t@property()\n\tlayout: `${TimelineLayout}` = \"Vertical\";\n\n\t/**\n\t * Defines the indicator line width.\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\tforcedLineWidth?: string;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thideBubble = false;\n\n\t/**\n\t * Marks the last `<ui5-timeline-item>`\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\tlastItem = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\thidden = false;\n\n\t/**\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\teffectiveRole: `${TimelineItemRole}` = \"listitem\";\n\n\t/**\n\t * Defines the position of the item in a group.\n\t * @private\n\t */\n\t@property({ type: Number })\n\tpositionInGroup?: number;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundleFiori: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonNamePress() {\n\t\tthis.fireDecoratorEvent(\"name-click\");\n\t}\n\n\t/**\n\t * Focus the internal link.\n\t */\n\tfocusLink() {\n\t\tthis.shadowRoot!.querySelector<Link>(\"[ui5-link]\")?.focus();\n\t}\n\n\tstatic typeTextMappings(): Record<string, I18nText> {\n\t\treturn {\n\t\t\t\"Information\": TIMELINE_ITEM_INFORMATION_STATE_TEXT,\n\t\t\t\"Positive\": TIMELINE_ITEM_POSITIVE_STATE_TEXT,\n\t\t\t\"Negative\": TIMELINE_ITEM_NEGATIVE_STATE_TEXT,\n\t\t\t\"Critical\": TIMELINE_ITEM_CRITICAL_STATE_TEXT,\n\t\t};\n\t}\n\n\tget timelineItemStateText() {\n\t\treturn this.state !== \"None\" ? TimelineItem.i18nBundleFiori.getText(TimelineItem.typeTextMappings()[this.state]) : undefined;\n\t}\n\n\tget isGroupItem() {\n\t\treturn false;\n\t}\n\n\tget _getAccessibleLabel() {\n\t\tconst parts = [];\n\n\t\tif (this.name) {\n\t\t\tparts.push(this.name);\n\t\t}\n\n\t\tif (this.titleText) {\n\t\t\tparts.push(this.titleText);\n\t\t}\n\n\t\tif (this.subtitleText) {\n\t\t\tparts.push(this.subtitleText);\n\t\t}\n\n\t\tif (this.timelineItemStateText) {\n\t\t\tparts.push(this.timelineItemStateText);\n\t\t}\n\n\t\tif (this.iconTooltip) {\n\t\t\tparts.push(this.iconTooltip);\n\t\t}\n\n\t\treturn parts.join(\", \");\n\t}\n}\n\nTimelineItem.define();\n\nexport default TimelineItem;\n"]}
@@ -3,7 +3,7 @@ import Button from "@ui5/webcomponents/dist/Button.js";
3
3
  import BusyIndicator from "@ui5/webcomponents/dist/BusyIndicator.js";
4
4
  export default function TimelineTemplate() {
5
5
  const listRole = this.hasGroupItems ? "tree" : "list";
6
- return (_jsxs("div", { class: "ui5-timeline-root", role: "region", "aria-label": this.ariaLabel, onFocusIn: this._onfocusin, onKeyDown: this._onkeydown, children: [this._hasHeaderBar && (_jsx("div", { class: "ui5-timeline-header-bar-wrapper", children: _jsx("slot", { name: "headerBar" }) })), _jsx(BusyIndicator, { id: `${this._id}-busyIndicator`, delay: this.loadingDelay, active: this.showBusyIndicatorOverlay, class: "ui5-timeline-busy-indicator", children: _jsx("div", { class: "ui5-timeline-scroll-container", children: _jsxs("div", { class: "ui5-timeline-list", role: listRole, "aria-live": "polite", "aria-label": this.ariaLabel, children: [this.items.map(item => _jsx("div", { class: "ui5-timeline-list-item", children: _jsx("slot", { name: item._individualSlot }) })), this.growsWithButton && moreRow.call(this), this.growsOnScroll && endRow.call(this)] }) }) })] }));
6
+ return (_jsx("div", { class: "ui5-timeline-root", role: "region", "aria-label": this.ariaLabel, onFocusIn: this._onfocusin, onKeyDown: this._onkeydown, children: _jsx(BusyIndicator, { id: `${this._id}-busyIndicator`, delay: this.loadingDelay, active: this.showBusyIndicatorOverlay, class: "ui5-timeline-busy-indicator", children: _jsx("div", { class: "ui5-timeline-scroll-container", children: _jsxs("div", { class: "ui5-timeline-list", role: listRole, "aria-live": "polite", "aria-label": this.ariaLabel, children: [this.items.map(item => _jsx("div", { class: "ui5-timeline-list-item", children: _jsx("slot", { name: item._individualSlot }) })), this.growsWithButton && moreRow.call(this), this.growsOnScroll && endRow.call(this)] }) }) }) }));
7
7
  }
8
8
  function moreRow() {
9
9
  return (_jsxs("li", { class: "ui5-timeline-list-item ui5-timeline-list-growing", children: [_jsx("div", { class: "ui5-tli-icon-outer", children: _jsx(Button, { icon: this.growingButtonIcon, id: "ui5-timeline-growing-btn", class: {
@@ -1 +1 @@
1
- {"version":3,"file":"TimelineTemplate.js","sourceRoot":"","sources":["../src/TimelineTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAEvD,OAAO,aAAa,MAAM,0CAA0C,CAAC;AAIrE,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACvC,MAAM,QAAQ,GAA0B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAE7E,OAAO,CACN,eAAK,KAAK,EAAC,mBAAmB,EAC7B,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,SAAS,EAC1B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,SAAS,EAAE,IAAI,CAAC,UAAU,aAGzB,IAAI,CAAC,aAAa,IAAI,CACtB,cAAK,KAAK,EAAC,iCAAiC,YAC3C,eAAM,IAAI,EAAC,WAAW,GAAQ,GACzB,CACN,EAED,KAAC,aAAa,IACb,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,EAC/B,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,MAAM,EAAE,IAAI,CAAC,wBAAwB,EACrC,KAAK,EAAC,6BAA6B,YAEnC,cAAK,KAAK,EAAC,+BAA+B,YAEzC,eAAK,KAAK,EAAC,mBAAmB,EAC7B,IAAI,EAAE,QAAQ,eACJ,QAAQ,gBACN,IAAI,CAAC,SAAS,aAEzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtB,cAAK,KAAK,EAAC,wBAAwB,YAClC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,CACN,EACC,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAC1C,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IACpC,GACD,GACS,IACX,CACN,CAAC;AACH,CAAC;AAED,SAAS,OAAO;IACf,OAAO,CACN,cAAI,KAAK,EAAC,kDAAkD,aAC3D,cAAK,KAAK,EAAC,oBAAoB,YAC9B,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EACnC,EAAE,EAAE,0BAA0B,EAC9B,KAAK,EAAE;wBACN,gCAAgC,EAAE,IAAI;wBACtC,wCAAwC,EAAE,IAAI,CAAC,eAAe;qBAC9D,EACD,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAClC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,cAAc,EAAE,IAAI,CAAC,iBAAiB,GAC7B,GACL,EACL,IAAI,CAAC,OAAO;gBACZ,KAAC,aAAa,IACb,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAC,4CAA4C,EAClD,MAAM,SACS,IAEb,CACL,CAAC;AACH,CAAC;AAED,SAAS,MAAM;IACd,OAAO,CACN,cAAK,QAAQ,EAAE,CAAC,CAAC,iBAAc,MAAM,EAAC,KAAK,EAAC,yBAAyB,YACpE,eAAM,QAAQ,EAAE,CAAC,CAAC,iBAAc,MAAM,EAAC,KAAK,EAAC,yBAAyB,GAAQ,GACzE,CACN,CAAC;AACH,CAAC","sourcesContent":["import Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type Timeline from \"./Timeline.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\n\ntype TimelineListRole = \"list\" | \"tree\";\n\nexport default function TimelineTemplate(this: Timeline) {\n\tconst listRole: `${TimelineListRole}` = this.hasGroupItems ? \"tree\" : \"list\";\n\n\treturn (\n\t\t<div class=\"ui5-timeline-root\"\n\t\t\trole=\"region\"\n\t\t\taria-label={this.ariaLabel}\n\t\t\tonFocusIn={this._onfocusin}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t>\n\t\t\t{/* Header Bar Slot */}\n\t\t\t{this._hasHeaderBar && (\n\t\t\t\t<div class=\"ui5-timeline-header-bar-wrapper\">\n\t\t\t\t\t<slot name=\"headerBar\"></slot>\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<BusyIndicator\n\t\t\t\tid={`${this._id}-busyIndicator`}\n\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\tactive={this.showBusyIndicatorOverlay}\n\t\t\t\tclass=\"ui5-timeline-busy-indicator\"\n\t\t\t>\n\t\t\t\t<div class=\"ui5-timeline-scroll-container\">\n\n\t\t\t\t\t<div class=\"ui5-timeline-list\"\n\t\t\t\t\t\trole={listRole}\n\t\t\t\t\t\taria-live=\"polite\"\n\t\t\t\t\t\taria-label={this.ariaLabel}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.items.map(item =>\n\t\t\t\t\t\t\t<div class=\"ui5-timeline-list-item\">\n\t\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{ this.growsWithButton && moreRow.call(this) }\n\t\t\t\t\t\t{ this.growsOnScroll && endRow.call(this) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</BusyIndicator>\n\t\t</div>\n\t);\n}\n\nfunction moreRow(this: Timeline) {\n\treturn (\n\t\t<li class=\"ui5-timeline-list-item ui5-timeline-list-growing\">\n\t\t\t<div class=\"ui5-tli-icon-outer\">\n\t\t\t\t<Button icon={this.growingButtonIcon}\n\t\t\t\t\tid={\"ui5-timeline-growing-btn\"}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t\"ui5-timeline-growing-row-inner\": true,\n\t\t\t\t\t\t\"ui5-timeline-growing-row-inner--active\": this._loadMoreActive\n\t\t\t\t\t}}\n\t\t\t\t\ttabindex={0}\n\t\t\t\t\tonClick={this._onLoadMoreClick}\n\t\t\t\t\tonKeyDown={this._onLoadMoreKeydown}\n\t\t\t\t\tonKeyUp={this._onLoadMoreKeyup}\n\t\t\t\t\ttooltip={this.growingButtonText}\n\t\t\t\t\taccessibleName={this.growingButtonText}\n\t\t\t\t></Button>\n\t\t\t</div>\n\t\t\t{this.loading &&\n\t\t\t\t<BusyIndicator\n\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\tclass=\"ui5-timeline-growing-button-busy-indicator\"\n\t\t\t\t\tactive>\n\t\t\t\t</BusyIndicator>\n\t\t\t}\n\t\t</li>\n\t);\n}\n\nfunction endRow(this: Timeline) {\n\treturn (\n\t\t<div tabindex={-1} aria-hidden=\"true\" class=\"ui5-timeline-end-marker\">\n\t\t\t<span tabindex={-1} aria-hidden=\"true\" class=\"ui5-timeline-end-marker\"></span>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"file":"TimelineTemplate.js","sourceRoot":"","sources":["../src/TimelineTemplate.tsx"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,mCAAmC,CAAC;AAEvD,OAAO,aAAa,MAAM,0CAA0C,CAAC;AAIrE,MAAM,CAAC,OAAO,UAAU,gBAAgB;IACvC,MAAM,QAAQ,GAA0B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAE7E,OAAO,CACN,cAAK,KAAK,EAAC,mBAAmB,EAC7B,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,SAAS,EAC1B,SAAS,EAAE,IAAI,CAAC,UAAU,EAC1B,SAAS,EAAE,IAAI,CAAC,UAAU,YAE1B,KAAC,aAAa,IACb,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,EAC/B,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,MAAM,EAAE,IAAI,CAAC,wBAAwB,EACrC,KAAK,EAAC,6BAA6B,YAEnC,cAAK,KAAK,EAAC,+BAA+B,YAEzC,eAAK,KAAK,EAAC,mBAAmB,EAC7B,IAAI,EAAE,QAAQ,eACJ,QAAQ,gBACN,IAAI,CAAC,SAAS,aAEzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACtB,cAAK,KAAK,EAAC,wBAAwB,YAClC,eAAM,IAAI,EAAE,IAAI,CAAC,eAAe,GAAS,GACpC,CACN,EACC,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAC1C,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IACpC,GACD,GACS,GACX,CACN,CAAC;AACH,CAAC;AAED,SAAS,OAAO;IACf,OAAO,CACN,cAAI,KAAK,EAAC,kDAAkD,aAC3D,cAAK,KAAK,EAAC,oBAAoB,YAC9B,KAAC,MAAM,IAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,EACnC,EAAE,EAAE,0BAA0B,EAC9B,KAAK,EAAE;wBACN,gCAAgC,EAAE,IAAI;wBACtC,wCAAwC,EAAE,IAAI,CAAC,eAAe;qBAC9D,EACD,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,SAAS,EAAE,IAAI,CAAC,kBAAkB,EAClC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAC9B,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAC/B,cAAc,EAAE,IAAI,CAAC,iBAAiB,GAC7B,GACL,EACL,IAAI,CAAC,OAAO;gBACZ,KAAC,aAAa,IACb,KAAK,EAAE,IAAI,CAAC,YAAY,EACxB,KAAK,EAAC,4CAA4C,EAClD,MAAM,SACS,IAEb,CACL,CAAC;AACH,CAAC;AAED,SAAS,MAAM;IACd,OAAO,CACN,cAAK,QAAQ,EAAE,CAAC,CAAC,iBAAc,MAAM,EAAC,KAAK,EAAC,yBAAyB,YACpE,eAAM,QAAQ,EAAE,CAAC,CAAC,iBAAc,MAAM,EAAC,KAAK,EAAC,yBAAyB,GAAQ,GACzE,CACN,CAAC;AACH,CAAC","sourcesContent":["import Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type Timeline from \"./Timeline.js\";\nimport BusyIndicator from \"@ui5/webcomponents/dist/BusyIndicator.js\";\n\ntype TimelineListRole = \"list\" | \"tree\";\n\nexport default function TimelineTemplate(this: Timeline) {\n\tconst listRole: `${TimelineListRole}` = this.hasGroupItems ? \"tree\" : \"list\";\n\n\treturn (\n\t\t<div class=\"ui5-timeline-root\"\n\t\t\trole=\"region\"\n\t\t\taria-label={this.ariaLabel}\n\t\t\tonFocusIn={this._onfocusin}\n\t\t\tonKeyDown={this._onkeydown}\n\t\t>\n\t\t\t<BusyIndicator\n\t\t\t\tid={`${this._id}-busyIndicator`}\n\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\tactive={this.showBusyIndicatorOverlay}\n\t\t\t\tclass=\"ui5-timeline-busy-indicator\"\n\t\t\t>\n\t\t\t\t<div class=\"ui5-timeline-scroll-container\">\n\n\t\t\t\t\t<div class=\"ui5-timeline-list\"\n\t\t\t\t\t\trole={listRole}\n\t\t\t\t\t\taria-live=\"polite\"\n\t\t\t\t\t\taria-label={this.ariaLabel}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.items.map(item =>\n\t\t\t\t\t\t\t<div class=\"ui5-timeline-list-item\">\n\t\t\t\t\t\t\t\t<slot name={item._individualSlot}></slot>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{ this.growsWithButton && moreRow.call(this) }\n\t\t\t\t\t\t{ this.growsOnScroll && endRow.call(this) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</BusyIndicator>\n\t\t</div>\n\t);\n}\n\nfunction moreRow(this: Timeline) {\n\treturn (\n\t\t<li class=\"ui5-timeline-list-item ui5-timeline-list-growing\">\n\t\t\t<div class=\"ui5-tli-icon-outer\">\n\t\t\t\t<Button icon={this.growingButtonIcon}\n\t\t\t\t\tid={\"ui5-timeline-growing-btn\"}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t\"ui5-timeline-growing-row-inner\": true,\n\t\t\t\t\t\t\"ui5-timeline-growing-row-inner--active\": this._loadMoreActive\n\t\t\t\t\t}}\n\t\t\t\t\ttabindex={0}\n\t\t\t\t\tonClick={this._onLoadMoreClick}\n\t\t\t\t\tonKeyDown={this._onLoadMoreKeydown}\n\t\t\t\t\tonKeyUp={this._onLoadMoreKeyup}\n\t\t\t\t\ttooltip={this.growingButtonText}\n\t\t\t\t\taccessibleName={this.growingButtonText}\n\t\t\t\t></Button>\n\t\t\t</div>\n\t\t\t{this.loading &&\n\t\t\t\t<BusyIndicator\n\t\t\t\t\tdelay={this.loadingDelay}\n\t\t\t\t\tclass=\"ui5-timeline-growing-button-busy-indicator\"\n\t\t\t\t\tactive>\n\t\t\t\t</BusyIndicator>\n\t\t\t}\n\t\t</li>\n\t);\n}\n\nfunction endRow(this: Timeline) {\n\treturn (\n\t\t<div tabindex={-1} aria-hidden=\"true\" class=\"ui5-timeline-end-marker\">\n\t\t\t<span tabindex={-1} aria-hidden=\"true\" class=\"ui5-timeline-end-marker\"></span>\n\t\t</div>\n\t);\n}\n"]}
@@ -126,6 +126,8 @@ declare class UploadCollectionItem extends ListItem {
126
126
  _onRenameKeyup(e: KeyboardEvent): void;
127
127
  _onRenameCancel(e: KeyboardEvent | UI5CustomEvent<Button, "click">): Promise<void>;
128
128
  _onRenameCancelKeyup(e: KeyboardEvent): void;
129
+ _handleTabNext(e: KeyboardEvent): void;
130
+ _handleTabPrevious(e: KeyboardEvent): void;
129
131
  _focus(): void;
130
132
  _onFileNameClick(): void;
131
133
  _onRetry(): void;
@@ -121,6 +121,7 @@ let UploadCollectionItem = UploadCollectionItem_1 = class UploadCollectionItem e
121
121
  async onDetailClick() {
122
122
  super.onDetailClick();
123
123
  this._editing = true;
124
+ this._editMode = true;
124
125
  await this._initInputField();
125
126
  }
126
127
  async _initInputField() {
@@ -172,6 +173,7 @@ let UploadCollectionItem = UploadCollectionItem_1 = class UploadCollectionItem e
172
173
  this.fileName = inp.value + this._fileExtension;
173
174
  this.fireDecoratorEvent("rename");
174
175
  this._editing = false;
176
+ this._editMode = false;
175
177
  this._focus();
176
178
  }
177
179
  _onRenameKeyup(e) {
@@ -181,6 +183,7 @@ let UploadCollectionItem = UploadCollectionItem_1 = class UploadCollectionItem e
181
183
  }
182
184
  async _onRenameCancel(e) {
183
185
  this._editing = false;
186
+ this._editMode = false;
184
187
  if (isEscape(e)) {
185
188
  await renderFinished();
186
189
  this.shadowRoot.querySelector(`#${this._id}-editing-button`).focus();
@@ -194,6 +197,27 @@ let UploadCollectionItem = UploadCollectionItem_1 = class UploadCollectionItem e
194
197
  this._onRenameCancel(e);
195
198
  }
196
199
  }
200
+ _handleTabNext(e) {
201
+ if (this._editMode) {
202
+ return super._handleTabNext(e);
203
+ }
204
+ if (this.shouldForwardTabAfter()) {
205
+ if (!this.fireDecoratorEvent("forward-after")) {
206
+ e.preventDefault();
207
+ }
208
+ }
209
+ }
210
+ _handleTabPrevious(e) {
211
+ if (this._editMode) {
212
+ return super._handleTabPrevious(e);
213
+ }
214
+ const target = e.target;
215
+ if (this.shouldForwardTabBefore(target)) {
216
+ if (!this.fireDecoratorEvent("forward-before")) {
217
+ e.preventDefault();
218
+ }
219
+ }
220
+ }
197
221
  _focus() {
198
222
  this.fireDecoratorEvent("focus-requested");
199
223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UploadCollectionItem.js","sourceRoot":"","sources":["../src/UploadCollectionItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItemType from \"@ui5/webcomponents/dist/types/ListItemType.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport ListItem from \"@ui5/webcomponents/dist/ListItem.js\";\nimport getFileExtension from \"@ui5/webcomponents-base/dist/util/getFileExtension.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport {\n\tisDelete,\n\tisEnter,\n\tisEscape,\n\tisSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UploadState from \"./types/UploadState.js\";\nimport \"@ui5/webcomponents-icons/dist/refresh.js\";\nimport \"@ui5/webcomponents-icons/dist/stop.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport {\n\tUPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_RENAMEBUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_ERROR_STATE,\n\tUPLOADCOLLECTIONITEM_UPLOADING_STATE,\n\tUPLOADCOLLECTIONITEM_READY_STATE,\n\tUPLOADCOLLECTIONITEM_RETRY_BUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_TERMINATE_BUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_EDIT_BUTTON_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport UploadCollectionItemTemplate from \"./UploadCollectionItemTemplate.js\";\n\n// Styles\nimport UploadCollectionItemCss from \"./generated/themes/UploadCollectionItem.css.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n/**\n * @class\n *\n * ### Overview\n * A component to be used within the `ui5-upload-collection`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/UploadCollectionItem.js\";`\n * @constructor\n * @extends ListItem\n * @public\n * @slot {Node[]} default - Hold the description of the `ui5-upload-collection-item`. Will be shown below the file name.\n * @since 1.0.0-rc.7\n */\n@customElement({\n\ttag: \"ui5-upload-collection-item\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: [ListItem.styles, UploadCollectionItemCss],\n\ttemplate: UploadCollectionItemTemplate,\n})\n\n/**\n * Fired when the file name is clicked.\n *\n * **Note:** This event is only available when `fileNameClickable` property is `true`.\n * @public\n */\n@event(\"file-name-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the `fileName` property gets changed.\n *\n * **Note:** An edit button is displayed on each item,\n * when the `ui5-upload-collection-item` `type` property is set to `Detail`.\n * @public\n */\n@event(\"rename\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the terminate button is pressed.\n *\n * **Note:** Terminate button is displayed when `uploadState` property is set to `Uploading`.\n * @public\n */\n@event(\"terminate\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the retry button is pressed.\n *\n * **Note:** Retry button is displayed when `uploadState` property is set to `Error`.\n * @public\n */\n@event(\"retry\", {\n\tbubbles: true,\n})\n\n/**\n * @since 1.0.0-rc.8\n * @private\n */\n@event(\"focus-requested\", {\n\tbubbles: true,\n})\n\n/**\n * @private\n */\n@event(\"request-delete\", {\n\tbubbles: true,\n})\nclass UploadCollectionItem extends ListItem {\n\teventDetails!: ListItem[\"eventDetails\"] & {\n\t\t\"file-name-click\": void;\n\t\t\"rename\": void;\n\t\t\"terminate\": void;\n\t\t\"retry\": void;\n\t\t\"focus-requested\": void;\n\t\t\"_uci-delete\": void;\n\t\t\"request-delete\": void;\n\t}\n\t/**\n\t * Holds an instance of `File` associated with this item.\n\t * @default null\n\t * @public\n\t */\n\t@property({ type: Object, noAttribute: true })\n\tfile: File | null = null;\n\n\t/**\n\t * The name of the file.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tfileName = \"\";\n\n\t/**\n\t * If set to `true` the file name will be clickable and it will fire `file-name-click` event upon click.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tfileNameClickable = false;\n\n\t/**\n\t * Disables the delete button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisableDeleteButton = false;\n\n\t/**\n\t * Hides the delete button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideDeleteButton = false;\n\n\t/**\n\t * Hides the retry button when `uploadState` property is `Error`.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideRetryButton = false;\n\n\t/**\n\t * Hides the terminate button when `uploadState` property is `Uploading`.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideTerminateButton = false;\n\n\t/**\n\t * The upload progress in percentage.\n\t *\n\t * **Note:** Expected values are in the interval [0, 100].\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tprogress = 0;\n\n\t/**\n\t * Upload state.\n\t *\n\t * Depending on this property, the item displays the following:\n\t *\n\t * - `Ready` - progress indicator is displayed.\n\t * - `Uploading` - progress indicator and terminate button are displayed. When the terminate button is pressed, `terminate` event is fired.\n\t * - `Error` - progress indicator and retry button are displayed. When the retry button is pressed, `retry` event is fired.\n\t * - `Complete` - progress indicator is not displayed.\n\t *\n\t * @default \"Ready\"\n\t * @public\n\t */\n\t@property()\n\tuploadState: `${UploadState}` = \"Ready\";\n\n\t/**\n\t * Indicates if editing.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_editing = false;\n\n\t/**\n\t * A thumbnail, which will be shown in the beginning of the `ui5-upload-collection-item`.\n\t *\n\t * **Note:** Use `ui5-icon` or `img` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tthumbnail!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nFioriBundle: I18nBundle;\n\n\t/**\n\t * @override\n\t */\n\tasync onDetailClick() {\n\t\tsuper.onDetailClick();\n\t\tthis._editing = true;\n\n\t\tawait this._initInputField();\n\t}\n\n\tasync _initInputField() {\n\t\tawait renderFinished();\n\n\t\tif (this.editInpElement) {\n\t\t\tthis.editInpElement.value = this._fileNameWithoutExtension;\n\t\t}\n\n\t\tawait renderFinished();\n\n\t\tconst inpFocusDomRef = this.editInpElement?.getFocusDomRef();\n\t\tif (inpFocusDomRef) {\n\t\t\tinpFocusDomRef.focus();\n\t\t\t(inpFocusDomRef as HTMLInputElement).setSelectionRange(0, this._fileNameWithoutExtension.length);\n\t\t}\n\t}\n\n\tget editInpElement() {\n\t\treturn this.shadowRoot!.querySelector<Input>(\"#ui5-uci-edit-input\");\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isDelete(e) && !this.disableDeleteButton && !this.hideDeleteButton && !this.disabled) {\n\t\t\tthis._onDelete();\n\t\t}\n\t}\n\n\t_onDetailKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.onDetailClick();\n\t\t}\n\t}\n\n\t_onInputFocusin(e: FocusEvent) {\n\t\t// prevent focusing the whole upload collection item.\n\t\te.stopPropagation();\n\t}\n\n\t_onInputKeyDown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis._onRenameCancel(e);\n\t\t} else if (isEnter(e)) {\n\t\t\tthis._onRename();\n\t\t} else if (isSpace(e)) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\t_onRename() {\n\t\tconst inp = this.shadowRoot!.querySelector<Input>(\"#ui5-uci-edit-input\")!;\n\t\tthis.fileName = inp.value + this._fileExtension;\n\t\tthis.fireDecoratorEvent(\"rename\");\n\n\t\tthis._editing = false;\n\t\tthis._focus();\n\t}\n\n\t_onRenameKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRename();\n\t\t}\n\t}\n\n\tasync _onRenameCancel(e: KeyboardEvent | UI5CustomEvent<Button, \"click\">) {\n\t\tthis._editing = false;\n\n\t\tif (isEscape(e as KeyboardEvent)) {\n\t\t\tawait renderFinished();\n\t\t\tthis.shadowRoot!.querySelector<Button>(`#${this._id}-editing-button`)!.focus();\n\t\t} else {\n\t\t\tthis._focus();\n\t\t}\n\t}\n\n\t_onRenameCancelKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRenameCancel(e);\n\t\t}\n\t}\n\n\t_focus() {\n\t\tthis.fireDecoratorEvent(\"focus-requested\");\n\t}\n\n\t_onFileNameClick() {\n\t\tthis.fireDecoratorEvent(\"file-name-click\");\n\t}\n\n\t_onRetry() {\n\t\tthis.fireDecoratorEvent(\"retry\");\n\t}\n\n\t_onRetryKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRetry();\n\t\t}\n\t}\n\n\t_onTerminate() {\n\t\tthis.fireDecoratorEvent(\"terminate\");\n\t}\n\n\t_onTerminateKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onTerminate();\n\t\t}\n\t}\n\n\t_onDelete() {\n\t\tthis.fireDecoratorEvent(\"request-delete\");\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this.getDomRef();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget classes() {\n\t\tconst result = super.classes;\n\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t...result.main,\n\t\t\t\t\"ui5-uci-root\": true,\n\t\t\t\t\"ui5-uci-root-editing\": this._editing,\n\t\t\t\t\"ui5-uci-root-uploading\": this.uploadState === UploadState.Uploading,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _fileNameWithoutExtension() {\n\t\treturn this.fileName.substring(0, this.fileName.length - this._fileExtension.length);\n\t}\n\n\tget _fileExtension() {\n\t\treturn getFileExtension(this.fileName);\n\t}\n\n\tget _renameBtnText() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_RENAMEBUTTON_TEXT);\n\t}\n\n\tget _cancelRenameBtnText() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT);\n\t}\n\n\tget _showProgressIndicator() {\n\t\treturn this.uploadState !== UploadState.Complete;\n\t}\n\n\tget _progressText() {\n\t\tif (this.uploadState === UploadState.Uploading) {\n\t\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_UPLOADING_STATE);\n\t\t}\n\n\t\tif (this.uploadState === UploadState.Error) {\n\t\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_ERROR_STATE);\n\t\t}\n\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_READY_STATE);\n\t}\n\n\tget _showRetry() {\n\t\treturn !this.hideRetryButton && this.uploadState === UploadState.Error;\n\t}\n\n\tget _showTerminate() {\n\t\treturn !this.hideTerminateButton && this.uploadState === UploadState.Uploading;\n\t}\n\n\tget _retryButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_RETRY_BUTTON_TEXT);\n\t}\n\n\tget _terminateButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_TERMINATE_BUTTON_TEXT);\n\t}\n\n\tget _editButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_EDIT_BUTTON_TEXT);\n\t}\n\n\tget valueStateName(): ValueState {\n\t\tif (this.uploadState === UploadState.Error) {\n\t\t\treturn ValueState.Negative;\n\t\t}\n\n\t\tif (this.uploadState === UploadState.Ready || this.uploadState === UploadState.Uploading) {\n\t\t\treturn ValueState.Information;\n\t\t}\n\n\t\treturn ValueState.None;\n\t}\n\n\t/**\n\t * override\n\t */\n\tget typeDetail() {\n\t\treturn false;\n\t}\n\n\tget showEditButton() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n}\n\nUploadCollectionItem.define();\n\nexport default UploadCollectionItem;\n"]}
1
+ {"version":3,"file":"UploadCollectionItem.js","sourceRoot":"","sources":["../src/UploadCollectionItem.ts"],"names":[],"mappings":"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","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItemType from \"@ui5/webcomponents/dist/types/ListItemType.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport ListItem from \"@ui5/webcomponents/dist/ListItem.js\";\nimport getFileExtension from \"@ui5/webcomponents-base/dist/util/getFileExtension.js\";\nimport { renderFinished } from \"@ui5/webcomponents-base/dist/Render.js\";\nimport type { UI5CustomEvent } from \"@ui5/webcomponents-base\";\nimport {\n\tisDelete,\n\tisEnter,\n\tisEscape,\n\tisSpace,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport UploadState from \"./types/UploadState.js\";\nimport \"@ui5/webcomponents-icons/dist/refresh.js\";\nimport \"@ui5/webcomponents-icons/dist/stop.js\";\nimport \"@ui5/webcomponents-icons/dist/edit.js\";\nimport {\n\tUPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_RENAMEBUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_ERROR_STATE,\n\tUPLOADCOLLECTIONITEM_UPLOADING_STATE,\n\tUPLOADCOLLECTIONITEM_READY_STATE,\n\tUPLOADCOLLECTIONITEM_RETRY_BUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_TERMINATE_BUTTON_TEXT,\n\tUPLOADCOLLECTIONITEM_EDIT_BUTTON_TEXT,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport UploadCollectionItemTemplate from \"./UploadCollectionItemTemplate.js\";\n\n// Styles\nimport UploadCollectionItemCss from \"./generated/themes/UploadCollectionItem.css.js\";\nimport type { Slot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n/**\n * @class\n *\n * ### Overview\n * A component to be used within the `ui5-upload-collection`.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/UploadCollectionItem.js\";`\n * @constructor\n * @extends ListItem\n * @public\n * @slot {Node[]} default - Hold the description of the `ui5-upload-collection-item`. Will be shown below the file name.\n * @since 1.0.0-rc.7\n */\n@customElement({\n\ttag: \"ui5-upload-collection-item\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\tstyles: [ListItem.styles, UploadCollectionItemCss],\n\ttemplate: UploadCollectionItemTemplate,\n})\n\n/**\n * Fired when the file name is clicked.\n *\n * **Note:** This event is only available when `fileNameClickable` property is `true`.\n * @public\n */\n@event(\"file-name-click\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the `fileName` property gets changed.\n *\n * **Note:** An edit button is displayed on each item,\n * when the `ui5-upload-collection-item` `type` property is set to `Detail`.\n * @public\n */\n@event(\"rename\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the terminate button is pressed.\n *\n * **Note:** Terminate button is displayed when `uploadState` property is set to `Uploading`.\n * @public\n */\n@event(\"terminate\", {\n\tbubbles: true,\n})\n\n/**\n * Fired when the retry button is pressed.\n *\n * **Note:** Retry button is displayed when `uploadState` property is set to `Error`.\n * @public\n */\n@event(\"retry\", {\n\tbubbles: true,\n})\n\n/**\n * @since 1.0.0-rc.8\n * @private\n */\n@event(\"focus-requested\", {\n\tbubbles: true,\n})\n\n/**\n * @private\n */\n@event(\"request-delete\", {\n\tbubbles: true,\n})\nclass UploadCollectionItem extends ListItem {\n\teventDetails!: ListItem[\"eventDetails\"] & {\n\t\t\"file-name-click\": void;\n\t\t\"rename\": void;\n\t\t\"terminate\": void;\n\t\t\"retry\": void;\n\t\t\"focus-requested\": void;\n\t\t\"_uci-delete\": void;\n\t\t\"request-delete\": void;\n\t}\n\t/**\n\t * Holds an instance of `File` associated with this item.\n\t * @default null\n\t * @public\n\t */\n\t@property({ type: Object, noAttribute: true })\n\tfile: File | null = null;\n\n\t/**\n\t * The name of the file.\n\t * @default \"\"\n\t * @public\n\t */\n\t@property()\n\tfileName = \"\";\n\n\t/**\n\t * If set to `true` the file name will be clickable and it will fire `file-name-click` event upon click.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tfileNameClickable = false;\n\n\t/**\n\t * Disables the delete button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tdisableDeleteButton = false;\n\n\t/**\n\t * Hides the delete button.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideDeleteButton = false;\n\n\t/**\n\t * Hides the retry button when `uploadState` property is `Error`.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideRetryButton = false;\n\n\t/**\n\t * Hides the terminate button when `uploadState` property is `Uploading`.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\thideTerminateButton = false;\n\n\t/**\n\t * The upload progress in percentage.\n\t *\n\t * **Note:** Expected values are in the interval [0, 100].\n\t * @default 0\n\t * @public\n\t */\n\t@property({ type: Number })\n\tprogress = 0;\n\n\t/**\n\t * Upload state.\n\t *\n\t * Depending on this property, the item displays the following:\n\t *\n\t * - `Ready` - progress indicator is displayed.\n\t * - `Uploading` - progress indicator and terminate button are displayed. When the terminate button is pressed, `terminate` event is fired.\n\t * - `Error` - progress indicator and retry button are displayed. When the retry button is pressed, `retry` event is fired.\n\t * - `Complete` - progress indicator is not displayed.\n\t *\n\t * @default \"Ready\"\n\t * @public\n\t */\n\t@property()\n\tuploadState: `${UploadState}` = \"Ready\";\n\n\t/**\n\t * Indicates if editing.\n\t * @default false\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_editing = false;\n\n\t/**\n\t * A thumbnail, which will be shown in the beginning of the `ui5-upload-collection-item`.\n\t *\n\t * **Note:** Use `ui5-icon` or `img` for the intended design.\n\t * @public\n\t */\n\t@slot({ type: HTMLElement })\n\tthumbnail!: Slot<HTMLElement>;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nFioriBundle: I18nBundle;\n\n\t/**\n\t * @override\n\t */\n\tasync onDetailClick() {\n\t\tsuper.onDetailClick();\n\t\tthis._editing = true;\n\t\tthis._editMode = true;\n\n\t\tawait this._initInputField();\n\t}\n\n\tasync _initInputField() {\n\t\tawait renderFinished();\n\n\t\tif (this.editInpElement) {\n\t\t\tthis.editInpElement.value = this._fileNameWithoutExtension;\n\t\t}\n\n\t\tawait renderFinished();\n\n\t\tconst inpFocusDomRef = this.editInpElement?.getFocusDomRef();\n\t\tif (inpFocusDomRef) {\n\t\t\tinpFocusDomRef.focus();\n\t\t\t(inpFocusDomRef as HTMLInputElement).setSelectionRange(0, this._fileNameWithoutExtension.length);\n\t\t}\n\t}\n\n\tget editInpElement() {\n\t\treturn this.shadowRoot!.querySelector<Input>(\"#ui5-uci-edit-input\");\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tsuper._onkeyup(e);\n\n\t\tif (this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isDelete(e) && !this.disableDeleteButton && !this.hideDeleteButton && !this.disabled) {\n\t\t\tthis._onDelete();\n\t\t}\n\t}\n\n\t_onDetailKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis.onDetailClick();\n\t\t}\n\t}\n\n\t_onInputFocusin(e: FocusEvent) {\n\t\t// prevent focusing the whole upload collection item.\n\t\te.stopPropagation();\n\t}\n\n\t_onInputKeyDown(e: KeyboardEvent) {\n\t\tif (isEscape(e)) {\n\t\t\tthis._onRenameCancel(e);\n\t\t} else if (isEnter(e)) {\n\t\t\tthis._onRename();\n\t\t} else if (isSpace(e)) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\t}\n\n\t_onRename() {\n\t\tconst inp = this.shadowRoot!.querySelector<Input>(\"#ui5-uci-edit-input\")!;\n\t\tthis.fileName = inp.value + this._fileExtension;\n\t\tthis.fireDecoratorEvent(\"rename\");\n\n\t\tthis._editing = false;\n\t\tthis._editMode = false;\n\t\tthis._focus();\n\t}\n\n\t_onRenameKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRename();\n\t\t}\n\t}\n\n\tasync _onRenameCancel(e: KeyboardEvent | UI5CustomEvent<Button, \"click\">) {\n\t\tthis._editing = false;\n\t\tthis._editMode = false;\n\n\t\tif (isEscape(e as KeyboardEvent)) {\n\t\t\tawait renderFinished();\n\t\t\tthis.shadowRoot!.querySelector<Button>(`#${this._id}-editing-button`)!.focus();\n\t\t} else {\n\t\t\tthis._focus();\n\t\t}\n\t}\n\n\t_onRenameCancelKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRenameCancel(e);\n\t\t}\n\t}\n\n\t_handleTabNext(e: KeyboardEvent) {\n\t\tif (this._editMode) {\n\t\t\treturn super._handleTabNext(e);\n\t\t}\n\n\t\tif (this.shouldForwardTabAfter()) {\n\t\t\tif (!this.fireDecoratorEvent(\"forward-after\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t_handleTabPrevious(e: KeyboardEvent) {\n\t\tif (this._editMode) {\n\t\t\treturn super._handleTabPrevious(e);\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tif (this.shouldForwardTabBefore(target)) {\n\t\t\tif (!this.fireDecoratorEvent(\"forward-before\")) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\t\t}\n\t}\n\n\t_focus() {\n\t\tthis.fireDecoratorEvent(\"focus-requested\");\n\t}\n\n\t_onFileNameClick() {\n\t\tthis.fireDecoratorEvent(\"file-name-click\");\n\t}\n\n\t_onRetry() {\n\t\tthis.fireDecoratorEvent(\"retry\");\n\t}\n\n\t_onRetryKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onRetry();\n\t\t}\n\t}\n\n\t_onTerminate() {\n\t\tthis.fireDecoratorEvent(\"terminate\");\n\t}\n\n\t_onTerminateKeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onTerminate();\n\t\t}\n\t}\n\n\t_onDelete() {\n\t\tthis.fireDecoratorEvent(\"request-delete\");\n\t}\n\n\tgetFocusDomRef() {\n\t\treturn this.getDomRef();\n\t}\n\n\t/**\n\t * @override\n\t */\n\tget classes() {\n\t\tconst result = super.classes;\n\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t...result.main,\n\t\t\t\t\"ui5-uci-root\": true,\n\t\t\t\t\"ui5-uci-root-editing\": this._editing,\n\t\t\t\t\"ui5-uci-root-uploading\": this.uploadState === UploadState.Uploading,\n\t\t\t},\n\t\t};\n\t}\n\n\tget _fileNameWithoutExtension() {\n\t\treturn this.fileName.substring(0, this.fileName.length - this._fileExtension.length);\n\t}\n\n\tget _fileExtension() {\n\t\treturn getFileExtension(this.fileName);\n\t}\n\n\tget _renameBtnText() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_RENAMEBUTTON_TEXT);\n\t}\n\n\tget _cancelRenameBtnText() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_CANCELBUTTON_TEXT);\n\t}\n\n\tget _showProgressIndicator() {\n\t\treturn this.uploadState !== UploadState.Complete;\n\t}\n\n\tget _progressText() {\n\t\tif (this.uploadState === UploadState.Uploading) {\n\t\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_UPLOADING_STATE);\n\t\t}\n\n\t\tif (this.uploadState === UploadState.Error) {\n\t\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_ERROR_STATE);\n\t\t}\n\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_READY_STATE);\n\t}\n\n\tget _showRetry() {\n\t\treturn !this.hideRetryButton && this.uploadState === UploadState.Error;\n\t}\n\n\tget _showTerminate() {\n\t\treturn !this.hideTerminateButton && this.uploadState === UploadState.Uploading;\n\t}\n\n\tget _retryButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_RETRY_BUTTON_TEXT);\n\t}\n\n\tget _terminateButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_TERMINATE_BUTTON_TEXT);\n\t}\n\n\tget _editButtonTooltip() {\n\t\treturn UploadCollectionItem.i18nFioriBundle.getText(UPLOADCOLLECTIONITEM_EDIT_BUTTON_TEXT);\n\t}\n\n\tget valueStateName(): ValueState {\n\t\tif (this.uploadState === UploadState.Error) {\n\t\t\treturn ValueState.Negative;\n\t\t}\n\n\t\tif (this.uploadState === UploadState.Ready || this.uploadState === UploadState.Uploading) {\n\t\t\treturn ValueState.Information;\n\t\t}\n\n\t\treturn ValueState.None;\n\t}\n\n\t/**\n\t * override\n\t */\n\tget typeDetail() {\n\t\treturn false;\n\t}\n\n\tget showEditButton() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n}\n\nUploadCollectionItem.define();\n\nexport default UploadCollectionItem;\n"]}
@@ -30,6 +30,30 @@ declare class UserMenuItem extends MenuItem {
30
30
  * @public
31
31
  */
32
32
  items: DefaultSlot<UserMenuItem>;
33
+ /**
34
+ * When set, a second line appears below the menu item text showing the text
35
+ * of the currently selected sub-item. Intended for use with a single-select
36
+ * ui5-menu-item-group (check-mode="Single").
37
+ * When enabled, the checked sub-item cannot be unchecked,
38
+ * ensuring the selection text is always displayed.
39
+ *
40
+ * @default false
41
+ * @public
42
+ * @since 2.22.0
43
+ */
44
+ showSelection: boolean;
33
45
  get _menuItems(): UserMenuItem[];
46
+ /**
47
+ * Overrides the base MenuItem behavior to prevent unchecking
48
+ * the currently checked item in single-select mode when
49
+ * the parent item uses showSelection, ensuring there is always
50
+ * a visible selection.
51
+ */
52
+ _updateCheckedState(): void;
53
+ /**
54
+ * Returns the text of the currently checked sub-item.
55
+ * Only returns text for single-select groups.
56
+ */
57
+ get _selectedSubItemText(): string;
34
58
  }
35
59
  export default UserMenuItem;
@@ -4,8 +4,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { customElement, slotStrict as slot } from "@ui5/webcomponents-base/dist/decorators.js";
7
+ var UserMenuItem_1;
8
+ import { customElement, slotStrict as slot, property } from "@ui5/webcomponents-base/dist/decorators.js";
8
9
  import MenuItem, { isInstanceOfMenuItem } from "@ui5/webcomponents/dist/MenuItem.js";
10
+ import MenuItemGroupCheckMode from "@ui5/webcomponents/dist/types/MenuItemGroupCheckMode.js";
9
11
  import UserMenuItemTemplate from "./UserMenuItemTemplate.js";
10
12
  // Styles
11
13
  import userMenuItemCss from "./generated/themes/UserMenuItem.css.js";
@@ -31,15 +33,62 @@ import userMenuItemCss from "./generated/themes/UserMenuItem.css.js";
31
33
  * @public
32
34
  * @since 2.5.0
33
35
  */
34
- let UserMenuItem = class UserMenuItem extends MenuItem {
36
+ let UserMenuItem = UserMenuItem_1 = class UserMenuItem extends MenuItem {
37
+ constructor() {
38
+ super(...arguments);
39
+ /**
40
+ * When set, a second line appears below the menu item text showing the text
41
+ * of the currently selected sub-item. Intended for use with a single-select
42
+ * ui5-menu-item-group (check-mode="Single").
43
+ * When enabled, the checked sub-item cannot be unchecked,
44
+ * ensuring the selection text is always displayed.
45
+ *
46
+ * @default false
47
+ * @public
48
+ * @since 2.22.0
49
+ */
50
+ this.showSelection = false;
51
+ }
35
52
  get _menuItems() {
36
53
  return this.items.filter(isInstanceOfMenuItem);
37
54
  }
55
+ /**
56
+ * Overrides the base MenuItem behavior to prevent unchecking
57
+ * the currently checked item in single-select mode when
58
+ * the parent item uses showSelection, ensuring there is always
59
+ * a visible selection.
60
+ */
61
+ _updateCheckedState() {
62
+ const parentItem = this.parentElement?.parentElement;
63
+ const hasShowSelection = parentItem instanceof UserMenuItem_1 && parentItem.showSelection;
64
+ if (hasShowSelection && this._checkMode === MenuItemGroupCheckMode.Single && this.checked) {
65
+ return;
66
+ }
67
+ super._updateCheckedState();
68
+ }
69
+ /**
70
+ * Returns the text of the currently checked sub-item.
71
+ * Only returns text for single-select groups.
72
+ */
73
+ get _selectedSubItemText() {
74
+ if (!this.showSelection) {
75
+ return "";
76
+ }
77
+ const singleSelectGroup = this._menuItemGroups.find(g => g.checkMode === MenuItemGroupCheckMode.Single);
78
+ if (!singleSelectGroup) {
79
+ return "";
80
+ }
81
+ const checkedItem = singleSelectGroup._menuItems.find(item => item.checked);
82
+ return checkedItem?.text || "";
83
+ }
38
84
  };
39
85
  __decorate([
40
86
  slot({ "default": true, type: HTMLElement, invalidateOnChildChange: true })
41
87
  ], UserMenuItem.prototype, "items", void 0);
42
- UserMenuItem = __decorate([
88
+ __decorate([
89
+ property({ type: Boolean })
90
+ ], UserMenuItem.prototype, "showSelection", void 0);
91
+ UserMenuItem = UserMenuItem_1 = __decorate([
43
92
  customElement({
44
93
  tag: "ui5-user-menu-item",
45
94
  template: UserMenuItemTemplate,