@sapui5/sap.fe.controls 1.144.0 → 1.145.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 (58) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/controls/.library +1 -1
  3. package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.js +27 -22
  4. package/src/sap/fe/controls/easyFilter/EasyFilterBarContainer.tsx +4 -2
  5. package/src/sap/fe/controls/library.js +1 -1
  6. package/src/sap/fe/controls/messagebundle.properties +6 -10
  7. package/src/sap/fe/controls/messagebundle_ar.properties +15 -0
  8. package/src/sap/fe/controls/messagebundle_bg.properties +15 -0
  9. package/src/sap/fe/controls/messagebundle_ca.properties +15 -0
  10. package/src/sap/fe/controls/messagebundle_cnr.properties +15 -0
  11. package/src/sap/fe/controls/messagebundle_cs.properties +15 -0
  12. package/src/sap/fe/controls/messagebundle_cy.properties +15 -0
  13. package/src/sap/fe/controls/messagebundle_da.properties +15 -0
  14. package/src/sap/fe/controls/messagebundle_de.properties +19 -4
  15. package/src/sap/fe/controls/messagebundle_el.properties +15 -0
  16. package/src/sap/fe/controls/messagebundle_en.properties +15 -0
  17. package/src/sap/fe/controls/messagebundle_en_GB.properties +15 -0
  18. package/src/sap/fe/controls/messagebundle_es.properties +15 -0
  19. package/src/sap/fe/controls/messagebundle_es_MX.properties +16 -1
  20. package/src/sap/fe/controls/messagebundle_et.properties +15 -0
  21. package/src/sap/fe/controls/messagebundle_fi.properties +15 -0
  22. package/src/sap/fe/controls/messagebundle_fr.properties +15 -0
  23. package/src/sap/fe/controls/messagebundle_fr_CA.properties +17 -2
  24. package/src/sap/fe/controls/messagebundle_hi.properties +15 -0
  25. package/src/sap/fe/controls/messagebundle_hr.properties +15 -0
  26. package/src/sap/fe/controls/messagebundle_hu.properties +15 -0
  27. package/src/sap/fe/controls/messagebundle_id.properties +15 -0
  28. package/src/sap/fe/controls/messagebundle_it.properties +15 -0
  29. package/src/sap/fe/controls/messagebundle_iw.properties +15 -0
  30. package/src/sap/fe/controls/messagebundle_ja.properties +15 -0
  31. package/src/sap/fe/controls/messagebundle_kk.properties +15 -0
  32. package/src/sap/fe/controls/messagebundle_ko.properties +15 -0
  33. package/src/sap/fe/controls/messagebundle_lt.properties +15 -0
  34. package/src/sap/fe/controls/messagebundle_lv.properties +15 -0
  35. package/src/sap/fe/controls/messagebundle_mk.properties +15 -0
  36. package/src/sap/fe/controls/messagebundle_ms.properties +15 -0
  37. package/src/sap/fe/controls/messagebundle_nl.properties +15 -0
  38. package/src/sap/fe/controls/messagebundle_no.properties +16 -1
  39. package/src/sap/fe/controls/messagebundle_pl.properties +15 -0
  40. package/src/sap/fe/controls/messagebundle_pt.properties +15 -0
  41. package/src/sap/fe/controls/messagebundle_pt_PT.properties +15 -0
  42. package/src/sap/fe/controls/messagebundle_ro.properties +15 -0
  43. package/src/sap/fe/controls/messagebundle_ru.properties +15 -0
  44. package/src/sap/fe/controls/messagebundle_sh.properties +15 -0
  45. package/src/sap/fe/controls/messagebundle_sk.properties +15 -0
  46. package/src/sap/fe/controls/messagebundle_sl.properties +15 -0
  47. package/src/sap/fe/controls/messagebundle_sr.properties +15 -0
  48. package/src/sap/fe/controls/messagebundle_sv.properties +15 -0
  49. package/src/sap/fe/controls/messagebundle_th.properties +15 -0
  50. package/src/sap/fe/controls/messagebundle_tr.properties +15 -0
  51. package/src/sap/fe/controls/messagebundle_uk.properties +15 -0
  52. package/src/sap/fe/controls/messagebundle_vi.properties +15 -0
  53. package/src/sap/fe/controls/messagebundle_zh_CN.properties +15 -0
  54. package/src/sap/fe/controls/messagebundle_zh_TW.properties +15 -0
  55. package/src/sap/fe/controls/shortcuts/ShortcutExplanationProvider.js +24 -16
  56. package/src/sap/fe/controls/shortcuts/ShortcutExplanationProvider.tsx +38 -17
  57. package/src/sap/fe/controls/easyFilter/AINotice.js +0 -90
  58. package/src/sap/fe/controls/easyFilter/AINotice.tsx +0 -101
@@ -38,6 +38,7 @@ M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u015Eunun i\u00E7in yaln\u0131zca bir m\u00F
38
38
  M_EASY_FILTER_NON_FILTERABLE=Bu belirli uygulama {0} \u00FCzerinde filtrelemeyi desteklemiyor.
39
39
  M_EASY_FILTER_SINGLE_RANGE=\u015Eunun i\u00E7in yaln\u0131zca bir m\u00FCnferit ko\u015Ful uygulanabilir\: {0}
40
40
  M_EASY_FILTER_HIDDEN_FILTER=Bu belirli uygulama {0} \u00FCzerinde filtrelemeyi desteklemiyor.
41
+ M_EASY_FILTER_OPERATOR={0}, \u015Funun i\u00E7in ge\u00E7erli bir ko\u015Ful de\u011Fil\: {1}
41
42
  C_SHORTCUT_TITLE=Klavye k\u0131sayollar\u0131
42
43
  C_SHORTCUT_PLACEHOLDER=Klavye k\u0131sayolu bul
43
44
  C_SHORTCUT_NODATA=Klavye k\u0131sayollar\u0131n\u0131 g\u00F6rmek i\u00E7in ekran\u0131n bir b\u00F6l\u00FCm\u00FCne odaklan\u0131n
@@ -51,3 +52,17 @@ M_INLINE_EDIT_TOOLTIP_EDIT=D\u00FCzenle
51
52
  M_INLINE_EDIT_TOOLTIP_SAVE=Kaydet
52
53
  M_INLINE_EDIT_TOOLTIP_CANCEL=\u0130ptal
53
54
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=D\u00FCzenlemek i\u00E7in \u00E7ift t\u0131klay\u0131n
55
+ FILTER_OPERATOR_CONTAINS=\u015Eunu i\u00E7erir
56
+ FILTER_OPERATOR_NOTCONTAINS=\u015Eunu i\u00E7ermez
57
+ FILTER_OPERATOR_EQ=\u015Euna e\u015Fittir
58
+ FILTER_OPERATOR_GE=\u015Eundan b\u00FCy\u00FCkt\u00FCr veya \u015Funa e\u015Fittir
59
+ FILTER_OPERATOR_GT=\u015Eundan b\u00FCy\u00FCkt\u00FCr
60
+ FILTER_OPERATOR_LE=\u015Eundan k\u00FC\u00E7\u00FCkt\u00FCr veya \u015Funa e\u015Fittir
61
+ FILTER_OPERATOR_LT=\u015Eundan k\u00FC\u00E7\u00FCkt\u00FCr
62
+ FILTER_OPERATOR_NE=\u015Euna e\u015Fit de\u011Fildir
63
+ FILTER_OPERATOR_STARTSWITH=\u015Eununla ba\u015Flar
64
+ FILTER_OPERATOR_ENDSWITH=\u015Eununla biter
65
+ FILTER_OPERATOR_NOTSTARTSWITH=\u015Eununla ba\u015Flamaz
66
+ FILTER_OPERATOR_NOTENDSWITH=\u015Eununla bitmez
67
+ FILTER_OPERATOR_BT=\u015Eunlar aras\u0131nda
68
+ FILTER_OPERATOR_NB=\u015Eunlar aras\u0131nda de\u011Fil
@@ -38,6 +38,7 @@ M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u0422\u0456\u043B\u044C\u043A\u0438 \u043E\u
38
38
  M_EASY_FILTER_NON_FILTERABLE=\u0426\u0435\u0439 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u0438\u0439 \u0437\u0430\u0441\u0442\u043E\u0441\u0443\u043D\u043E\u043A \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454 \u0444\u0456\u043B\u044C\u0442\u0440\u0430\u0446\u0456\u044E \u0432 {0}.
39
39
  M_EASY_FILTER_SINGLE_RANGE=\u0422\u0456\u043B\u044C\u043A\u0438 \u043E\u0434\u043D\u0430 \u0443\u043C\u043E\u0432\u0430 \u043C\u043E\u0436\u0435 \u0431\u0443\u0442\u0438 \u0437\u0430\u0441\u0442\u043E\u0441\u043E\u0432\u0430\u043D\u0430 \u0434\u043E {0}.
40
40
  M_EASY_FILTER_HIDDEN_FILTER=\u0426\u0435\u0439 \u043A\u043E\u043D\u043A\u0440\u0435\u0442\u043D\u0438\u0439 \u0437\u0430\u0441\u0442\u043E\u0441\u0443\u043D\u043E\u043A \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454 \u0444\u0456\u043B\u044C\u0442\u0440\u0430\u0446\u0456\u044E \u0432 {0}.
41
+ M_EASY_FILTER_OPERATOR={0} \u043D\u0435 \u0454 \u0434\u0456\u0439\u0441\u043D\u043E\u044E \u0443\u043C\u043E\u0432\u043E\u044E \u0434\u043B\u044F\: {1}
41
42
  C_SHORTCUT_TITLE=\u0421\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u043A\u043B\u0430\u0432\u0456\u0448
42
43
  C_SHORTCUT_PLACEHOLDER=\u0417\u043D\u0430\u0439\u0442\u0438 \u0441\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044F \u043A\u043B\u0430\u0432\u0456\u0448
43
44
  C_SHORTCUT_NODATA=\u041D\u0430\u0432\u0435\u0434\u0456\u0442\u044C \u043A\u0443\u0440\u0441\u043E\u0440 \u043D\u0430 \u0447\u0430\u0441\u0442\u0438\u043D\u0456 \u0435\u043A\u0440\u0430\u043D\u0430, \u0449\u043E\u0431 \u043F\u043E\u0431\u0430\u0447\u0438\u0442\u0438 \u043A\u043E\u043C\u0431\u0456\u043D\u0430\u0446\u0456\u0457 \u043A\u043B\u0430\u0432\u0456\u0448
@@ -51,3 +52,17 @@ M_INLINE_EDIT_TOOLTIP_EDIT=\u0420\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u044
51
52
  M_INLINE_EDIT_TOOLTIP_SAVE=\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438
52
53
  M_INLINE_EDIT_TOOLTIP_CANCEL=\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438
53
54
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=\u0414\u0432\u0456\u0447\u0456 \u043A\u043B\u0430\u0446\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u0440\u0435\u0434\u0430\u0433\u0443\u0432\u0430\u0442\u0438
55
+ FILTER_OPERATOR_CONTAINS=\u041C\u0456\u0441\u0442\u0438\u0442\u044C
56
+ FILTER_OPERATOR_NOTCONTAINS=\u041D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C
57
+ FILTER_OPERATOR_EQ=\u0414\u043E\u0440\u0456\u0432\u043D\u044E\u0454
58
+ FILTER_OPERATOR_GE=\u0411\u0456\u043B\u044C\u0448\u0435 \u0430\u0431\u043E \u0434\u043E\u0440\u0456\u0432\u043D\u044E\u0454
59
+ FILTER_OPERATOR_GT=\u0411\u0456\u043B\u044C\u0448\u0435
60
+ FILTER_OPERATOR_LE=\u041C\u0435\u043D\u0448\u0435 \u0430\u0431\u043E \u0434\u043E\u0440\u0456\u0432\u043D\u044E\u0454
61
+ FILTER_OPERATOR_LT=\u041C\u0435\u043D\u0448\u0435
62
+ FILTER_OPERATOR_NE=\u041D\u0435 \u0434\u043E\u0440\u0456\u0432\u043D\u044E\u0454
63
+ FILTER_OPERATOR_STARTSWITH=\u041F\u043E\u0447\u0438\u043D\u0430\u0454\u0442\u044C\u0441\u044F \u0437
64
+ FILTER_OPERATOR_ENDSWITH=\u0417\u0430\u043A\u0456\u043D\u0447\u0443\u0454\u0442\u044C\u0441\u044F \u043D\u0430
65
+ FILTER_OPERATOR_NOTSTARTSWITH=\u041D\u0435 \u043F\u043E\u0447\u0438\u043D\u0430\u0454\u0442\u044C\u0441\u044F \u0437
66
+ FILTER_OPERATOR_NOTENDSWITH=\u041D\u0435 \u0437\u0430\u043A\u0456\u043D\u0447\u0443\u0454\u0442\u044C\u0441\u044F \u043D\u0430
67
+ FILTER_OPERATOR_BT=\u041C\u0456\u0436
68
+ FILTER_OPERATOR_NB=\u041D\u0435 \u043C\u0456\u0436
@@ -38,6 +38,7 @@ M_EASY_FILTER_SINGLE_VALUE_MESSAGE=Ch\u1EC9 c\u00F3 th\u1EC3 \u00E1p d\u1EE5ng m
38
38
  M_EASY_FILTER_NON_FILTERABLE=\u1EE8ng d\u1EE5ng c\u1EE5 th\u1EC3 n\u00E0y kh\u00F4ng h\u1ED7 tr\u1EE3 l\u1ECDc tr\u00EAn {0}.
39
39
  M_EASY_FILTER_SINGLE_RANGE=Ch\u1EC9 m\u1ED9t \u0111i\u1EC1u ki\u1EC7n duy nh\u1EA5t c\u00F3 th\u1EC3 \u0111\u01B0\u1EE3c \u00E1p d\u1EE5ng cho {0}.
40
40
  M_EASY_FILTER_HIDDEN_FILTER=\u1EE8ng d\u1EE5ng c\u1EE5 th\u1EC3 n\u00E0y kh\u00F4ng h\u1ED7 tr\u1EE3 l\u1ECDc tr\u00EAn {0}.
41
+ M_EASY_FILTER_OPERATOR={0} kh\u00F4ng ph\u1EA3i \u0111i\u1EC1u ki\u1EC7n h\u1EE3p l\u1EC7 cho\: {1}
41
42
  C_SHORTCUT_TITLE=Ph\u00EDm t\u1EAFt
42
43
  C_SHORTCUT_PLACEHOLDER=T\u00ECm ph\u00EDm t\u1EAFt
43
44
  C_SHORTCUT_NODATA=T\u1EADp trung v\u00E0o m\u1ED9t ph\u1EA7n m\u00E0n h\u00ECnh \u0111\u1EC3 xem ph\u00EDm t\u1EAFt
@@ -51,3 +52,17 @@ M_INLINE_EDIT_TOOLTIP_EDIT=Hi\u1EC7u ch\u1EC9nh
51
52
  M_INLINE_EDIT_TOOLTIP_SAVE=L\u01B0u
52
53
  M_INLINE_EDIT_TOOLTIP_CANCEL=H\u1EE7y
53
54
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=Nh\u1EA5p \u0111\u00FAp \u0111\u1EC3 hi\u1EC7u ch\u1EC9nh
55
+ FILTER_OPERATOR_CONTAINS=Ch\u1EE9a
56
+ FILTER_OPERATOR_NOTCONTAINS=Kh\u00F4ng ch\u1EE9a
57
+ FILTER_OPERATOR_EQ=B\u0103\u0300ng
58
+ FILTER_OPERATOR_GE=L\u1EDBn h\u01A1n ho\u1EB7c b\u1EB1ng
59
+ FILTER_OPERATOR_GT=L\u01A1\u0301n h\u01A1n
60
+ FILTER_OPERATOR_LE=Nh\u1ECF h\u01A1n ho\u1EB7c b\u1EB1ng
61
+ FILTER_OPERATOR_LT=Nho\u0309 h\u01A1n
62
+ FILTER_OPERATOR_NE=Kh\u00F4ng b\u0103\u0300ng
63
+ FILTER_OPERATOR_STARTSWITH=B\u1EAFt \u0111\u1EA7u b\u0103\u0300ng
64
+ FILTER_OPERATOR_ENDSWITH=K\u1EBFt th\u00FAc b\u1EB1ng
65
+ FILTER_OPERATOR_NOTSTARTSWITH=Kh\u00F4ng b\u1EAFt \u0111\u1EA7u b\u1EB1ng
66
+ FILTER_OPERATOR_NOTENDSWITH=Kh\u00F4ng k\u1EBFt th\u00FAc b\u1EB1ng
67
+ FILTER_OPERATOR_BT=Gi\u1EEFa
68
+ FILTER_OPERATOR_NB=Kh\u00F4ng gi\u1EEFa
@@ -38,6 +38,7 @@ M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u53EA\u80FD\u5BF9\u4EE5\u4E0B\u9879\u76EE\u5
38
38
  M_EASY_FILTER_NON_FILTERABLE=\u6B64\u7279\u5B9A\u5E94\u7528\u7A0B\u5E8F\u4E0D\u652F\u6301\u5BF9 {0} \u8FDB\u884C\u8FC7\u6EE4\u3002
39
39
  M_EASY_FILTER_SINGLE_RANGE=\u53EA\u80FD\u5BF9 {0} \u5E94\u7528\u5355\u4E2A\u6761\u4EF6\u3002
40
40
  M_EASY_FILTER_HIDDEN_FILTER=\u6B64\u7279\u5B9A\u5E94\u7528\u7A0B\u5E8F\u4E0D\u652F\u6301\u5BF9 {0} \u8FDB\u884C\u8FC7\u6EE4\u3002
41
+ M_EASY_FILTER_OPERATOR={0} \u4E0D\u662F {1} \u7684\u6709\u6548\u6761\u4EF6\u3002
41
42
  C_SHORTCUT_TITLE=\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F
42
43
  C_SHORTCUT_PLACEHOLDER=\u67E5\u627E\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F
43
44
  C_SHORTCUT_NODATA=\u805A\u7126\u4E8E\u90E8\u5206\u5C4F\u5E55\u4EE5\u67E5\u770B\u952E\u76D8\u5FEB\u6377\u65B9\u5F0F
@@ -51,3 +52,17 @@ M_INLINE_EDIT_TOOLTIP_EDIT=\u7F16\u8F91
51
52
  M_INLINE_EDIT_TOOLTIP_SAVE=\u4FDD\u5B58
52
53
  M_INLINE_EDIT_TOOLTIP_CANCEL=\u53D6\u6D88
53
54
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=\u53CC\u51FB\u8FDB\u884C\u7F16\u8F91
55
+ FILTER_OPERATOR_CONTAINS=\u5305\u542B
56
+ FILTER_OPERATOR_NOTCONTAINS=\u4E0D\u5305\u542B
57
+ FILTER_OPERATOR_EQ=\u7B49\u4E8E
58
+ FILTER_OPERATOR_GE=\u5927\u4E8E\u6216\u7B49\u4E8E
59
+ FILTER_OPERATOR_GT=\u5927\u4E8E
60
+ FILTER_OPERATOR_LE=\u5C0F\u4E8E\u6216\u7B49\u4E8E
61
+ FILTER_OPERATOR_LT=\u5C0F\u4E8E
62
+ FILTER_OPERATOR_NE=\u4E0D\u7B49\u4E8E
63
+ FILTER_OPERATOR_STARTSWITH=\u5F00\u5934\u4E3A
64
+ FILTER_OPERATOR_ENDSWITH=\u7ED3\u5C3E\u4E3A
65
+ FILTER_OPERATOR_NOTSTARTSWITH=\u5F00\u5934\u4E0D\u4E3A
66
+ FILTER_OPERATOR_NOTENDSWITH=\u7ED3\u5C3E\u4E0D\u4E3A
67
+ FILTER_OPERATOR_BT=\u4ECB\u4E8E
68
+ FILTER_OPERATOR_NB=\u4E0D\u4ECB\u4E8E
@@ -38,6 +38,7 @@ M_EASY_FILTER_SINGLE_VALUE_MESSAGE=\u53EA\u80FD\u5C07\u4E00\u500B\u55AE\u4E00\u5
38
38
  M_EASY_FILTER_NON_FILTERABLE=\u6B64\u7279\u5B9A\u61C9\u7528\u7A0B\u5F0F\u4E0D\u652F\u63F4\u5728 {0} \u9032\u884C\u7BE9\u9078\u3002
39
39
  M_EASY_FILTER_SINGLE_RANGE=\u50C5\u53EF\u5C07\u4E00\u500B\u55AE\u4E00\u689D\u4EF6\u5957\u7528\u5230 {0}\u3002
40
40
  M_EASY_FILTER_HIDDEN_FILTER=\u6B64\u7279\u5B9A\u61C9\u7528\u7A0B\u5F0F\u4E0D\u652F\u63F4\u5728 {0} \u9032\u884C\u7BE9\u9078\u3002
41
+ M_EASY_FILTER_OPERATOR={0} \u4E0D\u662F\u6709\u6548\u689D\u4EF6\uFF1A{1}
41
42
  C_SHORTCUT_TITLE=\u9375\u76E4\u6377\u5F91
42
43
  C_SHORTCUT_PLACEHOLDER=\u5C0B\u627E\u9375\u76E4\u6377\u5F91
43
44
  C_SHORTCUT_NODATA=\u5C07\u7126\u9EDE\u653E\u5728\u756B\u9762\u4EE5\u67E5\u770B\u9375\u76E4\u6377\u5F91
@@ -51,3 +52,17 @@ M_INLINE_EDIT_TOOLTIP_EDIT=\u7DE8\u8F2F
51
52
  M_INLINE_EDIT_TOOLTIP_SAVE=\u5132\u5B58
52
53
  M_INLINE_EDIT_TOOLTIP_CANCEL=\u53D6\u6D88
53
54
  M_INLINE_EDIT_TOOLTIP_DOUBLECLICK_EDIT=\u6309\u5169\u4E0B\u4EE5\u9032\u884C\u7DE8\u8F2F
55
+ FILTER_OPERATOR_CONTAINS=\u5305\u542B
56
+ FILTER_OPERATOR_NOTCONTAINS=\u4E0D\u5305\u542B
57
+ FILTER_OPERATOR_EQ=\u7B49\u65BC
58
+ FILTER_OPERATOR_GE=\u5927\u65BC\u6216\u7B49\u65BC
59
+ FILTER_OPERATOR_GT=\u5927\u65BC
60
+ FILTER_OPERATOR_LE=\u5C0F\u65BC\u6216\u7B49\u65BC
61
+ FILTER_OPERATOR_LT=\u5C0F\u65BC
62
+ FILTER_OPERATOR_NE=\u4E0D\u7B49\u65BC
63
+ FILTER_OPERATOR_STARTSWITH=\u958B\u982D\u662F
64
+ FILTER_OPERATOR_ENDSWITH=\u7D50\u5C3E\u662F
65
+ FILTER_OPERATOR_NOTSTARTSWITH=\u958B\u982D\u4E0D\u662F
66
+ FILTER_OPERATOR_NOTENDSWITH=\u7D50\u5C3E\u4E0D\u662F
67
+ FILTER_OPERATOR_BT=\u4ECB\u65BC
68
+ FILTER_OPERATOR_NB=\u4E0D\u4ECB\u65BC
@@ -122,11 +122,14 @@ sap.ui.define(["sap/base/Log", "sap/base/security/encodeURL", "sap/fe/base/Class
122
122
  this.instancePromise = new Promise(resolve => {
123
123
  resolveCreation = resolve;
124
124
  });
125
+ const appLifeCycle = await shellContainer.getServiceAsync("AppLifeCycle");
125
126
  const extensionService = await shellContainer.getServiceAsync("Extension");
126
127
  if (extensionService) {
127
- const shellHistoryProvider = await ShortcutExplanationProvider.registerUserAction(extensionService);
128
- this.instance = shellHistoryProvider;
129
- resolveCreation(shellHistoryProvider);
128
+ appLifeCycle?.attachAppLoaded({}, async () => {
129
+ const shellHistoryProvider = await ShortcutExplanationProvider.registerUserAction(extensionService);
130
+ this.instance = shellHistoryProvider;
131
+ resolveCreation(shellHistoryProvider);
132
+ }, this);
130
133
  }
131
134
  }
132
135
  } catch (e) {
@@ -145,27 +148,32 @@ sap.ui.define(["sap/base/Log", "sap/base/security/encodeURL", "sap/fe/base/Class
145
148
  try {
146
149
  const resourceBundle = Lib.getResourceBundleFor("sap.fe.controls");
147
150
  const shellHistoryDialog = new ShortcutExplanationProvider();
148
- if (!this.isDialogAdded) {
149
- this.isDialogAdded = true;
150
- const userAction = await shellExtensionService.createUserAction({
151
- text: resourceBundle.getText("C_SHORTCUT_TITLE"),
152
- icon: IconPool.getIconURI("keyboard-and-mouse"),
153
- press: () => {
154
- shellHistoryDialog.getShellDialogContent();
155
- }
156
- }, {
157
- controlType: "sap.m.Button"
151
+ const userAction = await shellExtensionService.createUserAction({
152
+ text: resourceBundle.getText("C_SHORTCUT_TITLE"),
153
+ icon: IconPool.getIconURI("keyboard-and-mouse"),
154
+ press: () => {
155
+ shellHistoryDialog.getShellDialogContent();
156
+ }
157
+ }, {
158
+ controlType: "sap.m.Button"
159
+ });
160
+ // Store reference for cleanup when the iframe is reloaded/unloaded
161
+ this._userAction = userAction;
162
+ if (!this._cleanupAttached) {
163
+ this._cleanupAttached = true;
164
+ window.addEventListener("pagehide", () => {
165
+ this._userAction.destroy();
158
166
  });
159
- userAction.showForAllApps();
160
167
  }
168
+ userAction.showForCurrentApp();
161
169
  return shellHistoryDialog;
162
170
  } catch (err) {
163
171
  Log.error("Cannot add user action", err instanceof Error ? err.message : String(err));
164
172
  }
165
173
  };
166
174
  return ShortcutExplanationProvider;
167
- }(ManagedObject), _ShortcutExplanationProvider.isDialogAdded = false, _ShortcutExplanationProvider)) || _class);
175
+ }(ManagedObject), _ShortcutExplanationProvider.isDialogAdded = false, _ShortcutExplanationProvider._cleanupAttached = false, _ShortcutExplanationProvider)) || _class);
168
176
  _exports = ShortcutExplanationProvider;
169
177
  return _exports;
170
178
  }, false);
171
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIiwiX01hbmFnZWRPYmplY3QiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsIl9wb3B1cElkeCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRTaGVsbERpYWxvZ0NvbnRlbnQiLCJ3aW5kb3dXaWR0aCIsImxlZnQiLCJ3aW5kb3ciLCJzY3JlZW5MZWZ0Iiwib3V0ZXJXaWR0aCIsInNjcmVlbiIsImF2YWlsV2lkdGgiLCJ0aGVtZSIsIlRoZW1pbmciLCJnZXRUaGVtZSIsIl9zYW5pdGl6ZVRoZW1lIiwidXJsIiwic2FwIiwidWkiLCJyZXF1aXJlIiwidG9VcmwiLCJsb2NhbE9yaWdpbiIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0IiwicGFyYW1zIiwiZW5jb2RlVVJMIiwibXlXaW4iLCJvcGVuIiwic2NyZWVuVG9wIiwiaGFuZGxlTWVzc2FnZVJlY2VpdmVkIiwibWVzc2FnZUV2ZW50Iiwib3JpZ2luIiwibWVzc2FnZURhdGEiLCJkYXRhIiwic2VydmljZSIsIm1lc3NhZ2VQb3J0IiwicG9ydHMiLCJwb3N0TWVzc2FnZSIsInN0YXJ0c1dpdGgiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib3BlbmVyIiwiZSIsIkxvZyIsImRlYnVnIiwiRXJyb3IiLCJtZXNzYWdlIiwiU3RyaW5nIiwic2V0VGltZW91dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJpZCIsIm9udW5sb2FkIiwiY2xvc2UiLCJjb21wdXRlZFN0eWxlcyIsImdldENvbXB1dGVkU3R5bGUiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImdldFByb3BlcnR5VmFsdWUiLCJ0aGVtZU1ldGFkYXRhIiwidGhlbWVNYXRjaCIsIkpTT04iLCJwYXJzZSIsIkV4dGVuZHMiLCJpbmZvIiwiZ2V0SW5zdGFuY2UiLCJzaGVsbENvbnRhaW5lciIsInJlc29sdmVDcmVhdGlvbiIsImluc3RhbmNlIiwiaW5zdGFuY2VQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJleHRlbnNpb25TZXJ2aWNlIiwiZ2V0U2VydmljZUFzeW5jIiwic2hlbGxIaXN0b3J5UHJvdmlkZXIiLCJyZWdpc3RlclVzZXJBY3Rpb24iLCJlcnJvciIsInVuZGVmaW5lZCIsInNoZWxsRXh0ZW5zaW9uU2VydmljZSIsInJlc291cmNlQnVuZGxlIiwiTGliIiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJzaGVsbEhpc3RvcnlEaWFsb2ciLCJpc0RpYWxvZ0FkZGVkIiwidXNlckFjdGlvbiIsImNyZWF0ZVVzZXJBY3Rpb24iLCJ0ZXh0IiwiZ2V0VGV4dCIsImljb24iLCJJY29uUG9vbCIsImdldEljb25VUkkiLCJwcmVzcyIsImNvbnRyb2xUeXBlIiwic2hvd0ZvckFsbEFwcHMiLCJlcnIiLCJNYW5hZ2VkT2JqZWN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IGVuY29kZVVSTCBmcm9tIFwic2FwL2Jhc2Uvc2VjdXJpdHkvZW5jb2RlVVJMXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBNYW5hZ2VkT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9NYW5hZ2VkT2JqZWN0XCI7XG5pbXBvcnQgSWNvblBvb2wgZnJvbSBcInNhcC91aS9jb3JlL0ljb25Qb29sXCI7XG5pbXBvcnQgTGliIGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCBUaGVtaW5nIGZyb20gXCJzYXAvdWkvY29yZS9UaGVtaW5nXCI7XG5pbXBvcnQgdHlwZSBDb250YWluZXIgZnJvbSBcInNhcC91c2hlbGwvQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb24gZnJvbSBcInNhcC91c2hlbGwvc2VydmljZXMvRXh0ZW5zaW9uXCI7XG5cbi8qKlxuICogUHJvdmlkZXMgYSBkaWFsb2cgdG8gZXhwbGFpbiB0aGUgc2hvcnRjdXRzIHRvIHRoZSB1c2VyLlxuICogVGhpcyBkaWFsb2cgd2lsbCBiZSByZWdpc3RlcmVkIGluIHRoZSBzaGVsbCB1c2VyIG1lbnUgYW5kIHdpbGwgb3BlbiBhcyBhbiBpbmRlcGVuZGVudCB3aW5kb3cuXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb250cm9scy5zaG9ydGN1dHMuU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgZXh0ZW5kcyBNYW5hZ2VkT2JqZWN0IHtcblx0cHJpdmF0ZSBfcG9wdXBJZHggPSAwO1xuXG5cdGdldFNoZWxsRGlhbG9nQ29udGVudCgpOiB2b2lkIHtcblx0XHQvLyBQb3NpdGlvbiB0byB0b3AgcmlnaHQgb2YgdGhlIG1haW4gd2luZG93IGlmIHBvc3NpYmxlXG5cdFx0Y29uc3Qgd2luZG93V2lkdGggPSA2MjA7XG5cdFx0bGV0IGxlZnQgPSB3aW5kb3cuc2NyZWVuTGVmdCArIHdpbmRvdy5vdXRlcldpZHRoO1xuXHRcdGlmIChsZWZ0ICsgd2luZG93V2lkdGggPiB3aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGgpIHtcblx0XHRcdGxlZnQgPSB3aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGggLSB3aW5kb3dXaWR0aDtcblx0XHR9XG5cdFx0bGV0IHRoZW1lID0gVGhlbWluZy5nZXRUaGVtZSgpO1xuXHRcdHRoZW1lID0gdGhpcy5fc2FuaXRpemVUaGVtZSh0aGVtZSk7XG5cdFx0Y29uc3QgdXJsID0gc2FwLnVpLnJlcXVpcmUudG9VcmwoXCJzYXAvZmUvY29udHJvbHMvc2hvcnRjdXRzL3BvcHVwL2luZGV4Lmh0bWxcIik7XG5cdFx0Y29uc3QgbG9jYWxPcmlnaW4gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcblx0XHQvLyBXZSBwYXNzIHRoZSB0aGVtZSBhbmQgdGhlIG9yaWdpbiB0byB0aGUgcG9wdXAgc28gdGhhdCBpdCBjYW4gY29tbXVuaWNhdGUgc2FmZWx5IHdpdGggdGhlIHBhcmVudFxuXHRcdGNvbnN0IHBhcmFtcyA9IFwiP3NhcC11aS14eC1zaG9ydGN1dC1vcmlnaW49XCIgKyBlbmNvZGVVUkwobG9jYWxPcmlnaW4pICsgXCImc2FwLXVpLXRoZW1lPVwiICsgdGhlbWU7XG5cdFx0Y29uc3QgbXlXaW4gPSB3aW5kb3cub3Blbihcblx0XHRcdHVybCArIHBhcmFtcyxcblx0XHRcdFwiX2JsYW5rXCIsXG5cdFx0XHRgcG9wdXAsdG9vbGJhcj1ubyxtZW51YmFyPW5vLHNjcm9sbGJhcnM9bm8sbG9jYXRpb249bm8sd2lkdGg9JHt3aW5kb3dXaWR0aH0saGVpZ2h0PTU1MCx0b3A9JHt3aW5kb3cuc2NyZWVuVG9wfSxsZWZ0PSR7bGVmdH1gXG5cdFx0KTtcblx0XHRpZiAobXlXaW4pIHtcblx0XHRcdGNvbnN0IGhhbmRsZU1lc3NhZ2VSZWNlaXZlZCA9IChtZXNzYWdlRXZlbnQ6IE1lc3NhZ2VFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRpZiAobG9jYWxPcmlnaW4gPT09IG1lc3NhZ2VFdmVudC5vcmlnaW4pIHtcblx0XHRcdFx0XHRjb25zdCBtZXNzYWdlRGF0YSA9IG1lc3NhZ2VFdmVudD8uZGF0YTtcblx0XHRcdFx0XHRpZiAobWVzc2FnZURhdGEuc2VydmljZSA9PT0gXCJzYXAudWkuaW50ZXJhY3Rpb24uTWVzc2FnZVBvcnRSZWFkeVwiKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBtZXNzYWdlUG9ydCA9IG1lc3NhZ2VFdmVudC5wb3J0c1swXTsgLy8gUmVtZW1iZXIgdGhlIHBvcnRcblx0XHRcdFx0XHRcdG15V2luLnBvc3RNZXNzYWdlKHsgc2VydmljZTogXCJzYXAudWkuaW50ZXJhY3Rpb24uTWVzc2FnZVBvcnRSZWFkeVwiIH0sIHVybC5zdGFydHNXaXRoKFwiL1wiKSA/IGxvY2FsT3JpZ2luIDogdXJsLCBbXG5cdFx0XHRcdFx0XHRcdG1lc3NhZ2VQb3J0XG5cdFx0XHRcdFx0XHRdKTtcblx0XHRcdFx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVNZXNzYWdlUmVjZWl2ZWQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdG15V2luLm9wZW5lciA9IG51bGw7XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdC8vIFRoaXMgbWlnaHQgZmFpbCB3aGVuIHRoZXJlIGlzIENPUlMgaW52b2x2ZWQgYW55d2F5IGFuZCB3ZSBjYW4ndCBhY2Nlc3MgdGhlIG9wZW5lciBhbnl3YXlcblx0XHRcdFx0TG9nLmRlYnVnKFwiQ2Fubm90IHNldCBvcGVuZXIgdG8gbnVsbFwiLCBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSkpO1xuXHRcdFx0fVxuXG5cdFx0XHRzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHtcblx0XHRcdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIGhhbmRsZU1lc3NhZ2VSZWNlaXZlZCk7XG5cdFx0XHRcdHdpbmRvdy5wb3N0TWVzc2FnZShcblx0XHRcdFx0XHR7IGlkOiBcInNhcC5mZS5pbnRlcmFjdGlvbi5Qb3B1cFwiICsgdGhpcy5fcG9wdXBJZHgrKywgc2VydmljZTogXCJzYXAudWkuaW50ZXJhY3Rpb24uUmVxdWVzdE1lc3NhZ2VQb3J0XCIgfSxcblx0XHRcdFx0XHRsb2NhbE9yaWdpblxuXHRcdFx0XHQpO1xuXHRcdFx0fSwgMTUwMCk7IC8vIGdpdmUgYSBiaXQgb2YgdGltZSBmb3IgdGhlIHBvcHVwIHRvIGJlIHJlYWR5XG5cdFx0XHQvLyBXZSBjYW4ndCByZWx5IG9uIHRoZSBvbmxvYWQgb2YgdGhlIHBvcHVwIGJlY2F1c2UgaXQgaXMgbm90IGFsd2F5cyBhdmFpbGJsZSBpbiBDT1JTIHNjZW5hcmlvc1xuXHRcdFx0d2luZG93Lm9udW5sb2FkID0gZnVuY3Rpb24gKCk6IHZvaWQge1xuXHRcdFx0XHRteVdpbi5jbG9zZSgpO1xuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogU2FuaXRpemVzIHRoZSB0aGVtZSBuYW1lIHRvIGVuc3VyZSBpdCBzdGFydHMgd2l0aCBcInNhcC1cIi5cblx0ICogSWYgdGhlIHRoZW1lIGRvZXMgbm90IHN0YXJ0IHdpdGggXCJzYXAtXCIsIGl0IHRyaWVzIHRvIGdldCB0aGUgdGhlbWUgZnJvbSB0aGUgY29tcHV0ZWQgc3R5bGVzLlxuXHQgKiBJZiBpdCBzdGlsbCBkb2VzIG5vdCBmaW5kIGEgdmFsaWQgdGhlbWUsIGl0IGRlZmF1bHRzIHRvIFwic2FwX2hvcml6b25cIi5cblx0ICogVGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgcG9wdXAgYWx3YXlzIHVzZXMgYSB2YWxpZCB0aGVtZS5cblx0ICogQHBhcmFtIHRoZW1lIFRoZSB0aGVtZSBuYW1lIHRvIHNhbml0aXplXG5cdCAqIEByZXR1cm5zIFRoZSBzYW5pdGl6ZWQgdGhlbWUgbmFtZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0cHJpdmF0ZSBfc2FuaXRpemVUaGVtZSh0aGVtZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAoIXRoZW1lLnN0YXJ0c1dpdGgoXCJzYXBfXCIpKSB7XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRjb25zdCBjb21wdXRlZFN0eWxlcyA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtcblx0XHRcdFx0dGhlbWUgPSBjb21wdXRlZFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1zYXBTYXBUaGVtZUlkXCIpO1xuXHRcdFx0XHRpZiAoIXRoZW1lKSB7XG5cdFx0XHRcdFx0Y29uc3QgdGhlbWVNZXRhZGF0YSA9IGNvbXB1dGVkU3R5bGVzLmdldFByb3BlcnR5VmFsdWUoXCItLXNhcFRoZW1lTWV0YURhdGEtVUk1LXNhcC11aS1jb3JlXCIpO1xuXHRcdFx0XHRcdGlmICh0aGVtZU1ldGFkYXRhKSB7XG5cdFx0XHRcdFx0XHRjb25zdCB0aGVtZU1hdGNoID0gSlNPTi5wYXJzZSh0aGVtZU1ldGFkYXRhKTtcblx0XHRcdFx0XHRcdGlmICh0aGVtZU1hdGNoICYmIHRoZW1lTWF0Y2guRXh0ZW5kcyAmJiB0aGVtZU1hdGNoLkV4dGVuZHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0XHR0aGVtZSA9IHRoZW1lTWF0Y2guRXh0ZW5kc1swXTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0TG9nLmluZm8oXCJDYW5ub3QgZ2V0IHRoZW1lIGZyb20gY29tcHV0ZWQgc3R5bGVzXCIsIGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKSk7XG5cdFx0XHRcdHRoZW1lID0gXCJzYXBfaG9yaXpvblwiO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCF0aGVtZSB8fCAhdGhlbWUuc3RhcnRzV2l0aChcInNhcF9cIikpIHtcblx0XHRcdFx0Ly8gRmluYWwgZmFsbGJhY2sgdG8gc2FwX2hvcml6b25cblx0XHRcdFx0dGhlbWUgPSBcInNhcF9ob3Jpem9uXCI7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB0aGVtZTtcblx0fVxuXG5cdHN0YXRpYyBpbnN0YW5jZVByb21pc2U6IFByb21pc2U8U2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIHwgdW5kZWZpbmVkPjtcblxuXHRzdGF0aWMgaW5zdGFuY2U6IFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlciB8IHVuZGVmaW5lZDtcblxuXHRzdGF0aWMgaXNEaWFsb2dBZGRlZCA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIG9yIHJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIuXG5cdCAqIFRoaXMgaXMgYSBzaW5nbGV0b24gdG8gZW5zdXJlIHdlIG9ubHkgaGF2ZSBvbmUgaW5zdGFuY2Ugb2YgdGhlIGRpYWxvZy5cblx0ICogQHJldHVybnMgVGhlIGluc3RhbmNlIG9mIHRoZSBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXJcblx0ICovXG5cdHN0YXRpYyBhc3luYyBnZXRJbnN0YW5jZSgpOiBQcm9taXNlPFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlciB8IHVuZGVmaW5lZD4ge1xuXHRcdC8vIFRlc3QgdGhlIHNoZWxsIGV4aXN0ZW5jZSBhbmQgcmVnaXN0ZXIgdGhlIGV4dGVuc2lvblxuXHRcdGNvbnN0IHNoZWxsQ29udGFpbmVyID0gc2FwLnVpLnJlcXVpcmUoXCJzYXAvdXNoZWxsL0NvbnRhaW5lclwiKSBhcyBDb250YWluZXIgfCB1bmRlZmluZWQ7XG5cdFx0bGV0IHJlc29sdmVDcmVhdGlvbjogRnVuY3Rpb24gfCB1bmRlZmluZWQ7XG5cdFx0dHJ5IHtcblx0XHRcdGlmIChzaGVsbENvbnRhaW5lciAmJiAhdGhpcy5pbnN0YW5jZSkge1xuXHRcdFx0XHR0aGlzLmluc3RhbmNlUHJvbWlzZSA9IG5ldyBQcm9taXNlPFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlciB8IHVuZGVmaW5lZD4oKHJlc29sdmUpID0+IHtcblx0XHRcdFx0XHRyZXNvbHZlQ3JlYXRpb24gPSByZXNvbHZlO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0Y29uc3QgZXh0ZW5zaW9uU2VydmljZSA9IChhd2FpdCBzaGVsbENvbnRhaW5lci5nZXRTZXJ2aWNlQXN5bmMoXCJFeHRlbnNpb25cIikpIGFzIEV4dGVuc2lvbiB8IHVuZGVmaW5lZDtcblx0XHRcdFx0aWYgKGV4dGVuc2lvblNlcnZpY2UpIHtcblx0XHRcdFx0XHRjb25zdCBzaGVsbEhpc3RvcnlQcm92aWRlciA9IGF3YWl0IFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlci5yZWdpc3RlclVzZXJBY3Rpb24oZXh0ZW5zaW9uU2VydmljZSk7XG5cdFx0XHRcdFx0dGhpcy5pbnN0YW5jZSA9IHNoZWxsSGlzdG9yeVByb3ZpZGVyO1xuXHRcdFx0XHRcdHJlc29sdmVDcmVhdGlvbiEoc2hlbGxIaXN0b3J5UHJvdmlkZXIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IHJlZ2lzdGVyIGV4dGVuc2lvblwiLCBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSkpO1xuXHRcdFx0cmVzb2x2ZUNyZWF0aW9uPy4odW5kZWZpbmVkKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuaW5zdGFuY2VQcm9taXNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgdGhlIHVzZXIgYWN0aW9uIHRvIHRoZSBzaGVsbCwgdGhlIGFjdGlvbiB3aWxsIG9wZW4gdGhlIGRpYWxvZyB3aXRoIHRoZSBzaG9ydGN1dHMuXG5cdCAqIEBwYXJhbSBzaGVsbEV4dGVuc2lvblNlcnZpY2UgVGhlIGV4dGVuc2lvbiBzZXJ2aWNlIHRvIGFkZCB0aGUgdXNlciBhY3Rpb24gdG8gdGhlIHNoZWxsXG5cdCAqIEByZXR1cm5zIFRoZSBkaWFsb2cgd2l0aCB0aGUgc2hvcnRjdXRzXG5cdCAqL1xuXHRzdGF0aWMgYXN5bmMgcmVnaXN0ZXJVc2VyQWN0aW9uKHNoZWxsRXh0ZW5zaW9uU2VydmljZTogRXh0ZW5zaW9uKTogUHJvbWlzZTxTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgfCB1bmRlZmluZWQ+IHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcmVzb3VyY2VCdW5kbGUgPSBMaWIuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29udHJvbHNcIikhO1xuXG5cdFx0XHRjb25zdCBzaGVsbEhpc3RvcnlEaWFsb2cgPSBuZXcgU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyKCk7XG5cdFx0XHRpZiAoIXRoaXMuaXNEaWFsb2dBZGRlZCkge1xuXHRcdFx0XHR0aGlzLmlzRGlhbG9nQWRkZWQgPSB0cnVlO1xuXHRcdFx0XHRjb25zdCB1c2VyQWN0aW9uID0gYXdhaXQgc2hlbGxFeHRlbnNpb25TZXJ2aWNlLmNyZWF0ZVVzZXJBY3Rpb24oXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0dGV4dDogcmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIkNfU0hPUlRDVVRfVElUTEVcIiksXG5cdFx0XHRcdFx0XHRpY29uOiBJY29uUG9vbC5nZXRJY29uVVJJKFwia2V5Ym9hcmQtYW5kLW1vdXNlXCIpLFxuXHRcdFx0XHRcdFx0cHJlc3M6ICgpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0c2hlbGxIaXN0b3J5RGlhbG9nLmdldFNoZWxsRGlhbG9nQ29udGVudCgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y29udHJvbFR5cGU6IFwic2FwLm0uQnV0dG9uXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdCk7XG5cdFx0XHRcdHVzZXJBY3Rpb24uc2hvd0ZvckFsbEFwcHMoKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBzaGVsbEhpc3RvcnlEaWFsb2c7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgYWRkIHVzZXIgYWN0aW9uXCIsIGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKSk7XG5cdFx0fVxuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztFQVVBO0FBQ0E7QUFDQTtBQUNBO0VBSEEsSUFLcUJBLDJCQUEyQixJQUFBQyxJQUFBLEdBRC9DQyxjQUFjLENBQUMsdURBQXVELENBQUMsRUFBQUQsSUFBQSxDQUFBRSxNQUFBLElBQUFDLDRCQUFBLDBCQUFBQyxjQUFBO0lBQUEsU0FBQUwsNEJBQUE7TUFBQSxJQUFBTSxL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Q0QsQ0FBQyxDQUFDLE9BQU8vQixDQUFDLEVBQUU7UUFDWEMsR0FBRyxDQUFDZ0MsS0FBSyxDQUFDLDJCQUEyQixFQUFFakMsQ0FBQyxZQUFZRyxLQUFLLEdBQUdILENBQUMsQ0FBQ0ksT0FBTyxHQUFHQyxNQUFNLENBQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ2xGd0IsZUFBZSxHQUFHVSxTQUFTLENBQUM7TUFDN0I7TUFDQSxPQUFPLElBQUksQ0FBQ1IsZUFBZTtJQUM1Qjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQW5GLDJCQUFBLENBS2F5RixrQkFBa0IsR0FBL0IsZUFBYUEsa0JBQWtCQSxDQUFDRyxxQkFBZ0MsRUFBb0Q7TUFDbkgsSUFBSTtRQUNILE1BQU1DLGNBQWMsR0FBR0MsR0FBRyxDQUFDQyxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBRTtRQUVuRSxNQUFNQyxrQkFBa0IsR0FBRyxJQUFJaEcsMkJBQTJCLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDaUcsYUFBYSxFQUFFO1VBQ3hCLElBQUksQ0FBQ0EsYUFBYSxHQUFHLElBQUk7VUFDekIsTUFBTUMsVUFBVSxHQUFHLE1BQU1OLHFCQUFxQixDQUFDTyxnQkFBZ0IsQ0FDOUQ7WUFDQ0MsSUFBSSxFQUFFUCxjQUFjLENBQUNRLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQztZQUNoREMsSUFBSSxFQUFFQyxRQUFRLENBQUNDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQztZQUMvQ0MsS0FBSyxFQUFFQSxDQUFBLEtBQVk7Y0FDbEJULGtCQUFrQixDQUFDN0UscUJBQXFCLENBQUMsQ0FBQztZQUMzQztVQUNELENBQUMsRUFDRDtZQUNDdUYsV0FBVyxFQUFFO1VBQ2QsQ0FDRCxDQUFDO1VBQ0RSLFVBQVUsQ0FBQ1MsY0FBYyxDQUFDLENBQUM7UUFDNUI7UUFDQSxPQUFPWCxrQkFBa0I7TUFDMUIsQ0FBQyxDQUFDLE9BQU9ZLEdBQUcsRUFBRTtRQUNibEQsR0FBRyxDQUFDZ0MsS0FBSyxDQUFDLHdCQUF3QixFQUFFa0IsR0FBRyxZQUFZaEQsS0FBSyxHQUFHZ0QsR0FBRyxDQUFDL0MsT0FBTyxHQUFHQyxNQUFNLENBQUM4QyxHQUFHLENBQUMsQ0FBQztNQUN0RjtJQUNELENBQUM7SUFBQSxPQUFBNUcsMkJBQUE7RUFBQSxFQTFKdUQ2RyxhQUFhLEdBQUF6Ryw0QkFBQSxDQThGOUQ2RixhQUFhLEdBQUcsS0FBSyxFQUFBN0YsNEJBQUEsTUFBQUQsTUFBQTtFQUFBWSxRQUFBLEdBQUFmLDJCQUFBO0VBQUEsT0FBQWUsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
179
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfY2xhc3MiLCJfU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIiwiX01hbmFnZWRPYmplY3QiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsIl9wb3B1cElkeCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJnZXRTaGVsbERpYWxvZ0NvbnRlbnQiLCJ3aW5kb3dXaWR0aCIsImxlZnQiLCJ3aW5kb3ciLCJzY3JlZW5MZWZ0Iiwib3V0ZXJXaWR0aCIsInNjcmVlbiIsImF2YWlsV2lkdGgiLCJ0aGVtZSIsIlRoZW1pbmciLCJnZXRUaGVtZSIsIl9zYW5pdGl6ZVRoZW1lIiwidXJsIiwic2FwIiwidWkiLCJyZXF1aXJlIiwidG9VcmwiLCJsb2NhbE9yaWdpbiIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0IiwicGFyYW1zIiwiZW5jb2RlVVJMIiwibXlXaW4iLCJvcGVuIiwic2NyZWVuVG9wIiwiaGFuZGxlTWVzc2FnZVJlY2VpdmVkIiwibWVzc2FnZUV2ZW50Iiwib3JpZ2luIiwibWVzc2FnZURhdGEiLCJkYXRhIiwic2VydmljZSIsIm1lc3NhZ2VQb3J0IiwicG9ydHMiLCJwb3N0TWVzc2FnZSIsInN0YXJ0c1dpdGgiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwib3BlbmVyIiwiZSIsIkxvZyIsImRlYnVnIiwiRXJyb3IiLCJtZXNzYWdlIiwiU3RyaW5nIiwic2V0VGltZW91dCIsImFkZEV2ZW50TGlzdGVuZXIiLCJpZCIsIm9udW5sb2FkIiwiY2xvc2UiLCJjb21wdXRlZFN0eWxlcyIsImdldENvbXB1dGVkU3R5bGUiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImdldFByb3BlcnR5VmFsdWUiLCJ0aGVtZU1ldGFkYXRhIiwidGhlbWVNYXRjaCIsIkpTT04iLCJwYXJzZSIsIkV4dGVuZHMiLCJpbmZvIiwiZ2V0SW5zdGFuY2UiLCJzaGVsbENvbnRhaW5lciIsInJlc29sdmVDcmVhdGlvbiIsImluc3RhbmNlIiwiaW5zdGFuY2VQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJhcHBMaWZlQ3ljbGUiLCJnZXRTZXJ2aWNlQXN5bmMiLCJleHRlbnNpb25TZXJ2aWNlIiwiYXR0YWNoQXBwTG9hZGVkIiwic2hlbGxIaXN0b3J5UHJvdmlkZXIiLCJyZWdpc3RlclVzZXJBY3Rpb24iLCJlcnJvciIsInVuZGVmaW5lZCIsInNoZWxsRXh0ZW5zaW9uU2VydmljZSIsInJlc291cmNlQnVuZGxlIiwiTGliIiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJzaGVsbEhpc3RvcnlEaWFsb2ciLCJ1c2VyQWN0aW9uIiwiY3JlYXRlVXNlckFjdGlvbiIsInRleHQiLCJnZXRUZXh0IiwiaWNvbiIsIkljb25Qb29sIiwiZ2V0SWNvblVSSSIsInByZXNzIiwiY29udHJvbFR5cGUiLCJfdXNlckFjdGlvbiIsIl9jbGVhbnVwQXR0YWNoZWQiLCJkZXN0cm95Iiwic2hvd0ZvckN1cnJlbnRBcHAiLCJlcnIiLCJNYW5hZ2VkT2JqZWN0IiwiaXNEaWFsb2dBZGRlZCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBlbmNvZGVVUkwgZnJvbSBcInNhcC9iYXNlL3NlY3VyaXR5L2VuY29kZVVSTFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTWFuYWdlZE9iamVjdCBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IEljb25Qb29sIGZyb20gXCJzYXAvdWkvY29yZS9JY29uUG9vbFwiO1xuaW1wb3J0IExpYiBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgVGhlbWluZyBmcm9tIFwic2FwL3VpL2NvcmUvVGhlbWluZ1wiO1xuaW1wb3J0IHR5cGUgQ29udGFpbmVyIGZyb20gXCJzYXAvdXNoZWxsL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgQXBwTGlmZUN5Y2xlIGZyb20gXCJzYXAvdXNoZWxsL3NlcnZpY2VzL0FwcExpZmVDeWNsZVwiO1xuaW1wb3J0IHR5cGUgRXh0ZW5zaW9uIGZyb20gXCJzYXAvdXNoZWxsL3NlcnZpY2VzL0V4dGVuc2lvblwiO1xuaW1wb3J0IHR5cGUgSXRlbSBmcm9tIFwic2FwL3VzaGVsbC9zZXJ2aWNlcy9FeHRlbnNpb24vSXRlbVwiO1xuXG4vKipcbiAqIFByb3ZpZGVzIGEgZGlhbG9nIHRvIGV4cGxhaW4gdGhlIHNob3J0Y3V0cyB0byB0aGUgdXNlci5cbiAqIFRoaXMgZGlhbG9nIHdpbGwgYmUgcmVnaXN0ZXJlZCBpbiB0aGUgc2hlbGwgdXNlciBtZW51IGFuZCB3aWxsIG9wZW4gYXMgYW4gaW5kZXBlbmRlbnQgd2luZG93LlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29udHJvbHMuc2hvcnRjdXRzLlNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlclwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIGV4dGVuZHMgTWFuYWdlZE9iamVjdCB7XG5cdHByaXZhdGUgX3BvcHVwSWR4ID0gMDtcblxuXHRnZXRTaGVsbERpYWxvZ0NvbnRlbnQoKTogdm9pZCB7XG5cdFx0Ly8gUG9zaXRpb24gdG8gdG9wIHJpZ2h0IG9mIHRoZSBtYWluIHdpbmRvdyBpZiBwb3NzaWJsZVxuXHRcdGNvbnN0IHdpbmRvd1dpZHRoID0gNjIwO1xuXHRcdGxldCBsZWZ0ID0gd2luZG93LnNjcmVlbkxlZnQgKyB3aW5kb3cub3V0ZXJXaWR0aDtcblx0XHRpZiAobGVmdCArIHdpbmRvd1dpZHRoID4gd2luZG93LnNjcmVlbi5hdmFpbFdpZHRoKSB7XG5cdFx0XHRsZWZ0ID0gd2luZG93LnNjcmVlbi5hdmFpbFdpZHRoIC0gd2luZG93V2lkdGg7XG5cdFx0fVxuXHRcdGxldCB0aGVtZSA9IFRoZW1pbmcuZ2V0VGhlbWUoKTtcblx0XHR0aGVtZSA9IHRoaXMuX3Nhbml0aXplVGhlbWUodGhlbWUpO1xuXHRcdGNvbnN0IHVybCA9IHNhcC51aS5yZXF1aXJlLnRvVXJsKFwic2FwL2ZlL2NvbnRyb2xzL3Nob3J0Y3V0cy9wb3B1cC9pbmRleC5odG1sXCIpO1xuXHRcdGNvbnN0IGxvY2FsT3JpZ2luID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3Q7XG5cdFx0Ly8gV2UgcGFzcyB0aGUgdGhlbWUgYW5kIHRoZSBvcmlnaW4gdG8gdGhlIHBvcHVwIHNvIHRoYXQgaXQgY2FuIGNvbW11bmljYXRlIHNhZmVseSB3aXRoIHRoZSBwYXJlbnRcblx0XHRjb25zdCBwYXJhbXMgPSBcIj9zYXAtdWkteHgtc2hvcnRjdXQtb3JpZ2luPVwiICsgZW5jb2RlVVJMKGxvY2FsT3JpZ2luKSArIFwiJnNhcC11aS10aGVtZT1cIiArIHRoZW1lO1xuXHRcdGNvbnN0IG15V2luID0gd2luZG93Lm9wZW4oXG5cdFx0XHR1cmwgKyBwYXJhbXMsXG5cdFx0XHRcIl9ibGFua1wiLFxuXHRcdFx0YHBvcHVwLHRvb2xiYXI9bm8sbWVudWJhcj1ubyxzY3JvbGxiYXJzPW5vLGxvY2F0aW9uPW5vLHdpZHRoPSR7d2luZG93V2lkdGh9LGhlaWdodD01NTAsdG9wPSR7d2luZG93LnNjcmVlblRvcH0sbGVmdD0ke2xlZnR9YFxuXHRcdCk7XG5cdFx0aWYgKG15V2luKSB7XG5cdFx0XHRjb25zdCBoYW5kbGVNZXNzYWdlUmVjZWl2ZWQgPSAobWVzc2FnZUV2ZW50OiBNZXNzYWdlRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0aWYgKGxvY2FsT3JpZ2luID09PSBtZXNzYWdlRXZlbnQub3JpZ2luKSB7XG5cdFx0XHRcdFx0Y29uc3QgbWVzc2FnZURhdGEgPSBtZXNzYWdlRXZlbnQ/LmRhdGE7XG5cdFx0XHRcdFx0aWYgKG1lc3NhZ2VEYXRhLnNlcnZpY2UgPT09IFwic2FwLnVpLmludGVyYWN0aW9uLk1lc3NhZ2VQb3J0UmVhZHlcIikge1xuXHRcdFx0XHRcdFx0Y29uc3QgbWVzc2FnZVBvcnQgPSBtZXNzYWdlRXZlbnQucG9ydHNbMF07IC8vIFJlbWVtYmVyIHRoZSBwb3J0XG5cdFx0XHRcdFx0XHRteVdpbi5wb3N0TWVzc2FnZSh7IHNlcnZpY2U6IFwic2FwLnVpLmludGVyYWN0aW9uLk1lc3NhZ2VQb3J0UmVhZHlcIiB9LCB1cmwuc3RhcnRzV2l0aChcIi9cIikgPyBsb2NhbE9yaWdpbiA6IHVybCwgW1xuXHRcdFx0XHRcdFx0XHRtZXNzYWdlUG9ydFxuXHRcdFx0XHRcdFx0XSk7XG5cdFx0XHRcdFx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgaGFuZGxlTWVzc2FnZVJlY2VpdmVkKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHR0cnkge1xuXHRcdFx0XHRteVdpbi5vcGVuZXIgPSBudWxsO1xuXHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHQvLyBUaGlzIG1pZ2h0IGZhaWwgd2hlbiB0aGVyZSBpcyBDT1JTIGludm9sdmVkIGFueXdheSBhbmQgd2UgY2FuJ3QgYWNjZXNzIHRoZSBvcGVuZXIgYW55d2F5XG5cdFx0XHRcdExvZy5kZWJ1ZyhcIkNhbm5vdCBzZXQgb3BlbmVyIHRvIG51bGxcIiwgZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpKTtcblx0XHRcdH1cblxuXHRcdFx0c2V0VGltZW91dCgoKTogdm9pZCA9PiB7XG5cdFx0XHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCBoYW5kbGVNZXNzYWdlUmVjZWl2ZWQpO1xuXHRcdFx0XHR3aW5kb3cucG9zdE1lc3NhZ2UoXG5cdFx0XHRcdFx0eyBpZDogXCJzYXAuZmUuaW50ZXJhY3Rpb24uUG9wdXBcIiArIHRoaXMuX3BvcHVwSWR4KyssIHNlcnZpY2U6IFwic2FwLnVpLmludGVyYWN0aW9uLlJlcXVlc3RNZXNzYWdlUG9ydFwiIH0sXG5cdFx0XHRcdFx0bG9jYWxPcmlnaW5cblx0XHRcdFx0KTtcblx0XHRcdH0sIDE1MDApOyAvLyBnaXZlIGEgYml0IG9mIHRpbWUgZm9yIHRoZSBwb3B1cCB0byBiZSByZWFkeVxuXHRcdFx0Ly8gV2UgY2FuJ3QgcmVseSBvbiB0aGUgb25sb2FkIG9mIHRoZSBwb3B1cCBiZWNhdXNlIGl0IGlzIG5vdCBhbHdheXMgYXZhaWxibGUgaW4gQ09SUyBzY2VuYXJpb3Ncblx0XHRcdHdpbmRvdy5vbnVubG9hZCA9IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0bXlXaW4uY2xvc2UoKTtcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFNhbml0aXplcyB0aGUgdGhlbWUgbmFtZSB0byBlbnN1cmUgaXQgc3RhcnRzIHdpdGggXCJzYXAtXCIuXG5cdCAqIElmIHRoZSB0aGVtZSBkb2VzIG5vdCBzdGFydCB3aXRoIFwic2FwLVwiLCBpdCB0cmllcyB0byBnZXQgdGhlIHRoZW1lIGZyb20gdGhlIGNvbXB1dGVkIHN0eWxlcy5cblx0ICogSWYgaXQgc3RpbGwgZG9lcyBub3QgZmluZCBhIHZhbGlkIHRoZW1lLCBpdCBkZWZhdWx0cyB0byBcInNhcF9ob3Jpem9uXCIuXG5cdCAqIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgdGhlIHBvcHVwIGFsd2F5cyB1c2VzIGEgdmFsaWQgdGhlbWUuXG5cdCAqIEBwYXJhbSB0aGVtZSBUaGUgdGhlbWUgbmFtZSB0byBzYW5pdGl6ZVxuXHQgKiBAcmV0dXJucyBUaGUgc2FuaXRpemVkIHRoZW1lIG5hbWVcblx0ICogQHByaXZhdGVcblx0ICovXG5cdHByaXZhdGUgX3Nhbml0aXplVGhlbWUodGhlbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKCF0aGVtZS5zdGFydHNXaXRoKFwic2FwX1wiKSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29uc3QgY29tcHV0ZWRTdHlsZXMgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7XG5cdFx0XHRcdHRoZW1lID0gY29tcHV0ZWRTdHlsZXMuZ2V0UHJvcGVydHlWYWx1ZShcIi0tc2FwU2FwVGhlbWVJZFwiKTtcblx0XHRcdFx0aWYgKCF0aGVtZSkge1xuXHRcdFx0XHRcdGNvbnN0IHRoZW1lTWV0YWRhdGEgPSBjb21wdXRlZFN0eWxlcy5nZXRQcm9wZXJ0eVZhbHVlKFwiLS1zYXBUaGVtZU1ldGFEYXRhLVVJNS1zYXAtdWktY29yZVwiKTtcblx0XHRcdFx0XHRpZiAodGhlbWVNZXRhZGF0YSkge1xuXHRcdFx0XHRcdFx0Y29uc3QgdGhlbWVNYXRjaCA9IEpTT04ucGFyc2UodGhlbWVNZXRhZGF0YSk7XG5cdFx0XHRcdFx0XHRpZiAodGhlbWVNYXRjaCAmJiB0aGVtZU1hdGNoLkV4dGVuZHMgJiYgdGhlbWVNYXRjaC5FeHRlbmRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdFx0dGhlbWUgPSB0aGVtZU1hdGNoLkV4dGVuZHNbMF07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdExvZy5pbmZvKFwiQ2Fubm90IGdldCB0aGVtZSBmcm9tIGNvbXB1dGVkIHN0eWxlc1wiLCBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSkpO1xuXHRcdFx0XHR0aGVtZSA9IFwic2FwX2hvcml6b25cIjtcblx0XHRcdH1cblx0XHRcdGlmICghdGhlbWUgfHwgIXRoZW1lLnN0YXJ0c1dpdGgoXCJzYXBfXCIpKSB7XG5cdFx0XHRcdC8vIEZpbmFsIGZhbGxiYWNrIHRvIHNhcF9ob3Jpem9uXG5cdFx0XHRcdHRoZW1lID0gXCJzYXBfaG9yaXpvblwiO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gdGhlbWU7XG5cdH1cblxuXHRzdGF0aWMgaW5zdGFuY2VQcm9taXNlOiBQcm9taXNlPFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlciB8IHVuZGVmaW5lZD47XG5cblx0c3RhdGljIGluc3RhbmNlOiBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgfCB1bmRlZmluZWQ7XG5cblx0c3RhdGljIGlzRGlhbG9nQWRkZWQgPSBmYWxzZTtcblxuXHQvLyBLZWVwIHJlZmVyZW5jZSB0byB0aGUgY3JlYXRlZCB1c2VyIGFjdGlvbiBzbyB3ZSBjYW4gY2xlYW4gaXQgdXAgb24gaWZyYW1lIHJlbG9hZCB0byBhdm9pZCBkdXBsaWNhdGVcblx0c3RhdGljIF91c2VyQWN0aW9uOiBJdGVtO1xuXG5cdHN0YXRpYyBfY2xlYW51cEF0dGFjaGVkID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgb3IgcmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlci5cblx0ICogVGhpcyBpcyBhIHNpbmdsZXRvbiB0byBlbnN1cmUgd2Ugb25seSBoYXZlIG9uZSBpbnN0YW5jZSBvZiB0aGUgZGlhbG9nLlxuXHQgKiBAcmV0dXJucyBUaGUgaW5zdGFuY2Ugb2YgdGhlIFNob3J0Y3V0RXhwbGFuYXRpb25Qcm92aWRlclxuXHQgKi9cblx0c3RhdGljIGFzeW5jIGdldEluc3RhbmNlKCk6IFByb21pc2U8U2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIHwgdW5kZWZpbmVkPiB7XG5cdFx0Ly8gVGVzdCB0aGUgc2hlbGwgZXhpc3RlbmNlIGFuZCByZWdpc3RlciB0aGUgZXh0ZW5zaW9uXG5cdFx0Y29uc3Qgc2hlbGxDb250YWluZXIgPSBzYXAudWkucmVxdWlyZShcInNhcC91c2hlbGwvQ29udGFpbmVyXCIpIGFzIENvbnRhaW5lciB8IHVuZGVmaW5lZDtcblx0XHRsZXQgcmVzb2x2ZUNyZWF0aW9uOiBGdW5jdGlvbiB8IHVuZGVmaW5lZDtcblx0XHR0cnkge1xuXHRcdFx0aWYgKHNoZWxsQ29udGFpbmVyICYmICF0aGlzLmluc3RhbmNlKSB7XG5cdFx0XHRcdHRoaXMuaW5zdGFuY2VQcm9taXNlID0gbmV3IFByb21pc2U8U2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyIHwgdW5kZWZpbmVkPigocmVzb2x2ZSkgPT4ge1xuXHRcdFx0XHRcdHJlc29sdmVDcmVhdGlvbiA9IHJlc29sdmU7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRjb25zdCBhcHBMaWZlQ3ljbGUgPSAoYXdhaXQgc2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiQXBwTGlmZUN5Y2xlXCIpKSBhcyBBcHBMaWZlQ3ljbGUgfCB1bmRlZmluZWQ7XG5cdFx0XHRcdGNvbnN0IGV4dGVuc2lvblNlcnZpY2UgPSAoYXdhaXQgc2hlbGxDb250YWluZXIuZ2V0U2VydmljZUFzeW5jKFwiRXh0ZW5zaW9uXCIpKSBhcyBFeHRlbnNpb24gfCB1bmRlZmluZWQ7XG5cdFx0XHRcdGlmIChleHRlbnNpb25TZXJ2aWNlKSB7XG5cdFx0XHRcdFx0YXBwTGlmZUN5Y2xlPy5hdHRhY2hBcHBMb2FkZWQoXG5cdFx0XHRcdFx0XHR7fSxcblx0XHRcdFx0XHRcdGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc2hlbGxIaXN0b3J5UHJvdmlkZXIgPSBhd2FpdCBTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIucmVnaXN0ZXJVc2VyQWN0aW9uKGV4dGVuc2lvblNlcnZpY2UpO1xuXHRcdFx0XHRcdFx0XHR0aGlzLmluc3RhbmNlID0gc2hlbGxIaXN0b3J5UHJvdmlkZXI7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmVDcmVhdGlvbiEoc2hlbGxIaXN0b3J5UHJvdmlkZXIpO1xuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHRoaXNcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0TG9nLmVycm9yKFwiQ2Fubm90IHJlZ2lzdGVyIGV4dGVuc2lvblwiLCBlIGluc3RhbmNlb2YgRXJyb3IgPyBlLm1lc3NhZ2UgOiBTdHJpbmcoZSkpO1xuXHRcdFx0cmVzb2x2ZUNyZWF0aW9uPy4odW5kZWZpbmVkKTtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuaW5zdGFuY2VQcm9taXNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgdGhlIHVzZXIgYWN0aW9uIHRvIHRoZSBzaGVsbCwgdGhlIGFjdGlvbiB3aWxsIG9wZW4gdGhlIGRpYWxvZyB3aXRoIHRoZSBzaG9ydGN1dHMuXG5cdCAqIEBwYXJhbSBzaGVsbEV4dGVuc2lvblNlcnZpY2UgVGhlIGV4dGVuc2lvbiBzZXJ2aWNlIHRvIGFkZCB0aGUgdXNlciBhY3Rpb24gdG8gdGhlIHNoZWxsXG5cdCAqIEByZXR1cm5zIFRoZSBkaWFsb2cgd2l0aCB0aGUgc2hvcnRjdXRzXG5cdCAqL1xuXHRzdGF0aWMgYXN5bmMgcmVnaXN0ZXJVc2VyQWN0aW9uKHNoZWxsRXh0ZW5zaW9uU2VydmljZTogRXh0ZW5zaW9uKTogUHJvbWlzZTxTaG9ydGN1dEV4cGxhbmF0aW9uUHJvdmlkZXIgfCB1bmRlZmluZWQ+IHtcblx0XHR0cnkge1xuXHRcdFx0Y29uc3QgcmVzb3VyY2VCdW5kbGUgPSBMaWIuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29udHJvbHNcIikhO1xuXG5cdFx0XHRjb25zdCBzaGVsbEhpc3RvcnlEaWFsb2cgPSBuZXcgU2hvcnRjdXRFeHBsYW5hdGlvblByb3ZpZGVyKCk7XG5cdFx0XHRjb25zdCB1c2VyQWN0aW9uID0gYXdhaXQgc2hlbGxFeHRlbnNpb25TZXJ2aWNlLmNyZWF0ZVVzZXJBY3Rpb24oXG5cdFx0XHRcdHtcblx0XHRcdFx0XHR0ZXh0OiByZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiQ19TSE9SVENVVF9USVRMRVwiKSxcblx0XHRcdFx0XHRpY29uOiBJY29uUG9vbC5nZXRJY29uVVJJKFwia2V5Ym9hcmQtYW5kLW1vdXNlXCIpLFxuXHRcdFx0XHRcdHByZXNzOiAoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRzaGVsbEhpc3RvcnlEaWFsb2cuZ2V0U2hlbGxEaWFsb2dDb250ZW50KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Y29udHJvbFR5cGU6IFwic2FwLm0uQnV0dG9uXCJcblx0XHRcdFx0fVxuXHRcdFx0KTtcblx0XHRcdC8vIFN0b3JlIHJlZmVyZW5jZSBmb3IgY2xlYW51cCB3aGVuIHRoZSBpZnJhbWUgaXMgcmVsb2FkZWQvdW5sb2FkZWRcblx0XHRcdHRoaXMuX3VzZXJBY3Rpb24gPSB1c2VyQWN0aW9uO1xuXG5cdFx0XHRpZiAoIXRoaXMuX2NsZWFudXBBdHRhY2hlZCkge1xuXHRcdFx0XHR0aGlzLl9jbGVhbnVwQXR0YWNoZWQgPSB0cnVlO1xuXHRcdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBhZ2VoaWRlXCIsICgpID0+IHtcblx0XHRcdFx0XHR0aGlzLl91c2VyQWN0aW9uLmRlc3Ryb3koKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdHVzZXJBY3Rpb24uc2hvd0ZvckN1cnJlbnRBcHAoKTtcblx0XHRcdHJldHVybiBzaGVsbEhpc3RvcnlEaWFsb2c7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgYWRkIHVzZXIgYWN0aW9uXCIsIGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKSk7XG5cdFx0fVxuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztFQVlBO0FBQ0E7QUFDQTtBQUNBO0VBSEEsSUFLcUJBLDJCQUEyQixJQUFBQyxJQUFBLEdBRC9DQyxjQUFjLENBQUMsdURBQXVELENBQUMsRUFBQUQsSUFBQSxDQUFBRSxNQUFBLElBQUFDLDRCQUFBLDBCQUFBQyxjQUFBO0lBQUEsU0FBQUwsNEJBQUE7TUFBQSxJQUFBTSxLQUFBO01BQUEsU0FBQUMsSUFBQSxHQUFBQyxTQUFB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
@@ -6,7 +6,9 @@ import IconPool from "sap/ui/core/IconPool";
6
6
  import Lib from "sap/ui/core/Lib";
7
7
  import Theming from "sap/ui/core/Theming";
8
8
  import type Container from "sap/ushell/Container";
9
+ import type AppLifeCycle from "sap/ushell/services/AppLifeCycle";
9
10
  import type Extension from "sap/ushell/services/Extension";
11
+ import type Item from "sap/ushell/services/Extension/Item";
10
12
 
11
13
  /**
12
14
  * Provides a dialog to explain the shortcuts to the user.
@@ -109,6 +111,11 @@ export default class ShortcutExplanationProvider extends ManagedObject {
109
111
 
110
112
  static isDialogAdded = false;
111
113
 
114
+ // Keep reference to the created user action so we can clean it up on iframe reload to avoid duplicate
115
+ static _userAction: Item;
116
+
117
+ static _cleanupAttached = false;
118
+
112
119
  /**
113
120
  * Creates or returns the instance of the ShortcutExplanationProvider.
114
121
  * This is a singleton to ensure we only have one instance of the dialog.
@@ -123,11 +130,18 @@ export default class ShortcutExplanationProvider extends ManagedObject {
123
130
  this.instancePromise = new Promise<ShortcutExplanationProvider | undefined>((resolve) => {
124
131
  resolveCreation = resolve;
125
132
  });
133
+ const appLifeCycle = (await shellContainer.getServiceAsync("AppLifeCycle")) as AppLifeCycle | undefined;
126
134
  const extensionService = (await shellContainer.getServiceAsync("Extension")) as Extension | undefined;
127
135
  if (extensionService) {
128
- const shellHistoryProvider = await ShortcutExplanationProvider.registerUserAction(extensionService);
129
- this.instance = shellHistoryProvider;
130
- resolveCreation!(shellHistoryProvider);
136
+ appLifeCycle?.attachAppLoaded(
137
+ {},
138
+ async (): Promise<void> => {
139
+ const shellHistoryProvider = await ShortcutExplanationProvider.registerUserAction(extensionService);
140
+ this.instance = shellHistoryProvider;
141
+ resolveCreation!(shellHistoryProvider);
142
+ },
143
+ this
144
+ );
131
145
  }
132
146
  }
133
147
  } catch (e) {
@@ -147,22 +161,29 @@ export default class ShortcutExplanationProvider extends ManagedObject {
147
161
  const resourceBundle = Lib.getResourceBundleFor("sap.fe.controls")!;
148
162
 
149
163
  const shellHistoryDialog = new ShortcutExplanationProvider();
150
- if (!this.isDialogAdded) {
151
- this.isDialogAdded = true;
152
- const userAction = await shellExtensionService.createUserAction(
153
- {
154
- text: resourceBundle.getText("C_SHORTCUT_TITLE"),
155
- icon: IconPool.getIconURI("keyboard-and-mouse"),
156
- press: (): void => {
157
- shellHistoryDialog.getShellDialogContent();
158
- }
159
- },
160
- {
161
- controlType: "sap.m.Button"
164
+ const userAction = await shellExtensionService.createUserAction(
165
+ {
166
+ text: resourceBundle.getText("C_SHORTCUT_TITLE"),
167
+ icon: IconPool.getIconURI("keyboard-and-mouse"),
168
+ press: (): void => {
169
+ shellHistoryDialog.getShellDialogContent();
162
170
  }
163
- );
164
- userAction.showForAllApps();
171
+ },
172
+ {
173
+ controlType: "sap.m.Button"
174
+ }
175
+ );
176
+ // Store reference for cleanup when the iframe is reloaded/unloaded
177
+ this._userAction = userAction;
178
+
179
+ if (!this._cleanupAttached) {
180
+ this._cleanupAttached = true;
181
+ window.addEventListener("pagehide", () => {
182
+ this._userAction.destroy();
183
+ });
165
184
  }
185
+
186
+ userAction.showForCurrentApp();
166
187
  return shellHistoryDialog;
167
188
  } catch (err) {
168
189
  Log.error("Cannot add user action", err instanceof Error ? err.message : String(err));
@@ -1,90 +0,0 @@
1
- /*!
2
- * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
- */
5
- sap.ui.define(["sap/m/Button", "sap/m/Link", "sap/m/OverflowToolbar", "sap/m/Popover", "sap/m/Text", "sap/m/ToolbarSpacer", "sap/m/VBox", "sap/m/library", "sap/ui/core/Lib", "sap/fe/base/jsx-runtime/jsx", "sap/fe/base/jsx-runtime/jsxs", "sap/fe/base/jsx-runtime/Fragment"], function (Button, Link, OverflowToolbar, Popover, Text, ToolbarSpacer, VBox, library, Lib, _jsx, _jsxs, _Fragment) {
6
- "use strict";
7
-
8
- var _exports = {};
9
- var PlacementType = library.PlacementType;
10
- var ButtonType = library.ButtonType;
11
- const resourceBundle = Lib.getResourceBundleFor("sap.fe.controls");
12
-
13
- /**
14
- * @param titleText The title of the AI notice popover
15
- * @returns A Popover component containing the AI notice text and a close button
16
- */
17
-
18
- function AIPopoverContent() {
19
- const $aiNoticePopover = _jsx(Popover, {
20
- contentWidth: "22.8125rem",
21
- showArrow: true,
22
- showHeader: true,
23
- placement: PlacementType.Auto,
24
- title: resourceBundle.getText("M_EASY_FILTER_POPOVER_AI_TITLE"),
25
- children: {
26
- content: _jsxs(VBox, {
27
- children: [_jsx(Text, {
28
- class: "sapFeControlsAiPopoverText1",
29
- text: resourceBundle.getText("M_EASY_FILTER_POPOVER_AI_TEXT_1")
30
- }), _jsx(Text, {
31
- class: "sapFeControlsAiPopoverText2",
32
- text: resourceBundle.getText("M_EASY_FILTER_POPOVER_AI_TEXT_2")
33
- })]
34
- }),
35
- footer: _jsx(OverflowToolbar, {
36
- children: {
37
- content: _jsxs(_Fragment, {
38
- children: [_jsx(ToolbarSpacer, {}), _jsx(Button, {
39
- text: resourceBundle.getText("M_EASY_FILTER_POPOVER_CLOSE"),
40
- press: () => {
41
- $aiNoticePopover?.close();
42
- }
43
- })]
44
- })
45
- }
46
- })
47
- }
48
- });
49
- return $aiNoticePopover;
50
- }
51
-
52
- /**
53
- * Tiny component to display a link that opens a popover with the AI notice.
54
- * @param props
55
- * @param props.resourceBundle
56
- * @returns The AI Notice component
57
- */
58
- _exports.AIPopoverContent = AIPopoverContent;
59
- function AINotice(props) {
60
- return _jsx(Button, {
61
- text: props.resourceBundle.getText("M_EASY_FILTER_FILTER_SET_AI"),
62
- icon: "sap-icon://ai",
63
- type: ButtonType.Transparent,
64
- press: e => {
65
- const $disclaimerPopover = AIPopoverContent();
66
- $disclaimerPopover.openBy(e.getSource());
67
- }
68
- });
69
- }
70
-
71
- /**
72
- * @param title The title of the AI notice popover
73
- * @param description The description text of the AI notice popover
74
- * @param text The text of the button in the AI notice popover
75
- * @returns The AI Notice link component that opens a popover with the AI notice
76
- */
77
- _exports.AINotice = AINotice;
78
- function AILinkNotice() {
79
- return _jsx(Link, {
80
- text: `${resourceBundle.getText("M_EASY_FILTER_POPOVER_AI_TITLE")}.`,
81
- press: e => {
82
- const $aiNoticePopover = AIPopoverContent();
83
- $aiNoticePopover.openBy(e.getSource());
84
- }
85
- });
86
- }
87
- _exports.AILinkNotice = AILinkNotice;
88
- return _exports;
89
- }, false);
90
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZXNvdXJjZUJ1bmRsZSIsIkxpYiIsImdldFJlc291cmNlQnVuZGxlRm9yIiwiQUlQb3BvdmVyQ29udGVudCIsIiRhaU5vdGljZVBvcG92ZXIiLCJfanN4IiwiUG9wb3ZlciIsImNvbnRlbnRXaWR0aCIsInNob3dBcnJvdyIsInNob3dIZWFkZXIiLCJwbGFjZW1lbnQiLCJQbGFjZW1lbnRUeXBlIiwiQXV0byIsInRpdGxlIiwiZ2V0VGV4dCIsImNoaWxkcmVuIiwiY29udGVudCIsIl9qc3hzIiwiVkJveCIsIlRleHQiLCJjbGFzcyIsInRleHQiLCJmb290ZXIiLCJPdmVyZmxvd1Rvb2xiYXIiLCJfRnJhZ21lbnQiLCJUb29sYmFyU3BhY2VyIiwiQnV0dG9uIiwicHJlc3MiLCJjbG9zZSIsIl9leHBvcnRzIiwiQUlOb3RpY2UiLCJwcm9wcyIsImljb24iLCJ0eXBlIiwiQnV0dG9uVHlwZSIsIlRyYW5zcGFyZW50IiwiZSIsIiRkaXNjbGFpbWVyUG9wb3ZlciIsIm9wZW5CeSIsImdldFNvdXJjZSIsIkFJTGlua05vdGljZSIsIkxpbmsiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkFJTm90aWNlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuaW1wb3J0IHR5cGUgeyBCdXR0b24kUHJlc3NFdmVudCB9IGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBMaW5rJFByZXNzRXZlbnQgfSBmcm9tIFwic2FwL20vTGlua1wiO1xuaW1wb3J0IExpbmsgZnJvbSBcInNhcC9tL0xpbmtcIjtcbmltcG9ydCBPdmVyZmxvd1Rvb2xiYXIgZnJvbSBcInNhcC9tL092ZXJmbG93VG9vbGJhclwiO1xuaW1wb3J0IFBvcG92ZXIgZnJvbSBcInNhcC9tL1BvcG92ZXJcIjtcbmltcG9ydCBUZXh0IGZyb20gXCJzYXAvbS9UZXh0XCI7XG5pbXBvcnQgVG9vbGJhclNwYWNlciBmcm9tIFwic2FwL20vVG9vbGJhclNwYWNlclwiO1xuaW1wb3J0IFZCb3ggZnJvbSBcInNhcC9tL1ZCb3hcIjtcbmltcG9ydCB7IEJ1dHRvblR5cGUsIFBsYWNlbWVudFR5cGUgfSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IExpYiBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5cbmNvbnN0IHJlc291cmNlQnVuZGxlID0gTGliLmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvbnRyb2xzXCIpITtcblxuLyoqXG4gKiBAcGFyYW0gdGl0bGVUZXh0IFRoZSB0aXRsZSBvZiB0aGUgQUkgbm90aWNlIHBvcG92ZXJcbiAqIEByZXR1cm5zIEEgUG9wb3ZlciBjb21wb25lbnQgY29udGFpbmluZyB0aGUgQUkgbm90aWNlIHRleHQgYW5kIGEgY2xvc2UgYnV0dG9uXG4gKi9cblxuZnVuY3Rpb24gQUlQb3BvdmVyQ29udGVudCgpOiBQb3BvdmVyIHtcblx0Y29uc3QgJGFpTm90aWNlUG9wb3ZlcjogUG9wb3ZlciA9IChcblx0XHQ8UG9wb3ZlclxuXHRcdFx0Y29udGVudFdpZHRoPXtcIjIyLjgxMjVyZW1cIn1cblx0XHRcdHNob3dBcnJvdz17dHJ1ZX1cblx0XHRcdHNob3dIZWFkZXI9e3RydWV9XG5cdFx0XHRwbGFjZW1lbnQ9e1BsYWNlbWVudFR5cGUuQXV0b31cblx0XHRcdHRpdGxlPXtyZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9QT1BPVkVSX0FJX1RJVExFXCIpfVxuXHRcdD5cblx0XHRcdHt7XG5cdFx0XHRcdGNvbnRlbnQ6IChcblx0XHRcdFx0XHQ8VkJveD5cblx0XHRcdFx0XHRcdDxUZXh0IGNsYXNzPVwic2FwRmVDb250cm9sc0FpUG9wb3ZlclRleHQxXCIgdGV4dD17cmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fRUFTWV9GSUxURVJfUE9QT1ZFUl9BSV9URVhUXzFcIil9IC8+XG5cdFx0XHRcdFx0XHQ8VGV4dCBjbGFzcz1cInNhcEZlQ29udHJvbHNBaVBvcG92ZXJUZXh0MlwiIHRleHQ9e3Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX1BPUE9WRVJfQUlfVEVYVF8yXCIpfSAvPlxuXHRcdFx0XHRcdDwvVkJveD5cblx0XHRcdFx0KSxcblx0XHRcdFx0Zm9vdGVyOiAoXG5cdFx0XHRcdFx0PE92ZXJmbG93VG9vbGJhcj5cblx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IChcblx0XHRcdFx0XHRcdFx0XHQ8PlxuXHRcdFx0XHRcdFx0XHRcdFx0PFRvb2xiYXJTcGFjZXIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dD17cmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fRUFTWV9GSUxURVJfUE9QT1ZFUl9DTE9TRVwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0cHJlc3M9eygpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQkYWlOb3RpY2VQb3BvdmVyPy5jbG9zZSgpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0XHQ8Lz5cblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ8L092ZXJmbG93VG9vbGJhcj5cblx0XHRcdFx0KVxuXHRcdFx0fX1cblx0XHQ8L1BvcG92ZXI+XG5cdCk7XG5cblx0cmV0dXJuICRhaU5vdGljZVBvcG92ZXI7XG59XG5cbi8qKlxuICogVGlueSBjb21wb25lbnQgdG8gZGlzcGxheSBhIGxpbmsgdGhhdCBvcGVucyBhIHBvcG92ZXIgd2l0aCB0aGUgQUkgbm90aWNlLlxuICogQHBhcmFtIHByb3BzXG4gKiBAcGFyYW0gcHJvcHMucmVzb3VyY2VCdW5kbGVcbiAqIEByZXR1cm5zIFRoZSBBSSBOb3RpY2UgY29tcG9uZW50XG4gKi9cblxuZnVuY3Rpb24gQUlOb3RpY2UocHJvcHM6IHsgcmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlIH0pOiBMaW5rIHtcblx0cmV0dXJuIChcblx0XHQ8QnV0dG9uXG5cdFx0XHR0ZXh0PXtwcm9wcy5yZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9FQVNZX0ZJTFRFUl9GSUxURVJfU0VUX0FJXCIpfVxuXHRcdFx0aWNvbj1cInNhcC1pY29uOi8vYWlcIlxuXHRcdFx0dHlwZT17QnV0dG9uVHlwZS5UcmFuc3BhcmVudH1cblx0XHRcdHByZXNzPXsoZTogQnV0dG9uJFByZXNzRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0Y29uc3QgJGRpc2NsYWltZXJQb3BvdmVyOiBQb3BvdmVyID0gQUlQb3BvdmVyQ29udGVudCgpO1xuXHRcdFx0XHQkZGlzY2xhaW1lclBvcG92ZXIub3BlbkJ5KGUuZ2V0U291cmNlKCkpO1xuXHRcdFx0fX1cblx0XHQvPlxuXHQpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB0aXRsZSBUaGUgdGl0bGUgb2YgdGhlIEFJIG5vdGljZSBwb3BvdmVyXG4gKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uIHRleHQgb2YgdGhlIEFJIG5vdGljZSBwb3BvdmVyXG4gKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCBvZiB0aGUgYnV0dG9uIGluIHRoZSBBSSBub3RpY2UgcG9wb3ZlclxuICogQHJldHVybnMgVGhlIEFJIE5vdGljZSBsaW5rIGNvbXBvbmVudCB0aGF0IG9wZW5zIGEgcG9wb3ZlciB3aXRoIHRoZSBBSSBub3RpY2VcbiAqL1xuXG5mdW5jdGlvbiBBSUxpbmtOb3RpY2UoKTogTGluayB7XG5cdHJldHVybiAoXG5cdFx0PExpbmtcblx0XHRcdHRleHQ9e2Ake3Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX0VBU1lfRklMVEVSX1BPUE9WRVJfQUlfVElUTEVcIil9LmB9XG5cdFx0XHRwcmVzcz17KGU6IExpbmskUHJlc3NFdmVudCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRjb25zdCAkYWlOb3RpY2VQb3BvdmVyID0gQUlQb3BvdmVyQ29udGVudCgpO1xuXHRcdFx0XHQkYWlOb3RpY2VQb3BvdmVyLm9wZW5CeShlLmdldFNvdXJjZSgpKTtcblx0XHRcdH19XG5cdFx0Lz5cblx0KTtcbn1cblxuZXhwb3J0IHsgQUlMaW5rTm90aWNlLCBBSU5vdGljZSwgQUlQb3BvdmVyQ29udGVudCB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0VBYUEsTUFBTUEsY0FBYyxHQUFHQyxHQUFHLENBQUNDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFFOztFQUVuRTtBQUNBO0FBQ0E7QUFDQTs7RUFFQSxTQUFTQyxnQkFBZ0JBLENBQUEsRUFBWTtJQUNwQyxNQUFNQyxnQkFBeUIsR0FDOUJDLElBQUEsQ0FBQ0MsT0FBTztNQUNQQyxZQUFZLEVBQUUsWUFBYTtNQUMzQkMsU0FBUyxFQUFFLElBQUs7TUFDaEJDLFVBQVUsRUFBRSxJQUFLO01BQ2pCQyxTQUFTLEVBQUVDLGFBQWEsQ0FBQ0MsSUFBSztNQUM5QkMsS0FBSyxFQUFFYixjQUFjLENBQUNjLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBRTtNQUFBQyxRQUFBLEVBRS9EO1FBQ0FDLE9BQU8sRUFDTkMsS0FBQSxDQUFDQyxJQUFJO1VBQUFILFFBQUEsR0FDSlYsSUFBQSxDQUFDYyxJQUFJO1lBQUNDLEtBQUssRUFBQyw2QkFBNkI7WUFBQ0MsSUFBSSxFQUFFckIsY0FBYyxDQUFDYyxPQUFPLENBQUMsaUNBQWlDO1VBQUUsQ0FBRSxDQUFDLEVBQzdHVCxJQUFBLENBQUNjLElBQUk7WUFBQ0MsS0FBSyxFQUFDLDZCQUE2QjtZQUFDQyxJQUFJLEVBQUVyQixjQUFjLENBQUNjLE9BQU8sQ0FBQyxpQ0FBaUM7VUFBRSxDQUFFLENBQUM7UUFBQSxDQUN4RyxDQUNOO1FBQ0RRLE1BQU0sRUFDTGpCLElBQUEsQ0FBQ2tCLGVBQWU7VUFBQVIsUUFBQSxFQUNkO1lBQ0FDLE9BQU8sRUFDTkMsS0FBQSxDQUFBTyxTQUFBO2NBQUFULFFBQUEsR0FDQ1YsSUFBQSxDQUFDb0IsYUFBYSxJQUFFLENBQUMsRUFDakJwQixJQUFBLENBQUNxQixNQUFNO2dCQUNOTCxJQUFJLEVBQUVyQixjQUFjLENBQUNjLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBRTtnQkFDNURhLEtBQUssRUFBRUEsQ0FBQSxLQUFZO2tCQUNsQnZCLGdCQUFnQixFQUFFd0IsS0FBSyxDQUFDLENBQUM7Z0JBQzFCO2NBQUUsQ0FDRixDQUFDO1lBQUEsQ0FDRDtVQUVKO1FBQUMsQ0FDZTtNQUVuQjtJQUFDLENBQ08sQ0FDVDtJQUVELE9BQU94QixnQkFBZ0I7RUFDeEI7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEF5QixRQUFBLENBQUExQixnQkFBQSxHQUFBQSxnQkFBQTtFQU9BLFNBQVMyQixRQUFRQSxDQUFDQyxLQUF5QyxFQUFRO0lBQ2xFLE9BQ0MxQixJQUFBLENBQUNxQixNQUFNO01BQ05MLElBQUksRUFBRVUsS0FBSyxDQUFDL0IsY0FBYyxDQUFDYyxPQUFPLENBQUMsNkJBQTZCLENBQUU7TUFDbEVrQixJQUFJLEVBQUMsZUFBZTtNQUNwQkMsSUFBSSxFQUFFQyxVQUFVLENBQUNDLFdBQVk7TUFDN0JSLEtBQUssRUFBR1MsQ0FBb0IsSUFBVztRQUN0QyxNQUFNQyxrQkFBMkIsR0FBR2xDLGdCQUFnQixDQUFDLENBQUM7UUFDdERrQyxrQkFBa0IsQ0FBQ0MsTUFBTSxDQUFDRixDQUFDLENBQUNHLFNBQVMsQ0FBQyxDQUFDLENBQUM7TUFDekM7SUFBRSxDQUNGLENBQUM7RUFFSjs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQVYsUUFBQSxDQUFBQyxRQUFBLEdBQUFBLFFBQUE7RUFPQSxTQUFTVSxZQUFZQSxDQUFBLEVBQVM7SUFDN0IsT0FDQ25DLElBQUEsQ0FBQ29DLElBQUk7TUFDSnBCLElBQUksRUFBRSxHQUFHckIsY0FBYyxDQUFDYyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsR0FBSTtNQUNyRWEsS0FBSyxFQUFHUyxDQUFrQixJQUFXO1FBQ3BDLE1BQU1oQyxnQkFBZ0IsR0FBR0QsZ0JBQWdCLENBQUMsQ0FBQztRQUMzQ0MsZ0JBQWdCLENBQUNrQyxNQUFNLENBQUNGLENBQUMsQ0FBQ0csU0FBUyxDQUFDLENBQUMsQ0FBQztNQUN2QztJQUFFLENBQ0YsQ0FBQztFQUVKO0VBQUNWLFFBQUEsQ0FBQVcsWUFBQSxHQUFBQSxZQUFBO0VBQUEsT0FBQVgsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
@@ -1,101 +0,0 @@
1
- import type ResourceBundle from "sap/base/i18n/ResourceBundle";
2
- import type { Button$PressEvent } from "sap/m/Button";
3
- import Button from "sap/m/Button";
4
- import type { Link$PressEvent } from "sap/m/Link";
5
- import Link from "sap/m/Link";
6
- import OverflowToolbar from "sap/m/OverflowToolbar";
7
- import Popover from "sap/m/Popover";
8
- import Text from "sap/m/Text";
9
- import ToolbarSpacer from "sap/m/ToolbarSpacer";
10
- import VBox from "sap/m/VBox";
11
- import { ButtonType, PlacementType } from "sap/m/library";
12
- import Lib from "sap/ui/core/Lib";
13
-
14
- const resourceBundle = Lib.getResourceBundleFor("sap.fe.controls")!;
15
-
16
- /**
17
- * @param titleText The title of the AI notice popover
18
- * @returns A Popover component containing the AI notice text and a close button
19
- */
20
-
21
- function AIPopoverContent(): Popover {
22
- const $aiNoticePopover: Popover = (
23
- <Popover
24
- contentWidth={"22.8125rem"}
25
- showArrow={true}
26
- showHeader={true}
27
- placement={PlacementType.Auto}
28
- title={resourceBundle.getText("M_EASY_FILTER_POPOVER_AI_TITLE")}
29
- >
30
- {{
31
- content: (
32
- <VBox>
33
- <Text class="sapFeControlsAiPopoverText1" text={resourceBundle.getText("M_EASY_FILTER_POPOVER_AI_TEXT_1")} />
34
- <Text class="sapFeControlsAiPopoverText2" text={resourceBundle.getText("M_EASY_FILTER_POPOVER_AI_TEXT_2")} />
35
- </VBox>
36
- ),
37
- footer: (
38
- <OverflowToolbar>
39
- {{
40
- content: (
41
- <>
42
- <ToolbarSpacer />
43
- <Button
44
- text={resourceBundle.getText("M_EASY_FILTER_POPOVER_CLOSE")}
45
- press={(): void => {
46
- $aiNoticePopover?.close();
47
- }}
48
- />
49
- </>
50
- )
51
- }}
52
- </OverflowToolbar>
53
- )
54
- }}
55
- </Popover>
56
- );
57
-
58
- return $aiNoticePopover;
59
- }
60
-
61
- /**
62
- * Tiny component to display a link that opens a popover with the AI notice.
63
- * @param props
64
- * @param props.resourceBundle
65
- * @returns The AI Notice component
66
- */
67
-
68
- function AINotice(props: { resourceBundle: ResourceBundle }): Link {
69
- return (
70
- <Button
71
- text={props.resourceBundle.getText("M_EASY_FILTER_FILTER_SET_AI")}
72
- icon="sap-icon://ai"
73
- type={ButtonType.Transparent}
74
- press={(e: Button$PressEvent): void => {
75
- const $disclaimerPopover: Popover = AIPopoverContent();
76
- $disclaimerPopover.openBy(e.getSource());
77
- }}
78
- />
79
- );
80
- }
81
-
82
- /**
83
- * @param title The title of the AI notice popover
84
- * @param description The description text of the AI notice popover
85
- * @param text The text of the button in the AI notice popover
86
- * @returns The AI Notice link component that opens a popover with the AI notice
87
- */
88
-
89
- function AILinkNotice(): Link {
90
- return (
91
- <Link
92
- text={`${resourceBundle.getText("M_EASY_FILTER_POPOVER_AI_TITLE")}.`}
93
- press={(e: Link$PressEvent): void => {
94
- const $aiNoticePopover = AIPopoverContent();
95
- $aiNoticePopover.openBy(e.getSource());
96
- }}
97
- />
98
- );
99
- }
100
-
101
- export { AILinkNotice, AINotice, AIPopoverContent };