@sapui5/sap.fe.macros 1.136.1 → 1.138.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 (173) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/CollectionBindingInfo.js +30 -3
  4. package/src/sap/fe/macros/CollectionBindingInfo.ts +32 -2
  5. package/src/sap/fe/macros/Field.js +16 -11
  6. package/src/sap/fe/macros/Field.ts +15 -7
  7. package/src/sap/fe/macros/FooterContent.js +6 -3
  8. package/src/sap/fe/macros/FooterContent.tsx +9 -3
  9. package/src/sap/fe/macros/FormElement.js +153 -0
  10. package/src/sap/fe/macros/FormElement.ts +114 -0
  11. package/src/sap/fe/macros/MacroAPI.js +3 -4
  12. package/src/sap/fe/macros/MacroAPI.ts +2 -2
  13. package/src/sap/fe/macros/MessageButton.js +13 -3
  14. package/src/sap/fe/macros/MessageButton.tsx +16 -2
  15. package/src/sap/fe/macros/MultiValueField.js +14 -4
  16. package/src/sap/fe/macros/MultiValueField.tsx +23 -3
  17. package/src/sap/fe/macros/Page.js +22 -3
  18. package/src/sap/fe/macros/Page.tsx +19 -1
  19. package/src/sap/fe/macros/Paginator.js +89 -36
  20. package/src/sap/fe/macros/Paginator.tsx +99 -35
  21. package/src/sap/fe/macros/Share.js +135 -8
  22. package/src/sap/fe/macros/Share.tsx +136 -5
  23. package/src/sap/fe/macros/ValueHelp.js +29 -4
  24. package/src/sap/fe/macros/ValueHelp.tsx +46 -4
  25. package/src/sap/fe/macros/ai/EasyFillButton.js +2 -2
  26. package/src/sap/fe/macros/ai/EasyFillButton.tsx +1 -1
  27. package/src/sap/fe/macros/ai/EasyFillDialog.js +3 -3
  28. package/src/sap/fe/macros/ai/EasyFillDialog.tsx +2 -2
  29. package/src/sap/fe/macros/ai/SummarizationButton.js +24 -13
  30. package/src/sap/fe/macros/ai/SummarizationButton.tsx +12 -11
  31. package/src/sap/fe/macros/chart/MdcChartTemplate.js +4 -1
  32. package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +9 -1
  33. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +2 -2
  34. package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +1 -1
  35. package/src/sap/fe/macros/controls/FieldWrapper.js +36 -11
  36. package/src/sap/fe/macros/controls/FieldWrapper.ts +18 -0
  37. package/src/sap/fe/macros/controls/FileWrapper.js +3 -15
  38. package/src/sap/fe/macros/controls/FileWrapper.ts +1 -12
  39. package/src/sap/fe/macros/controls/RadioButtons.js +15 -3
  40. package/src/sap/fe/macros/controls/RadioButtons.tsx +7 -0
  41. package/src/sap/fe/macros/controls/Section.js +38 -20
  42. package/src/sap/fe/macros/controls/Section.ts +37 -19
  43. package/src/sap/fe/macros/controls/section/SubSection.js +17 -1
  44. package/src/sap/fe/macros/controls/section/SubSection.ts +18 -0
  45. package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +22 -4
  46. package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +30 -10
  47. package/src/sap/fe/macros/filter/FilterUtils.js +7 -7
  48. package/src/sap/fe/macros/filter/FilterUtils.ts +6 -6
  49. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +4 -2
  50. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +3 -1
  51. package/src/sap/fe/macros/filterBar/FilterBarSummary.js +3 -4
  52. package/src/sap/fe/macros/filterBar/FilterBarSummary.tsx +2 -2
  53. package/src/sap/fe/macros/filterBar/FilterHelper.js +29 -6
  54. package/src/sap/fe/macros/filterBar/FilterHelper.ts +38 -10
  55. package/src/sap/fe/macros/form/Form.block.js +5 -3
  56. package/src/sap/fe/macros/form/Form.block.ts +5 -3
  57. package/src/sap/fe/macros/form/Form.js +55 -0
  58. package/src/sap/fe/macros/form/Form.tsx +44 -0
  59. package/src/sap/fe/macros/form/FormContainerAPI.js +16 -14
  60. package/src/sap/fe/macros/form/FormContainerAPI.ts +15 -13
  61. package/src/sap/fe/macros/formatters/VisualFilterFormatter.js +40 -0
  62. package/src/sap/fe/macros/formatters/VisualFilterFormatter.ts +33 -0
  63. package/src/sap/fe/macros/inlineEdit/InlineEdit.js +2 -2
  64. package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +1 -1
  65. package/src/sap/fe/macros/internal/DataPoint.js +4 -2
  66. package/src/sap/fe/macros/internal/DataPoint.tsx +3 -1
  67. package/src/sap/fe/macros/internal/field/DisplayStyle.js +17 -8
  68. package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +13 -4
  69. package/src/sap/fe/macros/internal/field/EditStyle.js +3 -3
  70. package/src/sap/fe/macros/internal/field/EditStyle.tsx +2 -2
  71. package/src/sap/fe/macros/internal/field/FieldStructure.js +7 -1
  72. package/src/sap/fe/macros/internal/field/FieldStructure.tsx +7 -0
  73. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +3 -3
  74. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +3 -5
  75. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +2 -2
  76. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +14 -12
  77. package/src/sap/fe/macros/library.js +1 -1
  78. package/src/sap/fe/macros/macroLibrary.js +3 -3
  79. package/src/sap/fe/macros/macroLibrary.ts +0 -2
  80. package/src/sap/fe/macros/mdc/adapter/SelectionVariantToStateFilters.js +4 -3
  81. package/src/sap/fe/macros/mdc/adapter/SelectionVariantToStateFilters.ts +3 -3
  82. package/src/sap/fe/macros/messagebundle.properties +7 -1
  83. package/src/sap/fe/macros/messagebundle_ar.properties +56 -5
  84. package/src/sap/fe/macros/messagebundle_bg.properties +56 -5
  85. package/src/sap/fe/macros/messagebundle_ca.properties +56 -5
  86. package/src/sap/fe/macros/messagebundle_cnr.properties +56 -5
  87. package/src/sap/fe/macros/messagebundle_cs.properties +56 -5
  88. package/src/sap/fe/macros/messagebundle_cy.properties +56 -5
  89. package/src/sap/fe/macros/messagebundle_da.properties +56 -5
  90. package/src/sap/fe/macros/messagebundle_de.properties +56 -5
  91. package/src/sap/fe/macros/messagebundle_el.properties +55 -4
  92. package/src/sap/fe/macros/messagebundle_en.properties +56 -5
  93. package/src/sap/fe/macros/messagebundle_en_GB.properties +56 -5
  94. package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +54 -5
  95. package/src/sap/fe/macros/messagebundle_es.properties +57 -6
  96. package/src/sap/fe/macros/messagebundle_es_MX.properties +59 -8
  97. package/src/sap/fe/macros/messagebundle_et.properties +57 -6
  98. package/src/sap/fe/macros/messagebundle_fi.properties +56 -5
  99. package/src/sap/fe/macros/messagebundle_fr.properties +56 -5
  100. package/src/sap/fe/macros/messagebundle_fr_CA.properties +62 -11
  101. package/src/sap/fe/macros/messagebundle_hi.properties +56 -5
  102. package/src/sap/fe/macros/messagebundle_hr.properties +56 -5
  103. package/src/sap/fe/macros/messagebundle_hu.properties +56 -5
  104. package/src/sap/fe/macros/messagebundle_id.properties +63 -12
  105. package/src/sap/fe/macros/messagebundle_it.properties +56 -5
  106. package/src/sap/fe/macros/messagebundle_iw.properties +56 -5
  107. package/src/sap/fe/macros/messagebundle_ja.properties +56 -5
  108. package/src/sap/fe/macros/messagebundle_kk.properties +56 -5
  109. package/src/sap/fe/macros/messagebundle_ko.properties +56 -5
  110. package/src/sap/fe/macros/messagebundle_lt.properties +56 -5
  111. package/src/sap/fe/macros/messagebundle_lv.properties +56 -5
  112. package/src/sap/fe/macros/messagebundle_mk.properties +56 -5
  113. package/src/sap/fe/macros/messagebundle_ms.properties +57 -6
  114. package/src/sap/fe/macros/messagebundle_nl.properties +56 -5
  115. package/src/sap/fe/macros/messagebundle_no.properties +56 -5
  116. package/src/sap/fe/macros/messagebundle_pl.properties +58 -7
  117. package/src/sap/fe/macros/messagebundle_pt.properties +56 -5
  118. package/src/sap/fe/macros/messagebundle_pt_PT.properties +55 -4
  119. package/src/sap/fe/macros/messagebundle_ro.properties +56 -5
  120. package/src/sap/fe/macros/messagebundle_ru.properties +56 -5
  121. package/src/sap/fe/macros/messagebundle_sh.properties +56 -5
  122. package/src/sap/fe/macros/messagebundle_sk.properties +56 -5
  123. package/src/sap/fe/macros/messagebundle_sl.properties +57 -6
  124. package/src/sap/fe/macros/messagebundle_sr.properties +56 -5
  125. package/src/sap/fe/macros/messagebundle_sv.properties +56 -5
  126. package/src/sap/fe/macros/messagebundle_th.properties +56 -5
  127. package/src/sap/fe/macros/messagebundle_tr.properties +56 -5
  128. package/src/sap/fe/macros/messagebundle_uk.properties +57 -6
  129. package/src/sap/fe/macros/messagebundle_vi.properties +56 -5
  130. package/src/sap/fe/macros/messagebundle_zh_CN.properties +56 -5
  131. package/src/sap/fe/macros/messagebundle_zh_TW.properties +56 -5
  132. package/src/sap/fe/macros/messages/MessageButton.js +14 -3
  133. package/src/sap/fe/macros/messages/MessageButton.ts +33 -20
  134. package/src/sap/fe/macros/microchart/MicroChartContainer.js +10 -8
  135. package/src/sap/fe/macros/microchart/MicroChartContainer.ts +10 -8
  136. package/src/sap/fe/macros/quickView/QuickViewHeaderOptions.js +4 -3
  137. package/src/sap/fe/macros/quickView/QuickViewHeaderOptions.tsx +2 -2
  138. package/src/sap/fe/macros/situations/SituationsPopover.js +1 -2
  139. package/src/sap/fe/macros/situations/SituationsPopover.ts +0 -1
  140. package/src/sap/fe/macros/table/Action.js +15 -2
  141. package/src/sap/fe/macros/table/Action.ts +7 -0
  142. package/src/sap/fe/macros/table/ActionOverride.js +15 -2
  143. package/src/sap/fe/macros/table/ActionOverride.ts +7 -0
  144. package/src/sap/fe/macros/table/Column.js +7 -2
  145. package/src/sap/fe/macros/table/Column.ts +6 -1
  146. package/src/sap/fe/macros/table/ColumnOverride.js +4 -1
  147. package/src/sap/fe/macros/table/ColumnOverride.ts +3 -0
  148. package/src/sap/fe/macros/table/MdcTableTemplate.js +6 -4
  149. package/src/sap/fe/macros/table/MdcTableTemplate.tsx +3 -1
  150. package/src/sap/fe/macros/table/Table.block.js +168 -128
  151. package/src/sap/fe/macros/table/Table.block.tsx +44 -13
  152. package/src/sap/fe/macros/table/TableAPI.js +237 -171
  153. package/src/sap/fe/macros/table/TableAPI.ts +75 -18
  154. package/src/sap/fe/macros/table/TableDefinition.js +3 -2
  155. package/src/sap/fe/macros/table/TableDefinition.ts +2 -1
  156. package/src/sap/fe/macros/table/TableRuntime.js +9 -8
  157. package/src/sap/fe/macros/table/TableRuntime.ts +8 -8
  158. package/src/sap/fe/macros/table/delegates/TableDelegate.js +45 -10
  159. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +41 -10
  160. package/src/sap/fe/macros/table/designtime/Table.designtime.helper.js +30 -4
  161. package/src/sap/fe/macros/table/designtime/Table.designtime.helper.ts +30 -2
  162. package/src/sap/fe/macros/table/designtime/Table.designtime.js +4 -1
  163. package/src/sap/fe/macros/table/designtime/Table.designtime.ts +3 -0
  164. package/src/sap/fe/macros/table/mixin/TableHierarchy.js +3 -2
  165. package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +2 -1
  166. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +58 -33
  167. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +67 -34
  168. package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +10 -7
  169. package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +15 -6
  170. package/src/sap/fe/macros/visualfilters/VisualFilter.js +8 -3
  171. package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +8 -1
  172. package/src/sap/fe/macros/form/FormElement.block.js +0 -179
  173. package/src/sap/fe/macros/form/FormElement.block.ts +0 -135
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.macros",
3
- "version": "1.136.1",
3
+ "version": "1.138.0",
4
4
  "description": "SAPUI5 Library sap.fe.macros",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -6,7 +6,7 @@
6
6
  SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.136.1</version>
9
+ <version>1.138.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.macros</documentation>
12
12
 
@@ -7,13 +7,14 @@ sap.ui.define(["sap/base/util/deepClone", "sap/ui/model/Filter"], function (deep
7
7
 
8
8
  var _exports = {};
9
9
  /**
10
- * API to add parameters to the collection binding infos.
10
+ * API to add parameters to the collection binding info.
11
11
  * @hideconstructor
12
12
  * @alias sap.fe.macros.CollectionBindingInfo
13
13
  * @public
14
14
  */
15
15
  let CollectionBindingInfoAPI = /*#__PURE__*/function () {
16
16
  function CollectionBindingInfoAPI(bindingInfo) {
17
+ this.attachedEvents = [];
17
18
  this.collectionBindingInfo = bindingInfo;
18
19
  }
19
20
 
@@ -21,7 +22,7 @@ sap.ui.define(["sap/base/util/deepClone", "sap/ui/model/Filter"], function (deep
21
22
  * Recursive cloning of the Filter.
22
23
  * Filters have a parameter aFilters which contains more filters, so we use this method to recursively clone it.
23
24
  * cloneFilters should be called first, to have the Filter outside an array and avoid an empty filter.
24
- * @param cloning The filter to clone
25
+ * @param cloning The filter to be cloned
25
26
  * @returns The cloned Filter
26
27
  */
27
28
  _exports = CollectionBindingInfoAPI;
@@ -136,10 +137,36 @@ sap.ui.define(["sap/base/util/deepClone", "sap/ui/model/Filter"], function (deep
136
137
  } else {
137
138
  this.collectionBindingInfo.sorter.push(sorter);
138
139
  }
140
+ }
141
+
142
+ /**
143
+ * Attach the events to the table binding.
144
+ * @param eventId The event ID to attach the callback to
145
+ * @param callback The callback function to be executed when the event is triggered
146
+ * @param listener The listener object that will be used as the context for the callback function
147
+ * @param data Data that will be passed to the callback function when the event is triggered
148
+ * @public
149
+ */;
150
+ _proto.attachEvent = function attachEvent(eventId, callback, listener, data) {
151
+ const handler = {
152
+ eventId,
153
+ callback,
154
+ listener,
155
+ data
156
+ };
157
+ this.attachedEvents.push(handler);
158
+ }
159
+
160
+ /**
161
+ * Gets the attached event handlers.
162
+ * @returns An array of attached event handlers.
163
+ */;
164
+ _proto.getAttachedEvents = function getAttachedEvents() {
165
+ return this.attachedEvents;
139
166
  };
140
167
  return CollectionBindingInfoAPI;
141
168
  }();
142
169
  _exports = CollectionBindingInfoAPI;
143
170
  return _exports;
144
171
  }, false);
145
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsZWN0aW9uQmluZGluZ0luZm9BUEkiLCJiaW5kaW5nSW5mbyIsImNvbGxlY3Rpb25CaW5kaW5nSW5mbyIsIl9leHBvcnRzIiwiX3Byb3RvIiwicHJvdG90eXBlIiwiY2xvbmVGaWx0ZXJzQ29udGVudCIsImNsb25pbmciLCJmaWx0ZXJJbmZvIiwicGF0aCIsImdldFBhdGgiLCJvcGVyYXRvciIsImdldE9wZXJhdG9yIiwidmFsdWUxIiwiZ2V0VmFsdWUxIiwidmFsdWUyIiwiZ2V0VmFsdWUyIiwidmFyaWFibGUiLCJnZXRWYXJpYWJsZSIsImNvbmRpdGlvbiIsImdldENvbmRpdGlvbiIsImFuZCIsImlzQW5kIiwiY2FzZVNlbnNpdGl2ZSIsImlzQ2FzZVNlbnNpdGl2ZSIsInRlc3RGbiIsImdldFRlc3QiLCJ1bmRlZmluZWQiLCJ0ZXN0IiwiY29tcGFyYXRvckZuIiwiZ2V0Q29tcGFyYXRvciIsImNvbXBhcmF0b3IiLCJmaWx0ZXJzIiwiZ2V0RmlsdGVycyIsImFycmF5RmlsdGVyIiwibWFwIiwic2luZ2xlRmlsdGVyIiwiRmlsdGVyIiwiYWRkRmlsdGVyIiwiY3VzdG9tRmlsdGVyIiwicHVzaCIsImdldFNvcnRlcnMiLCJzb3J0ZXIiLCJhZGRTZWxlY3QiLCJwYXJhbWV0ZXJzIiwicGFyYW1ldGVyU3RyaW5nIiwidG9TdHJpbmciLCIkc2VsZWN0IiwiZ2V0QmluZGluZ0luZm8iLCJjbG9uZWRCaW5kaW5nSW5mbyIsImV2ZW50cyIsImRlZXBDbG9uZSIsImFkZFNvcnRlciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiQ29sbGVjdGlvbkJpbmRpbmdJbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWVwQ2xvbmUgZnJvbSBcInNhcC9iYXNlL3V0aWwvZGVlcENsb25lXCI7XG5pbXBvcnQgRmlsdGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvRmlsdGVyXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJPcGVyYXRvciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlck9wZXJhdG9yXCI7XG5pbXBvcnQgdHlwZSBTb3J0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9Tb3J0ZXJcIjtcblxuZXhwb3J0IHR5cGUgRmlsdGVySW5mbyA9IHtcblx0cGF0aD86IHN0cmluZztcblx0dGVzdD86IChwMTogdW5rbm93bikgPT4gYm9vbGVhbjtcblx0Y29tcGFyYXRvcj86IChwMTogdW5rbm93biwgcDI6IHVua25vd24pID0+IG51bWJlcjtcblx0b3BlcmF0b3I/OlxuXHRcdHwgRmlsdGVyT3BlcmF0b3Jcblx0XHR8IFwiQWxsXCJcblx0XHR8IFwiQW55XCJcblx0XHR8IFwiQlRcIlxuXHRcdHwgXCJDb250YWluc1wiXG5cdFx0fCBcIkVuZHNXaXRoXCJcblx0XHR8IFwiRVFcIlxuXHRcdHwgXCJHRVwiXG5cdFx0fCBcIkdUXCJcblx0XHR8IFwiTEVcIlxuXHRcdHwgXCJMVFwiXG5cdFx0fCBcIk5CXCJcblx0XHR8IFwiTkVcIlxuXHRcdHwgXCJOb3RDb250YWluc1wiXG5cdFx0fCBcIk5vdEVuZHNXaXRoXCJcblx0XHR8IFwiTm90U3RhcnRzV2l0aFwiXG5cdFx0fCBcIlN0YXJ0c1dpdGhcIlxuXHRcdHwgdW5kZWZpbmVkO1xuXHR2YWx1ZTE/OiB1bmtub3duO1xuXHR2YWx1ZTI/OiB1bmtub3duO1xuXHR2YXJpYWJsZT86IHN0cmluZztcblx0Y29uZGl0aW9uPzogRmlsdGVyO1xuXHRmaWx0ZXJzPzogRmlsdGVyW107XG5cdGFuZD86IGJvb2xlYW47XG5cdGNhc2VTZW5zaXRpdmU/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvbkJpbmRpbmdJbmZvID0ge1xuXHRldmVudHM/OiBSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvbj47XG5cdHN1c3BlbmRlZD86IGJvb2xlYW47XG5cdHBhdGg/OiBzdHJpbmc7XG5cdGZpbHRlcnM/OiBGaWx0ZXI7XG5cdHNlYXJjaD86IHN0cmluZztcblx0cGFyYW1ldGVycz86IHtcblx0XHQkc2VhcmNoPzogc3RyaW5nO1xuXHRcdCRzZWxlY3Q/OiBzdHJpbmc7XG5cdFx0JCRhZ2dyZWdhdGlvbj86IEFnZ3JlZ2F0aW9uO1xuXHRcdCQkc2hhcmVkUmVxdWVzdD86IGJvb2xlYW47XG5cdFx0JGNvdW50PzogYm9vbGVhbjtcblx0XHQkJGNsZWFyU2VsZWN0aW9uT25GaWx0ZXI/OiBib29sZWFuO1xuXHRcdCQkZ2V0S2VlcEFsaXZlQ29udGV4dD86IGJvb2xlYW47XG5cdFx0JCRncm91cElkPzogc3RyaW5nO1xuXHRcdCQkdXBkYXRlR3JvdXBJZD86IHN0cmluZztcblx0XHQkJG93blJlcXVlc3Q/OiBib29sZWFuO1xuXHRcdCQkcGF0Y2hXaXRob3V0U2lkZUVmZmVjdHM/OiBib29sZWFuO1xuXHR9O1xuXHRzb3J0ZXI/OiBTb3J0ZXJbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEFnZ3JlZ2F0aW9uID0ge1xuXHRzZWFyY2g/OiBzdHJpbmc7XG5cdGV4cGFuZFRvPzogbnVtYmVyO1xuXHRoaWVyYXJjaHlRdWFsaWZpZXI/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEFQSSB0byBhZGQgcGFyYW1ldGVycyB0byB0aGUgY29sbGVjdGlvbiBiaW5kaW5nIGluZm9zLlxuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQGFsaWFzIHNhcC5mZS5tYWNyb3MuQ29sbGVjdGlvbkJpbmRpbmdJbmZvXG4gKiBAcHVibGljXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29sbGVjdGlvbkJpbmRpbmdJbmZvQVBJIHtcblx0cHJpdmF0ZSBjb2xsZWN0aW9uQmluZGluZ0luZm86IENvbGxlY3Rpb25CaW5kaW5nSW5mbztcblxuXHRjb25zdHJ1Y3RvcihiaW5kaW5nSW5mbzogQ29sbGVjdGlvbkJpbmRpbmdJbmZvKSB7XG5cdFx0dGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8gPSBiaW5kaW5nSW5mbztcblx0fVxuXG5cdC8qKlxuXHQgKiBSZWN1cnNpdmUgY2xvbmluZyBvZiB0aGUgRmlsdGVyLlxuXHQgKiBGaWx0ZXJzIGhhdmUgYSBwYXJhbWV0ZXIgYUZpbHRlcnMgd2hpY2ggY29udGFpbnMgbW9yZSBmaWx0ZXJzLCBzbyB3ZSB1c2UgdGhpcyBtZXRob2QgdG8gcmVjdXJzaXZlbHkgY2xvbmUgaXQuXG5cdCAqIGNsb25lRmlsdGVycyBzaG91bGQgYmUgY2FsbGVkIGZpcnN0LCB0byBoYXZlIHRoZSBGaWx0ZXIgb3V0c2lkZSBhbiBhcnJheSBhbmQgYXZvaWQgYW4gZW1wdHkgZmlsdGVyLlxuXHQgKiBAcGFyYW0gY2xvbmluZyBUaGUgZmlsdGVyIHRvIGNsb25lXG5cdCAqIEByZXR1cm5zIFRoZSBjbG9uZWQgRmlsdGVyXG5cdCAqL1xuXHRjbG9uZUZpbHRlcnNDb250ZW50KGNsb25pbmc6IEZpbHRlcik6IEZpbHRlciB7XG5cdFx0Y29uc3QgZmlsdGVySW5mbzogRmlsdGVySW5mbyA9IHtcblx0XHRcdHBhdGg6IGNsb25pbmcuZ2V0UGF0aCgpLFxuXHRcdFx0b3BlcmF0b3I6IGNsb25pbmcuZ2V0T3BlcmF0b3IoKSxcblx0XHRcdHZhbHVlMTogY2xvbmluZy5nZXRWYWx1ZTEoKSxcblx0XHRcdHZhbHVlMjogY2xvbmluZy5nZXRWYWx1ZTIoKSxcblx0XHRcdHZhcmlhYmxlOiBjbG9uaW5nLmdldFZhcmlhYmxlKCksXG5cdFx0XHRjb25kaXRpb246IGNsb25pbmcuZ2V0Q29uZGl0aW9uKCksXG5cdFx0XHRhbmQ6IGNsb25pbmcuaXNBbmQoKSxcblx0XHRcdGNhc2VTZW5zaXRpdmU6IGNsb25pbmcuaXNDYXNlU2Vuc2l0aXZlKClcblx0XHR9O1xuXG5cdFx0Y29uc3QgdGVzdEZuID0gY2xvbmluZy5nZXRUZXN0KCk7XG5cdFx0aWYgKHRlc3RGbiAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRmaWx0ZXJJbmZvLnRlc3QgPSB0ZXN0Rm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgY29tcGFyYXRvckZuID0gY2xvbmluZy5nZXRDb21wYXJhdG9yKCk7XG5cdFx0aWYgKGNvbXBhcmF0b3JGbiAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRmaWx0ZXJJbmZvLmNvbXBhcmF0b3IgPSBjb21wYXJhdG9yRm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgZmlsdGVycyA9IGNsb25pbmcuZ2V0RmlsdGVycygpO1xuXHRcdGNvbnN0IGFycmF5RmlsdGVyID0gZmlsdGVycz8ubWFwKChzaW5nbGVGaWx0ZXI6IEZpbHRlcikgPT4ge1xuXHRcdFx0cmV0dXJuIHRoaXMuY2xvbmVGaWx0ZXJzQ29udGVudChzaW5nbGVGaWx0ZXIpO1xuXHRcdH0pO1xuXHRcdGlmIChhcnJheUZpbHRlcikge1xuXHRcdFx0ZmlsdGVySW5mby5maWx0ZXJzID0gYXJyYXlGaWx0ZXI7XG5cdFx0fVxuXHRcdHJldHVybiBuZXcgRmlsdGVyKGZpbHRlckluZm8pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgZmlsdGVycyBhcHBsaWVkIHRvIHRoZSBUYWJsZS5cblx0ICogQHB1YmxpY1xuXHQgKiBAcmV0dXJucyBUaGUge0BsaW5rIHNhcC51aS5tb2RlbC5GaWx0ZXIgXCJmaWx0ZXJzXCJ9IG9uIHRoZSB0YWJsZVxuXHQgKi9cblx0Z2V0RmlsdGVycygpOiBGaWx0ZXIgfCB1bmRlZmluZWQge1xuXHRcdGlmICh0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5maWx0ZXJzKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5jbG9uZUZpbHRlcnNDb250ZW50KHRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvLmZpbHRlcnMpO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBmaWx0ZXIgdG8gdGhlIGZpbHRlcnMgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBiaW5kaW5nIGluZm8uXG5cdCAqIEBwYXJhbSBjdXN0b21GaWx0ZXIgVGhlIHtAbGluayBzYXAudWkubW9kZWwuRmlsdGVyIFwiZmlsdGVyXCJ9IHRvIGFkZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRhZGRGaWx0ZXIoY3VzdG9tRmlsdGVyOiBGaWx0ZXIpOiB2b2lkIHtcblx0XHRjb25zdCBmaWx0ZXJzID0gdGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8uZmlsdGVycyA/IFt0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5maWx0ZXJzXSA6IFtdO1xuXHRcdGZpbHRlcnMucHVzaChjdXN0b21GaWx0ZXIpO1xuXHRcdHRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvLmZpbHRlcnMgPSBuZXcgRmlsdGVyKGZpbHRlcnMsIHRydWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGN1cnJlbnQgc29ydGVycyBvZiB0aGUgVGFibGUuXG5cdCAqIEByZXR1cm5zIFRoZSB7QGxpbmsgc2FwLnVpLm1vZGVsLlNvcnRlciBcInNvcnRlcnNcIn0gb24gdGhlIHRhYmxlXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGdldFNvcnRlcnMoKTogU29ydGVyW10gfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5zb3J0ZXI7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBwYXJhbWV0ZXJzIHRvIHRoZSBzZWxlY3QgcXVlcnkuXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzIFRoZSBsaXN0IG9yIHByb3BlcnRpZXMgdG8gYWRkIHRvIHRoZSBxdWVyeVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRhZGRTZWxlY3QocGFyYW1ldGVyczogc3RyaW5nW10pOiB2b2lkIHtcblx0XHRjb25zdCBwYXJhbWV0ZXJTdHJpbmc6IHN0cmluZyA9IHBhcmFtZXRlcnMudG9TdHJpbmcoKTtcblx0XHRpZiAodGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8ucGFyYW1ldGVycz8uJHNlbGVjdCkge1xuXHRcdFx0dGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8ucGFyYW1ldGVycy4kc2VsZWN0ID0gdGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8ucGFyYW1ldGVycy4kc2VsZWN0ICsgXCIsXCIgKyBwYXJhbWV0ZXJTdHJpbmc7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvLnBhcmFtZXRlcnMgPz89IHt9O1xuXHRcdFx0dGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8ucGFyYW1ldGVycy4kc2VsZWN0ID0gcGFyYW1ldGVyU3RyaW5nO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBSZXRyaWV2ZSB0aGUgJ3NlcmlhbGl6ZWQnIGJpbmRpbmcgaW5mbywgdXNlZnVsIGlmIHlvdSB3YW50IHRvIGNyZWF0ZSB5b3VyIG93biBiaW5kaW5nXG5cdCAqIEByZXR1cm5zIHtDb2xsZWN0aW9uQmluZGluZ0luZm99IFRoZSB7QGxpbmsgc2FwLmZlLm1hY3Jvcy5Db2xsZWN0aW9uQmluZGluZ0luZm8gXCJDb2xsZWN0aW9uQmluZGluZ0luZm9cIn1cblx0ICogQHB1YmxpY1xuXHQgKi9cblxuXHRnZXRCaW5kaW5nSW5mbygpOiBDb2xsZWN0aW9uQmluZGluZ0luZm8ge1xuXHRcdGNvbnN0IGNsb25lZEJpbmRpbmdJbmZvID0geyAuLi50aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mbyB9O1xuXG5cdFx0Ly8gTWFraW5nIGRlZXBDbG9uZXMgb2Ygb2JqZWN0cyAoZXhjZXB0IFNvcnRlcnMgYmVjYXVzZSB3ZSBjYW4ndClcblx0XHRpZiAodGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8uZXZlbnRzKSB7XG5cdFx0XHRjbG9uZWRCaW5kaW5nSW5mby5ldmVudHMgPSBkZWVwQ2xvbmUodGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8uZXZlbnRzKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvLmZpbHRlcnMpIHtcblx0XHRcdGNsb25lZEJpbmRpbmdJbmZvLmZpbHRlcnMgPSB0aGlzLmNsb25lRmlsdGVyc0NvbnRlbnQodGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8uZmlsdGVycyk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5wYXJhbWV0ZXJzKSB7XG5cdFx0XHRkZWVwQ2xvbmUodGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8ucGFyYW1ldGVycyk7XG5cdFx0fVxuXHRcdHJldHVybiBjbG9uZWRCaW5kaW5nSW5mbztcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgc29ydGVyIHRvIHRoZSBzb3J0ZXIocykgYWxyZWFkeSBwcmVzZW50LCBvciBjcmVhdGUgb25lIGlmIG5vbmUgZXhpc3RzLlxuXHQgKiBAcGFyYW0gc29ydGVyIFRoZSB7QGxpbmsgc2FwLnVpLm1vZGVsLlNvcnRlciBcInNvcnRlclwifSB0byBhZGQgdG8gdGhlIHF1ZXJ5XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFkZFNvcnRlcihzb3J0ZXI6IFNvcnRlcik6IHZvaWQge1xuXHRcdGlmICghdGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8uc29ydGVyKSB7XG5cdFx0XHR0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5zb3J0ZXIgPSBbc29ydGVyXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8uc29ydGVyLnB1c2goc29ydGVyKTtcblx0XHR9XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7RUFpRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEEsSUFPcUJBLHdCQUF3QjtJQUc1QyxTQUFBQSx5QkFBWUMsV0FBa0MsRUFBRTtNQUMvQyxJQUFJLENBQUNDLHFCQUFxQixHQUFHRCxXQUFXO0lBQ3pDOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBTkNFLFFBQUEsR0FBQUgsd0JBQUE7SUFBQSxJQUFBSSxNQUFBLEdBQUFKLHdCQUFBLENBQUFLLFNBQUE7SUFBQUQsTUFBQSxDQU9BRSxtQkFBbUIsR0FBbkIsU0FBQUEsbUJBQW1CQSxDQUFDQyxPQUFlLEVBQVU7TUFDNUMsTUFBTUMsVUFBc0IsR0FBRztRQUM5QkMsSUFBSSxFQUFFRixPQUFPLENBQUNHLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCQyxRQUFRLEVBQUVKLE9BQU8sQ0FB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QUdGLGVBQWU7TUFDdEgsQ0FBQyxNQUFNO1FBQ04sSUFBSSxDQUFDM0MscUJBQXFCLENBQUMwQyxVQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQzFDLHFCQUFxQixDQUFDMEMsVUFBVSxDQUFDRyxPQUFPLEdBQUdGLGVBQWU7TUFDaEU7SUFDRDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQXpDLE1BQUEsQ0FNQTRDLGNBQWMsR0FBZCxTQUFBQSxjQUFjQSxDQUFBLEVBQTBCO01BQ3ZDLE1BQU1DLGlCQUFpQixHQUFHO1FBQUUsR0FBRyxJQUFJLENBQUMvQztNQUFzQixDQUFDOztNQUUzRDtNQUNBLElBQUksSUFBSSxDQUFDQSxxQkFBcUIsQ0FBQ2dELE1BQU0sRUFBRTtRQUN0Q0QsaUJBQWlCLENBQUNDLE1BQU0sR0FBR0MsU0FBUyxDQUFDLElBQUksQ0FBQ2pELHFCQUFxQixDQUFDZ0QsTUFBTSxDQUFDO01BQ3hFO01BQ0EsSUFBSSxJQUFJLENBQUNoRCxxQkFBcUIsQ0FBQzhCLE9BQU8sRUFBRTtRQUN2Q2lCLGlCQUFpQixDQUFDakIsT0FBTyxHQUFHLElBQUksQ0FBQzFCLG1CQUFtQixDQUFDLElBQUksQ0FBQ0oscUJBQXFCLENBQUM4QixPQUFPLENBQUM7TUFDekY7TUFDQSxJQUFJLElBQUksQ0FBQzlCLHFCQUFxQixDQUFDMEMsVUFBVSxFQUFFO1FBQzFDTyxTQUFTLENBQUMsSUFBSSxDQUFDakQscUJBQXFCLENBQUMwQyxVQUFVLENBQUM7TUFDakQ7TUFDQSxPQUFPSyxpQkFBaUI7SUFDekI7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQSxPQUpDO0lBQUE3QyxNQUFBLENBS0FnRCxTQUFTLEdBQVQsU0FBQUEsU0FBU0EsQ0FBQ1YsTUFBYyxFQUFRO01BQy9CLElBQUksQ0FBQyxJQUFJLENBQUN4QyxxQkFBcUIsQ0FBQ3dDLE1BQU0sRUFBRTtRQUN2QyxJQUFJLENBQUN4QyxxQkFBcUIsQ0FBQ3dDLE1BQU0sR0FBRyxDQUFDQSxNQUFNLENBQUM7TUFDN0MsQ0FBQyxNQUFNO1FBQ04sSUFBSSxDQUFDeEMscUJBQXFCLENBQUN3QyxNQUFNLENBQUNGLElBQUksQ0FBQ0UsTUFBTSxDQUFDO01BQy9DO0lBQ0QsQ0FBQztJQUFBLE9BQUExQyx3QkFBQTtFQUFBO0VBQUFHLFFBQUEsR0FBQUgsd0JBQUE7RUFBQSxPQUFBRyxRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
172
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsZWN0aW9uQmluZGluZ0luZm9BUEkiLCJiaW5kaW5nSW5mbyIsImF0dGFjaGVkRXZlbnRzIiwiY29sbGVjdGlvbkJpbmRpbmdJbmZvIiwiX2V4cG9ydHMiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJjbG9uZUZpbHRlcnNDb250ZW50IiwiY2xvbmluZyIsImZpbHRlckluZm8iLCJwYXRoIiwiZ2V0UGF0aCIsIm9wZXJhdG9yIiwiZ2V0T3BlcmF0b3IiLCJ2YWx1ZTEiLCJnZXRWYWx1ZTEiLCJ2YWx1ZTIiLCJnZXRWYWx1ZTIiLCJ2YXJpYWJsZSIsImdldFZhcmlhYmxlIiwiY29uZGl0aW9uIiwiZ2V0Q29uZGl0aW9uIiwiYW5kIiwiaXNBbmQiLCJjYXNlU2Vuc2l0aXZlIiwiaXNDYXNlU2Vuc2l0aXZlIiwidGVzdEZuIiwiZ2V0VGVzdCIsInVuZGVmaW5lZCIsInRlc3QiLCJjb21wYXJhdG9yRm4iLCJnZXRDb21wYXJhdG9yIiwiY29tcGFyYXRvciIsImZpbHRlcnMiLCJnZXRGaWx0ZXJzIiwiYXJyYXlGaWx0ZXIiLCJtYXAiLCJzaW5nbGVGaWx0ZXIiLCJGaWx0ZXIiLCJhZGRGaWx0ZXIiLCJjdXN0b21GaWx0ZXIiLCJwdXNoIiwiZ2V0U29ydGVycyIsInNvcnRlciIsImFkZFNlbGVjdCIsInBhcmFtZXRlcnMiLCJwYXJhbWV0ZXJTdHJpbmciLCJ0b1N0cmluZyIsIiRzZWxlY3QiLCJnZXRCaW5kaW5nSW5mbyIsImNsb25lZEJpbmRpbmdJbmZvIiwiZXZlbnRzIiwiZGVlcENsb25lIiwiYWRkU29ydGVyIiwiYXR0YWNoRXZlbnQiLCJldmVudElkIiwiY2FsbGJhY2siLCJsaXN0ZW5lciIsImRhdGEiLCJoYW5kbGVyIiwiZ2V0QXR0YWNoZWRFdmVudHMiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkNvbGxlY3Rpb25CaW5kaW5nSW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVlcENsb25lIGZyb20gXCJzYXAvYmFzZS91dGlsL2RlZXBDbG9uZVwiO1xuaW1wb3J0IEZpbHRlciBmcm9tIFwic2FwL3VpL21vZGVsL0ZpbHRlclwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyT3BlcmF0b3IgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJPcGVyYXRvclwiO1xuaW1wb3J0IHR5cGUgU29ydGVyIGZyb20gXCJzYXAvdWkvbW9kZWwvU29ydGVyXCI7XG5cbmV4cG9ydCB0eXBlIEZpbHRlckluZm8gPSB7XG5cdHBhdGg/OiBzdHJpbmc7XG5cdHRlc3Q/OiAocDE6IHVua25vd24pID0+IGJvb2xlYW47XG5cdGNvbXBhcmF0b3I/OiAocDE6IHVua25vd24sIHAyOiB1bmtub3duKSA9PiBudW1iZXI7XG5cdG9wZXJhdG9yPzpcblx0XHR8IEZpbHRlck9wZXJhdG9yXG5cdFx0fCBcIkFsbFwiXG5cdFx0fCBcIkFueVwiXG5cdFx0fCBcIkJUXCJcblx0XHR8IFwiQ29udGFpbnNcIlxuXHRcdHwgXCJFbmRzV2l0aFwiXG5cdFx0fCBcIkVRXCJcblx0XHR8IFwiR0VcIlxuXHRcdHwgXCJHVFwiXG5cdFx0fCBcIkxFXCJcblx0XHR8IFwiTFRcIlxuXHRcdHwgXCJOQlwiXG5cdFx0fCBcIk5FXCJcblx0XHR8IFwiTm90Q29udGFpbnNcIlxuXHRcdHwgXCJOb3RFbmRzV2l0aFwiXG5cdFx0fCBcIk5vdFN0YXJ0c1dpdGhcIlxuXHRcdHwgXCJTdGFydHNXaXRoXCJcblx0XHR8IHVuZGVmaW5lZDtcblx0dmFsdWUxPzogdW5rbm93bjtcblx0dmFsdWUyPzogdW5rbm93bjtcblx0dmFyaWFibGU/OiBzdHJpbmc7XG5cdGNvbmRpdGlvbj86IEZpbHRlcjtcblx0ZmlsdGVycz86IEZpbHRlcltdO1xuXHRhbmQ/OiBib29sZWFuO1xuXHRjYXNlU2Vuc2l0aXZlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIENvbGxlY3Rpb25CaW5kaW5nSW5mbyA9IHtcblx0ZXZlbnRzPzogUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+O1xuXHRzdXNwZW5kZWQ/OiBib29sZWFuO1xuXHRwYXRoPzogc3RyaW5nO1xuXHRmaWx0ZXJzPzogRmlsdGVyO1xuXHRzZWFyY2g/OiBzdHJpbmc7XG5cdHBhcmFtZXRlcnM/OiB7XG5cdFx0JHNlYXJjaD86IHN0cmluZztcblx0XHQkc2VsZWN0Pzogc3RyaW5nO1xuXHRcdCQkYWdncmVnYXRpb24/OiBBZ2dyZWdhdGlvbjtcblx0XHQkJHNoYXJlZFJlcXVlc3Q/OiBib29sZWFuO1xuXHRcdCRjb3VudD86IGJvb2xlYW47XG5cdFx0JCRjbGVhclNlbGVjdGlvbk9uRmlsdGVyPzogYm9vbGVhbjtcblx0XHQkJGdldEtlZXBBbGl2ZUNvbnRleHQ/OiBib29sZWFuO1xuXHRcdCQkZ3JvdXBJZD86IHN0cmluZztcblx0XHQkJHVwZGF0ZUdyb3VwSWQ/OiBzdHJpbmc7XG5cdFx0JCRvd25SZXF1ZXN0PzogYm9vbGVhbjtcblx0XHQkJHBhdGNoV2l0aG91dFNpZGVFZmZlY3RzPzogYm9vbGVhbjtcblx0fTtcblx0c29ydGVyPzogU29ydGVyW107XG59O1xuXG5leHBvcnQgdHlwZSBBZ2dyZWdhdGlvbiA9IHtcblx0c2VhcmNoPzogc3RyaW5nO1xuXHRleHBhbmRUbz86IG51bWJlcjtcblx0aGllcmFyY2h5UXVhbGlmaWVyPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgRXZlbnRIYW5kbGVyID0ge1xuXHRldmVudElkOiBzdHJpbmc7XG5cdGNhbGxiYWNrOiBGdW5jdGlvbjtcblx0bGlzdGVuZXI/OiBvYmplY3Q7XG5cdGRhdGE/OiBvYmplY3Q7XG59O1xuXG4vKipcbiAqIEFQSSB0byBhZGQgcGFyYW1ldGVycyB0byB0aGUgY29sbGVjdGlvbiBiaW5kaW5nIGluZm8uXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5Db2xsZWN0aW9uQmluZGluZ0luZm9cbiAqIEBwdWJsaWNcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2xsZWN0aW9uQmluZGluZ0luZm9BUEkge1xuXHRwcml2YXRlIGNvbGxlY3Rpb25CaW5kaW5nSW5mbzogQ29sbGVjdGlvbkJpbmRpbmdJbmZvO1xuXG5cdHByaXZhdGUgYXR0YWNoZWRFdmVudHM6IEV2ZW50SGFuZGxlcltdID0gW107XG5cblx0Y29uc3RydWN0b3IoYmluZGluZ0luZm86IENvbGxlY3Rpb25CaW5kaW5nSW5mbykge1xuXHRcdHRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvID0gYmluZGluZ0luZm87XG5cdH1cblxuXHQvKipcblx0ICogUmVjdXJzaXZlIGNsb25pbmcgb2YgdGhlIEZpbHRlci5cblx0ICogRmlsdGVycyBoYXZlIGEgcGFyYW1ldGVyIGFGaWx0ZXJzIHdoaWNoIGNvbnRhaW5zIG1vcmUgZmlsdGVycywgc28gd2UgdXNlIHRoaXMgbWV0aG9kIHRvIHJlY3Vyc2l2ZWx5IGNsb25lIGl0LlxuXHQgKiBjbG9uZUZpbHRlcnMgc2hvdWxkIGJlIGNhbGxlZCBmaXJzdCwgdG8gaGF2ZSB0aGUgRmlsdGVyIG91dHNpZGUgYW4gYXJyYXkgYW5kIGF2b2lkIGFuIGVtcHR5IGZpbHRlci5cblx0ICogQHBhcmFtIGNsb25pbmcgVGhlIGZpbHRlciB0byBiZSBjbG9uZWRcblx0ICogQHJldHVybnMgVGhlIGNsb25lZCBGaWx0ZXJcblx0ICovXG5cdGNsb25lRmlsdGVyc0NvbnRlbnQoY2xvbmluZzogRmlsdGVyKTogRmlsdGVyIHtcblx0XHRjb25zdCBmaWx0ZXJJbmZvOiBGaWx0ZXJJbmZvID0ge1xuXHRcdFx0cGF0aDogY2xvbmluZy5nZXRQYXRoKCksXG5cdFx0XHRvcGVyYXRvcjogY2xvbmluZy5nZXRPcGVyYXRvcigpLFxuXHRcdFx0dmFsdWUxOiBjbG9uaW5nLmdldFZhbHVlMSgpLFxuXHRcdFx0dmFsdWUyOiBjbG9uaW5nLmdldFZhbHVlMigpLFxuXHRcdFx0dmFyaWFibGU6IGNsb25pbmcuZ2V0VmFyaWFibGUoKSxcblx0XHRcdGNvbmRpdGlvbjogY2xvbmluZy5nZXRDb25kaXRpb24oKSxcblx0XHRcdGFuZDogY2xvbmluZy5pc0FuZCgpLFxuXHRcdFx0Y2FzZVNlbnNpdGl2ZTogY2xvbmluZy5pc0Nhc2VTZW5zaXRpdmUoKVxuXHRcdH07XG5cblx0XHRjb25zdCB0ZXN0Rm4gPSBjbG9uaW5nLmdldFRlc3QoKTtcblx0XHRpZiAodGVzdEZuICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGZpbHRlckluZm8udGVzdCA9IHRlc3RGbjtcblx0XHR9XG5cblx0XHRjb25zdCBjb21wYXJhdG9yRm4gPSBjbG9uaW5nLmdldENvbXBhcmF0b3IoKTtcblx0XHRpZiAoY29tcGFyYXRvckZuICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdGZpbHRlckluZm8uY29tcGFyYXRvciA9IGNvbXBhcmF0b3JGbjtcblx0XHR9XG5cblx0XHRjb25zdCBmaWx0ZXJzID0gY2xvbmluZy5nZXRGaWx0ZXJzKCk7XG5cdFx0Y29uc3QgYXJyYXlGaWx0ZXIgPSBmaWx0ZXJzPy5tYXAoKHNpbmdsZUZpbHRlcjogRmlsdGVyKSA9PiB7XG5cdFx0XHRyZXR1cm4gdGhpcy5jbG9uZUZpbHRlcnNDb250ZW50KHNpbmdsZUZpbHRlcik7XG5cdFx0fSk7XG5cdFx0aWYgKGFycmF5RmlsdGVyKSB7XG5cdFx0XHRmaWx0ZXJJbmZvLmZpbHRlcnMgPSBhcnJheUZpbHRlcjtcblx0XHR9XG5cdFx0cmV0dXJuIG5ldyBGaWx0ZXIoZmlsdGVySW5mbyk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgY3VycmVudCBmaWx0ZXJzIGFwcGxpZWQgdG8gdGhlIFRhYmxlLlxuXHQgKiBAcHVibGljXG5cdCAqIEByZXR1cm5zIFRoZSB7QGxpbmsgc2FwLnVpLm1vZGVsLkZpbHRlciBcImZpbHRlcnNcIn0gb24gdGhlIHRhYmxlXG5cdCAqL1xuXHRnZXRGaWx0ZXJzKCk6IEZpbHRlciB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvLmZpbHRlcnMpIHtcblx0XHRcdHJldHVybiB0aGlzLmNsb25lRmlsdGVyc0NvbnRlbnQodGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8uZmlsdGVycyk7XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogQWRkcyBhIGZpbHRlciB0byB0aGUgZmlsdGVycyBhbHJlYWR5IHByZXNlbnQgaW4gdGhlIGJpbmRpbmcgaW5mby5cblx0ICogQHBhcmFtIGN1c3RvbUZpbHRlciBUaGUge0BsaW5rIHNhcC51aS5tb2RlbC5GaWx0ZXIgXCJmaWx0ZXJcIn0gdG8gYWRkXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFkZEZpbHRlcihjdXN0b21GaWx0ZXI6IEZpbHRlcik6IHZvaWQge1xuXHRcdGNvbnN0IGZpbHRlcnMgPSB0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5maWx0ZXJzID8gW3RoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvLmZpbHRlcnNdIDogW107XG5cdFx0ZmlsdGVycy5wdXNoKGN1c3RvbUZpbHRlcik7XG5cdFx0dGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8uZmlsdGVycyA9IG5ldyBGaWx0ZXIoZmlsdGVycywgdHJ1ZSk7XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgY3VycmVudCBzb3J0ZXJzIG9mIHRoZSBUYWJsZS5cblx0ICogQHJldHVybnMgVGhlIHtAbGluayBzYXAudWkubW9kZWwuU29ydGVyIFwic29ydGVyc1wifSBvbiB0aGUgdGFibGVcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Z2V0U29ydGVycygpOiBTb3J0ZXJbXSB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvLnNvcnRlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIHBhcmFtZXRlcnMgdG8gdGhlIHNlbGVjdCBxdWVyeS5cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgVGhlIGxpc3Qgb3IgcHJvcGVydGllcyB0byBhZGQgdG8gdGhlIHF1ZXJ5XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFkZFNlbGVjdChwYXJhbWV0ZXJzOiBzdHJpbmdbXSk6IHZvaWQge1xuXHRcdGNvbnN0IHBhcmFtZXRlclN0cmluZzogc3RyaW5nID0gcGFyYW1ldGVycy50b1N0cmluZygpO1xuXHRcdGlmICh0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5wYXJhbWV0ZXJzPy4kc2VsZWN0KSB7XG5cdFx0XHR0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5wYXJhbWV0ZXJzLiRzZWxlY3QgPSB0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5wYXJhbWV0ZXJzLiRzZWxlY3QgKyBcIixcIiArIHBhcmFtZXRlclN0cmluZztcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8ucGFyYW1ldGVycyA/Pz0ge307XG5cdFx0XHR0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5wYXJhbWV0ZXJzLiRzZWxlY3QgPSBwYXJhbWV0ZXJTdHJpbmc7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHJpZXZlIHRoZSAnc2VyaWFsaXplZCcgYmluZGluZyBpbmZvLCB1c2VmdWwgaWYgeW91IHdhbnQgdG8gY3JlYXRlIHlvdXIgb3duIGJpbmRpbmdcblx0ICogQHJldHVybnMge0NvbGxlY3Rpb25CaW5kaW5nSW5mb30gVGhlIHtAbGluayBzYXAuZmUubWFjcm9zLkNvbGxlY3Rpb25CaW5kaW5nSW5mbyBcIkNvbGxlY3Rpb25CaW5kaW5nSW5mb1wifVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXG5cdGdldEJpbmRpbmdJbmZvKCk6IENvbGxlY3Rpb25CaW5kaW5nSW5mbyB7XG5cdFx0Y29uc3QgY2xvbmVkQmluZGluZ0luZm8gPSB7IC4uLnRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvIH07XG5cblx0XHQvLyBNYWtpbmcgZGVlcENsb25lcyBvZiBvYmplY3RzIChleGNlcHQgU29ydGVycyBiZWNhdXNlIHdlIGNhbid0KVxuXHRcdGlmICh0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5ldmVudHMpIHtcblx0XHRcdGNsb25lZEJpbmRpbmdJbmZvLmV2ZW50cyA9IGRlZXBDbG9uZSh0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5ldmVudHMpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5jb2xsZWN0aW9uQmluZGluZ0luZm8uZmlsdGVycykge1xuXHRcdFx0Y2xvbmVkQmluZGluZ0luZm8uZmlsdGVycyA9IHRoaXMuY2xvbmVGaWx0ZXJzQ29udGVudCh0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5maWx0ZXJzKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvLnBhcmFtZXRlcnMpIHtcblx0XHRcdGRlZXBDbG9uZSh0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5wYXJhbWV0ZXJzKTtcblx0XHR9XG5cdFx0cmV0dXJuIGNsb25lZEJpbmRpbmdJbmZvO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZHMgYSBzb3J0ZXIgdG8gdGhlIHNvcnRlcihzKSBhbHJlYWR5IHByZXNlbnQsIG9yIGNyZWF0ZSBvbmUgaWYgbm9uZSBleGlzdHMuXG5cdCAqIEBwYXJhbSBzb3J0ZXIgVGhlIHtAbGluayBzYXAudWkubW9kZWwuU29ydGVyIFwic29ydGVyXCJ9IHRvIGFkZCB0byB0aGUgcXVlcnlcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YWRkU29ydGVyKHNvcnRlcjogU29ydGVyKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5zb3J0ZXIpIHtcblx0XHRcdHRoaXMuY29sbGVjdGlvbkJpbmRpbmdJbmZvLnNvcnRlciA9IFtzb3J0ZXJdO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmNvbGxlY3Rpb25CaW5kaW5nSW5mby5zb3J0ZXIucHVzaChzb3J0ZXIpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBBdHRhY2ggdGhlIGV2ZW50cyB0byB0aGUgdGFibGUgYmluZGluZy5cblx0ICogQHBhcmFtIGV2ZW50SWQgVGhlIGV2ZW50IElEIHRvIGF0dGFjaCB0aGUgY2FsbGJhY2sgdG9cblx0ICogQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIHRoZSBldmVudCBpcyB0cmlnZ2VyZWRcblx0ICogQHBhcmFtIGxpc3RlbmVyIFRoZSBsaXN0ZW5lciBvYmplY3QgdGhhdCB3aWxsIGJlIHVzZWQgYXMgdGhlIGNvbnRleHQgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvblxuXHQgKiBAcGFyYW0gZGF0YSBEYXRhIHRoYXQgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gdGhlIGV2ZW50IGlzIHRyaWdnZXJlZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRhdHRhY2hFdmVudChldmVudElkOiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbiwgbGlzdGVuZXI/OiBvYmplY3QsIGRhdGE/OiBvYmplY3QpOiB2b2lkIHtcblx0XHRjb25zdCBoYW5kbGVyOiBFdmVudEhhbmRsZXIgPSB7IGV2ZW50SWQsIGNhbGxiYWNrLCBsaXN0ZW5lciwgZGF0YSB9O1xuXHRcdHRoaXMuYXR0YWNoZWRFdmVudHMucHVzaChoYW5kbGVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBhdHRhY2hlZCBldmVudCBoYW5kbGVycy5cblx0ICogQHJldHVybnMgQW4gYXJyYXkgb2YgYXR0YWNoZWQgZXZlbnQgaGFuZGxlcnMuXG5cdCAqL1xuXHRnZXRBdHRhY2hlZEV2ZW50cygpOiBFdmVudEhhbmRsZXJbXSB7XG5cdFx0cmV0dXJuIHRoaXMuYXR0YWNoZWRFdmVudHM7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7RUF3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEEsSUFPcUJBLHdCQUF3QjtJQUs1QyxTQUFBQSx5QkFBWUMsV0FBa0MsRUFBRTtNQUFBLEtBRnhDQyxjQUFjLEdBQW1CLEVBQUU7TUFHMUMsSUFBSSxDQUFDQyxxQkFBcUIsR0FBR0YsV0FBVztJQUN6Qzs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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
@@ -63,8 +63,15 @@ export type Aggregation = {
63
63
  hierarchyQualifier?: string;
64
64
  };
65
65
 
66
+ export type EventHandler = {
67
+ eventId: string;
68
+ callback: Function;
69
+ listener?: object;
70
+ data?: object;
71
+ };
72
+
66
73
  /**
67
- * API to add parameters to the collection binding infos.
74
+ * API to add parameters to the collection binding info.
68
75
  * @hideconstructor
69
76
  * @alias sap.fe.macros.CollectionBindingInfo
70
77
  * @public
@@ -73,6 +80,8 @@ export type Aggregation = {
73
80
  export default class CollectionBindingInfoAPI {
74
81
  private collectionBindingInfo: CollectionBindingInfo;
75
82
 
83
+ private attachedEvents: EventHandler[] = [];
84
+
76
85
  constructor(bindingInfo: CollectionBindingInfo) {
77
86
  this.collectionBindingInfo = bindingInfo;
78
87
  }
@@ -81,7 +90,7 @@ export default class CollectionBindingInfoAPI {
81
90
  * Recursive cloning of the Filter.
82
91
  * Filters have a parameter aFilters which contains more filters, so we use this method to recursively clone it.
83
92
  * cloneFilters should be called first, to have the Filter outside an array and avoid an empty filter.
84
- * @param cloning The filter to clone
93
+ * @param cloning The filter to be cloned
85
94
  * @returns The cloned Filter
86
95
  */
87
96
  cloneFiltersContent(cloning: Filter): Filter {
@@ -197,4 +206,25 @@ export default class CollectionBindingInfoAPI {
197
206
  this.collectionBindingInfo.sorter.push(sorter);
198
207
  }
199
208
  }
209
+
210
+ /**
211
+ * Attach the events to the table binding.
212
+ * @param eventId The event ID to attach the callback to
213
+ * @param callback The callback function to be executed when the event is triggered
214
+ * @param listener The listener object that will be used as the context for the callback function
215
+ * @param data Data that will be passed to the callback function when the event is triggered
216
+ * @public
217
+ */
218
+ attachEvent(eventId: string, callback: Function, listener?: object, data?: object): void {
219
+ const handler: EventHandler = { eventId, callback, listener, data };
220
+ this.attachedEvents.push(handler);
221
+ }
222
+
223
+ /**
224
+ * Gets the attached event handlers.
225
+ * @returns An array of attached event handlers.
226
+ */
227
+ getAttachedEvents(): EventHandler[] {
228
+ return this.attachedEvents;
229
+ }
200
230
  }