@ui5/webcomponents-fiori 2.22.0 → 2.22.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/CHANGELOG.md +8 -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/NotificationListItem.d.ts +8 -3
  12. package/dist/NotificationListItem.js +17 -3
  13. package/dist/NotificationListItem.js.map +1 -1
  14. package/dist/NotificationListItemBase.js +8 -3
  15. package/dist/NotificationListItemBase.js.map +1 -1
  16. package/dist/Search.d.ts +4 -0
  17. package/dist/Search.js.map +1 -1
  18. package/dist/SearchItemShowMore.d.ts +2 -1
  19. package/dist/SearchItemShowMore.js +1 -1
  20. package/dist/SearchItemShowMore.js.map +1 -1
  21. package/dist/ShellBarSearch.d.ts +1 -0
  22. package/dist/ShellBarSearch.js +11 -0
  23. package/dist/ShellBarSearch.js.map +1 -1
  24. package/dist/UploadCollectionItem.d.ts +2 -0
  25. package/dist/UploadCollectionItem.js +24 -0
  26. package/dist/UploadCollectionItem.js.map +1 -1
  27. package/dist/Wizard.d.ts +6 -0
  28. package/dist/Wizard.js +17 -0
  29. package/dist/Wizard.js.map +1 -1
  30. package/dist/css/themes/SearchField.css +1 -1
  31. package/dist/css/themes/ShellBar.css +1 -1
  32. package/dist/css/themes/ShellBarItem.css +1 -1
  33. package/dist/custom-elements-internal.json +548 -3
  34. package/dist/custom-elements.json +304 -3
  35. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  36. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  37. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  38. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -1
  39. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  40. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  41. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  42. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  43. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  44. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  45. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  46. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  47. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  48. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  49. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  50. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  51. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  52. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  53. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  54. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  55. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  56. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  57. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  58. package/dist/generated/assets/i18n/messagebundle_id.json +1 -1
  59. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  60. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  61. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  62. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  63. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  64. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  65. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  66. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -1
  67. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  68. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  69. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  70. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  71. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  72. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  73. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  74. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  75. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  76. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  77. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  78. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  79. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  80. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  81. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  82. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  83. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  84. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  85. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  86. package/dist/generated/i18n/i18n-defaults.js +3 -3
  87. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  88. package/dist/generated/themes/SearchField.css.d.ts +1 -1
  89. package/dist/generated/themes/SearchField.css.js +1 -1
  90. package/dist/generated/themes/SearchField.css.js.map +1 -1
  91. package/dist/generated/themes/ShellBar.css.d.ts +1 -1
  92. package/dist/generated/themes/ShellBar.css.js +1 -1
  93. package/dist/generated/themes/ShellBar.css.js.map +1 -1
  94. package/dist/generated/themes/ShellBarItem.css.d.ts +1 -1
  95. package/dist/generated/themes/ShellBarItem.css.js +1 -1
  96. package/dist/generated/themes/ShellBarItem.css.js.map +1 -1
  97. package/dist/vscode.html-custom-data.json +69 -2
  98. package/dist/web-types.json +92 -4
  99. package/package-scripts.cjs +1 -0
  100. package/package.json +7 -7
  101. package/src/DynamicSideContentTemplate.tsx +2 -2
  102. package/src/i18n/messagebundle_ar.properties +4 -4
  103. package/src/i18n/messagebundle_bg.properties +5 -5
  104. package/src/i18n/messagebundle_ca.properties +5 -5
  105. package/src/i18n/messagebundle_cnr.properties +4 -4
  106. package/src/i18n/messagebundle_cs.properties +4 -4
  107. package/src/i18n/messagebundle_cy.properties +4 -4
  108. package/src/i18n/messagebundle_da.properties +5 -5
  109. package/src/i18n/messagebundle_de.properties +4 -4
  110. package/src/i18n/messagebundle_el.properties +4 -4
  111. package/src/i18n/messagebundle_en.properties +3 -3
  112. package/src/i18n/messagebundle_en_GB.properties +3 -3
  113. package/src/i18n/messagebundle_en_US_sappsd.properties +4 -4
  114. package/src/i18n/messagebundle_en_US_saprigi.properties +4 -4
  115. package/src/i18n/messagebundle_en_US_saptrc.properties +4 -4
  116. package/src/i18n/messagebundle_es.properties +6 -6
  117. package/src/i18n/messagebundle_es_MX.properties +5 -5
  118. package/src/i18n/messagebundle_et.properties +4 -4
  119. package/src/i18n/messagebundle_fi.properties +4 -4
  120. package/src/i18n/messagebundle_fr.properties +4 -4
  121. package/src/i18n/messagebundle_fr_CA.properties +4 -4
  122. package/src/i18n/messagebundle_hi.properties +4 -4
  123. package/src/i18n/messagebundle_hr.properties +4 -4
  124. package/src/i18n/messagebundle_hu.properties +4 -4
  125. package/src/i18n/messagebundle_id.properties +6 -6
  126. package/src/i18n/messagebundle_it.properties +4 -4
  127. package/src/i18n/messagebundle_iw.properties +4 -4
  128. package/src/i18n/messagebundle_ja.properties +4 -4
  129. package/src/i18n/messagebundle_kk.properties +5 -5
  130. package/src/i18n/messagebundle_ko.properties +3 -3
  131. package/src/i18n/messagebundle_lt.properties +4 -4
  132. package/src/i18n/messagebundle_lv.properties +4 -4
  133. package/src/i18n/messagebundle_mk.properties +6 -6
  134. package/src/i18n/messagebundle_ms.properties +11 -11
  135. package/src/i18n/messagebundle_nl.properties +4 -4
  136. package/src/i18n/messagebundle_no.properties +4 -4
  137. package/src/i18n/messagebundle_pl.properties +6 -6
  138. package/src/i18n/messagebundle_pt.properties +5 -5
  139. package/src/i18n/messagebundle_pt_PT.properties +4 -4
  140. package/src/i18n/messagebundle_ro.properties +4 -4
  141. package/src/i18n/messagebundle_ru.properties +4 -4
  142. package/src/i18n/messagebundle_sh.properties +4 -4
  143. package/src/i18n/messagebundle_sk.properties +4 -4
  144. package/src/i18n/messagebundle_sl.properties +5 -5
  145. package/src/i18n/messagebundle_sr.properties +4 -4
  146. package/src/i18n/messagebundle_sv.properties +4 -4
  147. package/src/i18n/messagebundle_th.properties +3 -3
  148. package/src/i18n/messagebundle_tr.properties +4 -4
  149. package/src/i18n/messagebundle_uk.properties +7 -7
  150. package/src/i18n/messagebundle_vi.properties +3 -3
  151. package/src/i18n/messagebundle_zh_CN.properties +3 -3
  152. package/src/i18n/messagebundle_zh_TW.properties +3 -3
  153. package/src/themes/SearchField.css +1 -1
  154. package/src/themes/ShellBar.css +4 -1
  155. package/src/themes/ShellBarItem.css +3 -1
@@ -4,7 +4,9 @@ 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
+ var NotificationListItemBase_1;
7
8
  import { isSpace, isF2 } from "@ui5/webcomponents-base/dist/Keys.js";
9
+ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
8
10
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
9
11
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
10
12
  import { getTabbableElements } from "@ui5/webcomponents-base/dist/util/TabbableElements.js";
@@ -22,7 +24,7 @@ import { NOTIFICATION_LIST_ITEM_LOADING, } from "./generated/i18n/i18n-defaults.
22
24
  * @since 1.0.0-rc.8
23
25
  * @public
24
26
  */
25
- class NotificationListItemBase extends ListItemBase {
27
+ let NotificationListItemBase = NotificationListItemBase_1 = class NotificationListItemBase extends ListItemBase {
26
28
  constructor() {
27
29
  super(...arguments);
28
30
  /**
@@ -52,7 +54,7 @@ class NotificationListItemBase extends ListItemBase {
52
54
  return !!this.titleText?.length;
53
55
  }
54
56
  get loadingText() {
55
- return NotificationListItemBase.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_LOADING);
57
+ return NotificationListItemBase_1.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_LOADING);
56
58
  }
57
59
  /**
58
60
  * Event handlers
@@ -83,7 +85,7 @@ class NotificationListItemBase extends ListItemBase {
83
85
  const aContent = getTabbableElements(this.getHeaderDomRef());
84
86
  return aContent.length === 0 || (aContent[aContent.length - 1] === getActiveElement());
85
87
  }
86
- }
88
+ };
87
89
  __decorate([
88
90
  property()
89
91
  ], NotificationListItemBase.prototype, "titleText", void 0);
@@ -99,5 +101,8 @@ __decorate([
99
101
  __decorate([
100
102
  i18n("@ui5/webcomponents-fiori")
101
103
  ], NotificationListItemBase, "i18nFioriBundle", void 0);
104
+ NotificationListItemBase = NotificationListItemBase_1 = __decorate([
105
+ customElement({})
106
+ ], NotificationListItemBase);
102
107
  export default NotificationListItemBase;
103
108
  //# sourceMappingURL=NotificationListItemBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationListItemBase.js","sourceRoot":"","sources":["../src/NotificationListItemBase.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,gBAAgB,MAAM,uDAAuD,CAAC;AACrF,OAAO,YAAY,MAAM,yCAAyC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAElG,QAAQ;AACR,OAAO,EACN,8BAA8B,GAC9B,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,wBAAyB,SAAQ,YAAY;IAAnD;;QAUC;;;;;;;WAOG;QAEH,SAAI,GAAG,KAAK,CAAC;QAEb;;;;;WAKG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;WAIG;QAEH,iBAAY,GAAG,IAAI,CAAC;IAgDrB,CAAC;IA3CA,IAAI,YAAY;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,wBAAwB,CAAC,eAAe,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,CAAgB;QAChC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,EAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACzE,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAE7B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAG,CAAC;YAE5C,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,WAAW,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACF,CAAC;IACF,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED,qBAAqB;QACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAG,CAAC,CAAC;QAE9D,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC,CAAC;IACxF,CAAC;CACD;AA5EA;IADC,QAAQ,EAAE;2DACQ;AAWnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACf;AASb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yDACZ;AAQhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACP;AAGb;IADN,IAAI,CAAC,0BAA0B,CAAC;uDACE;AA+CpC,eAAe,wBAAwB,CAAC","sourcesContent":["import { isSpace, isF2 } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\n\n// Texts\nimport {\n\tNOTIFICATION_LIST_ITEM_LOADING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * The base class of the `NotificationListItem` and `NotificationListGroupItem`.\n * @constructor\n * @extends ListItemBase\n * @since 1.0.0-rc.8\n * @public\n */\nclass NotificationListItemBase extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"];\n\t/**\n\t * Defines the `titleText` of the item.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttitleText?: string;\n\n\t/**\n\t * Defines if the `notification` is new or has been already read.\n\t *\n\t * **Note:** if set to `false` the `titleText` has bold font,\n\t * if set to true - it has a normal font.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tread = false;\n\n\t/**\n\t * Defines if a busy indicator would be displayed over the item.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the busy 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@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nFioriBundle: I18nBundle;\n\n\tget hasTitleText() {\n\t\treturn !!this.titleText?.length;\n\t}\n\n\tget loadingText() {\n\t\treturn NotificationListItemBase.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_LOADING);\n\t}\n\n\t/**\n\t * Event handlers\n\t */\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (isSpace(e) && this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isF2(e)) {\n\t\t\te.stopImmediatePropagation();\n\n\t\t\tconst activeElement = getActiveElement();\n\t\t\tconst focusDomRef = this.getHeaderDomRef()!;\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\tfocusDomRef.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetHeaderDomRef() {\n\t\treturn this.getFocusDomRef();\n\t}\n\n\tshouldForwardTabAfter() {\n\t\tconst aContent = getTabbableElements(this.getHeaderDomRef()!);\n\n\t\treturn aContent.length === 0 || (aContent[aContent.length - 1] === getActiveElement());\n\t}\n}\n\nexport default NotificationListItemBase;\n"]}
1
+ {"version":3,"file":"NotificationListItemBase.js","sourceRoot":"","sources":["../src/NotificationListItemBase.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,gBAAgB,MAAM,uDAAuD,CAAC;AACrF,OAAO,YAAY,MAAM,yCAAyC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wDAAwD,CAAC;AAElG,QAAQ;AACR,OAAO,EACN,8BAA8B,GAC9B,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;GAQG;AAEH,IAAM,wBAAwB,gCAA9B,MAAM,wBAAyB,SAAQ,YAAY;IAAnD;;QAUC;;;;;;;WAOG;QAEH,SAAI,GAAG,KAAK,CAAC;QAEb;;;;;WAKG;QAEH,YAAO,GAAG,KAAK,CAAC;QAEhB;;;;WAIG;QAEH,iBAAY,GAAG,IAAI,CAAC;IAgDrB,CAAC;IA3CA,IAAI,YAAY;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC;IACjC,CAAC;IAED,IAAI,WAAW;QACd,OAAO,0BAAwB,CAAC,eAAe,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,CAAgB;QAChC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,EAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACzE,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAE7B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACzC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAG,CAAC;YAE5C,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,WAAW,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACF,CAAC;IACF,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9B,CAAC;IAED,qBAAqB;QACpB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAG,CAAC,CAAC;QAE9D,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,gBAAgB,EAAE,CAAC,CAAC;IACxF,CAAC;CACD,CAAA;AA5EA;IADC,QAAQ,EAAE;2DACQ;AAWnB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sDACf;AASb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yDACZ;AAQhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACP;AAGb;IADN,IAAI,CAAC,0BAA0B,CAAC;uDACE;AAvC9B,wBAAwB;IAD7B,aAAa,CAAC,EAAE,CAAC;GACZ,wBAAwB,CAoF7B;AAED,eAAe,wBAAwB,CAAC","sourcesContent":["import { isSpace, isF2 } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport getActiveElement from \"@ui5/webcomponents-base/dist/util/getActiveElement.js\";\nimport ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport { getFirstFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\n\n// Texts\nimport {\n\tNOTIFICATION_LIST_ITEM_LOADING,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n *\n * The base class of the `NotificationListItem` and `NotificationListGroupItem`.\n * @constructor\n * @extends ListItemBase\n * @since 1.0.0-rc.8\n * @public\n */\n@customElement({})\nclass NotificationListItemBase extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"];\n\t/**\n\t * Defines the `titleText` of the item.\n\t * @default undefined\n\t * @public\n\t */\n\t@property()\n\ttitleText?: string;\n\n\t/**\n\t * Defines if the `notification` is new or has been already read.\n\t *\n\t * **Note:** if set to `false` the `titleText` has bold font,\n\t * if set to true - it has a normal font.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tread = false;\n\n\t/**\n\t * Defines if a busy indicator would be displayed over the item.\n\t * @default false\n\t * @public\n\t * @since 1.0.0-rc.8\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines the delay in milliseconds, after which the busy 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@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nFioriBundle: I18nBundle;\n\n\tget hasTitleText() {\n\t\treturn !!this.titleText?.length;\n\t}\n\n\tget loadingText() {\n\t\treturn NotificationListItemBase.i18nFioriBundle.getText(NOTIFICATION_LIST_ITEM_LOADING);\n\t}\n\n\t/**\n\t * Event handlers\n\t */\n\tasync _onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (isSpace(e) && this.getFocusDomRef()!.matches(\":has(:focus-within)\")) {\n\t\t\te.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif (isF2(e)) {\n\t\t\te.stopImmediatePropagation();\n\n\t\t\tconst activeElement = getActiveElement();\n\t\t\tconst focusDomRef = this.getHeaderDomRef()!;\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\tfocusDomRef.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetHeaderDomRef() {\n\t\treturn this.getFocusDomRef();\n\t}\n\n\tshouldForwardTabAfter() {\n\t\tconst aContent = getTabbableElements(this.getHeaderDomRef()!);\n\n\t\treturn aContent.length === 0 || (aContent[aContent.length - 1] === getActiveElement());\n\t}\n}\n\nexport default NotificationListItemBase;\n"]}
package/dist/Search.d.ts CHANGED
@@ -13,10 +13,14 @@ import type Input from "@ui5/webcomponents/dist/Input.js";
13
13
  import type { PopupBeforeCloseEventDetail } from "@ui5/webcomponents/dist/Popup.js";
14
14
  import type Select from "@ui5/webcomponents/dist/Select.js";
15
15
  import type { Slot, DefaultSlot } from "@ui5/webcomponents-base/dist/UI5Element.js";
16
+ import type { ListItemBaseClickEventDetail } from "@ui5/webcomponents/dist/ListItemBase.js";
16
17
  interface ISearchSuggestionItem extends UI5Element {
17
18
  selected: boolean;
18
19
  text: string;
19
20
  items?: ISearchSuggestionItem[];
21
+ eventDetails: {
22
+ click?: ListItemBaseClickEventDetail;
23
+ };
20
24
  }
21
25
  type SearchEventDetails = {
22
26
  item?: ISearchSuggestionItem;
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type List from \"@ui5/webcomponents/dist/List.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisTabNext,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\n\nimport SearchTemplate from \"./SearchTemplate.js\";\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchField from \"./SearchField.js\";\nimport { StartsWith } from \"@ui5/webcomponents/dist/Filters.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type SearchItem from \"./SearchItem.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type IllustratedMessage from \"./IllustratedMessage.js\";\nimport type SearchItemGroup from \"./SearchItemGroup.js\";\nimport type SearchMessageArea from \"./SearchMessageArea.js\";\nimport { SEARCH_CANCEL_BUTTON, SEARCH_SUGGESTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport { i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport type { InputEventDetail } from \"@ui5/webcomponents/dist/Input.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { PopupBeforeCloseEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport type Select from \"@ui5/webcomponents/dist/Select.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\ninterface ISearchSuggestionItem extends UI5Element {\n\tselected: boolean;\n\ttext: string;\n\titems?: ISearchSuggestionItem[];\n}\n\ntype SearchEventDetails = {\n\titem?: ISearchSuggestionItem;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-search` is an input with suggestions, used for user search.\n *\n * The `ui5-search` consists of several elements parts:\n * - Scope - displays a select in the beggining of the component, used for filtering results by their scope.\n * - Input field - for user input value\n * - Clear button - gives the possibility for deleting the entered value\n * - Search button - a primary button for performing search, when the user has entered a search term\n * - Suggestions - a list with available search suggestions\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/Search.js\";`\n *\n * @constructor\n * @extends SearchField\n * @public\n * @since 2.9.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-search\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchTemplate,\n\tstyles: [\n\t\tSearchField.styles,\n\t\tSearchCss,\n\t],\n})\n\n/**\n * Fired when the popup is opened.\n *\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the popup is closed.\n *\n * @public\n */\n@event(\"close\")\n\nclass Search extends SearchField {\n\teventDetails!: SearchField[\"eventDetails\"] & {\n\t\tsearch: SearchEventDetails,\n\t\t\"popup-action-press\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t};\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the popup.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines whether the value will be autcompleted to match an item.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the Search suggestion items.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: DefaultSlot<SearchItem | SearchItemGroup>;\n\n\t/**\n\t * Defines the popup footer action button.\n\t *\n\t * @public\n\t */\n\t@slot()\n\taction!: Slot<Button>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tillustration!: Slot<IllustratedMessage>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tmessageArea!: Slot<SearchMessageArea>;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the inner stored value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_innerValue?: string;\n\n\t/**\n\t * Determines whether the item selection should be performed on mobile devices.\n\t * Similar to _performTextSelection on desktop\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_performItemSelectionOnMobile?: boolean;\n\n\t/**\n\t * Based on the key pressed, determines if the autocomplete should be performed.\n\t * @private\n\t */\n\t_shouldAutocomplete?: boolean;\n\n\t/**\n\t * Determines whether a text selection should be performed.\n\t * @private\n\t */\n\t_performTextSelection?: boolean;\n\n\t/**\n\t * Holds the typed value from the user.\n\t * @private\n\t */\n\t_typedInValue: string;\n\n\t/**\n\t * Holds the typed value before opening the picker.\n\t * @private\n\t */\n\t_valueBeforeOpen: string;\n\n\t/**\n\t * Holds the original typed value before arrow key navigation in dropdown.\n\t * Used to restore the value when navigating back to the input field.\n\t * @private\n\t */\n\t_valueBeforeArrowNav?: string;\n\n\t/**\n\t * Holds the currently proposed item which will be selected if the user presses Enter.\n\t * @private\n\t */\n\t_proposedItem?: ISearchSuggestionItem;\n\n\t/**\n\t * This property is used during rendering to indicate that the user has started typing in the input\n\t * @private\n\t */\n\t_isTyping: boolean;\n\n\t/**\n\t * Bound reference to the delete handler for proper event listener removal.\n\t * @private\n\t */\n\t_deleteHandler: (e: CustomEvent) => void;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// The typed in value.\n\t\tthis._typedInValue = \"\";\n\t\tthis._valueBeforeOpen = this.getAttribute(\"value\") || \"\";\n\t\tthis._isTyping = false;\n\n\t\tthis._deleteHandler = this._onItemDelete.bind(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (this.collapsed && !isPhone()) {\n\t\t\tthis.open = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput;\n\t\tconst autoCompletedChars = innerInput && (innerInput.selectionEnd! - innerInput.selectionStart!);\n\n\t\tthis.open = this.open || (this._popoupHasAnyContent() && this._isTyping && innerInput!.value.length > 0);\n\n\t\t// If there is already a selection the autocomplete has already been performed\n\t\tif (this._shouldAutocomplete && !autoCompletedChars) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item) {\n\t\t\t\tthis._handleTypeAhead(item);\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t} else {\n\t\t\t\tthis._deselectItems();\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone() && this.open) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item && this._performItemSelectionOnMobile) {\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t}\n\t\t}\n\n\t\t// Update highlight text and attach delete listeners\n\t\tthis._flattenItems.forEach(item => {\n\t\t\t(item as SearchItem).highlightText = this._typedInValue;\n\n\t\t\t// Listen for delete events on each item\n\t\t\t// Using capture phase to ensure we catch it before application handlers\n\t\t\titem.removeEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t\titem.addEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t});\n\t}\n\n\tonAfterRendering(): void {\n\t\tconst innerInput = this.nativeInput;\n\n\t\tif (this._performTextSelection && innerInput && innerInput.value !== this._innerValue) {\n\t\t\tinnerInput.value = this._innerValue || \"\";\n\t\t}\n\n\t\tif (this._performTextSelection && this._typedInValue.length && this.value.length) {\n\t\t\tinnerInput?.setSelectionRange(this._typedInValue.length, this.value.length);\n\t\t}\n\n\t\tthis._performTextSelection = false;\n\n\t\tif (!this.collapsed) {\n\t\t\tthis.style.setProperty(\"--search_width\", `${this.getBoundingClientRect().width}px`);\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tthis.value = (e.target as Input).value;\n\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.detail.inputType);\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_shouldPerformSelectionOnMobile(inputType: string): boolean {\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(inputType || \"\");\n\t}\n\n\t_handleTypeAhead(item: ISearchSuggestionItem) {\n\t\tconst originalValue = item.text || \"\";\n\n\t\tthis._typedInValue = this.value;\n\t\tthis._innerValue = originalValue;\n\t\tthis._performTextSelection = true;\n\t\tthis.value = originalValue;\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWith(str, this._flattenItems.filter(item => !this._isGroupItem(item) && !this._isShowMoreItem(item)), \"text\");\n\t}\n\n\t_isGroupItem(item: HTMLElement): item is SearchItemGroup {\n\t\treturn item.hasAttribute(\"ui5-search-item-group\");\n\t}\n\n\t_isShowMoreItem(item: ISearchSuggestionItem) {\n\t\treturn item.hasAttribute(\"ui5-search-item-show-more\");\n\t}\n\n\t_deselectItems() {\n\t\tthis._flattenItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t}\n\n\t_selectMatchingItem(item: ISearchSuggestionItem) {\n\t\tthis._deselectItems();\n\t\titem.selected = true;\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tif (this.open) {\n\t\t\te.preventDefault();\n\t\t\tthis._handleArrowDown();\n\t\t}\n\t}\n\n\t_handleArrowDown() {\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst firstListItem = focusableItems.at(0);\n\n\t\t// Store the original value before navigation starts\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\tthis._valueBeforeArrowNav = this._typedInValue || this.value;\n\t\t}\n\n\t\tthis._deselectItems();\n\t\tthis.value = this._typedInValue || this.value;\n\t\tthis._innerValue = this.value;\n\n\t\t// Clear any text selection to allow autocomplete to work again when navigating back\n\t\tconst innerInput = this.nativeInput;\n\t\tif (innerInput) {\n\t\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\t}\n\n\t\tfirstListItem?.focus();\n\t}\n\n\t_handleInnerClick() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t} else {\n\t\t\tsuper._handleSearchIconPress();\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput!;\n\n\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t}\n\n\t_onMobileInputKeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis.value = this.mobileInput?.value || this.value;\n\t\t\tthis._handleEnter();\n\n\t\t\tthis.blur();\n\t\t}\n\t}\n\n\t_handleSearchEvent() {\n\t\tthis.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\t}\n\n\t_handleEscape() {\n\t\t// If arrow navigation was active, restore the original typed value\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t} else {\n\t\t\tthis.value = this._typedInValue || this.value;\n\t\t\tthis._innerValue = this.value;\n\t\t}\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\t\tthis._typedInValue = this.value;\n\t\tthis._proposedItem = undefined;\n\t\tthis._valueBeforeArrowNav = undefined;\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isTyping = true;\n\t\tthis.open = this.value.length > 0 && this._popoupHasAnyContent();\n\t}\n\n\t_handleClear(): void {\n\t\tsuper._handleClear();\n\n\t\tthis._typedInValue = \"\";\n\t\tthis._innerValue = \"\";\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_popoupHasAnyContent() {\n\t\treturn this.items.length > 0 || this.illustration.length > 0 || this.messageArea.length > 0 || this.loading || this.action.length > 0;\n\t}\n\n\t_onFooterButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t\tif (isTabPrevious(e)) {\n\t\t\tthis._getItemsList().focus();\n\t\t}\n\t}\n\n\t_onItemKeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\t// if focus is on the group header (in group's shadow dom) the target is the group itself,\n\t\t// if so using getFocusDomRef ensures the actual focused element is used\n\t\tconst focusedItem = this._isGroupItem(target) ? target?.getFocusDomRef() : target;\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst isFirstItem = focusableItems.at(0) === focusedItem;\n\t\tconst isLastItem = focusableItems.at(-1) === focusedItem;\n\t\tconst isArrowUp = isUp(e);\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isTab = isTabNext(e);\n\n\t\te.preventDefault();\n\n\t\tif (isFirstItem && isArrowUp) {\n\t\t\t// Restore original value when navigating back to input\n\t\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t\t}\n\n\t\t\tthis.nativeInput?.focus();\n\t\t\tthis._shouldAutocomplete = true;\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\tif ((isLastItem && isArrowDown) || isTab) {\n\t\t\tthis._getFooterButton()?.focus();\n\t\t}\n\t}\n\n\t_onListItemFocusIn(e: FocusEvent) {\n\t\t// Update input value when an item gets focus during arrow navigation\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target as ISearchSuggestionItem;\n\n\t\t// Don't update input value when focus is on action buttons or delete button\n\t\tif (target.hasAttribute(\"ui5-button\") || target.hasAttribute(\"ui5-icon\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (item && item.text && !this._isShowMoreItem(item)) {\n\t\t\tthis.value = item.text;\n\t\t\tthis._innerValue = item.text;\n\t\t}\n\t}\n\n\t_onItemClick(e: CustomEvent) {\n\t\tconst item = e.detail.item as ISearchSuggestionItem;\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item });\n\n\t\tif (prevented) {\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.open = false;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = item.text;\n\t\tthis._innerValue = this.value;\n\t\tthis._typedInValue = this.value;\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._performTextSelection = true;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis.focus();\n\t}\n\n\t_onItemDelete(e: CustomEvent) {\n\t\t// If we're in arrow navigation mode and an item was deleted,\n\t\t// update the input to show the next matching item\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tconst deletedItem = e.target as ISearchSuggestionItem;\n\n\t\t\t// Wait for the item to be removed from DOM\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst nextItem = this._getFirstMatchingItem(this._valueBeforeArrowNav!);\n\n\t\t\t\tif (nextItem && nextItem !== deletedItem) {\n\t\t\t\t\tthis.value = nextItem.text;\n\t\t\t\t\tthis._innerValue = nextItem.text;\n\t\t\t\t\tthis._selectMatchingItem(nextItem);\n\t\t\t\t\tnextItem.focus();\n\t\t\t\t} else {\n\t\t\t\t\t// No more matching items, restore original typed value\n\t\t\t\t\tthis.value = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._innerValue = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._deselectItems();\n\t\t\t\t\tthis.nativeInput?.focus();\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shouldAutocomplete = !this.noTypeahead\n\t\t\t&& !(isBackSpace(e) || isDelete(e) || isEscape(e) || isUp(e) || isDown(e) || isTabNext(e) || isEnter(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e) || isEscape(e));\n\n\t\tif (isDown(e)) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\t// deselect item on backspace or delete\n\t\tif (isBackSpace(e) || isDelete(e)) {\n\t\t\tthis._deselectItems();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e:FocusEvent) {\n\t\tconst target = e.relatedTarget as HTMLElement;\n\n\t\tif (this._getPicker().contains(target) || this.contains(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>) {\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_handleCancel() {\n\t\tthis._handleClose();\n\t\tthis.value = this._valueBeforeOpen;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleClose() {\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleBeforeOpen() {\n\t\tthis._valueBeforeOpen = this.value;\n\n\t\tif (isPhone() && this.mobileInput) {\n\t\t\tthis.mobileInput.value = this.value;\n\t\t}\n\t}\n\n\t_handleOpen() {\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handleActionKeydown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t}\n\n\t_onFooterButtonClick() {\n\t\tthis.fireDecoratorEvent(\"popup-action-press\");\n\t}\n\n\t_getFirstMatchingItem(current: string): ISearchSuggestionItem | undefined {\n\t\tif (!this._flattenItems.length || !current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst startsWithMatches = this._startsWithMatchingItems(current);\n\n\t\tif (!startsWithMatches.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn startsWithMatches[0];\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-search-list\") as List;\n\t}\n\n\t_getFooterButton(): Button {\n\t\treturn this.action[0];\n\t}\n\n\tget _flattenItems(): Array<ISearchSuggestionItem> {\n\t\treturn this.getSlottedNodes<ISearchSuggestionItem>(\"items\").flatMap(item => {\n\t\t\treturn this._isGroupItem(item) ? [item, ...item.items] : [item];\n\t\t});\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.getDomRef();\n\n\t\treturn domRef?.querySelector<HTMLInputElement>(`input`);\n\t}\n\n\tget mobileInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Input>(`[ui5-input]`) : null;\n\t}\n\n\tget cancelButtonText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_CANCEL_BUTTON);\n\t}\n\n\tget suggestionsText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_SUGGESTIONS);\n\t}\n\n\tget scopeSelect() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Select>(`[ui5-select]`) : null;\n\t}\n}\n\nSearch.define();\n\nexport default Search;\n"]}
1
+ {"version":3,"file":"Search.js","sourceRoot":"","sources":["../src/Search.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport slot from \"@ui5/webcomponents-base/dist/decorators/slot-strict.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport type Popover from \"@ui5/webcomponents/dist/Popover.js\";\nimport type List from \"@ui5/webcomponents/dist/List.js\";\nimport {\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisBackSpace,\n\tisDelete,\n\tisEscape,\n\tisTabNext,\n\tisPageUp,\n\tisPageDown,\n\tisHome,\n\tisEnd,\n\tisTabPrevious,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\n\nimport SearchTemplate from \"./SearchTemplate.js\";\nimport SearchCss from \"./generated/themes/Search.css.js\";\nimport SearchField from \"./SearchField.js\";\nimport { StartsWith } from \"@ui5/webcomponents/dist/Filters.js\";\nimport type UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type SearchItem from \"./SearchItem.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport type Button from \"@ui5/webcomponents/dist/Button.js\";\nimport type IllustratedMessage from \"./IllustratedMessage.js\";\nimport type SearchItemGroup from \"./SearchItemGroup.js\";\nimport type SearchMessageArea from \"./SearchMessageArea.js\";\nimport { SEARCH_CANCEL_BUTTON, SEARCH_SUGGESTIONS } from \"./generated/i18n/i18n-defaults.js\";\nimport { i18n } from \"@ui5/webcomponents-base/dist/decorators.js\";\nimport type { InputEventDetail } from \"@ui5/webcomponents/dist/Input.js\";\nimport type Input from \"@ui5/webcomponents/dist/Input.js\";\nimport type { PopupBeforeCloseEventDetail } from \"@ui5/webcomponents/dist/Popup.js\";\nimport type Select from \"@ui5/webcomponents/dist/Select.js\";\nimport type { Slot, DefaultSlot } from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport type { ListItemBaseClickEventDetail } from \"@ui5/webcomponents/dist/ListItemBase.js\";\n\ninterface ISearchSuggestionItem extends UI5Element {\n\tselected: boolean;\n\ttext: string;\n\titems?: ISearchSuggestionItem[];\n\teventDetails: { click?: ListItemBaseClickEventDetail };\n}\n\ntype SearchEventDetails = {\n\titem?: ISearchSuggestionItem;\n}\n\n/**\n * @class\n *\n * ### Overview\n *\n * A `ui5-search` is an input with suggestions, used for user search.\n *\n * The `ui5-search` consists of several elements parts:\n * - Scope - displays a select in the beggining of the component, used for filtering results by their scope.\n * - Input field - for user input value\n * - Clear button - gives the possibility for deleting the entered value\n * - Search button - a primary button for performing search, when the user has entered a search term\n * - Suggestions - a list with available search suggestions\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/Search.js\";`\n *\n * @constructor\n * @extends SearchField\n * @public\n * @since 2.9.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-search\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchTemplate,\n\tstyles: [\n\t\tSearchField.styles,\n\t\tSearchCss,\n\t],\n})\n\n/**\n * Fired when the popup is opened.\n *\n * @public\n */\n@event(\"open\")\n\n/**\n * Fired when the popup is closed.\n *\n * @public\n */\n@event(\"close\")\n\nclass Search extends SearchField {\n\teventDetails!: SearchField[\"eventDetails\"] & {\n\t\tsearch: SearchEventDetails,\n\t\t\"popup-action-press\": void,\n\t\t\"open\": void,\n\t\t\"close\": void,\n\t};\n\n\t/**\n\t * Indicates whether a loading indicator should be shown in the popup.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tloading = false;\n\n\t/**\n\t * Defines whether the value will be autcompleted to match an item.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tnoTypeahead = false;\n\n\t/**\n\t * Defines the Search suggestion items.\n\t *\n\t * @public\n\t */\n\t@slot({\n\t\ttype: HTMLElement,\n\t\t\"default\": true,\n\t\tinvalidateOnChildChange: true,\n\t})\n\titems!: DefaultSlot<SearchItem | SearchItemGroup>;\n\n\t/**\n\t * Defines the popup footer action button.\n\t *\n\t * @public\n\t */\n\t@slot()\n\taction!: Slot<Button>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tillustration!: Slot<IllustratedMessage>;\n\n\t/**\n\t * Defines the illustrated message to be shown in the popup.\n\t *\n\t * @public\n\t */\n\t@slot()\n\tmessageArea!: Slot<SearchMessageArea>;\n\n\t/**\n\t * Indicates whether the items picker is open.\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\topen = false;\n\n\t/**\n\t * Defines the inner stored value of the component.\n\t *\n\t * **Note:** The property is updated upon typing.\n\t * @default \"\"\n\t * @private\n\t */\n\t@property({ noAttribute: true })\n\t_innerValue?: string;\n\n\t/**\n\t * Determines whether the item selection should be performed on mobile devices.\n\t * Similar to _performTextSelection on desktop\n\t * @private\n\t */\n\t@property({ type: Boolean })\n\t_performItemSelectionOnMobile?: boolean;\n\n\t/**\n\t * Based on the key pressed, determines if the autocomplete should be performed.\n\t * @private\n\t */\n\t_shouldAutocomplete?: boolean;\n\n\t/**\n\t * Determines whether a text selection should be performed.\n\t * @private\n\t */\n\t_performTextSelection?: boolean;\n\n\t/**\n\t * Holds the typed value from the user.\n\t * @private\n\t */\n\t_typedInValue: string;\n\n\t/**\n\t * Holds the typed value before opening the picker.\n\t * @private\n\t */\n\t_valueBeforeOpen: string;\n\n\t/**\n\t * Holds the original typed value before arrow key navigation in dropdown.\n\t * Used to restore the value when navigating back to the input field.\n\t * @private\n\t */\n\t_valueBeforeArrowNav?: string;\n\n\t/**\n\t * Holds the currently proposed item which will be selected if the user presses Enter.\n\t * @private\n\t */\n\t_proposedItem?: ISearchSuggestionItem;\n\n\t/**\n\t * This property is used during rendering to indicate that the user has started typing in the input\n\t * @private\n\t */\n\t_isTyping: boolean;\n\n\t/**\n\t * Bound reference to the delete handler for proper event listener removal.\n\t * @private\n\t */\n\t_deleteHandler: (e: CustomEvent) => void;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\t// The typed in value.\n\t\tthis._typedInValue = \"\";\n\t\tthis._valueBeforeOpen = this.getAttribute(\"value\") || \"\";\n\t\tthis._isTyping = false;\n\n\t\tthis._deleteHandler = this._onItemDelete.bind(this);\n\t}\n\n\tonBeforeRendering() {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (this.collapsed && !isPhone()) {\n\t\t\tthis.open = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput;\n\t\tconst autoCompletedChars = innerInput && (innerInput.selectionEnd! - innerInput.selectionStart!);\n\n\t\tthis.open = this.open || (this._popoupHasAnyContent() && this._isTyping && innerInput!.value.length > 0);\n\n\t\t// If there is already a selection the autocomplete has already been performed\n\t\tif (this._shouldAutocomplete && !autoCompletedChars) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item) {\n\t\t\t\tthis._handleTypeAhead(item);\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t} else {\n\t\t\t\tthis._deselectItems();\n\t\t\t}\n\t\t}\n\n\t\tif (isPhone() && this.open) {\n\t\t\tconst item = this._getFirstMatchingItem(this.value);\n\t\t\tthis._proposedItem = item;\n\n\t\t\tif (item && this._performItemSelectionOnMobile) {\n\t\t\t\tthis._selectMatchingItem(item);\n\t\t\t}\n\t\t}\n\n\t\t// Update highlight text and attach delete listeners\n\t\tthis._flattenItems.forEach(item => {\n\t\t\t(item as SearchItem).highlightText = this._typedInValue;\n\n\t\t\t// Listen for delete events on each item\n\t\t\t// Using capture phase to ensure we catch it before application handlers\n\t\t\titem.removeEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t\titem.addEventListener(\"ui5-delete\", this._deleteHandler as EventListener, true);\n\t\t});\n\t}\n\n\tonAfterRendering(): void {\n\t\tconst innerInput = this.nativeInput;\n\n\t\tif (this._performTextSelection && innerInput && innerInput.value !== this._innerValue) {\n\t\t\tinnerInput.value = this._innerValue || \"\";\n\t\t}\n\n\t\tif (this._performTextSelection && this._typedInValue.length && this.value.length) {\n\t\t\tinnerInput?.setSelectionRange(this._typedInValue.length, this.value.length);\n\t\t}\n\n\t\tthis._performTextSelection = false;\n\n\t\tif (!this.collapsed) {\n\t\t\tthis.style.setProperty(\"--search_width\", `${this.getBoundingClientRect().width}px`);\n\t\t}\n\t}\n\n\t_handleMobileInput(e: CustomEvent<InputEventDetail>) {\n\t\tthis.value = (e.target as Input).value;\n\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.detail.inputType);\n\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_shouldPerformSelectionOnMobile(inputType: string): boolean {\n\t\tconst allowedEventTypes = [\n\t\t\t\"deleteWordBackward\",\n\t\t\t\"deleteWordForward\",\n\t\t\t\"deleteSoftLineBackward\",\n\t\t\t\"deleteSoftLineForward\",\n\t\t\t\"deleteEntireSoftLine\",\n\t\t\t\"deleteHardLineBackward\",\n\t\t\t\"deleteHardLineForward\",\n\t\t\t\"deleteByDrag\",\n\t\t\t\"deleteByCut\",\n\t\t\t\"deleteContent\",\n\t\t\t\"deleteContentBackward\",\n\t\t\t\"deleteContentForward\",\n\t\t\t\"historyUndo\",\n\t\t];\n\n\t\treturn !this.noTypeahead && !allowedEventTypes.includes(inputType || \"\");\n\t}\n\n\t_handleTypeAhead(item: ISearchSuggestionItem) {\n\t\tconst originalValue = item.text || \"\";\n\n\t\tthis._typedInValue = this.value;\n\t\tthis._innerValue = originalValue;\n\t\tthis._performTextSelection = true;\n\t\tthis.value = originalValue;\n\t}\n\n\t_startsWithMatchingItems(str: string): Array<ISearchSuggestionItem> {\n\t\treturn StartsWith(str, this._flattenItems.filter(item => !this._isGroupItem(item) && !this._isShowMoreItem(item)), \"text\");\n\t}\n\n\t_isGroupItem(item: HTMLElement): item is SearchItemGroup {\n\t\treturn item.hasAttribute(\"ui5-search-item-group\");\n\t}\n\n\t_isShowMoreItem(item: ISearchSuggestionItem) {\n\t\treturn item.hasAttribute(\"ui5-search-item-show-more\");\n\t}\n\n\t_deselectItems() {\n\t\tthis._flattenItems.forEach(item => {\n\t\t\titem.selected = false;\n\t\t});\n\t}\n\n\t_selectMatchingItem(item: ISearchSuggestionItem) {\n\t\tthis._deselectItems();\n\t\titem.selected = true;\n\t}\n\n\t_handleDown(e: KeyboardEvent) {\n\t\tif (this.open) {\n\t\t\te.preventDefault();\n\t\t\tthis._handleArrowDown();\n\t\t}\n\t}\n\n\t_handleArrowDown() {\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst firstListItem = focusableItems.at(0);\n\n\t\t// Store the original value before navigation starts\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\tthis._valueBeforeArrowNav = this._typedInValue || this.value;\n\t\t}\n\n\t\tthis._deselectItems();\n\t\tthis.value = this._typedInValue || this.value;\n\t\tthis._innerValue = this.value;\n\n\t\t// Clear any text selection to allow autocomplete to work again when navigating back\n\t\tconst innerInput = this.nativeInput;\n\t\tif (innerInput) {\n\t\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\t}\n\n\t\tfirstListItem?.focus();\n\t}\n\n\t_handleInnerClick() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t}\n\t}\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone()) {\n\t\t\tthis.open = true;\n\t\t} else {\n\t\t\tsuper._handleSearchIconPress();\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\n\t\tif (prevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerInput = this.nativeInput!;\n\n\t\tinnerInput.setSelectionRange(this.value.length, this.value.length);\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t}\n\n\t_onMobileInputKeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis.value = this.mobileInput?.value || this.value;\n\t\t\tthis._handleEnter();\n\n\t\t\tthis.blur();\n\t\t}\n\t}\n\n\t_handleSearchEvent() {\n\t\tthis.fireDecoratorEvent(\"search\", { item: this._proposedItem });\n\t}\n\n\t_handleEscape() {\n\t\t// If arrow navigation was active, restore the original typed value\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t} else {\n\t\t\tthis.value = this._typedInValue || this.value;\n\t\t\tthis._innerValue = this.value;\n\t\t}\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\t\tthis._typedInValue = this.value;\n\t\tthis._proposedItem = undefined;\n\t\tthis._valueBeforeArrowNav = undefined;\n\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isTyping = true;\n\t\tthis.open = this.value.length > 0 && this._popoupHasAnyContent();\n\t}\n\n\t_handleClear(): void {\n\t\tsuper._handleClear();\n\n\t\tthis._typedInValue = \"\";\n\t\tthis._innerValue = \"\";\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t}\n\n\t_popoupHasAnyContent() {\n\t\treturn this.items.length > 0 || this.illustration.length > 0 || this.messageArea.length > 0 || this.loading || this.action.length > 0;\n\t}\n\n\t_onFooterButtonKeyDown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t\tif (isTabPrevious(e)) {\n\t\t\tthis._getItemsList().focus();\n\t\t}\n\t}\n\n\t_onItemKeydown(e: KeyboardEvent) {\n\t\tconst target = e.target as HTMLElement;\n\t\t// if focus is on the group header (in group's shadow dom) the target is the group itself,\n\t\t// if so using getFocusDomRef ensures the actual focused element is used\n\t\tconst focusedItem = this._isGroupItem(target) ? target?.getFocusDomRef() : target;\n\t\tconst focusableItems = this._getItemsList().listItems;\n\t\tconst isFirstItem = focusableItems.at(0) === focusedItem;\n\t\tconst isLastItem = focusableItems.at(-1) === focusedItem;\n\t\tconst isArrowUp = isUp(e);\n\t\tconst isArrowDown = isDown(e);\n\t\tconst isTab = isTabNext(e);\n\n\t\te.preventDefault();\n\n\t\tif (isFirstItem && isArrowUp) {\n\t\t\t// Restore original value when navigating back to input\n\t\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\t\tthis.value = this._valueBeforeArrowNav;\n\t\t\t\tthis._innerValue = this._valueBeforeArrowNav;\n\t\t\t\tthis._valueBeforeArrowNav = undefined;\n\t\t\t}\n\n\t\t\tthis.nativeInput?.focus();\n\t\t\tthis._shouldAutocomplete = true;\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\tif ((isLastItem && isArrowDown) || isTab) {\n\t\t\tthis._getFooterButton()?.focus();\n\t\t}\n\t}\n\n\t_onListItemFocusIn(e: FocusEvent) {\n\t\t// Update input value when an item gets focus during arrow navigation\n\t\tif (this._valueBeforeArrowNav === undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst target = e.target as HTMLElement;\n\t\tconst item = target as ISearchSuggestionItem;\n\n\t\t// Don't update input value when focus is on action buttons or delete button\n\t\tif (target.hasAttribute(\"ui5-button\") || target.hasAttribute(\"ui5-icon\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (item && item.text && !this._isShowMoreItem(item)) {\n\t\t\tthis.value = item.text;\n\t\t\tthis._innerValue = item.text;\n\t\t}\n\t}\n\n\t_onItemClick(e: CustomEvent) {\n\t\tconst item = e.detail.item as ISearchSuggestionItem;\n\t\tconst prevented = !this.fireDecoratorEvent(\"search\", { item });\n\n\t\tif (prevented) {\n\t\t\tif (isPhone()) {\n\t\t\t\tthis.open = false;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.value = item.text;\n\t\tthis._innerValue = this.value;\n\t\tthis._typedInValue = this.value;\n\t\tthis._shouldAutocomplete = false;\n\t\tthis._performTextSelection = true;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis.focus();\n\t}\n\n\t_onItemDelete(e: CustomEvent) {\n\t\t// If we're in arrow navigation mode and an item was deleted,\n\t\t// update the input to show the next matching item\n\t\tif (this._valueBeforeArrowNav !== undefined) {\n\t\t\tconst deletedItem = e.target as ISearchSuggestionItem;\n\n\t\t\t// Wait for the item to be removed from DOM\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst nextItem = this._getFirstMatchingItem(this._valueBeforeArrowNav!);\n\n\t\t\t\tif (nextItem && nextItem !== deletedItem) {\n\t\t\t\t\tthis.value = nextItem.text;\n\t\t\t\t\tthis._innerValue = nextItem.text;\n\t\t\t\t\tthis._selectMatchingItem(nextItem);\n\t\t\t\t\tnextItem.focus();\n\t\t\t\t} else {\n\t\t\t\t\t// No more matching items, restore original typed value\n\t\t\t\t\tthis.value = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._innerValue = this._valueBeforeArrowNav!;\n\t\t\t\t\tthis._deselectItems();\n\t\t\t\t\tthis.nativeInput?.focus();\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tsuper._onkeydown(e);\n\n\t\tif (this.loading) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._shouldAutocomplete = !this.noTypeahead\n\t\t\t&& !(isBackSpace(e) || isDelete(e) || isEscape(e) || isUp(e) || isDown(e) || isTabNext(e) || isEnter(e) || isPageUp(e) || isPageDown(e) || isHome(e) || isEnd(e) || isEscape(e));\n\n\t\tif (isDown(e)) {\n\t\t\tthis._handleDown(e);\n\t\t}\n\n\t\tif (isEscape(e)) {\n\t\t\tthis._handleEscape();\n\t\t}\n\n\t\t// deselect item on backspace or delete\n\t\tif (isBackSpace(e) || isDelete(e)) {\n\t\t\tthis._deselectItems();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e:FocusEvent) {\n\t\tconst target = e.relatedTarget as HTMLElement;\n\n\t\tif (this._getPicker().contains(target) || this.contains(target)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t}\n\n\t_handleBeforeClose(e: CustomEvent<PopupBeforeCloseEventDetail>) {\n\t\tif (e.detail.escPressed) {\n\t\t\tthis.focus();\n\t\t}\n\t}\n\n\t_handleCancel() {\n\t\tthis._handleClose();\n\t\tthis.value = this._valueBeforeOpen;\n\t\tthis.fireDecoratorEvent(\"input\");\n\t}\n\n\t_handleClose() {\n\t\tthis.open = false;\n\t\tthis._isTyping = false;\n\t\tthis._valueBeforeArrowNav = undefined;\n\t\tthis.fireDecoratorEvent(\"close\");\n\t}\n\n\t_handleBeforeOpen() {\n\t\tthis._valueBeforeOpen = this.value;\n\n\t\tif (isPhone() && this.mobileInput) {\n\t\t\tthis.mobileInput.value = this.value;\n\t\t}\n\t}\n\n\t_handleOpen() {\n\t\tthis.fireDecoratorEvent(\"open\");\n\t}\n\n\t_handleActionKeydown(e: KeyboardEvent) {\n\t\tif (isUp(e)) {\n\t\t\tthis._flattenItems[this._flattenItems.length - 1].focus();\n\t\t}\n\t}\n\n\t_onFooterButtonClick() {\n\t\tthis.fireDecoratorEvent(\"popup-action-press\");\n\t}\n\n\t_getFirstMatchingItem(current: string): ISearchSuggestionItem | undefined {\n\t\tif (!this._flattenItems.length || !current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst startsWithMatches = this._startsWithMatchingItems(current);\n\n\t\tif (!startsWithMatches.length) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn startsWithMatches[0];\n\t}\n\n\t_getPicker() {\n\t\treturn this.shadowRoot!.querySelector<Popover>(\"[ui5-responsive-popover]\")!;\n\t}\n\n\t_getItemsList(): List {\n\t\treturn this._getPicker().querySelector(\".ui5-search-list\") as List;\n\t}\n\n\t_getFooterButton(): Button {\n\t\treturn this.action[0];\n\t}\n\n\tget _flattenItems(): Array<ISearchSuggestionItem> {\n\t\treturn this.getSlottedNodes<ISearchSuggestionItem>(\"items\").flatMap(item => {\n\t\t\treturn this._isGroupItem(item) ? [item, ...item.items] : [item];\n\t\t});\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.getDomRef();\n\n\t\treturn domRef?.querySelector<HTMLInputElement>(`input`);\n\t}\n\n\tget mobileInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Input>(`[ui5-input]`) : null;\n\t}\n\n\tget cancelButtonText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_CANCEL_BUTTON);\n\t}\n\n\tget suggestionsText() {\n\t\treturn Search.i18nBundle.getText(SEARCH_SUGGESTIONS);\n\t}\n\n\tget scopeSelect() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn domRef ? domRef.querySelector<Select>(`[ui5-select]`) : null;\n\t}\n}\n\nSearch.define();\n\nexport default Search;\n"]}
@@ -1,6 +1,7 @@
1
1
  import ListItemBase from "@ui5/webcomponents/dist/ListItemBase.js";
2
+ import type { ListItemBaseClickEventDetail } from "@ui5/webcomponents/dist/ListItemBase.js";
2
3
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
3
- type ShowMoreItemClickEventDetail = {
4
+ type ShowMoreItemClickEventDetail = ListItemBaseClickEventDetail & {
4
5
  fromKeyboard: boolean;
5
6
  };
6
7
  /**
@@ -57,7 +57,7 @@ let SearchItemShowMore = SearchItemShowMore_1 = class SearchItemShowMore extends
57
57
  }
58
58
  _onclick(e, fromKeyboard = false) {
59
59
  e.stopImmediatePropagation();
60
- this.fireDecoratorEvent("click", { fromKeyboard });
60
+ this.fireDecoratorEvent("click", { item: this, originalEvent: e, fromKeyboard });
61
61
  }
62
62
  _onkeydown(e) {
63
63
  if (isEnter(e)) {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchItemShowMore.js","sourceRoot":"","sources":["../src/SearchItemShowMore.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,YAAY,MAAM,yCAAyC,CAAC;AACnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AACzE,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,qBAAqB,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAMxE;;;;;;;;;;;;;;;GAeG;AA0BH,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,YAAY;IAA7C;;QAcC;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;IAwClB,CAAC;IAnCA,IAAI,iBAAiB;QACpB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,oBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,oBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC9E,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,WAAW;QACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,CAA6B,EAAE,YAAY,GAAG,KAAK;QAC3D,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;CACD,CAAA;AAhDA;IADC,QAAQ,EAAE;4DACgB;AAQ3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACX;AAGV;IADN,IAAI,CAAC,0BAA0B,CAAC;4CACH;AAvBzB,kBAAkB;IAzBvB,aAAa,CAAC;QACd,GAAG,EAAE,2BAA2B;QAChC,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,0BAA0B;QACpC,MAAM,EAAE;YACP,YAAY,CAAC,MAAM;YACnB,aAAa;YACb,qBAAqB;SACrB;KACD,CAAC;IAEF;;;;;;;OAOG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;GAEI,kBAAkB,CA4DvB;AAED,kBAAkB,CAAC,MAAM,EAAE,CAAC;AAE5B,eAAe,kBAAkB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport SearchItemShowMoreTemplate from \"./SearchItemShowMoreTemplate.js\";\nimport SearchItemCss from \"./generated/themes/SearchItem.css.js\";\nimport SearchItemShowMoreCss from \"./generated/themes/SearchItemShowMore.css.js\";\nimport { SEARCH_ITEM_SHOW_MORE_COUNT, SEARCH_ITEM_SHOW_MORE_NO_COUNT } from \"./generated/i18n/i18n-defaults.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\n\ntype ShowMoreItemClickEventDetail = {\n\tfromKeyboard: boolean;\n}\n\n/**\n * @class\n * ### Overview\n *\n * A `ui5-search-item-show-more` is a special type of ui5-li that acts as a button to progressively reveal additional (overflow) items within a group.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SearchItemShowMore.js\";`\n *\n * @constructor\n * @extends ListItemBase\n * @public\n * @since 2.14.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-search-item-show-more\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchItemShowMoreTemplate,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tSearchItemCss,\n\t\tSearchItemShowMoreCss,\n\t],\n})\n\n/**\n * Fired when the component is activated, either with a mouse/tap\n * or by pressing the Enter or Space keys.\n *\n * @public\n * @param {boolean} fromKeyboard Indicates whether the event was fired\n * due to keyboard interaction (Enter or Space) rather than mouse/tap.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass SearchItemShowMore extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"] & {\n\t\t\"click\": ShowMoreItemClickEventDetail;\n\t}\n\t/**\n\t * Specifies the number of additional items available to show.\nIf no value is defined, the control shows \"Show more\" (without any counter).\nIf a number is provided, it displays \"Show more (N)\", where N is that number.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\titemsToShowCount ?: number;\n\n\t/**\n\t * Defines whether the show more item is selected.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget showMoreTextCount() {\n\t\tif (this.itemsToShowCount) {\n\t\t\treturn SearchItemShowMore.i18nBundle.getText(SEARCH_ITEM_SHOW_MORE_COUNT, this.itemsToShowCount);\n\t\t}\n\n\t\treturn SearchItemShowMore.i18nBundle.getText(SEARCH_ITEM_SHOW_MORE_NO_COUNT);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\t\tthis.selected = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.selected = false;\n\t}\n\n\t_onclick(e: MouseEvent | KeyboardEvent, fromKeyboard = false) {\n\t\te.stopImmediatePropagation();\n\t\tthis.fireDecoratorEvent(\"click\", { fromKeyboard });\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._onclick(e, true);\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onclick(e, true);\n\t\t\te.preventDefault();\n\t\t}\n\t}\n}\n\nSearchItemShowMore.define();\n\nexport default SearchItemShowMore;\n\nexport type {\n\tShowMoreItemClickEventDetail,\n};\n"]}
1
+ {"version":3,"file":"SearchItemShowMore.js","sourceRoot":"","sources":["../src/SearchItemShowMore.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,aAAa,MAAM,0DAA0D,CAAC;AACrF,OAAO,QAAQ,MAAM,qDAAqD,CAAC;AAC3E,OAAO,KAAK,MAAM,yDAAyD,CAAC;AAC5E,OAAO,YAAY,MAAM,yCAAyC,CAAC;AAEnE,OAAO,WAAW,MAAM,sDAAsD,CAAC;AAC/E,OAAO,IAAI,MAAM,iDAAiD,CAAC;AAEnE,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AACzE,OAAO,aAAa,MAAM,sCAAsC,CAAC;AACjE,OAAO,qBAAqB,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAMxE;;;;;;;;;;;;;;;GAeG;AA0BH,IAAM,kBAAkB,0BAAxB,MAAM,kBAAmB,SAAQ,YAAY;IAA7C;;QAcC;;;;WAIG;QAEH,aAAQ,GAAG,KAAK,CAAC;IAwClB,CAAC;IAnCA,IAAI,iBAAiB;QACpB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,OAAO,oBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,2BAA2B,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,oBAAkB,CAAC,UAAU,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC9E,CAAC;IAED,UAAU,CAAC,CAAa;QACvB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,WAAW;QACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,CAA6B,EAAE,YAAY,GAAG,KAAK;QAC3D,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAC7B,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,UAAU,CAAC,CAAgB;QAC1B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,QAAQ,CAAC,CAAgB;QACxB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;CACD,CAAA;AAhDA;IADC,QAAQ,EAAE;4DACgB;AAQ3B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oDACX;AAGV;IADN,IAAI,CAAC,0BAA0B,CAAC;4CACH;AAvBzB,kBAAkB;IAzBvB,aAAa,CAAC;QACd,GAAG,EAAE,2BAA2B;QAChC,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,0BAA0B;QACpC,MAAM,EAAE;YACP,YAAY,CAAC,MAAM;YACnB,aAAa;YACb,qBAAqB;SACrB;KACD,CAAC;IAEF;;;;;;;OAOG;;IACF,KAAK,CAAC,OAAO,EAAE;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;KAChB,CAAC;GAEI,kBAAkB,CA4DvB;AAED,kBAAkB,CAAC,MAAM,EAAE,CAAC;AAE5B,eAAe,kBAAkB,CAAC","sourcesContent":["import customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport event from \"@ui5/webcomponents-base/dist/decorators/event-strict.js\";\nimport ListItemBase from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport type { ListItemBaseClickEventDetail } from \"@ui5/webcomponents/dist/ListItemBase.js\";\nimport jsxRenderer from \"@ui5/webcomponents-base/dist/renderer/JsxRenderer.js\";\nimport i18n from \"@ui5/webcomponents-base/dist/decorators/i18n.js\";\nimport type I18nBundle from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport SearchItemShowMoreTemplate from \"./SearchItemShowMoreTemplate.js\";\nimport SearchItemCss from \"./generated/themes/SearchItem.css.js\";\nimport SearchItemShowMoreCss from \"./generated/themes/SearchItemShowMore.css.js\";\nimport { SEARCH_ITEM_SHOW_MORE_COUNT, SEARCH_ITEM_SHOW_MORE_NO_COUNT } from \"./generated/i18n/i18n-defaults.js\";\nimport { isEnter, isSpace } from \"@ui5/webcomponents-base/dist/Keys.js\";\n\ntype ShowMoreItemClickEventDetail = ListItemBaseClickEventDetail & {\n\tfromKeyboard: boolean;\n}\n\n/**\n * @class\n * ### Overview\n *\n * A `ui5-search-item-show-more` is a special type of ui5-li that acts as a button to progressively reveal additional (overflow) items within a group.\n *\n * ### ES6 Module Import\n *\n * `import \"@ui5/webcomponents-fiori/dist/SearchItemShowMore.js\";`\n *\n * @constructor\n * @extends ListItemBase\n * @public\n * @since 2.14.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-search-item-show-more\",\n\tlanguageAware: true,\n\trenderer: jsxRenderer,\n\ttemplate: SearchItemShowMoreTemplate,\n\tstyles: [\n\t\tListItemBase.styles,\n\t\tSearchItemCss,\n\t\tSearchItemShowMoreCss,\n\t],\n})\n\n/**\n * Fired when the component is activated, either with a mouse/tap\n * or by pressing the Enter or Space keys.\n *\n * @public\n * @param {boolean} fromKeyboard Indicates whether the event was fired\n * due to keyboard interaction (Enter or Space) rather than mouse/tap.\n */\n@event(\"click\", {\n\tbubbles: true,\n\tcancelable: true,\n})\n\nclass SearchItemShowMore extends ListItemBase {\n\teventDetails!: ListItemBase[\"eventDetails\"] & {\n\t\t\"click\": ShowMoreItemClickEventDetail;\n\t}\n\t/**\n\t * Specifies the number of additional items available to show.\nIf no value is defined, the control shows \"Show more\" (without any counter).\nIf a number is provided, it displays \"Show more (N)\", where N is that number.\n\t * @public\n\t * @default undefined\n\t */\n\t@property()\n\titemsToShowCount ?: number;\n\n\t/**\n\t * Defines whether the show more item is selected.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tselected = false;\n\n\t@i18n(\"@ui5/webcomponents-fiori\")\n\tstatic i18nBundle: I18nBundle;\n\n\tget showMoreTextCount() {\n\t\tif (this.itemsToShowCount) {\n\t\t\treturn SearchItemShowMore.i18nBundle.getText(SEARCH_ITEM_SHOW_MORE_COUNT, this.itemsToShowCount);\n\t\t}\n\n\t\treturn SearchItemShowMore.i18nBundle.getText(SEARCH_ITEM_SHOW_MORE_NO_COUNT);\n\t}\n\n\t_onfocusin(e: FocusEvent) {\n\t\tsuper._onfocusin(e);\n\t\tthis.selected = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.selected = false;\n\t}\n\n\t_onclick(e: MouseEvent | KeyboardEvent, fromKeyboard = false) {\n\t\te.stopImmediatePropagation();\n\t\tthis.fireDecoratorEvent(\"click\", { item: this, originalEvent: e, fromKeyboard });\n\t}\n\n\t_onkeydown(e: KeyboardEvent) {\n\t\tif (isEnter(e)) {\n\t\t\tthis._onclick(e, true);\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\t_onkeyup(e: KeyboardEvent) {\n\t\tif (isSpace(e)) {\n\t\t\tthis._onclick(e, true);\n\t\t\te.preventDefault();\n\t\t}\n\t}\n}\n\nSearchItemShowMore.define();\n\nexport default SearchItemShowMore;\n\nexport type {\n\tShowMoreItemClickEventDetail,\n};\n"]}
@@ -16,6 +16,7 @@ declare class ShellBarSearch extends Search {
16
16
  */
17
17
  autoOpen: boolean;
18
18
  _handleSearchIconPress(): void;
19
+ _handleEnter(): void;
19
20
  _onFocusOutSearch(e: FocusEvent): void;
20
21
  _handleInput(e: InputEvent): void;
21
22
  get _effectiveIconTooltip(): string;
@@ -44,6 +44,17 @@ let ShellBarSearch = ShellBarSearch_1 = class ShellBarSearch extends Search {
44
44
  this.collapsed = true;
45
45
  }
46
46
  }
47
+ _handleEnter() {
48
+ if (!this.value && !this.collapsed) {
49
+ this.collapsed = true;
50
+ setTimeout(() => {
51
+ this.focus();
52
+ }, 0);
53
+ }
54
+ else {
55
+ super._handleEnter();
56
+ }
57
+ }
47
58
  _onFocusOutSearch(e) {
48
59
  if (isPhone()) {
49
60
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"ShellBarSearch.js","sourceRoot":"","sources":["../src/ShellBarSearch.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport Search from \"./Search.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ShellBarSearchTemplate from \"./ShellBarSearchTemplate.js\";\nimport ShellBarSearchCss from \"./generated/themes/ShellBarSearch.css.js\";\n\nimport {\n\tSEARCH_FIELD_SEARCH_ICON,\n\tSHELLBAR_SEARCH_EXPANDED,\n\tSHELLBAR_SEARCH_COLLAPSED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * Search field for the ShellBar component.\n * @constructor\n * @extends Search\n * @public\n * @since 2.10.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-shellbar-search\",\n\ttemplate: ShellBarSearchTemplate,\n\tstyles: [\n\t\tSearch.styles,\n\t\tShellBarSearchCss,\n\t],\n})\n\nclass ShellBarSearch extends Search {\n\t/**\n\t * Indicates whether the suggestions popover should be opened on focus.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tautoOpen = false;\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone() && this.open) {\n\t\t\tthis._handleSearchEvent();\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._handleSearchIconPress();\n\n\t\tif (this.collapsed) {\n\t\t\tthis.collapsed = false;\n\t\t} else if (!this.value) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e: FocusEvent) {\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._onFocusOutSearch(e);\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\n\t\tif (isPhone()) {\n\t\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.inputType);\n\t\t}\n\t}\n\n\tget _effectiveIconTooltip() {\n\t\tif (this.collapsed) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_COLLAPSED);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON);\n\t\t}\n\n\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_EXPANDED);\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn isPhone() ? domRef?.querySelector<HTMLInputElement>(`[ui5-responsive-popover] input`) : super.nativeInput;\n\t}\n\n\t_onfocusin() {\n\t\tsuper._onfocusin();\n\n\t\tif (this.autoOpen) {\n\t\t\tthis.open = true;\n\t\t\tthis.fireDecoratorEvent(\"open\");\n\t\t}\n\t}\n\n\tonBeforeRendering(): void {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (isPhone()) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n}\n\nShellBarSearch.define();\n\nexport default ShellBarSearch;\n"]}
1
+ {"version":3,"file":"ShellBarSearch.js","sourceRoot":"","sources":["../src/ShellBarSearch.ts"],"names":[],"mappings":"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","sourcesContent":["import property from \"@ui5/webcomponents-base/dist/decorators/property.js\";\nimport customElement from \"@ui5/webcomponents-base/dist/decorators/customElement.js\";\nimport Search from \"./Search.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport ShellBarSearchTemplate from \"./ShellBarSearchTemplate.js\";\nimport ShellBarSearchCss from \"./generated/themes/ShellBarSearch.css.js\";\n\nimport {\n\tSEARCH_FIELD_SEARCH_ICON,\n\tSHELLBAR_SEARCH_EXPANDED,\n\tSHELLBAR_SEARCH_COLLAPSED,\n} from \"./generated/i18n/i18n-defaults.js\";\n\n/**\n * @class\n * Search field for the ShellBar component.\n * @constructor\n * @extends Search\n * @public\n * @since 2.10.0\n * @experimental\n */\n@customElement({\n\ttag: \"ui5-shellbar-search\",\n\ttemplate: ShellBarSearchTemplate,\n\tstyles: [\n\t\tSearch.styles,\n\t\tShellBarSearchCss,\n\t],\n})\n\nclass ShellBarSearch extends Search {\n\t/**\n\t * Indicates whether the suggestions popover should be opened on focus.\n\t * @default false\n\t * @public\n\t */\n\t@property({ type: Boolean })\n\tautoOpen = false;\n\n\t_handleSearchIconPress() {\n\t\tif (isPhone() && this.open) {\n\t\t\tthis._handleSearchEvent();\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._handleSearchIconPress();\n\n\t\tif (this.collapsed) {\n\t\t\tthis.collapsed = false;\n\t\t} else if (!this.value) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n\n\t_handleEnter() {\n\t\tif (!this.value && !this.collapsed) {\n\t\t\tthis.collapsed = true;\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.focus();\n\t\t\t}, 0);\n\t\t} else {\n\t\t\tsuper._handleEnter();\n\t\t}\n\t}\n\n\t_onFocusOutSearch(e: FocusEvent) {\n\t\tif (isPhone()) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper._onFocusOutSearch(e);\n\t}\n\n\t_handleInput(e: InputEvent) {\n\t\tsuper._handleInput(e);\n\n\t\tif (isPhone()) {\n\t\t\tthis._performItemSelectionOnMobile = this._shouldPerformSelectionOnMobile(e.inputType);\n\t\t}\n\t}\n\n\tget _effectiveIconTooltip() {\n\t\tif (this.collapsed) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_COLLAPSED);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\treturn ShellBarSearch.i18nBundle.getText(SEARCH_FIELD_SEARCH_ICON);\n\t\t}\n\n\t\treturn ShellBarSearch.i18nBundle.getText(SHELLBAR_SEARCH_EXPANDED);\n\t}\n\n\tget nativeInput() {\n\t\tconst domRef = this.shadowRoot;\n\n\t\treturn isPhone() ? domRef?.querySelector<HTMLInputElement>(`[ui5-responsive-popover] input`) : super.nativeInput;\n\t}\n\n\t_onfocusin() {\n\t\tsuper._onfocusin();\n\n\t\tif (this.autoOpen) {\n\t\t\tthis.open = true;\n\t\t\tthis.fireDecoratorEvent(\"open\");\n\t\t}\n\t}\n\n\tonBeforeRendering(): void {\n\t\tsuper.onBeforeRendering();\n\n\t\tif (isPhone()) {\n\t\t\tthis.collapsed = true;\n\t\t}\n\t}\n}\n\nShellBarSearch.define();\n\nexport default ShellBarSearch;\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"]}
package/dist/Wizard.d.ts CHANGED
@@ -323,6 +323,12 @@ declare class Wizard extends UI5Element {
323
323
  * @private
324
324
  */
325
325
  scrollToSelectedStep(): void;
326
+ /**
327
+ * Focuses the first focusable element in the currently selected step.
328
+ * This helps screen readers announce the step change.
329
+ * @private
330
+ */
331
+ focusFirstElementInCurrentStep(): Promise<void>;
326
332
  /**
327
333
  * Scrolls to the content item within the `ui5-wizard` shadowDOM
328
334
  * by given step index.
package/dist/Wizard.js CHANGED
@@ -187,6 +187,7 @@ let Wizard = Wizard_1 = class Wizard extends UI5Element {
187
187
  this.storeStepScrollOffsets();
188
188
  if (this.previouslySelectedStepIndex !== this.selectedStepIndex) {
189
189
  this.scrollToSelectedStep();
190
+ this.focusFirstElementInCurrentStep();
190
191
  }
191
192
  this.attachStepsResizeObserver();
192
193
  this.previouslySelectedStepIndex = this.selectedStepIndex;
@@ -687,6 +688,22 @@ let Wizard = Wizard_1 = class Wizard extends UI5Element {
687
688
  }
688
689
  this.selectionRequestedByScroll = false;
689
690
  }
691
+ /**
692
+ * Focuses the first focusable element in the currently selected step.
693
+ * This helps screen readers announce the step change.
694
+ * @private
695
+ */
696
+ async focusFirstElementInCurrentStep() {
697
+ const currentStep = this.slottedSteps[this.selectedStepIndex];
698
+ if (!currentStep || currentStep.disabled) {
699
+ return;
700
+ }
701
+ const firstElementChild = currentStep.firstElementChild;
702
+ const firstFocusableElement = await getFirstFocusableElement(firstElementChild);
703
+ if (firstFocusableElement) {
704
+ firstFocusableElement.focus();
705
+ }
706
+ }
690
707
  /**
691
708
  * Scrolls to the content item within the `ui5-wizard` shadowDOM
692
709
  * by given step index.