@magic-xpa/engine 4.1100.0-dev4110.25 → 4.1100.0-dev4110.250

Sign up to get free protection for your applications and to get access to all the features.
Files changed (521) hide show
  1. package/{esm2020 → esm2022}/index.mjs +188 -188
  2. package/{esm2020 → esm2022}/magic-xpa-engine.mjs +1 -1
  3. package/esm2022/src/AccessHelper.mjs +15 -0
  4. package/esm2022/src/ClientManager.mjs +416 -0
  5. package/esm2022/src/CommandsProcessorBase.mjs +56 -0
  6. package/esm2022/src/CommandsProcessorManager.mjs +26 -0
  7. package/esm2022/src/CommandsTable.mjs +162 -0
  8. package/esm2022/src/ConstInterface.mjs +517 -0
  9. package/{esm2020 → esm2022}/src/CurrentClientVersion.mjs +2 -2
  10. package/esm2022/src/FlowMonitorInterface.mjs +16 -0
  11. package/esm2022/src/GUIManager.mjs +62 -0
  12. package/esm2022/src/GlobalCommandsManager.mjs +34 -0
  13. package/esm2022/src/GuiEventsProcessor.mjs +156 -0
  14. package/{esm2020 → esm2022}/src/ICommandsTable.mjs +1 -1
  15. package/esm2022/src/ServerConfig.mjs +122 -0
  16. package/{esm2020 → esm2022}/src/bridge/IGuiEvent.mjs +19 -19
  17. package/esm2022/src/bridge/MagicBridge.mjs +41 -0
  18. package/esm2022/src/commands/ClientOriginatedCommandTaskTag.mjs +12 -0
  19. package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs +8 -8
  20. package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs +9 -9
  21. package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs +9 -9
  22. package/esm2022/src/commands/ClientToServer/BrowserEscEventCommand.mjs +26 -0
  23. package/{esm2020 → esm2022}/src/commands/ClientToServer/ClientOriginatedCommand.mjs +14 -14
  24. package/esm2022/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +60 -0
  25. package/esm2022/src/commands/ClientToServer/ColumnSortEventCommand.mjs +29 -0
  26. package/esm2022/src/commands/ClientToServer/CommandFactory.mjs +261 -0
  27. package/esm2022/src/commands/ClientToServer/CommandSerializationHelper.mjs +67 -0
  28. package/esm2022/src/commands/ClientToServer/ComputeEventCommand.mjs +26 -0
  29. package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +24 -21
  30. package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +23 -20
  31. package/{esm2020 → esm2022}/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs +8 -8
  32. package/esm2022/src/commands/ClientToServer/DataViewOutputCommand.mjs +13 -0
  33. package/{esm2020 → esm2022}/src/commands/ClientToServer/DataviewCommand.mjs +44 -44
  34. package/esm2022/src/commands/ClientToServer/EvaluateCommand.mjs +40 -0
  35. package/{esm2020 → esm2022}/src/commands/ClientToServer/EventCommand.mjs +43 -40
  36. package/esm2022/src/commands/ClientToServer/ExecOperCommand.mjs +70 -0
  37. package/esm2022/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +25 -0
  38. package/{esm2020 → esm2022}/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs +10 -10
  39. package/{esm2020 → esm2022}/src/commands/ClientToServer/ICommandTaskTag.mjs +1 -1
  40. package/esm2022/src/commands/ClientToServer/IndexChangeEventCommand.mjs +24 -0
  41. package/esm2022/src/commands/ClientToServer/IniputForceWriteCommand.mjs +26 -0
  42. package/{esm2020 → esm2022}/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +26 -23
  43. package/{esm2020 → esm2022}/src/commands/ClientToServer/QueryCommand.mjs +20 -20
  44. package/esm2022/src/commands/ClientToServer/RecomputeCommand.mjs +30 -0
  45. package/esm2022/src/commands/ClientToServer/RefreshEventCommand.mjs +30 -0
  46. package/esm2022/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +27 -0
  47. package/esm2022/src/commands/ClientToServer/RollbackEventCommand.mjs +43 -0
  48. package/esm2022/src/commands/ClientToServer/SelectProgramCommand.mjs +19 -0
  49. package/{esm2020 → esm2022}/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs +9 -9
  50. package/esm2022/src/commands/ClientToServer/SubformOpenEventCommand.mjs +24 -0
  51. package/esm2022/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +27 -0
  52. package/esm2022/src/commands/ClientToServer/TransactionCommand.mjs +34 -0
  53. package/{esm2020 → esm2022}/src/commands/ClientToServer/UnloadCommand.mjs +18 -15
  54. package/esm2022/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +18 -0
  55. package/esm2022/src/commands/DataViewCommandBase.mjs +8 -0
  56. package/{esm2020 → esm2022}/src/commands/IClientCommand.mjs +1 -1
  57. package/esm2022/src/commands/IClientTargetedCommand.mjs +13 -0
  58. package/{esm2020 → esm2022}/src/commands/IClientToServerCommandInfo.mjs +2 -2
  59. package/esm2022/src/commands/ServerToClient/AbortCommand.mjs +65 -0
  60. package/{esm2020 → esm2022}/src/commands/ServerToClient/AddLocateCommand.mjs +21 -21
  61. package/esm2022/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
  62. package/esm2022/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
  63. package/esm2022/src/commands/ServerToClient/ClientRefreshCommand.mjs +25 -0
  64. package/esm2022/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +24 -0
  65. package/esm2022/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
  66. package/esm2022/src/commands/ServerToClient/OpenURLCommand.mjs +221 -0
  67. package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetLocateCommand.mjs +14 -14
  68. package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetRangeCommand.mjs +14 -14
  69. package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetSortCommand.mjs +14 -14
  70. package/esm2022/src/commands/ServerToClient/ResultCommand.mjs +37 -0
  71. package/esm2022/src/commands/ServerToClient/VerifyCommand.mjs +83 -0
  72. package/esm2022/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +132 -0
  73. package/{esm2020 → esm2022}/src/communications/IConnectionStateManager.mjs +1 -1
  74. package/esm2022/src/communications/InteractiveCommunicationsFailureHandler.mjs +15 -0
  75. package/{esm2020 → esm2022}/src/data/DataSourceIdKey.mjs +2 -2
  76. package/esm2022/src/data/DataView.mjs +1613 -0
  77. package/{esm2020 → esm2022}/src/data/DataViewBase.mjs +3 -3
  78. package/esm2022/src/data/DataviewManager.mjs +28 -0
  79. package/esm2022/src/data/DataviewManagerBase.mjs +15 -0
  80. package/esm2022/src/data/DvCache.mjs +67 -0
  81. package/esm2022/src/data/Field.mjs +646 -0
  82. package/esm2022/src/data/FieldBase.mjs +15 -0
  83. package/esm2022/src/data/FieldsTable.mjs +103 -0
  84. package/{esm2020 → esm2022}/src/data/IRecordsTable.mjs +1 -1
  85. package/esm2022/src/data/Key.mjs +88 -0
  86. package/esm2022/src/data/Record.mjs +880 -0
  87. package/{esm2020 → esm2022}/src/data/RecordOutOfDataViewException.mjs +15 -15
  88. package/esm2022/src/data/RecordsTable.mjs +267 -0
  89. package/esm2022/src/data/TaskTransactionManager.mjs +107 -0
  90. package/esm2022/src/data/XMLBasedDcValuesBuilder.mjs +74 -0
  91. package/{esm2020 → esm2022}/src/enums.mjs +23 -23
  92. package/esm2022/src/env/EnvVariablesTable.mjs +340 -0
  93. package/esm2022/src/env/Environment.mjs +487 -0
  94. package/{esm2020 → esm2022}/src/env/ILanguageData.mjs +1 -1
  95. package/esm2022/src/env/LanguageData.mjs +227 -0
  96. package/esm2022/src/env/MirrorString.mjs +65 -0
  97. package/esm2022/src/event/ActionManager.mjs +91 -0
  98. package/esm2022/src/event/Event.mjs +1333 -0
  99. package/esm2022/src/event/EventHandler.mjs +766 -0
  100. package/esm2022/src/event/EventHandlerPosition.mjs +204 -0
  101. package/esm2022/src/event/EventsManager.mjs +2988 -0
  102. package/{esm2020 → esm2022}/src/event/IEventsManager.mjs +6 -6
  103. package/esm2022/src/event/RunTimeEvent.mjs +399 -0
  104. package/{esm2020 → esm2022}/src/event/RunTimeEventBase.mjs +3 -3
  105. package/esm2022/src/event/UserEventsTable.mjs +47 -0
  106. package/esm2022/src/exp/ExpTable.mjs +57 -0
  107. package/esm2022/src/exp/Expression.mjs +200 -0
  108. package/esm2022/src/exp/ExpressionDict.mjs +727 -0
  109. package/esm2022/src/exp/ExpressionEvaluator.mjs +4206 -0
  110. package/esm2022/src/exp/ExpressionLocalJpn.mjs +314 -0
  111. package/esm2022/src/exp/GlobalParamsTable.mjs +85 -0
  112. package/esm2022/src/exp/YesNoExp.mjs +36 -0
  113. package/esm2022/src/gui/CreatedFormVector.mjs +23 -0
  114. package/esm2022/src/gui/FormsTable.mjs +66 -0
  115. package/esm2022/src/gui/MgControl.mjs +363 -0
  116. package/esm2022/src/gui/MgForm.mjs +1224 -0
  117. package/esm2022/src/http/HttpManager.mjs +97 -0
  118. package/esm2022/src/http/client/HttpClientAsync.mjs +68 -0
  119. package/esm2022/src/http/client/HttpClientBase.mjs +132 -0
  120. package/esm2022/src/http/client/HttpClientEvents.mjs +39 -0
  121. package/esm2022/src/http/client/HttpClientSync.mjs +42 -0
  122. package/esm2022/src/http/client/HttpUtility.mjs +84 -0
  123. package/{esm2020 → esm2022}/src/http/client/ICommunicationsFailureHandler.mjs +1 -1
  124. package/esm2022/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
  125. package/esm2022/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
  126. package/esm2022/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
  127. package/esm2022/src/remote/RemoteCommandsProcessor.mjs +883 -0
  128. package/esm2022/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
  129. package/esm2022/src/remote/RemoteDataViewCommandBase.mjs +24 -0
  130. package/esm2022/src/remote/RemoteDataViewCommandFactory.mjs +61 -0
  131. package/{esm2020 → esm2022}/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +15 -15
  132. package/{esm2020 → esm2022}/src/remote/RemoteDataviewManager.mjs +17 -17
  133. package/{esm2020 → esm2022}/src/remote/RemoteInitDataViewCommand.mjs +10 -10
  134. package/esm2022/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
  135. package/{esm2020 → esm2022}/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +12 -12
  136. package/esm2022/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
  137. package/esm2022/src/remote/ServerError.mjs +40 -0
  138. package/esm2022/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +20 -0
  139. package/esm2022/src/rt/Argument.mjs +265 -0
  140. package/esm2022/src/rt/ArgumentsList.mjs +103 -0
  141. package/esm2022/src/rt/Boundary.mjs +152 -0
  142. package/esm2022/src/rt/CompMainPrgTable.mjs +63 -0
  143. package/{esm2020 → esm2022}/src/rt/DataviewHeaderBase.mjs +98 -96
  144. package/{esm2020 → esm2022}/src/rt/DataviewHeaderFactory.mjs +6 -6
  145. package/esm2022/src/rt/DataviewHeaders.mjs +53 -0
  146. package/esm2022/src/rt/DataviewHeadersSaxHandler.mjs +38 -0
  147. package/esm2022/src/rt/ExecutionStack.mjs +94 -0
  148. package/{esm2020 → esm2022}/src/rt/ExecutionStackEntry.mjs +17 -17
  149. package/esm2022/src/rt/HandlersTable.mjs +96 -0
  150. package/{esm2020 → esm2022}/src/rt/IDataSourceViewDefinition.mjs +1 -1
  151. package/{esm2020 → esm2022}/src/rt/IDataviewHeader.mjs +1 -1
  152. package/{esm2020 → esm2022}/src/rt/IResultValue.mjs +1 -1
  153. package/esm2022/src/rt/LastFocusedManager.mjs +65 -0
  154. package/esm2022/src/rt/Operation.mjs +735 -0
  155. package/esm2022/src/rt/OperationTable.mjs +67 -0
  156. package/esm2022/src/rt/Recompute.mjs +355 -0
  157. package/esm2022/src/rt/RecomputeTable.mjs +63 -0
  158. package/esm2022/src/rt/RemoteDataviewHeader.mjs +108 -0
  159. package/esm2022/src/rt/ResultValue.mjs +10 -0
  160. package/esm2022/src/rt/TableCache.mjs +177 -0
  161. package/esm2022/src/rt/TableCacheManager.mjs +67 -0
  162. package/esm2022/src/rt/Transaction.mjs +53 -0
  163. package/esm2022/src/security/UserDetails.mjs +71 -0
  164. package/{esm2020 → esm2022}/src/tasks/IMGDataCollection.mjs +1 -1
  165. package/esm2022/src/tasks/MGData.mjs +552 -0
  166. package/esm2022/src/tasks/MGDataCollection.mjs +252 -0
  167. package/esm2022/src/tasks/RCTimer.mjs +63 -0
  168. package/esm2022/src/tasks/RemoteTaskService.mjs +45 -0
  169. package/esm2022/src/tasks/Task.mjs +2499 -0
  170. package/esm2022/src/tasks/TaskBase.mjs +83 -0
  171. package/esm2022/src/tasks/TaskServiceBase.mjs +25 -0
  172. package/esm2022/src/tasks/TasksTable.mjs +80 -0
  173. package/esm2022/src/tasks/sort/Sort.mjs +5 -0
  174. package/esm2022/src/tasks/sort/SortCollection.mjs +67 -0
  175. package/esm2022/src/util/ConstUtils.mjs +14 -0
  176. package/esm2022/src/util/FlowMonitorQueue.mjs +451 -0
  177. package/esm2022/src/util/HeapSort.mjs +70 -0
  178. package/{esm2020 → esm2022}/src/util/IMirrorXML.mjs +1 -1
  179. package/{esm2020 → esm2022}/src/util/IServerConfig.mjs +1 -1
  180. package/{esm2020 → esm2022}/src/util/MgBlockingQueue.mjs +1 -1
  181. package/esm2022/src/util/MgPriorityBlockingQueue.mjs +74 -0
  182. package/esm2022/src/util/MgPriorityQueue.mjs +66 -0
  183. package/{esm2020 → esm2022}/src/util/ParamParseResult.mjs +7 -7
  184. package/esm2022/src/util/PrmMap.mjs +152 -0
  185. package/esm2022/src/util/ReturnResult.mjs +46 -0
  186. package/esm2022/src/util/ReturnResultBase.mjs +18 -0
  187. package/esm2022/src/util/Scrambler.mjs +89 -0
  188. package/esm2022/src/util/UniqueIDUtils.mjs +13 -0
  189. package/esm2022/src/util/cookie.service.mjs +92 -0
  190. package/{fesm2020 → fesm2022}/magic-xpa-engine.mjs +29883 -29693
  191. package/fesm2022/magic-xpa-engine.mjs.map +1 -0
  192. package/index.d.ts +187 -187
  193. package/package.json +8 -14
  194. package/src/AccessHelper.d.ts +20 -20
  195. package/src/ClientManager.d.ts +35 -32
  196. package/src/CommandsProcessorBase.d.ts +23 -23
  197. package/src/CommandsProcessorManager.d.ts +6 -6
  198. package/src/CommandsTable.d.ts +22 -22
  199. package/src/ConstInterface.d.ts +516 -515
  200. package/src/CurrentClientVersion.d.ts +1 -1
  201. package/src/FlowMonitorInterface.d.ts +15 -15
  202. package/src/GUIManager.d.ts +17 -17
  203. package/src/GlobalCommandsManager.d.ts +17 -17
  204. package/src/GuiEventsProcessor.d.ts +24 -24
  205. package/src/ICommandsTable.d.ts +9 -9
  206. package/src/ServerConfig.d.ts +35 -34
  207. package/src/bridge/IGuiEvent.d.ts +19 -19
  208. package/src/bridge/MagicBridge.d.ts +16 -16
  209. package/src/commands/ClientOriginatedCommandTaskTag.d.ts +8 -8
  210. package/src/commands/ClientToServer/AddUserLocateDataViewCommand.d.ts +4 -4
  211. package/src/commands/ClientToServer/AddUserRangeDataviewCommand.d.ts +6 -6
  212. package/src/commands/ClientToServer/AddUserSortDataViewCommand.d.ts +6 -6
  213. package/src/commands/ClientToServer/BrowserEscEventCommand.d.ts +9 -8
  214. package/src/commands/ClientToServer/ClientOriginatedCommand.d.ts +8 -8
  215. package/src/commands/ClientToServer/ClientOriginatedCommandSerializer.d.ts +6 -6
  216. package/src/commands/ClientToServer/ColumnSortEventCommand.d.ts +11 -10
  217. package/src/commands/ClientToServer/CommandFactory.d.ts +64 -64
  218. package/src/commands/ClientToServer/CommandSerializationHelper.d.ts +20 -20
  219. package/src/commands/ClientToServer/ComputeEventCommand.d.ts +9 -8
  220. package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +8 -7
  221. package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +8 -7
  222. package/src/commands/ClientToServer/ControlItemsRefreshCommand.d.ts +6 -6
  223. package/src/commands/ClientToServer/DataViewOutputCommand.d.ts +9 -9
  224. package/src/commands/ClientToServer/DataviewCommand.d.ts +32 -32
  225. package/src/commands/ClientToServer/EvaluateCommand.d.ts +16 -15
  226. package/src/commands/ClientToServer/EventCommand.d.ts +16 -15
  227. package/src/commands/ClientToServer/ExecOperCommand.d.ts +24 -23
  228. package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +9 -8
  229. package/src/commands/ClientToServer/GlobalParamsQueryCommand.d.ts +5 -5
  230. package/src/commands/ClientToServer/ICommandTaskTag.d.ts +3 -3
  231. package/src/commands/ClientToServer/IndexChangeEventCommand.d.ts +9 -8
  232. package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +11 -10
  233. package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +9 -8
  234. package/src/commands/ClientToServer/QueryCommand.d.ts +8 -8
  235. package/src/commands/ClientToServer/RecomputeCommand.d.ts +12 -11
  236. package/src/commands/ClientToServer/RefreshEventCommand.d.ts +13 -12
  237. package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +11 -10
  238. package/src/commands/ClientToServer/RollbackEventCommand.d.ts +15 -14
  239. package/src/commands/ClientToServer/SelectProgramCommand.d.ts +7 -6
  240. package/src/commands/ClientToServer/SetTransactionStateDataviewCommand.d.ts +5 -5
  241. package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +9 -8
  242. package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +10 -9
  243. package/src/commands/ClientToServer/TransactionCommand.d.ts +14 -12
  244. package/src/commands/ClientToServer/UnloadCommand.d.ts +8 -7
  245. package/src/commands/ClientToServer/WriteMessageToServerLogCommand.d.ts +6 -6
  246. package/src/commands/DataViewCommandBase.d.ts +6 -6
  247. package/src/commands/IClientCommand.d.ts +2 -2
  248. package/src/commands/IClientTargetedCommand.d.ts +12 -12
  249. package/src/commands/IClientToServerCommandInfo.d.ts +4 -3
  250. package/src/commands/ServerToClient/AbortCommand.d.ts +11 -11
  251. package/src/commands/ServerToClient/AddLocateCommand.d.ts +6 -6
  252. package/src/commands/ServerToClient/AddRangeCommand.d.ts +10 -10
  253. package/src/commands/ServerToClient/AddSortCommand.d.ts +9 -9
  254. package/src/commands/ServerToClient/ClientRefreshCommand.d.ts +7 -7
  255. package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +12 -12
  256. package/src/commands/ServerToClient/EnhancedVerifyCommand.d.ts +13 -13
  257. package/src/commands/ServerToClient/OpenURLCommand.d.ts +21 -21
  258. package/src/commands/ServerToClient/ResetLocateCommand.d.ts +6 -6
  259. package/src/commands/ServerToClient/ResetRangeCommand.d.ts +6 -6
  260. package/src/commands/ServerToClient/ResetSortCommand.d.ts +6 -6
  261. package/src/commands/ServerToClient/ResultCommand.d.ts +10 -10
  262. package/src/commands/ServerToClient/VerifyCommand.d.ts +17 -17
  263. package/src/commands/ServerToClient/XMLBasedCommandBuilder.d.ts +11 -11
  264. package/src/communications/IConnectionStateManager.d.ts +4 -4
  265. package/src/communications/InteractiveCommunicationsFailureHandler.d.ts +6 -6
  266. package/src/data/DataSourceIdKey.d.ts +2 -2
  267. package/src/data/DataView.d.ts +162 -162
  268. package/src/data/DataViewBase.d.ts +12 -12
  269. package/src/data/DataviewManager.d.ts +14 -14
  270. package/src/data/DataviewManagerBase.d.ts +11 -11
  271. package/src/data/DvCache.d.ts +15 -15
  272. package/src/data/Field.d.ts +103 -103
  273. package/src/data/FieldBase.d.ts +23 -23
  274. package/src/data/FieldsTable.d.ts +27 -27
  275. package/src/data/IRecordsTable.d.ts +7 -7
  276. package/src/data/Key.d.ts +15 -15
  277. package/src/data/Record.d.ts +157 -156
  278. package/src/data/RecordOutOfDataViewException.d.ts +10 -10
  279. package/src/data/RecordsTable.d.ts +38 -38
  280. package/src/data/TaskTransactionManager.d.ts +17 -17
  281. package/src/data/XMLBasedDcValuesBuilder.d.ts +11 -11
  282. package/src/enums.d.ts +21 -21
  283. package/src/env/EnvVariablesTable.d.ts +17 -17
  284. package/src/env/Environment.d.ts +118 -118
  285. package/src/env/ILanguageData.d.ts +3 -3
  286. package/src/env/LanguageData.d.ts +20 -20
  287. package/src/env/MirrorString.d.ts +15 -15
  288. package/src/event/ActionManager.d.ts +14 -14
  289. package/src/event/Event.d.ts +79 -79
  290. package/src/event/EventHandler.d.ts +66 -66
  291. package/src/event/EventHandlerPosition.d.ts +25 -25
  292. package/src/event/EventsManager.d.ts +205 -204
  293. package/src/event/IEventsManager.d.ts +77 -77
  294. package/src/event/RunTimeEvent.d.ts +126 -123
  295. package/src/event/RunTimeEventBase.d.ts +5 -5
  296. package/src/event/UserEventsTable.d.ts +11 -11
  297. package/src/exp/ExpTable.d.ts +11 -11
  298. package/src/exp/Expression.d.ts +37 -37
  299. package/src/exp/ExpressionDict.d.ts +12 -12
  300. package/src/exp/ExpressionEvaluator.d.ts +198 -198
  301. package/src/exp/ExpressionLocalJpn.d.ts +18 -18
  302. package/src/exp/GlobalParamsTable.d.ts +19 -19
  303. package/src/exp/YesNoExp.d.ts +9 -9
  304. package/src/gui/CreatedFormVector.d.ts +10 -10
  305. package/src/gui/FormsTable.d.ts +15 -15
  306. package/src/gui/MgControl.d.ts +60 -60
  307. package/src/gui/MgForm.d.ts +96 -93
  308. package/src/http/HttpManager.d.ts +25 -25
  309. package/src/http/client/HttpClientAsync.d.ts +16 -16
  310. package/src/http/client/HttpClientBase.d.ts +30 -30
  311. package/src/http/client/HttpClientEvents.d.ts +18 -18
  312. package/src/http/client/HttpClientSync.d.ts +17 -17
  313. package/src/http/client/HttpUtility.d.ts +10 -10
  314. package/src/http/client/ICommunicationsFailureHandler.d.ts +5 -5
  315. package/src/remote/AddUserLocateRemoteDataViewCommand.d.ts +8 -8
  316. package/src/remote/AddUserRangeRemoteDataViewCommand.d.ts +8 -8
  317. package/src/remote/AddUserSortRemoteDataViewCommand.d.ts +8 -8
  318. package/src/remote/RemoteCommandsProcessor.d.ts +51 -51
  319. package/src/remote/RemoteControlItemsRefreshCommand.d.ts +8 -8
  320. package/src/remote/RemoteDataViewCommandBase.d.ts +10 -10
  321. package/src/remote/RemoteDataViewCommandFactory.d.ts +6 -6
  322. package/src/remote/RemoteDataViewCommandUpdateNonModifiable.d.ts +8 -8
  323. package/src/remote/RemoteDataviewManager.d.ts +9 -9
  324. package/src/remote/RemoteInitDataViewCommand.d.ts +7 -7
  325. package/src/remote/ResetUserLocateRemoteDataviewCommand.d.ts +7 -7
  326. package/src/remote/ResetUserRangeRemoteDataviewCommand.d.ts +7 -7
  327. package/src/remote/ResetUserSortRemoteDataviewCommand.d.ts +7 -7
  328. package/src/remote/ServerError.d.ts +16 -16
  329. package/src/remote/SetTransactionStateRemoteDataViewCommand.d.ts +8 -8
  330. package/src/rt/Argument.d.ts +36 -36
  331. package/src/rt/ArgumentsList.d.ts +24 -24
  332. package/src/rt/Boundary.d.ts +27 -27
  333. package/src/rt/CompMainPrgTable.d.ts +10 -10
  334. package/src/rt/DataviewHeaderBase.d.ts +34 -34
  335. package/src/rt/DataviewHeaderFactory.d.ts +5 -5
  336. package/src/rt/DataviewHeaders.d.ts +12 -12
  337. package/src/rt/DataviewHeadersSaxHandler.d.ts +10 -10
  338. package/src/rt/ExecutionStack.d.ts +22 -22
  339. package/src/rt/ExecutionStackEntry.d.ts +7 -7
  340. package/src/rt/HandlersTable.d.ts +19 -19
  341. package/src/rt/IDataSourceViewDefinition.d.ts +6 -6
  342. package/src/rt/IDataviewHeader.d.ts +10 -10
  343. package/src/rt/IResultValue.d.ts +4 -4
  344. package/src/rt/LastFocusedManager.d.ts +23 -23
  345. package/src/rt/Operation.d.ts +97 -97
  346. package/src/rt/OperationTable.d.ts +15 -15
  347. package/src/rt/Recompute.d.ts +41 -41
  348. package/src/rt/RecomputeTable.d.ts +9 -9
  349. package/src/rt/RemoteDataviewHeader.d.ts +14 -14
  350. package/src/rt/ResultValue.d.ts +7 -7
  351. package/src/rt/TableCache.d.ts +29 -29
  352. package/src/rt/TableCacheManager.d.ts +10 -10
  353. package/src/rt/Transaction.d.ts +23 -23
  354. package/src/security/UserDetails.d.ts +16 -16
  355. package/src/tasks/IMGDataCollection.d.ts +26 -26
  356. package/src/tasks/MGData.d.ts +63 -63
  357. package/src/tasks/MGDataCollection.d.ts +42 -42
  358. package/src/tasks/RCTimer.d.ts +13 -13
  359. package/src/tasks/RemoteTaskService.d.ts +16 -16
  360. package/src/tasks/Task.d.ts +312 -312
  361. package/src/tasks/TaskBase.d.ts +123 -123
  362. package/src/tasks/TaskServiceBase.d.ts +16 -16
  363. package/src/tasks/TasksTable.d.ts +21 -21
  364. package/src/tasks/sort/Sort.d.ts +4 -4
  365. package/src/tasks/sort/SortCollection.d.ts +11 -11
  366. package/src/util/ConstUtils.d.ts +3 -3
  367. package/src/util/FlowMonitorQueue.d.ts +70 -70
  368. package/src/util/HeapSort.d.ts +6 -6
  369. package/src/util/IMirrorXML.d.ts +6 -6
  370. package/src/util/IServerConfig.d.ts +11 -11
  371. package/src/util/MgBlockingQueue.d.ts +5 -5
  372. package/src/util/MgPriorityBlockingQueue.d.ts +17 -17
  373. package/src/util/MgPriorityQueue.d.ts +13 -13
  374. package/src/util/ParamParseResult.d.ts +6 -6
  375. package/src/util/PrmMap.d.ts +28 -28
  376. package/src/util/ReturnResult.d.ts +18 -18
  377. package/src/util/ReturnResultBase.d.ts +11 -11
  378. package/src/util/Scrambler.d.ts +10 -10
  379. package/src/util/UniqueIDUtils.d.ts +4 -4
  380. package/src/util/cookie.service.d.ts +8 -8
  381. package/esm2020/src/AccessHelper.mjs +0 -9
  382. package/esm2020/src/ClientManager.mjs +0 -399
  383. package/esm2020/src/CommandsProcessorBase.mjs +0 -58
  384. package/esm2020/src/CommandsProcessorManager.mjs +0 -26
  385. package/esm2020/src/CommandsTable.mjs +0 -162
  386. package/esm2020/src/ConstInterface.mjs +0 -516
  387. package/esm2020/src/FlowMonitorInterface.mjs +0 -16
  388. package/esm2020/src/GUIManager.mjs +0 -62
  389. package/esm2020/src/GlobalCommandsManager.mjs +0 -34
  390. package/esm2020/src/GuiEventsProcessor.mjs +0 -154
  391. package/esm2020/src/ServerConfig.mjs +0 -117
  392. package/esm2020/src/bridge/MagicBridge.mjs +0 -41
  393. package/esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs +0 -11
  394. package/esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs +0 -23
  395. package/esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +0 -60
  396. package/esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs +0 -26
  397. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +0 -260
  398. package/esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs +0 -69
  399. package/esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs +0 -23
  400. package/esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs +0 -13
  401. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +0 -36
  402. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +0 -67
  403. package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +0 -22
  404. package/esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs +0 -21
  405. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +0 -23
  406. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +0 -27
  407. package/esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs +0 -27
  408. package/esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +0 -24
  409. package/esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs +0 -39
  410. package/esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs +0 -15
  411. package/esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs +0 -21
  412. package/esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +0 -24
  413. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +0 -28
  414. package/esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +0 -18
  415. package/esm2020/src/commands/DataViewCommandBase.mjs +0 -10
  416. package/esm2020/src/commands/IClientTargetedCommand.mjs +0 -9
  417. package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +0 -65
  418. package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +0 -62
  419. package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +0 -33
  420. package/esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs +0 -25
  421. package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +0 -27
  422. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +0 -45
  423. package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +0 -221
  424. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +0 -37
  425. package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +0 -83
  426. package/esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +0 -132
  427. package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +0 -17
  428. package/esm2020/src/data/DataView.mjs +0 -1610
  429. package/esm2020/src/data/DataviewManager.mjs +0 -28
  430. package/esm2020/src/data/DataviewManagerBase.mjs +0 -15
  431. package/esm2020/src/data/DvCache.mjs +0 -67
  432. package/esm2020/src/data/Field.mjs +0 -646
  433. package/esm2020/src/data/FieldBase.mjs +0 -18
  434. package/esm2020/src/data/FieldsTable.mjs +0 -103
  435. package/esm2020/src/data/Key.mjs +0 -88
  436. package/esm2020/src/data/Record.mjs +0 -846
  437. package/esm2020/src/data/RecordsTable.mjs +0 -267
  438. package/esm2020/src/data/TaskTransactionManager.mjs +0 -103
  439. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +0 -74
  440. package/esm2020/src/env/EnvVariablesTable.mjs +0 -340
  441. package/esm2020/src/env/Environment.mjs +0 -489
  442. package/esm2020/src/env/LanguageData.mjs +0 -226
  443. package/esm2020/src/env/MirrorString.mjs +0 -65
  444. package/esm2020/src/event/ActionManager.mjs +0 -91
  445. package/esm2020/src/event/Event.mjs +0 -1333
  446. package/esm2020/src/event/EventHandler.mjs +0 -766
  447. package/esm2020/src/event/EventHandlerPosition.mjs +0 -204
  448. package/esm2020/src/event/EventsManager.mjs +0 -2975
  449. package/esm2020/src/event/RunTimeEvent.mjs +0 -392
  450. package/esm2020/src/event/UserEventsTable.mjs +0 -47
  451. package/esm2020/src/exp/ExpTable.mjs +0 -59
  452. package/esm2020/src/exp/Expression.mjs +0 -200
  453. package/esm2020/src/exp/ExpressionDict.mjs +0 -727
  454. package/esm2020/src/exp/ExpressionEvaluator.mjs +0 -4212
  455. package/esm2020/src/exp/ExpressionLocalJpn.mjs +0 -314
  456. package/esm2020/src/exp/GlobalParamsTable.mjs +0 -85
  457. package/esm2020/src/exp/YesNoExp.mjs +0 -36
  458. package/esm2020/src/gui/CreatedFormVector.mjs +0 -23
  459. package/esm2020/src/gui/FormsTable.mjs +0 -66
  460. package/esm2020/src/gui/MgControl.mjs +0 -353
  461. package/esm2020/src/gui/MgForm.mjs +0 -1181
  462. package/esm2020/src/http/HttpManager.mjs +0 -97
  463. package/esm2020/src/http/client/HttpClientAsync.mjs +0 -67
  464. package/esm2020/src/http/client/HttpClientBase.mjs +0 -132
  465. package/esm2020/src/http/client/HttpClientEvents.mjs +0 -39
  466. package/esm2020/src/http/client/HttpClientSync.mjs +0 -42
  467. package/esm2020/src/http/client/HttpUtility.mjs +0 -84
  468. package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +0 -18
  469. package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +0 -18
  470. package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +0 -18
  471. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +0 -880
  472. package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +0 -25
  473. package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +0 -24
  474. package/esm2020/src/remote/RemoteDataViewCommandFactory.mjs +0 -61
  475. package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +0 -17
  476. package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +0 -16
  477. package/esm2020/src/remote/ServerError.mjs +0 -40
  478. package/esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +0 -20
  479. package/esm2020/src/rt/Argument.mjs +0 -265
  480. package/esm2020/src/rt/ArgumentsList.mjs +0 -103
  481. package/esm2020/src/rt/Boundary.mjs +0 -152
  482. package/esm2020/src/rt/CompMainPrgTable.mjs +0 -65
  483. package/esm2020/src/rt/DataviewHeaders.mjs +0 -53
  484. package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +0 -38
  485. package/esm2020/src/rt/ExecutionStack.mjs +0 -94
  486. package/esm2020/src/rt/HandlersTable.mjs +0 -96
  487. package/esm2020/src/rt/LastFocusedManager.mjs +0 -67
  488. package/esm2020/src/rt/Operation.mjs +0 -735
  489. package/esm2020/src/rt/OperationTable.mjs +0 -67
  490. package/esm2020/src/rt/Recompute.mjs +0 -355
  491. package/esm2020/src/rt/RecomputeTable.mjs +0 -63
  492. package/esm2020/src/rt/RemoteDataviewHeader.mjs +0 -108
  493. package/esm2020/src/rt/ResultValue.mjs +0 -12
  494. package/esm2020/src/rt/TableCache.mjs +0 -177
  495. package/esm2020/src/rt/TableCacheManager.mjs +0 -67
  496. package/esm2020/src/rt/Transaction.mjs +0 -53
  497. package/esm2020/src/security/UserDetails.mjs +0 -71
  498. package/esm2020/src/tasks/MGData.mjs +0 -552
  499. package/esm2020/src/tasks/MGDataCollection.mjs +0 -252
  500. package/esm2020/src/tasks/RCTimer.mjs +0 -63
  501. package/esm2020/src/tasks/RemoteTaskService.mjs +0 -45
  502. package/esm2020/src/tasks/Task.mjs +0 -2495
  503. package/esm2020/src/tasks/TaskBase.mjs +0 -87
  504. package/esm2020/src/tasks/TaskServiceBase.mjs +0 -25
  505. package/esm2020/src/tasks/TasksTable.mjs +0 -80
  506. package/esm2020/src/tasks/sort/Sort.mjs +0 -7
  507. package/esm2020/src/tasks/sort/SortCollection.mjs +0 -67
  508. package/esm2020/src/util/ConstUtils.mjs +0 -14
  509. package/esm2020/src/util/FlowMonitorQueue.mjs +0 -453
  510. package/esm2020/src/util/HeapSort.mjs +0 -70
  511. package/esm2020/src/util/MgPriorityBlockingQueue.mjs +0 -74
  512. package/esm2020/src/util/MgPriorityQueue.mjs +0 -66
  513. package/esm2020/src/util/PrmMap.mjs +0 -151
  514. package/esm2020/src/util/ReturnResult.mjs +0 -46
  515. package/esm2020/src/util/ReturnResultBase.mjs +0 -18
  516. package/esm2020/src/util/Scrambler.mjs +0 -89
  517. package/esm2020/src/util/UniqueIDUtils.mjs +0 -12
  518. package/esm2020/src/util/cookie.service.mjs +0 -92
  519. package/fesm2015/magic-xpa-engine.mjs +0 -30835
  520. package/fesm2015/magic-xpa-engine.mjs.map +0 -1
  521. package/fesm2020/magic-xpa-engine.mjs.map +0 -1
@@ -0,0 +1,252 @@
1
+ import { ApplicationException, Debug, List } from "@magic-xpa/mscorelib";
2
+ import { InternalInterface, XMLConstants } from "@magic-xpa/utils";
3
+ import { Commands } from "@magic-xpa/gui";
4
+ import { FlowMonitorQueue } from "../util/FlowMonitorQueue";
5
+ import { LastFocusedManager } from "../rt/LastFocusedManager";
6
+ import { CommandsProcessorBase_SendingInstruction, CommandsProcessorBase_SessionStage } from "../CommandsProcessorBase";
7
+ import { CommandsProcessorManager } from "../CommandsProcessorManager";
8
+ import { AccessHelper } from "../AccessHelper";
9
+ import { ConstInterface } from "../ConstInterface";
10
+ export class MGDataCollection {
11
+ static _instance = null;
12
+ _mgDataTab = new List();
13
+ _iteratorMgdIdx = 0;
14
+ _iteratorTaskIdx = 0;
15
+ currMgdID = 0;
16
+ StartupMgData = null;
17
+ _lastRouteSentToServer = "";
18
+ constructor() {
19
+ }
20
+ GetTaskByID(id) {
21
+ let task = null;
22
+ for (let i = 0; i < this.getSize() && task == null; i++) {
23
+ let mgd = this.getMGData(i);
24
+ if (mgd == null)
25
+ continue;
26
+ task = mgd.getTask(id);
27
+ }
28
+ return task;
29
+ }
30
+ static get Instance() {
31
+ if (MGDataCollection._instance == null) {
32
+ if (MGDataCollection._instance == null)
33
+ MGDataCollection._instance = new MGDataCollection();
34
+ }
35
+ return MGDataCollection._instance;
36
+ }
37
+ async addMGData(mgd, idx, isStartup) {
38
+ if (idx < 0 || idx > this.getSize())
39
+ throw new ApplicationException("Illegal MGData requested");
40
+ if (isStartup)
41
+ this.StartupMgData = mgd;
42
+ if (idx === this.getSize())
43
+ this._mgDataTab.push(mgd);
44
+ else {
45
+ let oldMgd = this.getMGData(idx);
46
+ if (oldMgd != null && !oldMgd.IsAborting) {
47
+ await oldMgd.getFirstTask().stop();
48
+ oldMgd.abort();
49
+ }
50
+ this._mgDataTab.set_Item(idx, mgd);
51
+ }
52
+ }
53
+ getMGData(idx) {
54
+ let mgd = null;
55
+ if (idx >= 0 && idx < this.getSize()) {
56
+ mgd = this._mgDataTab.get_Item(idx);
57
+ }
58
+ return mgd;
59
+ }
60
+ getAvailableIdx() {
61
+ let i;
62
+ for (i = 0; i < this._mgDataTab.length; i = i + 1) {
63
+ if (this._mgDataTab.get_Item(i) === null)
64
+ break;
65
+ }
66
+ return i;
67
+ }
68
+ getMgDataIdx(mgd) {
69
+ return this._mgDataTab.indexOf(mgd);
70
+ }
71
+ deleteMGDataTree(index) {
72
+ let mgd, childMgd;
73
+ let i;
74
+ if (index < 0 || index >= this.getSize())
75
+ throw new ApplicationException("in deleteMGData() illegal index: " + index);
76
+ mgd = this.getMGData(index);
77
+ if (mgd != null) {
78
+ if (index > 0 && mgd.getParentMGdata() != null) {
79
+ this._mgDataTab.set_Item(index, null);
80
+ }
81
+ LastFocusedManager.Instance.clean(index);
82
+ for (i = 0; i < this.getSize(); i++) {
83
+ childMgd = this.getMGData(i);
84
+ if (childMgd != null && childMgd.getParentMGdata() === mgd)
85
+ this.deleteMGDataTree(i);
86
+ }
87
+ }
88
+ }
89
+ getCurrMGData() {
90
+ return this.getMGData(this.currMgdID);
91
+ }
92
+ GetMainProgByCtlIdx(contextIDOrCtlIdx, ctlIdx) {
93
+ if (arguments.length === 2)
94
+ return this.GetMainProgByCtlIdx_0(ctlIdx);
95
+ else
96
+ return this.GetMainProgByCtlIdx_1(contextIDOrCtlIdx);
97
+ }
98
+ GetMainProgByCtlIdx_0(ctlIdx) {
99
+ let task = null;
100
+ for (let i = 0; i < this.getSize() && task == null; i++) {
101
+ let mgd = this.getMGData(i);
102
+ if (mgd == null)
103
+ continue;
104
+ task = mgd.getMainProg(ctlIdx);
105
+ }
106
+ return task;
107
+ }
108
+ GetMainProgByCtlIdx_1(ctlIdx) {
109
+ return this.GetMainProgByCtlIdx(-1, ctlIdx);
110
+ }
111
+ startTasksIteration() {
112
+ this._iteratorMgdIdx = 0;
113
+ this._iteratorTaskIdx = 0;
114
+ }
115
+ getNextTask() {
116
+ let task;
117
+ let mgd = this.getMGData(this._iteratorMgdIdx);
118
+ if (mgd == null)
119
+ return null;
120
+ task = mgd.getTask(this._iteratorTaskIdx);
121
+ if (task == null) {
122
+ do {
123
+ this._iteratorMgdIdx++;
124
+ } while (this._iteratorMgdIdx < this.getSize() && this.getMGData(this._iteratorMgdIdx) == null);
125
+ this._iteratorTaskIdx = 0;
126
+ return this.getNextTask();
127
+ }
128
+ this._iteratorTaskIdx++;
129
+ return task;
130
+ }
131
+ async buildXML(message, serializeTasks) {
132
+ let lastRoute = Commands.getLastRoute();
133
+ if (lastRoute !== this._lastRouteSentToServer) {
134
+ message.Append(XMLConstants.START_TAG + ConstInterface.MG_TAG_LAST_ROUTE);
135
+ message.Append(" " + ConstInterface.MG_ATTR_ENV_VALUE + "=\"" + lastRoute + "\"");
136
+ message.Append(XMLConstants.TAG_TERM);
137
+ this._lastRouteSentToServer = lastRoute;
138
+ }
139
+ for (let i = 0; i < this.getSize(); i = i + 1) {
140
+ let mgd = this.getMGData(i);
141
+ if (mgd !== null && !mgd.IsAborting) {
142
+ await mgd.buildXML(message, serializeTasks);
143
+ }
144
+ }
145
+ FlowMonitorQueue.Instance.buildXML(message);
146
+ }
147
+ getSize() {
148
+ return this._mgDataTab.length;
149
+ }
150
+ async processRecovery() {
151
+ for (let i = 0; i < this.getSize(); i = i + 1) {
152
+ let mgd = this.getMGData(i);
153
+ if (mgd !== null) {
154
+ for (let j = 0; j < mgd.getTasksCount(); j = j + 1) {
155
+ let task = mgd.getTask(j);
156
+ if (task !== null)
157
+ await task.DataView.processRecovery();
158
+ }
159
+ }
160
+ }
161
+ }
162
+ getTriggeredTasks(triggeringTask) {
163
+ let list = new List();
164
+ let task;
165
+ let tag = triggeringTask.getTaskTag();
166
+ this.startTasksIteration();
167
+ while ((task = this.getNextTask()) !== null) {
168
+ if (tag === task.PreviouslyActiveTaskId)
169
+ list.push(task);
170
+ }
171
+ return list;
172
+ }
173
+ GetTasks(p) {
174
+ let taskList = new List();
175
+ this._mgDataTab.forEach(mgd => {
176
+ if (mgd !== null && !mgd.IsAborting) {
177
+ for (let i = 0; i < mgd.getTasksCount(); i = i + 1) {
178
+ let task = mgd.getTask(i);
179
+ if (task !== null && p(task)) {
180
+ taskList.push(task);
181
+ }
182
+ }
183
+ }
184
+ });
185
+ return taskList;
186
+ }
187
+ getTaskIdById(taskId) {
188
+ let task = this.GetTaskByID(taskId);
189
+ let tag = taskId;
190
+ if (task != null)
191
+ tag = task.getTaskTag();
192
+ return tag;
193
+ }
194
+ GetTopMostForms() {
195
+ let task;
196
+ let forms = new List();
197
+ this.startTasksIteration();
198
+ while ((task = this.getNextTask()) != null) {
199
+ let form = task.getForm();
200
+ if (!task.isAborting() && form != null && !form.isSubForm())
201
+ forms.push(form);
202
+ }
203
+ return forms;
204
+ }
205
+ GetMGDataForStartupProgram() {
206
+ Debug.Assert(this._mgDataTab.length > 0, "The main program must be processed before invoking this method.");
207
+ let mainProgByCtlIdx = this.GetMainProgByCtlIdx(0);
208
+ Debug.Assert(mainProgByCtlIdx !== null, "The main program must be processed before invoking this method.");
209
+ Debug.Assert(mainProgByCtlIdx.getMgdID() === 0, "Main program is expected to be on MGData 0. Is this an error?");
210
+ return this._mgDataTab.get_Item(0);
211
+ }
212
+ async execRequestWithSubformRecordCycle(cmdsToServer, cmdToServer, exp) {
213
+ this.cleanDoSubformPrefixSuffix();
214
+ cmdsToServer.Add(cmdToServer);
215
+ if (!(MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask && MGDataCollection.Instance.StartupMgData.getFirstTask().ClosingFormUI))
216
+ await CommandsProcessorManager.GetCommandsProcessor().Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS, CommandsProcessorBase_SessionStage.NORMAL, exp);
217
+ await this.execAllSubformRecordCycle();
218
+ }
219
+ cleanDoSubformPrefixSuffix() {
220
+ for (let i = 0; i < this.getSize(); i++) {
221
+ let mgd = this.getMGData(i);
222
+ if (mgd === null || mgd.IsAborting)
223
+ continue;
224
+ let tasksCount = mgd.getTasksCount();
225
+ for (let j = 0; j < tasksCount; j++) {
226
+ let task = mgd.getTask(j);
227
+ task.DoSubformPrefixSuffix = false;
228
+ }
229
+ }
230
+ }
231
+ async execAllSubformRecordCycle() {
232
+ for (let i = 0; i < this.getSize(); i = i + 1) {
233
+ let mgd = this.getMGData(i);
234
+ if (mgd === null || mgd.IsAborting)
235
+ continue;
236
+ let tasksCount = mgd.getTasksCount();
237
+ for (let j = 0; j < tasksCount; j = j + 1) {
238
+ let task = mgd.getTask(j);
239
+ if (task.IsSubForm && task.DoSubformPrefixSuffix) {
240
+ task.PerformParentRecordPrefix = false;
241
+ AccessHelper.eventsManager.pushNewExecStacks();
242
+ await AccessHelper.eventsManager.handleInternalEventWithTaskAndSubformRefresh(task, InternalInterface.MG_ACT_REC_PREFIX, true);
243
+ if (!AccessHelper.eventsManager.GetStopExecutionFlag())
244
+ await AccessHelper.eventsManager.handleInternalEventWithTask(task, InternalInterface.MG_ACT_REC_SUFFIX);
245
+ AccessHelper.eventsManager.popNewExecStacks();
246
+ task.PerformParentRecordPrefix = true;
247
+ }
248
+ }
249
+ }
250
+ }
251
+ }
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUdEYXRhQ29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdGFza3MvTUdEYXRhQ29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RixPQUFPLEVBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFDLFFBQVEsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUsxRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsd0NBQXdDLEVBQUUsa0NBQWtDLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUd0SCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBTWpELE1BQU0sT0FBTyxnQkFBZ0I7SUFDbkIsTUFBTSxDQUFDLFNBQVMsR0FBcUIsSUFBSSxDQUFDO0lBQzFDLFVBQVUsR0FBaUIsSUFBSSxJQUFJLEVBQVUsQ0FBQztJQUc5QyxlQUFlLEdBQVcsQ0FBQyxDQUFDO0lBQzVCLGdCQUFnQixHQUFXLENBQUMsQ0FBQztJQUNyQyxTQUFTLEdBQVcsQ0FBQyxDQUFDO0lBQ3RCLGFBQWEsR0FBVyxJQUFJLENBQUM7SUFFckIsc0JBQXNCLEdBQVcsRUFBRSxDQUFDO0lBSzVDO0lBQ0EsQ0FBQztJQU1ELFdBQVcsQ0FBQyxFQUFVO1FBQ3BCLElBQUksSUFBSSxHQUFTLElBQUksQ0FBQztR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O1lBQzdDLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxJQUFJLEdBQVMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO29CQUdqRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO29CQUN2QyxZQUFZLENBQUMsYUFBYSxDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBQy9DLE1BQU0sWUFBWSxDQUFDLGFBQWEsQ0FBQyw0Q0FBNEMsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBRS9ILElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFO3dCQUNwRCxNQUFNLFlBQVksQ0FBQyxhQUFhLENBQUMsMkJBQTJCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBRTFHLFlBQVksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztnQkFDeEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXBwbGljYXRpb25FeGNlcHRpb24sIERlYnVnLCBMaXN0LCBTdHJpbmdCdWlsZGVyfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtJbnRlcm5hbEludGVyZmFjZSwgWE1MQ29uc3RhbnRzfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0NvbW1hbmRzLCBJVGFzaywgTWdGb3JtQmFzZX0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7TUdEYXRhfSBmcm9tIFwiLi9NR0RhdGFcIjtcclxuaW1wb3J0IHtGbG93TW9uaXRvclF1ZXVlfSBmcm9tIFwiLi4vdXRpbC9GbG93TW9uaXRvclF1ZXVlXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIi4vVGFza1wiXHJcbmltcG9ydCB7RGF0YVZpZXd9IGZyb20gXCIuLi9kYXRhL0RhdGFWaWV3XCJcclxuaW1wb3J0IHtJTUdEYXRhQ29sbGVjdGlvbn0gZnJvbSBcIi4vSU1HRGF0YUNvbGxlY3Rpb25cIjtcclxuaW1wb3J0IHtDb21tYW5kc1RhYmxlfSBmcm9tIFwiLi4vQ29tbWFuZHNUYWJsZVwiO1xyXG5pbXBvcnQge0xhc3RGb2N1c2VkTWFuYWdlcn0gZnJvbSBcIi4uL3J0L0xhc3RGb2N1c2VkTWFuYWdlclwiO1xyXG5pbXBvcnQge0NvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZW5kaW5nSW5zdHJ1Y3Rpb24sIENvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZXNzaW9uU3RhZ2V9IGZyb20gXCIuLi9Db21tYW5kc1Byb2Nlc3NvckJhc2VcIjtcclxuaW1wb3J0IHtJQ2xpZW50Q29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0lDbGllbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7RXhwcmVzc2lvbn0gZnJvbSBcIi4uL2V4cC9FeHByZXNzaW9uXCI7XHJcbmltcG9ydCB7Q29tbWFuZHNQcm9jZXNzb3JNYW5hZ2VyfSBmcm9tIFwiLi4vQ29tbWFuZHNQcm9jZXNzb3JNYW5hZ2VyXCI7XHJcbmltcG9ydCB7QWNjZXNzSGVscGVyfSBmcm9tIFwiLi4vQWNjZXNzSGVscGVyXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gICB0aGlzIGNsYXNzIGhhbmRsZXMgYSB0YWJsZSBvZiBNR0RhdGEgb2JqZWN0c1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG4vLyBAZHluYW1pY1xyXG5leHBvcnQgY2xhc3MgTUdEYXRhQ29sbGVjdGlvbiBpbXBsZW1lbnRzIElNR0RhdGFDb2xsZWN0aW9uIHtcclxuICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IE1HRGF0YUNvbGxlY3Rpb24gPSBudWxsOyAgICAgIC8vIHNpbmdsZXRvblxyXG4gIHByaXZhdGUgX21nRGF0YVRhYjogTGlzdDxNR0RhdGE+ID0gbmV3IExpc3Q8TUdEYXRhPigpO1xyXG5cclxuICAvLyB0aGUgY3VycmVudCBNR0RBVEFcclxuICBwcml2YXRlIF9pdGVyYXRvck1nZElkeDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF9pdGVyYXRvclRhc2tJZHg6IG51bWJlciA9IDA7XHJcbiAgY3Vyck1nZElEOiBudW1iZXIgPSAwO1xyXG4gIFN0YXJ0dXBNZ0RhdGE6IE1HRGF0YSA9IG51bGw7XHJcblxyXG4gIHByaXZhdGUgX2xhc3RSb3V0ZVNlbnRUb1NlcnZlcjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzaW5nbGV0b25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNlYXJjaGVzIGFsbCB0aGUgTUdEYXRhIG9iamVjdHMgdGlsbCBpdCBmaW5kcyB0aGUgdGFzayB3aXRoIHRoZSBnaXZlbiBpZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJpZFwiPnRoZSBpZCBvZiB0aGUgcmVxdWVzdGVkIHRhc2s8L3BhcmFtPlxyXG4gIEdldFRhc2tCeUlEKGlkOiBzdHJpbmcpOiBJVGFzayB7XHJcbiAgICBsZXQgdGFzazogVGFzayA9IG51bGw7XHJcblxyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuZ2V0U2l6ZSgpICYmIHRhc2sgPT0gbnVsbDsgaSsrKSB7XHJcbiAgICAgIGxldCBtZ2Q6IE1HRGF0YSA9IHRoaXMuZ2V0TUdEYXRhKGkpO1xyXG5cclxuICAgICAgaWYgKG1nZCA9PSBudWxsKVxyXG4gICAgICAvLyB0aGUgd2luZG93IGNvbm5lY3RlZCB0byB0aGUgTUdEYXRhIHdhcyBjbG9zZWRcclxuICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgIHRhc2sgPSBtZ2QuZ2V0VGFzayhpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRhc2s7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHNpbmdsZXRvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhdGljIGdldCBJbnN0YW5jZSgpOiBNR0RhdGFDb2xsZWN0aW9uIHtcclxuICAgIGlmIChNR0RhdGFDb2xsZWN0aW9uLl9pbnN0YW5jZSA9PSBudWxsKSB7XHJcbiAgICAgICAgaWYgKE1HRGF0YUNvbGxlY3Rpb24uX2luc3RhbmNlID09IG51bGwpXHJcbiAgICAgICAgICBNR0RhdGFDb2xsZWN0aW9uLl9pbnN0YW5jZSA9IG5ldyBNR0RhdGFDb2xsZWN0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIE1HRGF0YUNvbGxlY3Rpb24uX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGFkZCBNR0RhdGEgb2JqZWN0IHRvIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtZ2RcIj50aGUgTUdEYXRhIG9iamVjdCB0byBhZGQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaWR4XCI+dGhlIGluZGV4IHdpdGhpbiB0aGUgdGFibGUgZm9yIHRoZSBuZXcgTUdEYXRhPC9wYXJhbT5cclxuICBhc3luYyBhZGRNR0RhdGEobWdkOiBNR0RhdGEsIGlkeDogbnVtYmVyLCBpc1N0YXJ0dXA6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChpZHggPCAwIHx8IGlkeCA+IHRoaXMuZ2V0U2l6ZSgpKVxyXG4gICAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCJJbGxlZ2FsIE1HRGF0YSByZXF1ZXN0ZWRcIik7XHJcblxyXG4gICAgaWYgKGlzU3RhcnR1cClcclxuICAgICAgdGhpcy5TdGFydHVwTWdEYXRhID0gbWdkO1xyXG5cclxuICAgIGlmIChpZHggPT09IHRoaXMuZ2V0U2l6ZSgpKVxyXG4gICAgICB0aGlzLl9tZ0RhdGFUYWIucHVzaChtZ2QpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBvbGRNZ2Q6IE1HRGF0YSA9IHRoaXMuZ2V0TUdEYXRhKGlkeCk7XHJcblxyXG4gICAgICBpZiAob2xkTWdkICE9IG51bGwgJiYgIW9sZE1nZC5Jc0Fib3J0aW5nKSB7XHJcbiAgICAgICAgYXdhaXQgb2xkTWdkLmdldEZpcnN0VGFzaygpLnN0b3AoKTtcclxuICAgICAgICBvbGRNZ2QuYWJvcnQoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fbWdEYXRhVGFiLnNldF9JdGVtKGlkeCwgbWdkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIE1HRGF0YSBvYmplY3QgYnkgaXRzIGluZGV4XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRNR0RhdGEoaWR4OiBudW1iZXIpOiBNR0RhdGEge1xyXG4gICAgbGV0IG1nZDogTUdEYXRhID0gbnVsbDtcclxuXHJcbiAgICBpZiAoaWR4ID49IDAgJiYgaWR4IDwgdGhpcy5nZXRTaXplKCkpIHtcclxuICAgICAgbWdkID0gdGhpcy5fbWdEYXRhVGFiLmdldF9JdGVtKGlkeCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1nZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIGF2YWlsYWJsZSBpbmRleFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0QXZhaWxhYmxlSWR4KCk6IG51bWJlciB7XHJcbiAgICBsZXQgaTogbnVtYmVyO1xyXG5cclxuICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLl9tZ0RhdGFUYWIubGVuZ3RoOyBpID0gaSArIDEpIHtcclxuICAgICAgaWYgKHRoaXMuX21nRGF0YVRhYi5nZXRfSXRlbShpKSA9PT0gbnVsbClcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIHRoZSBpbmRleCBvZiBNR0RhdGEgaW4gTUdEYXRhVGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibWdkXCI+dG8gZmluZCBpbnRvIHRhYmxlPC9wYXJhbT5cclxuICBnZXRNZ0RhdGFJZHgobWdkOiBNR0RhdGEpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21nRGF0YVRhYi5pbmRleE9mKG1nZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZnJlZSBtZW1vcnkgZnJvbSB1bm5lZWRlZCBNR0RhdGEgYW5kIGl0cyBkZXNjZW5kYW50IE1HRHNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaW5kZXhcIj5udW1iZXIgb2YgTUdEYXRhL3dpbmRvdyB0byBiZSBkZWxldGVkPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIGRlbGV0ZU1HRGF0YVRyZWUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgbGV0IG1nZDogTUdEYXRhLCBjaGlsZE1nZDtcclxuICAgIGxldCBpOiBudW1iZXI7XHJcblxyXG4gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLmdldFNpemUoKSlcclxuICAgICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKFwiaW4gZGVsZXRlTUdEYXRhKCkgaWxsZWdhbCBpbmRleDogXCIgKyBpbmRleCk7XHJcblxyXG4gICAgbWdkID0gdGhpcy5nZXRNR0RhdGEoaW5kZXgpO1xyXG4gICAgaWYgKG1nZCAhPSBudWxsKSB7XHJcbiAgICAgIC8vIFRPRE86IHdoZW4gY2xvc2luZyBhIGZyYW1lc2V0IHdlIHNob3VsZCBjbGVhciB0aGUgTUdEcyBvZiB0aGUgZnJhbWVzXHJcbiAgICAgIC8vIGZyb20gdGhlIE1HRFRhYlxyXG4gICAgICBpZiAoaW5kZXggPiAwICYmIG1nZC5nZXRQYXJlbnRNR2RhdGEoKSAhPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5fbWdEYXRhVGFiLnNldF9JdGVtKGluZGV4LCBudWxsKTtcclxuICAgICAgfVxyXG4gICAgICBMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuY2xlYW4oaW5kZXgpO1xyXG5cclxuICAgICAgZm9yIChpID0gMDsgaSA8IHRoaXMuZ2V0U2l6ZSgpOyBpKyspIHtcclxuICAgICAgICBjaGlsZE1nZCA9IHRoaXMuZ2V0TUdEYXRhKGkpO1xyXG4gICAgICAgIGlmIChjaGlsZE1nZCAhPSBudWxsICYmIGNoaWxkTWdkLmdldFBhcmVudE1HZGF0YSgpID09PSBtZ2QpXHJcbiAgICAgICAgICB0aGlzLmRlbGV0ZU1HRGF0YVRyZWUoaSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgdGhlIGN1cnJlbnQgTUdEYXRhXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IE1HRGF0YSBvYmplY3Q8L3JldHVybnM+XHJcbiAgZ2V0Q3Vyck1HRGF0YSgpOiBNR0RhdGEge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0TUdEYXRhKHRoaXMuY3Vyck1nZElEKTtcclxuICB9XHJcblxyXG4gIEdldE1haW5Qcm9nQnlDdGxJZHgoY29udGV4dElET3JDdGxJZHg6IGFueSwgY3RsSWR4PzogbnVtYmVyKTogVGFzayB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMilcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0TWFpblByb2dCeUN0bElkeF8wKGN0bElkeCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiB0aGlzLkdldE1haW5Qcm9nQnlDdGxJZHhfMShjb250ZXh0SURPckN0bElkeCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2VhcmNoZXMgYWxsIHRoZSBNR0RhdGEgb2JqZWN0cyB0aWxsIGl0IGZpbmRzIGEgbWFpbiBwcm9ncmFtIHdpdGggdGhlIGdpdmVuIGN0bCBpZHhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiY29udGV4dElEXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImN0bElkeFwiPnRoZSBpZHggb2YgdGhlIHJlcXVlc3RlZCBjb21wb25lbnQ8L3BhcmFtPlxyXG4gIHByaXZhdGUgR2V0TWFpblByb2dCeUN0bElkeF8wKCBjdGxJZHg6IG51bWJlcik6IFRhc2sge1xyXG4gICAgbGV0IHRhc2s6IFRhc2sgPSBudWxsO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLmdldFNpemUoKSAmJiB0YXNrID09IG51bGw7IGkrKykge1xyXG4gICAgICBsZXQgbWdkOiBNR0RhdGEgPSB0aGlzLmdldE1HRGF0YShpKTtcclxuXHJcbiAgICAgIGlmIChtZ2QgPT0gbnVsbClcclxuICAgICAgICAvLyB0aGUgd2luZG93IGNvbm5lY3RlZCB0byB0aGUgTUdEYXRhIHdhcyBjbG9zZWRcclxuICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgIHRhc2sgPSBtZ2QuZ2V0TWFpblByb2coY3RsSWR4KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGFzaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgR2V0TWFpblByb2dCeUN0bElkeF8xKGN0bElkeDogbnVtYmVyKTogVGFzayB7XHJcbiAgICByZXR1cm4gdGhpcy5HZXRNYWluUHJvZ0J5Q3RsSWR4KC0xLCBjdGxJZHgpOyAgICAvLyBUT0RPICgtMSk6IFJDIGlzIHVuYXdhcmUgdG8gY29udGV4dCBpZHMgYXQgdGhlIG1vbWVudFxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHN0YXJ0IHRoZSB0YXNrcyBpdGVyYXRvclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgc3RhcnRUYXNrc0l0ZXJhdGlvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuX2l0ZXJhdG9yTWdkSWR4ID0gMDtcclxuICAgIHRoaXMuX2l0ZXJhdG9yVGFza0lkeCA9IDA7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IHRoZSBuZXh0IHRhc2sgdXNpbmcgdGhlIHRhc2tzIGl0ZXJhdG9yXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXROZXh0VGFzaygpOiBJVGFzayB7XHJcbiAgICBsZXQgdGFzazogVGFzaztcclxuXHJcbiAgICBsZXQgbWdkOiBNR0RhdGEgPSB0aGlzLmdldE1HRGF0YSh0aGlzLl9pdGVyYXRvck1nZElkeCk7XHJcbiAgICBpZiAobWdkID09IG51bGwpXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgIHRhc2sgPSBtZ2QuZ2V0VGFzayh0aGlzLl9pdGVyYXRvclRhc2tJZHgpO1xyXG5cclxuICAgIGlmICh0YXNrID09IG51bGwpIHtcclxuICAgICAgZG8ge1xyXG4gICAgICAgIHRoaXMuX2l0ZXJhdG9yTWdkSWR4Kys7XHJcbiAgICAgIH1cclxuICAgICAgd2hpbGUgKHRoaXMuX2l0ZXJhdG9yTWdkSWR4IDwgdGhpcy5nZXRTaXplKCkgJiYgdGhpcy5nZXRNR0RhdGEodGhpcy5faXRlcmF0b3JNZ2RJZHgpID09IG51bGwpO1xyXG4gICAgICB0aGlzLl9pdGVyYXRvclRhc2tJZHggPSAwO1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXROZXh0VGFzaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2l0ZXJhdG9yVGFza0lkeCsrO1xyXG4gICAgcmV0dXJuIHRhc2s7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYnVpbGQgWE1MIHN0cmluZyBvZiB0aGUgTUdEYXRhVEFCTEUgb2JqZWN0LFxyXG4gIC8vLyAgIEFMTCBNR0RhdGEgaW4gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJtZXNzYWdlXCI+YSBtZXNzYWdlIGJlaW5nIHByZXBhcmVkLjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic2VyaWFsaXplVGFza3NcIj5pZiB0cnVlLCB0YXNrcyBpbiB0aGUgY3VycmVudCBleGVjdXRpb24gd2lsbCBhbHNvIGJlIHNlcmlhbGl6ZWQuPC9wYXJhbT5cclxuICBhc3luYyBidWlsZFhNTChtZXNzYWdlOiBTdHJpbmdCdWlsZGVyLCBzZXJpYWxpemVUYXNrczogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IGxhc3RSb3V0ZTogc3RyaW5nID0gQ29tbWFuZHMuZ2V0TGFzdFJvdXRlKCk7XHJcbiAgICAvLyBvcHRpbWl6YXRpb246IERvIG5vdCBzZW5kIHRoZSBsYXN0Um91dGUsIGlmIGl0IGlzIHRoZSBzYW1lIHdoaWNoIHdhcyBsYXN0IHNlbnQgdG8gdGhlIHNlcnZlclxyXG4gICAgaWYgKGxhc3RSb3V0ZSAhPT0gdGhpcy5fbGFzdFJvdXRlU2VudFRvU2VydmVyKSB7XHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFhNTENvbnN0YW50cy5TVEFSVF9UQUcgKyBDb25zdEludGVyZmFjZS5NR19UQUdfTEFTVF9ST1VURSk7XHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FTlZfVkFMVUUgKyBcIj1cXFwiXCIgKyBsYXN0Um91dGUgKyBcIlxcXCJcIik7XHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKFhNTENvbnN0YW50cy5UQUdfVEVSTSk7XHJcblxyXG4gICAgICB0aGlzLl9sYXN0Um91dGVTZW50VG9TZXJ2ZXIgPSBsYXN0Um91dGU7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuZ2V0U2l6ZSgpOyBpID0gaSArIDEpIHtcclxuICAgICAgbGV0IG1nZDogTUdEYXRhID0gdGhpcy5nZXRNR0RhdGEoaSk7XHJcblxyXG4gICAgICBpZiAobWdkICE9PSBudWxsICYmICFtZ2QuSXNBYm9ydGluZykge1xyXG4gICAgICAgIGF3YWl0IG1nZC5idWlsZFhNTChtZXNzYWdlLCBzZXJpYWxpemVUYXNrcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBGbG93TW9uaXRvclF1ZXVlLkluc3RhbmNlLmJ1aWxkWE1MKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZ2V0IHNpemUgb2YgTUdEYXRhIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHNpemUgb2YgdGFibGU8L3JldHVybnM+XHJcbiAgZ2V0U2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21nRGF0YVRhYi5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcGVyZm9ybSBhbnkgZGF0YSBlcnJvciByZWNvdmVyeSBhY3Rpb24gb24gYWxsIGRhdGF2aWV3c1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYXN5bmMgcHJvY2Vzc1JlY292ZXJ5KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHRoaXMuZ2V0U2l6ZSgpOyBpID0gaSArIDEpIHtcclxuICAgICAgbGV0IG1nZDogTUdEYXRhID0gdGhpcy5nZXRNR0RhdGEoaSk7XHJcblxyXG4gICAgICBpZiAobWdkICE9PSBudWxsKSB7XHJcbiAgICAgICAgZm9yIChsZXQgajogbnVtYmVyID0gMDsgaiA8IG1nZC5nZXRUYXNrc0NvdW50KCk7IGogPSBqICsgMSkge1xyXG4gICAgICAgICAgbGV0IHRhc2s6IFRhc2sgPSBtZ2QuZ2V0VGFzayhqKTtcclxuICAgICAgICAgIGlmICh0YXNrICE9PSBudWxsKVxyXG4gICAgICAgICAgICBhd2FpdCAoPERhdGFWaWV3PnRhc2suRGF0YVZpZXcpLnByb2Nlc3NSZWNvdmVyeSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGZpbmQgYWxsIHRhc2tzIHdoaWNoIHdlcmUgdHJpZ2dlcmVkIGJ5IGEgc3BlY2lmaWMgdGFza1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0cmlnZ2VyaW5nVGFza1wiPnRoZSB0YXNrIHdobyB0cmlnZ2VyZWQgYWxsIG90aGVyIHRhc2tzLjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB2ZWN0b3IgY29udGFpbmluZyBhbGwgdGFza3Mgd2hpY2ggd2VyZSB0cmlnZ2VyZWQgYnkgdGhlIHBhcmFtZXRlciB0YXNrPC9yZXR1cm5zPlxyXG4gIGdldFRyaWdnZXJlZFRhc2tzKHRyaWdnZXJpbmdUYXNrOiBUYXNrKTogTGlzdDxUYXNrPiB7XHJcbiAgICBsZXQgbGlzdDogTGlzdDxUYXNrPiA9IG5ldyBMaXN0PFRhc2s+KCk7XHJcbiAgICBsZXQgdGFzazogVGFzaztcclxuICAgIGxldCB0YWc6IHN0cmluZyA9IHRyaWdnZXJpbmdUYXNrLmdldFRhc2tUYWcoKTtcclxuXHJcbiAgICB0aGlzLnN0YXJ0VGFza3NJdGVyYXRpb24oKTtcclxuXHJcbiAgICB3aGlsZSAoKHRhc2sgPSA8VGFzaz50aGlzLmdldE5leHRUYXNrKCkpICE9PSBudWxsKSB7XHJcbiAgICAgIGlmICh0YWcgPT09IHRhc2suUHJldmlvdXNseUFjdGl2ZVRhc2tJZClcclxuICAgICAgICBsaXN0LnB1c2godGFzayk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxpc3Q7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHJldHVybnMgdGFzayBsaXN0IGFjY29yZGluZyB0byB0aGUgcHJlZGljYXRlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJwXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIEdldFRhc2tzKHA6IChvYmo6IFRhc2spID0+IGJvb2xlYW4pOiBMaXN0PFRhc2s+IHtcclxuICAgIGxldCB0YXNrTGlzdDogTGlzdDxUYXNrPiA9IG5ldyBMaXN0PFRhc2s+KCk7XHJcblxyXG4gICAgdGhpcy5fbWdEYXRhVGFiLmZvckVhY2gobWdkID0+IHtcclxuICAgICAgaWYgKG1nZCAhPT0gbnVsbCAmJiAhbWdkLklzQWJvcnRpbmcpIHtcclxuICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbWdkLmdldFRhc2tzQ291bnQoKTsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICAgICBsZXQgdGFzazogVGFzayA9IG1nZC5nZXRUYXNrKGkpO1xyXG4gICAgICAgICAgaWYgKHRhc2sgIT09IG51bGwgJiYgcCh0YXNrKSkge1xyXG4gICAgICAgICAgICB0YXNrTGlzdC5wdXNoKHRhc2spO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRhc2tMaXN0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGN1cnJlbnQgaWQgb2YgYSB0YXNrIGFjY29yZGluZyB0byBpdHMgb3JpZ2luYWwgaWRcclxuICAvLy8gICBpdCB3aWxsIHVzdWFsbHkgcmV0dXJuIHRoZSBzYW1lIGlkIGFzIHNlbnQgdG8gaXQsIGJ1dCBmb3Igc3ViZm9ybSBhZnRlciBlcnJvciBhbmQgcmV0cnkgaXQgd2lsbFxyXG4gIC8vLyAgIGNvbnZlcnQgdGhlIG9yaWdpbmFsIGlkIHRvIHRoZSBjdXJyZW50LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrSWRcIj4tIG9yaWdpbmFsIHRhc2sgaWQ8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGN1cnJlbnQgdGFza2lkIGZvciB0aGlzIHRhc2s8L3JldHVybnM+XHJcbiAgZ2V0VGFza0lkQnlJZCh0YXNrSWQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAvLyBRQ1IgIzk4MDQ1NCAtIHRoZSB0YXNrIGlkIG1heSBjaGFuZ2UgZHVyaW5nIHRoZSB0YXNrJ3MgbGlmZXRpbWUsIHNvIHRhc2tJZCBtaWdodFxyXG4gICAgLy8gYmUgaG9sZGluZyB0aGUgb2xkIG9uZSAtIGZpbmQgdGhlIHRhc2sgYW5kIHJlZmV0Y2ggaXRzIGN1cnJlbnQgSUQuXHJcbiAgICBsZXQgdGFzazogSVRhc2sgPSB0aGlzLkdldFRhc2tCeUlEKHRhc2tJZCk7XHJcbiAgICBsZXQgdGFnOiBzdHJpbmcgPSB0YXNrSWQ7XHJcblxyXG4gICAgaWYgKHRhc2sgIT0gbnVsbClcclxuICAgICAgdGFnID0gdGFzay5nZXRUYXNrVGFnKCk7XHJcblxyXG4gICAgcmV0dXJuIHRhZztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm4gYWxsIHRvcCBsZXZlbCBmb3JtcyB0aGF0IGV4aXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBHZXRUb3BNb3N0Rm9ybXMoKTogTGlzdDxNZ0Zvcm1CYXNlPiB7XHJcbiAgICBsZXQgdGFzazogVGFzaztcclxuICAgIGxldCBmb3JtcyA9IG5ldyBMaXN0PE1nRm9ybUJhc2U+KCk7XHJcblxyXG4gICAgLy8gbW92ZSBvbiB0aGUgdGFza3MgYW5kIGFkZCB0aGUgZm9ybXMgdG8gdGhlIGFycmF5TGlzdFxyXG4gICAgdGhpcy5zdGFydFRhc2tzSXRlcmF0aW9uKCk7XHJcblxyXG4gICAgd2hpbGUgKCh0YXNrID0gPFRhc2s+dGhpcy5nZXROZXh0VGFzaygpKSAhPSBudWxsKSB7XHJcbiAgICAgIGxldCBmb3JtOiBNZ0Zvcm1CYXNlID0gdGFzay5nZXRGb3JtKCk7XHJcblxyXG4gICAgICBpZiAoIXRhc2suaXNBYm9ydGluZygpICYmIGZvcm0gIT0gbnVsbCAmJiAhZm9ybS5pc1N1YkZvcm0oKSlcclxuICAgICAgICBmb3Jtcy5wdXNoKGZvcm0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm1zO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBHZXRzIHRoZSBNR0RhdGEgdGhhdCBob2xkcy9zaG91bGQgaG9sZCB0aGUgc3RhcnR1cCBwcm9ncmFtLlxyXG4gIC8vLyBUaGUgbWV0aG9kIHRha2VzIGludG8gY29uc2lkZXJhdGlvbiB3aGV0aGVyIHRoZSBhcHBsaWNhdGlvbiB1c2VzIE1ESSBvciBub3QuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIEdldE1HRGF0YUZvclN0YXJ0dXBQcm9ncmFtKCk6IE1HRGF0YSB7XHJcbiAgICBEZWJ1Zy5Bc3NlcnQodGhpcy5fbWdEYXRhVGFiLmxlbmd0aCA+IDAsIFwiVGhlIG1haW4gcHJvZ3JhbSBtdXN0IGJlIHByb2Nlc3NlZCBiZWZvcmUgaW52b2tpbmcgdGhpcyBtZXRob2QuXCIpO1xyXG5cclxuICAgIGxldCBtYWluUHJvZ0J5Q3RsSWR4OiBUYXNrID0gdGhpcy5HZXRNYWluUHJvZ0J5Q3RsSWR4KDApO1xyXG4gICAgRGVidWcuQXNzZXJ0KG1haW5Qcm9nQnlDdGxJZHggIT09IG51bGwsIFwiVGhlIG1haW4gcHJvZ3JhbSBtdXN0IGJlIHByb2Nlc3NlZCBiZWZvcmUgaW52b2tpbmcgdGhpcyBtZXRob2QuXCIpO1xyXG5cclxuICAgIERlYnVnLkFzc2VydChtYWluUHJvZ0J5Q3RsSWR4LmdldE1nZElEKCkgPT09IDAsIFwiTWFpbiBwcm9ncmFtIGlzIGV4cGVjdGVkIHRvIGJlIG9uIE1HRGF0YSAwLiBJcyB0aGlzIGFuIGVycm9yP1wiKTtcclxuXHJcbiAgICAvLyBpZiB0aGUgbWFpbiBwcm9ncmFtIGRvZXMgbm90IGhhdmUgTURJIGZyYW1lLCB0aGUgc3RhcnR1cCBNR0RhdGEgaW5kZXggaXMgMC5cclxuICAgIHJldHVybiB0aGlzLl9tZ0RhdGFUYWIuZ2V0X0l0ZW0oMCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQWRkIGNvbW1hbmQsIGV4ZWN1dGUgcmVxdWVzdCBhbmQgZG8gcmVjb3JkIGN5Y2xlIGZvciBzdWJmb3JtcyB0aGF0IHRoZSBzZXJ2ZXIgc2VudCB0aGVpciBuZXcgZGF0YXZpZXdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNtZHNUb1NlcnZlclwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY21kVG9TZXJ2ZXJcIj5hZGRpdGlvbmFsIGNvbW1hbmQgdG8gdGhlIFNlcnZlcjwvcGFyYW0+XHJcbiAgYXN5bmMgZXhlY1JlcXVlc3RXaXRoU3ViZm9ybVJlY29yZEN5Y2xlKGNtZHNUb1NlcnZlcjogQ29tbWFuZHNUYWJsZSwgY21kVG9TZXJ2ZXI6IElDbGllbnRDb21tYW5kLCBleHA6IEV4cHJlc3Npb24pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuY2xlYW5Eb1N1YmZvcm1QcmVmaXhTdWZmaXgoKTtcclxuICAgIGNtZHNUb1NlcnZlci5BZGQoY21kVG9TZXJ2ZXIpO1xyXG5cclxuICAgIC8vIEF2b2lkIGltbWVkaWF0ZSBleGVjdXRpb24gb2Ygc2VydmVyIG9wZXJhdGlvbiBkdXJpbmcgYnJvd3NlciBjbG9zZSB0byBhbGxvdyBjbG9zaW5nIG9mIGNvbnRleHQgbGF0ZXIgYnkgc2VuZGluZyBCcm93c2VyRXNjIGNvbW1hbmQgdG8gc2VydmVyLlxyXG4gICAgaWYoIShNR0RhdGFDb2xsZWN0aW9uLkluc3RhbmNlLlN0YXJ0dXBNZ0RhdGEuZ2V0Rmlyc3RUYXNrKCkuSW5FbmRUYXNrICYmIE1HRGF0YUNvbGxlY3Rpb24uSW5zdGFuY2UuU3RhcnR1cE1nRGF0YS5nZXRGaXJzdFRhc2soKS5DbG9zaW5nRm9ybVVJKSlcclxuICAgICAgYXdhaXQgQ29tbWFuZHNQcm9jZXNzb3JNYW5hZ2VyLkdldENvbW1hbmRzUHJvY2Vzc29yKCkuRXhlY3V0ZShDb21tYW5kc1Byb2Nlc3NvckJhc2VfU2VuZGluZ0luc3RydWN0aW9uLlRBU0tTX0FORF9DT01NQU5EUywgQ29tbWFuZHNQcm9jZXNzb3JCYXNlX1Nlc3Npb25TdGFnZS5OT1JNQUwsIGV4cCk7XHJcblxyXG4gICAgYXdhaXQgdGhpcy5leGVjQWxsU3ViZm9ybVJlY29yZEN5Y2xlKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IENsZWFuIGZsYWcgZm9yIFN1YmZvcm0gcmVjb3JkIGN5Y2xlIDwvc3VtbWFyeT5cclxuICBjbGVhbkRvU3ViZm9ybVByZWZpeFN1ZmZpeCgpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLmdldFNpemUoKTsgaSsrKSB7XHJcbiAgICAgIGxldCBtZ2Q6IE1HRGF0YSA9IHRoaXMuZ2V0TUdEYXRhKGkpO1xyXG5cclxuICAgICAgaWYgKG1nZCA9PT0gbnVsbCB8fCBtZ2QuSXNBYm9ydGluZylcclxuICAgICAgICBjb250aW51ZTtcclxuXHJcbiAgICAgIGxldCB0YXNrc0NvdW50OiBudW1iZXIgPSBtZ2QuZ2V0VGFza3NDb3VudCgpO1xyXG4gICAgICBmb3IgKGxldCBqOiBudW1iZXIgPSAwOyBqIDwgdGFza3NDb3VudDsgaisrKSB7XHJcbiAgICAgICAgbGV0IHRhc2s6IFRhc2sgPSBtZ2QuZ2V0VGFzayhqKTtcclxuICAgICAgICB0YXNrLkRvU3ViZm9ybVByZWZpeFN1ZmZpeCA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBFeGVjdXRlIFJlY29yZCBjeWNsZSBmb3IgYWxsIHN1YmZvcm1zIHRoYXQgdGhlaXIgZmxhZyBpcyBvbiA8L3N1bW1hcnk+XHJcbiAgYXN5bmMgZXhlY0FsbFN1YmZvcm1SZWNvcmRDeWNsZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5nZXRTaXplKCk7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgbWdkOiBNR0RhdGEgPSB0aGlzLmdldE1HRGF0YShpKTtcclxuXHJcbiAgICAgIGlmIChtZ2QgPT09IG51bGwgfHwgbWdkLklzQWJvcnRpbmcpXHJcbiAgICAgICAgY29udGludWU7XHJcblxyXG4gICAgICBsZXQgdGFza3NDb3VudDogbnVtYmVyID0gbWdkLmdldFRhc2tzQ291bnQoKTtcclxuICAgICAgZm9yIChsZXQgajogbnVtYmVyID0gMDsgaiA8IHRhc2tzQ291bnQ7IGogPSBqICsgMSkge1xyXG4gICAgICAgIGxldCB0YXNrOiBUYXNrID0gbWdkLmdldFRhc2soaik7XHJcbiAgICAgICAgaWYgKHRhc2suSXNTdWJGb3JtICYmIHRhc2suRG9TdWJmb3JtUHJlZml4U3VmZml4KSB7XHJcbiAgICAgICAgICAvLyBJbiB0aGUgcmVjb3JkIHByZWZpeCBvZiB0aGUgY3VycmVudCB0YXNrIChjb21tb25IYW5kbGVyQmVmb3JlKSB3ZSBleGVjdXRlIHJlY29yZCBwcmVmaXggb2YgYWxsIGZhdGhlcnMuXHJcbiAgICAgICAgICAvLyBCdXQgd2hlbiB3ZSByZXR1cm4gZnJvbSB0aGUgc2VydmVyIHdlIGRvIG5vdCBuZWVkIGl0LiBTbyB3ZSBwcmV2ZW50IGZhdGhlciByZWNvcmQgcHJlZml4IGV4ZWN1dGlvbi5cclxuICAgICAgICAgIHRhc2suUGVyZm9ybVBhcmVudFJlY29yZFByZWZpeCA9IGZhbHNlO1xyXG4gICAgICAgICAgQWNjZXNzSGVscGVyLmV2ZW50c01hbmFnZXIucHVzaE5ld0V4ZWNTdGFja3MoKTtcclxuICAgICAgICAgIGF3YWl0IEFjY2Vzc0hlbHBlci5ldmVudHNNYW5hZ2VyLmhhbmRsZUludGVybmFsRXZlbnRXaXRoVGFza0FuZFN1YmZvcm1SZWZyZXNoKHRhc2ssIEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SRUNfUFJFRklYLCB0cnVlKTtcclxuXHJcbiAgICAgICAgICBpZiAoIUFjY2Vzc0hlbHBlci5ldmVudHNNYW5hZ2VyLkdldFN0b3BFeGVjdXRpb25GbGFnKCkpXHJcbiAgICAgICAgICAgIGF3YWl0IEFjY2Vzc0hlbHBlci5ldmVudHNNYW5hZ2VyLmhhbmRsZUludGVybmFsRXZlbnRXaXRoVGFzayh0YXNrLCBJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfUkVDX1NVRkZJWCk7XHJcblxyXG4gICAgICAgICAgQWNjZXNzSGVscGVyLmV2ZW50c01hbmFnZXIucG9wTmV3RXhlY1N0YWNrcygpO1xyXG4gICAgICAgICAgdGFzay5QZXJmb3JtUGFyZW50UmVjb3JkUHJlZml4ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,63 @@
1
+ import { Dictionary, List } from '@magic-xpa/mscorelib';
2
+ import { MgTimer } from '@magic-xpa/gui';
3
+ class TimerObjectCollection {
4
+ static MgDataToTimerObjList = new Dictionary();
5
+ }
6
+ export class RCTimer extends MgTimer {
7
+ _mgData = null;
8
+ _isIdle = false;
9
+ get TimerIntervalMiliSeconds() {
10
+ return this._timerIntervalMilliSeconds;
11
+ }
12
+ set IsIdleTimer(value) {
13
+ this._isIdle = value;
14
+ }
15
+ get IsIdleTimer() {
16
+ return this._isIdle;
17
+ }
18
+ constructor(mgData, milliseconds, isIdle) {
19
+ super(milliseconds);
20
+ this._mgData = mgData;
21
+ this.IsIdleTimer = isIdle;
22
+ let mgDataId = this._mgData.GetId().toString();
23
+ if (!TimerObjectCollection.MgDataToTimerObjList.ContainsKey(mgDataId))
24
+ TimerObjectCollection.MgDataToTimerObjList.Add(mgDataId, new List());
25
+ TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId).push(this);
26
+ }
27
+ GetMgdata() {
28
+ return this._mgData;
29
+ }
30
+ static StopTimer(mgData, milliseconds, isIdle) {
31
+ let timers = null;
32
+ let timer = null;
33
+ let mgDataId = mgData.GetId().toString();
34
+ if (TimerObjectCollection.MgDataToTimerObjList.ContainsKey(mgDataId)) {
35
+ timers = TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId);
36
+ timer = timers.find(rcTimer => {
37
+ return (rcTimer !== null) && (rcTimer._timerIntervalMilliSeconds === milliseconds && rcTimer._isIdle === isIdle);
38
+ });
39
+ if (timer != null) {
40
+ timer.Stop();
41
+ timers.Remove(timer);
42
+ }
43
+ if (timers.length === 0)
44
+ TimerObjectCollection.MgDataToTimerObjList.Remove(mgDataId);
45
+ }
46
+ }
47
+ static StopAll(mgData) {
48
+ let timers = null;
49
+ let mgDataId = mgData.GetId().toString();
50
+ if (TimerObjectCollection.MgDataToTimerObjList.ContainsKey(mgDataId))
51
+ timers = TimerObjectCollection.MgDataToTimerObjList.get_Item(mgDataId);
52
+ if (timers !== null) {
53
+ timers.forEach(rcTimer => {
54
+ if (rcTimer !== null) {
55
+ rcTimer.Stop();
56
+ }
57
+ });
58
+ timers.Clear();
59
+ TimerObjectCollection.MgDataToTimerObjList.Remove(mgDataId);
60
+ }
61
+ }
62
+ }
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUkNUaW1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvdGFza3MvUkNUaW1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl6QyxNQUFNLHFCQUFxQjtJQUN6QixNQUFNLENBQUMsb0JBQW9CLEdBQThCLElBQUksVUFBVSxFQUFpQixDQUFDOztBQUczRixNQUFNLE9BQU8sT0FBUSxTQUFRLE9BQU87SUFDMUIsT0FBTyxHQUFXLElBQUksQ0FBQztJQUN2QixPQUFPLEdBQVksS0FBSyxDQUFDO0lBR2pDLElBQUksd0JBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDO0lBQ3pDLENBQUM7SUFHRCxJQUFJLFdBQVcsQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVksTUFBYyxFQUFFLFlBQW9CLEVBQUUsTUFBZTtRQUMvRCxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFFMUIsSUFBSSxRQUFRLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2RCxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztZQUNuRSxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxFQUFXLENBQUMsQ0FBQztRQUVoRixxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFJRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFNRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQWMsRUFBRSxZQUFvQixFQUFFLE1BQWU7UUFDcEUsSUFBSSxNQUFNLEdBQWtCLElBQUksQ0FBQztRQUNqQyxJQUFJLEtBQUssR0FBWSxJQUFJLENBQUM7UUFDMUIsSUFBSSxRQUFRLEdBQVcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpELElBQUkscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDckUsTUFBTSxHQUFHLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2RSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDNUIsT0FBTyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFFLE9BQU8sQ0FBQywwQkFBMEIsS0FBSyxZQUFZLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxNQUFNLENBQUMsQ0FBQTtZQUNuSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUVsQixLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBRWIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQ3JCLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0gsQ0FBQztJQUlELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBYztRQUMzQixJQUFJLE1BQU0sR0FBa0IsSUFBSSxDQUFDO1FBQ2pDLElBQUksUUFBUSxHQUFXLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqRCxJQUFJLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDbEUsTUFBTSxHQUFHLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RSxJQUFJLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNwQixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUN2QixJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFFckIsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNqQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFHZixxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3Rpb25hcnksIExpc3QgfSBmcm9tICdAbWFnaWMteHBhL21zY29yZWxpYic7XHJcbmltcG9ydCB7IE1nVGltZXIgfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7IE1HRGF0YSB9IGZyb20gJy4vTUdEYXRhJztcclxuXHJcbi8vLzxzdW1tYXJ5Pm1hcHBpbmcgYmV0d2VlbiBlYWNoIE1nRGF0YSB0byBpdHMgbGlzdCBvZiB0aW1lciBvYmplY3RzLjwvc3VtbWFyeT5cclxuY2xhc3MgVGltZXJPYmplY3RDb2xsZWN0aW9uIHtcclxuICBzdGF0aWMgTWdEYXRhVG9UaW1lck9iakxpc3Q6IERpY3Rpb25hcnk8TGlzdDxSQ1RpbWVyPj4gPSBuZXcgRGljdGlvbmFyeTxMaXN0PFJDVGltZXI+PigpO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUkNUaW1lciBleHRlbmRzIE1nVGltZXIge1xyXG4gIHByaXZhdGUgX21nRGF0YTogTUdEYXRhID0gbnVsbDtcclxuICBwcml2YXRlIF9pc0lkbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8vPHN1bW1hcnk+UHVibGljIHByb3BlcnR5OiBzZXRcXGdldCBUaW1lckludGVydmFsIGluIHNlY29uZHM8L3N1bW1hcnk+XHJcbiAgZ2V0IFRpbWVySW50ZXJ2YWxNaWxpU2Vjb25kcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RpbWVySW50ZXJ2YWxNaWxsaVNlY29uZHM7XHJcbiAgfVxyXG5cclxuICAvLy88c3VtbWFyeT5QdWJsaWMgcHJvcGVydHkgcmV0dXJuaW5nIHRydWUgaWYgdGltZXIgaXMgaWRsZSBlbHNlIGZhbHNlLjwvc3VtbWFyeT5cclxuICBzZXQgSXNJZGxlVGltZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2lzSWRsZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IElzSWRsZVRpbWVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzSWRsZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKG1nRGF0YTogTUdEYXRhLCBtaWxsaXNlY29uZHM6IG51bWJlciwgaXNJZGxlOiBib29sZWFuKSB7XHJcbiAgICBzdXBlcihtaWxsaXNlY29uZHMpO1xyXG4gICAgdGhpcy5fbWdEYXRhID0gbWdEYXRhO1xyXG4gICAgdGhpcy5Jc0lkbGVUaW1lciA9IGlzSWRsZTtcclxuXHJcbiAgICBsZXQgbWdEYXRhSWQ6IHN0cmluZyA9IHRoaXMuX21nRGF0YS5HZXRJZCgpLnRvU3RyaW5nKCk7XHJcblxyXG4gICAgaWYgKCFUaW1lck9iamVjdENvbGxlY3Rpb24uTWdEYXRhVG9UaW1lck9iakxpc3QuQ29udGFpbnNLZXkobWdEYXRhSWQpKVxyXG4gICAgICBUaW1lck9iamVjdENvbGxlY3Rpb24uTWdEYXRhVG9UaW1lck9iakxpc3QuQWRkKG1nRGF0YUlkLCBuZXcgTGlzdDxSQ1RpbWVyPigpKTtcclxuXHJcbiAgICBUaW1lck9iamVjdENvbGxlY3Rpb24uTWdEYXRhVG9UaW1lck9iakxpc3QuZ2V0X0l0ZW0obWdEYXRhSWQpLnB1c2godGhpcyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+cmV0dXJucyBNZ0RhdGEuPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgR2V0TWdkYXRhKCk6IE1HRGF0YSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWdEYXRhO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlN0b3BzIHRoZSB0aW1lciBjb3JyZXNwb25kaW5nIHRvIE1HRGF0YSBwYXNzZWQgd2l0aCB0aGUgaW50ZXJ2YWwgc3BlY2lmaWVkIGluIHNlY29uZHMuPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1nRGF0YVwiPk1nRGF0YSBvYmplY3Q8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInNlY29uZHNcIj5UaW1lciBpbnRlcnZhbDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaXNJZGxlXCI+SXMgaWRsZSB0aW1lciBvciBub3Q8L3BhcmFtPlxyXG4gIHN0YXRpYyBTdG9wVGltZXIobWdEYXRhOiBNR0RhdGEsIG1pbGxpc2Vjb25kczogbnVtYmVyLCBpc0lkbGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCB0aW1lcnM6IExpc3Q8UkNUaW1lcj4gPSBudWxsO1xyXG4gICAgbGV0IHRpbWVyOiBSQ1RpbWVyID0gbnVsbDtcclxuICAgIGxldCBtZ0RhdGFJZDogc3RyaW5nID0gbWdEYXRhLkdldElkKCkudG9TdHJpbmcoKTtcclxuXHJcbiAgICBpZiAoVGltZXJPYmplY3RDb2xsZWN0aW9uLk1nRGF0YVRvVGltZXJPYmpMaXN0LkNvbnRhaW5zS2V5KG1nRGF0YUlkKSkge1xyXG4gICAgICB0aW1lcnMgPSBUaW1lck9iamVjdENvbGxlY3Rpb24uTWdEYXRhVG9UaW1lck9iakxpc3QuZ2V0X0l0ZW0obWdEYXRhSWQpO1xyXG5cclxuICAgICAgdGltZXIgPSB0aW1lcnMuZmluZChyY1RpbWVyID0+IHtcclxuICAgICAgICByZXR1cm4gKHJjVGltZXIgIT09IG51bGwpICYmICggcmNUaW1lci5fdGltZXJJbnRlcnZhbE1pbGxpU2Vjb25kcyA9PT0gbWlsbGlzZWNvbmRzICYmIHJjVGltZXIuX2lzSWRsZSA9PT0gaXNJZGxlKVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0aW1lciAhPSBudWxsKSB7XHJcbiAgICAgICAgLy8gUGxhY2luZyBTVE9QX1RJTUVSIGNvbW1hbmQgaW4gcXVldWUuXHJcbiAgICAgICAgdGltZXIuU3RvcCgpO1xyXG5cclxuICAgICAgICB0aW1lcnMuUmVtb3ZlKHRpbWVyKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRpbWVycy5sZW5ndGggPT09IDApXHJcbiAgICAgICAgVGltZXJPYmplY3RDb2xsZWN0aW9uLk1nRGF0YVRvVGltZXJPYmpMaXN0LlJlbW92ZShtZ0RhdGFJZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+U3RvcHMgYWxsIHRoZSB0aW1lcnMuPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIk1nRGF0YVwiPjwvcGFyYW0+XHJcbiAgc3RhdGljIFN0b3BBbGwobWdEYXRhOiBNR0RhdGEpOiB2b2lkIHtcclxuICAgIGxldCB0aW1lcnM6IExpc3Q8UkNUaW1lcj4gPSBudWxsO1xyXG4gICAgbGV0IG1nRGF0YUlkOiBzdHJpbmcgPSBtZ0RhdGEuR2V0SWQoKS50b1N0cmluZygpO1xyXG5cclxuICAgIGlmIChUaW1lck9iamVjdENvbGxlY3Rpb24uTWdEYXRhVG9UaW1lck9iakxpc3QuQ29udGFpbnNLZXkobWdEYXRhSWQpKVxyXG4gICAgICB0aW1lcnMgPSBUaW1lck9iamVjdENvbGxlY3Rpb24uTWdEYXRhVG9UaW1lck9iakxpc3QuZ2V0X0l0ZW0obWdEYXRhSWQpO1xyXG5cclxuICAgIGlmICh0aW1lcnMgIT09IG51bGwpIHtcclxuICAgICAgdGltZXJzLmZvckVhY2gocmNUaW1lciA9PiB7XHJcbiAgICAgICAgaWYgKHJjVGltZXIgIT09IG51bGwpIHtcclxuICAgICAgICAgIC8vIFBsYWNpbmcgU1RPUF9USU1FUiBjb21tYW5kIGluIHF1ZXVlLlxyXG4gICAgICAgICAgcmNUaW1lci5TdG9wKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRpbWVycy5DbGVhcigpO1xyXG5cclxuICAgICAgLy8gUmVtb3ZpbmcgdGhlIGtleSBmcm9tIHRoZSBoYXNoIHRhYmxlLCBhZnRlciB0aGUgbGlzdCBvZiB0aW1lciBvYmplY3RzIGFyZSBjbGVhcmVkLlxyXG4gICAgICBUaW1lck9iamVjdENvbGxlY3Rpb24uTWdEYXRhVG9UaW1lck9iakxpc3QuUmVtb3ZlKG1nRGF0YUlkKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,45 @@
1
+ import { TaskServiceBase } from './TaskServiceBase';
2
+ import { ReturnResult } from '../util/ReturnResult';
3
+ import { MsgInterface, WindowType } from '@magic-xpa/utils';
4
+ export class RemoteTaskService extends TaskServiceBase {
5
+ constructor() {
6
+ super();
7
+ }
8
+ GetTaskTag(defaultValue) {
9
+ return defaultValue;
10
+ }
11
+ GetDataviewManagerForVirtuals(task) {
12
+ return task.DataviewManager.RemoteDataviewManager;
13
+ }
14
+ PrepareTask(task) {
15
+ task.DataViewWasRetrieved = true;
16
+ let result = super.PrepareTask(task);
17
+ if (task.getMGData().IsModal && task.getForm() !== null) {
18
+ task.getForm().ConcreteWindowType = WindowType.Overlay;
19
+ }
20
+ return result;
21
+ }
22
+ GetEventTaskId(originalTaskId) {
23
+ return originalTaskId;
24
+ }
25
+ ShouldEvaluatePropertyLocally(propId) {
26
+ return false;
27
+ }
28
+ InitTaskPrefixExecutedFlag(task) {
29
+ task.TaskPrefixExecuted = true;
30
+ }
31
+ RemoveRecomputes(parentTask) {
32
+ parentTask.DataView.GetFieldsTab().resetRecomp();
33
+ }
34
+ GetOwnerTransactionTask(task) {
35
+ let OwnerTransactionTask = task;
36
+ if (task.DataviewManager.RemoteDataviewManager.Transaction !== null)
37
+ OwnerTransactionTask = task.DataviewManager.RemoteDataviewManager.Transaction.OwnerTask;
38
+ return OwnerTransactionTask;
39
+ }
40
+ static async PreparePropMainDisplay(task) {
41
+ await task.ComputeMainDisplay();
42
+ return task.FormIsLegal() ? ReturnResult.SuccessfulResult : new ReturnResult(MsgInterface.BRKTAB_STR_ERR_FORM);
43
+ }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlVGFza1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3Rhc2tzL1JlbW90ZVRhc2tTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUkxRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQUNwRDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQU9ELFVBQVUsQ0FBQyxZQUFvQjtRQUM3QixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBTUQsNkJBQTZCLENBQUMsSUFBVTtRQUN0QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUM7SUFDcEQsQ0FBQztJQU1ELFdBQVcsQ0FBQyxJQUFVO1FBQ3BCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFDakMsSUFBSSxNQUFNLEdBQWlCLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFHbkQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN6RCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQVNELGNBQWMsQ0FBRSxjQUFzQjtRQUNwQyxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBRUQsNkJBQTZCLENBQUMsTUFBYztRQUMxQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFNRCwwQkFBMEIsQ0FBQyxJQUFVO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDakMsQ0FBQztJQVFELGdCQUFnQixDQUFDLFVBQWdCO1FBQ2pCLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQU9ELHVCQUF1QixDQUFDLElBQVU7UUFDaEMsSUFBSSxvQkFBb0IsR0FBUyxJQUFJLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsS0FBSyxJQUFJO1lBQ2pFLG9CQUFvQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUUxRixPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFPRCxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQVU7UUFDNUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNuSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Rhc2tTZXJ2aWNlQmFzZX0gZnJvbSAnLi9UYXNrU2VydmljZUJhc2UnO1xyXG5pbXBvcnQge0RhdGF2aWV3TWFuYWdlckJhc2V9IGZyb20gJy4uL2RhdGEvRGF0YXZpZXdNYW5hZ2VyQmFzZSc7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0fSBmcm9tICcuLi91dGlsL1JldHVyblJlc3VsdCc7XHJcbmltcG9ydCB7TXNnSW50ZXJmYWNlLCBXaW5kb3dUeXBlfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHtUYXNrfSBmcm9tICcuL1Rhc2snO1xyXG5pbXBvcnQge0ZpZWxkc1RhYmxlRXh0IGFzIEZpZWxkc1RhYmxlfSBmcm9tICcuLi9kYXRhL0ZpZWxkc1RhYmxlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBSZW1vdGVUYXNrU2VydmljZSBleHRlbmRzIFRhc2tTZXJ2aWNlQmFzZSB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAhIVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZGVmYXVsdFZhbHVlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIEdldFRhc2tUYWcoZGVmYXVsdFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgR2V0RGF0YXZpZXdNYW5hZ2VyRm9yVmlydHVhbHModGFzazogVGFzayk6IERhdGF2aWV3TWFuYWdlckJhc2Uge1xyXG4gICAgcmV0dXJuIHRhc2suRGF0YXZpZXdNYW5hZ2VyLlJlbW90ZURhdGF2aWV3TWFuYWdlcjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUHJlcGFyZSBUYXNrIGJlZm9yZSBleGVjdXRlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrXCI+PC9wYXJhbT5cclxuICBQcmVwYXJlVGFzayh0YXNrOiBUYXNrKTogUmV0dXJuUmVzdWx0IHtcclxuICAgIHRhc2suRGF0YVZpZXdXYXNSZXRyaWV2ZWQgPSB0cnVlO1xyXG4gICAgbGV0IHJlc3VsdDogUmV0dXJuUmVzdWx0ID0gc3VwZXIuUHJlcGFyZVRhc2sodGFzayk7XHJcblxyXG4gICAgLy8gV2hlbiBydW5uaW5nIGFzIGEgbW9kYWwgdGFzaywgZm9yY2UgdGhlIHdpbmRvdyB0byBiZSBtb2RhbFxyXG4gICAgaWYgKHRhc2suZ2V0TUdEYXRhKCkuSXNNb2RhbCAmJiB0YXNrLmdldEZvcm0oKSAhPT0gbnVsbCkge1xyXG4gICAgICB0YXNrLmdldEZvcm0oKS5Db25jcmV0ZVdpbmRvd1R5cGUgPSBXaW5kb3dUeXBlLk92ZXJsYXk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0IHRoZSBldmVudCB0YXNrIGlkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJvcmlnaW5hbFRhc2tJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZXZ0XCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIEdldEV2ZW50VGFza0lkKCBvcmlnaW5hbFRhc2tJZDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBvcmlnaW5hbFRhc2tJZDtcclxuICB9XHJcblxyXG4gIFNob3VsZEV2YWx1YXRlUHJvcGVydHlMb2NhbGx5KHByb3BJZDogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGluIGNvbm5lY3RlZCB0YXNrcywgdGFzayBwcmVmaXggaXMgYWx3YXlzIGV4ZWN1dGVkIGJ5IHRoZSBzZXJ2ZXJcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tcIj48L3BhcmFtPlxyXG4gIEluaXRUYXNrUHJlZml4RXhlY3V0ZWRGbGFnKHRhc2s6IFRhc2spOiB2b2lkIHtcclxuICAgIHRhc2suVGFza1ByZWZpeEV4ZWN1dGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gV2hlbiB0aGUgc3ViZm9ybSBpcyBjbG9zZWQgYmVmb3JlIGNhbGwgd2l0aCBhIGRlc3RpbmF0aW9uLCB3ZSBuZWVkIHRvIGNsZWFuIGFsbCBwYXJlbnQgcmVjb21wdXRlcy5cclxuICAvLy8gUmVjb21wdXRlcyBhcmUgc2VuZCBmcm9tIHRoZSBzZXJ2ZXIgdG9nZXRoZXIgd2l0aCBhIG5ldyBvcGVuZWQgc3ViZm9ybS5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInBhcmVudFRhc2tcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInN1YmZvcm1UYXNrXCI+PC9wYXJhbT5cclxuICBSZW1vdmVSZWNvbXB1dGVzKHBhcmVudFRhc2s6IFRhc2spOiB2b2lkIHtcclxuICAgICg8RmllbGRzVGFibGU+cGFyZW50VGFzay5EYXRhVmlldy5HZXRGaWVsZHNUYWIoKSkucmVzZXRSZWNvbXAoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZ2V0IHRoZSBvd25lciB0cmFuc2FjdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBHZXRPd25lclRyYW5zYWN0aW9uVGFzayh0YXNrOiBUYXNrKTogVGFzayB7XHJcbiAgICBsZXQgT3duZXJUcmFuc2FjdGlvblRhc2s6IFRhc2sgPSB0YXNrO1xyXG5cclxuICAgIGlmICh0YXNrLkRhdGF2aWV3TWFuYWdlci5SZW1vdGVEYXRhdmlld01hbmFnZXIuVHJhbnNhY3Rpb24gIT09IG51bGwpXHJcbiAgICAgIE93bmVyVHJhbnNhY3Rpb25UYXNrID0gdGFzay5EYXRhdmlld01hbmFnZXIuUmVtb3RlRGF0YXZpZXdNYW5hZ2VyLlRyYW5zYWN0aW9uLk93bmVyVGFzaztcclxuXHJcbiAgICByZXR1cm4gT3duZXJUcmFuc2FjdGlvblRhc2s7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBwcmVwYXJlIHRoZSBtYWluIGRpc3BsYXlcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBhc3luYyBQcmVwYXJlUHJvcE1haW5EaXNwbGF5KHRhc2s6IFRhc2spOiBQcm9taXNlPFJldHVyblJlc3VsdD4ge1xyXG4gICAgYXdhaXQgdGFzay5Db21wdXRlTWFpbkRpc3BsYXkoKTtcclxuICAgICAgcmV0dXJuIHRhc2suRm9ybUlzTGVnYWwoKSA/IFJldHVyblJlc3VsdC5TdWNjZXNzZnVsUmVzdWx0IDogbmV3IFJldHVyblJlc3VsdChNc2dJbnRlcmZhY2UuQlJLVEFCX1NUUl9FUlJfRk9STSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==