@magic-xpa/engine 4.801.0-dev481.242 → 4.801.0-dev481.248

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 (298) hide show
  1. package/esm2020/index.mjs +190 -0
  2. package/{esm2015/magic-xpa-engine.js → esm2020/magic-xpa-engine.mjs} +0 -0
  3. package/esm2020/src/AccessHelper.mjs +3 -0
  4. package/esm2020/src/ClientManager.mjs +403 -0
  5. package/esm2020/src/CommandsProcessorBase.mjs +58 -0
  6. package/esm2020/src/CommandsProcessorManager.mjs +26 -0
  7. package/esm2020/src/CommandsTable.mjs +163 -0
  8. package/{esm2015/src/ConstInterface.js → esm2020/src/ConstInterface.mjs} +0 -0
  9. package/{esm2015/src/CurrentClientVersion.js → esm2020/src/CurrentClientVersion.mjs} +2 -2
  10. package/{esm2015/src/FlowMonitorInterface.js → esm2020/src/FlowMonitorInterface.mjs} +0 -0
  11. package/esm2020/src/GUIManager.mjs +63 -0
  12. package/{esm2015/src/GlobalCommandsManager.js → esm2020/src/GlobalCommandsManager.mjs} +0 -0
  13. package/{esm2015/src/GuiEventsProcessor.js → esm2020/src/GuiEventsProcessor.mjs} +0 -0
  14. package/{esm2015/src/ICommandsTable.js → esm2020/src/ICommandsTable.mjs} +1 -0
  15. package/{esm2015/src/ServerConfig.js → esm2020/src/ServerConfig.mjs} +0 -0
  16. package/{esm2015/src/bridge/IGuiEvent.js → esm2020/src/bridge/IGuiEvent.mjs} +0 -0
  17. package/esm2020/src/bridge/MagicBridge.mjs +41 -0
  18. package/{esm2015/src/commands/ClientOriginatedCommandTaskTag.js → esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs} +0 -0
  19. package/{esm2015/src/commands/ClientToServer/AddUserLocateDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs} +0 -0
  20. package/{esm2015/src/commands/ClientToServer/AddUserRangeDataviewCommand.js → esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs} +0 -0
  21. package/{esm2015/src/commands/ClientToServer/AddUserSortDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs} +0 -0
  22. package/esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs +23 -0
  23. package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs} +0 -0
  24. package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs} +0 -0
  25. package/{esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js → esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs} +0 -0
  26. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +278 -0
  27. package/{esm2015/src/commands/ClientToServer/CommandSerializationHelper.js → esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs} +0 -0
  28. package/{esm2015/src/commands/ClientToServer/ComputeEventCommand.js → esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs} +0 -0
  29. package/{esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js → esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs} +0 -0
  30. package/{esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js → esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs} +0 -0
  31. package/{esm2015/src/commands/ClientToServer/ControlItemsRefreshCommand.js → esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs} +0 -0
  32. package/{esm2015/src/commands/ClientToServer/DataViewOutputCommand.js → esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs} +0 -0
  33. package/{esm2015/src/commands/ClientToServer/DataviewCommand.js → esm2020/src/commands/ClientToServer/DataviewCommand.mjs} +0 -0
  34. package/{esm2015/src/commands/ClientToServer/EvaluateCommand.js → esm2020/src/commands/ClientToServer/EvaluateCommand.mjs} +0 -0
  35. package/{esm2015/src/commands/ClientToServer/EventCommand.js → esm2020/src/commands/ClientToServer/EventCommand.mjs} +0 -0
  36. package/{esm2015/src/commands/ClientToServer/ExecOperCommand.js → esm2020/src/commands/ClientToServer/ExecOperCommand.mjs} +0 -0
  37. package/{esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js → esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs} +0 -0
  38. package/{esm2015/src/commands/ClientToServer/GlobalParamsQueryCommand.js → esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs} +0 -0
  39. package/{esm2015/src/commands/ClientToServer/ICommandTaskTag.js → esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs} +1 -0
  40. package/{esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js → esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs} +0 -0
  41. package/{esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js → esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs} +0 -0
  42. package/{esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js → esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs} +0 -0
  43. package/{esm2015/src/commands/ClientToServer/QueryCommand.js → esm2020/src/commands/ClientToServer/QueryCommand.mjs} +0 -0
  44. package/{esm2015/src/commands/ClientToServer/RecomputeCommand.js → esm2020/src/commands/ClientToServer/RecomputeCommand.mjs} +0 -0
  45. package/{esm2015/src/commands/ClientToServer/RefreshEventCommand.js → esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs} +0 -0
  46. package/{esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js → esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs} +0 -0
  47. package/{esm2015/src/commands/ClientToServer/RollbackEventCommand.js → esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs} +0 -0
  48. package/{esm2015/src/commands/ClientToServer/SelectProgramCommand.js → esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs} +0 -0
  49. package/{esm2015/src/commands/ClientToServer/SetTransactionStateDataviewCommand.js → esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs} +0 -0
  50. package/{esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js → esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs} +0 -0
  51. package/{esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js → esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs} +0 -0
  52. package/{esm2015/src/commands/ClientToServer/TransactionCommand.js → esm2020/src/commands/ClientToServer/TransactionCommand.mjs} +0 -0
  53. package/{esm2015/src/commands/ClientToServer/UnloadCommand.js → esm2020/src/commands/ClientToServer/UnloadCommand.mjs} +0 -0
  54. package/{esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js → esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs} +0 -0
  55. package/esm2020/src/commands/DataViewCommandBase.mjs +10 -0
  56. package/{esm2015/src/commands/IClientCommand.js → esm2020/src/commands/IClientCommand.mjs} +1 -0
  57. package/esm2020/src/commands/IClientTargetedCommand.mjs +9 -0
  58. package/{esm2015/src/commands/IClientToServerCommandInfo.js → esm2020/src/commands/IClientToServerCommandInfo.mjs} +1 -0
  59. package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +65 -0
  60. package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +22 -0
  61. package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
  62. package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
  63. package/{esm2015/src/commands/ServerToClient/ClientRefreshCommand.js → esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs} +14 -17
  64. package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +27 -0
  65. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
  66. package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +222 -0
  67. package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +15 -0
  68. package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +15 -0
  69. package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +15 -0
  70. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +37 -0
  71. package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +85 -0
  72. package/{esm2015/src/commands/ServerToClient/XMLBasedCommandBuilder.js → esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs} +0 -0
  73. package/{esm2015/src/communications/IConnectionStateManager.js → esm2020/src/communications/IConnectionStateManager.mjs} +1 -0
  74. package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +17 -0
  75. package/{esm2015/src/data/DataSourceIdKey.js → esm2020/src/data/DataSourceIdKey.mjs} +0 -0
  76. package/esm2020/src/data/DataView.mjs +1634 -0
  77. package/{esm2015/src/data/DataViewBase.js → esm2020/src/data/DataViewBase.mjs} +0 -0
  78. package/esm2020/src/data/DataviewManager.mjs +28 -0
  79. package/esm2020/src/data/DataviewManagerBase.mjs +15 -0
  80. package/{esm2015/src/data/DvCache.js → esm2020/src/data/DvCache.mjs} +0 -0
  81. package/esm2020/src/data/Field.mjs +645 -0
  82. package/esm2020/src/data/FieldBase.mjs +18 -0
  83. package/{esm2015/src/data/FieldsTable.js → esm2020/src/data/FieldsTable.mjs} +0 -0
  84. package/{esm2015/src/data/IRecordsTable.js → esm2020/src/data/IRecordsTable.mjs} +1 -0
  85. package/{esm2015/src/data/Key.js → esm2020/src/data/Key.mjs} +0 -0
  86. package/esm2020/src/data/Record.mjs +846 -0
  87. package/{esm2015/src/data/RecordOutOfDataViewException.js → esm2020/src/data/RecordOutOfDataViewException.mjs} +0 -0
  88. package/{esm2015/src/data/RecordsTable.js → esm2020/src/data/RecordsTable.mjs} +0 -0
  89. package/esm2020/src/data/TaskTransactionManager.mjs +103 -0
  90. package/{esm2015/src/data/XMLBasedDcValuesBuilder.js → esm2020/src/data/XMLBasedDcValuesBuilder.mjs} +0 -0
  91. package/{esm2015/src/enums.js → esm2020/src/enums.mjs} +0 -0
  92. package/esm2020/src/env/EnvVariablesTable.mjs +340 -0
  93. package/esm2020/src/env/Environment.mjs +554 -0
  94. package/{esm2015/src/env/ILanguageData.js → esm2020/src/env/ILanguageData.mjs} +1 -0
  95. package/esm2020/src/env/LanguageData.mjs +222 -0
  96. package/esm2020/src/env/MirrorString.mjs +66 -0
  97. package/{esm2015/src/event/ActionManager.js → esm2020/src/event/ActionManager.mjs} +0 -0
  98. package/esm2020/src/event/Event.mjs +1436 -0
  99. package/esm2020/src/event/EventHandler.mjs +773 -0
  100. package/esm2020/src/event/EventHandlerPosition.mjs +201 -0
  101. package/esm2020/src/event/EventsManager.mjs +2983 -0
  102. package/{esm2015/src/event/IEventsManager.js → esm2020/src/event/IEventsManager.mjs} +0 -0
  103. package/{esm2015/src/event/RunTimeEvent.js → esm2020/src/event/RunTimeEvent.mjs} +0 -0
  104. package/{esm2015/src/event/RunTimeEventBase.js → esm2020/src/event/RunTimeEventBase.mjs} +0 -0
  105. package/{esm2015/src/event/UserEventsTable.js → esm2020/src/event/UserEventsTable.mjs} +0 -0
  106. package/{esm2015/src/exp/ExpTable.js → esm2020/src/exp/ExpTable.mjs} +0 -0
  107. package/esm2020/src/exp/Expression.mjs +200 -0
  108. package/{esm2015/src/exp/ExpressionDict.js → esm2020/src/exp/ExpressionDict.mjs} +0 -0
  109. package/esm2020/src/exp/ExpressionEvaluator.mjs +4373 -0
  110. package/{esm2015/src/exp/ExpressionLocalJpn.js → esm2020/src/exp/ExpressionLocalJpn.mjs} +0 -0
  111. package/esm2020/src/exp/GlobalParamsTable.mjs +85 -0
  112. package/esm2020/src/exp/YesNoExp.mjs +41 -0
  113. package/{esm2015/src/gui/CreatedFormVector.js → esm2020/src/gui/CreatedFormVector.mjs} +0 -0
  114. package/esm2020/src/gui/FormsTable.mjs +66 -0
  115. package/esm2020/src/gui/MgControl.mjs +357 -0
  116. package/esm2020/src/gui/MgForm.mjs +1195 -0
  117. package/esm2020/src/http/HttpManager.mjs +97 -0
  118. package/esm2020/src/http/client/HttpClientAsync.mjs +67 -0
  119. package/esm2020/src/http/client/HttpClientBase.mjs +148 -0
  120. package/{esm2015/src/http/client/HttpClientEvents.js → esm2020/src/http/client/HttpClientEvents.mjs} +0 -0
  121. package/esm2020/src/http/client/HttpClientSync.mjs +42 -0
  122. package/{esm2015/src/http/client/HttpUtility.js → esm2020/src/http/client/HttpUtility.mjs} +0 -0
  123. package/{esm2015/src/http/client/ICommunicationsFailureHandler.js → esm2020/src/http/client/ICommunicationsFailureHandler.mjs} +1 -0
  124. package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
  125. package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
  126. package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
  127. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +872 -0
  128. package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
  129. package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +24 -0
  130. package/{esm2015/src/remote/RemoteDataViewCommandFactory.js → esm2020/src/remote/RemoteDataViewCommandFactory.mjs} +0 -0
  131. package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +16 -0
  132. package/esm2020/src/remote/RemoteDataviewManager.mjs +17 -0
  133. package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +11 -0
  134. package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
  135. package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +13 -0
  136. package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
  137. package/esm2020/src/remote/ServerError.mjs +44 -0
  138. package/{esm2015/src/remote/SetTransactionStateRemoteDataViewCommand.js → esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs} +8 -11
  139. package/esm2020/src/rt/Argument.mjs +274 -0
  140. package/esm2020/src/rt/ArgumentsList.mjs +103 -0
  141. package/esm2020/src/rt/Boundary.mjs +158 -0
  142. package/{esm2015/src/rt/CompMainPrgTable.js → esm2020/src/rt/CompMainPrgTable.mjs} +0 -0
  143. package/esm2020/src/rt/DataviewHeaderBase.mjs +96 -0
  144. package/{esm2015/src/rt/DataviewHeaderFactory.js → esm2020/src/rt/DataviewHeaderFactory.mjs} +0 -0
  145. package/{esm2015/src/rt/DataviewHeaders.js → esm2020/src/rt/DataviewHeaders.mjs} +0 -0
  146. package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +39 -0
  147. package/{esm2015/src/rt/ExecutionStack.js → esm2020/src/rt/ExecutionStack.mjs} +0 -0
  148. package/{esm2015/src/rt/ExecutionStackEntry.js → esm2020/src/rt/ExecutionStackEntry.mjs} +0 -0
  149. package/{esm2015/src/rt/HandlersTable.js → esm2020/src/rt/HandlersTable.mjs} +0 -0
  150. package/{esm2015/src/rt/IDataSourceViewDefinition.js → esm2020/src/rt/IDataSourceViewDefinition.mjs} +1 -0
  151. package/{esm2015/src/rt/IDataviewHeader.js → esm2020/src/rt/IDataviewHeader.mjs} +1 -0
  152. package/{esm2015/src/rt/IResultValue.js → esm2020/src/rt/IResultValue.mjs} +1 -0
  153. package/{esm2015/src/rt/LastFocusedManager.js → esm2020/src/rt/LastFocusedManager.mjs} +0 -0
  154. package/esm2020/src/rt/Operation.mjs +745 -0
  155. package/{esm2015/src/rt/OperationTable.js → esm2020/src/rt/OperationTable.mjs} +0 -0
  156. package/esm2020/src/rt/Recompute.mjs +355 -0
  157. package/{esm2015/src/rt/RecomputeTable.js → esm2020/src/rt/RecomputeTable.mjs} +0 -0
  158. package/esm2020/src/rt/RemoteDataviewHeader.mjs +105 -0
  159. package/{esm2015/src/rt/ResultValue.js → esm2020/src/rt/ResultValue.mjs} +0 -0
  160. package/esm2020/src/rt/TableCache.mjs +177 -0
  161. package/esm2020/src/rt/TableCacheManager.mjs +67 -0
  162. package/{esm2015/src/rt/Transaction.js → esm2020/src/rt/Transaction.mjs} +0 -0
  163. package/{esm2015/src/security/UserDetails.js → esm2020/src/security/UserDetails.mjs} +0 -0
  164. package/{esm2015/src/tasks/IMGDataCollection.js → esm2020/src/tasks/IMGDataCollection.mjs} +1 -0
  165. package/esm2020/src/tasks/MGData.mjs +552 -0
  166. package/esm2020/src/tasks/MGDataCollection.mjs +259 -0
  167. package/{esm2015/src/tasks/MenusDeserializer.js → esm2020/src/tasks/MenusDeserializer.mjs} +0 -0
  168. package/{esm2015/src/tasks/RCTimer.js → esm2020/src/tasks/RCTimer.mjs} +0 -0
  169. package/{esm2015/src/tasks/RemoteTaskService.js → esm2020/src/tasks/RemoteTaskService.mjs} +0 -0
  170. package/esm2020/src/tasks/Task.mjs +2501 -0
  171. package/{esm2015/src/tasks/TaskBase.js → esm2020/src/tasks/TaskBase.mjs} +22 -1
  172. package/esm2020/src/tasks/TaskServiceBase.mjs +25 -0
  173. package/esm2020/src/tasks/TasksTable.mjs +80 -0
  174. package/{esm2015/src/tasks/sort/Sort.js → esm2020/src/tasks/sort/Sort.mjs} +0 -0
  175. package/{esm2015/src/tasks/sort/SortCollection.js → esm2020/src/tasks/sort/SortCollection.mjs} +0 -0
  176. package/{esm2015/src/util/ConstUtils.js → esm2020/src/util/ConstUtils.mjs} +0 -0
  177. package/esm2020/src/util/FlowMonitorQueue.mjs +361 -0
  178. package/{esm2015/src/util/HeapSort.js → esm2020/src/util/HeapSort.mjs} +0 -0
  179. package/{esm2015/src/util/IMirrorXML.js → esm2020/src/util/IMirrorXML.mjs} +2 -1
  180. package/{esm2015/src/util/IServerConfig.js → esm2020/src/util/IServerConfig.mjs} +1 -0
  181. package/{esm2015/src/util/MgBlockingQueue.js → esm2020/src/util/MgBlockingQueue.mjs} +1 -0
  182. package/esm2020/src/util/MgPriorityBlockingQueue.mjs +76 -0
  183. package/{esm2015/src/util/MgPriorityQueue.js → esm2020/src/util/MgPriorityQueue.mjs} +0 -0
  184. package/esm2020/src/util/ParamParseResult.mjs +8 -0
  185. package/esm2020/src/util/PrmMap.mjs +151 -0
  186. package/{esm2015/src/util/Process.js → esm2020/src/util/Process.mjs} +0 -0
  187. package/{esm2015/src/util/ReturnResult.js → esm2020/src/util/ReturnResult.mjs} +0 -0
  188. package/{esm2015/src/util/ReturnResultBase.js → esm2020/src/util/ReturnResultBase.mjs} +0 -0
  189. package/{esm2015/src/util/Scrambler.js → esm2020/src/util/Scrambler.mjs} +0 -0
  190. package/{esm2015/src/util/UniqueIDUtils.js → esm2020/src/util/UniqueIDUtils.mjs} +0 -0
  191. package/{esm2015/src/util/cookie.service.js → esm2020/src/util/cookie.service.mjs} +0 -0
  192. package/fesm2015/{magic-xpa-engine.js → magic-xpa-engine.mjs} +103 -7
  193. package/fesm2015/magic-xpa-engine.mjs.map +1 -0
  194. package/fesm2020/magic-xpa-engine.mjs +30705 -0
  195. package/fesm2020/magic-xpa-engine.mjs.map +1 -0
  196. package/index.d.ts +2 -0
  197. package/package.json +27 -13
  198. package/src/AccessHelper.d.ts +1 -1
  199. package/src/CommandsProcessorBase.d.ts +3 -3
  200. package/src/commands/DataViewCommandBase.d.ts +2 -2
  201. package/src/commands/IClientTargetedCommand.d.ts +1 -1
  202. package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +1 -1
  203. package/src/data/FieldBase.d.ts +3 -3
  204. package/src/env/EnvVariablesTable.d.ts +2 -15
  205. package/src/env/MirrorString.d.ts +15 -0
  206. package/src/exp/GlobalParamsTable.d.ts +2 -1
  207. package/src/http/client/HttpClientBase.d.ts +2 -2
  208. package/src/rt/DataviewHeaderBase.d.ts +1 -1
  209. package/src/tasks/TaskBase.d.ts +7 -7
  210. package/src/util/IMirrorXML.d.ts +1 -1
  211. package/src/util/ParamParseResult.d.ts +6 -0
  212. package/src/util/PrmMap.d.ts +0 -6
  213. package/bundles/magic-xpa-engine.umd.js +0 -37983
  214. package/bundles/magic-xpa-engine.umd.js.map +0 -1
  215. package/bundles/magic-xpa-engine.umd.min.js +0 -16
  216. package/bundles/magic-xpa-engine.umd.min.js.map +0 -1
  217. package/esm2015/index.js +0 -188
  218. package/esm2015/src/AccessHelper.js +0 -3
  219. package/esm2015/src/ClientManager.js +0 -412
  220. package/esm2015/src/CommandsProcessorBase.js +0 -54
  221. package/esm2015/src/CommandsProcessorManager.js +0 -31
  222. package/esm2015/src/CommandsTable.js +0 -166
  223. package/esm2015/src/GUIManager.js +0 -72
  224. package/esm2015/src/bridge/MagicBridge.js +0 -44
  225. package/esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js +0 -24
  226. package/esm2015/src/commands/ClientToServer/CommandFactory.js +0 -283
  227. package/esm2015/src/commands/DataViewCommandBase.js +0 -6
  228. package/esm2015/src/commands/IClientTargetedCommand.js +0 -6
  229. package/esm2015/src/commands/ServerToClient/AbortCommand.js +0 -68
  230. package/esm2015/src/commands/ServerToClient/AddLocateCommand.js +0 -25
  231. package/esm2015/src/commands/ServerToClient/AddRangeCommand.js +0 -65
  232. package/esm2015/src/commands/ServerToClient/AddSortCommand.js +0 -36
  233. package/esm2015/src/commands/ServerToClient/ClientTargetedCommandBase.js +0 -24
  234. package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +0 -48
  235. package/esm2015/src/commands/ServerToClient/OpenURLCommand.js +0 -225
  236. package/esm2015/src/commands/ServerToClient/ResetLocateCommand.js +0 -18
  237. package/esm2015/src/commands/ServerToClient/ResetRangeCommand.js +0 -18
  238. package/esm2015/src/commands/ServerToClient/ResetSortCommand.js +0 -18
  239. package/esm2015/src/commands/ServerToClient/ResultCommand.js +0 -40
  240. package/esm2015/src/commands/ServerToClient/VerifyCommand.js +0 -88
  241. package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +0 -20
  242. package/esm2015/src/data/DataView.js +0 -1693
  243. package/esm2015/src/data/DataviewManager.js +0 -31
  244. package/esm2015/src/data/DataviewManagerBase.js +0 -18
  245. package/esm2015/src/data/Field.js +0 -672
  246. package/esm2015/src/data/FieldBase.js +0 -9
  247. package/esm2015/src/data/Record.js +0 -847
  248. package/esm2015/src/data/TaskTransactionManager.js +0 -110
  249. package/esm2015/src/env/EnvVariablesTable.js +0 -408
  250. package/esm2015/src/env/Environment.js +0 -557
  251. package/esm2015/src/env/LanguageData.js +0 -230
  252. package/esm2015/src/event/Event.js +0 -1441
  253. package/esm2015/src/event/EventHandler.js +0 -787
  254. package/esm2015/src/event/EventHandlerPosition.js +0 -201
  255. package/esm2015/src/event/EventsManager.js +0 -3107
  256. package/esm2015/src/exp/Expression.js +0 -209
  257. package/esm2015/src/exp/ExpressionEvaluator.js +0 -4441
  258. package/esm2015/src/exp/GlobalParamsTable.js +0 -84
  259. package/esm2015/src/exp/YesNoExp.js +0 -44
  260. package/esm2015/src/gui/FormsTable.js +0 -73
  261. package/esm2015/src/gui/MgControl.js +0 -424
  262. package/esm2015/src/gui/MgForm.js +0 -1292
  263. package/esm2015/src/http/HttpManager.js +0 -100
  264. package/esm2015/src/http/client/HttpClientAsync.js +0 -72
  265. package/esm2015/src/http/client/HttpClientBase.js +0 -148
  266. package/esm2015/src/http/client/HttpClientSync.js +0 -47
  267. package/esm2015/src/remote/AddUserLocateRemoteDataViewCommand.js +0 -21
  268. package/esm2015/src/remote/AddUserRangeRemoteDataViewCommand.js +0 -21
  269. package/esm2015/src/remote/AddUserSortRemoteDataViewCommand.js +0 -21
  270. package/esm2015/src/remote/RemoteCommandsProcessor.js +0 -902
  271. package/esm2015/src/remote/RemoteControlItemsRefreshCommand.js +0 -28
  272. package/esm2015/src/remote/RemoteDataViewCommandBase.js +0 -27
  273. package/esm2015/src/remote/RemoteDataViewCommandUpdateNonModifiable.js +0 -19
  274. package/esm2015/src/remote/RemoteDataviewManager.js +0 -23
  275. package/esm2015/src/remote/RemoteInitDataViewCommand.js +0 -14
  276. package/esm2015/src/remote/ResetUserLocateRemoteDataviewCommand.js +0 -20
  277. package/esm2015/src/remote/ResetUserRangeRemoteDataviewCommand.js +0 -16
  278. package/esm2015/src/remote/ResetUserSortRemoteDataviewCommand.js +0 -19
  279. package/esm2015/src/remote/ServerError.js +0 -45
  280. package/esm2015/src/rt/Argument.js +0 -281
  281. package/esm2015/src/rt/ArgumentsList.js +0 -108
  282. package/esm2015/src/rt/Boundary.js +0 -161
  283. package/esm2015/src/rt/DataviewHeaderBase.js +0 -96
  284. package/esm2015/src/rt/DataviewHeadersSaxHandler.js +0 -40
  285. package/esm2015/src/rt/Operation.js +0 -772
  286. package/esm2015/src/rt/Recompute.js +0 -372
  287. package/esm2015/src/rt/RemoteDataviewHeader.js +0 -114
  288. package/esm2015/src/rt/TableCache.js +0 -182
  289. package/esm2015/src/rt/TableCacheManager.js +0 -70
  290. package/esm2015/src/tasks/MGData.js +0 -561
  291. package/esm2015/src/tasks/MGDataCollection.js +0 -270
  292. package/esm2015/src/tasks/Task.js +0 -2602
  293. package/esm2015/src/tasks/TaskServiceBase.js +0 -30
  294. package/esm2015/src/tasks/TasksTable.js +0 -87
  295. package/esm2015/src/util/FlowMonitorQueue.js +0 -364
  296. package/esm2015/src/util/MgPriorityBlockingQueue.js +0 -79
  297. package/esm2015/src/util/PrmMap.js +0 -157
  298. package/fesm2015/magic-xpa-engine.js.map +0 -1
@@ -1,31 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Logger, StrUtil } from "@magic-xpa/utils";
3
- import { RemoteCommandsProcessor } from "./remote/RemoteCommandsProcessor";
4
- import { HttpManager } from "./http/HttpManager";
5
- import { InteractiveCommunicationsFailureHandler } from "./communications/InteractiveCommunicationsFailureHandler";
6
- export class CommandsProcessorManager {
7
- static GetCommandsProcessor() {
8
- return RemoteCommandsProcessor.GetInstance();
9
- }
10
- static GetContent(requestedURL, useCache) {
11
- return __awaiter(this, void 0, void 0, function* () {
12
- let ret = yield (CommandsProcessorManager.GetCommandsProcessor().GetContent(requestedURL, useCache));
13
- return ret;
14
- });
15
- }
16
- static StartSession() {
17
- return __awaiter(this, void 0, void 0, function* () {
18
- let succeeded = false;
19
- try {
20
- HttpManager.GetInstance().SetCommunicationsFailureHandler(new InteractiveCommunicationsFailureHandler());
21
- succeeded = yield RemoteCommandsProcessor.GetInstance().StartSession();
22
- }
23
- catch (ex) {
24
- Logger.Instance.WriteServerToLog("Failed connecting to the server: " + StrUtil.getConsoleErorString(ex.Message));
25
- throw ex;
26
- }
27
- return succeeded;
28
- });
29
- }
30
- }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZHNQcm9jZXNzb3JNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9Db21tYW5kc1Byb2Nlc3Nvck1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQy9DLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBR2pILE1BQU0sT0FBTyx3QkFBd0I7SUFLbkMsTUFBTSxDQUFDLG9CQUFvQjtRQUN6QixPQUFPLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFPRCxNQUFNLENBQU8sVUFBVSxDQUFDLFlBQW9CLEVBQUUsUUFBaUI7O1lBQzdELElBQUksR0FBRyxHQUFXLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM3RyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7S0FBQTtJQU1BLE1BQU0sQ0FBTyxZQUFZOztZQUN4QixJQUFJLFNBQVMsR0FBWSxLQUFLLENBQUM7WUFDL0IsSUFBSTtnQkFDRixXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsK0JBQStCLENBQUMsSUFBSSx1Q0FBdUMsRUFBRSxDQUFDLENBQUM7Z0JBR3pHLFNBQVMsR0FBRyxNQUFNLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO2FBQ3hFO1lBQ0QsT0FBTyxFQUFFLEVBQUU7Z0JBQ1QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxtQ0FBbUMsR0FBRyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ2pILE1BQU0sRUFBRSxDQUFDO2FBQ1Y7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dlciwgU3RyVXRpbCB9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7Q29tbWFuZHNQcm9jZXNzb3JCYXNlfSBmcm9tIFwiLi9Db21tYW5kc1Byb2Nlc3NvckJhc2VcIjtcclxuaW1wb3J0IHtSZW1vdGVDb21tYW5kc1Byb2Nlc3Nvcn0gZnJvbSBcIi4vcmVtb3RlL1JlbW90ZUNvbW1hbmRzUHJvY2Vzc29yXCI7XHJcbmltcG9ydCB7SHR0cE1hbmFnZXJ9IGZyb20gXCIuL2h0dHAvSHR0cE1hbmFnZXJcIjtcclxuaW1wb3J0IHtJbnRlcmFjdGl2ZUNvbW11bmljYXRpb25zRmFpbHVyZUhhbmRsZXJ9IGZyb20gXCIuL2NvbW11bmljYXRpb25zL0ludGVyYWN0aXZlQ29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlclwiO1xyXG5cclxuLy8gVE9ETzogQ29uc2lkZXIgcmVtb3ZpbmcgdGhpcyBjbGFzcyBhbmQgdXNpbmcgUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3IgZGlyZWN0bHkuXHJcbmV4cG9ydCBjbGFzcyBDb21tYW5kc1Byb2Nlc3Nvck1hbmFnZXIge1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0IHRoZSBjb21tYW5kcyBwcm9jZXNzb3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIEdldENvbW1hbmRzUHJvY2Vzc29yKCk6IENvbW1hbmRzUHJvY2Vzc29yQmFzZSB7XHJcbiAgICByZXR1cm4gUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3IuR2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0IHRoZSBVUkwgY29udGVudCBhY2NvcmRpbmcgdG8gdGhlIGFjdGl2ZSBjb21tYW5kcyBwcm9jZXNzb3JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInJlcXVlc3RlZFVSTFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgYXN5bmMgR2V0Q29udGVudChyZXF1ZXN0ZWRVUkw6IHN0cmluZywgdXNlQ2FjaGU6IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgbGV0IHJldDogc3RyaW5nID0gYXdhaXQgKENvbW1hbmRzUHJvY2Vzc29yTWFuYWdlci5HZXRDb21tYW5kc1Byb2Nlc3NvcigpLkdldENvbnRlbnQocmVxdWVzdGVkVVJMLCB1c2VDYWNoZSkpO1xyXG4gICAgcmV0dXJuIHJldDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gU3RhcnQgc2Vzc2lvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICAgc3RhdGljIGFzeW5jIFN0YXJ0U2Vzc2lvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCBzdWNjZWVkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHRyeSB7XHJcbiAgICAgIEh0dHBNYW5hZ2VyLkdldEluc3RhbmNlKCkuU2V0Q29tbXVuaWNhdGlvbnNGYWlsdXJlSGFuZGxlcihuZXcgSW50ZXJhY3RpdmVDb21tdW5pY2F0aW9uc0ZhaWx1cmVIYW5kbGVyKCkpO1xyXG5cclxuICAgICAgLy8gYWNjZXNzIHRoZSBTZXJ2ZXJcclxuICAgICAgc3VjY2VlZGVkID0gYXdhaXQgUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3IuR2V0SW5zdGFuY2UoKS5TdGFydFNlc3Npb24oKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChleCkge1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVTZXJ2ZXJUb0xvZyhcIkZhaWxlZCBjb25uZWN0aW5nIHRvIHRoZSBzZXJ2ZXI6IFwiICsgU3RyVXRpbC5nZXRDb25zb2xlRXJvclN0cmluZyhleC5NZXNzYWdlKSk7XHJcbiAgICAgIHRocm93IGV4O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdWNjZWVkZWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,166 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { IClientTargetedCommand } from "./commands/IClientTargetedCommand";
3
- import { XMLBasedCommandBuilder } from "./commands/ServerToClient/XMLBasedCommandBuilder";
4
- import { ResultCommand } from "./commands/ServerToClient/ResultCommand";
5
- import { AbortCommand } from "./commands/ServerToClient/AbortCommand";
6
- import { RefParam, List } from "@magic-xpa/mscorelib";
7
- import { VerifyCommand } from "./commands/ServerToClient/VerifyCommand";
8
- import { ConstInterface } from "./ConstInterface";
9
- import { ClientOriginatedCommandSerializer } from "./commands/ClientToServer/ClientOriginatedCommandSerializer";
10
- import { GlobalCommandsManager } from "./GlobalCommandsManager";
11
- import { AccessHelper } from "./AccessHelper";
12
- export class CommandsTable {
13
- constructor() {
14
- this._cmds = null;
15
- this._iterationIdx = 0;
16
- this._cmds = new List();
17
- }
18
- static createCommandsTable() {
19
- return new CommandsTable();
20
- }
21
- fillData(parser) {
22
- while (this.initInnerObjects(parser.getNextTag(), parser)) {
23
- }
24
- }
25
- initInnerObjects(foundTagName, parser) {
26
- if (foundTagName == null)
27
- return false;
28
- if (foundTagName === ConstInterface.MG_TAG_COMMAND) {
29
- let cmd = new XMLBasedCommandBuilder().fillData(parser);
30
- this._cmds.push(cmd);
31
- }
32
- else
33
- return false;
34
- return true;
35
- }
36
- Execute(res) {
37
- return __awaiter(this, void 0, void 0, function* () {
38
- let currFrame = GlobalCommandsManager.Instance.getCmdFrame();
39
- GlobalCommandsManager.Instance.add1toCmdFrame();
40
- let firstBlocking = -1;
41
- let i, j;
42
- let cmd;
43
- for (i = 0; i < this.getSize(); i = i + 1) {
44
- cmd = this.getCmd(i);
45
- if (cmd.IsBlocking && firstBlocking === -1)
46
- firstBlocking = i;
47
- else if (cmd instanceof ResultCommand && firstBlocking !== -1) {
48
- this._cmds.Insert(firstBlocking, cmd);
49
- this._cmds.RemoveAt(i + 1);
50
- }
51
- }
52
- for (i = 0; i < this.getSize(); i = i + 1) {
53
- cmd = this.getCmd(i);
54
- cmd.Frame = currFrame;
55
- if (cmd.IsBlocking) {
56
- for (j = i + 1; j < this.getSize(); j = j + 1)
57
- GlobalCommandsManager.Instance.addUnframedCmd(this.getCmd(j));
58
- this._cmds.SetSize(i + 1);
59
- break;
60
- }
61
- }
62
- while (this.getSize() > 0) {
63
- const tmpCmd = this.extractCmd(currFrame);
64
- if (tmpCmd instanceof IClientTargetedCommand)
65
- cmd = tmpCmd;
66
- if (cmd != null) {
67
- if (cmd.ShouldExecute) {
68
- yield cmd.Execute(res);
69
- }
70
- else {
71
- GlobalCommandsManager.Instance.addCommandsExecutedAfterTaskStarted(cmd);
72
- }
73
- }
74
- else
75
- break;
76
- }
77
- });
78
- }
79
- extractCmd(frame) {
80
- let size = this.getSize();
81
- let cmd = null;
82
- let verifyCmd = null;
83
- let verifyIndex;
84
- let verifyTask = null;
85
- let abortTask = null;
86
- let startIterationIdx;
87
- let tid;
88
- if (size === 0)
89
- return null;
90
- if (this._iterationIdx >= size)
91
- this._iterationIdx = 0;
92
- startIterationIdx = this._iterationIdx;
93
- for (; this._iterationIdx < size; this._iterationIdx++) {
94
- cmd = ((this.getCmd(this._iterationIdx) instanceof AbortCommand) ? this.getCmd(this._iterationIdx) : null);
95
- if (cmd != null && !cmd.TaskTag.startsWith("-") && cmd.Frame === frame) {
96
- for (verifyIndex = 0; verifyIndex < this._iterationIdx; verifyIndex++) {
97
- verifyCmd = ((this.getCmd(verifyIndex) instanceof VerifyCommand) ? this.getCmd(verifyIndex) : null);
98
- if (verifyCmd != null && verifyCmd.Frame === frame) {
99
- verifyTask = AccessHelper.mgDataTable.GetTaskByID(verifyCmd.TaskTag);
100
- abortTask = AccessHelper.mgDataTable.GetTaskByID(cmd.TaskTag);
101
- if (verifyTask != null && verifyTask.isDescendentOf(abortTask)) {
102
- this._cmds.RemoveAt(verifyIndex);
103
- this._iterationIdx--;
104
- return verifyCmd;
105
- }
106
- }
107
- }
108
- this._cmds.RemoveAt(this._iterationIdx);
109
- size = this.getSize();
110
- for (startIterationIdx = 0; startIterationIdx < size; startIterationIdx++) {
111
- tid = this.getCmd(startIterationIdx).TaskTag;
112
- if (tid != null && tid.substr(1) === cmd.TaskTag) {
113
- this._cmds.RemoveAt(startIterationIdx);
114
- break;
115
- }
116
- }
117
- return cmd;
118
- }
119
- }
120
- for (verifyIndex = 0; verifyIndex < size; verifyIndex++) {
121
- verifyCmd = ((this.getCmd(verifyIndex) instanceof VerifyCommand) ? this.getCmd(verifyIndex) : null);
122
- if (verifyCmd != null && verifyCmd.Frame === frame &&
123
- AccessHelper.mgDataTable.GetTaskByID(verifyCmd.TaskTag) != null) {
124
- this._cmds.RemoveAt(verifyIndex);
125
- return verifyCmd;
126
- }
127
- }
128
- for (this._iterationIdx = 0; this._iterationIdx < size; this._iterationIdx++) {
129
- cmd = this.getCmd(this._iterationIdx);
130
- if (cmd.Frame === frame) {
131
- this._cmds.RemoveAt(this._iterationIdx);
132
- return cmd;
133
- }
134
- }
135
- return null;
136
- }
137
- getCmd(idx) {
138
- return this._cmds.get_Item(idx);
139
- }
140
- buildXML(message) {
141
- for (let i = 0; i < this._cmds.length; i = i + 1) {
142
- let cmd = this._cmds.get_Item(i);
143
- let temp = new RefParam(false);
144
- message.Append(ClientOriginatedCommandSerializer.Serialize(cmd, AccessHelper.mgDataTable.getCurrMGData()));
145
- }
146
- this.clear();
147
- }
148
- Add(cmd) {
149
- this._cmds.push(cmd);
150
- }
151
- Clear() {
152
- this._cmds.Clear();
153
- }
154
- ExtractCommand(commandIndex) {
155
- let command = this.getCmd(commandIndex);
156
- this._cmds.RemoveAt(commandIndex);
157
- return command;
158
- }
159
- clear() {
160
- this._cmds.Clear();
161
- }
162
- getSize() {
163
- return this._cmds.length;
164
- }
165
- }
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZHNUYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvQ29tbWFuZHNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFFeEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsUUFBUSxFQUFpQixJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBRTlHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxNQUFNLE9BQU8sYUFBYTtJQUl4QjtRQUhRLFVBQUssR0FBeUIsSUFBSSxDQUFDO1FBQ25DLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBR2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsTUFBTSxDQUFDLG1CQUFtQjtRQUN4QixPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQU1ELFFBQVEsQ0FBQyxNQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7U0FDMUQ7SUFDSCxD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RUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEQsSUFBSSxHQUFHLEdBQXFELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25GLElBQUksSUFBSSxHQUFzQixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRCxPQUFPLENBQUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDNUc7UUFFRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBTUQsR0FBRyxDQUFDLEdBQW1CO1FBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFLRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBT0QsY0FBYyxDQUFDLFlBQW9CO1FBQ2pDLElBQUksT0FBTyxHQUFtQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFLRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBS0QsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWG1sUGFyc2VyIH0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtJQ2xpZW50VGFyZ2V0ZWRDb21tYW5kfSBmcm9tIFwiLi9jb21tYW5kcy9JQ2xpZW50VGFyZ2V0ZWRDb21tYW5kXCI7XHJcbmltcG9ydCB7WE1MQmFzZWRDb21tYW5kQnVpbGRlcn0gZnJvbSBcIi4vY29tbWFuZHMvU2VydmVyVG9DbGllbnQvWE1MQmFzZWRDb21tYW5kQnVpbGRlclwiO1xyXG5pbXBvcnQge0lSZXN1bHRWYWx1ZX0gZnJvbSBcIi4vcnQvSVJlc3VsdFZhbHVlXCJcclxuaW1wb3J0IHtSZXN1bHRDb21tYW5kfSBmcm9tIFwiLi9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9SZXN1bHRDb21tYW5kXCI7XHJcbmltcG9ydCB7SUNsaWVudENvbW1hbmR9IGZyb20gXCIuL2NvbW1hbmRzL0lDbGllbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7QWJvcnRDb21tYW5kfSBmcm9tIFwiLi9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9BYm9ydENvbW1hbmRcIjtcclxuaW1wb3J0IHtSZWZQYXJhbSwgU3RyaW5nQnVpbGRlciwgTGlzdH0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7VmVyaWZ5Q29tbWFuZH0gZnJvbSBcIi4vY29tbWFuZHMvU2VydmVyVG9DbGllbnQvVmVyaWZ5Q29tbWFuZFwiO1xyXG5pbXBvcnQge0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kfSBmcm9tIFwiLi9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFwiO1xyXG5pbXBvcnQge0NvbnN0SW50ZXJmYWNlfSBmcm9tIFwiLi9Db25zdEludGVyZmFjZVwiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCIuL3Rhc2tzL1Rhc2tcIjtcclxuaW1wb3J0IHtDbGllbnRPcmlnaW5hdGVkQ29tbWFuZFNlcmlhbGl6ZXJ9IGZyb20gXCIuL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kU2VyaWFsaXplclwiO1xyXG5pbXBvcnQgeyBJQ29tbWFuZHNUYWJsZSB9IGZyb20gXCIuL0lDb21tYW5kc1RhYmxlXCI7XHJcbmltcG9ydCB7IEdsb2JhbENvbW1hbmRzTWFuYWdlciB9IGZyb20gXCIuL0dsb2JhbENvbW1hbmRzTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBBY2Nlc3NIZWxwZXIgfSBmcm9tIFwiLi9BY2Nlc3NIZWxwZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDb21tYW5kc1RhYmxlIGltcGxlbWVudHMgSUNvbW1hbmRzVGFibGV7XHJcbiAgcHJpdmF0ZSBfY21kczogTGlzdDxJQ2xpZW50Q29tbWFuZD4gPSBudWxsO1xyXG4gIHByaXZhdGUgX2l0ZXJhdGlvbklkeDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9jbWRzID0gbmV3IExpc3QoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVDb21tYW5kc1RhYmxlKCk6SUNvbW1hbmRzVGFibGUge1xyXG4gICAgcmV0dXJuIG5ldyBDb21tYW5kc1RhYmxlKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgVG8gcGFyc2UgaW5wdXQgc3RyaW5nIGFuZCBmaWxsICBfY21kc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBpbmRleCBvZiBlbmQgbGFzdCAgPGNvbW1hbmQgLi4uPiB0YWc8L3JldHVybnM+XHJcbiAgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIHdoaWxlICh0aGlzLmluaXRJbm5lck9iamVjdHMocGFyc2VyLmdldE5leHRUYWcoKSwgcGFyc2VyKSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFRvIGFsbG9jYXRlIGFuZCBmaWxsIGlubmVyIG9iamVjdHMgb2YgdGhlIGNsYXNzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZvdW5kVGFnTmFtZVwiPiAgbmFtZSBvZiBpbm5lciB0YWcgPC9wYXJhbT5cclxuICBwcml2YXRlIGluaXRJbm5lck9iamVjdHMoZm91bmRUYWdOYW1lOiBzdHJpbmcsIHBhcnNlcjogWG1sUGFyc2VyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09IG51bGwpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09PSBDb25zdEludGVyZmFjZS5NR19UQUdfQ09NTUFORCkge1xyXG4gICAgICBsZXQgY21kOiBJQ2xpZW50VGFyZ2V0ZWRDb21tYW5kID0gbmV3IFhNTEJhc2VkQ29tbWFuZEJ1aWxkZXIoKS5maWxsRGF0YShwYXJzZXIpIGFzIElDbGllbnRUYXJnZXRlZENvbW1hbmQ7XHJcbiAgICAgIHRoaXMuX2NtZHMucHVzaChjbWQpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBFeGVjdXRlIGFsbCBjb21tYW5kcyBpbiBjb21tYW5kIHRhYmxlIGFuZCBkZWxldGUgdGhlbVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVzXCI+cmVzdWx0LjwvcGFyYW0+XHJcbiAgYXN5bmMgRXhlY3V0ZShyZXM6IElSZXN1bHRWYWx1ZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IGN1cnJGcmFtZTogbnVtYmVyID0gR2xvYmFsQ29tbWFuZHNNYW5hZ2VyLkluc3RhbmNlLmdldENtZEZyYW1lKCk7IC8vIGNtZEZyYW1lKys7ICBzYXZlIGEgbG9jYWwgdmFsdWUgb2YgdGhlIGZyYW1lXHJcbiAgICBHbG9iYWxDb21tYW5kc01hbmFnZXIuSW5zdGFuY2UuYWRkMXRvQ21kRnJhbWUoKTtcclxuICAgIGxldCBmaXJzdEJsb2NraW5nOiBudW1iZXIgPSAtMTtcclxuICAgIGxldCBpOiBudW1iZXIsIGo6IG51bWJlcjtcclxuICAgIGxldCBjbWQ6IElDbGllbnRUYXJnZXRlZENvbW1hbmQ7XHJcblxyXG4gICAgLy8gZnJhbWVzIGFyZSB1c2VkIGhlcmUgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgcmVjdXJzaXZlbHlcclxuICAgIC8vIHRoZSBpbm5lciBjYWxsIHdpbGwgbm90IGV4ZWN1dGUgY29tbWFuZHMgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgYnkgc29tZSBvdXRlclxyXG4gICAgLy8gY2FsbCB0byB0aGUgbWV0aG9kXHJcblxyXG4gICAgLy8gRmlyc3Qgc3RlcCAtIG1vdmUgYWxsIHJlc3VsdCBjb21tYW5kcyBiZWZvcmUgYW55IGJsb2NraW5nIGNvbW1hbmRzIChRQ1IgIzY5MzQyOClcclxuICAgIC8vIGl0IGNhbid0IGJlIHRoYXQgdGhleSBiZWxvbmcgdG8gdGhlIGJsb2NraW5nIHRhc2suXHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5nZXRTaXplKCk7IGkgPSBpICsgMSkge1xyXG5cclxuICAgICAgY21kID0gdGhpcy5nZXRDbWQoaSkgYXMgSUNsaWVudFRhcmdldGVkQ29tbWFuZDtcclxuICAgICAgaWYgKGNtZC5Jc0Jsb2NraW5nICYmIGZpcnN0QmxvY2tpbmcgPT09IC0xKVxyXG4gICAgICAgIGZpcnN0QmxvY2tpbmcgPSBpO1xyXG4gICAgICBlbHNlIGlmIChjbWQgaW5zdGFuY2VvZiBSZXN1bHRDb21tYW5kICYmIGZpcnN0QmxvY2tpbmcgIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5fY21kcy5JbnNlcnQoZmlyc3RCbG9ja2luZywgY21kKTtcclxuICAgICAgICB0aGlzLl9jbWRzLlJlbW92ZUF0KGkgKyAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gc2V0IHRoZSBmcmFtZSBmb3IgY29tbWFuZHMgd2hpY2ggaGFzIG5vIGZyYW1lIHlldFxyXG4gICAgZm9yIChpID0gMDsgaSA8IHRoaXMuZ2V0U2l6ZSgpOyBpID0gaSArIDEpIHtcclxuXHJcbiAgICAgIGNtZCA9IHRoaXMuZ2V0Q21kKGkpIGFzIElDbGllbnRUYXJnZXRlZENvbW1hbmQ7XHJcbiAgICAgIGNtZC5GcmFtZSA9IGN1cnJGcmFtZTtcclxuXHJcbiAgICAgIC8vIElmIGEgY29tbWFuZCBibG9ja3MgdGhlIGNhbGxlciwgZm9sbG93aW5nIGNvbW1hbmRzIGFyZSBtb3ZlZCB0b1xyXG4gICAgICAvLyB0aGUgbmV4dCBhY3RpdmUgTUdkYXRhLCBzbyB0aGV5IHdpbGwgYmUgZXhlY3V0ZWQgKFFDUiAjNDM4Mzg3KVxyXG4gICAgICBpZiAoY21kLklzQmxvY2tpbmcpIHtcclxuICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IHRoaXMuZ2V0U2l6ZSgpOyBqID0gaiArIDEpXHJcbiAgICAgICAgICBHbG9iYWxDb21tYW5kc01hbmFnZXIuSW5zdGFuY2UuYWRkVW5mcmFtZWRDbWQodGhpcy5nZXRDbWQoaikpO1xyXG5cclxuICAgICAgICB0aGlzLl9jbWRzLlNldFNpemUoaSArIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd2hpbGUgKHRoaXMuZ2V0U2l6ZSgpID4gMCkge1xyXG4gICAgICAvLyBUT0RPOiBDaGVjayAnYXMnIGZvciBJbnRlcmZhY2UgaW4gdHlwZXNjcmlwdFxyXG4gICAgICBjb25zdCB0bXBDbWQgPSB0aGlzLmV4dHJhY3RDbWQoY3VyckZyYW1lKTtcclxuICAgICAgaWYgKHRtcENtZCBpbnN0YW5jZW9mIElDbGllbnRUYXJnZXRlZENvbW1hbmQpXHJcbiAgICAgICAgY21kID0gdG1wQ21kO1xyXG5cclxuICAgICAgaWYgKGNtZCAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGNtZC5TaG91bGRFeGVjdXRlKSB7XHJcbiAgICAgICAgICBhd2FpdCBjbWQuRXhlY3V0ZShyZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIEdsb2JhbENvbW1hbmRzTWFuYWdlci5JbnN0YW5jZS5hZGRDb21tYW5kc0V4ZWN1dGVkQWZ0ZXJUYXNrU3RhcnRlZChjbWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgbmV4dCBjb21tYW5kIHRvIGV4ZWN1dGUgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBzdWNoIGNvbW1hbmRcclxuICAvLy8gICB0aGUgYWJvcnQgY29tbWFuZHMgYXJlIHJldHVybmVkIGZpcnN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZyYW1lXCI+dGhlIGZyYW1lIGZyb20gd2hpY2ggdG8gZXh0cmFjdCBhIGNvbW1hbmQgPC9wYXJhbT5cclxuICBwcml2YXRlIGV4dHJhY3RDbWQoZnJhbWU6IG51bWJlcik6IElDbGllbnRDb21tYW5kIHtcclxuICAgIGxldCBzaXplOiBudW1iZXIgPSB0aGlzLmdldFNpemUoKTtcclxuICAgIGxldCBjbWQ6IElDbGllbnRUYXJnZXRlZENvbW1hbmQgPSBudWxsO1xyXG4gICAgbGV0IHZlcmlmeUNtZDogSUNsaWVudFRhcmdldGVkQ29tbWFuZCA9IG51bGw7XHJcbiAgICBsZXQgdmVyaWZ5SW5kZXg6IG51bWJlcjtcclxuICAgIGxldCB2ZXJpZnlUYXNrOiBUYXNrID0gbnVsbDtcclxuICAgIGxldCBhYm9ydFRhc2s6IFRhc2sgPSBudWxsO1xyXG4gICAgbGV0IHN0YXJ0SXRlcmF0aW9uSWR4OiBudW1iZXI7XHJcbiAgICBsZXQgdGlkOiBzdHJpbmc7XHJcblxyXG4gICAgaWYgKHNpemUgPT09IDApXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLl9pdGVyYXRpb25JZHggPj0gc2l6ZSlcclxuICAgICAgdGhpcy5faXRlcmF0aW9uSWR4ID0gMDtcclxuXHJcbiAgICBzdGFydEl0ZXJhdGlvbklkeCA9IHRoaXMuX2l0ZXJhdGlvbklkeDtcclxuXHJcbiAgICAvLyB0cnkgdG8gZmluZCBhbiBBQk9SVCBjb21tYW5kIGFuZCByZXR1cm4gaXRcclxuICAgIGZvciAoOyB0aGlzLl9pdGVyYXRpb25JZHggPCBzaXplOyB0aGlzLl9pdGVyYXRpb25JZHgrKykge1xyXG4gICAgICBjbWQgPSAoKHRoaXMuZ2V0Q21kKHRoaXMuX2l0ZXJhdGlvbklkeCkgaW5zdGFuY2VvZiBBYm9ydENvbW1hbmQpID8gPEFib3J0Q29tbWFuZD50aGlzLmdldENtZCh0aGlzLl9pdGVyYXRpb25JZHgpIDogbnVsbCk7XHJcbiAgICAgIGlmIChjbWQgIT0gbnVsbCAmJiAhY21kLlRhc2tUYWcuc3RhcnRzV2l0aChcIi1cIikgJiYgY21kLkZyYW1lID09PSBmcmFtZSkge1xyXG4gICAgICAgIC8vIGlmIGFuIGFib3J0IGNvbW1hbmQgd2FzIGZvdW5kLCBleGVjdXRlIGFsbCBwcmV2aW91cyB2ZXJpZnkgY29tbWFuZHMgb2YgdGhlIHRhc2sgb3IgaXRzJyBzdWItdGFza3NcclxuICAgICAgICBmb3IgKHZlcmlmeUluZGV4ID0gMDsgdmVyaWZ5SW5kZXggPCB0aGlzLl9pdGVyYXRpb25JZHg7IHZlcmlmeUluZGV4KyspIHtcclxuICAgICAgICAgIHZlcmlmeUNtZCA9ICgodGhpcy5nZXRDbWQodmVyaWZ5SW5kZXgpIGluc3RhbmNlb2YgVmVyaWZ5Q29tbWFuZCkgPyA8VmVyaWZ5Q29tbWFuZD50aGlzLmdldENtZCh2ZXJpZnlJbmRleCkgOiBudWxsKTtcclxuICAgICAgICAgIGlmICh2ZXJpZnlDbWQgIT0gbnVsbCAmJiB2ZXJpZnlDbWQuRnJhbWUgPT09IGZyYW1lKSB7XHJcbiAgICAgICAgICAgIHZlcmlmeVRhc2sgPSA8VGFzaz5BY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuR2V0VGFza0J5SUQodmVyaWZ5Q21kLlRhc2tUYWcpO1xyXG4gICAgICAgICAgICBhYm9ydFRhc2sgPSA8VGFzaz5BY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuR2V0VGFza0J5SUQoY21kLlRhc2tUYWcpO1xyXG5cclxuICAgICAgICAgICAgLy8gU29tZXRpbWVzIHRoZSB0YXNrIHdoaWNoIGlzc3VlZCB0aGUgdmVyaWZ5IGlzIG5vdCBrbm93biB0byB0aGUgY2xpZW50IChlLmcuIGEgYmF0Y2ggdGFzaykuXHJcbiAgICAgICAgICAgIGlmICh2ZXJpZnlUYXNrICE9IG51bGwgJiYgdmVyaWZ5VGFzay5pc0Rlc2NlbmRlbnRPZihhYm9ydFRhc2spKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fY21kcy5SZW1vdmVBdCh2ZXJpZnlJbmRleCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5faXRlcmF0aW9uSWR4LS07XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmeUNtZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9jbWRzLlJlbW92ZUF0KHRoaXMuX2l0ZXJhdGlvbklkeCk7XHJcblxyXG4gICAgICAgIC8vIGZvciBhbiBhYm9ydCBDTUQgb2YgdGFzayBcInRpZFwiLCB0aGUgc2VydmVyIG1pZ2h0IHNlbmQgYW5vdGhlciBhYm9ydCBDTUQgZm9yIHRhc2tcclxuICAgICAgICAvLyBcIi10aWRcIi4gV2Ugc2hvdWxkIGNvbWJpbmUgdGhlbSBhbmQgZ2V0IHJpZCBvZiB0aGUgc2Vjb25kIENNRC5cclxuICAgICAgICBzaXplID0gdGhpcy5nZXRTaXplKCk7XHJcbiAgICAgICAgZm9yIChzdGFydEl0ZXJhdGlvbklkeCA9IDA7IHN0YXJ0SXRlcmF0aW9uSWR4IDwgc2l6ZTsgc3RhcnRJdGVyYXRpb25JZHgrKykge1xyXG4gICAgICAgICAgdGlkID0gKDxJQ2xpZW50VGFyZ2V0ZWRDb21tYW5kPnRoaXMuZ2V0Q21kKHN0YXJ0SXRlcmF0aW9uSWR4KSkuVGFza1RhZztcclxuICAgICAgICAgIGlmICh0aWQgIT0gbnVsbCAmJiB0aWQuc3Vic3RyKDEpID09PSBjbWQuVGFza1RhZykge1xyXG4gICAgICAgICAgICB0aGlzLl9jbWRzLlJlbW92ZUF0KHN0YXJ0SXRlcmF0aW9uSWR4KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY21kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYXQgdGhpcyBzdGFnZSBubyBBQk9SVCBjb21tYW5kIHdhcyBmb3VuZCBpbiB0aGUgdGFibGVcclxuXHJcbiAgICBmb3IgKHZlcmlmeUluZGV4ID0gMDsgdmVyaWZ5SW5kZXggPCBzaXplOyB2ZXJpZnlJbmRleCsrKSB7XHJcbiAgICAgIHZlcmlmeUNtZCA9ICgodGhpcy5nZXRDbWQodmVyaWZ5SW5kZXgpIGluc3RhbmNlb2YgVmVyaWZ5Q29tbWFuZCkgPyA8VmVyaWZ5Q29tbWFuZD50aGlzLmdldENtZCh2ZXJpZnlJbmRleCkgOiBudWxsKTtcclxuICAgICAgaWYgKHZlcmlmeUNtZCAhPSBudWxsICYmIHZlcmlmeUNtZC5GcmFtZSA9PT0gZnJhbWUgJiZcclxuICAgICAgICBBY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuR2V0VGFza0J5SUQodmVyaWZ5Q21kLlRhc2tUYWcpICE9IG51bGwpIHtcclxuICAgICAgICB0aGlzLl9jbWRzLlJlbW92ZUF0KHZlcmlmeUluZGV4KTtcclxuICAgICAgICByZXR1cm4gdmVyaWZ5Q21kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYXQgdGhpcyBzdGFnZSBubyBWRVJJRlkgY29tbWFuZCB3YXMgZm91bmQgaW4gdGhlIHRhYmxlXHJcblxyXG4gICAgZm9yICh0aGlzLl9pdGVyYXRpb25JZHggPSAwOyB0aGlzLl9pdGVyYXRpb25JZHggPCBzaXplOyB0aGlzLl9pdGVyYXRpb25JZHgrKykge1xyXG4gICAgICBjbWQgPSB0aGlzLmdldENtZCh0aGlzLl9pdGVyYXRpb25JZHgpIGFzIElDbGllbnRUYXJnZXRlZENvbW1hbmQ7XHJcbiAgICAgIGlmIChjbWQuRnJhbWUgPT09IGZyYW1lKSB7XHJcbiAgICAgICAgdGhpcy5fY21kcy5SZW1vdmVBdCh0aGlzLl9pdGVyYXRpb25JZHgpO1xyXG4gICAgICAgIHJldHVybiBjbWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG5cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBjb21tYW5kIGJ5IGl0cyBpbmRleCBpbiB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaWR4XCI+dGhlIGluZGV4IG9mIHRoZSByZXF1ZXN0ZWQgY29tbWFuZDwvcGFyYW0+XHJcbiAgZ2V0Q21kKGlkeDogbnVtYmVyKTogSUNsaWVudENvbW1hbmQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NtZHMuZ2V0X0l0ZW0oaWR4KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBidWlsZCB0aGUgWE1MIHN0cnVjdHVyZSBvZiB0aGUgY29tbWFuZHMgYW5kIENMRUFSIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYnVpbGRYTUwobWVzc2FnZTogU3RyaW5nQnVpbGRlcik6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuX2NtZHMubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgbGV0IGNtZDogQ2xpZW50T3JpZ2luYXRlZENvbW1hbmQgPSA8Q2xpZW50T3JpZ2luYXRlZENvbW1hbmQ+dGhpcy5fY21kcy5nZXRfSXRlbShpKTtcclxuICAgICAgbGV0IHRlbXA6IFJlZlBhcmFtPGJvb2xlYW4+ID0gbmV3IFJlZlBhcmFtKGZhbHNlKTtcclxuICAgICAgbWVzc2FnZS5BcHBlbmQoQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRTZXJpYWxpemVyLlNlcmlhbGl6ZShjbWQsIEFjY2Vzc0hlbHBlci5tZ0RhdGFUYWJsZS5nZXRDdXJyTUdEYXRhKCkpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYWRkIGEgY29tbWFuZCB0byB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY21kXCI+YSBjb21tYW5kIHRvIHRvIGFkZCB0byB0aGUgdGFibGU8L3BhcmFtPlxyXG4gIEFkZChjbWQ6IElDbGllbnRDb21tYW5kKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jbWRzLnB1c2goY21kKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDbGVhciBvdXQgdGhlIGNvbW1hbmQgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIENsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY21kcy5DbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBleHRyYWN0IGFuZCByZW1vdmUgYSBjb21tYW5kIGZyb20gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb21tYW5kSW5kZXhcIj4gaW5kZXggb2YgY29tbWFuZCBpbiB0aGUgdGFibGU8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgRXh0cmFjdENvbW1hbmQoY29tbWFuZEluZGV4OiBudW1iZXIpOiBJQ2xpZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgY29tbWFuZDogSUNsaWVudENvbW1hbmQgPSB0aGlzLmdldENtZChjb21tYW5kSW5kZXgpO1xyXG4gICAgdGhpcy5fY21kcy5SZW1vdmVBdChjb21tYW5kSW5kZXgpO1xyXG4gICAgcmV0dXJuIGNvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY2xlYXIgYWxsIHRoZSBjb21tYW5kcyBmcm9tIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jbWRzLkNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGNvbW1hbmRzIGluIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0U2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NtZHMubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,72 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { MsgInterface } from '@magic-xpa/utils';
3
- import { Commands, Manager, Styles } from '@magic-xpa/gui';
4
- import { RCTimer } from './tasks/RCTimer';
5
- import { LanguageData } from './env/LanguageData';
6
- import { AccessHelper } from './AccessHelper';
7
- export class GUIManager {
8
- static get Instance() {
9
- if (GUIManager._instance === null)
10
- GUIManager._instance = new GUIManager();
11
- return GUIManager._instance;
12
- }
13
- execGuiCommandQueue() {
14
- Commands.beginInvoke();
15
- }
16
- startTimer(mgData, seconds, isIdleTimer) {
17
- if (seconds > 0) {
18
- let objRCTimer = new RCTimer(mgData, seconds * 1000, isIdleTimer);
19
- (objRCTimer).Start();
20
- Commands.beginInvoke();
21
- }
22
- }
23
- stopTimer(mgData, seconds, isIdleTimer) {
24
- if (seconds > 0)
25
- RCTimer.StopTimer(mgData, seconds * 1000, isIdleTimer);
26
- }
27
- abort(form) {
28
- if (arguments.length === 1)
29
- this.abort_0(form);
30
- else
31
- this.abort_1();
32
- }
33
- abort_0(form) {
34
- if (form !== null) {
35
- let mainProgByCtlIdx = AccessHelper.mgDataTable.GetMainProgByCtlIdx(-1, form.getTask().getCtlIdx());
36
- Manager.Abort(form);
37
- }
38
- }
39
- abort_1() {
40
- for (let i = AccessHelper.mgDataTable.getSize(); i > 0; i--) {
41
- const task = AccessHelper.mgDataTable.getMGData(i - 1).getFirstTask();
42
- if (task !== null)
43
- this.abort(task.Form);
44
- }
45
- }
46
- MessageBox(title, msg, style) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- yield AccessHelper.eventsManager.CheckAndShowSpinner(false);
49
- return yield Commands.messageBox(title, msg, style);
50
- });
51
- }
52
- writeToMessageBox(titleId, msgId, style) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- let title = LanguageData.Instance.getConstMessage(titleId);
55
- let msg = LanguageData.Instance.getConstMessage(msgId);
56
- return yield this.MessageBox(title, msg, style);
57
- });
58
- }
59
- confirm(msgId, style) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- return yield this.writeToMessageBox(MsgInterface.CONFIRM_STR_WINDOW_TITLE, msgId, style);
62
- });
63
- }
64
- confirm_bool(msgId) {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- let retResult = yield this.confirm(msgId, Styles.MSGBOX_BUTTON_OK_CANCEL);
67
- return retResult == Styles.MSGBOX_RESULT_OK;
68
- });
69
- }
70
- }
71
- GUIManager._instance = null;
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR1VJTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvR1VJTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUd4QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzVDLE1BQU0sT0FBTyxVQUFVO0lBS3JCLE1BQU0sS0FBSyxRQUFRO1FBQ2pCLElBQUksVUFBVSxDQUFDLFNBQVMsS0FBSyxJQUFJO1lBQy9CLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMxQyxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQU1ELG1CQUFtQjtRQUNqQixRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQVFELFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLFdBQW9CO1FBQzlELElBQUksT0FBTyxHQUFHLENBQUMsRUFBRTtZQUVmLElBQUksVUFBVSxHQUFZLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzNFLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFckIsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQVFELFNBQVMsQ0FBQyxNQUFjLEVBQUUsT0FBZSxFQUFFLFdBQW9CO1FBQzdELElBQUksT0FBTyxHQUFHLENBQUM7WUFFYixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLEdBQUcsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFJRCxLQUFLLENBQUMsSUFBYTtRQUNqQixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDOztZQUVuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQU1PLE9BQU8sQ0FBQyxJQUFZO1FBQzFCLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUNqQixJQUFJLGdCQUFnQixHQUFlLFlBQVksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDaEgsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFLTyxPQUFPO1FBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxJQUFJLEdBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZFLElBQUcsSUFBSSxLQUFLLElBQUk7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBU0ssVUFBVSxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsS0FBYTs7WUFFeEQsTUFBTSxZQUFZLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTVELE9BQU8sTUFBTSxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEQsQ0FBQztLQUFBO0lBU0ssaUJBQWlCLENBQUMsT0FBZSxFQUFFLEtBQWEsRUFBRSxLQUFhOztZQUNuRSxJQUFJLEtBQUssR0FBVyxZQUFZLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuRSxJQUFJLEdBQUcsR0FBVyxZQUFZLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvRCxPQUFPLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xELENBQUM7S0FBQTtJQVNLLE9BQU8sQ0FBQyxLQUFhLEVBQUUsS0FBYzs7WUFFekMsT0FBTyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNGLENBQUM7S0FBQTtJQVFZLFlBQVksQ0FBQyxLQUFhOztZQUNyQyxJQUFJLFNBQVMsR0FBVyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ2xGLE9BQU8sU0FBUyxJQUFZLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUN0RCxDQUFDO0tBQUE7O0FBOUhjLG9CQUFTLEdBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNc2dJbnRlcmZhY2V9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQge0NvbW1hbmRzLCBNYW5hZ2VyLCBTdHlsZXN9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuaW1wb3J0IHtNR0RhdGF9IGZyb20gJy4vdGFza3MvTUdEYXRhJztcclxuaW1wb3J0IHtSQ1RpbWVyfSBmcm9tICcuL3Rhc2tzL1JDVGltZXInO1xyXG5pbXBvcnQge01nRm9ybX0gZnJvbSAnLi9ndWkvTWdGb3JtJztcclxuaW1wb3J0IHtUYXNrfSBmcm9tICcuL3Rhc2tzL1Rhc2snO1xyXG5pbXBvcnQge0xhbmd1YWdlRGF0YX0gZnJvbSAnLi9lbnYvTGFuZ3VhZ2VEYXRhJztcclxuaW1wb3J0IHtBY2Nlc3NIZWxwZXJ9IGZyb20gJy4vQWNjZXNzSGVscGVyJztcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIDwvc3VtbWFyeT5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIEdVSU1hbmFnZXIge1xyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogR1VJTWFuYWdlciA9IG51bGw7IC8vIHRoZSBzaW5nbGUgaW5zdGFuY2Ugb2YgdGhlIEdVSU1hbmFnZXJcclxuXHJcbiAgLy8vICAgc2luZ2xldG9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBzdGF0aWMgZ2V0IEluc3RhbmNlKCk6IEdVSU1hbmFnZXIge1xyXG4gICAgaWYgKEdVSU1hbmFnZXIuX2luc3RhbmNlID09PSBudWxsKVxyXG4gICAgICBHVUlNYW5hZ2VyLl9pbnN0YW5jZSA9IG5ldyBHVUlNYW5hZ2VyKCk7XHJcbiAgICByZXR1cm4gR1VJTWFuYWdlci5faW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGV4ZWN1dGUgdGhlIGNvbW1hbmRzIGluIHRoZSBxdWV1ZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZXhlY0d1aUNvbW1hbmRRdWV1ZSgpOiB2b2lkIHtcclxuICAgIENvbW1hbmRzLmJlZ2luSW52b2tlKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc3RhcnQgYSB0aW1lclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtZ2RcIj4gTWdEYXRhIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzZWNvbmRzXCI+aW50ZXJ2YWwgaW4gZnVsbCBzZWNvbmRzIHRvIGludm9rZSB0aGUgZnVuY3Rpb24gKGZyb20gY3VycmVudCB0aW1lKTwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpc0lkbGVUaW1lclwiPnRydWUgaWYgdGhpcyB0aW1lciBpcyB0aGUgaWRsZSB0aW1lcjwvcGFyYW0+XHJcbiAgc3RhcnRUaW1lcihtZ0RhdGE6IE1HRGF0YSwgc2Vjb25kczogbnVtYmVyLCBpc0lkbGVUaW1lcjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHNlY29uZHMgPiAwKSB7XHJcbiAgICAgIC8vIFJDVGltZXIvTWdUaW1lciB3b3JrcyBvbiBtaWxsaXNlY29uZHMgc28gY29udmVydCBzZWNvbmRzIHRvIG1pbGxpc2Vjb25kc1xyXG4gICAgICBsZXQgb2JqUkNUaW1lcjogUkNUaW1lciA9IG5ldyBSQ1RpbWVyKG1nRGF0YSwgc2Vjb25kcyAqIDEwMDAsIGlzSWRsZVRpbWVyKTtcclxuICAgICAgKG9ialJDVGltZXIpLlN0YXJ0KCk7XHJcbiAgICAgIC8vIGZpeGVkIGJ1ZyAyODQ1NjYsIHdoaWxlIHdlIGhhdmUgY29tbWFuZCBpbiBoZSBxdWV1ZSwgZXhlY3V0ZSB0aGVtXHJcbiAgICAgIENvbW1hbmRzLmJlZ2luSW52b2tlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc3RvcCB0aGUgdGltZXJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiTWdEYXRhXCI+IE1nRGF0YTwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzZWNvbmRzXCI+aW50ZXJ2YWwgaW4gZnVsbCBzZWNvbmRzIHRvIGludm9rZSB0aGUgZnVuY3Rpb24gKGZyb20gY3VycmVudCB0aW1lKTwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpc0lkbGVUaW1lclwiPnRydWUgaWYgdGhpcyB0aW1lciBpcyB0aGUgaWRsZSB0aW1lcjwvcGFyYW0+XHJcbiAgc3RvcFRpbWVyKG1nRGF0YTogTUdEYXRhLCBzZWNvbmRzOiBudW1iZXIsIGlzSWRsZVRpbWVyOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoc2Vjb25kcyA+IDApXHJcbiAgICAvLyBSQ1RpbWVyL01nVGltZXIgd29ya3Mgb24gbWlsbGlzZWNvbmRzIHNvIGNvbnZlcnQgc2Vjb25kcyB0byBtaWxsaXNlY29uZHNcclxuICAgICAgUkNUaW1lci5TdG9wVGltZXIobWdEYXRhLCBzZWNvbmRzICogMTAwMCwgaXNJZGxlVGltZXIpO1xyXG4gIH1cclxuXHJcbiAgYWJvcnQoZm9ybTogTWdGb3JtKTogdm9pZDtcclxuICBhYm9ydCgpOiB2b2lkO1xyXG4gIGFib3J0KGZvcm0/OiBNZ0Zvcm0pOiB2b2lkIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKVxyXG4gICAgICB0aGlzLmFib3J0XzAoZm9ybSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuYWJvcnRfMSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgY2xvc2UgdGhlIHRhc2tcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZm9ybVwiPiA8L3BhcmFtPlxyXG4gIHByaXZhdGUgYWJvcnRfMChmb3JtOiBNZ0Zvcm0pOiB2b2lkIHtcclxuICAgIGlmIChmb3JtICE9PSBudWxsKSB7XHJcbiAgICAgIGxldCBtYWluUHJvZ0J5Q3RsSWR4OiBUYXNrID0gPFRhc2s+QWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLkdldE1haW5Qcm9nQnlDdGxJZHgoLTEsIGZvcm0uZ2V0VGFzaygpLmdldEN0bElkeCgpKTtcclxuICAgICAgTWFuYWdlci5BYm9ydChmb3JtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBwcm9jZXNzIEFCT1JUIGNvbW1hbmQuQ2xvc2UgYWxsIHNoZWxscy4gTGFzdCBzaGVsbCBjbG9zZWQsIHdpbGwgY2xvc2UgdGhlIGRpc3BsYXkuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGFib3J0XzEoKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpID0gQWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLmdldFNpemUoKTsgaSA+IDA7IGktLSkge1xyXG4gICAgICBjb25zdCB0YXNrID0gIEFjY2Vzc0hlbHBlci5tZ0RhdGFUYWJsZS5nZXRNR0RhdGEoaSAtIDEpLmdldEZpcnN0VGFzaygpO1xyXG4gICAgICBpZih0YXNrICE9PSBudWxsKVxyXG4gICAgICAgIHRoaXMuYWJvcnQoPE1nRm9ybT50YXNrLkZvcm0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIE9wZW4gbWVzc2FnZSBib3ggd2l0aCB0aXRsZSBzdHJpbmcgYW5kIG1lc3NhZ2Ugc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRpdGxlXCI+dGl0bGUgb2YgdGhlIG1lc3NhZ2UgYm94PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1zZ1wiPm1lc3NhZ2UgZm9yIHRoZSBtZXNzYWdlIGJveDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdHlsZVwiPnRoZSBzdHlsZSBvZiB0aGUgbWVzc2FnZSBib3ggLS0tIGJ1dHRvbnMsIGljb248L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGJ1dHRvbiBjbGlja2VkIDwvcmV0dXJucz5cclxuICBhc3luYyBNZXNzYWdlQm94KHRpdGxlOiBzdHJpbmcsIG1zZzogc3RyaW5nLCBzdHlsZTogbnVtYmVyKSA6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICAvLyBTdG9wIHRoZSBzcGlubmVyIGJlZm9yZSBzaG93aW5nIHRoZSBtZXNhZ2UgYm94XHJcbiAgICBhd2FpdCBBY2Nlc3NIZWxwZXIuZXZlbnRzTWFuYWdlci5DaGVja0FuZFNob3dTcGlubmVyKGZhbHNlKTtcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgQ29tbWFuZHMubWVzc2FnZUJveCh0aXRsZSwgbXNnLCBzdHlsZSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgT3BlbiBtZXNzYWdlIGJveCB3aXRoIHRpdGxlIGlkIGFuZCBtZXNzYWdlIGlkIHRoYXQgd2lsbCB0YWtlIGZyb20gTUdCQ0wqRU5HLnhtbCAoY3JlYXRlZCBieSBtZ2NvbnN0KVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0aXRsZUlkXCI+bWVzc2FnZSBmcm9tIGZyb20gTUdCQ0wqRU5HLnhtbDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtc2dJZFwiPm1lc3NhZ2UgZnJvbSBmcm9tIE1HQkNMKkVORy54bWw8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3R5bGVcIj50aGUgc3R5bGUgb2YgdGhlIG1lc3NhZ2UgYm94IGNhbiBiZSBmbGFncyBvZiBTdHlsZXMuTVNHQk9YX3h4eCA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gbWVzc2FnZSBib3ggc3R5bGUgZnJvbSBTdHlsZXMuTVNHQk9YX1hYWDwvcmV0dXJucz5cclxuICBhc3luYyB3cml0ZVRvTWVzc2FnZUJveCh0aXRsZUlkOiBzdHJpbmcsIG1zZ0lkOiBzdHJpbmcsIHN0eWxlOiBudW1iZXIpOlByb21pc2U8bnVtYmVyPiB7XHJcbiAgICBsZXQgdGl0bGU6IHN0cmluZyA9IExhbmd1YWdlRGF0YS5JbnN0YW5jZS5nZXRDb25zdE1lc3NhZ2UodGl0bGVJZCk7XHJcbiAgICBsZXQgbXNnOiBzdHJpbmcgPSBMYW5ndWFnZURhdGEuSW5zdGFuY2UuZ2V0Q29uc3RNZXNzYWdlKG1zZ0lkKTtcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5NZXNzYWdlQm94KHRpdGxlLCBtc2csIHN0eWxlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBkaXNwbGF5IGEgTWVzc2FnZSBCb3ggKGNvbmZpcm0pIHdpdGggMiBidXR0b25zIC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibXNnSWRcIj5tZXNzYWdlIG51bWJlciAoZnJvbSBNc2dJbnRlcmZhY2UuamF2YSkgdGhhdCB3aWxsIGJlIGRpc3BsYXkgb24gdGhlIGNvbnRlbnQgb2YgdGhlIE1lc3NhZ2UgQm94IDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzdHlsZVwiPnRoZSBpY29uIGFuZCB0aGUgYnV0dG9uIHRoYXQgd2lsbCBiZSBkaXNwbGF5IG9uIHRoZSBjb25maXJtYXRpb24gYm94IDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgYnV0dG9uIHRoYXQgd2FzIHByZXNzZWQgKFN0eWxlcy5NU0dCT1hfQlVUVE9OX3h4eCkgPC9yZXR1cm5zPlxyXG4gIGFzeW5jIGNvbmZpcm0obXNnSWQ6IHN0cmluZywgc3R5bGU6IG51bWJlcik6IFByb21pc2U8bnVtYmVyPjtcclxuICBhc3luYyBjb25maXJtKG1zZ0lkOiBzdHJpbmcsIHN0eWxlPzogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy53cml0ZVRvTWVzc2FnZUJveChNc2dJbnRlcmZhY2UuQ09ORklSTV9TVFJfV0lORE9XX1RJVExFLCBtc2dJZCwgc3R5bGUpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGRpc3BsYXkgYSBNZXNzYWdlIEJveCAoY29uZmlybSkgd2l0aCAyIGJ1dHRvbnMgOiB5ZXMgJiBubyBhbmQgaWNvbiBxdWVzdGlvbi5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibXNnSWRcIj5tZXNzYWdlIG51bWJlciAoZnJvbSBNc2dJbnRlcmZhY2UuamF2YSkgdGhhdCB3aWxsIGJlIGRpc3BsYXkgb24gdGhlIGNvbnRlbnQgb2YgdGhlIE1lc3NhZ2UgQm94XHJcbiAgLy8vICAgcmV0dXJuIHRydWUgaWYgdGhlIGJ1dHRvbiBZRVMgd2FzIHByZXNzZWRcclxuICAvLy8gPC9wYXJhbT5cclxuICBwdWJsaWMgYXN5bmMgY29uZmlybV9ib29sKG1zZ0lkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCByZXRSZXN1bHQ6IG51bWJlciA9IGF3YWl0IHRoaXMuY29uZmlybShtc2dJZCwgU3R5bGVzLk1TR0JPWF9CVVRUT05fT0tfQ0FOQ0VMKTtcclxuICAgIHJldHVybiByZXRSZXN1bHQgPT0gPG51bWJlcj5TdHlsZXMuTVNHQk9YX1JFU1VMVF9PSztcclxuICB9XHJcbn1cclxuIl19
@@ -1,44 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { UIBridge } from "@magic-xpa/gui";
3
- import { ClientManager } from "../ClientManager";
4
- export class MagicBridge {
5
- static Initialize(httpClient) {
6
- ClientManager.Main(httpClient);
7
- }
8
- static TerminateMagic() {
9
- return __awaiter(this, void 0, void 0, function* () {
10
- yield ClientManager.StopExecution();
11
- });
12
- }
13
- static registerExecuteCommandsCallback(cb) {
14
- UIBridge.getInstance().registerExecuteCommandsCallback(cb);
15
- }
16
- static registerInteractiveCallback(cb) {
17
- UIBridge.getInstance().registerInteractiveCallback(cb);
18
- }
19
- static insertEvent(guiEvent) {
20
- ClientManager.Instance.AddEvent(guiEvent);
21
- }
22
- static GetControlPictureMask(taskId, controlName) {
23
- return ClientManager.GetControlPictureMask(taskId, controlName);
24
- }
25
- static GetFormattedValue(taskId, controlName, value) {
26
- return ClientManager.GetFormattedValue(taskId, controlName, value);
27
- }
28
- static GetRangedValue(taskId, controlName, value) {
29
- return ClientManager.GetRangedValue(taskId, controlName, value);
30
- }
31
- static ValidateControlValue(taskId, controlName, value) {
32
- return ClientManager.ValidateControlValue(taskId, controlName, value);
33
- }
34
- static GetFldRanges(taskId, controlName) {
35
- return ClientManager.GetFldRanges(taskId, controlName);
36
- }
37
- static TransCacheExists() {
38
- return ClientManager.TransCacheExists();
39
- }
40
- static TerminateContextUsingFetchAPI() {
41
- ClientManager.TerminateContextUsingFetchAPI();
42
- }
43
- }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFnaWNCcmlkZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2JyaWRnZS9NYWdpY0JyaWRnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUkvQyxNQUFNLE9BQU8sV0FBVztJQUV0QixNQUFNLENBQUMsVUFBVSxDQUFDLFVBQXFCO1FBQ3JDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBTyxjQUFjOztZQUN6QixNQUFNLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxDQUFDO0tBQUE7SUFFRCxNQUFNLENBQUMsK0JBQStCLENBQUMsRUFBRTtRQUN2QyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsK0JBQStCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxFQUFFO1FBQ25DLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFtQjtRQUNwQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQWMsRUFBRSxXQUFtQjtRQUM5RCxPQUFPLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFjLEVBQUUsV0FBbUIsRUFBRSxLQUFVO1FBQ3RFLE9BQU8sYUFBYSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBYyxFQUFFLFdBQW1CLEVBQUUsS0FBYTtRQUN0RSxPQUFPLGFBQWEsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBR0QsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQWMsRUFBRSxXQUFtQixFQUFFLEtBQVU7UUFDekUsT0FBTyxhQUFhLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsV0FBbUI7UUFDckQsT0FBTyxhQUFhLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQjtRQUNyQixPQUFPLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNLENBQUMsNkJBQTZCO1FBQ2pDLGFBQWEsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VUlCcmlkZ2V9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQge0NsaWVudE1hbmFnZXJ9IGZyb20gXCIuLi9DbGllbnRNYW5hZ2VyXCI7XHJcbmltcG9ydCB7SUd1aUV2ZW50fSBmcm9tIFwiLi9JR3VpRXZlbnRcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNYWdpY0JyaWRnZSB7XHJcblxyXG4gIHN0YXRpYyBJbml0aWFsaXplKGh0dHBDbGllbnQ6SHR0cENsaWVudCk6IHZvaWQge1xyXG4gICAgQ2xpZW50TWFuYWdlci5NYWluKGh0dHBDbGllbnQpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGFzeW5jIFRlcm1pbmF0ZU1hZ2ljKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgQ2xpZW50TWFuYWdlci5TdG9wRXhlY3V0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVnaXN0ZXJFeGVjdXRlQ29tbWFuZHNDYWxsYmFjayhjYikge1xyXG4gICAgVUlCcmlkZ2UuZ2V0SW5zdGFuY2UoKS5yZWdpc3RlckV4ZWN1dGVDb21tYW5kc0NhbGxiYWNrKGNiKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyByZWdpc3RlckludGVyYWN0aXZlQ2FsbGJhY2soY2IpIHtcclxuICAgIFVJQnJpZGdlLmdldEluc3RhbmNlKCkucmVnaXN0ZXJJbnRlcmFjdGl2ZUNhbGxiYWNrKGNiKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBpbnNlcnRFdmVudChndWlFdmVudDogSUd1aUV2ZW50KTogdm9pZCB7XHJcbiAgICBDbGllbnRNYW5hZ2VyLkluc3RhbmNlLkFkZEV2ZW50KGd1aUV2ZW50KTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBHZXRDb250cm9sUGljdHVyZU1hc2sodGFza0lkOiBzdHJpbmcsIGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgcmV0dXJuIENsaWVudE1hbmFnZXIuR2V0Q29udHJvbFBpY3R1cmVNYXNrKHRhc2tJZCwgY29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIEdldEZvcm1hdHRlZFZhbHVlKHRhc2tJZDogc3RyaW5nLCBjb250cm9sTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBDbGllbnRNYW5hZ2VyLkdldEZvcm1hdHRlZFZhbHVlKHRhc2tJZCwgY29udHJvbE5hbWUsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBHZXRSYW5nZWRWYWx1ZSh0YXNrSWQ6IHN0cmluZywgY29udHJvbE5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gQ2xpZW50TWFuYWdlci5HZXRSYW5nZWRWYWx1ZSh0YXNrSWQsIGNvbnRyb2xOYW1lLCB2YWx1ZSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIFZhbGlkYXRlQ29udHJvbFZhbHVlKHRhc2tJZDogc3RyaW5nLCBjb250cm9sTmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIHJldHVybiBDbGllbnRNYW5hZ2VyLlZhbGlkYXRlQ29udHJvbFZhbHVlKHRhc2tJZCwgY29udHJvbE5hbWUsIHZhbHVlKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBHZXRGbGRSYW5nZXModGFza0lkOiBzdHJpbmcsIGNvbnRyb2xOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIENsaWVudE1hbmFnZXIuR2V0RmxkUmFuZ2VzKHRhc2tJZCwgY29udHJvbE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIFRyYW5zQ2FjaGVFeGlzdHMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gQ2xpZW50TWFuYWdlci5UcmFuc0NhY2hlRXhpc3RzKCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgVGVybWluYXRlQ29udGV4dFVzaW5nRmV0Y2hBUEkoKTogdm9pZCB7XHJcbiAgICAgQ2xpZW50TWFuYWdlci5UZXJtaW5hdGVDb250ZXh0VXNpbmdGZXRjaEFQSSgpO1xyXG4gIH1cclxufVxyXG5cclxuIl19
@@ -1,24 +0,0 @@
1
- import { EventCommand } from './EventCommand';
2
- import { CommandSerializationHelper } from './CommandSerializationHelper';
3
- import { InternalInterface } from '@magic-xpa/utils';
4
- import { ConstInterface } from '../../ConstInterface';
5
- import { NString } from '@magic-xpa/mscorelib';
6
- import { isNullOrUndefined } from "util";
7
- export class BrowserEscEventCommand extends EventCommand {
8
- constructor() {
9
- super(InternalInterface.MG_ACT_BROWSER_ESC);
10
- this.CloseSubformOnly = false;
11
- }
12
- SerializeCommandData() {
13
- let helper = new CommandSerializationHelper();
14
- helper.SerializeTaskTag(this.TaskTag);
15
- helper.SerializeMagicEvent(this.MagicEvent);
16
- helper.SerializeAttribute(ConstInterface.MG_ATTR_OBJECT, "1");
17
- helper.SerializeCloseSubformOnly(this.CloseSubformOnly);
18
- return helper.GetString();
19
- }
20
- getCommandInfo() {
21
- return NString.Format('[{0}{1} in {2}]', this.EventDescription, this.CloseSubformOnly ? ' Subform Only' : NString.Empty, isNullOrUndefined(this.Task) ? NString.Empty : this.Task.getTaskInfo());
22
- }
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3NlckVzY0V2ZW50Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQnJvd3NlckVzY0V2ZW50Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU3QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHdkMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFlBQVk7SUFPdEQ7UUFDRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQU45QyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFPbEMsQ0FBQztJQVFELG9CQUFvQjtRQUNsQixJQUFJLE1BQU0sR0FBK0IsSUFBSSwwQkFBMEIsRUFBRSxDQUFDO1FBRTFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFeEQsT0FBTyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQ0gsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFDdEQsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDL0csQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudENvbW1hbmR9IGZyb20gJy4vRXZlbnRDb21tYW5kJztcclxuaW1wb3J0IHtDb21tYW5kU2VyaWFsaXphdGlvbkhlbHBlcn0gZnJvbSAnLi9Db21tYW5kU2VyaWFsaXphdGlvbkhlbHBlcic7XHJcbmltcG9ydCB7SW50ZXJuYWxJbnRlcmZhY2V9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQge0NvbnN0SW50ZXJmYWNlfSBmcm9tICcuLi8uLi9Db25zdEludGVyZmFjZSc7XHJcbmltcG9ydCB7TlN0cmluZ30gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQge0lDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvfSBmcm9tICcuLi9JQ2xpZW50VG9TZXJ2ZXJDb21tYW5kSW5mbyc7XHJcbmltcG9ydCB7aXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCJ1dGlsXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEJyb3dzZXJFc2NFdmVudENvbW1hbmQgZXh0ZW5kcyBFdmVudENvbW1hbmQgaW1wbGVtZW50cyBJQ2xpZW50VG9TZXJ2ZXJDb21tYW5kSW5mbyB7XHJcblxyXG4gIENsb3NlU3ViZm9ybU9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9CUk9XU0VSX0VTQyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaGFzQ2hpbGRFbGVtZW50c1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBTZXJpYWxpemVDb21tYW5kRGF0YSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGhlbHBlcjogQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIgPSBuZXcgQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIoKTtcclxuXHJcbiAgICBoZWxwZXIuU2VyaWFsaXplVGFza1RhZyh0aGlzLlRhc2tUYWcpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZU1hZ2ljRXZlbnQodGhpcy5NYWdpY0V2ZW50KTtcclxuICAgIGhlbHBlci5TZXJpYWxpemVBdHRyaWJ1dGUoQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9PQkpFQ1QsIFwiMVwiKTtcclxuICAgIGhlbHBlci5TZXJpYWxpemVDbG9zZVN1YmZvcm1Pbmx5KHRoaXMuQ2xvc2VTdWJmb3JtT25seSk7XHJcblxyXG4gICAgcmV0dXJuIGhlbHBlci5HZXRTdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIGdldENvbW1hbmRJbmZvKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTlN0cmluZy5Gb3JtYXQoJ1t7MH17MX0gaW4gezJ9XSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHRoaXMuRXZlbnREZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgdGhpcy5DbG9zZVN1YmZvcm1Pbmx5ID8gJyBTdWJmb3JtIE9ubHknIDogTlN0cmluZy5FbXB0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuVGFzaykgPyBOU3RyaW5nLkVtcHR5IDogdGhpcy5UYXNrLmdldFRhc2tJbmZvKCkpO1xyXG4gIH1cclxufVxyXG4iXX0=