@sapui5/sap.fe.templates 1.148.1 → 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 (33) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
  4. package/src/sap/fe/templates/ListComponent.js +2 -5
  5. package/src/sap/fe/templates/ListReport/Component.js +2 -5
  6. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +84 -14
  7. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +88 -13
  8. package/src/sap/fe/templates/ListReport/LRMessageStrip.js +41 -1
  9. package/src/sap/fe/templates/ListReport/LRMessageStrip.ts +43 -0
  10. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +6 -9
  11. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +4 -7
  12. package/src/sap/fe/templates/ListReport/manifest.json +1 -1
  13. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +12 -6
  14. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +14 -6
  15. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +7 -1
  16. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +5 -0
  17. package/src/sap/fe/templates/ObjectPage/Component.js +12 -15
  18. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +15 -9
  19. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +7 -3
  20. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +35 -24
  21. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +20 -2
  22. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +5 -18
  23. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +2 -15
  24. package/src/sap/fe/templates/ObjectPage/components/CollaborationDraft.js +10 -3
  25. package/src/sap/fe/templates/ObjectPage/components/CollaborationDraft.tsx +12 -1
  26. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +2 -5
  27. package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +2 -5
  28. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +3 -6
  29. package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
  30. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +0 -4
  31. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +0 -1
  32. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +0 -1
  33. package/src/sap/fe/templates/library.js +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.templates",
3
- "version": "1.148.1",
3
+ "version": "1.149.0",
4
4
  "description": "SAPUI5 Library sap.fe.templates",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -6,7 +6,7 @@
6
6
  SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2026 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.148.1</version>
9
+ <version>1.149.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.templates</documentation>
12
12
 
@@ -4,7 +4,7 @@
4
4
  "id": "sap.fe.templates.AnalyticalListPage",
5
5
  "type": "component",
6
6
  "applicationVersion": {
7
- "version": "1.148.1"
7
+ "version": "1.149.0"
8
8
  },
9
9
  "title": "Analytical List Page",
10
10
  "tags": {
@@ -134,11 +134,8 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/TemplateComponent", "sap
134
134
  type: "boolean",
135
135
  defaultValue: false
136
136
  }), _dec(_class = (_class2 = /*#__PURE__*/function (_TemplateComponent) {
137
- function ListBasedComponent() {
137
+ function ListBasedComponent(...args) {
138
138
  var _this;
139
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
140
- args[_key] = arguments[_key];
141
- }
142
139
  _this = _TemplateComponent.call(this, ...args) || this;
143
140
  _initializerDefineProperty(_this, "initialLoad", _descriptor, _this);
144
141
  _initializerDefineProperty(_this, "variantManagement", _descriptor2, _this);
@@ -178,4 +175,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/TemplateComponent", "sap
178
175
  }), _class2)) || _class);
179
176
  return ListBasedComponent;
180
177
  }, false);
181
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYXJpYW50TWFuYWdlbWVudCIsIkNvcmVMaWJyYXJ5IiwiSW5pdGlhbExvYWRNb2RlIiwiTGlzdEJhc2VkQ29tcG9uZW50IiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwibWFuaWZlc3QiLCJfdmVyc2lvbiIsInRlY2hub2xvZ3kiLCJkZXZpY2VUeXBlcyIsImRlc2t0b3AiLCJ0YWJsZXQiLCJwaG9uZSIsInN1cHBvcnRlZFRoZW1lcyIsImkxOG4iLCJzZXJ2aWNlcyIsInRlbXBsYXRlZFZpZXdTZXJ2aWNlIiwiZmFjdG9yeU5hbWUiLCJzdGFydHVwIiwic2V0dGluZ3MiLCJ2aWV3TmFtZSIsImNvbnZlcnRlclR5cGUiLCJlcnJvclZpZXdOYW1lIiwiYXN5bmNDb21wb25lbnRTZXJ2aWNlIiwiY29tbWFuZHMiLCJDcmVhdGUiLCJuYW1lIiwic2hvcnRjdXQiLCJkZXNjcmlwdGlvbiIsIkRlbGV0ZUVudHJ5IiwiU2hhcmUiLCJGRV9GaWx0ZXJTZWFyY2giLCJDdXQiLCJDb3B5IiwiUGFzdGUiLCJUYWJsZU1vdmVFbGVtZW50VXAiLCJUYWJsZU1vdmVFbGVtZW50RG93biIsImhhbmRsZVZhbGlkYXRpb24iLCJkZXBlbmRlbmNpZXMiLCJtaW5VSTVWZXJzaW9uIiwibGlicyIsImxhenkiLCJjb250ZW50RGVuc2l0aWVzIiwiY29tcGFjdCIsImNvenkiLCJsaWJyYXJ5IiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJBdXRvIiwiX2RlYzMiLCJQYWdlIiwiX2RlYzQiLCJ1bmRlZmluZWQiLCJfZGVjNSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVGVtcGxhdGVDb21wb25lbnQiLCJfdGhpcyIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsImV4dGVuZFBhZ2VEZWZpbml0aW9uIiwicGFnZURlZmluaXRpb24iLCJleHRlbmRMaXN0UmVwb3J0UGFnZURlZmluaXRpb24iLCJfZ2V0Q29udHJvbGxlck5hbWUiLCJUZW1wbGF0ZUNvbXBvbmVudCIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTGlzdENvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IExpc3RSZXBvcnREZWZpbml0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvdGVtcGxhdGVzL0xpc3RSZXBvcnRDb252ZXJ0ZXJcIjtcbmltcG9ydCBDb3JlTGlicmFyeSBmcm9tIFwic2FwL2ZlL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgeyBGaW5hbFBhZ2VEZWZpbml0aW9uIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9FeHRlbmRQYWdlRGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgZXh0ZW5kTGlzdFJlcG9ydFBhZ2VEZWZpbml0aW9uIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9FeHRlbmRQYWdlRGVmaW5pdGlvblwiO1xuY29uc3QgVmFyaWFudE1hbmFnZW1lbnQgPSBDb3JlTGlicmFyeS5WYXJpYW50TWFuYWdlbWVudCxcblx0SW5pdGlhbExvYWRNb2RlID0gQ29yZUxpYnJhcnkuSW5pdGlhbExvYWRNb2RlO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RDb21wb25lbnRcIiwge1xuXHRtYW5pZmVzdDoge1xuXHRcdF92ZXJzaW9uOiBcIjIuMC4wXCIsXG5cdFx0XCJzYXAudWlcIjoge1xuXHRcdFx0dGVjaG5vbG9neTogXCJVSTVcIixcblx0XHRcdGRldmljZVR5cGVzOiB7XG5cdFx0XHRcdGRlc2t0b3A6IHRydWUsXG5cdFx0XHRcdHRhYmxldDogdHJ1ZSxcblx0XHRcdFx0cGhvbmU6IHRydWVcblx0XHRcdH0sXG5cdFx0XHRzdXBwb3J0ZWRUaGVtZXM6IFtcInNhcF9maW9yaV8zXCIsIFwic2FwX2hjYlwiLCBcInNhcF9ibHVlY3J5c3RhbFwiLCBcInNhcF9iZWxpemVcIiwgXCJzYXBfYmVsaXplX3BsdXNcIiwgXCJzYXBfYmVsaXplX2hjd1wiXVxuXHRcdH0sXG5cdFx0XCJzYXAuYXBwXCI6IHtcblx0XHRcdGkxOG46IFwibWVzc2FnZWJ1bmRsZS5wcm9wZXJ0aWVzXCJcblx0XHR9LFxuXHRcdFwic2FwLnVpNVwiOiB7XG5cdFx0XHRzZXJ2aWNlczoge1xuXHRcdFx0XHR0ZW1wbGF0ZWRWaWV3U2VydmljZToge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlRlbXBsYXRlZFZpZXdTZXJ2aWNlXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCIsXG5cdFx0XHRcdFx0c2V0dGluZ3M6IHtcblx0XHRcdFx0XHRcdHZpZXdOYW1lOiBcInNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC5MaXN0UmVwb3J0XCIsXG5cdFx0XHRcdFx0XHRjb252ZXJ0ZXJUeXBlOiBcIkxpc3RSZXBvcnRcIixcblx0XHRcdFx0XHRcdGVycm9yVmlld05hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMudmlldy5UZW1wbGF0aW5nRXJyb3JQYWdlXCJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdGFzeW5jQ29tcG9uZW50U2VydmljZToge1xuXHRcdFx0XHRcdGZhY3RvcnlOYW1lOiBcInNhcC5mZS5jb3JlLnNlcnZpY2VzLkFzeW5jQ29tcG9uZW50U2VydmljZVwiLFxuXHRcdFx0XHRcdHN0YXJ0dXA6IFwid2FpdEZvclwiXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRjb21tYW5kczoge1xuXHRcdFx0XHRDcmVhdGU6IHtcblx0XHRcdFx0XHRuYW1lOiBcIkNyZWF0ZVwiLFxuXHRcdFx0XHRcdHNob3J0Y3V0OiBcIkN0cmwrRW50ZXJcIixcblx0XHRcdFx0XHRkZXNjcmlwdGlvbjogXCJ7e0NSRUFURV9PQkpFQ1RfU0hPUlRDVVRfREVTQ1JJUFRJT059fVwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdERlbGV0ZUVudHJ5OiB7XG5cdFx0XHRcdFx0bmFtZTogXCJEZWxldGVFbnRyeVwiLFxuXHRcdFx0XHRcdHNob3J0Y3V0OiBcIkN0cmwrRFwiLFxuXHRcdFx0XHRcdGRlc2NyaXB0aW9uOiBcInt7REVMRVRFX09CSkVDVF9TSE9SVENVVF9ERVNDUklQVElPTn19XCJcblx0XHRcdFx0fSxcblx0XHRcdFx0U2hhcmU6IHtcblx0XHRcdFx0XHRuYW1lOiBcIlNoYXJlXCIsXG5cdFx0XHRcdFx0c2hvcnRjdXQ6IFwiU2hpZnQrQ3RybCtTXCIsXG5cdFx0XHRcdFx0ZGVzY3JpcHRpb246IFwie3tTSEFSRV9TSE9SVENVVF9ERVNDUklQVElPTn19XCJcblx0XHRcdFx0fSxcblx0XHRcdFx0RkVfRmlsdGVyU2VhcmNoOiB7XG5cdFx0XHRcdFx0bmFtZTogXCJGRV9GaWx0ZXJTZWFyY2hcIixcblx0XHRcdFx0XHRzaG9ydGN1dDogXCJDdHJsK0VudGVyXCIsXG5cdFx0XHRcdFx0ZGVzY3JpcHRpb246IFwie3tGSUxURVJfU0VBUkNIX1NIT1JUQ1VUX0RFU0NSSVBUSU9OfX1cIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRDdXQ6IHtcblx0XHRcdFx0XHRuYW1lOiBcIkN1dFwiLFxuXHRcdFx0XHRcdHNob3J0Y3V0OiBcIkN0cmwrWFwiLFxuXHRcdFx0XHRcdGRlc2NyaXB0aW9uOiBcInt7Q1VUX1NIT1JUQ1VUX0RFU0NSSVBUSU9OfX1cIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRDb3B5OiB7XG5cdFx0XHRcdFx0bmFtZTogXCJDb3B5XCIsXG5cdFx0XHRcdFx0c2hvcnRjdXQ6IFwiQ3RybCtDXCJcblx0XHRcdFx0fSxcblx0XHRcdFx0UGFzdGU6IHtcblx0XHRcdFx0XHRuYW1lOiBcIlBhc3RlXCIsXG5cdFx0XHRcdFx0c2hvcnRjdXQ6IFwiQ3RybCtWXCIsXG5cdFx0XHRcdFx0ZGVzY3JpcHRpb246IFwie3tQQVNURV9TSE9SVENVVF9ERVNDUklQVElPTn19XCJcblx0XHRcdFx0fSxcblx0XHRcdFx0VGFibGVNb3ZlRWxlbWVudFVwOiB7XG5cdFx0XHRcdFx0bmFtZTogXCJUYWJsZU1vdmVFbGVtZW50VXBcIixcblx0XHRcdFx0XHRzaG9ydGN1dDogXCJDdHJsK0FsdCtBcnJvd1VwXCIsXG5cdFx0XHRcdFx0ZGVzY3JpcHRpb246IFwie3tUQUJMRV9NT1ZFX0VMRU1FTlRfVVBfREVTQ1JJUFRJT059fVwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdFRhYmxlTW92ZUVsZW1lbnREb3duOiB7XG5cdFx0XHRcdFx0bmFtZTogXCJUYWJsZU1vdmVFbGVtZW50RG93blwiLFxuXHRcdFx0XHRcdHNob3J0Y3V0OiBcIkN0cmwrQWx0K0Fycm93RG93blwiLFxuXHRcdFx0XHRcdGRlc2NyaXB0aW9uOiBcInt7VEFCTEVfTU9WRV9FTEVNRU5UX0RPV05fREVTQ1JJUFRJT059fVwiXG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRoYW5kbGVWYWxpZGF0aW9uOiB0cnVlLFxuXHRcdFx0ZGVwZW5kZW5jaWVzOiB7XG5cdFx0XHRcdG1pblVJNVZlcnNpb246IFwiJHtzYXAudWk1LmNvcmUudmVyc2lvbn1cIixcblx0XHRcdFx0bGliczoge1xuXHRcdFx0XHRcdFwic2FwLmZcIjoge30sXG5cdFx0XHRcdFx0XCJzYXAuZmUubWFjcm9zXCI6IHtcblx0XHRcdFx0XHRcdGxhenk6IHRydWVcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFwic2FwLm1cIjoge30sXG5cdFx0XHRcdFx0XCJzYXAuc3VpdGUudWkubWljcm9jaGFydFwiOiB7XG5cdFx0XHRcdFx0XHRsYXp5OiB0cnVlXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcInNhcC51aS5jb3JlXCI6IHt9LFxuXHRcdFx0XHRcdFwic2FwLnVpLmxheW91dFwiOiB7fSxcblx0XHRcdFx0XHRcInNhcC51aS5tZGNcIjoge30sXG5cdFx0XHRcdFx0XCJzYXAudXNoZWxsXCI6IHtcblx0XHRcdFx0XHRcdGxhenk6IHRydWVcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFwic2FwLnVpLmZsXCI6IHt9XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRjb250ZW50RGVuc2l0aWVzOiB7XG5cdFx0XHRcdGNvbXBhY3Q6IHRydWUsXG5cdFx0XHRcdGNvenk6IHRydWVcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGxpYnJhcnk6IFwic2FwLmZlLnRlbXBsYXRlc1wiXG59KVxuY2xhc3MgTGlzdEJhc2VkQ29tcG9uZW50IGV4dGVuZHMgVGVtcGxhdGVDb21wb25lbnQge1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic2FwLmZlLmNvcmUuSW5pdGlhbExvYWRNb2RlXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBJbml0aWFsTG9hZE1vZGUuQXV0b1xuXHR9KVxuXHRpbml0aWFsTG9hZCE6IHR5cGVvZiBJbml0aWFsTG9hZE1vZGU7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInNhcC5mZS5jb3JlLlZhcmlhbnRNYW5hZ2VtZW50XCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBWYXJpYW50TWFuYWdlbWVudC5QYWdlXG5cdH0pXG5cdHZhcmlhbnRNYW5hZ2VtZW50ITogdHlwZW9mIFZhcmlhbnRNYW5hZ2VtZW50O1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRkZWZhdWx0VmFsdWU6IHVuZGVmaW5lZFxuXHR9KVxuXHRkZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCE6IHN0cmluZztcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogZmFsc2Vcblx0fSlcblx0bGl2ZU1vZGUhOiBib29sZWFuO1xuXG5cdGV4dGVuZFBhZ2VEZWZpbml0aW9uKHBhZ2VEZWZpbml0aW9uOiBMaXN0UmVwb3J0RGVmaW5pdGlvbik6IEZpbmFsUGFnZURlZmluaXRpb24ge1xuXHRcdHJldHVybiBleHRlbmRMaXN0UmVwb3J0UGFnZURlZmluaXRpb24ocGFnZURlZmluaXRpb24pO1xuXHR9XG5cblx0X2dldENvbnRyb2xsZXJOYW1lKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0Lkxpc3RSZXBvcnRDb250cm9sbGVyXCI7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTGlzdEJhc2VkQ29tcG9uZW50O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBTUEsTUFBTUEsaUJBQWlCLEdBQUdDLFdBQVcsQ0FBQ0QsaUJBQWlCO0lBQ3RERSxlQUFlLEdBQUdELFdBQVcsQ0FBQ0MsZUFBZTtFQUFDLElBNEd6Q0Msa0JBQWtCLElBQUFDLElBQUEsR0ExR3ZCQyxjQUFjLENBQUMsZ0NBQWdDLEVBQUU7SUFDakRDLFFBQVEsRUFBRTtNQUNUQyxRQUFRLEVBQUUsT0FBTztNQUNqQixRQUFRLEVBQUU7UUFDVEMsVUFBVSxFQUFFLEtBQUs7UUFDakJDLFdBQVcsRUFBRTtVQUNaQyxPQUFPLEVBQUUsSUFBSTtVQUNiQyxNQUFNLEVBQUUsSUFBSTtVQUNaQyxLQUFLLEVBQUU7UUFDUixDQUFDO1FBQ0RDLGVBQWUsRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQjtNQUNqSCxDQUFDO01BQ0QsU0FBUyxFQUFFO1FBQ1ZDLElBQUksRUFB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
178
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJWYXJpYW50TWFuYWdlbWVudCIsIkNvcmVMaWJyYXJ5IiwiSW5pdGlhbExvYWRNb2RlIiwiTGlzdEJhc2VkQ29tcG9uZW50IiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwibWFuaWZlc3QiLCJfdmVyc2lvbiIsInRlY2hub2xvZ3kiLCJkZXZpY2VUeXBlcyIsImRlc2t0b3AiLCJ0YWJsZXQiLCJwaG9uZSIsInN1cHBvcnRlZFRoZW1lcyIsImkxOG4iLCJzZXJ2aWNlcyIsInRlbXBsYXRlZFZpZXdTZXJ2aWNlIiwiZmFjdG9yeU5hbWUiLCJzdGFydHVwIiwic2V0dGluZ3MiLCJ2aWV3TmFtZSIsImNvbnZlcnRlclR5cGUiLCJlcnJvclZpZXdOYW1lIiwiYXN5bmNDb21wb25lbnRTZXJ2aWNlIiwiY29tbWFuZHMiLCJDcmVhdGUiLCJuYW1lIiwic2hvcnRjdXQiLCJkZXNjcmlwdGlvbiIsIkRlbGV0ZUVudHJ5IiwiU2hhcmUiLCJGRV9GaWx0ZXJTZWFyY2giLCJDdXQiLCJDb3B5IiwiUGFzdGUiLCJUYWJsZU1vdmVFbGVtZW50VXAiLCJUYWJsZU1vdmVFbGVtZW50RG93biIsImhhbmRsZVZhbGlkYXRpb24iLCJkZXBlbmRlbmNpZXMiLCJtaW5VSTVWZXJzaW9uIiwibGlicyIsImxhenkiLCJjb250ZW50RGVuc2l0aWVzIiwiY29tcGFjdCIsImNvenkiLCJsaWJyYXJ5IiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJBdXRvIiwiX2RlYzMiLCJQYWdlIiwiX2RlYzQiLCJ1bmRlZmluZWQiLCJfZGVjNSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfVGVtcGxhdGVDb21wb25lbnQiLCJhcmdzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiZXh0ZW5kUGFnZURlZmluaXRpb24iLCJwYWdlRGVmaW5pdGlvbiIsImV4dGVuZExpc3RSZXBvcnRQYWdlRGVmaW5pdGlvbiIsIl9nZXRDb250cm9sbGVyTmFtZSIsIlRlbXBsYXRlQ29tcG9uZW50IiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJMaXN0Q29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBUZW1wbGF0ZUNvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvVGVtcGxhdGVDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgTGlzdFJlcG9ydERlZmluaXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy90ZW1wbGF0ZXMvTGlzdFJlcG9ydENvbnZlcnRlclwiO1xuaW1wb3J0IENvcmVMaWJyYXJ5IGZyb20gXCJzYXAvZmUvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSB7IEZpbmFsUGFnZURlZmluaXRpb24gfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0V4dGVuZFBhZ2VEZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBleHRlbmRMaXN0UmVwb3J0UGFnZURlZmluaXRpb24gfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0V4dGVuZFBhZ2VEZWZpbml0aW9uXCI7XG5jb25zdCBWYXJpYW50TWFuYWdlbWVudCA9IENvcmVMaWJyYXJ5LlZhcmlhbnRNYW5hZ2VtZW50LFxuXHRJbml0aWFsTG9hZE1vZGUgPSBDb3JlTGlicmFyeS5Jbml0aWFsTG9hZE1vZGU7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuTGlzdENvbXBvbmVudFwiLCB7XG5cdG1hbmlmZXN0OiB7XG5cdFx0X3ZlcnNpb246IFwiMi4wLjBcIixcblx0XHRcInNhcC51aVwiOiB7XG5cdFx0XHR0ZWNobm9sb2d5OiBcIlVJNVwiLFxuXHRcdFx0ZGV2aWNlVHlwZXM6IHtcblx0XHRcdFx0ZGVza3RvcDogdHJ1ZSxcblx0XHRcdFx0dGFibGV0OiB0cnVlLFxuXHRcdFx0XHRwaG9uZTogdHJ1ZVxuXHRcdFx0fSxcblx0XHRcdHN1cHBvcnRlZFRoZW1lczogW1wic2FwX2Zpb3JpXzNcIiwgXCJzYXBfaGNiXCIsIFwic2FwX2JsdWVjcnlzdGFsXCIsIFwic2FwX2JlbGl6ZVwiLCBcInNhcF9iZWxpemVfcGx1c1wiLCBcInNhcF9iZWxpemVfaGN3XCJdXG5cdFx0fSxcblx0XHRcInNhcC5hcHBcIjoge1xuXHRcdFx0aTE4bjogXCJtZXNzYWdlYnVuZGxlLnByb3BlcnRpZXNcIlxuXHRcdH0sXG5cdFx0XCJzYXAudWk1XCI6IHtcblx0XHRcdHNlcnZpY2VzOiB7XG5cdFx0XHRcdHRlbXBsYXRlZFZpZXdTZXJ2aWNlOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMuVGVtcGxhdGVkVmlld1NlcnZpY2VcIixcblx0XHRcdFx0XHRzdGFydHVwOiBcIndhaXRGb3JcIixcblx0XHRcdFx0XHRzZXR0aW5nczoge1xuXHRcdFx0XHRcdFx0dmlld05hbWU6IFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0Lkxpc3RSZXBvcnRcIixcblx0XHRcdFx0XHRcdGNvbnZlcnRlclR5cGU6IFwiTGlzdFJlcG9ydFwiLFxuXHRcdFx0XHRcdFx0ZXJyb3JWaWV3TmFtZTogXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy52aWV3LlRlbXBsYXRpbmdFcnJvclBhZ2VcIlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSxcblx0XHRcdFx0YXN5bmNDb21wb25lbnRTZXJ2aWNlOiB7XG5cdFx0XHRcdFx0ZmFjdG9yeU5hbWU6IFwic2FwLmZlLmNvcmUuc2VydmljZXMuQXN5bmNDb21wb25lbnRTZXJ2aWNlXCIsXG5cdFx0XHRcdFx0c3RhcnR1cDogXCJ3YWl0Rm9yXCJcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGNvbW1hbmRzOiB7XG5cdFx0XHRcdENyZWF0ZToge1xuXHRcdFx0XHRcdG5hbWU6IFwiQ3JlYXRlXCIsXG5cdFx0XHRcdFx0c2hvcnRjdXQ6IFwiQ3RybCtFbnRlclwiLFxuXHRcdFx0XHRcdGRlc2NyaXB0aW9uOiBcInt7Q1JFQVRFX09CSkVDVF9TSE9SVENVVF9ERVNDUklQVElPTn19XCJcblx0XHRcdFx0fSxcblx0XHRcdFx0RGVsZXRlRW50cnk6IHtcblx0XHRcdFx0XHRuYW1lOiBcIkRlbGV0ZUVudHJ5XCIsXG5cdFx0XHRcdFx0c2hvcnRjdXQ6IFwiQ3RybCtEXCIsXG5cdFx0XHRcdFx0ZGVzY3JpcHRpb246IFwie3tERUxFVEVfT0JKRUNUX1NIT1JUQ1VUX0RFU0NSSVBUSU9OfX1cIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRTaGFyZToge1xuXHRcdFx0XHRcdG5hbWU6IFwiU2hhcmVcIixcblx0XHRcdFx0XHRzaG9ydGN1dDogXCJTaGlmdCtDdHJsK1NcIixcblx0XHRcdFx0XHRkZXNjcmlwdGlvbjogXCJ7e1NIQVJFX1NIT1JUQ1VUX0RFU0NSSVBUSU9OfX1cIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRGRV9GaWx0ZXJTZWFyY2g6IHtcblx0XHRcdFx0XHRuYW1lOiBcIkZFX0ZpbHRlclNlYXJjaFwiLFxuXHRcdFx0XHRcdHNob3J0Y3V0OiBcIkN0cmwrRW50ZXJcIixcblx0XHRcdFx0XHRkZXNjcmlwdGlvbjogXCJ7e0ZJTFRFUl9TRUFSQ0hfU0hPUlRDVVRfREVTQ1JJUFRJT059fVwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdEN1dDoge1xuXHRcdFx0XHRcdG5hbWU6IFwiQ3V0XCIsXG5cdFx0XHRcdFx0c2hvcnRjdXQ6IFwiQ3RybCtYXCIsXG5cdFx0XHRcdFx0ZGVzY3JpcHRpb246IFwie3tDVVRfU0hPUlRDVVRfREVTQ1JJUFRJT059fVwiXG5cdFx0XHRcdH0sXG5cdFx0XHRcdENvcHk6IHtcblx0XHRcdFx0XHRuYW1lOiBcIkNvcHlcIixcblx0XHRcdFx0XHRzaG9ydGN1dDogXCJDdHJsK0NcIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRQYXN0ZToge1xuXHRcdFx0XHRcdG5hbWU6IFwiUGFzdGVcIixcblx0XHRcdFx0XHRzaG9ydGN1dDogXCJDdHJsK1ZcIixcblx0XHRcdFx0XHRkZXNjcmlwdGlvbjogXCJ7e1BBU1RFX1NIT1JUQ1VUX0RFU0NSSVBUSU9OfX1cIlxuXHRcdFx0XHR9LFxuXHRcdFx0XHRUYWJsZU1vdmVFbGVtZW50VXA6IHtcblx0XHRcdFx0XHRuYW1lOiBcIlRhYmxlTW92ZUVsZW1lbnRVcFwiLFxuXHRcdFx0XHRcdHNob3J0Y3V0OiBcIkN0cmwrQWx0K0Fycm93VXBcIixcblx0XHRcdFx0XHRkZXNjcmlwdGlvbjogXCJ7e1RBQkxFX01PVkVfRUxFTUVOVF9VUF9ERVNDUklQVElPTn19XCJcblx0XHRcdFx0fSxcblx0XHRcdFx0VGFibGVNb3ZlRWxlbWVudERvd246IHtcblx0XHRcdFx0XHRuYW1lOiBcIlRhYmxlTW92ZUVsZW1lbnREb3duXCIsXG5cdFx0XHRcdFx0c2hvcnRjdXQ6IFwiQ3RybCtBbHQrQXJyb3dEb3duXCIsXG5cdFx0XHRcdFx0ZGVzY3JpcHRpb246IFwie3tUQUJMRV9NT1ZFX0VMRU1FTlRfRE9XTl9ERVNDUklQVElPTn19XCJcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGhhbmRsZVZhbGlkYXRpb246IHRydWUsXG5cdFx0XHRkZXBlbmRlbmNpZXM6IHtcblx0XHRcdFx0bWluVUk1VmVyc2lvbjogXCIke3NhcC51aTUuY29yZS52ZXJzaW9ufVwiLFxuXHRcdFx0XHRsaWJzOiB7XG5cdFx0XHRcdFx0XCJzYXAuZlwiOiB7fSxcblx0XHRcdFx0XHRcInNhcC5mZS5tYWNyb3NcIjoge1xuXHRcdFx0XHRcdFx0bGF6eTogdHJ1ZVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XCJzYXAubVwiOiB7fSxcblx0XHRcdFx0XHRcInNhcC5zdWl0ZS51aS5taWNyb2NoYXJ0XCI6IHtcblx0XHRcdFx0XHRcdGxhenk6IHRydWVcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFwic2FwLnVpLmNvcmVcIjoge30sXG5cdFx0XHRcdFx0XCJzYXAudWkubGF5b3V0XCI6IHt9LFxuXHRcdFx0XHRcdFwic2FwLnVpLm1kY1wiOiB7fSxcblx0XHRcdFx0XHRcInNhcC51c2hlbGxcIjoge1xuXHRcdFx0XHRcdFx0bGF6eTogdHJ1ZVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XCJzYXAudWkuZmxcIjoge31cblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGNvbnRlbnREZW5zaXRpZXM6IHtcblx0XHRcdFx0Y29tcGFjdDogdHJ1ZSxcblx0XHRcdFx0Y296eTogdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0bGlicmFyeTogXCJzYXAuZmUudGVtcGxhdGVzXCJcbn0pXG5jbGFzcyBMaXN0QmFzZWRDb21wb25lbnQgZXh0ZW5kcyBUZW1wbGF0ZUNvbXBvbmVudCB7XG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzYXAuZmUuY29yZS5Jbml0aWFsTG9hZE1vZGVcIixcblx0XHRkZWZhdWx0VmFsdWU6IEluaXRpYWxMb2FkTW9kZS5BdXRvXG5cdH0pXG5cdGluaXRpYWxMb2FkITogdHlwZW9mIEluaXRpYWxMb2FkTW9kZTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic2FwLmZlLmNvcmUuVmFyaWFudE1hbmFnZW1lbnRcIixcblx0XHRkZWZhdWx0VmFsdWU6IFZhcmlhbnRNYW5hZ2VtZW50LlBhZ2Vcblx0fSlcblx0dmFyaWFudE1hbmFnZW1lbnQhOiB0eXBlb2YgVmFyaWFudE1hbmFnZW1lbnQ7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiLFxuXHRcdGRlZmF1bHRWYWx1ZTogdW5kZWZpbmVkXG5cdH0pXG5cdGRlZmF1bHRUZW1wbGF0ZUFubm90YXRpb25QYXRoITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBmYWxzZVxuXHR9KVxuXHRsaXZlTW9kZSE6IGJvb2xlYW47XG5cblx0ZXh0ZW5kUGFnZURlZmluaXRpb24ocGFnZURlZmluaXRpb246IExpc3RSZXBvcnREZWZpbml0aW9uKTogRmluYWxQYWdlRGVmaW5pdGlvbiB7XG5cdFx0cmV0dXJuIGV4dGVuZExpc3RSZXBvcnRQYWdlRGVmaW5pdGlvbihwYWdlRGVmaW5pdGlvbik7XG5cdH1cblxuXHRfZ2V0Q29udHJvbGxlck5hbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQuTGlzdFJlcG9ydENvbnRyb2xsZXJcIjtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0QmFzZWRDb21wb25lbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7RUFNQSxNQUFNQSxpQkFBaUIsR0FBR0MsV0FBVyxDQUFDRCxpQkFBaUI7SUFDdERFLGVBQWUsR0FBR0QsV0FBVyxDQUFDQyxlQUFlO0VBQUMsSUE0R3pDQyxrQkFBa0IsSUFBQUMsSUFBQSxHQTFHdkJDLGNBQWMsQ0FBQyxnQ0FBZ0MsRUFBRTtJQUNqREMsUUFBUSxFQUFFO01BQ1RDLFFBQVEsRUFBRSxPQUFPO01BQ2pCLFFBQVEsRUFBRTtRQUNUQyxVQUFVLEVBQUUsS0FBSztRQUNqQkMsV0FBVyxFQUFFO1VBQ1pDLE9BQU8sRUFBRSxJQUFJO1VBQ2JDLE1BQU0sRUFBRSxJQUFJO1VBQ1pDLEtBQUssRUFBRTtRQUNSLENBQUM7UUFDREMsZUFBZSxFQUFFLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCO01BQ2pILENBQUM7TUFDRCxTQUFTLEVBQUU7UUFDVkMsSUFBSSxFQUFFO01BQ1AsQ0FBQztNQUNELFNBQVMsRUFBRTtRQUNWQyxRQUFRLEVBQUU7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
@@ -32,11 +32,8 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/templates/ListComponent"], fu
32
32
  }), _dec7 = property({
33
33
  type: "object"
34
34
  }), _dec(_class = (_class2 = /*#__PURE__*/function (_ListComponent) {
35
- function ListReportComponent() {
35
+ function ListReportComponent(...args) {
36
36
  var _this;
37
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
38
- args[_key] = arguments[_key];
39
- }
40
37
  _this = _ListComponent.call(this, ...args) || this;
41
38
  /**
42
39
  * Define different page views to display
@@ -96,4 +93,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/templates/ListComponent"], fu
96
93
  }), _class2)) || _class);
97
94
  return ListReportComponent;
98
95
  }, false);
99
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMaXN0UmVwb3J0Q29tcG9uZW50IiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwibGlicmFyeSIsIm1hbmlmZXN0IiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjMyIsImRlZmF1bHRWYWx1ZSIsIl9kZWM0IiwiX2RlYzUiLCJfZGVjNiIsIl9kZWM3IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9MaXN0Q29tcG9uZW50IiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiX2Rlc2NyaXB0b3IzIiwiX2Rlc2NyaXB0b3I0IiwiX2Rlc2NyaXB0b3I1IiwiX2Rlc2NyaXB0b3I2IiwiX2luaGVyaXRzTG9vc2UiLCJMaXN0Q29tcG9uZW50IiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsInByb3RvdHlwZSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBTaGFyZU9wdGlvbnMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvU2hhcmVcIjtcbmltcG9ydCBMaXN0Q29tcG9uZW50IGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL0xpc3RDb21wb25lbnRcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LkNvbXBvbmVudFwiLCB7XG5cdGxpYnJhcnk6IFwic2FwLmZlLnRlbXBsYXRlc1wiLFxuXHRtYW5pZmVzdDogXCJqc29uXCJcbn0pXG5jbGFzcyBMaXN0UmVwb3J0Q29tcG9uZW50IGV4dGVuZHMgTGlzdENvbXBvbmVudCB7XG5cdC8qKlxuXHQgKiBEZWZpbmUgZGlmZmVyZW50IHBhZ2Ugdmlld3MgdG8gZGlzcGxheVxuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJvYmplY3RcIiB9KVxuXHR2aWV3cz86IG9iamVjdDtcblxuXHQvKipcblx0ICogIEZsYWcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGljb25UYWJCYXIgaXMgaW4gc3RpY2t5IG1vZGVcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiB0cnVlXG5cdH0pXG5cdHN0aWNreU11bHRpVGFiSGVhZGVyITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogS1BJcyB0byBkaXNwbGF5XG5cdCAqL1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwib2JqZWN0XCJcblx0fSlcblx0a2V5UGVyZm9ybWFuY2VJbmRpY2F0b3JzPzogb2JqZWN0O1xuXG5cdC8qKlxuXHQgKiBGbGFnIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSB0ZW1wbGF0ZSBzaG91bGQgaGlkZSB0aGUgZmlsdGVyIGJhclxuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRkZWZhdWx0VmFsdWU6IGZhbHNlXG5cdH0pXG5cdGhpZGVGaWx0ZXJCYXIhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBmYWxzZVxuXHR9KVxuXHR1c2VIaWRkZW5GaWx0ZXJCYXIhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBTaG93IG9yIEhpZGUgc2hhcmUgb3B0aW9ucy4gTGlrZSwgU2VuZCBFbWFpbC5cblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIlxuXHR9KVxuXHRzaGFyZSE6IFNo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
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMaXN0UmVwb3J0Q29tcG9uZW50IiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwibGlicmFyeSIsIm1hbmlmZXN0IiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJfZGVjMyIsImRlZmF1bHRWYWx1ZSIsIl9kZWM0IiwiX2RlYzUiLCJfZGVjNiIsIl9kZWM3IiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9MaXN0Q29tcG9uZW50IiwiYXJncyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZGVzY3JpcHRvcjQiLCJfZGVzY3JpcHRvcjUiLCJfZGVzY3JpcHRvcjYiLCJfaW5oZXJpdHNMb29zZSIsIkxpc3RDb21wb25lbnQiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwicHJvdG90eXBlIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IFNoYXJlT3B0aW9ucyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9TaGFyZVwiO1xuaW1wb3J0IExpc3RDb21wb25lbnQgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdENvbXBvbmVudFwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQuQ29tcG9uZW50XCIsIHtcblx0bGlicmFyeTogXCJzYXAuZmUudGVtcGxhdGVzXCIsXG5cdG1hbmlmZXN0OiBcImpzb25cIlxufSlcbmNsYXNzIExpc3RSZXBvcnRDb21wb25lbnQgZXh0ZW5kcyBMaXN0Q29tcG9uZW50IHtcblx0LyoqXG5cdCAqIERlZmluZSBkaWZmZXJlbnQgcGFnZSB2aWV3cyB0byBkaXNwbGF5XG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcIm9iamVjdFwiIH0pXG5cdHZpZXdzPzogb2JqZWN0O1xuXG5cdC8qKlxuXHQgKiAgRmxhZyB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgaWNvblRhYkJhciBpcyBpbiBzdGlja3kgbW9kZVxuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRkZWZhdWx0VmFsdWU6IHRydWVcblx0fSlcblx0c3RpY2t5TXVsdGlUYWJIZWFkZXIhOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBLUElzIHRvIGRpc3BsYXlcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJvYmplY3RcIlxuXHR9KVxuXHRrZXlQZXJmb3JtYW5jZUluZGljYXRvcnM/OiBvYmplY3Q7XG5cblx0LyoqXG5cdCAqIEZsYWcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHRlbXBsYXRlIHNob3VsZCBoaWRlIHRoZSBmaWx0ZXIgYmFyXG5cdCAqL1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogZmFsc2Vcblx0fSlcblx0aGlkZUZpbHRlckJhciE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImJvb2xlYW5cIixcblx0XHRkZWZhdWx0VmFsdWU6IGZhbHNlXG5cdH0pXG5cdHVzZUhpZGRlbkZpbHRlckJhciE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIFNob3cgb3IgSGlkZSBzaGFyZSBvcHRpb25zLiBMaWtlLCBTZW5kIEVtYWlsLlxuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcIm9iamVjdFwiXG5cdH0pXG5cdHNoYXJlITogU2hhcmVPcHRpb25zO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0UmVwb3J0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
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/ExtensionAPI", "sap/fe/macros/chart/ChartUtils", "sap/fe/macros/filter/FilterUtils", "sap/fe/templates/ListReport/LRMessageStrip", "sap/ui/core/InvisibleMessage", "sap/ui/core/library"], function (Log, ClassSupport, ExtensionAPI, ChartUtils, FilterUtils, $LRMessageStrip, InvisibleMessage, library) {
5
+ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/ExtensionAPI", "sap/fe/macros/chart/ChartUtils", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/messages/FEMessageStripManager", "sap/fe/templates/ListReport/LRMessageStrip", "sap/m/MessageStrip", "sap/ui/core/InvisibleMessage", "sap/ui/core/library"], function (Log, ClassSupport, ExtensionAPI, ChartUtils, FilterUtils, FEMessageStripManager, $LRMessageStrip, MessageStrip, InvisibleMessage, library) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _class;
@@ -134,32 +134,102 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/Extensio
134
134
 
135
135
  /**
136
136
  * Provide an option for showing a custom message in the message strip above the list report table.
137
- * @param message Custom message along with the message type to be set on the table.
138
- * @param message.message Message string to be displayed.
139
- * @param message.type Indicates the type of message.
140
- * @param tabKey The tabKey identifying the table where the custom message is displayed. If tabKey is empty, the message is displayed in all tabs . If tabKey = ['1','2'], the message is displayed in tabs 1 and 2 only
141
- * @param onClose A function that is called when the user closes the message bar.
137
+ * Accepts either a simple message object or a complete MessageStrip control for advanced scenarios,
138
+ * such as formatted text, links, or custom actions.
139
+ * @param message Custom message object or a sap.m.MessageStrip control instance. Pass undefined to remove the current message.
140
+ * @param tabKey The tabKey which identifies the table where the custom message is displayed. If tabKey is empty, the message is displayed in all tabs. If tabKey = ['1','2'], the message is displayed in tabs 1 and 2 only.
141
+ * @param onClose A function that is called when the user closes the message strip.
142
142
  * @public
143
143
  */;
144
144
  _proto.setCustomMessage = function setCustomMessage(message, tabKey, onClose) {
145
- if (!this.ListReportMessageStrip) {
146
- this.ListReportMessageStrip = new LRMessageStrip();
147
- }
148
- this.ListReportMessageStrip.showCustomMessage(message, this._controller, tabKey, onClose);
149
- if (message?.message) {
150
- InvisibleMessage.getInstance().announce(message.message, InvisibleMessageMode.Assertive);
145
+ this.hideMessage(tabKey);
146
+ if (message instanceof MessageStrip) {
147
+ this.showCustomMessageStrip(message, this.normalizeTabKey(tabKey), onClose);
148
+ } else if (message && typeof message.message === "string") {
149
+ this.showCustomMessage(message, tabKey, onClose);
151
150
  }
152
151
  }
153
152
 
154
153
  /**
155
- * Destroys the message strip set on the List Report, if any.
154
+ * Removes any custom message strip or message displayed in a table on a list report page.
155
+ * @param tabKey The tabKey which identifies the table from which to remove the custom message. If empty, it is removed from all tabs.
156
+ * @public
157
+ */;
158
+ _proto.hideMessage = function hideMessage(tabKey) {
159
+ this.removeCustomMessageStrip(this.normalizeTabKey(tabKey));
160
+ this.ListReportMessageStrip?.removeMessage(this._controller, tabKey);
161
+ }
162
+
163
+ /**
164
+ * Destroys the message strip instances set on the list report page.
156
165
  * @private
157
166
  */;
158
167
  _proto.destroy = function destroy() {
168
+ this.customMessageStrip?.destroy();
159
169
  this.ListReportMessageStrip?.destroy();
160
170
  _ExtensionAPI.prototype.destroy.call(this);
161
171
  }
162
172
 
173
+ /**
174
+ * Inserts a custom MessageStrip control above each target table.
175
+ * @param messageStrip The application-provided MessageStrip control.
176
+ * @param tabKeys Tab indices identifying the target tables. Undefined means all tables.
177
+ * @param onClose Optional close callback.
178
+ */;
179
+ _proto.showCustomMessageStrip = function showCustomMessageStrip(messageStrip, tabKeys, onClose) {
180
+ if (onClose) {
181
+ messageStrip.attachClose(onClose);
182
+ }
183
+ this.customMessageStrip ??= new FEMessageStripManager();
184
+ this.customMessageStrip.show(messageStrip, this.getInnerControls(), tabKeys);
185
+ }
186
+
187
+ /**
188
+ * Shows a custom message in the DataStateIndicator strip on each target table.
189
+ * @param message The custom message and its type.
190
+ * @param tabKey Tab key(s) identifying the target tables.
191
+ * @param onClose Optional close callback.
192
+ */;
193
+ _proto.showCustomMessage = function showCustomMessage(message, tabKey, onClose) {
194
+ this.ListReportMessageStrip ??= new LRMessageStrip();
195
+ this.ListReportMessageStrip.showCustomMessage(message, this._controller, tabKey, onClose);
196
+ if (message.message) {
197
+ InvisibleMessage.getInstance().announce(message.message, InvisibleMessageMode.Assertive);
198
+ }
199
+ }
200
+
201
+ /**
202
+ * Removes the custom MessageStrip from its target tables.
203
+ * @param [tabKeys] Tab indices to remove from. Undefined means all.
204
+ */;
205
+ _proto.removeCustomMessageStrip = function removeCustomMessageStrip(tabKeys) {
206
+ this.customMessageStrip?.hide(tabKeys ? this.getInnerControls() : undefined, tabKeys);
207
+ }
208
+
209
+ /**
210
+ * Returns the page's inner controls for the building block.
211
+ * @returns The inner controls.
212
+ */;
213
+ _proto.getInnerControls = function getInnerControls() {
214
+ if (this._controller._isMultiMode()) {
215
+ return this._controller._getMultiModeControl().getAllInnerControls();
216
+ }
217
+ const tableAPI = this._controller._getTable().getParent();
218
+ return [tableAPI];
219
+ }
220
+
221
+ /**
222
+ * Normalizes the public-API tabKey parameter into an array of tab indices.
223
+ * @param [tabKey] Tab key, array of tab keys, null, or undefined.
224
+ * @returns The tab indices, or undefined if no tabKey was provided.
225
+ */;
226
+ _proto.normalizeTabKey = function normalizeTabKey(tabKey) {
227
+ if (!tabKey) {
228
+ return undefined;
229
+ }
230
+ return Array.isArray(tabKey) ? tabKey : [tabKey];
231
+ }
232
+
163
233
  /**
164
234
  * Provides an option for the selection of a specific tab programamatically.
165
235
  * @param tabKey Specific tab to be selected.
@@ -175,4 +245,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/Extensio
175
245
  }(ExtensionAPI)) || _class);
176
246
  return ListReportExtensionAPI;
177
247
  }, false);
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMaXN0UmVwb3J0RXh0ZW5zaW9uQVBJIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2NsYXNzIiwiX0V4dGVuc2lvbkFQSSIsImFwcGx5IiwiYXJndW1lbnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJyZWZyZXNoIiwiZmlsdGVyQmFyIiwiX2NvbnRyb2xsZXIiLCJfZ2V0RmlsdGVyQmFyQ29udHJvbCIsImZpbHRlckJhckFQSSIsImdldFBhcmVudCIsInRyaWdnZXJTZWFyY2giLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldFNlbGVjdGVkQ29udGV4dHMiLCJvQ29udHJvbCIsIl9pc011bHRpTW9kZSIsIl9nZXRNdWx0aU1vZGVDb250cm9sIiwiZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2wiLCJjb250ZW50IiwiX2dldFRhYmxlIiwiaXNBIiwiYVNlbGVjdGVkQ29udGV4dHMiLCJnZXRfY2hhcnQiLCJhU2VsZWN0ZWREYXRhUG9pbnRzIiwiQ2hhcnRVdGlscyIsImdldENoYXJ0U2VsZWN0ZWREYXRhIiwiaXRlbSIsInB1c2giLCJjb250ZXh0IiwicmVmcmVzaFRhYnNDb3VudCIsImtleXMiLCJzZXRUYWJDb250ZW50VG9CZVJlZnJlc2hlZE9uTmV4dE9wZW5pbmciLCJzZXRGaWx0ZXJWYWx1ZXMiLCJzQ29uZGl0aW9uUGF0aCIsInNPcGVyYXRvciIsInZWYWx1ZXMiLCJfZ2V0QWRhcHRhdGlvbkZpbHRlckJhckNvbnRyb2wiLCJ1bmRlZmluZWQiLCJGaWx0ZXJVdGlscyIsImNyZWF0ZUZpbHRlcnNGcm9tRmlsdGVyQ29uZGl0aW9ucyIsIm1GaWx0ZXJDb25kaXRpb25zIiwiTG9nIiwiZXJyb3IiLCJnZXRGaWx0ZXJJbmZvIiwiZ2V0RmlsdGVycyIsIm9GaWx0ZXJCYXIiLCJzZXRDdXN0b21NZXNzYWdlIiwibWVzc2FnZSIsInRhYktleSIsIm9uQ2xvc2UiLCJMaXN0UmVwb3J0TWVzc2FnZVN0cmlwIiwiTFJNZXNzYWdlU3RyaXAiLCJzaG93Q3VzdG9tTWVzc2FnZSIsIkludmlzaWJsZU1lc3NhZ2UiLCJnZXRJbnN0YW5jZSIsImFubm91bmNlIiwiSW52aXNpYmxlTWVzc2FnZU1vZGUiLCJBc3NlcnRpdmUiLCJkZXN0cm95IiwiY2FsbCIsInNldFNlbGVjdGVkVGFiIiwiY29udHJvbCIsIl9nZXRJY29uVGFiQmFyIiwiZmlyZVNlbGVjdCIsInNlbGVjdGVkS2V5IiwiRXh0ZW5zaW9uQVBJIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJFeHRlbnNpb25BUEkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcyB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgVGFibGVBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvVGFibGVcIjtcbmltcG9ydCBDaGFydFV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2NoYXJ0L0NoYXJ0VXRpbHNcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jb250cm9scy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIHsgSUZpbHRlckNvbnRyb2wgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxCaW5kaW5nSW5mbyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL1V0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IExSQ3VzdG9tTWVzc2FnZSB9IGZyb20gXCJzYXAvZmUvdGVtcGxhdGVzL0xpc3RSZXBvcnQvTFJNZXNzYWdlU3RyaXBcIjtcbmltcG9ydCB7IExSTWVzc2FnZVN0cmlwIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MUk1lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IHR5cGUgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5pbXBvcnQgSW52aXNpYmxlTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvSW52aXNpYmxlTWVzc2FnZVwiO1xuaW1wb3J0IHsgSW52aXNpYmxlTWVzc2FnZU1vZGUgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgQ2hhcnQgZnJvbSBcInNhcC91aS9tZGMvQ2hhcnRcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IENvbmRpdGlvbk9iamVjdCB9IGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5cbi8qKlxuICogRXh0ZW5zaW9uIEFQSSBmb3IgbGlzdCByZXBvcnRzIGluIFNBUCBGaW9yaSBlbGVtZW50cyBmb3IgT0RhdGEgVjQuXG4gKlxuICogVG8gY29ycmVjdGx5IGludGVncmF0ZSB5b3VyIGFwcCBleHRlbnNpb24gY29kaW5nIHdpdGggU0FQIEZpb3JpIGVsZW1lbnRzLCB1c2Ugb25seSB0aGUgZXh0ZW5zaW9uQVBJIG9mIFNBUCBGaW9yaSBlbGVtZW50cy4gRG9uJ3QgYWNjZXNzIG9yIG1hbmlwdWxhdGUgY29udHJvbHMsIHByb3BlcnRpZXMsIG1vZGVscywgb3Igb3RoZXIgaW50ZXJuYWwgb2JqZWN0cyBjcmVhdGVkIGJ5IHRoZSBTQVAgRmlvcmkgZWxlbWVudHMgZnJhbWV3b3JrLlxuICogQHB1YmxpY1xuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQGZpbmFsXG4gKiBAc2luY2UgMS43OS4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC5FeHRlbnNpb25BUElcIilcbmNsYXNzIExpc3RSZXBvcnRFeHRlbnNpb25BUEkgZXh0ZW5kcyBFeHRlbnNpb25BUEkge1xuXHRwdWJsaWMgX2NvbnRyb2xsZXIhOiBMaXN0UmVwb3J0Q29udHJvbGxlcjtcblxuXHRMaXN0UmVwb3J0TWVzc2FnZVN0cmlwITogTFJNZXNzYWdlU3RyaXA7XG5cblx0LyoqXG5cdCAqIFJlZnJlc2hlcyB0aGUgTGlzdCBSZXBvcnQuXG5cdCAqIFRoaXMgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHRyaWdnZXJpbmcgdGhlIHNlYXJjaCAoYnkgY2xpY2tpbmcgb24gdGhlIEdPIGJ1dHRvbilcblx0ICogaW4gdGhlIExpc3QgUmVwb3J0IEZpbHRlciBCYXIuIEl0IGNhbiBiZSB1c2VkIHRvIHJlcXVlc3QgdGhlIGluaXRpYWwgbG9hZCBvciB0byByZWZyZXNoIHRoZVxuXHQgKiBjdXJyZW50bHkgc2hvd24gZGF0YSBiYXNlZCBvbiB0aGUgZmlsdGVycyBlbnRlcmVkIGJ5IHRoZSB1c2VyLlxuXHQgKiBQbGVhc2Ugbm90ZTogVGhlIFByb21pc2UgaXMgcmVzb2x2ZWQgb25jZSB0aGUgc2VhcmNoIGlzIHRyaWdnZXJlZCBhbmQgbm90IG9uY2UgdGhlIGRhdGEgaXMgcmV0dXJuZWQuXG5cdCAqIEByZXR1cm5zIFJlc29sdmVkIG9uY2UgdGhlIGRhdGEgaXMgcmVmcmVzaGVkIG9yIHJlamVjdGVkIGlmIHRoZSByZXF1ZXN0IGZhaWxlZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRhc3luYyByZWZyZXNoKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IGZpbHRlckJhciA9IHRoaXMuX2NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblx0XHRjb25zdCBmaWx0ZXJCYXJBUEkgPSBmaWx0ZXJCYXI/LmdldFBhcmVudCgpIGFzIEZpbHRlckJhckFQSTtcblx0XHRpZiAoZmlsdGVyQmFyQVBJKSB7XG5cdFx0XHRmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHRcdH1cblx0XHQvLyBUT0RPOiBpZiB0aGVyZSBpcyBubyBmaWx0ZXIgYmFyLCBtYWtlIHJlZnJlc2ggd29ya1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBsaXN0IGVudHJpZXMgY3VycmVudGx5IHNlbGVjdGVkIGZvciB0aGUgZGlzcGxheWVkIGNvbnRyb2wuXG5cdCAqIEByZXR1cm5zIEFycmF5IGNvbnRhaW5pbmcgdGhlIHNlbGVjdGVkIGNvbnRleHRzXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGdldFNlbGVjdGVkQ29udGV4dHMoKTogQ29udGV4dFtdIHtcblx0XHRjb25zdCBvQ29udHJvbCA9ICgodGhpcy5fY29udHJvbGxlci5faXNNdWx0aU1vZGUoKSAmJlxuXHRcdFx0dGhpcy5fY29udHJvbGxlci5fZ2V0TXVsdGlNb2RlQ29udHJvbCgpPy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpPy5jb250ZW50KSB8fFxuXHRcdFx0dGhpcy5fY29udHJvbGxlci5fZ2V0VGFibGUoKSkgYXMgVGFibGUgfCAoQ2hhcnQgJiB7IGdldF9jaGFydDogRnVuY3Rpb24gfSkgfCBUYWJsZUFQSTsgLy8gVGhpcyBjYW4gbmV2ZXIgYmUgYSBUYWJsZUFQSSwgYnV0IGl0IGNhdXNlcyBpc3N1ZSBsaW5lIDczIG90aGVyd2lzZS5cblx0XHRpZiAob0NvbnRyb2wuaXNBPENoYXJ0ICYgeyBnZXRfY2hhcnQ6IEZ1bmN0aW9uIH0+KFwic2FwLnVpLm1kYy5DaGFydFwiKSkge1xuXHRcdFx0Y29uc3QgYVNlbGVjdGVkQ29udGV4dHMgPSBbXTtcblx0XHRcdGlmIChvQ29udHJvbCAmJiBvQ29udHJvbC5nZXRfY2hhcnQoKSkge1xuXHRcdFx0XHRjb25zdCBhU2VsZWN0ZWREYXRhUG9pbnRzID0gQ2hhcnRVdGlscy5nZXRDaGFydFNlbGVjdGVkRGF0YShvQ29udHJvbC5nZXRfY2hhcnQoKSk7XG5cdFx0XHRcdGZvciAoY29uc3QgaXRlbSBvZiBhU2VsZWN0ZWREYXRhUG9pbnRzKSB7XG5cdFx0XHRcdFx0YVNlbGVjdGVkQ29udGV4dHMucHVzaChpdGVtLmNvbnRleHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gYVNlbGVjdGVkQ29udGV4dHM7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiAob0NvbnRyb2wuZ2V0UGFyZW50KCkgYXMgVGFibGVBUEkpLmdldFNlbGVjdGVkQ29udGV4dHMoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmVmcmVzaGVzIHRoZSBjb3VudCBvZiB0aGUgdmlld3MgaW4gdGhlIE11bHRpTW9kZSBjb250cm9sLlxuXHQgKiBAcGFyYW0gW2tleXNdIFRoZSBsaXN0IG9mIHRoZSBrZXlzIGlkZW50aWZ5aW5nIHRoZSB2aWV3cyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCBmb3Igd2hpY2ggdGhlIHZpZXdzJyBjb3VudCB3aWxsIGJlIHJlZnJlc2hlZC4gSWYgbm90IHByb3ZpZGVkLCBhbGwgdGhlIHZpZXdzJyBjb3VudCB3aWxsIGJlIHJlZnJlc2hlZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRyZWZyZXNoVGFic0NvdW50KGtleXM/OiBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHRoaXMuX2NvbnRyb2xsZXIuX2dldE11bHRpTW9kZUNvbnRyb2woKT8ucmVmcmVzaFRhYnNDb3VudChrZXlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWZyZXNoZXMgdGhlIGNvbnRlbnQgb2YgdGhlIHVuZGVybHlpbmcgdmlld3MgdXBvbiB0aGUgbmV4dCBvcGVuaW5nLlxuXHQgKiBOb3RlOiBUaGUgY29udGVudCBvZiB0aGUgc2VsZWN0ZWQgdmlldywgaWYgcGFydCBvZiB0aGUgcHJvdmlkZWQga2V5cywgd2lsbCBiZSByZWZyZXNoZWQgaW1tZWRpYXRlbHkuXG5cdCAqIEBwYXJhbSBba2V5c10gVGhlIGxpc3Qgb2YgdGhlIGtleXMgaWRlbnRpZnlpbmcgdGhlIHZpZXdzIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0IGZvciB3aGljaCB0aGUgdmlld3MnIGNvbnRlbnQgd2lsbCBiZSByZWZyZXNoZWQuIElmIG5vdCBwcm92aWRlZCwgYWxsIHRoZSB2aWV3cycgY29udGVudCB3aWxsIGJlIHJlZnJlc2hlZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzZXRUYWJDb250ZW50VG9CZVJlZnJlc2hlZE9uTmV4dE9wZW5pbmcoa2V5cz86IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0dGhpcy5fY29udHJvbGxlci5fZ2V0TXVsdGlNb2RlQ29udHJvbCgpPy5zZXRUYWJDb250ZW50VG9CZVJlZnJlc2hlZE9uTmV4dE9wZW5pbmcoa2V5cyk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0IHRoZSBmaWx0ZXIgdmFsdWVzIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkgaW4gdGhlIGZpbHRlciBiYXIuXG5cdCAqIFRoZSBmaWx0ZXIgdmFsdWVzIGNhbiBiZSBlaXRoZXIgYSBzaW5nbGUgdmFsdWUgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLlxuXHQgKiBFYWNoIGZpbHRlciB2YWx1ZSBtdXN0IGJlIHJlcHJlc2VudGVkIGFzIGEgcHJpbWl0aXZlIHZhbHVlLlxuXHQgKiBAcGFyYW0gc0NvbmRpdGlvblBhdGggVGhlIHBhdGggdG8gdGhlIHByb3BlcnR5IGFzIGEgY29uZGl0aW9uIHBhdGhcblx0ICogQHBhcmFtIFtzT3BlcmF0b3JdIFRoZSBvcGVyYXRvciB0byBiZSB1c2VkIChvcHRpb25hbCkgLSBpZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCBvcGVyYXRvciAoRVEpIHdpbGwgYmUgdXNlZFxuXHQgKiBAcGFyYW0gdlZhbHVlcyBUaGUgdmFsdWVzIHRvIGJlIGFwcGxpZWRcblx0ICogQHJldHVybnMgQSBwcm9taXNlIGZvciBhc3luY2hyb25vdXMgaGFuZGxpbmdcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgc2V0RmlsdGVyVmFsdWVzKFxuXHRcdHNDb25kaXRpb25QYXRoOiBzdHJpbmcsXG5cdFx0c09wZXJhdG9yOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdFx0dlZhbHVlcz86IHVuZGVmaW5lZCB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBzdHJpbmdbXSB8IG51bWJlcltdIHwgYm9vbGVhbltdXG5cdCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdC8vIFRoZSBMaXN0IFJlcG9ydCBoYXMgdHdvIGZpbHRlciBiYXJzOiBUaGUgZmlsdGVyIGJhciBpbiB0aGUgaGVhZGVyIGFuZCB0aGUgZmlsdGVyIGJhciBpbiB0aGUgXCJBZGFwdCBGaWx0ZXJcIiBkaWFsb2c7XG5cdFx0Ly8gd2hlbiB0aGUgZGlhbG9nIGlzIG9wZW5lZCwgdGhlIHVzZXIgaXMgd29ya2luZyB3aXRoIHRoYXQgYWN0aXZlIGNvbnRyb2w6IFBhc3MgaXQgdG8gdGhlIHNldEZpbHRlclZhbHVlcyBtZXRob2QhXG5cdFx0Y29uc3QgZmlsdGVyQmFyID0gdGhpcy5fY29udHJvbGxlci5fZ2V0QWRhcHRhdGlvbkZpbHRlckJhckNvbnRyb2woKSB8fCB0aGlzLl9jb250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0aWYgKHZWYWx1ZXMgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dlZhbHVlcyA9IHNPcGVyYXRvcjtcblx0XHRcdHJldHVybiBGaWx0ZXJVdGlscy5zZXRGaWx0ZXJWYWx1ZXMoZmlsdGVyQmFyIGFzIEZpbHRlckJhciwgc0NvbmRpdGlvblBhdGgsIHZWYWx1ZXMpO1xuXHRcdH1cblxuXHRcdHJldHVybiBGaWx0ZXJVdGlscy5zZXRGaWx0ZXJWYWx1ZXMoZmlsdGVyQmFyIGFzIEZpbHRlckJhciwgc0NvbmRpdGlvblBhdGgsIHNPcGVyYXRvciwgdlZhbHVlcyk7XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBtZXRob2QgY29udmVydHMgdGhlIGZpbHRlciBjb25kaXRpb25zIHRvIGZpbHRlcnMuXG5cdCAqIEBwYXJhbSBtRmlsdGVyQ29uZGl0aW9ucyBNYXAgY29udGFpbmluZyB0aGUgZmlsdGVyIGNvbmRpdGlvbnMgb2YgdGhlIEZpbHRlckJhci5cblx0ICogQHJldHVybnMgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCBGaWx0ZXJCYXIgZmlsdGVycyBvciB1bmRlZmluZWQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGNyZWF0ZUZpbHRlcnNGcm9tRmlsdGVyQ29uZGl0aW9ucyhtRmlsdGVyQ29uZGl0aW9uczogUmVjb3JkPHN0cmluZywgQ29uZGl0aW9uT2JqZWN0W10+KTogb2JqZWN0IHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBmaWx0ZXJCYXIgPSB0aGlzLl9jb250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0aWYgKCFmaWx0ZXJCYXIpIHtcblx0XHRcdExvZy5lcnJvcihcIlRoZSBmaWx0ZXIgYmFyIGlzIG5vdCBhdmFpbGFibGVcIik7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHJldHVybiBGaWx0ZXJVdGlscy5nZXRGaWx0ZXJJbmZvKGZpbHRlckJhciBhcyB1bmtub3duIGFzIElGaWx0ZXJDb250cm9sLCB1bmRlZmluZWQsIG1GaWx0ZXJDb25kaXRpb25zKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm92aWRlcyBhbGwgdGhlIG1vZGVsIGZpbHRlcnMgZnJvbSB0aGUgZmlsdGVyIGJhciB0aGF0IGFyZSBjdXJyZW50bHkgYWN0aXZlXG5cdCAqIGFsb25nIHdpdGggdGhlIHNlYXJjaCBleHByZXNzaW9uLlxuXHQgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBhY3RpdmUgZmlsdGVycyBhbmQgdGhlIHNlYXJjaCBleHByZXNzaW9uIG9yIHVuZGVmaW5lZC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Z2V0RmlsdGVycygpOiBJbnRlcm5hbEJpbmRpbmdJbmZvIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvRmlsdGVyQmFyID0gdGhpcy5fY29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdHJldHVybiBGaWx0ZXJVdGlscy5nZXRGaWx0ZXJzKG9GaWx0ZXJCYXIgYXMgdW5rbm93biBhcyBJRmlsdGVyQ29udHJvbCk7XG5cdH1cblxuXHQvKipcblx0ICogUHJvdmlkZSBhbiBvcHRpb24gZm9yIHNob3dpbmcgYSBjdXN0b20gbWVzc2FnZSBpbiB0aGUgbWVzc2FnZSBzdHJpcCBhYm92ZSB0aGUgbGlzdCByZXBvcnQgdGFibGUuXG5cdCAqIEBwYXJhbSBtZXNzYWdlIEN1c3RvbSBtZXNzYWdlIGFsb25nIHdpdGggdGhlIG1lc3NhZ2UgdHlwZSB0byBiZSBzZXQgb24gdGhlIHRhYmxlLlxuXHQgKiBAcGFyYW0gbWVzc2FnZS5tZXNzYWdlIE1lc3NhZ2Ugc3RyaW5nIHRvIGJlIGRpc3BsYXllZC5cblx0ICogQHBhcmFtIG1lc3NhZ2UudHlwZSBJbmRpY2F0ZXMgdGhlIHR5cGUgb2YgbWVzc2FnZS5cblx0ICogQHBhcmFtIHRhYktleSBUaGUgdGFiS2V5IGlkZW50aWZ5aW5nIHRoZSB0YWJsZSB3aGVyZSB0aGUgY3VzdG9tIG1lc3NhZ2UgaXMgZGlzcGxheWVkLiBJZiB0YWJLZXkgaXMgZW1wdHksIHRoZSBtZXNzYWdlIGlzIGRpc3BsYXllZCBpbiBhbGwgdGFicyAuIElmIHRhYktleSA9IFsnMScsJzInXSwgdGhlIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGluIHRhYnMgMSBhbmQgMiBvbmx5XG5cdCAqIEBwYXJhbSBvbkNsb3NlIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciBjbG9zZXMgdGhlIG1lc3NhZ2UgYmFyLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzZXRDdXN0b21NZXNzYWdlKG1lc3NhZ2U6IExSQ3VzdG9tTWVzc2FnZSB8IHVuZGVmaW5lZCwgdGFiS2V5Pzogc3RyaW5nW10gfCBzdHJpbmcgfCBudWxsLCBvbkNsb3NlPzogRnVuY3Rpb24pOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuTGlzdFJlcG9ydE1lc3NhZ2VTdHJpcCkge1xuXHRcdFx0dGhpcy5MaXN0UmVwb3J0TWVzc2FnZVN0cmlwID0gbmV3IExSTWVzc2FnZVN0cmlwKCk7XG5cdFx0fVxuXHRcdHRoaXMuTGlzdFJlcG9ydE1lc3NhZ2VTdHJpcC5zaG93Q3VzdG9tTWVzc2FnZShtZXNzYWdlLCB0aGlzLl9jb250cm9sbGVyLCB0YWJLZXksIG9uQ2xvc2UpO1xuXHRcdGlmIChtZXNzYWdlPy5tZXNzYWdlKSB7XG5cdFx0XHRJbnZpc2libGVNZXNzYWdlLmdldEluc3RhbmNlKCkuYW5ub3VuY2UobWVzc2FnZS5tZXNzYWdlLCBJbnZpc2libGVNZXNzYWdlTW9kZS5Bc3NlcnRpdmUpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBEZXN0cm95cyB0aGUgbWVzc2FnZSBzdHJpcCBzZXQgb24gdGhlIExpc3QgUmVwb3J0LCBpZiBhbnkuXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRkZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuTGlzdFJlcG9ydE1lc3NhZ2VTdHJpcD8uZGVzdHJveSgpO1xuXHRcdHN1cGVyLmRlc3Ryb3koKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBQcm92aWRlcyBhbiBvcHRpb24gZm9yIHRoZSBzZWxlY3Rpb24gb2YgYSBzcGVjaWZpYyB0YWIgcHJvZ3JhbWFtYXRpY2FsbHkuXG5cdCAqIEBwYXJhbSB0YWJLZXkgU3BlY2lmaWMgdGFiIHRvIGJlIHNlbGVjdGVkLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzZXRTZWxlY3RlZFRhYih0YWJLZXk6IHN0cmluZyk6IHZvaWQge1xuXHRcdGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9jb250cm9sbGVyLl9nZXRJY29uVGFiQmFyKCk7XG5cdFx0Y29udHJvbD8uZmlyZVNlbGVjdCh7IHNlbGVjdGVkS2V5OiBcImZlOjp0YWJsZTo6XCIgKyB0YWJLZXkgKyBcIjo6TGluZUl0ZW1cIiB9KTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0UmVwb3J0RXh0ZW5zaW9uQVBJO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0VBb0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQVJBLElBVU1BLHNCQUFzQixJQUFBQyxJQUFBLEdBRDNCQyxjQUFjLENBQUMsMENBQTBDLENBQUMsRUFBQUQsSUFBQSxDQUFBRSxNQUFBLDBCQUFBQyxhQUFBO0lBQUEsU0FBQUosdUJBQUE7TUFBQSxPQUFBSSxhQUFBLENBQUFDLEtBQUEsT0FBQUMsU0FBQTtJQUFBO0lBQUFDLGNBQUEsQ0FBQVAsc0JBQUEsRUFBQUksYUFBQTtJQUFBLElBQUFJLE1BQUEsR0FBQVIsc0JBQUEsQ0FBQVMsU0FBQTtJQU0xRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFSQ0QsTUFBQSxDQVNNRSxPQUFPLEdBQWIsZUFBTUEsT0FBT0EsQ0FBQSxFQUFrQjtNQUM5QixNQUFNQyxTQUFTLEdBQUcsSUFBSSxDQUFDQyxXQUFXLENBQUNDLG9CQUFvQixDQUFDLENBQUM7TUFDekQsTUFBTUMsWUFBWSxHQUFHSCxTQUFTLEVBQUVJLFNBQVMsQ0FBQyxDQUFpQjtNQUMzRCxJQUFJRCxZQUFZLEVBQUU7UUFDakJBLFlBQVksQ0FBQ0UsYUFBYSxDQUFDLENBQUM7TUFDN0I7TUFDQTtNQUNBLE9BQU9DLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUM7SUFDekI7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUFWLE1BQUEsQ0FLQVcsbUJBQW1CLEdBQW5CLFNBQUFBLG1CQUFtQkEsQ0FBQSxFQUFjO01BQ2hDLE1BQU1DLFFBQVEsR0FBSyxJQUFJLENBQUNSLFdBQVcsQ0FBQ1MsWUFBWSxDQUFDLENBQUMsSUFDakQsSUFBSSxDQUFDVCxXQUFXLENBQUNVLG9CQUFvQixDQUFDLENBQUMsRUFBRUMsdUJBQXVCLENBQUMsQ0FBQyxFQUFF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
248
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMaXN0UmVwb3J0RXh0ZW5zaW9uQVBJIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2NsYXNzIiwiX0V4dGVuc2lvbkFQSSIsImFwcGx5IiwiYXJndW1lbnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJyZWZyZXNoIiwiZmlsdGVyQmFyIiwiX2NvbnRyb2xsZXIiLCJfZ2V0RmlsdGVyQmFyQ29udHJvbCIsImZpbHRlckJhckFQSSIsImdldFBhcmVudCIsInRyaWdnZXJTZWFyY2giLCJQcm9taXNlIiwicmVzb2x2ZSIsImdldFNlbGVjdGVkQ29udGV4dHMiLCJvQ29udHJvbCIsIl9pc011bHRpTW9kZSIsIl9nZXRNdWx0aU1vZGVDb250cm9sIiwiZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2wiLCJjb250ZW50IiwiX2dldFRhYmxlIiwiaXNBIiwiYVNlbGVjdGVkQ29udGV4dHMiLCJnZXRfY2hhcnQiLCJhU2VsZWN0ZWREYXRhUG9pbnRzIiwiQ2hhcnRVdGlscyIsImdldENoYXJ0U2VsZWN0ZWREYXRhIiwiaXRlbSIsInB1c2giLCJjb250ZXh0IiwicmVmcmVzaFRhYnNDb3VudCIsImtleXMiLCJzZXRUYWJDb250ZW50VG9CZVJlZnJlc2hlZE9uTmV4dE9wZW5pbmciLCJzZXRGaWx0ZXJWYWx1ZXMiLCJzQ29uZGl0aW9uUGF0aCIsInNPcGVyYXRvciIsInZWYWx1ZXMiLCJfZ2V0QWRhcHRhdGlvbkZpbHRlckJhckNvbnRyb2wiLCJ1bmRlZmluZWQiLCJGaWx0ZXJVdGlscyIsImNyZWF0ZUZpbHRlcnNGcm9tRmlsdGVyQ29uZGl0aW9ucyIsIm1GaWx0ZXJDb25kaXRpb25zIiwiTG9nIiwiZXJyb3IiLCJnZXRGaWx0ZXJJbmZvIiwiZ2V0RmlsdGVycyIsIm9GaWx0ZXJCYXIiLCJzZXRDdXN0b21NZXNzYWdlIiwibWVzc2FnZSIsInRhYktleSIsIm9uQ2xvc2UiLCJoaWRlTWVzc2FnZSIsIk1lc3NhZ2VTdHJpcCIsInNob3dDdXN0b21NZXNzYWdlU3RyaXAiLCJub3JtYWxpemVUYWJLZXkiLCJzaG93Q3VzdG9tTWVzc2FnZSIsInJlbW92ZUN1c3RvbU1lc3NhZ2VTdHJpcCIsIkxpc3RSZXBvcnRNZXNzYWdlU3RyaXAiLCJyZW1vdmVNZXNzYWdlIiwiZGVzdHJveSIsImN1c3RvbU1lc3NhZ2VTdHJpcCIsImNhbGwiLCJtZXNzYWdlU3RyaXAiLCJ0YWJLZXlzIiwiYXR0YWNoQ2xvc2UiLCJGRU1lc3NhZ2VTdHJpcE1hbmFnZXIiLCJzaG93IiwiZ2V0SW5uZXJDb250cm9scyIsIkxSTWVzc2FnZVN0cmlwIiwiSW52aXNpYmxlTWVzc2FnZSIsImdldEluc3RhbmNlIiwiYW5ub3VuY2UiLCJJbnZpc2libGVNZXNzYWdlTW9kZSIsIkFzc2VydGl2ZSIsImhpZGUiLCJnZXRBbGxJbm5lckNvbnRyb2xzIiwidGFibGVBUEkiLCJBcnJheSIsImlzQXJyYXkiLCJzZXRTZWxlY3RlZFRhYiIsImNvbnRyb2wiLCJfZ2V0SWNvblRhYkJhciIsImZpcmVTZWxlY3QiLCJzZWxlY3RlZEtleSIsIkV4dGVuc2lvbkFQSSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRXh0ZW5zaW9uQVBJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhckFQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIFRhYmxlQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL1RhYmxlXCI7XG5pbXBvcnQgQ2hhcnRVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9jaGFydC9DaGFydFV0aWxzXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC9mZS9tYWNyb3MvY29udHJvbHMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgdHlwZSB7IElGaWx0ZXJDb250cm9sIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgRmlsdGVyVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgRkVNZXNzYWdlU3RyaXBNYW5hZ2VyIGZyb20gXCJzYXAvZmUvbWFjcm9zL21lc3NhZ2VzL0ZFTWVzc2FnZVN0cmlwTWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbEJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgTFJDdXN0b21NZXNzYWdlIH0gZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MUk1lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IHsgTFJNZXNzYWdlU3RyaXAgfSBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xSTWVzc2FnZVN0cmlwXCI7XG5pbXBvcnQgdHlwZSBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9tL01lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEludmlzaWJsZU1lc3NhZ2UgZnJvbSBcInNhcC91aS9jb3JlL0ludmlzaWJsZU1lc3NhZ2VcIjtcbmltcG9ydCB7IEludmlzaWJsZU1lc3NhZ2VNb2RlIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIENoYXJ0IGZyb20gXCJzYXAvdWkvbWRjL0NoYXJ0XCI7XG5pbXBvcnQgdHlwZSBUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBDb25kaXRpb25PYmplY3QgfSBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuXG4vKipcbiAqIEV4dGVuc2lvbiBBUEkgZm9yIGxpc3QgcmVwb3J0cyBpbiBTQVAgRmlvcmkgZWxlbWVudHMgZm9yIE9EYXRhIFY0LlxuICpcbiAqIFRvIGNvcnJlY3RseSBpbnRlZ3JhdGUgeW91ciBhcHAgZXh0ZW5zaW9uIGNvZGluZyB3aXRoIFNBUCBGaW9yaSBlbGVtZW50cywgdXNlIG9ubHkgdGhlIGV4dGVuc2lvbkFQSSBvZiBTQVAgRmlvcmkgZWxlbWVudHMuIERvbid0IGFjY2VzcyBvciBtYW5pcHVsYXRlIGNvbnRyb2xzLCBwcm9wZXJ0aWVzLCBtb2RlbHMsIG9yIG90aGVyIGludGVybmFsIG9iamVjdHMgY3JlYXRlZCBieSB0aGUgU0FQIEZpb3JpIGVsZW1lbnRzIGZyYW1ld29yay5cbiAqIEBwdWJsaWNcbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBmaW5hbFxuICogQHNpbmNlIDEuNzkuMFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQuRXh0ZW5zaW9uQVBJXCIpXG5jbGFzcyBMaXN0UmVwb3J0RXh0ZW5zaW9uQVBJIGV4dGVuZHMgRXh0ZW5zaW9uQVBJIHtcblx0cHVibGljIF9jb250cm9sbGVyITogTGlzdFJlcG9ydENvbnRyb2xsZXI7XG5cblx0TGlzdFJlcG9ydE1lc3NhZ2VTdHJpcCE6IExSTWVzc2FnZVN0cmlwO1xuXG5cdHByaXZhdGUgY3VzdG9tTWVzc2FnZVN0cmlwPzogRkVNZXNzYWdlU3RyaXBNYW5hZ2VyO1xuXG5cdC8qKlxuXHQgKiBSZWZyZXNoZXMgdGhlIExpc3QgUmVwb3J0LlxuXHQgKiBUaGlzIG1ldGhvZCBjdXJyZW50bHkgb25seSBzdXBwb3J0cyB0cmlnZ2VyaW5nIHRoZSBzZWFyY2ggKGJ5IGNsaWNraW5nIG9uIHRoZSBHTyBidXR0b24pXG5cdCAqIGluIHRoZSBMaXN0IFJlcG9ydCBGaWx0ZXIgQmFyLiBJdCBjYW4gYmUgdXNlZCB0byByZXF1ZXN0IHRoZSBpbml0aWFsIGxvYWQgb3IgdG8gcmVmcmVzaCB0aGVcblx0ICogY3VycmVudGx5IHNob3duIGRhdGEgYmFzZWQgb24gdGhlIGZpbHRlcnMgZW50ZXJlZCBieSB0aGUgdXNlci5cblx0ICogUGxlYXNlIG5vdGU6IFRoZSBQcm9taXNlIGlzIHJlc29sdmVkIG9uY2UgdGhlIHNlYXJjaCBpcyB0cmlnZ2VyZWQgYW5kIG5vdCBvbmNlIHRoZSBkYXRhIGlzIHJldHVybmVkLlxuXHQgKiBAcmV0dXJucyBSZXNvbHZlZCBvbmNlIHRoZSBkYXRhIGlzIHJlZnJlc2hlZCBvciByZWplY3RlZCBpZiB0aGUgcmVxdWVzdCBmYWlsZWRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgcmVmcmVzaCgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBmaWx0ZXJCYXIgPSB0aGlzLl9jb250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0Y29uc3QgZmlsdGVyQmFyQVBJID0gZmlsdGVyQmFyPy5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEk7XG5cdFx0aWYgKGZpbHRlckJhckFQSSkge1xuXHRcdFx0ZmlsdGVyQmFyQVBJLnRyaWdnZXJTZWFyY2goKTtcblx0XHR9XG5cdFx0Ly8gVE9ETzogaWYgdGhlcmUgaXMgbm8gZmlsdGVyIGJhciwgbWFrZSByZWZyZXNoIHdvcmtcblx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgbGlzdCBlbnRyaWVzIGN1cnJlbnRseSBzZWxlY3RlZCBmb3IgdGhlIGRpc3BsYXllZCBjb250cm9sLlxuXHQgKiBAcmV0dXJucyBBcnJheSBjb250YWluaW5nIHRoZSBzZWxlY3RlZCBjb250ZXh0c1xuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRTZWxlY3RlZENvbnRleHRzKCk6IENvbnRleHRbXSB7XG5cdFx0Y29uc3Qgb0NvbnRyb2wgPSAoKHRoaXMuX2NvbnRyb2xsZXIuX2lzTXVsdGlNb2RlKCkgJiZcblx0XHRcdHRoaXMuX2NvbnRyb2xsZXIuX2dldE11bHRpTW9kZUNvbnRyb2woKT8uZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKT8uY29udGVudCkgfHxcblx0XHRcdHRoaXMuX2NvbnRyb2xsZXIuX2dldFRhYmxlKCkpIGFzIFRhYmxlIHwgKENoYXJ0ICYgeyBnZXRfY2hhcnQ6IEZ1bmN0aW9uIH0pIHwgVGFibGVBUEk7IC8vIFRoaXMgY2FuIG5ldmVyIGJlIGEgVGFibGVBUEksIGJ1dCBpdCBjYXVzZXMgaXNzdWUgbGluZSA3MyBvdGhlcndpc2UuXG5cdFx0aWYgKG9Db250cm9sLmlzQTxDaGFydCAmIHsgZ2V0X2NoYXJ0OiBGdW5jdGlvbiB9PihcInNhcC51aS5tZGMuQ2hhcnRcIikpIHtcblx0XHRcdGNvbnN0IGFTZWxlY3RlZENvbnRleHRzID0gW107XG5cdFx0XHRpZiAob0NvbnRyb2wgJiYgb0NvbnRyb2wuZ2V0X2NoYXJ0KCkpIHtcblx0XHRcdFx0Y29uc3QgYVNlbGVjdGVkRGF0YVBvaW50cyA9IENoYXJ0VXRpbHMuZ2V0Q2hhcnRTZWxlY3RlZERhdGEob0NvbnRyb2wuZ2V0X2NoYXJ0KCkpO1xuXHRcdFx0XHRmb3IgKGNvbnN0IGl0ZW0gb2YgYVNlbGVjdGVkRGF0YVBvaW50cykge1xuXHRcdFx0XHRcdGFTZWxlY3RlZENvbnRleHRzLnB1c2goaXRlbS5jb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGFTZWxlY3RlZENvbnRleHRzO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gKG9Db250cm9sLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJKS5nZXRTZWxlY3RlZENvbnRleHRzKCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJlZnJlc2hlcyB0aGUgY291bnQgb2YgdGhlIHZpZXdzIGluIHRoZSBNdWx0aU1vZGUgY29udHJvbC5cblx0ICogQHBhcmFtIFtrZXlzXSBUaGUgbGlzdCBvZiB0aGUga2V5cyBpZGVudGlmeWluZyB0aGUgdmlld3MgZGVmaW5lZCBpbiB0aGUgbWFuaWZlc3QgZm9yIHdoaWNoIHRoZSB2aWV3cycgY291bnQgd2lsbCBiZSByZWZyZXNoZWQuIElmIG5vdCBwcm92aWRlZCwgYWxsIHRoZSB2aWV3cycgY291bnQgd2lsbCBiZSByZWZyZXNoZWRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0cmVmcmVzaFRhYnNDb3VudChrZXlzPzogc3RyaW5nW10pOiB2b2lkIHtcblx0XHR0aGlzLl9jb250cm9sbGVyLl9nZXRNdWx0aU1vZGVDb250cm9sKCk/LnJlZnJlc2hUYWJzQ291bnQoa2V5cyk7XG5cdH1cblxuXHQvKipcblx0ICogUmVmcmVzaGVzIHRoZSBjb250ZW50IG9mIHRoZSB1bmRlcmx5aW5nIHZpZXdzIHVwb24gdGhlIG5leHQgb3BlbmluZy5cblx0ICogTm90ZTogVGhlIGNvbnRlbnQgb2YgdGhlIHNlbGVjdGVkIHZpZXcsIGlmIHBhcnQgb2YgdGhlIHByb3ZpZGVkIGtleXMsIHdpbGwgYmUgcmVmcmVzaGVkIGltbWVkaWF0ZWx5LlxuXHQgKiBAcGFyYW0gW2tleXNdIFRoZSBsaXN0IG9mIHRoZSBrZXlzIGlkZW50aWZ5aW5nIHRoZSB2aWV3cyBkZWZpbmVkIGluIHRoZSBtYW5pZmVzdCBmb3Igd2hpY2ggdGhlIHZpZXdzJyBjb250ZW50IHdpbGwgYmUgcmVmcmVzaGVkLiBJZiBub3QgcHJvdmlkZWQsIGFsbCB0aGUgdmlld3MnIGNvbnRlbnQgd2lsbCBiZSByZWZyZXNoZWRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0c2V0VGFiQ29udGVudFRvQmVSZWZyZXNoZWRPbk5leHRPcGVuaW5nKGtleXM/OiBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdHRoaXMuX2NvbnRyb2xsZXIuX2dldE11bHRpTW9kZUNvbnRyb2woKT8uc2V0VGFiQ29udGVudFRvQmVSZWZyZXNoZWRPbk5leHRPcGVuaW5nKGtleXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldCB0aGUgZmlsdGVyIHZhbHVlcyBmb3IgdGhlIGdpdmVuIHByb3BlcnR5IGluIHRoZSBmaWx0ZXIgYmFyLlxuXHQgKiBUaGUgZmlsdGVyIHZhbHVlcyBjYW4gYmUgZWl0aGVyIGEgc2luZ2xlIHZhbHVlIG9yIGFuIGFycmF5IG9mIHZhbHVlcy5cblx0ICogRWFjaCBmaWx0ZXIgdmFsdWUgbXVzdCBiZSByZXByZXNlbnRlZCBhcyBhIHByaW1pdGl2ZSB2YWx1ZS5cblx0ICogQHBhcmFtIHNDb25kaXRpb25QYXRoIFRoZSBwYXRoIHRvIHRoZSBwcm9wZXJ0eSBhcyBhIGNvbmRpdGlvbiBwYXRoXG5cdCAqIEBwYXJhbSBbc09wZXJhdG9yXSBUaGUgb3BlcmF0b3IgdG8gYmUgdXNlZCAob3B0aW9uYWwpIC0gaWYgbm90IHNldCwgdGhlIGRlZmF1bHQgb3BlcmF0b3IgKEVRKSB3aWxsIGJlIHVzZWRcblx0ICogQHBhcmFtIHZWYWx1ZXMgVGhlIHZhbHVlcyB0byBiZSBhcHBsaWVkXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYXN5bmNocm9ub3VzIGhhbmRsaW5nXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFzeW5jIHNldEZpbHRlclZhbHVlcyhcblx0XHRzQ29uZGl0aW9uUGF0aDogc3RyaW5nLFxuXHRcdHNPcGVyYXRvcjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRcdHZWYWx1ZXM/OiB1bmRlZmluZWQgfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgc3RyaW5nW10gfCBudW1iZXJbXSB8IGJvb2xlYW5bXVxuXHQpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHQvLyBUaGUgTGlzdCBSZXBvcnQgaGFzIHR3byBmaWx0ZXIgYmFyczogVGhlIGZpbHRlciBiYXIgaW4gdGhlIGhlYWRlciBhbmQgdGhlIGZpbHRlciBiYXIgaW4gdGhlIFwiQWRhcHQgRmlsdGVyXCIgZGlhbG9nO1xuXHRcdC8vIHdoZW4gdGhlIGRpYWxvZyBpcyBvcGVuZWQsIHRoZSB1c2VyIGlzIHdvcmtpbmcgd2l0aCB0aGF0IGFjdGl2ZSBjb250cm9sOiBQYXNzIGl0IHRvIHRoZSBzZXRGaWx0ZXJWYWx1ZXMgbWV0aG9kIVxuXHRcdGNvbnN0IGZpbHRlckJhciA9IHRoaXMuX2NvbnRyb2xsZXIuX2dldEFkYXB0YXRpb25GaWx0ZXJCYXJDb250cm9sKCkgfHwgdGhpcy5fY29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdGlmICh2VmFsdWVzID09PSB1bmRlZmluZWQpIHtcblx0XHRcdHZWYWx1ZXMgPSBzT3BlcmF0b3I7XG5cdFx0XHRyZXR1cm4gRmlsdGVyVXRpbHMuc2V0RmlsdGVyVmFsdWVzKGZpbHRlckJhciBhcyBGaWx0ZXJCYXIsIHNDb25kaXRpb25QYXRoLCB2VmFsdWVzKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gRmlsdGVyVXRpbHMuc2V0RmlsdGVyVmFsdWVzKGZpbHRlckJhciBhcyBGaWx0ZXJCYXIsIHNDb25kaXRpb25QYXRoLCBzT3BlcmF0b3IsIHZWYWx1ZXMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgbWV0aG9kIGNvbnZlcnRzIHRoZSBmaWx0ZXIgY29uZGl0aW9ucyB0byBmaWx0ZXJzLlxuXHQgKiBAcGFyYW0gbUZpbHRlckNvbmRpdGlvbnMgTWFwIGNvbnRhaW5pbmcgdGhlIGZpbHRlciBjb25kaXRpb25zIG9mIHRoZSBGaWx0ZXJCYXIuXG5cdCAqIEByZXR1cm5zIE9iamVjdCBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgRmlsdGVyQmFyIGZpbHRlcnMgb3IgdW5kZWZpbmVkLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRjcmVhdGVGaWx0ZXJzRnJvbUZpbHRlckNvbmRpdGlvbnMobUZpbHRlckNvbmRpdGlvbnM6IFJlY29yZDxzdHJpbmcsIENvbmRpdGlvbk9iamVjdFtdPik6IG9iamVjdCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgZmlsdGVyQmFyID0gdGhpcy5fY29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdGlmICghZmlsdGVyQmFyKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJUaGUgZmlsdGVyIGJhciBpcyBub3QgYXZhaWxhYmxlXCIpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRyZXR1cm4gRmlsdGVyVXRpbHMuZ2V0RmlsdGVySW5mbyhmaWx0ZXJCYXIgYXMgdW5rbm93biBhcyBJRmlsdGVyQ29udHJvbCwgdW5kZWZpbmVkLCBtRmlsdGVyQ29uZGl0aW9ucyk7XG5cdH1cblxuXHQvKipcblx0ICogUHJvdmlkZXMgYWxsIHRoZSBtb2RlbCBmaWx0ZXJzIGZyb20gdGhlIGZpbHRlciBiYXIgdGhhdCBhcmUgY3VycmVudGx5IGFjdGl2ZVxuXHQgKiBhbG9uZyB3aXRoIHRoZSBzZWFyY2ggZXhwcmVzc2lvbi5cblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgYWN0aXZlIGZpbHRlcnMgYW5kIHRoZSBzZWFyY2ggZXhwcmVzc2lvbiBvciB1bmRlZmluZWQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGdldEZpbHRlcnMoKTogSW50ZXJuYWxCaW5kaW5nSW5mbyB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgb0ZpbHRlckJhciA9IHRoaXMuX2NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblx0XHRyZXR1cm4gRmlsdGVyVXRpbHMuZ2V0RmlsdGVycyhvRmlsdGVyQmFyIGFzIHVua25vd24gYXMgSUZpbHRlckNvbnRyb2wpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFByb3ZpZGUgYW4gb3B0aW9uIGZvciBzaG93aW5nIGEgY3VzdG9tIG1lc3NhZ2UgaW4gdGhlIG1lc3NhZ2Ugc3RyaXAgYWJvdmUgdGhlIGxpc3QgcmVwb3J0IHRhYmxlLlxuXHQgKiBBY2NlcHRzIGVpdGhlciBhIHNpbXBsZSBtZXNzYWdlIG9iamVjdCBvciBhIGNvbXBsZXRlIE1lc3NhZ2VTdHJpcCBjb250cm9sIGZvciBhZHZhbmNlZCBzY2VuYXJpb3MsXG5cdCAqIHN1Y2ggYXMgZm9ybWF0dGVkIHRleHQsIGxpbmtzLCBvciBjdXN0b20gYWN0aW9ucy5cblx0ICogQHBhcmFtIG1lc3NhZ2UgQ3VzdG9tIG1lc3NhZ2Ugb2JqZWN0IG9yIGEgc2FwLm0uTWVzc2FnZVN0cmlwIGNvbnRyb2wgaW5zdGFuY2UuIFBhc3MgdW5kZWZpbmVkIHRvIHJlbW92ZSB0aGUgY3VycmVudCBtZXNzYWdlLlxuXHQgKiBAcGFyYW0gdGFiS2V5IFRoZSB0YWJLZXkgd2hpY2ggaWRlbnRpZmllcyB0aGUgdGFibGUgd2hlcmUgdGhlIGN1c3RvbSBtZXNzYWdlIGlzIGRpc3BsYXllZC4gSWYgdGFiS2V5IGlzIGVtcHR5LCB0aGUgbWVzc2FnZSBpcyBkaXNwbGF5ZWQgaW4gYWxsIHRhYnMuIElmIHRhYktleSA9IFsnMScsJzInXSwgdGhlIG1lc3NhZ2UgaXMgZGlzcGxheWVkIGluIHRhYnMgMSBhbmQgMiBvbmx5LlxuXHQgKiBAcGFyYW0gb25DbG9zZSBBIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIHdoZW4gdGhlIHVzZXIgY2xvc2VzIHRoZSBtZXNzYWdlIHN0cmlwLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzZXRDdXN0b21NZXNzYWdlKG1lc3NhZ2U6IExSQ3VzdG9tTWVzc2FnZSB8IE1lc3NhZ2VTdHJpcCB8IHVuZGVmaW5lZCwgdGFiS2V5Pzogc3RyaW5nW10gfCBzdHJpbmcgfCBudWxsLCBvbkNsb3NlPzogRnVuY3Rpb24pOiB2b2lkIHtcblx0XHR0aGlzLmhpZGVNZXNzYWdlKHRhYktleSk7XG5cdFx0aWYgKG1lc3NhZ2UgaW5zdGFuY2VvZiBNZXNzYWdlU3RyaXApIHtcblx0XHRcdHRoaXMuc2hvd0N1c3RvbU1lc3NhZ2VTdHJpcChtZXNzYWdlLCB0aGlzLm5vcm1hbGl6ZVRhYktleSh0YWJLZXkpLCBvbkNsb3NlKTtcblx0XHR9IGVsc2UgaWYgKG1lc3NhZ2UgJiYgdHlwZW9mIG1lc3NhZ2UubWVzc2FnZSA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0dGhpcy5zaG93Q3VzdG9tTWVzc2FnZShtZXNzYWdlLCB0YWJLZXksIG9uQ2xvc2UpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZW1vdmVzIGFueSBjdXN0b20gbWVzc2FnZSBzdHJpcCBvciBtZXNzYWdlIGRpc3BsYXllZCBpbiBhIHRhYmxlIG9uIGEgbGlzdCByZXBvcnQgcGFnZS5cblx0ICogQHBhcmFtIHRhYktleSBUaGUgdGFiS2V5IHdoaWNoIGlkZW50aWZpZXMgdGhlIHRhYmxlIGZyb20gd2hpY2ggdG8gcmVtb3ZlIHRoZSBjdXN0b20gbWVzc2FnZS4gSWYgZW1wdHksIGl0IGlzIHJlbW92ZWQgZnJvbSBhbGwgdGFicy5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0aGlkZU1lc3NhZ2UodGFiS2V5Pzogc3RyaW5nW10gfCBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG5cdFx0dGhpcy5yZW1vdmVDdXN0b21NZXNzYWdlU3RyaXAodGhpcy5ub3JtYWxpemVUYWJLZXkodGFiS2V5KSk7XG5cdFx0dGhpcy5MaXN0UmVwb3J0TWVzc2FnZVN0cmlwPy5yZW1vdmVNZXNzYWdlKHRoaXMuX2NvbnRyb2xsZXIsIHRhYktleSk7XG5cdH1cblxuXHQvKipcblx0ICogRGVzdHJveXMgdGhlIG1lc3NhZ2Ugc3RyaXAgaW5zdGFuY2VzIHNldCBvbiB0aGUgbGlzdCByZXBvcnQgcGFnZS5cblx0ICogQHByaXZhdGVcblx0ICovXG5cdGRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5jdXN0b21NZXNzYWdlU3RyaXA/LmRlc3Ryb3koKTtcblx0XHR0aGlzLkxpc3RSZXBvcnRNZXNzYWdlU3RyaXA/LmRlc3Ryb3koKTtcblx0XHRzdXBlci5kZXN0cm95KCk7XG5cdH1cblxuXHQvKipcblx0ICogSW5zZXJ0cyBhIGN1c3RvbSBNZXNzYWdlU3RyaXAgY29udHJvbCBhYm92ZSBlYWNoIHRhcmdldCB0YWJsZS5cblx0ICogQHBhcmFtIG1lc3NhZ2VTdHJpcCBUaGUgYXBwbGljYXRpb24tcHJvdmlkZWQgTWVzc2FnZVN0cmlwIGNvbnRyb2wuXG5cdCAqIEBwYXJhbSB0YWJLZXlzIFRhYiBpbmRpY2VzIGlkZW50aWZ5aW5nIHRoZSB0YXJnZXQgdGFibGVzLiBVbmRlZmluZWQgbWVhbnMgYWxsIHRhYmxlcy5cblx0ICogQHBhcmFtIG9uQ2xvc2UgT3B0aW9uYWwgY2xvc2UgY2FsbGJhY2suXG5cdCAqL1xuXHRwcml2YXRlIHNob3dDdXN0b21NZXNzYWdlU3RyaXAobWVzc2FnZVN0cmlwOiBNZXNzYWdlU3RyaXAsIHRhYktleXM/OiBzdHJpbmdbXSwgb25DbG9zZT86IEZ1bmN0aW9uKTogdm9pZCB7XG5cdFx0aWYgKG9uQ2xvc2UpIHtcblx0XHRcdG1lc3NhZ2VTdHJpcC5hdHRhY2hDbG9zZShvbkNsb3NlIGFzICgpID0+IHZvaWQpO1xuXHRcdH1cblx0XHR0aGlzLmN1c3RvbU1lc3NhZ2VTdHJpcCA/Pz0gbmV3IEZFTWVzc2FnZVN0cmlwTWFuYWdlcigpO1xuXHRcdHRoaXMuY3VzdG9tTWVzc2FnZVN0cmlwLnNob3cobWVzc2FnZVN0cmlwLCB0aGlzLmdldElubmVyQ29udHJvbHMoKSwgdGFiS2V5cyk7XG5cdH1cblxuXHQvKipcblx0ICogU2hvd3MgYSBjdXN0b20gbWVzc2FnZSBpbiB0aGUgRGF0YVN0YXRlSW5kaWNhdG9yIHN0cmlwIG9uIGVhY2ggdGFyZ2V0IHRhYmxlLlxuXHQgKiBAcGFyYW0gbWVzc2FnZSBUaGUgY3VzdG9tIG1lc3NhZ2UgYW5kIGl0cyB0eXBlLlxuXHQgKiBAcGFyYW0gdGFiS2V5ICBUYWIga2V5KHMpIGlkZW50aWZ5aW5nIHRoZSB0YXJnZXQgdGFibGVzLlxuXHQgKiBAcGFyYW0gb25DbG9zZSBPcHRpb25hbCBjbG9zZSBjYWxsYmFjay5cblx0ICovXG5cdHByaXZhdGUgc2hvd0N1c3RvbU1lc3NhZ2UobWVzc2FnZTogTFJDdXN0b21NZXNzYWdlLCB0YWJLZXk/OiBzdHJpbmdbXSB8IHN0cmluZyB8IG51bGwsIG9uQ2xvc2U/OiBGdW5jdGlvbik6IHZvaWQge1xuXHRcdHRoaXMuTGlzdFJlcG9ydE1lc3NhZ2VTdHJpcCA/Pz0gbmV3IExSTWVzc2FnZVN0cmlwKCk7XG5cdFx0dGhpcy5MaXN0UmVwb3J0TWVzc2FnZVN0cmlwLnNob3dDdXN0b21NZXNzYWdlKG1lc3NhZ2UsIHRoaXMuX2NvbnRyb2xsZXIsIHRhYktleSwgb25DbG9zZSk7XG5cdFx0aWYgKG1lc3NhZ2UubWVzc2FnZSkge1xuXHRcdFx0SW52aXNpYmxlTWVzc2FnZS5nZXRJbnN0YW5jZSgpLmFubm91bmNlKG1lc3NhZ2UubWVzc2FnZSwgSW52aXNpYmxlTWVzc2FnZU1vZGUuQXNzZXJ0aXZlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmVtb3ZlcyB0aGUgY3VzdG9tIE1lc3NhZ2VTdHJpcCBmcm9tIGl0cyB0YXJnZXQgdGFibGVzLlxuXHQgKiBAcGFyYW0gW3RhYktleXNdIFRhYiBpbmRpY2VzIHRvIHJlbW92ZSBmcm9tLiBVbmRlZmluZWQgbWVhbnMgYWxsLlxuXHQgKi9cblx0cHJpdmF0ZSByZW1vdmVDdXN0b21NZXNzYWdlU3RyaXAodGFiS2V5cz86IHN0cmluZ1tdKTogdm9pZCB7XG5cdFx0dGhpcy5jdXN0b21NZXNzYWdlU3RyaXA/LmhpZGUodGFiS2V5cyA/IHRoaXMuZ2V0SW5uZXJDb250cm9scygpIDogdW5kZWZpbmVkLCB0YWJLZXlzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBwYWdlJ3MgaW5uZXIgY29udHJvbHMgZm9yIHRoZSBidWlsZGluZyBibG9jay5cblx0ICogQHJldHVybnMgVGhlIGlubmVyIGNvbnRyb2xzLlxuXHQgKi9cblx0cHJpdmF0ZSBnZXRJbm5lckNvbnRyb2xzKCk6IENvbnRyb2xbXSB7XG5cdFx0aWYgKHRoaXMuX2NvbnRyb2xsZXIuX2lzTXVsdGlNb2RlKCkpIHtcblx0XHRcdHJldHVybiB0aGlzLl9jb250cm9sbGVyLl9nZXRNdWx0aU1vZGVDb250cm9sKCkuZ2V0QWxsSW5uZXJDb250cm9scygpIGFzIHVua25vd24gYXMgQ29udHJvbFtdO1xuXHRcdH1cblx0XHRjb25zdCB0YWJsZUFQSSA9ICh0aGlzLl9jb250cm9sbGVyLl9nZXRUYWJsZSgpIGFzIFRhYmxlKS5nZXRQYXJlbnQoKSBhcyBDb250cm9sO1xuXHRcdHJldHVybiBbdGFibGVBUEldO1xuXHR9XG5cblx0LyoqXG5cdCAqIE5vcm1hbGl6ZXMgdGhlIHB1YmxpYy1BUEkgdGFiS2V5IHBhcmFtZXRlciBpbnRvIGFuIGFycmF5IG9mIHRhYiBpbmRpY2VzLlxuXHQgKiBAcGFyYW0gW3RhYktleV0gVGFiIGtleSwgYXJyYXkgb2YgdGFiIGtleXMsIG51bGwsIG9yIHVuZGVmaW5lZC5cblx0ICogQHJldHVybnMgVGhlIHRhYiBpbmRpY2VzLCBvciB1bmRlZmluZWQgaWYgbm8gdGFiS2V5IHdhcyBwcm92aWRlZC5cblx0ICovXG5cdHByaXZhdGUgbm9ybWFsaXplVGFiS2V5KHRhYktleT86IHN0cmluZ1tdIHwgc3RyaW5nIHwgbnVsbCk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAoIXRhYktleSkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0cmV0dXJuIEFycmF5LmlzQXJyYXkodGFiS2V5KSA/IHRhYktleSA6IFt0YWJLZXldO1xuXHR9XG5cblx0LyoqXG5cdCAqIFByb3ZpZGVzIGFuIG9wdGlvbiBmb3IgdGhlIHNlbGVjdGlvbiBvZiBhIHNwZWNpZmljIHRhYiBwcm9ncmFtYW1hdGljYWxseS5cblx0ICogQHBhcmFtIHRhYktleSBTcGVjaWZpYyB0YWIgdG8gYmUgc2VsZWN0ZWQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHNldFNlbGVjdGVkVGFiKHRhYktleTogc3RyaW5nKTogdm9pZCB7XG5cdFx0Y29uc3QgY29udHJvbCA9IHRoaXMuX2NvbnRyb2xsZXIuX2dldEljb25UYWJCYXIoKTtcblx0XHRjb250cm9sPy5maXJlU2VsZWN0KHsgc2VsZWN0ZWRLZXk6IFwiZmU6OnRhYmxlOjpcIiArIHRhYktleSArIFwiOjpMaW5lSXRlbVwiIH0p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
@@ -7,10 +7,13 @@ import ChartUtils from "sap/fe/macros/chart/ChartUtils";
7
7
  import type FilterBar from "sap/fe/macros/controls/FilterBar";
8
8
  import type { IFilterControl } from "sap/fe/macros/filter/FilterUtils";
9
9
  import FilterUtils from "sap/fe/macros/filter/FilterUtils";
10
+ import FEMessageStripManager from "sap/fe/macros/messages/FEMessageStripManager";
10
11
  import type { InternalBindingInfo } from "sap/fe/macros/table/Utils";
11
12
  import type { LRCustomMessage } from "sap/fe/templates/ListReport/LRMessageStrip";
12
13
  import { LRMessageStrip } from "sap/fe/templates/ListReport/LRMessageStrip";
13
14
  import type ListReportController from "sap/fe/templates/ListReport/ListReportController.controller";
15
+ import MessageStrip from "sap/m/MessageStrip";
16
+ import type Control from "sap/ui/core/Control";
14
17
  import InvisibleMessage from "sap/ui/core/InvisibleMessage";
15
18
  import { InvisibleMessageMode } from "sap/ui/core/library";
16
19
  import type Chart from "sap/ui/mdc/Chart";
@@ -33,6 +36,8 @@ class ListReportExtensionAPI extends ExtensionAPI {
33
36
 
34
37
  ListReportMessageStrip!: LRMessageStrip;
35
38
 
39
+ private customMessageStrip?: FEMessageStripManager;
40
+
36
41
  /**
37
42
  * Refreshes the List Report.
38
43
  * This method currently only supports triggering the search (by clicking on the GO button)
@@ -148,32 +153,102 @@ class ListReportExtensionAPI extends ExtensionAPI {
148
153
 
149
154
  /**
150
155
  * Provide an option for showing a custom message in the message strip above the list report table.
151
- * @param message Custom message along with the message type to be set on the table.
152
- * @param message.message Message string to be displayed.
153
- * @param message.type Indicates the type of message.
154
- * @param tabKey The tabKey identifying the table where the custom message is displayed. If tabKey is empty, the message is displayed in all tabs . If tabKey = ['1','2'], the message is displayed in tabs 1 and 2 only
155
- * @param onClose A function that is called when the user closes the message bar.
156
+ * Accepts either a simple message object or a complete MessageStrip control for advanced scenarios,
157
+ * such as formatted text, links, or custom actions.
158
+ * @param message Custom message object or a sap.m.MessageStrip control instance. Pass undefined to remove the current message.
159
+ * @param tabKey The tabKey which identifies the table where the custom message is displayed. If tabKey is empty, the message is displayed in all tabs. If tabKey = ['1','2'], the message is displayed in tabs 1 and 2 only.
160
+ * @param onClose A function that is called when the user closes the message strip.
156
161
  * @public
157
162
  */
158
- setCustomMessage(message: LRCustomMessage | undefined, tabKey?: string[] | string | null, onClose?: Function): void {
159
- if (!this.ListReportMessageStrip) {
160
- this.ListReportMessageStrip = new LRMessageStrip();
161
- }
162
- this.ListReportMessageStrip.showCustomMessage(message, this._controller, tabKey, onClose);
163
- if (message?.message) {
164
- InvisibleMessage.getInstance().announce(message.message, InvisibleMessageMode.Assertive);
163
+ setCustomMessage(message: LRCustomMessage | MessageStrip | undefined, tabKey?: string[] | string | null, onClose?: Function): void {
164
+ this.hideMessage(tabKey);
165
+ if (message instanceof MessageStrip) {
166
+ this.showCustomMessageStrip(message, this.normalizeTabKey(tabKey), onClose);
167
+ } else if (message && typeof message.message === "string") {
168
+ this.showCustomMessage(message, tabKey, onClose);
165
169
  }
166
170
  }
167
171
 
168
172
  /**
169
- * Destroys the message strip set on the List Report, if any.
173
+ * Removes any custom message strip or message displayed in a table on a list report page.
174
+ * @param tabKey The tabKey which identifies the table from which to remove the custom message. If empty, it is removed from all tabs.
175
+ * @public
176
+ */
177
+ hideMessage(tabKey?: string[] | string | null): void {
178
+ this.removeCustomMessageStrip(this.normalizeTabKey(tabKey));
179
+ this.ListReportMessageStrip?.removeMessage(this._controller, tabKey);
180
+ }
181
+
182
+ /**
183
+ * Destroys the message strip instances set on the list report page.
170
184
  * @private
171
185
  */
172
186
  destroy(): void {
187
+ this.customMessageStrip?.destroy();
173
188
  this.ListReportMessageStrip?.destroy();
174
189
  super.destroy();
175
190
  }
176
191
 
192
+ /**
193
+ * Inserts a custom MessageStrip control above each target table.
194
+ * @param messageStrip The application-provided MessageStrip control.
195
+ * @param tabKeys Tab indices identifying the target tables. Undefined means all tables.
196
+ * @param onClose Optional close callback.
197
+ */
198
+ private showCustomMessageStrip(messageStrip: MessageStrip, tabKeys?: string[], onClose?: Function): void {
199
+ if (onClose) {
200
+ messageStrip.attachClose(onClose as () => void);
201
+ }
202
+ this.customMessageStrip ??= new FEMessageStripManager();
203
+ this.customMessageStrip.show(messageStrip, this.getInnerControls(), tabKeys);
204
+ }
205
+
206
+ /**
207
+ * Shows a custom message in the DataStateIndicator strip on each target table.
208
+ * @param message The custom message and its type.
209
+ * @param tabKey Tab key(s) identifying the target tables.
210
+ * @param onClose Optional close callback.
211
+ */
212
+ private showCustomMessage(message: LRCustomMessage, tabKey?: string[] | string | null, onClose?: Function): void {
213
+ this.ListReportMessageStrip ??= new LRMessageStrip();
214
+ this.ListReportMessageStrip.showCustomMessage(message, this._controller, tabKey, onClose);
215
+ if (message.message) {
216
+ InvisibleMessage.getInstance().announce(message.message, InvisibleMessageMode.Assertive);
217
+ }
218
+ }
219
+
220
+ /**
221
+ * Removes the custom MessageStrip from its target tables.
222
+ * @param [tabKeys] Tab indices to remove from. Undefined means all.
223
+ */
224
+ private removeCustomMessageStrip(tabKeys?: string[]): void {
225
+ this.customMessageStrip?.hide(tabKeys ? this.getInnerControls() : undefined, tabKeys);
226
+ }
227
+
228
+ /**
229
+ * Returns the page's inner controls for the building block.
230
+ * @returns The inner controls.
231
+ */
232
+ private getInnerControls(): Control[] {
233
+ if (this._controller._isMultiMode()) {
234
+ return this._controller._getMultiModeControl().getAllInnerControls() as unknown as Control[];
235
+ }
236
+ const tableAPI = (this._controller._getTable() as Table).getParent() as Control;
237
+ return [tableAPI];
238
+ }
239
+
240
+ /**
241
+ * Normalizes the public-API tabKey parameter into an array of tab indices.
242
+ * @param [tabKey] Tab key, array of tab keys, null, or undefined.
243
+ * @returns The tab indices, or undefined if no tabKey was provided.
244
+ */
245
+ private normalizeTabKey(tabKey?: string[] | string | null): string[] | undefined {
246
+ if (!tabKey) {
247
+ return undefined;
248
+ }
249
+ return Array.isArray(tabKey) ? tabKey : [tabKey];
250
+ }
251
+
177
252
  /**
178
253
  * Provides an option for the selection of a specific tab programamatically.
179
254
  * @param tabKey Specific tab to be selected.