@sapui5/sap.fe.controls 1.148.0 → 1.149.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 (66) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/controls/.library +1 -1
  3. package/src/sap/fe/controls/AiNoticeHelper.js +26 -5
  4. package/src/sap/fe/controls/AiNoticeHelper.tsx +31 -3
  5. package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.js +68 -44
  6. package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.tsx +35 -4
  7. package/src/sap/fe/controls/easyFilter/EasyFilterInput.js +103 -19
  8. package/src/sap/fe/controls/easyFilter/EasyFilterInput.tsx +100 -7
  9. package/src/sap/fe/controls/easyFilter/Token.js +4 -4
  10. package/src/sap/fe/controls/easyFilter/innerControls/MenuWithSingleSelectFactory.js +2 -2
  11. package/src/sap/fe/controls/easyFilter/innerControls/ValueHelpPreviewFactory.js +7 -3
  12. package/src/sap/fe/controls/easyFilter/innerControls/ValueHelpPreviewFactory.ts +5 -0
  13. package/src/sap/fe/controls/library.js +1 -1
  14. package/src/sap/fe/controls/messagebundle.properties +4 -0
  15. package/src/sap/fe/controls/messagebundle_ar.properties +9 -3
  16. package/src/sap/fe/controls/messagebundle_bg.properties +9 -3
  17. package/src/sap/fe/controls/messagebundle_ca.properties +9 -3
  18. package/src/sap/fe/controls/messagebundle_cnr.properties +9 -3
  19. package/src/sap/fe/controls/messagebundle_cs.properties +9 -3
  20. package/src/sap/fe/controls/messagebundle_cy.properties +9 -3
  21. package/src/sap/fe/controls/messagebundle_da.properties +9 -3
  22. package/src/sap/fe/controls/messagebundle_de.properties +9 -3
  23. package/src/sap/fe/controls/messagebundle_el.properties +9 -3
  24. package/src/sap/fe/controls/messagebundle_en.properties +9 -3
  25. package/src/sap/fe/controls/messagebundle_en_GB.properties +9 -3
  26. package/src/sap/fe/controls/messagebundle_en_US_saprigi.properties +6 -3
  27. package/src/sap/fe/controls/messagebundle_es.properties +9 -3
  28. package/src/sap/fe/controls/messagebundle_es_MX.properties +9 -3
  29. package/src/sap/fe/controls/messagebundle_et.properties +9 -3
  30. package/src/sap/fe/controls/messagebundle_fi.properties +9 -3
  31. package/src/sap/fe/controls/messagebundle_fr.properties +9 -3
  32. package/src/sap/fe/controls/messagebundle_fr_CA.properties +9 -3
  33. package/src/sap/fe/controls/messagebundle_hi.properties +9 -3
  34. package/src/sap/fe/controls/messagebundle_hr.properties +9 -3
  35. package/src/sap/fe/controls/messagebundle_hu.properties +7 -1
  36. package/src/sap/fe/controls/messagebundle_id.properties +9 -3
  37. package/src/sap/fe/controls/messagebundle_it.properties +9 -3
  38. package/src/sap/fe/controls/messagebundle_iw.properties +9 -3
  39. package/src/sap/fe/controls/messagebundle_ja.properties +9 -3
  40. package/src/sap/fe/controls/messagebundle_kk.properties +9 -3
  41. package/src/sap/fe/controls/messagebundle_ko.properties +9 -3
  42. package/src/sap/fe/controls/messagebundle_lt.properties +9 -3
  43. package/src/sap/fe/controls/messagebundle_lv.properties +9 -3
  44. package/src/sap/fe/controls/messagebundle_mk.properties +9 -3
  45. package/src/sap/fe/controls/messagebundle_ms.properties +9 -3
  46. package/src/sap/fe/controls/messagebundle_nl.properties +9 -3
  47. package/src/sap/fe/controls/messagebundle_no.properties +7 -1
  48. package/src/sap/fe/controls/messagebundle_pl.properties +7 -1
  49. package/src/sap/fe/controls/messagebundle_pt.properties +9 -3
  50. package/src/sap/fe/controls/messagebundle_pt_PT.properties +9 -3
  51. package/src/sap/fe/controls/messagebundle_ro.properties +9 -3
  52. package/src/sap/fe/controls/messagebundle_ru.properties +9 -3
  53. package/src/sap/fe/controls/messagebundle_sh.properties +9 -3
  54. package/src/sap/fe/controls/messagebundle_sk.properties +9 -3
  55. package/src/sap/fe/controls/messagebundle_sl.properties +9 -3
  56. package/src/sap/fe/controls/messagebundle_sr.properties +9 -3
  57. package/src/sap/fe/controls/messagebundle_sv.properties +9 -3
  58. package/src/sap/fe/controls/messagebundle_th.properties +10 -4
  59. package/src/sap/fe/controls/messagebundle_tr.properties +9 -3
  60. package/src/sap/fe/controls/messagebundle_uk.properties +9 -3
  61. package/src/sap/fe/controls/messagebundle_vi.properties +9 -3
  62. package/src/sap/fe/controls/messagebundle_zh_CN.properties +9 -3
  63. package/src/sap/fe/controls/messagebundle_zh_TW.properties +9 -3
  64. package/src/sap/fe/controls/shortcuts/ShortcutExplanationProvider.js +2 -5
  65. package/src/sap/fe/controls/shortcuts/popup/ShortcutTool.js +5 -8
  66. package/src/sap/fe/controls/themes/base/EasyFilter.less +8 -4
@@ -285,6 +285,8 @@ export default class EasyFilterBarContainer extends Control {
285
285
 
286
286
  private shouldMessageStripRemove = true;
287
287
 
288
+ private ariaLabelApplied = false;
289
+
288
290
  private supportsSorting = true;
289
291
 
290
292
  private supportsGrouping = true;
@@ -380,6 +382,15 @@ export default class EasyFilterBarContainer extends Control {
380
382
  return tokens;
381
383
  }
382
384
 
385
+ private buildInputAriaLabel(): string {
386
+ const mandatoryFields = this.filterBarMetadata?.filter((f) => f.required) ?? [];
387
+ if (mandatoryFields.length === 0) {
388
+ return "";
389
+ }
390
+ const fieldLabels = mandatoryFields.map((f) => f.label).join(", ");
391
+ return this.resourceBundle.getText("M_EASY_FILTER_INPUT_REQUIRED_FIELDS", [fieldLabels]);
392
+ }
393
+
383
394
  onEnterPressed(e: UI5Event<{ query: string }, EasyFilterInput>): void {
384
395
  this.onGoPress(e.getParameter("query"));
385
396
  }
@@ -436,6 +447,8 @@ export default class EasyFilterBarContainer extends Control {
436
447
  if (this.easyFilterInput.current?.isHistoryEnabled() ?? false) {
437
448
  this.easyFilterInput.current?.addRecentQuery(magicQuery);
438
449
  }
450
+ // Set query as successful in the input field
451
+ this.easyFilterInput.current?.setQuerySuccess(magicQuery);
439
452
  if (easyFilterResult.data.version === 1) {
440
453
  this.handleV1Success(easyFilterResult);
441
454
  } else if (easyFilterResult.data.version === 2) {
@@ -443,6 +456,7 @@ export default class EasyFilterBarContainer extends Control {
443
456
  }
444
457
  } else {
445
458
  // error
459
+ this.easyFilterInput.current?.setQueryFailure();
446
460
  this.removeNonMandatoryTokens();
447
461
  this.setMessageStrip(easyFilterResult.message);
448
462
  this.invisibleMessage.announce(this.resourceBundle.getText(easyFilterResult.message), InvisibleMessageMode.Assertive);
@@ -859,10 +873,12 @@ export default class EasyFilterBarContainer extends Control {
859
873
  this.shouldTokenChangeEventFired = true;
860
874
  this.isResettingToDefaultTokens = false;
861
875
 
862
- // onsapfocusleave method in sap.m.Tokenizer is automatically converting the rendermode of tokenizer to "Narrow" from "loose"
863
- // In this process there are multiple popover issues happening
864
- // So as a temporary fix overriding the function
865
- (this.tokenizer?.current as FocusHandlingControl).onsapfocusleave = (): void => {};
876
+ if (this.tokenizer?.current) {
877
+ // onsapfocusleave method in sap.m.Tokenizer is automatically converting the rendermode of tokenizer to "Narrow" from "loose"
878
+ // In this process there are multiple popover issues happening
879
+ // So as a temporary fix overriding the function
880
+ (this.tokenizer.current as FocusHandlingControl).onsapfocusleave = (): void => {};
881
+ }
866
882
  }
867
883
 
868
884
  private onThumbUpPressed(): void {
@@ -1071,6 +1087,9 @@ export default class EasyFilterBarContainer extends Control {
1071
1087
  </VBox>
1072
1088
  ) as VBox;
1073
1089
  FESRHelper.setSemanticStepname($topGoBtn.current!, "press", "fe:ai:search");
1090
+ if (this.easyFilterInput.current) {
1091
+ FESRHelper.setSemanticStepname(this.easyFilterInput.current, "enterPressed", "fe:ai:search");
1092
+ }
1074
1093
  return outVBox;
1075
1094
  }
1076
1095
 
@@ -1116,6 +1135,8 @@ export default class EasyFilterBarContainer extends Control {
1116
1135
  this.tokenizer.current?.getTokens().forEach((token) => token.setProperty("valueState", ValueState.None));
1117
1136
  this.tokenizer.current?.getTokens().forEach((token) => token.setProperty("valueStateText", null));
1118
1137
  this.clearMessageStrip(); //clear the message strip for validated filters
1138
+ // Clear query success status
1139
+ this.easyFilterInput.current?.clearQueryStatus();
1119
1140
  }
1120
1141
 
1121
1142
  clearFiltersAndTokens(): void {
@@ -1258,6 +1279,16 @@ export default class EasyFilterBarContainer extends Control {
1258
1279
  | undefined;
1259
1280
  }
1260
1281
 
1282
+ onAfterRendering(): void {
1283
+ if (!this.ariaLabelApplied && this.filterBarMetadata) {
1284
+ const ariaText = this.buildInputAriaLabel();
1285
+ if (ariaText) {
1286
+ this.easyFilterInput.current?.setAriaLabel(ariaText);
1287
+ }
1288
+ this.ariaLabelApplied = true;
1289
+ }
1290
+ }
1291
+
1261
1292
  static render(rm: RenderManager, control: EasyFilterBarContainer): void {
1262
1293
  return jsx.renderUsingRenderManager(rm, control, () => {
1263
1294
  return <span ref={control}>{control.getAggregation("content")}</span>;