@sapui5/sap.fe.core 1.101.1 → 1.102.2

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 (217) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AppComponent.js +5 -5
  4. package/src/sap/fe/core/AppComponent.ts +19 -18
  5. package/src/sap/fe/core/AppStateHandler.js +4 -4
  6. package/src/sap/fe/core/AppStateHandler.ts +9 -9
  7. package/src/sap/fe/core/CommonUtils.js +59 -93
  8. package/src/sap/fe/core/CommonUtils.ts +80 -99
  9. package/src/sap/fe/core/ExtensionAPI.js +2 -4
  10. package/src/sap/fe/core/ExtensionAPI.ts +1 -3
  11. package/src/sap/fe/core/PageController.js +14 -9
  12. package/src/sap/fe/core/PageController.ts +8 -2
  13. package/src/sap/fe/core/TemplateComponent.js +6 -6
  14. package/src/sap/fe/core/TemplateComponent.ts +5 -5
  15. package/src/sap/fe/core/TemplateModel.js +2 -2
  16. package/src/sap/fe/core/TemplateModel.ts +2 -2
  17. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +303 -75
  18. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +273 -64
  19. package/src/sap/fe/core/{BusyLocker.js → controllerextensions/BusyLocker.js} +1 -1
  20. package/src/sap/fe/core/{BusyLocker.ts → controllerextensions/BusyLocker.ts} +7 -7
  21. package/src/sap/fe/core/controllerextensions/EditFlow.js +234 -123
  22. package/src/sap/fe/core/controllerextensions/EditFlow.ts +176 -114
  23. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +34 -10
  24. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +44 -12
  25. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +30 -28
  26. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +38 -31
  27. package/src/sap/fe/core/controllerextensions/InternalRouting.js +157 -102
  28. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +155 -103
  29. package/src/sap/fe/core/controllerextensions/MassEdit.js +4 -3
  30. package/src/sap/fe/core/controllerextensions/MassEdit.ts +15 -14
  31. package/src/sap/fe/core/controllerextensions/MessageHandler.js +3 -3
  32. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +10 -2
  33. package/src/sap/fe/core/controllerextensions/Paginator.js +12 -3
  34. package/src/sap/fe/core/controllerextensions/Paginator.ts +11 -2
  35. package/src/sap/fe/core/controllerextensions/Share.js +19 -1
  36. package/src/sap/fe/core/controllerextensions/Share.ts +18 -0
  37. package/src/sap/fe/core/controllerextensions/SideEffects.js +2 -2
  38. package/src/sap/fe/core/controllerextensions/SideEffects.ts +2 -2
  39. package/src/sap/fe/core/controllerextensions/ViewState.js +11 -1
  40. package/src/sap/fe/core/controllerextensions/ViewState.ts +10 -0
  41. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +105 -0
  42. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +98 -0
  43. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +360 -0
  44. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ActivitySync.ts +57 -106
  45. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +146 -0
  46. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.ts +6 -6
  47. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.js +4 -4
  48. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.ts +3 -3
  49. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ManageDialog.fragment.xml +0 -0
  50. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/UserDetails.fragment.xml +5 -7
  51. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1587 -0
  52. package/src/sap/fe/core/{TransactionHelper.ts → controllerextensions/editFlow/TransactionHelper.ts} +26 -13
  53. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +785 -0
  54. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/draft.ts +179 -22
  55. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1175 -0
  56. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/operations.ts +203 -98
  57. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +190 -0
  58. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/sticky.ts +76 -12
  59. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +597 -0
  60. package/src/sap/fe/core/{actions → controllerextensions/messageHandler}/messageHandling.ts +46 -27
  61. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +940 -0
  62. package/src/sap/fe/core/{RouterProxy.ts → controllerextensions/routing/RouterProxy.ts} +20 -18
  63. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +21 -18
  64. package/src/sap/fe/core/controls/CommandExecution.js +14 -3
  65. package/src/sap/fe/core/controls/CommandExecution.ts +11 -2
  66. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +34 -29
  67. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +33 -29
  68. package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -1
  69. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +1 -0
  70. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +11 -3
  71. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +17 -7
  72. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +9 -3
  73. package/src/sap/fe/core/controls/FileWrapper.js +49 -2
  74. package/src/sap/fe/core/controls/FileWrapper.ts +34 -1
  75. package/src/sap/fe/core/controls/FormElementWrapper.js +12 -2
  76. package/src/sap/fe/core/controls/FormElementWrapper.ts +12 -1
  77. package/src/sap/fe/core/controls/MassEditSelect.js +33 -0
  78. package/src/sap/fe/core/controls/MassEditSelect.ts +45 -0
  79. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +2 -2
  80. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +23 -28
  81. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +28 -63
  82. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +107 -0
  83. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +550 -36
  84. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +604 -36
  85. package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
  86. package/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
  87. package/src/sap/fe/core/converters/MetaModelConverter.js +11 -40
  88. package/src/sap/fe/core/converters/MetaModelConverter.ts +56 -84
  89. package/src/sap/fe/core/converters/annotations/DataField.js +20 -4
  90. package/src/sap/fe/core/converters/annotations/DataField.ts +24 -2
  91. package/src/sap/fe/core/converters/controls/Common/Action.js +5 -12
  92. package/src/sap/fe/core/converters/controls/Common/Action.ts +3 -9
  93. package/src/sap/fe/core/converters/controls/Common/Chart.js +10 -3
  94. package/src/sap/fe/core/converters/controls/Common/Chart.ts +8 -3
  95. package/src/sap/fe/core/converters/controls/Common/Form.js +12 -14
  96. package/src/sap/fe/core/converters/controls/Common/Form.ts +17 -19
  97. package/src/sap/fe/core/converters/controls/Common/Table.js +149 -66
  98. package/src/sap/fe/core/converters/controls/Common/Table.ts +136 -52
  99. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +22 -12
  100. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +23 -12
  101. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +7 -5
  102. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +15 -10
  103. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +26 -24
  104. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +35 -33
  105. package/src/sap/fe/core/converters/helpers/Aggregation.js +10 -2
  106. package/src/sap/fe/core/converters/helpers/Aggregation.ts +18 -13
  107. package/src/sap/fe/core/converters/helpers/BindingHelper.js +3 -2
  108. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +6 -5
  109. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +25 -25
  110. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +35 -38
  111. package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -3
  112. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +8 -6
  113. package/src/sap/fe/core/formatters/TableFormatter.js +73 -12
  114. package/src/sap/fe/core/formatters/TableFormatter.ts +70 -15
  115. package/src/sap/fe/core/fpm/Component.js +2 -2
  116. package/src/sap/fe/core/fpm/Component.ts +1 -1
  117. package/src/sap/fe/core/helpers/BindingExpression.js +10 -7
  118. package/src/sap/fe/core/helpers/BindingExpression.ts +37 -35
  119. package/src/sap/fe/core/helpers/ClassSupport.js +1 -1
  120. package/src/sap/fe/core/helpers/ClassSupport.ts +1 -0
  121. package/src/sap/fe/core/helpers/FPMHelper.js +3 -2
  122. package/src/sap/fe/core/helpers/FPMHelper.ts +9 -8
  123. package/src/sap/fe/core/helpers/MassEditHelper.js +399 -152
  124. package/src/sap/fe/core/helpers/MassEditHelper.ts +385 -163
  125. package/src/sap/fe/core/helpers/ModelHelper.js +1 -1
  126. package/src/sap/fe/core/helpers/ModelHelper.ts +20 -30
  127. package/src/sap/fe/core/helpers/StableIdHelper.js +5 -1
  128. package/src/sap/fe/core/helpers/StableIdHelper.ts +8 -4
  129. package/src/sap/fe/core/{Synchronization.js → helpers/Synchronization.js} +1 -1
  130. package/src/sap/fe/core/{Synchronization.ts → helpers/Synchronization.ts} +1 -1
  131. package/src/sap/fe/core/library.js +12 -3
  132. package/src/sap/fe/core/library.ts +9 -0
  133. package/src/sap/fe/core/messagebundle.properties +125 -180
  134. package/src/sap/fe/core/messagebundle_ar.properties +30 -63
  135. package/src/sap/fe/core/messagebundle_bg.properties +30 -63
  136. package/src/sap/fe/core/messagebundle_ca.properties +30 -63
  137. package/src/sap/fe/core/messagebundle_cs.properties +30 -63
  138. package/src/sap/fe/core/messagebundle_cy.properties +30 -63
  139. package/src/sap/fe/core/messagebundle_da.properties +31 -64
  140. package/src/sap/fe/core/messagebundle_de.properties +30 -63
  141. package/src/sap/fe/core/messagebundle_el.properties +31 -64
  142. package/src/sap/fe/core/messagebundle_en.properties +31 -64
  143. package/src/sap/fe/core/messagebundle_en_GB.properties +31 -64
  144. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +40 -73
  145. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +31 -64
  146. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +49 -82
  147. package/src/sap/fe/core/messagebundle_es.properties +30 -63
  148. package/src/sap/fe/core/messagebundle_es_MX.properties +30 -63
  149. package/src/sap/fe/core/messagebundle_et.properties +30 -63
  150. package/src/sap/fe/core/messagebundle_fi.properties +30 -63
  151. package/src/sap/fe/core/messagebundle_fr.properties +33 -66
  152. package/src/sap/fe/core/messagebundle_fr_CA.properties +30 -63
  153. package/src/sap/fe/core/messagebundle_hi.properties +30 -63
  154. package/src/sap/fe/core/messagebundle_hr.properties +30 -63
  155. package/src/sap/fe/core/messagebundle_hu.properties +29 -62
  156. package/src/sap/fe/core/messagebundle_id.properties +31 -64
  157. package/src/sap/fe/core/messagebundle_it.properties +30 -63
  158. package/src/sap/fe/core/messagebundle_iw.properties +30 -63
  159. package/src/sap/fe/core/messagebundle_ja.properties +30 -63
  160. package/src/sap/fe/core/messagebundle_kk.properties +30 -63
  161. package/src/sap/fe/core/messagebundle_ko.properties +30 -63
  162. package/src/sap/fe/core/messagebundle_lt.properties +30 -63
  163. package/src/sap/fe/core/messagebundle_lv.properties +30 -63
  164. package/src/sap/fe/core/messagebundle_ms.properties +31 -64
  165. package/src/sap/fe/core/messagebundle_nl.properties +31 -64
  166. package/src/sap/fe/core/messagebundle_no.properties +30 -63
  167. package/src/sap/fe/core/messagebundle_pl.properties +31 -64
  168. package/src/sap/fe/core/messagebundle_pt.properties +31 -64
  169. package/src/sap/fe/core/messagebundle_pt_PT.properties +30 -63
  170. package/src/sap/fe/core/messagebundle_ro.properties +30 -63
  171. package/src/sap/fe/core/messagebundle_ru.properties +30 -63
  172. package/src/sap/fe/core/messagebundle_sh.properties +30 -63
  173. package/src/sap/fe/core/messagebundle_sk.properties +30 -63
  174. package/src/sap/fe/core/messagebundle_sl.properties +32 -65
  175. package/src/sap/fe/core/messagebundle_sv.properties +30 -63
  176. package/src/sap/fe/core/messagebundle_th.properties +30 -63
  177. package/src/sap/fe/core/messagebundle_tr.properties +30 -63
  178. package/src/sap/fe/core/messagebundle_uk.properties +31 -64
  179. package/src/sap/fe/core/messagebundle_vi.properties +31 -64
  180. package/src/sap/fe/core/messagebundle_zh_CN.properties +30 -63
  181. package/src/sap/fe/core/messagebundle_zh_TW.properties +31 -64
  182. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +6 -3
  183. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +10 -9
  184. package/src/sap/fe/core/services/NavigationServiceFactory.js +2 -2
  185. package/src/sap/fe/core/services/NavigationServiceFactory.ts +8 -4
  186. package/src/sap/fe/core/services/RoutingServiceFactory.js +9 -6
  187. package/src/sap/fe/core/services/RoutingServiceFactory.ts +10 -9
  188. package/src/sap/fe/core/services/ShellServicesFactory.js +36 -1
  189. package/src/sap/fe/core/services/ShellServicesFactory.ts +38 -1
  190. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +5 -4
  191. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +34 -36
  192. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  193. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +1 -1
  194. package/src/sap/fe/core/templating/EntitySetHelper.js +1 -9
  195. package/src/sap/fe/core/templating/EntitySetHelper.ts +11 -13
  196. package/src/sap/fe/core/templating/FilterHelper.js +4 -4
  197. package/src/sap/fe/core/templating/FilterHelper.ts +6 -5
  198. package/src/sap/fe/core/templating/PropertyHelper.js +58 -35
  199. package/src/sap/fe/core/templating/PropertyHelper.ts +19 -4
  200. package/src/sap/fe/core/templating/UIFormatters.js +16 -5
  201. package/src/sap/fe/core/templating/UIFormatters.ts +14 -5
  202. package/src/sap/fe/core/type/DateTimeWithTimezone.js +47 -0
  203. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +23 -0
  204. package/src/sap/fe/core/AnnotationHelper.js +0 -331
  205. package/src/sap/fe/core/AnnotationHelper.ts +0 -321
  206. package/src/sap/fe/core/RouterProxy.js +0 -938
  207. package/src/sap/fe/core/TransactionHelper.js +0 -1577
  208. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +0 -406
  209. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +0 -146
  210. package/src/sap/fe/core/actions/draft.js +0 -665
  211. package/src/sap/fe/core/actions/messageHandling.js +0 -579
  212. package/src/sap/fe/core/actions/nonDraft.js +0 -20
  213. package/src/sap/fe/core/actions/nonDraft.ts +0 -12
  214. package/src/sap/fe/core/actions/operations.js +0 -1096
  215. package/src/sap/fe/core/actions/sticky.js +0 -130
  216. package/src/sap/fe/core/formatters/CriticalityFormatter.js +0 -77
  217. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +0 -58
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/ui/core/Control", "sap/fe/core/helpers/ClassSupport"], function (Control, ClassSupport) {
5
+ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/ui/core/Control"], function (ClassSupport, Control) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;
@@ -69,8 +69,18 @@ sap.ui.define(["sap/ui/core/Control", "sap/fe/core/helpers/ClassSupport"], funct
69
69
  oRm.style("min-height", "1rem");
70
70
  oRm.style("width", oControl.width);
71
71
  oRm.openEnd();
72
+ oRm.openStart("div");
73
+ oRm.style("display", "flex");
74
+ oRm.style("box-sizing", "border-box");
75
+ oRm.style("justify-content", "space-between");
76
+ oRm.style("align-items", "center");
77
+ oRm.style("flex-wrap", "wrap");
78
+ oRm.style("align-content", "stretch");
79
+ oRm.style("width", "100%");
80
+ oRm.openEnd();
72
81
  oRm.renderControl(oControl.content); // render the child Control
73
82
 
83
+ oRm.close("div");
74
84
  oRm.close("div"); // end of the complete Control
75
85
  };
76
86
 
@@ -100,4 +110,4 @@ sap.ui.define(["sap/ui/core/Control", "sap/fe/core/helpers/ClassSupport"], funct
100
110
  })), _class2)) || _class);
101
111
  return FormElementWrapper;
102
112
  }, false);
103
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm1FbGVtZW50V3JhcHBlci50cyJdLCJuYW1lcyI6WyJGb3JtRWxlbWVudFdyYXBwZXIiLCJkZWZpbmVVSTVDbGFzcyIsImltcGxlbWVudEludGVyZmFjZSIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImFnZ3JlZ2F0aW9uIiwibXVsdGlwbGUiLCJpc0RlZmF1bHQiLCJnZXRBY2Nlc3NpYmlsaXR5SW5mbyIsIm9Db250ZW50IiwiY29udGVudCIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwib3BlblN0YXJ0Iiwic3R5bGUiLCJ3aWR0aCIsIm9wZW5FbmQiLCJyZW5kZXJDb250cm9sIiwiY2xvc2UiLCJDb250cm9sIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUlNQSxrQixXQURMQyxjQUFjLENBQUMseUNBQUQsQyxVQUViQyxrQkFBa0IsQ0FBQywwQkFBRCxDLFVBR2xCQyxRQUFRLENBQUM7QUFDVEMsSUFBQUEsSUFBSSxFQUFFLHFCQURHO0FBRVRDLElBQUFBLFlBQVksRUFBRTtBQUZMLEdBQUQsQyxVQUtSRixRQUFRLENBQUM7QUFDVEMsSUFBQUEsSUFBSSxFQUFFLFNBREc7QUFFVEMsSUFBQUEsWUFBWSxFQUFFO0FBRkwsR0FBRCxDLFVBS1JDLFdBQVcsQ0FBQztBQUFFRixJQUFBQSxJQUFJLEVBQUUscUJBQVI7QUFBK0JHLElBQUFBLFFBQVEsRUFBRSxLQUF6QztBQUFnREMsSUFBQUEsU0FBUyxFQUFFO0FBQTNELEdBQUQsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQUdaQyxvQixHQUFBLGdDQUF1QjtBQUN0QixVQUFNQyxRQUFRLEdBQUcsS0FBS0MsT0FBdEI7QUFDQSxhQUFPRCxRQUFRLElBQUlBLFFBQVEsQ0FBQ0Qsb0JBQXJCLEdBQTRDQyxRQUFRLENBQUNELG9CQUFULEVBQTVDLEdBQThFLEVBQXJGO0FBQ0EsSzs7dUJBQ01HLE0sR0FBUCxnQkFBY0MsR0FBZCxFQUFrQ0MsUUFBbEMsRUFBZ0U7QUFDL0RELE1BQUFBLEdBQUcsQ0FBQ0UsU0FBSixDQUFjLEtBQWQsRUFBcUJELFFBQXJCO0FBQ0FELE1BQUFBLEdBQUcsQ0FBQ0csS0FBSixDQUFVLFlBQVYsRUFBd0IsTUFBeEI7QUFDQUgsTUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsT0FBVixFQUFtQkYsUUFBUSxDQUFDRyxLQUE1QjtBQUNBSixNQUFBQSxHQUFHLENBQUNLLE9BQUo7QUFDQUwsTUFBQUEsR0FBRyxDQUFDTSxhQUFKLENBQWtCTCxRQUFRLENBQUNILE9BQTNCLEVBTCtELENBSzFCOztBQUNyQ0UsTUFBQUEsR0FBRyxDQUFDTyxLQUFKLENBQVUsS0FBVixFQU4rRCxDQU03QztBQUNsQixLOzs7SUE1QitCQyxPOzs7OzthQUVrQixJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E0QnBDckIsa0IiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IENTU1NpemUsIElGb3JtQ29udGVudCB9IGZyb20gXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5jb250cm9scy5Gb3JtRWxlbWVudFdyYXBwZXJcIilcbmNsYXNzIEZvcm1FbGVtZW50V3JhcHBlciBleHRlbmRzIENvbnRyb2wgaW1wbGVtZW50cyBJRm9ybUNvbnRlbnQge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfSUZvcm1Db250ZW50OiBib29sZWFuID0gdHJ1ZTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwic2FwLnVpLmNvcmUuQ1NTU2l6ZVwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogbnVsbFxuXHR9KVxuXHR3aWR0aCE6IENTU1NpemU7XG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJib29sZWFuXCIsXG5cdFx0ZGVmYXVsdFZhbHVlOiBmYWxzZVxuXHR9KVxuXHRmb3JtRG9Ob3RBZGp1c3RXaWR0aCE6IGJvb2xlYW47XG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogZmFsc2UsIGlzRGVmYXVsdDogdHJ1ZSB9KVxuXHRjb250ZW50ITogQ29udHJvbDtcblxuXHRnZXRBY2Nlc3NpYmlsaXR5SW5mbygpIHtcblx0XHRjb25zdCBvQ29udGVudCA9IHRoaXMuY29udGVudDtcblx0XHRyZXR1cm4gb0NvbnRlbnQgJiYgb0NvbnRlbnQuZ2V0QWNjZXNzaWJpbGl0eUluZm8gPyBvQ29udGVudC5nZXRBY2Nlc3NpYmlsaXR5SW5mbygpIDoge307XG5cdH1cblx0c3RhdGljIHJlbmRlcihvUm06IFJlbmRlck1hbmFnZXIsIG9Db250cm9sOiBGb3JtRWxlbWVudFdyYXBwZXIpIHtcblx0XHRvUm0ub3BlblN0YXJ0KFwiZGl2XCIsIG9Db250cm9sKTtcblx0XHRvUm0uc3R5bGUoXCJtaW4taGVpZ2h0XCIsIFwiMXJlbVwiKTtcblx0XHRvUm0uc3R5bGUoXCJ3aWR0aFwiLCBvQ29udHJvbC53aWR0aCk7XG5cdFx0b1JtLm9wZW5FbmQoKTtcblx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50KTsgLy8gcmVuZGVyIHRoZSBjaGlsZCBDb250cm9sXG5cdFx0b1JtLmNsb3NlKFwiZGl2XCIpOyAvLyBlbmQgb2YgdGhlIGNvbXBsZXRlIENvbnRyb2xcblx0fVxufVxuZXhwb3J0IGRlZmF1bHQgRm9ybUVsZW1lbnRXcmFwcGVyO1xuIl19
113
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm1FbGVtZW50V3JhcHBlci50cyJdLCJuYW1lcyI6WyJGb3JtRWxlbWVudFdyYXBwZXIiLCJkZWZpbmVVSTVDbGFzcyIsImltcGxlbWVudEludGVyZmFjZSIsInByb3BlcnR5IiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImFnZ3JlZ2F0aW9uIiwibXVsdGlwbGUiLCJpc0RlZmF1bHQiLCJnZXRBY2Nlc3NpYmlsaXR5SW5mbyIsIm9Db250ZW50IiwiY29udGVudCIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwib3BlblN0YXJ0Iiwic3R5bGUiLCJ3aWR0aCIsIm9wZW5FbmQiLCJyZW5kZXJDb250cm9sIiwiY2xvc2UiLCJDb250cm9sIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUlNQSxrQixXQURMQyxjQUFjLENBQUMseUNBQUQsQyxVQUViQyxrQkFBa0IsQ0FBQywwQkFBRCxDLFVBR2xCQyxRQUFRLENBQUM7QUFDVEMsSUFBQUEsSUFBSSxFQUFFLHFCQURHO0FBRVRDLElBQUFBLFlBQVksRUFBRTtBQUZMLEdBQUQsQyxVQUtSRixRQUFRLENBQUM7QUFDVEMsSUFBQUEsSUFBSSxFQUFFLFNBREc7QUFFVEMsSUFBQUEsWUFBWSxFQUFFO0FBRkwsR0FBRCxDLFVBS1JDLFdBQVcsQ0FBQztBQUFFRixJQUFBQSxJQUFJLEVBQUUscUJBQVI7QUFBK0JHLElBQUFBLFFBQVEsRUFBRSxLQUF6QztBQUFnREMsSUFBQUEsU0FBUyxFQUFFO0FBQTNELEdBQUQsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQUdaQyxvQixHQUFBLGdDQUF1QjtBQUN0QixVQUFNQyxRQUFRLEdBQUcsS0FBS0MsT0FBdEI7QUFDQSxhQUFPRCxRQUFRLElBQUlBLFFBQVEsQ0FBQ0Qsb0JBQXJCLEdBQTRDQyxRQUFRLENBQUNELG9CQUFULEVBQTVDLEdBQThFLEVBQXJGO0FBQ0EsSzs7dUJBQ01HLE0sR0FBUCxnQkFBY0MsR0FBZCxFQUFrQ0MsUUFBbEMsRUFBZ0U7QUFDL0RELE1BQUFBLEdBQUcsQ0FBQ0UsU0FBSixDQUFjLEtBQWQsRUFBcUJELFFBQXJCO0FBQ0FELE1BQUFBLEdBQUcsQ0FBQ0csS0FBSixDQUFVLFlBQVYsRUFBd0IsTUFBeEI7QUFDQUgsTUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsT0FBVixFQUFtQkYsUUFBUSxDQUFDRyxLQUE1QjtBQUNBSixNQUFBQSxHQUFHLENBQUNLLE9BQUo7QUFFQUwsTUFBQUEsR0FBRyxDQUFDRSxTQUFKLENBQWMsS0FBZDtBQUNBRixNQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxTQUFWLEVBQXFCLE1BQXJCO0FBQ0FILE1BQUFBLEdBQUcsQ0FBQ0csS0FBSixDQUFVLFlBQVYsRUFBd0IsWUFBeEI7QUFDQUgsTUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsaUJBQVYsRUFBNkIsZUFBN0I7QUFDQUgsTUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsYUFBVixFQUF5QixRQUF6QjtBQUNBSCxNQUFBQSxHQUFHLENBQUNHLEtBQUosQ0FBVSxXQUFWLEVBQXVCLE1BQXZCO0FBQ0FILE1BQUFBLEdBQUcsQ0FBQ0csS0FBSixDQUFVLGVBQVYsRUFBMkIsU0FBM0I7QUFDQUgsTUFBQUEsR0FBRyxDQUFDRyxLQUFKLENBQVUsT0FBVixFQUFtQixNQUFuQjtBQUNBSCxNQUFBQSxHQUFHLENBQUNLLE9BQUo7QUFDQUwsTUFBQUEsR0FBRyxDQUFDTSxhQUFKLENBQWtCTCxRQUFRLENBQUNILE9BQTNCLEVBZitELENBZTFCOztBQUNyQ0UsTUFBQUEsR0FBRyxDQUFDTyxLQUFKLENBQVUsS0FBVjtBQUNBUCxNQUFBQSxHQUFHLENBQUNPLEtBQUosQ0FBVSxLQUFWLEVBakIrRCxDQWlCN0M7QUFDbEIsSzs7O0lBdkMrQkMsTzs7Ozs7YUFFa0IsSTs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBdUNwQ3JCLGtCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZ2dyZWdhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgeyBDU1NTaXplLCBJRm9ybUNvbnRlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbHMuRm9ybUVsZW1lbnRXcmFwcGVyXCIpXG5jbGFzcyBGb3JtRWxlbWVudFdyYXBwZXIgZXh0ZW5kcyBDb250cm9sIGltcGxlbWVudHMgSUZvcm1Db250ZW50IHtcblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC51aS5jb3JlLklGb3JtQ29udGVudFwiKVxuXHRfX2ltcGxlbWVudHNfX3NhcF91aV9jb3JlX0lGb3JtQ29udGVudDogYm9vbGVhbiA9IHRydWU7XG5cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInNhcC51aS5jb3JlLkNTU1NpemVcIixcblx0XHRkZWZhdWx0VmFsdWU6IG51bGxcblx0fSlcblx0d2lkdGghOiBDU1NTaXplO1xuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYm9vbGVhblwiLFxuXHRcdGRlZmF1bHRWYWx1ZTogZmFsc2Vcblx0fSlcblx0Zm9ybURvTm90QWRqdXN0V2lkdGghOiBib29sZWFuO1xuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IENvbnRyb2w7XG5cblx0Z2V0QWNjZXNzaWJpbGl0eUluZm8oKSB7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0cmV0dXJuIG9Db250ZW50ICYmIG9Db250ZW50LmdldEFjY2Vzc2liaWxpdHlJbmZvID8gb0NvbnRlbnQuZ2V0QWNjZXNzaWJpbGl0eUluZm8oKSA6IHt9O1xuXHR9XG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogRm9ybUVsZW1lbnRXcmFwcGVyKSB7XG5cdFx0b1JtLm9wZW5TdGFydChcImRpdlwiLCBvQ29udHJvbCk7XG5cdFx0b1JtLnN0eWxlKFwibWluLWhlaWdodFwiLCBcIjFyZW1cIik7XG5cdFx0b1JtLnN0eWxlKFwid2lkdGhcIiwgb0NvbnRyb2wud2lkdGgpO1xuXHRcdG9SbS5vcGVuRW5kKCk7XG5cblx0XHRvUm0ub3BlblN0YXJ0KFwiZGl2XCIpO1xuXHRcdG9SbS5zdHlsZShcImRpc3BsYXlcIiwgXCJmbGV4XCIpO1xuXHRcdG9SbS5zdHlsZShcImJveC1zaXppbmdcIiwgXCJib3JkZXItYm94XCIpO1xuXHRcdG9SbS5zdHlsZShcImp1c3RpZnktY29udGVudFwiLCBcInNwYWNlLWJldHdlZW5cIik7XG5cdFx0b1JtLnN0eWxlKFwiYWxpZ24taXRlbXNcIiwgXCJjZW50ZXJcIik7XG5cdFx0b1JtLnN0eWxlKFwiZmxleC13cmFwXCIsIFwid3JhcFwiKTtcblx0XHRvUm0uc3R5bGUoXCJhbGlnbi1jb250ZW50XCIsIFwic3RyZXRjaFwiKTtcblx0XHRvUm0uc3R5bGUoXCJ3aWR0aFwiLCBcIjEwMCVcIik7XG5cdFx0b1JtLm9wZW5FbmQoKTtcblx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50KTsgLy8gcmVuZGVyIHRoZSBjaGlsZCBDb250cm9sXG5cdFx0b1JtLmNsb3NlKFwiZGl2XCIpO1xuXHRcdG9SbS5jbG9zZShcImRpdlwiKTsgLy8gZW5kIG9mIHRoZSBjb21wbGV0ZSBDb250cm9sXG5cdH1cbn1cbmV4cG9ydCBkZWZhdWx0IEZvcm1FbGVtZW50V3JhcHBlcjtcbiJdfQ==
@@ -1,5 +1,5 @@
1
- import Control from "sap/ui/core/Control";
2
1
  import { aggregation, defineUI5Class, implementInterface, property } from "sap/fe/core/helpers/ClassSupport";
2
+ import Control from "sap/ui/core/Control";
3
3
  import { CSSSize, IFormContent } from "sap/ui/core/library";
4
4
  import RenderManager from "sap/ui/core/RenderManager";
5
5
 
@@ -30,7 +30,18 @@ class FormElementWrapper extends Control implements IFormContent {
30
30
  oRm.style("min-height", "1rem");
31
31
  oRm.style("width", oControl.width);
32
32
  oRm.openEnd();
33
+
34
+ oRm.openStart("div");
35
+ oRm.style("display", "flex");
36
+ oRm.style("box-sizing", "border-box");
37
+ oRm.style("justify-content", "space-between");
38
+ oRm.style("align-items", "center");
39
+ oRm.style("flex-wrap", "wrap");
40
+ oRm.style("align-content", "stretch");
41
+ oRm.style("width", "100%");
42
+ oRm.openEnd();
33
43
  oRm.renderControl(oControl.content); // render the child Control
44
+ oRm.close("div");
34
45
  oRm.close("div"); // end of the complete Control
35
46
  }
36
47
  }
@@ -0,0 +1,33 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/m/Select", "sap/m/SelectRenderer"], function (Select, SelectRenderer) {
6
+ "use strict";
7
+
8
+ var MassEditSelect = Select.extend("sap.fe.core.controls.MassEditSelect", {
9
+ metadata: {
10
+ properties: {
11
+ showValueHelp: {
12
+ type: "boolean"
13
+ },
14
+ valueHelpIconSrc: {
15
+ type: "string"
16
+ },
17
+ selectValue: {
18
+ type: "string"
19
+ }
20
+ },
21
+ events: {
22
+ valueHelpRequest: {}
23
+ },
24
+ interfaces: ["sap.ui.core.IFormContent"]
25
+ },
26
+ renderer: {
27
+ apiVersion: 2,
28
+ render: SelectRenderer.render
29
+ }
30
+ });
31
+ return MassEditSelect;
32
+ }, false);
33
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1hc3NFZGl0U2VsZWN0LnRzIl0sIm5hbWVzIjpbIk1hc3NFZGl0U2VsZWN0IiwiU2VsZWN0IiwiZXh0ZW5kIiwibWV0YWRhdGEiLCJwcm9wZXJ0aWVzIiwic2hvd1ZhbHVlSGVscCIsInR5cGUiLCJ2YWx1ZUhlbHBJY29uU3JjIiwic2VsZWN0VmFsdWUiLCJldmVudHMiLCJ2YWx1ZUhlbHBSZXF1ZXN0IiwiaW50ZXJmYWNlcyIsInJlbmRlcmVyIiwiYXBpVmVyc2lvbiIsInJlbmRlciIsIlNlbGVjdFJlbmRlcmVyIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBa0JBLE1BQU1BLGNBQWMsR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWMscUNBQWQsRUFBcUQ7QUFDM0VDLElBQUFBLFFBQVEsRUFBRTtBQUNUQyxNQUFBQSxVQUFVLEVBQUU7QUFDWEMsUUFBQUEsYUFBYSxFQUFFO0FBQ2RDLFVBQUFBLElBQUksRUFBRTtBQURRLFNBREo7QUFJWEMsUUFBQUEsZ0JBQWdCLEVBQUU7QUFDakJELFVBQUFBLElBQUksRUFBRTtBQURXLFNBSlA7QUFPWEUsUUFBQUEsV0FBVyxFQUFFO0FBQ1pGLFVBQUFBLElBQUksRUFBRTtBQURNO0FBUEYsT0FESDtBQVlURyxNQUFBQSxNQUFNLEVBQUU7QUFDUEMsUUFBQUEsZ0JBQWdCLEVBQUU7QUFEWCxPQVpDO0FBZVRDLE1BQUFBLFVBQVUsRUFBRSxDQUFDLDBCQUFEO0FBZkgsS0FEaUU7QUFrQjNFQyxJQUFBQSxRQUFRLEVBQUU7QUFDVEMsTUFBQUEsVUFBVSxFQUFFLENBREg7QUFFVEMsTUFBQUEsTUFBTSxFQUFFQyxjQUFjLENBQUNEO0FBRmQ7QUFsQmlFLEdBQXJELENBQXZCO1NBd0JlZCxjIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnN0cnVjdG9yIGZvciBhIG5ldyBjdXN0b20gY29tYm9ib3guXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtzSWRdIElEIGZvciB0aGUgbmV3IGNvbnRyb2wsIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGlmIG5vIElEIGlzIGdpdmVuXG4gKiBAcGFyYW0ge29iamVjdH0gW21TZXR0aW5nc10gSW5pdGlhbCBzZXR0aW5ncyBmb3IgdGhlIG5ldyBjb250cm9sXG4gKiBAY2xhc3MgUmVwcmVzZW50cyBhIGN1c3RvbSBjb21ib2JveCBvbiB0aGUgVUkuXG4gKiBAZXh0ZW5kcyBzYXAubS5TZWxlY3RcbiAqIEBjbGFzc1xuICogQHByaXZhdGVcbiAqIEBzaW5jZSAxLjk4LjBcbiAqIEBhbGlhcyBjb250cm9sIHNhcC5mZS5jb3JlLmNvbnRyb2xzLk1hc3NFZGl0U2VsZWN0XG4gKi9cblxuaW1wb3J0IFNlbGVjdCBmcm9tIFwic2FwL20vU2VsZWN0XCI7XG5pbXBvcnQgU2VsZWN0UmVuZGVyZXIgZnJvbSBcInNhcC9tL1NlbGVjdFJlbmRlcmVyXCI7XG5cbnR5cGUgTWFzc0VkaXRTZWxlY3RUeXBlID0gU2VsZWN0ICYge1xuXHRzZXRTaG93VmFsdWVIZWxwKHNob3dWYWx1ZUhlbHA6IGJvb2xlYW4pOiB2b2lkO1xufTtcblxuY29uc3QgTWFzc0VkaXRTZWxlY3QgPSBTZWxlY3QuZXh0ZW5kKFwic2FwLmZlLmNvcmUuY29udHJvbHMuTWFzc0VkaXRTZWxlY3RcIiwge1xuXHRtZXRhZGF0YToge1xuXHRcdHByb3BlcnRpZXM6IHtcblx0XHRcdHNob3dWYWx1ZUhlbHA6IHtcblx0XHRcdFx0dHlwZTogXCJib29sZWFuXCJcblx0XHRcdH0sXG5cdFx0XHR2YWx1ZUhlbHBJY29uU3JjOiB7XG5cdFx0XHRcdHR5cGU6IFwic3RyaW5nXCJcblx0XHRcdH0sXG5cdFx0XHRzZWxlY3RWYWx1ZToge1xuXHRcdFx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRldmVudHM6IHtcblx0XHRcdHZhbHVlSGVscFJlcXVlc3Q6IHt9XG5cdFx0fSxcblx0XHRpbnRlcmZhY2VzOiBbXCJzYXAudWkuY29yZS5JRm9ybUNvbnRlbnRcIl1cblx0fSxcblx0cmVuZGVyZXI6IHtcblx0XHRhcGlWZXJzaW9uOiAyLFxuXHRcdHJlbmRlcjogU2VsZWN0UmVuZGVyZXIucmVuZGVyXG5cdH1cbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBNYXNzRWRpdFNlbGVjdDtcbiJdfQ==
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Constructor for a new custom combobox.
3
+ *
4
+ * @param {string} [sId] ID for the new control, generated automatically if no ID is given
5
+ * @param {object} [mSettings] Initial settings for the new control
6
+ * @class Represents a custom combobox on the UI.
7
+ * @extends sap.m.Select
8
+ * @class
9
+ * @private
10
+ * @since 1.98.0
11
+ * @alias control sap.fe.core.controls.MassEditSelect
12
+ */
13
+
14
+ import Select from "sap/m/Select";
15
+ import SelectRenderer from "sap/m/SelectRenderer";
16
+
17
+ type MassEditSelectType = Select & {
18
+ setShowValueHelp(showValueHelp: boolean): void;
19
+ };
20
+
21
+ const MassEditSelect = Select.extend("sap.fe.core.controls.MassEditSelect", {
22
+ metadata: {
23
+ properties: {
24
+ showValueHelp: {
25
+ type: "boolean"
26
+ },
27
+ valueHelpIconSrc: {
28
+ type: "string"
29
+ },
30
+ selectValue: {
31
+ type: "string"
32
+ }
33
+ },
34
+ events: {
35
+ valueHelpRequest: {}
36
+ },
37
+ interfaces: ["sap.ui.core.IFormContent"]
38
+ },
39
+ renderer: {
40
+ apiVersion: 2,
41
+ render: SelectRenderer.render
42
+ }
43
+ });
44
+
45
+ export default MassEditSelect;
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/ui/mdc/condition/Condition", "sap/base/Log", "sap/ui/core/format/NumberFormat", "sap/fe/core/templating/FilterHelper", "sap/ui/model/odata/type/DateTimeOffset"], function (Condition, Log, NumberFormat, FilterHelper, DateTimeOffset) {
5
+ sap.ui.define(["sap/base/Log", "sap/fe/core/templating/FilterHelper", "sap/ui/core/format/NumberFormat", "sap/ui/mdc/condition/Condition", "sap/ui/model/odata/type/DateTimeOffset"], function (Log, FilterHelper, NumberFormat, Condition, DateTimeOffset) {
6
6
  "use strict";
7
7
 
8
8
  var getTypeCompliantValue = FilterHelper.getTypeCompliantValue;
@@ -336,4 +336,4 @@ sap.ui.define(["sap/ui/mdc/condition/Condition", "sap/base/Log", "sap/ui/core/fo
336
336
  };
337
337
  return VisualFilterUtils;
338
338
  }, false);
339
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlclV0aWxzLnRzIl0sIm5hbWVzIjpbIlZpc3VhbEZpbHRlclV0aWxzIiwiYXBwbHlNZWRpYW5TY2FsZVRvQ2hhcnREYXRhIiwib0ludGVyYWN0aXZlQ2hhcnQiLCJvVmlldyIsInNWRklkIiwic0luZm9QYXRoIiwib0RhdGEiLCJzTWVhc3VyZSIsImRhdGEiLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImFBZ2dyZWdhdGlvbiIsImdldFBvaW50cyIsImdldEJhcnMiLCJnZXRTZWdtZW50cyIsImkiLCJsZW5ndGgiLCJwdXNoIiwiZ2V0T2JqZWN0Iiwic2NhbGVGYWN0b3IiLCJfZ2V0TWVkaWFuU2NhbGVGYWN0b3IiLCJpU2hvcnRSZWZOdW1iZXIiLCJzY2FsZSIsInNldFByb3BlcnR5Iiwib1NjYWxlVGl0bGUiLCJieUlkIiwib01lYXN1cmVEaW1lbnNpb25UaXRsZSIsInNUZXh0IiwiZ2V0VGV4dCIsInNldFZpc2libGUiLCJzZXRUb29sdGlwIiwic01lYXN1cmVGaWVsZCIsInNvcnQiLCJhIiwiYiIsIk51bWJlciIsImlNaWQiLCJpTWVkaWFuIiwicGFyc2VGbG9hdCIsIk1hdGgiLCJmbG9vciIsInZhbCIsInBvdyIsInJvdW5kIiwiYWJzIiwiZml4ZWRJbnRlZ2VyIiwiTnVtYmVyRm9ybWF0IiwiZ2V0SW50ZWdlckluc3RhbmNlIiwic3R5bGUiLCJzaG93U2NhbGUiLCJzaG9ydFJlZk51bWJlciIsImFEYXRhIiwic1NjYWxlZFZhbHVlIiwiZm9ybWF0IiwiYVNjYWxlZFZhbHVlUGFydHMiLCJzcGxpdCIsInBhcnNlSW50IiwiaW5kZXhPZiIsInVuZGVmaW5lZCIsImdldFNjYWxlIiwiZ2V0Rm9ybWF0dGVkTnVtYmVyIiwidmFsdWUiLCJudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHMiLCJjdXJyZW5jeSIsInJlcGxhY2UiLCJjdXJyZW5jeUZvcm1hdCIsImdldEN1cnJlbmN5SW5zdGFuY2UiLCJzaG93TWVhc3VyZSIsImdldEZsb2F0SW5zdGFuY2UiLCJzaG9ydERlY2ltYWxzIiwiZGVjaW1hbHMiLCJhcHBseVVPTVRvVGl0bGUiLCJvQ29udGV4dERhdGEiLCJ2VU9NIiwic1VPTSIsInNDdXJyZW5jeSIsIiRQYXRoIiwic1VPTVZhbHVlIiwidXBkYXRlQ2hhcnRTY2FsZUZhY3RvclRpdGxlIiwiYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZSIsInMxOG5NZXNzYWdlVGl0bGUiLCJzMThuTWVzc2FnZSIsImNoZWNrTXVsaXRVbml0Iiwib0NvbnRleHRzIiwic1VuaXRmaWVsZCIsImFDb250ZXh0RGF0YSIsInJlZHVjZSIsImtleSIsIk5hTiIsInNldE11bHRpVU9NTWVzc2FnZSIsIm9SZXNvdXJjZUJ1bmRsZSIsInNJc0N1cnJlbmN5Iiwic0lzVW5pdCIsIkxvZyIsIndhcm5pbmciLCJzZXROb0RhdGFNZXNzYWdlIiwiY29udmVydEZpbHRlckNvbmRpb25zIiwib0ZpbHRlckNvbmRpdGlvbnMiLCJvQ29udmVydGVkQ29uZGl0aW9ucyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwic0tleSIsImFDb252ZXJ0ZWRDb25kaXRpb25zIiwiYUNvbmRpdGlvbnMiLCJ2YWx1ZXMiLCJ2YWx1ZTIiLCJ2YWx1ZTEiLCJDb25kaXRpb24iLCJjcmVhdGVDb25kaXRpb24iLCJvcGVyYXRvciIsImdldEN1c3RvbUNvbmRpdGlvbnMiLCJSYW5nZSIsIm9WYWxpZFByb3BlcnR5Iiwic1Byb3BlcnR5TmFtZSIsIiRUeXBlIiwiX3BhcnNlRGF0ZVRpbWUiLCJnZXRUeXBlQ29tcGxpYW50VmFsdWUiLCJfZm9ybWF0RGF0ZVRpbWUiLCJMb3ciLCJIaWdoIiwiT3B0aW9uIiwiZ2V0T3BlcmF0b3IiLCIkRW51bU1lbWJlciIsInBhdGgiLCJzVmFsdWUiLCJfZ2V0RGF0ZVRpbWVUeXBlSW5zdGFuY2UiLCJwYXJzZVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJEYXRlVGltZU9mZnNldCIsInBhdHRlcm4iLCJjYWxlbmRhclR5cGUiLCJWNCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7OztBQVVBLE1BQU1BLGlCQUFpQixHQUFHO0FBQ3pCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQ0MsSUFBQUEsMkJBQTJCLEVBQUUsVUFBU0MsaUJBQVQsRUFBaUNDLEtBQWpDLEVBQThDQyxLQUE5QyxFQUE2REMsU0FBN0QsRUFBZ0Y7QUFDNUcsVUFBTUMsS0FBSyxHQUFHLEVBQWQ7QUFDQSxVQUFNQyxRQUFRLEdBQUdMLGlCQUFpQixDQUFDTSxJQUFsQixDQUF1QixTQUF2QixDQUFqQjtBQUNBLFVBQU1DLHFCQUFxQixHQUFHTixLQUFLLENBQUNPLGlCQUFOLENBQXdCLFVBQXhCLENBQTlCO0FBQ0EsVUFBTUMsWUFBWSxHQUNoQlQsaUJBQWlCLENBQUNVLFNBQWxCLElBQStCVixpQkFBaUIsQ0FBQ1UsU0FBbEIsRUFBaEMsSUFDQ1YsaUJBQWlCLENBQUNXLE9BQWxCLElBQTZCWCxpQkFBaUIsQ0FBQ1csT0FBbEIsRUFEOUIsSUFFQ1gsaUJBQWlCLENBQUNZLFdBQWxCLElBQWlDWixpQkFBaUIsQ0FBQ1ksV0FBbEIsRUFIbkM7O0FBSUEsV0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSixZQUFZLENBQUNLLE1BQWpDLEVBQXlDRCxDQUFDLEVBQTFDLEVBQThDO0FBQzdDVCxRQUFBQSxLQUFLLENBQUNXLElBQU4sQ0FBV04sWUFBWSxDQUFDSSxDQUFELENBQVosQ0FBZ0JMLGlCQUFoQixHQUFvQ1EsU0FBcEMsRUFBWDtBQUNBOztBQUNELFVBQU1DLFdBQVcsR0FBRyxLQUFLQyxxQkFBTCxDQUEyQmQsS0FBM0IsRUFBa0NDLFFBQWxDLENBQXBCOztBQUNBLFVBQUlZLFdBQVcsSUFBSUEsV0FBVyxDQUFDRSxlQUEzQixJQUE4Q0YsV0FBVyxDQUFDRyxLQUE5RCxFQUFxRTtBQUNwRWIsUUFBQUEscUJBQXFCLENBQUNjLFdBQXRCLENBQWtDLGlCQUFpQmxCLFNBQW5ELEVBQThEYyxXQUFXLENBQUNHLEtBQTFFO0FBQ0FiLFFBQUFBLHFCQUFxQixDQUFDYyxXQUF0QixDQUFrQyx1QkFBdUJsQixTQUF6RCxFQUFvRWMsV0FBVyxDQUFDRSxlQUFoRjtBQUNBLE9BSEQsTUFHTztBQUNOWixRQUFBQSxxQkFBcUIsQ0FBQ2MsV0FBdEIsQ0FBa0MsaUJBQWlCbEIsU0FBbkQsRUFBOEQsRUFBOUQ7QUFDQUksUUFBQUEscUJBQXFCLENBQUNjLFdBQXRCLENBQWtDLHVCQUF1QmxCLFNBQXpELEVBQW9FLEVBQXBFO0FBQ0EsWUFBTW1CLFdBQVcsR0FBR3JCLEtBQUssQ0FBQ3NCLElBQU4sQ0FBV3JCLEtBQUssR0FBRyxpQkFBbkIsQ0FBcEI7QUFDQSxZQUFNc0Isc0JBQXNCLEdBQUd2QixLQUFLLENBQUNzQixJQUFOLENBQVdyQixLQUFLLEdBQUcseUJBQW5CLENBQS9CO0FBQ0EsWUFBTXVCLEtBQUssR0FBR0gsV0FBVyxDQUFDSSxPQUFaLEVBQWQ7O0FBQ0EsWUFBSUQsS0FBSyxLQUFLLEtBQWQsRUFBcUI7QUFDcEJILFVBQUFBLFdBQVcsQ0FBQ0ssVUFBWixDQUF1QixLQUF2QjtBQUNBSCxVQUFBQSxzQkFBc0IsQ0FBQ0ksVUFBdkIsQ0FBa0NKLHNCQUFzQixDQUFDRSxPQUF2QixFQUFsQztBQUNBO0FBQ0Q7QUFDRCxLQW5Dd0I7O0FBcUN6QjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDUixJQUFBQSxxQkFBcUIsRUFBRSxVQUFTZCxLQUFULEVBQXVCeUIsYUFBdkIsRUFBOEM7QUFDcEUsVUFBSWhCLENBQUo7QUFDQSxVQUFJSSxXQUFKO0FBQ0FiLE1BQUFBLEtBQUssQ0FBQzBCLElBQU4sQ0FBVyxVQUFTQyxDQUFULEVBQWlCQyxDQUFqQixFQUF5QjtBQUNuQyxZQUFJQyxNQUFNLENBQUNGLENBQUMsQ0FBQ0YsYUFBRCxDQUFGLENBQU4sR0FBMkJJLE1BQU0sQ0FBQ0QsQ0FBQyxDQUFDSCxhQUFELENBQUYsQ0FBckMsRUFBeUQ7QUFDeEQsaUJBQU8sQ0FBQyxDQUFSO0FBQ0E7O0FBQ0QsWUFBSUksTUFBTSxDQUFDRixDQUFDLENBQUNGLGFBQUQsQ0FBRixDQUFOLEdBQTJCSSxNQUFNLENBQUNELENBQUMsQ0FBQ0gsYUFBRCxDQUFGLENBQXJDLEVBQXlEO0FBQ3hELGlCQUFPLENBQVA7QUFDQTs7QUFDRCxlQUFPLENBQVA7QUFDQSxPQVJEOztBQVNBLFVBQUl6QixLQUFLLENBQUNVLE1BQU4sR0FBZSxDQUFuQixFQUFzQjtBQUNyQjtBQUNBLFlBQU1vQixJQUFJLEdBQUc5QixLQUFLLENBQUNVLE1BQU4sR0FBZSxDQUE1QjtBQUFBLFlBQStCO0FBQzlCO0FBQ0E7QUFDQXFCLFFBQUFBLE9BQU8sR0FDTkQsSUFBSSxHQUFHLENBQVAsS0FBYSxDQUFiLEdBQ0csQ0FBQ0UsVUFBVSxDQUFDaEMsS0FBSyxDQUFDOEIsSUFBSSxHQUFHLENBQVIsQ0FBTCxDQUFnQkwsYUFBaEIsQ0FBRCxDQUFWLEdBQTZDTyxVQUFVLENBQUNoQyxLQUFLLENBQUM4QixJQUFELENBQUwsQ0FBWUwsYUFBWixDQUFELENBQXhELElBQXdGLENBRDNGLEdBRUdPLFVBQVUsQ0FBQ2hDLEtBQUssQ0FBQ2lDLElBQUksQ0FBQ0MsS0FBTCxDQUFXSixJQUFYLENBQUQsQ0FBTCxDQUF3QkwsYUFBeEIsQ0FBRCxDQU5mO0FBQUEsWUFPQztBQUNBVSxRQUFBQSxHQUFHLEdBQUdKLE9BUlA7O0FBU0EsYUFBS3RCLENBQUMsR0FBRyxDQUFULEVBQVlBLENBQUMsR0FBRyxFQUFoQixFQUFvQkEsQ0FBQyxFQUFyQixFQUF5QjtBQUN4QkksVUFBQUEsV0FBVyxHQUFHb0IsSUFBSSxDQUFDRyxHQUFMLENBQVMsRUFBVCxFQUFhM0IsQ0FBYixDQUFkOztBQUNBLGNBQUl3QixJQUFJLENBQUNJLEtBQUwsQ0FBV0osSUFBSSxDQUFDSyxHQUFMLENBQVNILEdBQVQsSUFBZ0J0QixXQUEzQixJQUEwQyxFQUE5QyxFQUFrRDtBQUNqRDtBQUNBO0FBQ0Q7QUFDRDs7QUFFRCxVQUFNMEIsWUFBWSxHQUFHQyxZQUFZLENBQUNDLGtCQUFiLENBQWdDO0FBQ3BEQyxRQUFBQSxLQUFLLEVBQUUsT0FENkM7QUFFcERDLFFBQUFBLFNBQVMsRUFBRSxLQUZ5QztBQUdwREMsUUFBQUEsY0FBYyxFQUFFL0I7QUFIb0MsT0FBaEMsQ0FBckIsQ0EvQm9FLENBcUNwRTs7QUFDQSxXQUFLSixDQUFDLEdBQUcsQ0FBVCxFQUFZQSxDQUFDLEdBQUdULEtBQUssQ0FBQ1UsTUFBdEIsRUFBOEJELENBQUMsRUFBL0IsRUFBbUM7QUFDbEMsWUFBTW9DLEtBQUssR0FBRzdDLEtBQUssQ0FBQ1MsQ0FBRCxDQUFuQjtBQUFBLFlBQ0NxQyxZQUFZLEdBQUdQLFlBQVksQ0FBQ1EsTUFBYixDQUFvQkYsS0FBSyxDQUFDcEIsYUFBRCxDQUF6QixDQURoQjtBQUFBLFlBRUN1QixpQkFBaUIsR0FBR0YsWUFBWSxDQUFDRyxLQUFiLENBQW1CLEdBQW5CLENBRnJCLENBRGtDLENBSWxDO0FBQ0E7QUFDQTs7QUFDQSxZQUNFLENBQUNELGlCQUFpQixDQUFDLENBQUQsQ0FBbEIsSUFBeUJFLFFBQVEsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBRCxDQUFsQixFQUF1QixFQUF2QixDQUFSLEtBQXVDLENBQWpFLElBQ0NBLGlCQUFpQixDQUFDLENBQUQsQ0FBakIsSUFBd0JFLFFBQVEsQ0FBQ0YsaUJBQWlCLENBQUMsQ0FBRCxDQUFsQixFQUF1QixFQUF2QixDQUFSLEtBQXVDLENBQS9ELElBQW9FQSxpQkFBaUIsQ0FBQyxDQUFELENBQWpCLENBQXFCRyxPQUFyQixDQUE2QixHQUE3QixNQUFzQyxDQUQzRyxJQUVBTCxZQUFZLEdBQUcsSUFBZixJQUF1QixJQUh4QixFQUlFO0FBQ0RqQyxVQUFBQSxXQUFXLEdBQUd1QyxTQUFkO0FBQ0E7QUFDQTtBQUNEOztBQUNELGFBQU87QUFDTnJDLFFBQUFBLGVBQWUsRUFBRUYsV0FEWDtBQUVORyxRQUFBQSxLQUFLLEVBQUVILFdBQVcsR0FBSTBCLFlBQUQsQ0FBc0JjLFFBQXRCLEVBQUgsR0FBc0M7QUFGbEQsT0FBUDtBQUlBLEtBdEd3Qjs7QUF3R3pCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDQyxJQUFBQSxrQkFBa0IsRUFBRSxVQUNuQkMsS0FEbUIsRUFFbkIxQyxXQUZtQixFQUduQjJDLHdCQUhtQixFQUluQkMsUUFKbUIsRUFLbEI7QUFDRCxVQUFJbEIsWUFBSjtBQUNBZ0IsTUFBQUEsS0FBSyxHQUFHLE9BQU9BLEtBQVAsS0FBaUIsUUFBakIsR0FBNEIxQixNQUFNLENBQUMwQixLQUFLLENBQUNHLE9BQU4sQ0FBYyxJQUFkLEVBQW9CLEVBQXBCLENBQUQsQ0FBbEMsR0FBOERILEtBQXRFOztBQUVBLFVBQUlFLFFBQUosRUFBYztBQUNiLFlBQU1FLGNBQWMsR0FBR25CLFlBQVksQ0FBQ29CLG1CQUFiLENBQWlDO0FBQ3ZEQyxVQUFBQSxXQUFXLEVBQUU7QUFEMEMsU0FBakMsQ0FBdkI7QUFHQSxlQUFPRixjQUFjLENBQUNaLE1BQWYsQ0FBc0JmLFVBQVUsQ0FBQ3VCLEtBQUQsQ0FBaEMsRUFBZ0RFLFFBQWhELENBQVAsQ0FKYSxDQUtiO0FBQ0E7QUFDQSxPQVBELE1BT08sSUFBSTVDLFdBQUosRUFBaUI7QUFDdkIwQixRQUFBQSxZQUFZLEdBQUdDLFlBQVksQ0FBQ3NCLGdCQUFiLENBQThCO0FBQzVDcEIsVUFBQUEsS0FBSyxFQUFFLE9BRHFDO0FBRTVDQyxVQUFBQSxTQUFTLEVBQUUsS0FGaUM7QUFHNUNDLFVBQUFBLGNBQWMsRUFBRS9CLFdBSDRCO0FBSTVDa0QsVUFBQUEsYUFBYSxFQUFFUDtBQUo2QixTQUE5QixDQUFmO0FBTUEsZUFBT2pCLFlBQVksQ0FBQ1EsTUFBYixDQUFvQmYsVUFBVSxDQUFDdUIsS0FBRCxDQUE5QixDQUFQO0FBQ0EsT0FSTSxNQVFBO0FBQ05oQixRQUFBQSxZQUFZLEdBQUdDLFlBQVksQ0FBQ3NCLGdCQUFiLENBQThCO0FBQzVDRSxVQUFBQSxRQUFRLEVBQUVSO0FBRGtDLFNBQTlCLENBQWY7QUFHQSxlQUFPakIsWUFBWSxDQUFDUSxNQUFiLENBQW9CZixVQUFVLENBQUN1QixLQUFELENBQTlCLENBQVA7QUFDQTtBQUNELEtBL0l3Qjs7QUFpSnpCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQ1UsSUFBQUEsZUFBZSxFQUFFLFVBQVNyRSxpQkFBVCxFQUFpQ3NFLFlBQWpDLEVBQW9EckUsS0FBcEQsRUFBaUVFLFNBQWpFLEVBQW9GO0FBQ3BHLFVBQU1vRSxJQUFJLEdBQUd2RSxpQkFBaUIsQ0FBQ00sSUFBbEIsQ0FBdUIsS0FBdkIsQ0FBYjtBQUNBLFVBQUlrRSxJQUFKO0FBQ0EsVUFBSUMsU0FBSjs7QUFDQSxVQUFJRixJQUFJLElBQUlBLElBQUksQ0FBQyxhQUFELENBQWhCLEVBQWlDO0FBQ2hDQyxRQUFBQSxJQUFJLEdBQUdELElBQUksQ0FBQyxhQUFELENBQVg7QUFDQUUsUUFBQUEsU0FBUyxHQUFHRCxJQUFJLENBQUNFLEtBQUwsR0FBYUosWUFBWSxDQUFDRSxJQUFJLENBQUNFLEtBQU4sQ0FBekIsR0FBd0NGLElBQXBEO0FBQ0EsT0FIRCxNQUdPLElBQUlELElBQUksSUFBSUEsSUFBSSxDQUFDLE1BQUQsQ0FBaEIsRUFBMEI7QUFDaENDLFFBQUFBLElBQUksR0FBR0QsSUFBSSxDQUFDLE1BQUQsQ0FBWDtBQUNBOztBQUNELFVBQUlDLElBQUosRUFBVTtBQUNULFlBQU1HLFNBQVMsR0FBR0gsSUFBSSxDQUFDRSxLQUFMLEdBQWFKLFlBQVksQ0FBQ0UsSUFBSSxDQUFDRSxLQUFOLENBQXpCLEdBQXdDRixJQUExRDtBQUNBLFlBQU1qRSxxQkFBcUIsR0FBR04sS0FBSyxDQUFDTyxpQkFBTixDQUF3QixVQUF4QixDQUE5QjtBQUNBRCxRQUFBQSxxQkFBcUIsQ0FBQ2MsV0FBdEIsQ0FBa0MsU0FBU2xCLFNBQTNDLEVBQXNEd0UsU0FBdEQ7O0FBQ0EsWUFBSUYsU0FBSixFQUFlO0FBQ2RsRSxVQUFBQSxxQkFBcUIsQ0FBQ2MsV0FBdEIsQ0FBa0MsY0FBY2xCLFNBQWhELEVBQTJEd0UsU0FBM0Q7QUFDQTtBQUNEO0FBQ0QsS0EzS3dCOztBQTRLekI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDQyxJQUFBQSwyQkFBMkIsRUFBRSxVQUFTNUUsaUJBQVQsRUFBaUNDLEtBQWpDLEVBQThDQyxLQUE5QyxFQUE2REMsU0FBN0QsRUFBZ0Y7QUFDNUcsVUFBSSxDQUFDSCxpQkFBaUIsQ0FBQ00sSUFBbEIsQ0FBdUIsYUFBdkIsQ0FBTCxFQUE0QztBQUMzQyxhQUFLUCwyQkFBTCxDQUFpQ0MsaUJBQWpDLEVBQW9EQyxLQUFwRCxFQUEyREMsS0FBM0QsRUFBa0VDLFNBQWxFO0FBQ0EsT0FGRCxNQUVPO0FBQ04sWUFBTXdDLFlBQVksR0FBR0MsWUFBWSxDQUFDQyxrQkFBYixDQUFnQztBQUNwREMsVUFBQUEsS0FBSyxFQUFFLE9BRDZDO0FBRXBEQyxVQUFBQSxTQUFTLEVBQUUsS0FGeUM7QUFHcERDLFVBQUFBLGNBQWMsRUFBRWhELGlCQUFpQixDQUFDTSxJQUFsQixDQUF1QixhQUF2QjtBQUhvQyxTQUFoQyxDQUFyQjtBQUtBLFlBQU1DLHFCQUFxQixHQUFHTixLQUFLLENBQUNPLGlCQUFOLENBQXdCLFVBQXhCLENBQTlCO0FBQ0FELFFBQUFBLHFCQUFxQixDQUFDYyxXQUF0QixDQUFrQyxpQkFBaUJsQixTQUFuRCxFQUErRHdDLFlBQUQsQ0FBc0JjLFFBQXRCLEVBQTlEO0FBQ0E7QUFDRCxLQWhNd0I7O0FBa016QjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDb0IsSUFBQUEseUJBQXlCLEVBQUUsVUFBU0MsZ0JBQVQsRUFBbUNDLFdBQW5DLEVBQXdENUUsU0FBeEQsRUFBMkVGLEtBQTNFLEVBQXdGO0FBQ2xILFVBQU1NLHFCQUFxQixHQUFHTixLQUFLLENBQUNPLGlCQUFOLENBQXdCLFVBQXhCLENBQTlCO0FBQ0FELE1BQUFBLHFCQUFxQixDQUFDYyxXQUF0QixDQUFrQ2xCLFNBQWxDLEVBQTZDLEVBQTdDO0FBQ0FJLE1BQUFBLHFCQUFxQixDQUFDYyxXQUF0QixDQUFrQ2xCLFNBQWxDLEVBQTZDO0FBQzVDLDZCQUFxQjJFLGdCQUR1QjtBQUU1Qyx3QkFBZ0JDLFdBRjRCO0FBRzVDLHFCQUFhO0FBSCtCLE9BQTdDO0FBS0EsS0FqTndCOztBQWtOekI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQ0MsSUFBQUEsY0FBYyxFQUFFLFVBQVNDLFNBQVQsRUFBK0JDLFVBQS9CLEVBQW1EO0FBQ2xFLFVBQU1qQyxLQUFLLEdBQUcsRUFBZDs7QUFDQSxVQUFJZ0MsU0FBUyxJQUFJQyxVQUFqQixFQUE2QjtBQUM1QixhQUFLLElBQUlyRSxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHb0UsU0FBUyxDQUFDbkUsTUFBOUIsRUFBc0NELENBQUMsRUFBdkMsRUFBMkM7QUFDMUMsY0FBTXNFLFlBQVksR0FBR0YsU0FBUyxDQUFDcEUsQ0FBRCxDQUFULElBQWlCb0UsU0FBUyxDQUFDcEUsQ0FBRCxDQUFULENBQWFHLFNBQWIsRUFBdEM7QUFDQWlDLFVBQUFBLEtBQUssQ0FBQ2xDLElBQU4sQ0FBV29FLFlBQVksQ0FBQ0QsVUFBRCxDQUF2QjtBQUNBO0FBQ0Q7O0FBQ0QsYUFBTyxDQUFDLENBQUNqQyxLQUFLLENBQUNtQyxNQUFOLENBQWEsVUFBUzlFLElBQVQsRUFBb0IrRSxHQUFwQixFQUE4QjtBQUNuRCxlQUFPL0UsSUFBSSxLQUFLK0UsR0FBVCxHQUFlL0UsSUFBZixHQUFzQmdGLEdBQTdCO0FBQ0EsT0FGUSxDQUFUO0FBR0EsS0FwT3dCOztBQXNPekI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0NDLElBQUFBLGtCQUFrQixFQUFFLFVBQ25CbkYsS0FEbUIsRUFFbkJKLGlCQUZtQixFQUduQkcsU0FIbUIsRUFJbkJxRixlQUptQixFQUtuQnZGLEtBTG1CLEVBTWxCO0FBQ0QsVUFBTXNFLElBQUksR0FBR3ZFLGlCQUFpQixDQUFDTSxJQUFsQixDQUF1QixLQUF2QixDQUFiO0FBQ0EsVUFBTW1GLFdBQVcsR0FBR2xCLElBQUksSUFBSUEsSUFBSSxDQUFDLGFBQUQsQ0FBWixJQUErQkEsSUFBSSxDQUFDLGFBQUQsQ0FBSixDQUFvQkcsS0FBdkU7QUFDQSxVQUFNZ0IsT0FBTyxHQUFHbkIsSUFBSSxJQUFJQSxJQUFJLENBQUMsTUFBRCxDQUFaLElBQXdCQSxJQUFJLENBQUMsTUFBRCxDQUFKLENBQWFHLEtBQXJEO0FBQ0EsVUFBTVEsVUFBVSxHQUFHTyxXQUFXLElBQUlDLE9BQWxDO0FBQ0EsVUFBSVosZ0JBQUosRUFBc0JDLFdBQXRCOztBQUNBLFVBQUlHLFVBQUosRUFBZ0I7QUFDZixZQUFJLENBQUMsS0FBS0YsY0FBTCxDQUFvQjVFLEtBQXBCLEVBQTJCOEUsVUFBM0IsQ0FBTCxFQUE2QztBQUM1QyxjQUFJTyxXQUFKLEVBQWlCO0FBQ2hCWCxZQUFBQSxnQkFBZ0IsR0FBR1UsZUFBZSxDQUFDOUQsT0FBaEIsQ0FBd0Isc0NBQXhCLENBQW5CO0FBQ0FxRCxZQUFBQSxXQUFXLEdBQUdTLGVBQWUsQ0FBQzlELE9BQWhCLENBQXdCLG9DQUF4QixFQUE4RHdELFVBQTlELENBQWQ7QUFDQSxpQkFBS0wseUJBQUwsQ0FBK0JDLGdCQUEvQixFQUFpREMsV0FBakQsRUFBOEQ1RSxTQUE5RCxFQUF5RUYsS0FBekU7QUFDQTBGLFlBQUFBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLDRDQUE0Q1YsVUFBeEQ7QUFDQSxXQUxELE1BS08sSUFBSVEsT0FBSixFQUFhO0FBQ25CWixZQUFBQSxnQkFBZ0IsR0FBR1UsZUFBZSxDQUFDOUQsT0FBaEIsQ0FBd0Isc0NBQXhCLENBQW5CO0FBQ0FxRCxZQUFBQSxXQUFXLEdBQUdTLGVBQWUsQ0FBQzlELE9BQWhCLENBQXdCLGdDQUF4QixFQUEwRHdELFVBQTFELENBQWQ7QUFDQSxpQkFBS0wseUJBQUwsQ0FBK0JDLGdCQUEvQixFQUFpREMsV0FBakQsRUFBOEQ1RSxTQUE5RCxFQUF5RUYsS0FBekU7QUFDQTBGLFlBQUFBLEdBQUcsQ0FBQ0MsT0FBSixDQUFZLHdDQUF3Q1YsVUFBcEQ7QUFDQTtBQUNEO0FBQ0Q7QUFDRCxLQTFRd0I7O0FBNFF6QjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNDVyxJQUFBQSxnQkFBZ0IsRUFBRSxVQUFTMUYsU0FBVCxFQUE0QnFGLGVBQTVCLEVBQTZEdkYsS0FBN0QsRUFBMEU7QUFDM0YsVUFBTTZFLGdCQUFnQixHQUFHVSxlQUFlLENBQUM5RCxPQUFoQixDQUF3QixzQ0FBeEIsQ0FBekI7QUFDQSxVQUFNcUQsV0FBVyxHQUFHUyxlQUFlLENBQUM5RCxPQUFoQixDQUF3Qiw4QkFBeEIsQ0FBcEI7QUFDQSxXQUFLbUQseUJBQUwsQ0FBK0JDLGdCQUEvQixFQUFpREMsV0FBakQsRUFBOEQ1RSxTQUE5RCxFQUF5RUYsS0FBekU7QUFDQSxLQXZSd0I7QUF3UnpCNkYsSUFBQUEscUJBQXFCLEVBQUUsVUFBU0MsaUJBQVQsRUFBaUM7QUFDdkQsVUFBTUMsb0JBQXlCLEdBQUcsRUFBbEM7QUFDQUMsTUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQVlILGlCQUFaLEVBQStCSSxPQUEvQixDQUF1QyxVQUFTQyxJQUFULEVBQXVCO0FBQzdELFlBQU1DLG9CQUFvQixHQUFHLEVBQTdCO0FBQ0EsWUFBTUMsV0FBVyxHQUFHUCxpQkFBaUIsQ0FBQ0ssSUFBRCxDQUFyQzs7QUFDQSxhQUFLLElBQUl2RixDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHeUYsV0FBVyxDQUFDeEYsTUFBaEMsRUFBd0NELENBQUMsRUFBekMsRUFBNkM7QUFDNUMsY0FBTTBGLE1BQU0sR0FBR0QsV0FBVyxDQUFDekYsQ0FBRCxDQUFYLENBQWUyRixNQUFmLEdBQXdCLENBQUNGLFdBQVcsQ0FBQ3pGLENBQUQsQ0FBWCxDQUFlNEYsTUFBaEIsRUFBd0JILFdBQVcsQ0FBQ3pGLENBQUQsQ0FBWCxDQUFlMkYsTUFBdkMsQ0FBeEIsR0FBeUUsQ0FBQ0YsV0FBVyxDQUFDekYsQ0FBRCxDQUFYLENBQWU0RixNQUFoQixDQUF4RjtBQUNBSixVQUFBQSxvQkFBb0IsQ0FBQ3RGLElBQXJCLENBQ0MyRixTQUFTLENBQUNDLGVBQVYsQ0FBMEJMLFdBQVcsQ0FBQ3pGLENBQUQsQ0FBWCxDQUFlK0YsUUFBekMsRUFBbURMLE1BQW5ELEVBQTJELElBQTNELEVBQWlFLElBQWpFLEVBQXVFLFdBQXZFLENBREQ7QUFHQTs7QUFDRCxZQUFJRixvQkFBb0IsQ0FBQ3ZGLE1BQXpCLEVBQWlDO0FBQ2hDa0YsVUFBQUEsb0JBQW9CLENBQUNJLElBQUQsQ0FBcEIsR0FBNkJDLG9CQUE3QjtBQUNBO0FBQ0QsT0FaRDtBQWFBLGFBQU9MLG9CQUFQO0FBQ0EsS0F4U3dCO0FBeVN6QmEsSUFBQUEsbUJBQW1CLEVBQUUsVUFBU0MsS0FBVCxFQUFxQkMsY0FBckIsRUFBMENDLGFBQTFDLEVBQThEO0FBQ2xGLFVBQUlQLE1BQUosRUFBWUQsTUFBWjs7QUFDQSxVQUFJTyxjQUFjLENBQUNFLEtBQWYsS0FBeUIsb0JBQTdCLEVBQW1EO0FBQ2xEUixRQUFBQSxNQUFNLEdBQUcsS0FBS1MsY0FBTCxDQUFvQkMscUJBQXFCLENBQUMsS0FBS0MsZUFBTCxDQUFxQk4sS0FBSyxDQUFDTyxHQUEzQixDQUFELEVBQWtDTixjQUFjLENBQUNFLEtBQWpELENBQXpDLENBQVQ7QUFDQVQsUUFBQUEsTUFBTSxHQUFHTSxLQUFLLENBQUNRLElBQU4sR0FBYSxLQUFLSixjQUFMLENBQW9CQyxxQkFBcUIsQ0FBQyxLQUFLQyxlQUFMLENBQXFCTixLQUFLLENBQUNRLElBQTNCLENBQUQsRUFBbUNQLGNBQWMsQ0FBQ0UsS0FBbEQsQ0FBekMsQ0FBYixHQUFrSCxJQUEzSDtBQUNBLE9BSEQsTUFHTztBQUNOUixRQUFBQSxNQUFNLEdBQUdLLEtBQUssQ0FBQ08sR0FBZjtBQUNBYixRQUFBQSxNQUFNLEdBQUdNLEtBQUssQ0FBQ1EsSUFBTixHQUFhUixLQUFLLENBQUNRLElBQW5CLEdBQTBCLElBQW5DO0FBQ0E7O0FBQ0QsYUFBTztBQUNOVixRQUFBQSxRQUFRLEVBQUVFLEtBQUssQ0FBQ1MsTUFBTixHQUFlQyxXQUFXLENBQUNWLEtBQUssQ0FBQ1MsTUFBTixDQUFhRSxXQUFiLElBQTRCWCxLQUFLLENBQUNTLE1BQW5DLENBQTFCLEdBQXVFLElBRDNFO0FBRU5kLFFBQUFBLE1BQU0sRUFBRUEsTUFGRjtBQUdORCxRQUFBQSxNQUFNLEVBQUVBLE1BSEY7QUFJTmtCLFFBQUFBLElBQUksRUFBRVY7QUFKQSxPQUFQO0FBTUEsS0F4VHdCO0FBeVR6QkUsSUFBQUEsY0FBYyxFQUFFLFVBQVNTLE1BQVQsRUFBc0I7QUFDckMsYUFBTyxLQUFLQyx3QkFBTCxHQUFnQ0MsVUFBaEMsQ0FBMkNGLE1BQTNDLEVBQW1ELFFBQW5ELENBQVA7QUFDQSxLQTNUd0I7QUE0VHpCUCxJQUFBQSxlQUFlLEVBQUUsVUFBU08sTUFBVCxFQUFzQjtBQUN0QyxhQUFPLEtBQUtDLHdCQUFMLEdBQWdDRSxXQUFoQyxDQUE0Q0gsTUFBNUMsRUFBb0QsUUFBcEQsQ0FBUDtBQUNBLEtBOVR3QjtBQStUekJDLElBQUFBLHdCQUF3QixFQUFFLFlBQVc7QUFDcEMsYUFBTyxJQUFJRyxjQUFKLENBQW1CO0FBQUVDLFFBQUFBLE9BQU8sRUFBRSxzQkFBWDtBQUFtQ0MsUUFBQUEsWUFBWSxFQUFFO0FBQWpELE9BQW5CLEVBQW1GO0FBQUVDLFFBQUFBLEVBQUUsRUFBRTtBQUFOLE9BQW5GLENBQVA7QUFDQTtBQWpVd0IsR0FBMUI7U0FvVWVwSSxpQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IENvbmRpdGlvbiBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IFRpdGxlIGZyb20gXCJzYXAvbS9UaXRsZVwiO1xuaW1wb3J0IE51bWJlckZvcm1hdCBmcm9tIFwic2FwL3VpL2NvcmUvZm9ybWF0L051bWJlckZvcm1hdFwiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBDb25kaXRpb25WYWxpZGF0ZWQgZnJvbSBcInNhcC91aS9tZGMvZW51bS9Db25kaXRpb25WYWxpZGF0ZWRcIjtcbmltcG9ydCB7IGdldE9wZXJhdG9yLCBnZXRUeXBlQ29tcGxpYW50VmFsdWUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9GaWx0ZXJIZWxwZXJcIjtcbmltcG9ydCBEYXRlVGltZU9mZnNldCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3R5cGUvRGF0ZVRpbWVPZmZzZXRcIjtcblxuY29uc3QgVmlzdWFsRmlsdGVyVXRpbHMgPSB7XG5cdC8qKlxuXHQgKiBBcHBsaWVzIHRoZSBtZWRpYW4gc2NhbGUgdG8gdGhlIGNoYXJ0IGRhdGEuXG5cdCAqXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvSW50ZXJhY3RpdmVDaGFydCBJbnRlcmFjdGl2ZUNoYXJ0IGluIHRoZSBWaXN1YWxGaWx0ZXIgY29udHJvbFxuXHQgKiBAcGFyYW0ge29iamVjdH0gb1ZpZXcgSW5zdGFuY2Ugb2YgdGhlIHZpZXdcblx0ICogQHBhcmFtIHtvYmplY3R9IHNWRklkIFZpc3VhbEZpbHRlciBjb250cm9sIElEXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqL1xuXHRhcHBseU1lZGlhblNjYWxlVG9DaGFydERhdGE6IGZ1bmN0aW9uKG9JbnRlcmFjdGl2ZUNoYXJ0OiBhbnksIG9WaWV3OiBWaWV3LCBzVkZJZDogc3RyaW5nLCBzSW5mb1BhdGg6IHN0cmluZykge1xuXHRcdGNvbnN0IG9EYXRhID0gW107XG5cdFx0Y29uc3Qgc01lYXN1cmUgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwibWVhc3VyZVwiKTtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdGNvbnN0IGFBZ2dyZWdhdGlvbiA9XG5cdFx0XHQob0ludGVyYWN0aXZlQ2hhcnQuZ2V0UG9pbnRzICYmIG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFBvaW50cygpKSB8fFxuXHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJhcnMgJiYgb0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmFycygpKSB8fFxuXHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFNlZ21lbnRzICYmIG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFNlZ21lbnRzKCkpO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUFnZ3JlZ2F0aW9uLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRvRGF0YS5wdXNoKGFBZ2dyZWdhdGlvbltpXS5nZXRCaW5kaW5nQ29udGV4dCgpLmdldE9iamVjdCgpKTtcblx0XHR9XG5cdFx0Y29uc3Qgc2NhbGVGYWN0b3IgPSB0aGlzLl9nZXRNZWRpYW5TY2FsZUZhY3RvcihvRGF0YSwgc01lYXN1cmUpO1xuXHRcdGlmIChzY2FsZUZhY3RvciAmJiBzY2FsZUZhY3Rvci5pU2hvcnRSZWZOdW1iZXIgJiYgc2NhbGVGYWN0b3Iuc2NhbGUpIHtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcInNjYWxlZmFjdG9yL1wiICsgc0luZm9QYXRoLCBzY2FsZUZhY3Rvci5zY2FsZSk7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJzY2FsZWZhY3Rvck51bWJlci9cIiArIHNJbmZvUGF0aCwgc2NhbGVGYWN0b3IuaVNob3J0UmVmTnVtYmVyKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwic2NhbGVmYWN0b3IvXCIgKyBzSW5mb1BhdGgsIFwiXCIpO1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwic2NhbGVmYWN0b3JOdW1iZXIvXCIgKyBzSW5mb1BhdGgsIFwiXCIpO1xuXHRcdFx0Y29uc3Qgb1NjYWxlVGl0bGUgPSBvVmlldy5ieUlkKHNWRklkICsgXCI6OlNjYWxlVW9NVGl0bGVcIikgYXMgVGl0bGU7XG5cdFx0XHRjb25zdCBvTWVhc3VyZURpbWVuc2lvblRpdGxlID0gb1ZpZXcuYnlJZChzVkZJZCArIFwiOjpNZWFzdXJlRGltZW5zaW9uVGl0bGVcIikgYXMgVGl0bGU7XG5cdFx0XHRjb25zdCBzVGV4dCA9IG9TY2FsZVRpdGxlLmdldFRleHQoKTtcblx0XHRcdGlmIChzVGV4dCA9PT0gXCIgfCBcIikge1xuXHRcdFx0XHRvU2NhbGVUaXRsZS5zZXRWaXNpYmxlKGZhbHNlKTtcblx0XHRcdFx0b01lYXN1cmVEaW1lbnNpb25UaXRsZS5zZXRUb29sdGlwKG9NZWFzdXJlRGltZW5zaW9uVGl0bGUuZ2V0VGV4dCgpKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIG1lZGlhbiBzY2FsZSBmYWN0b3IuXG5cdCAqXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvRGF0YSBWaXN1YWxGaWx0ZXIgZGF0YVxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc01lYXN1cmVGaWVsZCBQYXRoIG9mIHRoZSBtZWFzdXJlXG5cdCAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHNjYWxlIGFuZCBpU2hvcnRSZWZOdW1iZXJcblx0ICovXG5cdF9nZXRNZWRpYW5TY2FsZUZhY3RvcjogZnVuY3Rpb24ob0RhdGE6IGFueVtdLCBzTWVhc3VyZUZpZWxkOiBzdHJpbmcpIHtcblx0XHRsZXQgaTtcblx0XHRsZXQgc2NhbGVGYWN0b3I7XG5cdFx0b0RhdGEuc29ydChmdW5jdGlvbihhOiBhbnksIGI6IGFueSkge1xuXHRcdFx0aWYgKE51bWJlcihhW3NNZWFzdXJlRmllbGRdKSA8IE51bWJlcihiW3NNZWFzdXJlRmllbGRdKSkge1xuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cdFx0XHRpZiAoTnVtYmVyKGFbc01lYXN1cmVGaWVsZF0pID4gTnVtYmVyKGJbc01lYXN1cmVGaWVsZF0pKSB7XG5cdFx0XHRcdHJldHVybiAxO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fSk7XG5cdFx0aWYgKG9EYXRhLmxlbmd0aCA+IDApIHtcblx0XHRcdC8vIGdldCBtZWRpYW4gaW5kZXhcblx0XHRcdGNvbnN0IGlNaWQgPSBvRGF0YS5sZW5ndGggLyAyLCAvLyBnZXQgbWlkIG9mIGFycmF5XG5cdFx0XHRcdC8vIGlmIGlNaWQgaXMgd2hvbGUgbnVtYmVyLCBhcnJheSBsZW5ndGggaXMgZXZlbiwgY2FsY3VsYXRlIG1lZGlhblxuXHRcdFx0XHQvLyBpZiBpTWlkIGlzIG5vdCB3aG9sZSBudW1iZXIsIGFycmF5IGxlbmd0aCBpcyBvZGQsIHRha2UgbWVkaWFuIGFzIGlNaWQgLSAxXG5cdFx0XHRcdGlNZWRpYW4gPVxuXHRcdFx0XHRcdGlNaWQgJSAxID09PSAwXG5cdFx0XHRcdFx0XHQ/IChwYXJzZUZsb2F0KG9EYXRhW2lNaWQgLSAxXVtzTWVhc3VyZUZpZWxkXSkgKyBwYXJzZUZsb2F0KG9EYXRhW2lNaWRdW3NNZWFzdXJlRmllbGRdKSkgLyAyXG5cdFx0XHRcdFx0XHQ6IHBhcnNlRmxvYXQob0RhdGFbTWF0aC5mbG9vcihpTWlkKV1bc01lYXN1cmVGaWVsZF0pLFxuXHRcdFx0XHQvLyBnZXQgc2NhbGUgZmFjdG9yIG9uIG1lZGlhblxuXHRcdFx0XHR2YWwgPSBpTWVkaWFuO1xuXHRcdFx0Zm9yIChpID0gMDsgaSA8IDE0OyBpKyspIHtcblx0XHRcdFx0c2NhbGVGYWN0b3IgPSBNYXRoLnBvdygxMCwgaSk7XG5cdFx0XHRcdGlmIChNYXRoLnJvdW5kKE1hdGguYWJzKHZhbCkgLyBzY2FsZUZhY3RvcikgPCAxMCkge1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Y29uc3QgZml4ZWRJbnRlZ2VyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSh7XG5cdFx0XHRzdHlsZTogXCJzaG9ydFwiLFxuXHRcdFx0c2hvd1NjYWxlOiBmYWxzZSxcblx0XHRcdHNob3J0UmVmTnVtYmVyOiBzY2FsZUZhY3RvclxuXHRcdH0pO1xuXG5cdFx0Ly8gYXBwbHkgc2NhbGUgZmFjdG9yIHRvIG90aGVyIHZhbHVlcyBhbmQgY2hlY2tcblx0XHRmb3IgKGkgPSAwOyBpIDwgb0RhdGEubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGFEYXRhID0gb0RhdGFbaV0sXG5cdFx0XHRcdHNTY2FsZWRWYWx1ZSA9IGZpeGVkSW50ZWdlci5mb3JtYXQoYURhdGFbc01lYXN1cmVGaWVsZF0pIGFzIGFueSxcblx0XHRcdFx0YVNjYWxlZFZhbHVlUGFydHMgPSBzU2NhbGVkVmFsdWUuc3BsaXQoXCIuXCIpO1xuXHRcdFx0Ly8gaWYgc2NhbGVkIHZhbHVlIGhhcyBvbmx5IDAgYmVmb3JlIGRlY2ltYWwgb3IgMCBhZnRlciBkZWNpbWFsIChleGFtcGxlOiAwLjAyKVxuXHRcdFx0Ly8gdGhlbiBpZ25vcmUgdGhpcyBzY2FsZSBmYWN0b3IgZWxzZSBwcm9jZWVkIHdpdGggdGhpcyBzY2FsZSBmYWN0b3Jcblx0XHRcdC8vIGlmIHNjYWxlZCB2YWx1ZSBkaXZpZGVkIGJ5IDEwMDAgaXMgPj0gMTAwMCB0aGVuIGFsc28gaWdub3JlIHNjYWxlIGZhY3RvclxuXHRcdFx0aWYgKFxuXHRcdFx0XHQoIWFTY2FsZWRWYWx1ZVBhcnRzWzFdICYmIHBhcnNlSW50KGFTY2FsZWRWYWx1ZVBhcnRzWzBdLCAxMCkgPT09IDApIHx8XG5cdFx0XHRcdChhU2NhbGVkVmFsdWVQYXJ0c1sxXSAmJiBwYXJzZUludChhU2NhbGVkVmFsdWVQYXJ0c1swXSwgMTApID09PSAwICYmIGFTY2FsZWRWYWx1ZVBhcnRzWzFdLmluZGV4T2YoXCIwXCIpID09PSAwKSB8fFxuXHRcdFx0XHRzU2NhbGVkVmFsdWUgLyAxMDAwID49IDEwMDBcblx0XHRcdCkge1xuXHRcdFx0XHRzY2FsZUZhY3RvciA9IHVuZGVmaW5lZDtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRpU2hvcnRSZWZOdW1iZXI6IHNjYWxlRmFjdG9yLFxuXHRcdFx0c2NhbGU6IHNjYWxlRmFjdG9yID8gKGZpeGVkSW50ZWdlciBhcyBhbnkpLmdldFNjYWxlKCkgOiBcIlwiXG5cdFx0fTtcblx0fSxcblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgZm9ybWF0dGVkIG51bWJlciBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIG9mIFZpc3VhbENoYXJ0RmlsdGVycy5cblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXJ9IHZhbHVlIFZhbHVlIHdoaWNoIG5lZWRzIHRvIGJlIGZvcm1hdHRlZFxuXHQgKiBAcGFyYW0ge251bWJlcn0gc2NhbGVGYWN0b3IgU2NhbGVGYWN0b3IgdG8gd2hpY2ggdGhlIHZhbHVlIG5lZWRzIHRvIGJlIHNjYWxlZFxuXHQgKiBAcGFyYW0ge251bWJlcn0gbnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzIE51bWJlck9mRnJhY3Rpb25hbERpZ2l0cyBkaWdpdHMgaW4gdGhlIGRlY2ltYWxzIGFjY29yZGluZyB0byBzY2FsZVxuXHQgKiBAcGFyYW0ge3N0cmluZ30gY3VycmVuY3kgQ3VycmVuY3kgY29kZVxuXHQgKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgZm9ybWF0dGVkIG51bWJlclxuXHQgKi9cblx0Z2V0Rm9ybWF0dGVkTnVtYmVyOiBmdW5jdGlvbihcblx0XHR2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLFxuXHRcdHNjYWxlRmFjdG9yOiBudW1iZXIgfCB1bmRlZmluZWQsXG5cdFx0bnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzOiBudW1iZXIgfCB1bmRlZmluZWQsXG5cdFx0Y3VycmVuY3k6IHN0cmluZyB8IHVuZGVmaW5lZFxuXHQpIHtcblx0XHRsZXQgZml4ZWRJbnRlZ2VyO1xuXHRcdHZhbHVlID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gTnVtYmVyKHZhbHVlLnJlcGxhY2UoLywvZywgXCJcIikpIDogdmFsdWU7XG5cblx0XHRpZiAoY3VycmVuY3kpIHtcblx0XHRcdGNvbnN0IGN1cnJlbmN5Rm9ybWF0ID0gTnVtYmVyRm9ybWF0LmdldEN1cnJlbmN5SW5zdGFuY2Uoe1xuXHRcdFx0XHRzaG93TWVhc3VyZTogZmFsc2Vcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGN1cnJlbmN5Rm9ybWF0LmZvcm1hdChwYXJzZUZsb2F0KHZhbHVlIGFzIGFueSksIGN1cnJlbmN5KTtcblx0XHRcdC8vIHBhcnNlRmxvYXQodmFsdWUpIGlzIHJlcXVpcmVkIG90aGVyd2lzZSAtdmUgdmFsdWUgYXJlIHdyb25nbHkgcm91bmRlZCBvZmZcblx0XHRcdC8vIEV4YW1wbGU6IFwiLTEuOVwiIHJvdW5kcyBvZmYgdG8gLTEgaW5zdGVhZCBvZiAtMi4gaG93ZXZlciAtMS45IHJvdW5kcyBvZmYgdG8gLTJcblx0XHR9IGVsc2UgaWYgKHNjYWxlRmFjdG9yKSB7XG5cdFx0XHRmaXhlZEludGVnZXIgPSBOdW1iZXJGb3JtYXQuZ2V0RmxvYXRJbnN0YW5jZSh7XG5cdFx0XHRcdHN0eWxlOiBcInNob3J0XCIsXG5cdFx0XHRcdHNob3dTY2FsZTogZmFsc2UsXG5cdFx0XHRcdHNob3J0UmVmTnVtYmVyOiBzY2FsZUZhY3Rvcixcblx0XHRcdFx0c2hvcnREZWNpbWFsczogbnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzXG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBmaXhlZEludGVnZXIuZm9ybWF0KHBhcnNlRmxvYXQodmFsdWUgYXMgYW55KSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZpeGVkSW50ZWdlciA9IE51bWJlckZvcm1hdC5nZXRGbG9hdEluc3RhbmNlKHtcblx0XHRcdFx0ZGVjaW1hbHM6IG51bWJlck9mRnJhY3Rpb25hbERpZ2l0c1xuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gZml4ZWRJbnRlZ2VyLmZvcm1hdChwYXJzZUZsb2F0KHZhbHVlIGFzIGFueSkpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogQXBwbGllcyB0aGUgVU9NIHRvIHRoZSB0aXRsZSBvZiB0aGUgdmlzdWFsIGZpbHRlciBjb250cm9sLlxuXHQgKlxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0ludGVyYWN0aXZlQ2hhcnQgSW50ZXJhY3RpdmVDaGFydCBpbiB0aGUgVmlzdWFsRmlsdGVyIGNvbnRyb2xcblx0ICogQHBhcmFtIHtvYmplY3R9IG9Db250ZXh0RGF0YSBEYXRhIG9mIHRoZSBWaXN1YWxGaWx0ZXJcblx0ICogQHBhcmFtIHtvYmplY3R9IG9WaWV3IEluc3RhbmNlIG9mIHRoZSB2aWV3XG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqL1xuXHRhcHBseVVPTVRvVGl0bGU6IGZ1bmN0aW9uKG9JbnRlcmFjdGl2ZUNoYXJ0OiBhbnksIG9Db250ZXh0RGF0YTogYW55LCBvVmlldzogVmlldywgc0luZm9QYXRoOiBzdHJpbmcpIHtcblx0XHRjb25zdCB2VU9NID0gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInVvbVwiKTtcblx0XHRsZXQgc1VPTTtcblx0XHRsZXQgc0N1cnJlbmN5O1xuXHRcdGlmICh2VU9NICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXSkge1xuXHRcdFx0c1VPTSA9IHZVT01bXCJJU09DdXJyZW5jeVwiXTtcblx0XHRcdHNDdXJyZW5jeSA9IHNVT00uJFBhdGggPyBvQ29udGV4dERhdGFbc1VPTS4kUGF0aF0gOiBzVU9NO1xuXHRcdH0gZWxzZSBpZiAodlVPTSAmJiB2VU9NW1wiVW5pdFwiXSkge1xuXHRcdFx0c1VPTSA9IHZVT01bXCJVbml0XCJdO1xuXHRcdH1cblx0XHRpZiAoc1VPTSkge1xuXHRcdFx0Y29uc3Qgc1VPTVZhbHVlID0gc1VPTS4kUGF0aCA/IG9Db250ZXh0RGF0YVtzVU9NLiRQYXRoXSA6IHNVT007XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwidW9tL1wiICsgc0luZm9QYXRoLCBzVU9NVmFsdWUpO1xuXHRcdFx0aWYgKHNDdXJyZW5jeSkge1xuXHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJjdXJyZW5jeS9cIiArIHNJbmZvUGF0aCwgc1VPTVZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdC8qKlxuXHQgKiBVcGRhdGVzIHRoZSBzY2FsZSBmYWN0b3IgaW4gdGhlIHRpdGxlIG9mIHRoZSB2aXN1YWwgZmlsdGVyLlxuXHQgKlxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0ludGVyYWN0aXZlQ2hhcnQgSW50ZXJhY3RpdmVDaGFydCBpbiB0aGUgVmlzdWFsRmlsdGVyIGNvbnRyb2xcblx0ICogQHBhcmFtIHtvYmplY3R9IG9WaWV3IEluc3RhbmNlIG9mIHRoZSB2aWV3XG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBzVkZJZCBWaXN1YWxGaWx0ZXIgY29udHJvbCBJRFxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc0luZm9QYXRoIEludGVybmFsIG1vZGVsIGNvbnRleHQgcGF0aCB0byBzdG9yZSBpbmZvLlxuXHQgKi9cblx0dXBkYXRlQ2hhcnRTY2FsZUZhY3RvclRpdGxlOiBmdW5jdGlvbihvSW50ZXJhY3RpdmVDaGFydDogYW55LCBvVmlldzogVmlldywgc1ZGSWQ6IHN0cmluZywgc0luZm9QYXRoOiBzdHJpbmcpIHtcblx0XHRpZiAoIW9JbnRlcmFjdGl2ZUNoYXJ0LmRhdGEoXCJzY2FsZWZhY3RvclwiKSkge1xuXHRcdFx0dGhpcy5hcHBseU1lZGlhblNjYWxlVG9DaGFydERhdGEob0ludGVyYWN0aXZlQ2hhcnQsIG9WaWV3LCBzVkZJZCwgc0luZm9QYXRoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgZml4ZWRJbnRlZ2VyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSh7XG5cdFx0XHRcdHN0eWxlOiBcInNob3J0XCIsXG5cdFx0XHRcdHNob3dTY2FsZTogZmFsc2UsXG5cdFx0XHRcdHNob3J0UmVmTnVtYmVyOiBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2NhbGVmYWN0b3JcIilcblx0XHRcdH0pO1xuXHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcInNjYWxlZmFjdG9yL1wiICsgc0luZm9QYXRoLCAoZml4ZWRJbnRlZ2VyIGFzIGFueSkuZ2V0U2NhbGUoKSk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gczE4bk1lc3NhZ2VUaXRsZSBUZXh0IG9mIHRoZSBlcnJvciBtZXNzYWdlIHRpdGxlLlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gczE4bk1lc3NhZ2UgVGV4dCBvZiB0aGUgZXJyb3IgbWVzc2FnZSBkZXNjcmlwdGlvbi5cblx0ICogQHBhcmFtIHtzdHJpbmd9IHNJbmZvUGF0aCBJbnRlcm5hbCBtb2RlbCBjb250ZXh0IHBhdGggdG8gc3RvcmUgaW5mby5cblx0ICogQHBhcmFtIHtvYmplY3R9IG9WaWV3IEluc3RhbmNlIG9mIHRoZSB2aWV3LlxuXHQgKi9cblx0YXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZTogZnVuY3Rpb24oczE4bk1lc3NhZ2VUaXRsZTogc3RyaW5nLCBzMThuTWVzc2FnZTogc3RyaW5nLCBzSW5mb1BhdGg6IHN0cmluZywgb1ZpZXc6IFZpZXcpIHtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW5mb1BhdGgsIHt9KTtcblx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0luZm9QYXRoLCB7XG5cdFx0XHRcImVycm9yTWVzc2FnZVRpdGxlXCI6IHMxOG5NZXNzYWdlVGl0bGUsXG5cdFx0XHRcImVycm9yTWVzc2FnZVwiOiBzMThuTWVzc2FnZSxcblx0XHRcdFwic2hvd0Vycm9yXCI6IHRydWVcblx0XHR9KTtcblx0fSxcblx0LyoqXG5cdCAqIENoZWNrcyBpZiBtdWx0aXBsZSB1bml0cyBhcmUgcHJlc2VudC5cblx0ICpcblx0ICogQHBhcmFtIHtvYmplY3R9IG9Db250ZXh0cyBDb250ZXh0cyBvZiB0aGUgVmlzdWFsRmlsdGVyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzVW5pdGZpZWxkIFRoZSBwYXRoIG9mIHRoZSB1bml0IGZpZWxkXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBSZXR1cm5zIGlmIG11bHRpcGxlIHVuaXRzIGFyZSBjb25maWd1cmVkIG9yIG5vdFxuXHQgKi9cblx0Y2hlY2tNdWxpdFVuaXQ6IGZ1bmN0aW9uKG9Db250ZXh0czogQ29udGV4dFtdLCBzVW5pdGZpZWxkOiBzdHJpbmcpIHtcblx0XHRjb25zdCBhRGF0YSA9IFtdO1xuXHRcdGlmIChvQ29udGV4dHMgJiYgc1VuaXRmaWVsZCkge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBvQ29udGV4dHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3QgYUNvbnRleHREYXRhID0gb0NvbnRleHRzW2ldICYmIChvQ29udGV4dHNbaV0uZ2V0T2JqZWN0KCkgYXMgYW55KTtcblx0XHRcdFx0YURhdGEucHVzaChhQ29udGV4dERhdGFbc1VuaXRmaWVsZF0pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gISFhRGF0YS5yZWR1Y2UoZnVuY3Rpb24oZGF0YTogYW55LCBrZXk6IGFueSkge1xuXHRcdFx0cmV0dXJuIGRhdGEgPT09IGtleSA/IGRhdGEgOiBOYU47XG5cdFx0fSk7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNldHMgYW4gZXJyb3IgbWVzc2FnZSBpZiBtdWx0aXBsZSBVT00gYXJlIHByZXNlbnQuXG5cdCAqXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvRGF0YSBEYXRhIG9mIHRoZSBWaXN1YWxGaWx0ZXIgY29udHJvbFxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0ludGVyYWN0aXZlQ2hhcnQgSW50ZXJhY3RpdmVDaGFydCBpbiB0aGUgVmlzdWFsRmlsdGVyIGNvbnRyb2xcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNJbmZvUGF0aCBJbnRlcm5hbCBtb2RlbCBjb250ZXh0IHBhdGggdG8gc3RvcmUgaW5mby5cblx0ICogQHBhcmFtIHtzdHJpbmd9IG9SZXNvdXJjZUJ1bmRsZSBUaGUgcmVzb3VyY2UgYnVuZGxlXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBvVmlldyBJbnN0YW5jZSBvZiB0aGUgdmlld1xuXHQgKi9cblx0c2V0TXVsdGlVT01NZXNzYWdlOiBmdW5jdGlvbihcblx0XHRvRGF0YTogQ29udGV4dFtdLFxuXHRcdG9JbnRlcmFjdGl2ZUNoYXJ0OiBhbnksXG5cdFx0c0luZm9QYXRoOiBzdHJpbmcsXG5cdFx0b1Jlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZSxcblx0XHRvVmlldzogVmlld1xuXHQpIHtcblx0XHRjb25zdCB2VU9NID0gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInVvbVwiKTtcblx0XHRjb25zdCBzSXNDdXJyZW5jeSA9IHZVT00gJiYgdlVPTVtcIklTT0N1cnJlbmN5XCJdICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXS4kUGF0aDtcblx0XHRjb25zdCBzSXNVbml0ID0gdlVPTSAmJiB2VU9NW1wiVW5pdFwiXSAmJiB2VU9NW1wiVW5pdFwiXS4kUGF0aDtcblx0XHRjb25zdCBzVW5pdGZpZWxkID0gc0lzQ3VycmVuY3kgfHwgc0lzVW5pdDtcblx0XHRsZXQgczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2U7XG5cdFx0aWYgKHNVbml0ZmllbGQpIHtcblx0XHRcdGlmICghdGhpcy5jaGVja011bGl0VW5pdChvRGF0YSwgc1VuaXRmaWVsZCkpIHtcblx0XHRcdFx0aWYgKHNJc0N1cnJlbmN5KSB7XG5cdFx0XHRcdFx0czE4bk1lc3NhZ2VUaXRsZSA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpO1xuXHRcdFx0XHRcdHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX01VTFRJUExFX0NVUlJFTkNZXCIsIHNVbml0ZmllbGQpO1xuXHRcdFx0XHRcdHRoaXMuYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZShzMThuTWVzc2FnZVRpdGxlLCBzMThuTWVzc2FnZSwgc0luZm9QYXRoLCBvVmlldyk7XG5cdFx0XHRcdFx0TG9nLndhcm5pbmcoXCJGaWx0ZXIgaXMgc2V0IGZvciBtdWx0aXBsZSBDdXJyZW5jeSBmb3JcIiArIHNVbml0ZmllbGQpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHNJc1VuaXQpIHtcblx0XHRcdFx0XHRzMThuTWVzc2FnZVRpdGxlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIik7XG5cdFx0XHRcdFx0czE4bk1lc3NhZ2UgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfTVVMVElQTEVfVU5JVFwiLCBzVW5pdGZpZWxkKTtcblx0XHRcdFx0XHR0aGlzLmFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGUoczE4bk1lc3NhZ2VUaXRsZSwgczE4bk1lc3NhZ2UsIHNJbmZvUGF0aCwgb1ZpZXcpO1xuXHRcdFx0XHRcdExvZy53YXJuaW5nKFwiRmlsdGVyIGlzIHNldCBmb3IgbXVsdGlwbGUgVU9NcyBmb3JcIiArIHNVbml0ZmllbGQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBTZXRzIGFuIGVycm9yIG1lc3NhZ2UgaWYgcmVzcG9uc2UgZGF0YSBpcyBlbXB0eS5cblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNJbmZvUGF0aCBJbnRlcm5hbCBtb2RlbCBjb250ZXh0IHBhdGggdG8gc3RvcmUgaW5mby5cblx0ICogQHBhcmFtIHtzdHJpbmd9IG9SZXNvdXJjZUJ1bmRsZSBUaGUgcmVzb3VyY2UgYnVuZGxlXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBvVmlldyBJbnN0YW5jZSBvZiB0aGUgdmlld1xuXHQgKi9cblx0c2V0Tm9EYXRhTWVzc2FnZTogZnVuY3Rpb24oc0luZm9QYXRoOiBzdHJpbmcsIG9SZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGUsIG9WaWV3OiBWaWV3KSB7XG5cdFx0Y29uc3QgczE4bk1lc3NhZ2VUaXRsZSA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpO1xuXHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJfTk9fREFUQV9URVhUXCIpO1xuXHRcdHRoaXMuYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZShzMThuTWVzc2FnZVRpdGxlLCBzMThuTWVzc2FnZSwgc0luZm9QYXRoLCBvVmlldyk7XG5cdH0sXG5cdGNvbnZlcnRGaWx0ZXJDb25kaW9uczogZnVuY3Rpb24ob0ZpbHRlckNvbmRpdGlvbnM6IGFueSkge1xuXHRcdGNvbnN0IG9Db252ZXJ0ZWRDb25kaXRpb25zOiBhbnkgPSB7fTtcblx0XHRPYmplY3Qua2V5cyhvRmlsdGVyQ29uZGl0aW9ucykuZm9yRWFjaChmdW5jdGlvbihzS2V5OiBzdHJpbmcpIHtcblx0XHRcdGNvbnN0IGFDb252ZXJ0ZWRDb25kaXRpb25zID0gW107XG5cdFx0XHRjb25zdCBhQ29uZGl0aW9ucyA9IG9GaWx0ZXJDb25kaXRpb25zW3NLZXldO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhQ29uZGl0aW9ucy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCB2YWx1ZXMgPSBhQ29uZGl0aW9uc1tpXS52YWx1ZTIgPyBbYUNvbmRpdGlvbnNbaV0udmFsdWUxLCBhQ29uZGl0aW9uc1tpXS52YWx1ZTJdIDogW2FDb25kaXRpb25zW2ldLnZhbHVlMV07XG5cdFx0XHRcdGFDb252ZXJ0ZWRDb25kaXRpb25zLnB1c2goXG5cdFx0XHRcdFx0Q29uZGl0aW9uLmNyZWF0ZUNvbmRpdGlvbihhQ29uZGl0aW9uc1tpXS5vcGVyYXRvciwgdmFsdWVzLCBudWxsLCBudWxsLCBcIlZhbGlkYXRlZFwiIGFzIENvbmRpdGlvblZhbGlkYXRlZClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdGlmIChhQ29udmVydGVkQ29uZGl0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0b0NvbnZlcnRlZENvbmRpdGlvbnNbc0tleV0gPSBhQ29udmVydGVkQ29uZGl0aW9ucztcblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gb0NvbnZlcnRlZENvbmRpdGlvbnM7XG5cdH0sXG5cdGdldEN1c3RvbUNvbmRpdGlvbnM6IGZ1bmN0aW9uKFJhbmdlOiBhbnksIG9WYWxpZFByb3BlcnR5OiBhbnksIHNQcm9wZXJ0eU5hbWU6IGFueSkge1xuXHRcdGxldCB2YWx1ZTEsIHZhbHVlMjtcblx0XHRpZiAob1ZhbGlkUHJvcGVydHkuJFR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCIpIHtcblx0XHRcdHZhbHVlMSA9IHRoaXMuX3BhcnNlRGF0ZVRpbWUoZ2V0VHlwZUNvbXBsaWFudFZhbHVlKHRoaXMuX2Zvcm1hdERhdGVUaW1lKFJhbmdlLkxvdyksIG9WYWxpZFByb3BlcnR5LiRUeXBlKSk7XG5cdFx0XHR2YWx1ZTIgPSBSYW5nZS5IaWdoID8gdGhpcy5fcGFyc2VEYXRlVGltZShnZXRUeXBlQ29tcGxpYW50VmFsdWUodGhpcy5fZm9ybWF0RGF0ZVRpbWUoUmFuZ2UuSGlnaCksIG9WYWxpZFByb3BlcnR5LiRUeXBlKSkgOiBudWxsO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2YWx1ZTEgPSBSYW5nZS5Mb3c7XG5cdFx0XHR2YWx1ZTIgPSBSYW5nZS5IaWdoID8gUmFuZ2UuSGlnaCA6IG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRvcGVyYXRvcjogUmFuZ2UuT3B0aW9uID8gZ2V0T3BlcmF0b3IoUmFuZ2UuT3B0aW9uLiRFbnVtTWVtYmVyIHx8IFJhbmdlLk9wdGlvbikgOiBudWxsLFxuXHRcdFx0dmFsdWUxOiB2YWx1ZTEsXG5cdFx0XHR2YWx1ZTI6IHZhbHVlMixcblx0XHRcdHBhdGg6IHNQcm9wZXJ0eU5hbWVcblx0XHR9O1xuXHR9LFxuXHRfcGFyc2VEYXRlVGltZTogZnVuY3Rpb24oc1ZhbHVlOiBhbnkpIHtcblx0XHRyZXR1cm4gdGhpcy5fZ2V0RGF0ZVRpbWVUeXBlSW5zdGFuY2UoKS5wYXJzZVZhbHVlKHNWYWx1ZSwgXCJzdHJpbmdcIik7XG5cdH0sXG5cdF9mb3JtYXREYXRlVGltZTogZnVuY3Rpb24oc1ZhbHVlOiBhbnkpIHtcblx0XHRyZXR1cm4gdGhpcy5fZ2V0RGF0ZVRpbWVUeXBlSW5zdGFuY2UoKS5mb3JtYXRWYWx1ZShzVmFsdWUsIFwic3RyaW5nXCIpO1xuXHR9LFxuXHRfZ2V0RGF0ZVRpbWVUeXBlSW5zdGFuY2U6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBuZXcgRGF0ZVRpbWVPZmZzZXQoeyBwYXR0ZXJuOiBcInl5eXktTU0tZGRUSEg6bW06c3NaXCIsIGNhbGVuZGFyVHlwZTogXCJHcmVnb3JpYW5cIiB9LCB7IFY0OiB0cnVlIH0pO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWaXN1YWxGaWx0ZXJVdGlscztcbiJdfQ==
339
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpc3VhbEZpbHRlclV0aWxzLnRzIl0sIm5hbWVzIjpbIlZpc3VhbEZpbHRlclV0aWxzIiwiYXBwbHlNZWRpYW5TY2FsZVRvQ2hhcnREYXRhIiwib0ludGVyYWN0aXZlQ2hhcnQiLCJvVmlldyIsInNWRklkIiwic0luZm9QYXRoIiwib0RhdGEiLCJzTWVhc3VyZSIsImRhdGEiLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsImFBZ2dyZWdhdGlvbiIsImdldFBvaW50cyIsImdldEJhcnMiLCJnZXRTZWdtZW50cyIsImkiLCJsZW5ndGgiLCJwdXNoIiwiZ2V0T2JqZWN0Iiwic2NhbGVGYWN0b3IiLCJfZ2V0TWVkaWFuU2NhbGVGYWN0b3IiLCJpU2hvcnRSZWZOdW1iZXIiLCJzY2FsZSIsInNldFByb3BlcnR5Iiwib1NjYWxlVGl0bGUiLCJieUlkIiwib01lYXN1cmVEaW1lbnNpb25UaXRsZSIsInNUZXh0IiwiZ2V0VGV4dCIsInNldFZpc2libGUiLCJzZXRUb29sdGlwIiwic01lYXN1cmVGaWVsZCIsInNvcnQiLCJhIiwiYiIsIk51bWJlciIsImlNaWQiLCJpTWVkaWFuIiwicGFyc2VGbG9hdCIsIk1hdGgiLCJmbG9vciIsInZhbCIsInBvdyIsInJvdW5kIiwiYWJzIiwiZml4ZWRJbnRlZ2VyIiwiTnVtYmVyRm9ybWF0IiwiZ2V0SW50ZWdlckluc3RhbmNlIiwic3R5bGUiLCJzaG93U2NhbGUiLCJzaG9ydFJlZk51bWJlciIsImFEYXRhIiwic1NjYWxlZFZhbHVlIiwiZm9ybWF0IiwiYVNjYWxlZFZhbHVlUGFydHMiLCJzcGxpdCIsInBhcnNlSW50IiwiaW5kZXhPZiIsInVuZGVmaW5lZCIsImdldFNjYWxlIiwiZ2V0Rm9ybWF0dGVkTnVtYmVyIiwidmFsdWUiLCJudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHMiLCJjdXJyZW5jeSIsInJlcGxhY2UiLCJjdXJyZW5jeUZvcm1hdCIsImdldEN1cnJlbmN5SW5zdGFuY2UiLCJzaG93TWVhc3VyZSIsImdldEZsb2F0SW5zdGFuY2UiLCJzaG9ydERlY2ltYWxzIiwiZGVjaW1hbHMiLCJhcHBseVVPTVRvVGl0bGUiLCJvQ29udGV4dERhdGEiLCJ2VU9NIiwic1VPTSIsInNDdXJyZW5jeSIsIiRQYXRoIiwic1VPTVZhbHVlIiwidXBkYXRlQ2hhcnRTY2FsZUZhY3RvclRpdGxlIiwiYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZSIsInMxOG5NZXNzYWdlVGl0bGUiLCJzMThuTWVzc2FnZSIsImNoZWNrTXVsaXRVbml0Iiwib0NvbnRleHRzIiwic1VuaXRmaWVsZCIsImFDb250ZXh0RGF0YSIsInJlZHVjZSIsImtleSIsIk5hTiIsInNldE11bHRpVU9NTWVzc2FnZSIsIm9SZXNvdXJjZUJ1bmRsZSIsInNJc0N1cnJlbmN5Iiwic0lzVW5pdCIsIkxvZyIsIndhcm5pbmciLCJzZXROb0RhdGFNZXNzYWdlIiwiY29udmVydEZpbHRlckNvbmRpb25zIiwib0ZpbHRlckNvbmRpdGlvbnMiLCJvQ29udmVydGVkQ29uZGl0aW9ucyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwic0tleSIsImFDb252ZXJ0ZWRDb25kaXRpb25zIiwiYUNvbmRpdGlvbnMiLCJ2YWx1ZXMiLCJ2YWx1ZTIiLCJ2YWx1ZTEiLCJDb25kaXRpb24iLCJjcmVhdGVDb25kaXRpb24iLCJvcGVyYXRvciIsImdldEN1c3RvbUNvbmRpdGlvbnMiLCJSYW5nZSIsIm9WYWxpZFByb3BlcnR5Iiwic1Byb3BlcnR5TmFtZSIsIiRUeXBlIiwiX3BhcnNlRGF0ZVRpbWUiLCJnZXRUeXBlQ29tcGxpYW50VmFsdWUiLCJfZm9ybWF0RGF0ZVRpbWUiLCJMb3ciLCJIaWdoIiwiT3B0aW9uIiwiZ2V0T3BlcmF0b3IiLCIkRW51bU1lbWJlciIsInBhdGgiLCJzVmFsdWUiLCJfZ2V0RGF0ZVRpbWVUeXBlSW5zdGFuY2UiLCJwYXJzZVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJEYXRlVGltZU9mZnNldCIsInBhdHRlcm4iLCJjYWxlbmRhclR5cGUiLCJW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MUIsR0FBdUUsSUFEM0U7QUFFTmQsUUFBQUEsTUFBTSxFQUFFQSxNQUZGO0FBR05ELFFBQUFBLE1BQU0sRUFBRUEsTUFIRjtBQUlOa0IsUUFBQUEsSUFBSSxFQUFFVjtBQUpBLE9BQVA7QUFNQSxLQW5Ud0I7QUFvVHpCRSxJQUFBQSxjQUFjLEVBQUUsVUFBVVMsTUFBVixFQUF1QjtBQUN0QyxhQUFPLEtBQUtDLHdCQUFMLEdBQWdDQyxVQUFoQyxDQUEyQ0YsTUFBM0MsRUFBbUQsUUFBbkQsQ0FBUDtBQUNBLEtBdFR3QjtBQXVUekJQLElBQUFBLGVBQWUsRUFBRSxVQUFVTyxNQUFWLEVBQXVCO0FBQ3ZDLGFBQU8sS0FBS0Msd0JBQUwsR0FBZ0NFLFdBQWhDLENBQTRDSCxNQUE1QyxFQUFvRCxRQUFwRCxDQUFQO0FBQ0EsS0F6VHdCO0FBMFR6QkMsSUFBQUEsd0JBQXdCLEVBQUUsWUFBWTtBQUNyQyxhQUFPLElBQUlHLGNBQUosQ0FBbUI7QUFBRUMsUUFBQUEsT0FBTyxFQUFFLHNCQUFYO0FBQW1DQyxRQUFBQSxZQUFZLEVBQUU7QUFBakQsT0FBbkIsRUFBbUY7QUFBRUMsUUFBQUEsRUFBRSxFQUFFO0FBQU4sT0FBbkYsQ0FBUDtBQUNBO0FBNVR3QixHQUExQjtTQStUZXBJLGlCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0T3BlcmF0b3IsIGdldFR5cGVDb21wbGlhbnRWYWx1ZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0ZpbHRlckhlbHBlclwiO1xuaW1wb3J0IFRpdGxlIGZyb20gXCJzYXAvbS9UaXRsZVwiO1xuaW1wb3J0IE51bWJlckZvcm1hdCBmcm9tIFwic2FwL3VpL2NvcmUvZm9ybWF0L051bWJlckZvcm1hdFwiO1xuaW1wb3J0IFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgQ29uZGl0aW9uIGZyb20gXCJzYXAvdWkvbWRjL2NvbmRpdGlvbi9Db25kaXRpb25cIjtcbmltcG9ydCBDb25kaXRpb25WYWxpZGF0ZWQgZnJvbSBcInNhcC91aS9tZGMvZW51bS9Db25kaXRpb25WYWxpZGF0ZWRcIjtcbmltcG9ydCBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvQ29udGV4dFwiO1xuaW1wb3J0IERhdGVUaW1lT2Zmc2V0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdHlwZS9EYXRlVGltZU9mZnNldFwiO1xuXG5jb25zdCBWaXN1YWxGaWx0ZXJVdGlscyA9IHtcblx0LyoqXG5cdCAqIEFwcGxpZXMgdGhlIG1lZGlhbiBzY2FsZSB0byB0aGUgY2hhcnQgZGF0YS5cblx0ICpcblx0ICogQHBhcmFtIHtvYmplY3R9IG9JbnRlcmFjdGl2ZUNoYXJ0IEludGVyYWN0aXZlQ2hhcnQgaW4gdGhlIFZpc3VhbEZpbHRlciBjb250cm9sXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvVmlldyBJbnN0YW5jZSBvZiB0aGUgdmlld1xuXHQgKiBAcGFyYW0ge29iamVjdH0gc1ZGSWQgVmlzdWFsRmlsdGVyIGNvbnRyb2wgSURcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNJbmZvUGF0aCBJbnRlcm5hbCBtb2RlbCBjb250ZXh0IHBhdGggdG8gc3RvcmUgaW5mby5cblx0ICovXG5cdGFwcGx5TWVkaWFuU2NhbGVUb0NoYXJ0RGF0YTogZnVuY3Rpb24gKG9JbnRlcmFjdGl2ZUNoYXJ0OiBhbnksIG9WaWV3OiBWaWV3LCBzVkZJZDogc3RyaW5nLCBzSW5mb1BhdGg6IHN0cmluZykge1xuXHRcdGNvbnN0IG9EYXRhID0gW107XG5cdFx0Y29uc3Qgc01lYXN1cmUgPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwibWVhc3VyZVwiKTtcblx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdGNvbnN0IGFBZ2dyZWdhdGlvbiA9XG5cdFx0XHQob0ludGVyYWN0aXZlQ2hhcnQuZ2V0UG9pbnRzICYmIG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFBvaW50cygpKSB8fFxuXHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0LmdldEJhcnMgJiYgb0ludGVyYWN0aXZlQ2hhcnQuZ2V0QmFycygpKSB8fFxuXHRcdFx0KG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFNlZ21lbnRzICYmIG9JbnRlcmFjdGl2ZUNoYXJ0LmdldFNlZ21lbnRzKCkpO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYUFnZ3JlZ2F0aW9uLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRvRGF0YS5wdXNoKGFBZ2dyZWdhdGlvbltpXS5nZXRCaW5kaW5nQ29udGV4dCgpLmdldE9iamVjdCgpKTtcblx0XHR9XG5cdFx0Y29uc3Qgc2NhbGVGYWN0b3IgPSB0aGlzLl9nZXRNZWRpYW5TY2FsZUZhY3RvcihvRGF0YSwgc01lYXN1cmUpO1xuXHRcdGlmIChzY2FsZUZhY3RvciAmJiBzY2FsZUZhY3Rvci5pU2hvcnRSZWZOdW1iZXIgJiYgc2NhbGVGYWN0b3Iuc2NhbGUpIHtcblx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcInNjYWxlZmFjdG9yL1wiICsgc0luZm9QYXRoLCBzY2FsZUZhY3Rvci5zY2FsZSk7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJzY2FsZWZhY3Rvck51bWJlci9cIiArIHNJbmZvUGF0aCwgc2NhbGVGYWN0b3IuaVNob3J0UmVmTnVtYmVyKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwic2NhbGVmYWN0b3IvXCIgKyBzSW5mb1BhdGgsIFwiXCIpO1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwic2NhbGVmYWN0b3JOdW1iZXIvXCIgKyBzSW5mb1BhdGgsIFwiXCIpO1xuXHRcdFx0Y29uc3Qgb1NjYWxlVGl0bGUgPSBvVmlldy5ieUlkKHNWRklkICsgXCI6OlNjYWxlVW9NVGl0bGVcIikgYXMgVGl0bGU7XG5cdFx0XHRjb25zdCBvTWVhc3VyZURpbWVuc2lvblRpdGxlID0gb1ZpZXcuYnlJZChzVkZJZCArIFwiOjpNZWFzdXJlRGltZW5zaW9uVGl0bGVcIikgYXMgVGl0bGU7XG5cdFx0XHRjb25zdCBzVGV4dCA9IG9TY2FsZVRpdGxlLmdldFRleHQoKTtcblx0XHRcdGlmIChzVGV4dCA9PT0gXCIgfCBcIikge1xuXHRcdFx0XHRvU2NhbGVUaXRsZS5zZXRWaXNpYmxlKGZhbHNlKTtcblx0XHRcdFx0b01lYXN1cmVEaW1lbnNpb25UaXRsZS5zZXRUb29sdGlwKG9NZWFzdXJlRGltZW5zaW9uVGl0bGUuZ2V0VGV4dCgpKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIG1lZGlhbiBzY2FsZSBmYWN0b3IuXG5cdCAqXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvRGF0YSBWaXN1YWxGaWx0ZXIgZGF0YVxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc01lYXN1cmVGaWVsZCBQYXRoIG9mIHRoZSBtZWFzdXJlXG5cdCAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHNjYWxlIGFuZCBpU2hvcnRSZWZOdW1iZXJcblx0ICovXG5cdF9nZXRNZWRpYW5TY2FsZUZhY3RvcjogZnVuY3Rpb24gKG9EYXRhOiBhbnlbXSwgc01lYXN1cmVGaWVsZDogc3RyaW5nKSB7XG5cdFx0bGV0IGk7XG5cdFx0bGV0IHNjYWxlRmFjdG9yO1xuXHRcdG9EYXRhLnNvcnQoZnVuY3Rpb24gKGE6IGFueSwgYjogYW55KSB7XG5cdFx0XHRpZiAoTnVtYmVyKGFbc01lYXN1cmVGaWVsZF0pIDwgTnVtYmVyKGJbc01lYXN1cmVGaWVsZF0pKSB7XG5cdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdH1cblx0XHRcdGlmIChOdW1iZXIoYVtzTWVhc3VyZUZpZWxkXSkgPiBOdW1iZXIoYltzTWVhc3VyZUZpZWxkXSkpIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gMDtcblx0XHR9KTtcblx0XHRpZiAob0RhdGEubGVuZ3RoID4gMCkge1xuXHRcdFx0Ly8gZ2V0IG1lZGlhbiBpbmRleFxuXHRcdFx0Y29uc3QgaU1pZCA9IG9EYXRhLmxlbmd0aCAvIDIsIC8vIGdldCBtaWQgb2YgYXJyYXlcblx0XHRcdFx0Ly8gaWYgaU1pZCBpcyB3aG9sZSBudW1iZXIsIGFycmF5IGxlbmd0aCBpcyBldmVuLCBjYWxjdWxhdGUgbWVkaWFuXG5cdFx0XHRcdC8vIGlmIGlNaWQgaXMgbm90IHdob2xlIG51bWJlciwgYXJyYXkgbGVuZ3RoIGlzIG9kZCwgdGFrZSBtZWRpYW4gYXMgaU1pZCAtIDFcblx0XHRcdFx0aU1lZGlhbiA9XG5cdFx0XHRcdFx0aU1pZCAlIDEgPT09IDBcblx0XHRcdFx0XHRcdD8gKHBhcnNlRmxvYXQob0RhdGFbaU1pZCAtIDFdW3NNZWFzdXJlRmllbGRdKSArIHBhcnNlRmxvYXQob0RhdGFbaU1pZF1bc01lYXN1cmVGaWVsZF0pKSAvIDJcblx0XHRcdFx0XHRcdDogcGFyc2VGbG9hdChvRGF0YVtNYXRoLmZsb29yKGlNaWQpXVtzTWVhc3VyZUZpZWxkXSksXG5cdFx0XHRcdC8vIGdldCBzY2FsZSBmYWN0b3Igb24gbWVkaWFuXG5cdFx0XHRcdHZhbCA9IGlNZWRpYW47XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgMTQ7IGkrKykge1xuXHRcdFx0XHRzY2FsZUZhY3RvciA9IE1hdGgucG93KDEwLCBpKTtcblx0XHRcdFx0aWYgKE1hdGgucm91bmQoTWF0aC5hYnModmFsKSAvIHNjYWxlRmFjdG9yKSA8IDEwKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRjb25zdCBmaXhlZEludGVnZXIgPSBOdW1iZXJGb3JtYXQuZ2V0SW50ZWdlckluc3RhbmNlKHtcblx0XHRcdHN0eWxlOiBcInNob3J0XCIsXG5cdFx0XHRzaG93U2NhbGU6IGZhbHNlLFxuXHRcdFx0c2hvcnRSZWZOdW1iZXI6IHNjYWxlRmFjdG9yXG5cdFx0fSk7XG5cblx0XHQvLyBhcHBseSBzY2FsZSBmYWN0b3IgdG8gb3RoZXIgdmFsdWVzIGFuZCBjaGVja1xuXHRcdGZvciAoaSA9IDA7IGkgPCBvRGF0YS5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgYURhdGEgPSBvRGF0YVtpXSxcblx0XHRcdFx0c1NjYWxlZFZhbHVlID0gZml4ZWRJbnRlZ2VyLmZvcm1hdChhRGF0YVtzTWVhc3VyZUZpZWxkXSkgYXMgYW55LFxuXHRcdFx0XHRhU2NhbGVkVmFsdWVQYXJ0cyA9IHNTY2FsZWRWYWx1ZS5zcGxpdChcIi5cIik7XG5cdFx0XHQvLyBpZiBzY2FsZWQgdmFsdWUgaGFzIG9ubHkgMCBiZWZvcmUgZGVjaW1hbCBvciAwIGFmdGVyIGRlY2ltYWwgKGV4YW1wbGU6IDAuMDIpXG5cdFx0XHQvLyB0aGVuIGlnbm9yZSB0aGlzIHNjYWxlIGZhY3RvciBlbHNlIHByb2NlZWQgd2l0aCB0aGlzIHNjYWxlIGZhY3RvclxuXHRcdFx0Ly8gaWYgc2NhbGVkIHZhbHVlIGRpdmlkZWQgYnkgMTAwMCBpcyA+PSAxMDAwIHRoZW4gYWxzbyBpZ25vcmUgc2NhbGUgZmFjdG9yXG5cdFx0XHRpZiAoXG5cdFx0XHRcdCghYVNjYWxlZFZhbHVlUGFydHNbMV0gJiYgcGFyc2VJbnQoYVNjYWxlZFZhbHVlUGFydHNbMF0sIDEwKSA9PT0gMCkgfHxcblx0XHRcdFx0KGFTY2FsZWRWYWx1ZVBhcnRzWzFdICYmIHBhcnNlSW50KGFTY2FsZWRWYWx1ZVBhcnRzWzBdLCAxMCkgPT09IDAgJiYgYVNjYWxlZFZhbHVlUGFydHNbMV0uaW5kZXhPZihcIjBcIikgPT09IDApIHx8XG5cdFx0XHRcdHNTY2FsZWRWYWx1ZSAvIDEwMDAgPj0gMTAwMFxuXHRcdFx0KSB7XG5cdFx0XHRcdHNjYWxlRmFjdG9yID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdGlTaG9ydFJlZk51bWJlcjogc2NhbGVGYWN0b3IsXG5cdFx0XHRzY2FsZTogc2NhbGVGYWN0b3IgPyAoZml4ZWRJbnRlZ2VyIGFzIGFueSkuZ2V0U2NhbGUoKSA6IFwiXCJcblx0XHR9O1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBmb3JtYXR0ZWQgbnVtYmVyIGFjY29yZGluZyB0byB0aGUgcnVsZXMgb2YgVmlzdWFsQ2hhcnRGaWx0ZXJzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlcn0gdmFsdWUgVmFsdWUgd2hpY2ggbmVlZHMgdG8gYmUgZm9ybWF0dGVkXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSBzY2FsZUZhY3RvciBTY2FsZUZhY3RvciB0byB3aGljaCB0aGUgdmFsdWUgbmVlZHMgdG8gYmUgc2NhbGVkXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSBudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHMgTnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzIGRpZ2l0cyBpbiB0aGUgZGVjaW1hbHMgYWNjb3JkaW5nIHRvIHNjYWxlXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBjdXJyZW5jeSBDdXJyZW5jeSBjb2RlXG5cdCAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBmb3JtYXR0ZWQgbnVtYmVyXG5cdCAqL1xuXHRnZXRGb3JtYXR0ZWROdW1iZXI6IGZ1bmN0aW9uICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBzY2FsZUZhY3Rvcj86IG51bWJlciwgbnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzPzogbnVtYmVyLCBjdXJyZW5jeT86IHN0cmluZykge1xuXHRcdGxldCBmaXhlZEludGVnZXI7XG5cdFx0dmFsdWUgPSB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBOdW1iZXIodmFsdWUucmVwbGFjZSgvLC9nLCBcIlwiKSkgOiB2YWx1ZTtcblxuXHRcdGlmIChjdXJyZW5jeSkge1xuXHRcdFx0Y29uc3QgY3VycmVuY3lGb3JtYXQgPSBOdW1iZXJGb3JtYXQuZ2V0Q3VycmVuY3lJbnN0YW5jZSh7XG5cdFx0XHRcdHNob3dNZWFzdXJlOiBmYWxzZVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gY3VycmVuY3lGb3JtYXQuZm9ybWF0KHBhcnNlRmxvYXQodmFsdWUgYXMgYW55KSwgY3VycmVuY3kpO1xuXHRcdFx0Ly8gcGFyc2VGbG9hdCh2YWx1ZSkgaXMgcmVxdWlyZWQgb3RoZXJ3aXNlIC12ZSB2YWx1ZSBhcmUgd3JvbmdseSByb3VuZGVkIG9mZlxuXHRcdFx0Ly8gRXhhbXBsZTogXCItMS45XCIgcm91bmRzIG9mZiB0byAtMSBpbnN0ZWFkIG9mIC0yLiBob3dldmVyIC0xLjkgcm91bmRzIG9mZiB0byAtMlxuXHRcdH0gZWxzZSBpZiAoc2NhbGVGYWN0b3IpIHtcblx0XHRcdGZpeGVkSW50ZWdlciA9IE51bWJlckZvcm1hdC5nZXRGbG9hdEluc3RhbmNlKHtcblx0XHRcdFx0c3R5bGU6IFwic2hvcnRcIixcblx0XHRcdFx0c2hvd1NjYWxlOiBmYWxzZSxcblx0XHRcdFx0c2hvcnRSZWZOdW1iZXI6IHNjYWxlRmFjdG9yLFxuXHRcdFx0XHRzaG9ydERlY2ltYWxzOiBudW1iZXJPZkZyYWN0aW9uYWxEaWdpdHNcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGZpeGVkSW50ZWdlci5mb3JtYXQocGFyc2VGbG9hdCh2YWx1ZSBhcyBhbnkpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zml4ZWRJbnRlZ2VyID0gTnVtYmVyRm9ybWF0LmdldEZsb2F0SW5zdGFuY2Uoe1xuXHRcdFx0XHRkZWNpbWFsczogbnVtYmVyT2ZGcmFjdGlvbmFsRGlnaXRzXG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBmaXhlZEludGVnZXIuZm9ybWF0KHBhcnNlRmxvYXQodmFsdWUgYXMgYW55KSk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBBcHBsaWVzIHRoZSBVT00gdG8gdGhlIHRpdGxlIG9mIHRoZSB2aXN1YWwgZmlsdGVyIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvSW50ZXJhY3RpdmVDaGFydCBJbnRlcmFjdGl2ZUNoYXJ0IGluIHRoZSBWaXN1YWxGaWx0ZXIgY29udHJvbFxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0NvbnRleHREYXRhIERhdGEgb2YgdGhlIFZpc3VhbEZpbHRlclxuXHQgKiBAcGFyYW0ge29iamVjdH0gb1ZpZXcgSW5zdGFuY2Ugb2YgdGhlIHZpZXdcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNJbmZvUGF0aCBJbnRlcm5hbCBtb2RlbCBjb250ZXh0IHBhdGggdG8gc3RvcmUgaW5mby5cblx0ICovXG5cdGFwcGx5VU9NVG9UaXRsZTogZnVuY3Rpb24gKG9JbnRlcmFjdGl2ZUNoYXJ0OiBhbnksIG9Db250ZXh0RGF0YTogYW55LCBvVmlldzogVmlldywgc0luZm9QYXRoOiBzdHJpbmcpIHtcblx0XHRjb25zdCB2VU9NID0gb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInVvbVwiKTtcblx0XHRsZXQgc1VPTTtcblx0XHRsZXQgc0N1cnJlbmN5O1xuXHRcdGlmICh2VU9NICYmIHZVT01bXCJJU09DdXJyZW5jeVwiXSkge1xuXHRcdFx0c1VPTSA9IHZVT01bXCJJU09DdXJyZW5jeVwiXTtcblx0XHRcdHNDdXJyZW5jeSA9IHNVT00uJFBhdGggPyBvQ29udGV4dERhdGFbc1VPTS4kUGF0aF0gOiBzVU9NO1xuXHRcdH0gZWxzZSBpZiAodlVPTSAmJiB2VU9NW1wiVW5pdFwiXSkge1xuXHRcdFx0c1VPTSA9IHZVT01bXCJVbml0XCJdO1xuXHRcdH1cblx0XHRpZiAoc1VPTSkge1xuXHRcdFx0Y29uc3Qgc1VPTVZhbHVlID0gc1VPTS4kUGF0aCA/IG9Db250ZXh0RGF0YVtzVU9NLiRQYXRoXSA6IHNVT007XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KFwidW9tL1wiICsgc0luZm9QYXRoLCBzVU9NVmFsdWUpO1xuXHRcdFx0aWYgKHNDdXJyZW5jeSkge1xuXHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJjdXJyZW5jeS9cIiArIHNJbmZvUGF0aCwgc1VPTVZhbHVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdC8qKlxuXHQgKiBVcGRhdGVzIHRoZSBzY2FsZSBmYWN0b3IgaW4gdGhlIHRpdGxlIG9mIHRoZSB2aXN1YWwgZmlsdGVyLlxuXHQgKlxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0ludGVyYWN0aXZlQ2hhcnQgSW50ZXJhY3RpdmVDaGFydCBpbiB0aGUgVmlzdWFsRmlsdGVyIGNvbnRyb2xcblx0ICogQHBhcmFtIHtvYmplY3R9IG9WaWV3IEluc3RhbmNlIG9mIHRoZSB2aWV3XG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBzVkZJZCBWaXN1YWxGaWx0ZXIgY29udHJvbCBJRFxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc0luZm9QYXRoIEludGVybmFsIG1vZGVsIGNvbnRleHQgcGF0aCB0byBzdG9yZSBpbmZvLlxuXHQgKi9cblx0dXBkYXRlQ2hhcnRTY2FsZUZhY3RvclRpdGxlOiBmdW5jdGlvbiAob0ludGVyYWN0aXZlQ2hhcnQ6IGFueSwgb1ZpZXc6IFZpZXcsIHNWRklkOiBzdHJpbmcsIHNJbmZvUGF0aDogc3RyaW5nKSB7XG5cdFx0aWYgKCFvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwic2NhbGVmYWN0b3JcIikpIHtcblx0XHRcdHRoaXMuYXBwbHlNZWRpYW5TY2FsZVRvQ2hhcnREYXRhKG9JbnRlcmFjdGl2ZUNoYXJ0LCBvVmlldywgc1ZGSWQsIHNJbmZvUGF0aCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNvbnN0IGZpeGVkSW50ZWdlciA9IE51bWJlckZvcm1hdC5nZXRJbnRlZ2VySW5zdGFuY2Uoe1xuXHRcdFx0XHRzdHlsZTogXCJzaG9ydFwiLFxuXHRcdFx0XHRzaG93U2NhbGU6IGZhbHNlLFxuXHRcdFx0XHRzaG9ydFJlZk51bWJlcjogb0ludGVyYWN0aXZlQ2hhcnQuZGF0YShcInNjYWxlZmFjdG9yXCIpXG5cdFx0XHR9KTtcblx0XHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJzY2FsZWZhY3Rvci9cIiArIHNJbmZvUGF0aCwgKGZpeGVkSW50ZWdlciBhcyBhbnkpLmdldFNjYWxlKCkpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmd9IHMxOG5NZXNzYWdlVGl0bGUgVGV4dCBvZiB0aGUgZXJyb3IgbWVzc2FnZSB0aXRsZS5cblx0ICogQHBhcmFtIHtzdHJpbmd9IHMxOG5NZXNzYWdlIFRleHQgb2YgdGhlIGVycm9yIG1lc3NhZ2UgZGVzY3JpcHRpb24uXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvVmlldyBJbnN0YW5jZSBvZiB0aGUgdmlldy5cblx0ICovXG5cdGFwcGx5RXJyb3JNZXNzYWdlQW5kVGl0bGU6IGZ1bmN0aW9uIChzMThuTWVzc2FnZVRpdGxlOiBzdHJpbmcsIHMxOG5NZXNzYWdlOiBzdHJpbmcsIHNJbmZvUGF0aDogc3RyaW5nLCBvVmlldzogVmlldykge1xuXHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KHNJbmZvUGF0aCwge30pO1xuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzSW5mb1BhdGgsIHtcblx0XHRcdFwiZXJyb3JNZXNzYWdlVGl0bGVcIjogczE4bk1lc3NhZ2VUaXRsZSxcblx0XHRcdFwiZXJyb3JNZXNzYWdlXCI6IHMxOG5NZXNzYWdlLFxuXHRcdFx0XCJzaG93RXJyb3JcIjogdHJ1ZVxuXHRcdH0pO1xuXHR9LFxuXHQvKipcblx0ICogQ2hlY2tzIGlmIG11bHRpcGxlIHVuaXRzIGFyZSBwcmVzZW50LlxuXHQgKlxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0NvbnRleHRzIENvbnRleHRzIG9mIHRoZSBWaXN1YWxGaWx0ZXJcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNVbml0ZmllbGQgVGhlIHBhdGggb2YgdGhlIHVuaXQgZmllbGRcblx0ICogQHJldHVybnMge2Jvb2xlYW59IFJldHVybnMgaWYgbXVsdGlwbGUgdW5pdHMgYXJlIGNvbmZpZ3VyZWQgb3Igbm90XG5cdCAqL1xuXHRjaGVja011bGl0VW5pdDogZnVuY3Rpb24gKG9Db250ZXh0czogQ29udGV4dFtdLCBzVW5pdGZpZWxkOiBzdHJpbmcpIHtcblx0XHRjb25zdCBhRGF0YSA9IFtdO1xuXHRcdGlmIChvQ29udGV4dHMgJiYgc1VuaXRmaWVsZCkge1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBvQ29udGV4dHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3QgYUNvbnRleHREYXRhID0gb0NvbnRleHRzW2ldICYmIChvQ29udGV4dHNbaV0uZ2V0T2JqZWN0KCkgYXMgYW55KTtcblx0XHRcdFx0YURhdGEucHVzaChhQ29udGV4dERhdGFbc1VuaXRmaWVsZF0pO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gISFhRGF0YS5yZWR1Y2UoZnVuY3Rpb24gKGRhdGE6IGFueSwga2V5OiBhbnkpIHtcblx0XHRcdHJldHVybiBkYXRhID09PSBrZXkgPyBkYXRhIDogTmFOO1xuXHRcdH0pO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBTZXRzIGFuIGVycm9yIG1lc3NhZ2UgaWYgbXVsdGlwbGUgVU9NIGFyZSBwcmVzZW50LlxuXHQgKlxuXHQgKiBAcGFyYW0ge29iamVjdH0gb0RhdGEgRGF0YSBvZiB0aGUgVmlzdWFsRmlsdGVyIGNvbnRyb2xcblx0ICogQHBhcmFtIHtvYmplY3R9IG9JbnRlcmFjdGl2ZUNoYXJ0IEludGVyYWN0aXZlQ2hhcnQgaW4gdGhlIFZpc3VhbEZpbHRlciBjb250cm9sXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzSW5mb1BhdGggSW50ZXJuYWwgbW9kZWwgY29udGV4dCBwYXRoIHRvIHN0b3JlIGluZm8uXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBvUmVzb3VyY2VCdW5kbGUgVGhlIHJlc291cmNlIGJ1bmRsZVxuXHQgKiBAcGFyYW0ge3N0cmluZ30gb1ZpZXcgSW5zdGFuY2Ugb2YgdGhlIHZpZXdcblx0ICovXG5cdHNldE11bHRpVU9NTWVzc2FnZTogZnVuY3Rpb24gKFxuXHRcdG9EYXRhOiBDb250ZXh0W10sXG5cdFx0b0ludGVyYWN0aXZlQ2hhcnQ6IGFueSxcblx0XHRzSW5mb1BhdGg6IHN0cmluZyxcblx0XHRvUmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlLFxuXHRcdG9WaWV3OiBWaWV3XG5cdCkge1xuXHRcdGNvbnN0IHZVT00gPSBvSW50ZXJhY3RpdmVDaGFydC5kYXRhKFwidW9tXCIpO1xuXHRcdGNvbnN0IHNJc0N1cnJlbmN5ID0gdlVPTSAmJiB2VU9NW1wiSVNPQ3VycmVuY3lcIl0gJiYgdlVPTVtcIklTT0N1cnJlbmN5XCJdLiRQYXRoO1xuXHRcdGNvbnN0IHNJc1VuaXQgPSB2VU9NICYmIHZVT01bXCJVbml0XCJdICYmIHZVT01bXCJVbml0XCJdLiRQYXRoO1xuXHRcdGNvbnN0IHNVbml0ZmllbGQgPSBzSXNDdXJyZW5jeSB8fCBzSXNVbml0O1xuXHRcdGxldCBzMThuTWVzc2FnZVRpdGxlLCBzMThuTWVzc2FnZTtcblx0XHRpZiAoc1VuaXRmaWVsZCkge1xuXHRcdFx0aWYgKCF0aGlzLmNoZWNrTXVsaXRVbml0KG9EYXRhLCBzVW5pdGZpZWxkKSkge1xuXHRcdFx0XHRpZiAoc0lzQ3VycmVuY3kpIHtcblx0XHRcdFx0XHRzMThuTWVzc2FnZVRpdGxlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJTX0VSUk9SX01FU1NBR0VfVElUTEVcIik7XG5cdFx0XHRcdFx0czE4bk1lc3NhZ2UgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfTVVMVElQTEVfQ1VSUkVOQ1lcIiwgc1VuaXRmaWVsZCk7XG5cdFx0XHRcdFx0dGhpcy5hcHBseUVycm9yTWVzc2FnZUFuZFRpdGxlKHMxOG5NZXNzYWdlVGl0bGUsIHMxOG5NZXNzYWdlLCBzSW5mb1BhdGgsIG9WaWV3KTtcblx0XHRcdFx0XHRMb2cud2FybmluZyhcIkZpbHRlciBpcyBzZXQgZm9yIG11bHRpcGxlIEN1cnJlbmN5IGZvclwiICsgc1VuaXRmaWVsZCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoc0lzVW5pdCkge1xuXHRcdFx0XHRcdHMxOG5NZXNzYWdlVGl0bGUgPSBvUmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk1fVklTVUFMX0ZJTFRFUlNfRVJST1JfTUVTU0FHRV9USVRMRVwiKTtcblx0XHRcdFx0XHRzMThuTWVzc2FnZSA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19NVUxUSVBMRV9VTklUXCIsIHNVbml0ZmllbGQpO1xuXHRcdFx0XHRcdHRoaXMuYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZShzMThuTWVzc2FnZVRpdGxlLCBzMThuTWVzc2FnZSwgc0luZm9QYXRoLCBvVmlldyk7XG5cdFx0XHRcdFx0TG9nLndhcm5pbmcoXCJGaWx0ZXIgaXMgc2V0IGZvciBtdWx0aXBsZSBVT01zIGZvclwiICsgc1VuaXRmaWVsZCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNldHMgYW4gZXJyb3IgbWVzc2FnZSBpZiByZXNwb25zZSBkYXRhIGlzIGVtcHR5LlxuXHQgKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gc0luZm9QYXRoIEludGVybmFsIG1vZGVsIGNvbnRleHQgcGF0aCB0byBzdG9yZSBpbmZvLlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gb1Jlc291cmNlQnVuZGxlIFRoZSByZXNvdXJjZSBidW5kbGVcblx0ICogQHBhcmFtIHtzdHJpbmd9IG9WaWV3IEluc3RhbmNlIG9mIHRoZSB2aWV3XG5cdCAqL1xuXHRzZXROb0RhdGFNZXNzYWdlOiBmdW5jdGlvbiAoc0luZm9QYXRoOiBzdHJpbmcsIG9SZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGUsIG9WaWV3OiBWaWV3KSB7XG5cdFx0Y29uc3QgczE4bk1lc3NhZ2VUaXRsZSA9IG9SZXNvdXJjZUJ1bmRsZS5nZXRUZXh0KFwiTV9WSVNVQUxfRklMVEVSU19FUlJPUl9NRVNTQUdFX1RJVExFXCIpO1xuXHRcdGNvbnN0IHMxOG5NZXNzYWdlID0gb1Jlc291cmNlQnVuZGxlLmdldFRleHQoXCJNX1ZJU1VBTF9GSUxURVJfTk9fREFUQV9URVhUXCIpO1xuXHRcdHRoaXMuYXBwbHlFcnJvck1lc3NhZ2VBbmRUaXRsZShzMThuTWVzc2FnZVRpdGxlLCBzMThuTWVzc2FnZSwgc0luZm9QYXRoLCBvVmlldyk7XG5cdH0sXG5cdGNvbnZlcnRGaWx0ZXJDb25kaW9uczogZnVuY3Rpb24gKG9GaWx0ZXJDb25kaXRpb25zOiBhbnkpIHtcblx0XHRjb25zdCBvQ29udmVydGVkQ29uZGl0aW9uczogYW55ID0ge307XG5cdFx0T2JqZWN0LmtleXMob0ZpbHRlckNvbmRpdGlvbnMpLmZvckVhY2goZnVuY3Rpb24gKHNLZXk6IHN0cmluZykge1xuXHRcdFx0Y29uc3QgYUNvbnZlcnRlZENvbmRpdGlvbnMgPSBbXTtcblx0XHRcdGNvbnN0IGFDb25kaXRpb25zID0gb0ZpbHRlckNvbmRpdGlvbnNbc0tleV07XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFDb25kaXRpb25zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IHZhbHVlcyA9IGFDb25kaXRpb25zW2ldLnZhbHVlMiA/IFthQ29uZGl0aW9uc1tpXS52YWx1ZTEsIGFDb25kaXRpb25zW2ldLnZhbHVlMl0gOiBbYUNvbmRpdGlvbnNbaV0udmFsdWUxXTtcblx0XHRcdFx0YUNvbnZlcnRlZENvbmRpdGlvbnMucHVzaChcblx0XHRcdFx0XHRDb25kaXRpb24uY3JlYXRlQ29uZGl0aW9uKGFDb25kaXRpb25zW2ldLm9wZXJhdG9yLCB2YWx1ZXMsIG51bGwsIG51bGwsIFwiVmFsaWRhdGVkXCIgYXMgQ29uZGl0aW9uVmFsaWRhdGVkKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGFDb252ZXJ0ZWRDb25kaXRpb25zLmxlbmd0aCkge1xuXHRcdFx0XHRvQ29udmVydGVkQ29uZGl0aW9uc1tzS2V5XSA9IGFDb252ZXJ0ZWRDb25kaXRpb25zO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHJldHVybiBvQ29udmVydGVkQ29uZGl0aW9ucztcblx0fSxcblx0Z2V0Q3VzdG9tQ29uZGl0aW9uczogZnVuY3Rpb24gKFJhbmdlOiBhbnksIG9WYWxpZFByb3BlcnR5OiBhbnksIHNQcm9wZXJ0eU5hbWU6IGFueSkge1xuXHRcdGxldCB2YWx1ZTEsIHZhbHVlMjtcblx0XHRpZiAob1ZhbGlkUHJvcGVydHkuJFR5cGUgPT09IFwiRWRtLkRhdGVUaW1lT2Zmc2V0XCIpIHtcblx0XHRcdHZhbHVlMSA9IHRoaXMuX3BhcnNlRGF0ZVRpbWUoZ2V0VHlwZUNvbXBsaWFudFZhbHVlKHRoaXMuX2Zvcm1hdERhdGVUaW1lKFJhbmdlLkxvdyksIG9WYWxpZFByb3BlcnR5LiRUeXBlKSk7XG5cdFx0XHR2YWx1ZTIgPSBSYW5nZS5IaWdoID8gdGhpcy5fcGFyc2VEYXRlVGltZShnZXRUeXBlQ29tcGxpYW50VmFsdWUodGhpcy5fZm9ybWF0RGF0ZVRpbWUoUmFuZ2UuSGlnaCksIG9WYWxpZFByb3BlcnR5LiRUeXBlKSkgOiBudWxsO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR2YWx1ZTEgPSBSYW5nZS5Mb3c7XG5cdFx0XHR2YWx1ZTIgPSBSYW5nZS5IaWdoID8gUmFuZ2UuSGlnaCA6IG51bGw7XG5cdFx0fVxuXHRcdHJldHVybiB7XG5cdFx0XHRvcGVyYXRvcjogUmFuZ2UuT3B0aW9uID8gZ2V0T3BlcmF0b3IoUmFuZ2UuT3B0aW9uLiRFbnVtTWVtYmVyIHx8IFJhbmdlLk9wdGlvbikgOiBudWxsLFxuXHRcdFx0dmFsdWUxOiB2YWx1ZTEsXG5cdFx0XHR2YWx1ZTI6IHZhbHVlMixcblx0XHRcdHBhdGg6IHNQcm9wZXJ0eU5hbWVcblx0XHR9O1xuXHR9LFxuXHRfcGFyc2VEYXRlVGltZTogZnVuY3Rpb24gKHNWYWx1ZTogYW55KSB7XG5cdFx0cmV0dXJuIHRoaXMuX2dldERhdGVUaW1lVHlwZUluc3RhbmNlKCkucGFyc2VWYWx1ZShzVmFsdWUsIFwic3RyaW5nXCIpO1xuXHR9LFxuXHRfZm9ybWF0RGF0ZVRpbWU6IGZ1bmN0aW9uIChzVmFsdWU6IGFueSkge1xuXHRcdHJldHVybiB0aGlzLl9nZXREYXRlVGltZVR5cGVJbnN0YW5jZSgpLmZvcm1hdFZhbHVlKHNWYWx1ZSwgXCJzdHJpbmdcIik7XG5cdH0sXG5cdF9nZXREYXRlVGltZVR5cGVJbnN0YW5jZTogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiBuZXcgRGF0ZVRpbWVPZmZzZXQoeyBwYXR0ZXJuOiBcInl5eXktTU0tZGRUSEg6bW06c3NaXCIsIGNhbGVuZGFyVHlwZTogXCJHcmVnb3JpYW5cIiB9LCB7IFY0OiB0cnVlIH0pO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWaXN1YWxGaWx0ZXJVdGlscztcbiJdfQ==
@@ -1,13 +1,13 @@
1
- import { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
2
- import Condition from "sap/ui/mdc/condition/Condition";
1
+ import ResourceBundle from "sap/base/i18n/ResourceBundle";
3
2
  import Log from "sap/base/Log";
4
- import View from "sap/ui/core/mvc/View";
3
+ import { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
4
+ import { getOperator, getTypeCompliantValue } from "sap/fe/core/templating/FilterHelper";
5
5
  import Title from "sap/m/Title";
6
6
  import NumberFormat from "sap/ui/core/format/NumberFormat";
7
- import Context from "sap/ui/model/Context";
8
- import ResourceBundle from "sap/base/i18n/ResourceBundle";
7
+ import View from "sap/ui/core/mvc/View";
8
+ import Condition from "sap/ui/mdc/condition/Condition";
9
9
  import ConditionValidated from "sap/ui/mdc/enum/ConditionValidated";
10
- import { getOperator, getTypeCompliantValue } from "sap/fe/core/templating/FilterHelper";
10
+ import Context from "sap/ui/model/Context";
11
11
  import DateTimeOffset from "sap/ui/model/odata/type/DateTimeOffset";
12
12
 
13
13
  const VisualFilterUtils = {
@@ -19,7 +19,7 @@ const VisualFilterUtils = {
19
19
  * @param {object} sVFId VisualFilter control ID
20
20
  * @param {string} sInfoPath Internal model context path to store info.
21
21
  */
22
- applyMedianScaleToChartData: function(oInteractiveChart: any, oView: View, sVFId: string, sInfoPath: string) {
22
+ applyMedianScaleToChartData: function (oInteractiveChart: any, oView: View, sVFId: string, sInfoPath: string) {
23
23
  const oData = [];
24
24
  const sMeasure = oInteractiveChart.data("measure");
25
25
  const oInternalModelContext = oView.getBindingContext("internal") as InternalModelContext;
@@ -54,10 +54,10 @@ const VisualFilterUtils = {
54
54
  * @param {string} sMeasureField Path of the measure
55
55
  * @returns {object} Object containing scale and iShortRefNumber
56
56
  */
57
- _getMedianScaleFactor: function(oData: any[], sMeasureField: string) {
57
+ _getMedianScaleFactor: function (oData: any[], sMeasureField: string) {
58
58
  let i;
59
59
  let scaleFactor;
60
- oData.sort(function(a: any, b: any) {
60
+ oData.sort(function (a: any, b: any) {
61
61
  if (Number(a[sMeasureField]) < Number(b[sMeasureField])) {
62
62
  return -1;
63
63
  }
@@ -123,12 +123,7 @@ const VisualFilterUtils = {
123
123
  * @param {string} currency Currency code
124
124
  * @returns {number} The formatted number
125
125
  */
126
- getFormattedNumber: function(
127
- value: string | number,
128
- scaleFactor: number | undefined,
129
- numberOfFractionalDigits: number | undefined,
130
- currency: string | undefined
131
- ) {
126
+ getFormattedNumber: function (value: string | number, scaleFactor?: number, numberOfFractionalDigits?: number, currency?: string) {
132
127
  let fixedInteger;
133
128
  value = typeof value === "string" ? Number(value.replace(/,/g, "")) : value;
134
129
 
@@ -163,7 +158,7 @@ const VisualFilterUtils = {
163
158
  * @param {object} oView Instance of the view
164
159
  * @param {string} sInfoPath Internal model context path to store info.
165
160
  */
166
- applyUOMToTitle: function(oInteractiveChart: any, oContextData: any, oView: View, sInfoPath: string) {
161
+ applyUOMToTitle: function (oInteractiveChart: any, oContextData: any, oView: View, sInfoPath: string) {
167
162
  const vUOM = oInteractiveChart.data("uom");
168
163
  let sUOM;
169
164
  let sCurrency;
@@ -190,7 +185,7 @@ const VisualFilterUtils = {
190
185
  * @param {object} sVFId VisualFilter control ID
191
186
  * @param {string} sInfoPath Internal model context path to store info.
192
187
  */
193
- updateChartScaleFactorTitle: function(oInteractiveChart: any, oView: View, sVFId: string, sInfoPath: string) {
188
+ updateChartScaleFactorTitle: function (oInteractiveChart: any, oView: View, sVFId: string, sInfoPath: string) {
194
189
  if (!oInteractiveChart.data("scalefactor")) {
195
190
  this.applyMedianScaleToChartData(oInteractiveChart, oView, sVFId, sInfoPath);
196
191
  } else {
@@ -211,7 +206,7 @@ const VisualFilterUtils = {
211
206
  * @param {string} sInfoPath Internal model context path to store info.
212
207
  * @param {object} oView Instance of the view.
213
208
  */
214
- applyErrorMessageAndTitle: function(s18nMessageTitle: string, s18nMessage: string, sInfoPath: string, oView: View) {
209
+ applyErrorMessageAndTitle: function (s18nMessageTitle: string, s18nMessage: string, sInfoPath: string, oView: View) {
215
210
  const oInternalModelContext = oView.getBindingContext("internal") as InternalModelContext;
216
211
  oInternalModelContext.setProperty(sInfoPath, {});
217
212
  oInternalModelContext.setProperty(sInfoPath, {
@@ -227,7 +222,7 @@ const VisualFilterUtils = {
227
222
  * @param {string} sUnitfield The path of the unit field
228
223
  * @returns {boolean} Returns if multiple units are configured or not
229
224
  */
230
- checkMulitUnit: function(oContexts: Context[], sUnitfield: string) {
225
+ checkMulitUnit: function (oContexts: Context[], sUnitfield: string) {
231
226
  const aData = [];
232
227
  if (oContexts && sUnitfield) {
233
228
  for (let i = 0; i < oContexts.length; i++) {
@@ -235,7 +230,7 @@ const VisualFilterUtils = {
235
230
  aData.push(aContextData[sUnitfield]);
236
231
  }
237
232
  }
238
- return !!aData.reduce(function(data: any, key: any) {
233
+ return !!aData.reduce(function (data: any, key: any) {
239
234
  return data === key ? data : NaN;
240
235
  });
241
236
  },
@@ -249,7 +244,7 @@ const VisualFilterUtils = {
249
244
  * @param {string} oResourceBundle The resource bundle
250
245
  * @param {string} oView Instance of the view
251
246
  */
252
- setMultiUOMMessage: function(
247
+ setMultiUOMMessage: function (
253
248
  oData: Context[],
254
249
  oInteractiveChart: any,
255
250
  sInfoPath: string,
@@ -285,14 +280,14 @@ const VisualFilterUtils = {
285
280
  * @param {string} oResourceBundle The resource bundle
286
281
  * @param {string} oView Instance of the view
287
282
  */
288
- setNoDataMessage: function(sInfoPath: string, oResourceBundle: ResourceBundle, oView: View) {
283
+ setNoDataMessage: function (sInfoPath: string, oResourceBundle: ResourceBundle, oView: View) {
289
284
  const s18nMessageTitle = oResourceBundle.getText("M_VISUAL_FILTERS_ERROR_MESSAGE_TITLE");
290
285
  const s18nMessage = oResourceBundle.getText("M_VISUAL_FILTER_NO_DATA_TEXT");
291
286
  this.applyErrorMessageAndTitle(s18nMessageTitle, s18nMessage, sInfoPath, oView);
292
287
  },
293
- convertFilterCondions: function(oFilterConditions: any) {
288
+ convertFilterCondions: function (oFilterConditions: any) {
294
289
  const oConvertedConditions: any = {};
295
- Object.keys(oFilterConditions).forEach(function(sKey: string) {
290
+ Object.keys(oFilterConditions).forEach(function (sKey: string) {
296
291
  const aConvertedConditions = [];
297
292
  const aConditions = oFilterConditions[sKey];
298
293
  for (let i = 0; i < aConditions.length; i++) {
@@ -307,7 +302,7 @@ const VisualFilterUtils = {
307
302
  });
308
303
  return oConvertedConditions;
309
304
  },
310
- getCustomConditions: function(Range: any, oValidProperty: any, sPropertyName: any) {
305
+ getCustomConditions: function (Range: any, oValidProperty: any, sPropertyName: any) {
311
306
  let value1, value2;
312
307
  if (oValidProperty.$Type === "Edm.DateTimeOffset") {
313
308
  value1 = this._parseDateTime(getTypeCompliantValue(this._formatDateTime(Range.Low), oValidProperty.$Type));
@@ -323,13 +318,13 @@ const VisualFilterUtils = {
323
318
  path: sPropertyName
324
319
  };
325
320
  },
326
- _parseDateTime: function(sValue: any) {
321
+ _parseDateTime: function (sValue: any) {
327
322
  return this._getDateTimeTypeInstance().parseValue(sValue, "string");
328
323
  },
329
- _formatDateTime: function(sValue: any) {
324
+ _formatDateTime: function (sValue: any) {
330
325
  return this._getDateTimeTypeInstance().formatValue(sValue, "string");
331
326
  },
332
- _getDateTimeTypeInstance: function() {
327
+ _getDateTimeTypeInstance: function () {
333
328
  return new DateTimeOffset({ pattern: "yyyy-MM-ddTHH:mm:ssZ", calendarType: "Gregorian" }, { V4: true });
334
329
  }
335
330
  };
@@ -2,6 +2,9 @@
2
2
  xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
3
3
  xmlns:core="sap.ui.core"
4
4
  xmlns="sap.m"
5
+ xmlns:mdc="sap.ui.mdc"
6
+ xmlns:mdcField="sap.ui.mdc.field"
7
+ xmlns:control="sap.fe.core.controls"
5
8
  xmlns:f="sap.ui.layout.form"
6
9
  xmlns:l="sap.ui.layout"
7
10
  template:require="{
@@ -30,69 +33,31 @@
30
33
  <f:FormContainer>
31
34
  <f:formElements>
32
35
  <template:repeat list="{dataFieldModel>}" var="dataField">
33
- <template:if test="{dataField>unitProperty}">
34
- <template:then>
35
- <f:FormElement visible="{= '{fieldsInfo>/values/' + ${dataField>dataProperty} + '/visible}' }">
36
- <f:fields>
37
- <Label text="{dataField>label}" required="{dataField>isFieldRequired}">
38
- <layoutData>
39
- <l:GridData span="XL12 L12 M12 S12" />
40
- </layoutData>
41
- </Label>
42
- <ComboBox
43
- id="{= ID.generate(['MED_', ${dataField>entitySet}, ${dataField>dataProperty}]) }"
44
- core:require="{MassEditHandlers: 'sap/fe/core/controls/massEdit/MassEditHandlers'}"
45
- items="{= '{path : \'fieldsInfo>/values/' + ${dataField>dataProperty} + '\'}' }"
46
- change="MassEditHandlers.handleMassEditChange($event)"
47
- selectedKey="{dataField>defaultSelectionPath}"
48
- >
49
- <items>
50
- <core:Item key="{fieldsInfo>key}" text="{fieldsInfo>text}" />
51
- </items>
52
- <layoutData>
53
- <l:GridData span="XL6 L6 M6 S12" />
54
- </layoutData>
55
- </ComboBox>
56
- <ComboBox
57
- core:require="{MassEditHandlers: 'sap/fe/core/controls/massEdit/MassEditHandlers'}"
58
- id="{= ID.generate(['MED_', ${dataField>entitySet}, ${dataField>unitProperty}]) }"
59
- items="{= '{path : \'fieldsInfo>/unitData/' + ${dataField>unitProperty} + '\'}' }"
60
- change="MassEditHandlers.handleMassEditChange($event)"
61
- selectedKey="{dataField>defaultSelectionUnitPath}"
62
- >
63
- <items>
64
- <core:Item key="{fieldsInfo>key}" text="{fieldsInfo>text}" />
65
- </items>
66
- <layoutData>
67
- <l:GridData span="XL6 L6 M6 S12" />
68
- </layoutData>
69
- </ComboBox>
70
- </f:fields>
71
- </f:FormElement>
72
- </template:then>
73
- <template:else>
74
- <f:FormElement visible="{= '{fieldsInfo>/values/' + ${dataField>dataProperty} + '/visible}' }">
75
- <f:fields>
76
- <Label text="{dataField>label}" required="{dataField>isFieldRequired}">
77
- <layoutData>
78
- <l:GridData span="XL12 L12 M12 S12" />
79
- </layoutData>
80
- </Label>
81
- <ComboBox
82
- id="{= ID.generate(['MED_', ${dataField>entitySet}, ${dataField>dataProperty}]) }"
83
- core:require="{MassEditHandlers: 'sap/fe/core/controls/massEdit/MassEditHandlers'}"
84
- items="{= '{path : \'fieldsInfo>/values/' + ${dataField>dataProperty} + '\'}' }"
85
- change="MassEditHandlers.handleMassEditChange($event)"
86
- selectedKey="{dataField>defaultSelectionPath}"
87
- >
88
- <items>
89
- <core:Item key="{fieldsInfo>key}" text="{fieldsInfo>text}" />
90
- </items>
91
- </ComboBox>
92
- </f:fields>
93
- </f:FormElement>
94
- </template:else>
95
- </template:if>
36
+ <f:FormElement
37
+ label="{dataField>label}"
38
+ visible="{= '{fieldsInfo>/values/' + ${dataField>dataProperty} + '/visible}' }"
39
+ >
40
+ <f:fields>
41
+ <template:with path="dataField>dataProperty" var="property">
42
+ <!-- main property -->
43
+ <template:with path="dataField>valuesPath" var="runtimePath">
44
+ <template:with path="dataField>isValueHelpEnabled" var="hasVH">
45
+ <core:Fragment fragmentName="sap.fe.core.controls.massEdit.MassEditField" type="XML" />
46
+ </template:with>
47
+ </template:with>
48
+ </template:with>
49
+ <template:if test="{dataField>unitProperty}">
50
+ <!-- unit exists -->
51
+ <template:with path="dataField>unitProperty" var="property">
52
+ <template:with path="dataField>unitDataPath" var="runtimePath">
53
+ <template:with path="dataField>isValueHelpEnabledForUnit" var="hasVH">
54
+ <core:Fragment fragmentName="sap.fe.core.controls.massEdit.MassEditField" type="XML" />
55
+ </template:with>
56
+ </template:with>
57
+ </template:with>
58
+ </template:if>
59
+ </f:fields>
60
+ </f:FormElement>
96
61
  </template:repeat>
97
62
  </f:formElements>
98
63
  </f:FormContainer>