@magic-xpa/engine 4.1100.0-dev4110.104 → 4.1100.0-dev4110.106

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 (381) hide show
  1. package/esm2020/index.mjs +2 -188
  2. package/fesm2015/magic-xpa-engine.mjs +0 -30835
  3. package/fesm2015/magic-xpa-engine.mjs.map +1 -1
  4. package/fesm2020/magic-xpa-engine.mjs +0 -30004
  5. package/fesm2020/magic-xpa-engine.mjs.map +1 -1
  6. package/index.d.ts +1 -187
  7. package/package.json +4 -4
  8. package/esm2020/src/AccessHelper.mjs +0 -9
  9. package/esm2020/src/ClientManager.mjs +0 -399
  10. package/esm2020/src/CommandsProcessorBase.mjs +0 -58
  11. package/esm2020/src/CommandsProcessorManager.mjs +0 -26
  12. package/esm2020/src/CommandsTable.mjs +0 -162
  13. package/esm2020/src/ConstInterface.mjs +0 -516
  14. package/esm2020/src/CurrentClientVersion.mjs +0 -2
  15. package/esm2020/src/FlowMonitorInterface.mjs +0 -16
  16. package/esm2020/src/GUIManager.mjs +0 -62
  17. package/esm2020/src/GlobalCommandsManager.mjs +0 -34
  18. package/esm2020/src/GuiEventsProcessor.mjs +0 -154
  19. package/esm2020/src/ICommandsTable.mjs +0 -2
  20. package/esm2020/src/ServerConfig.mjs +0 -117
  21. package/esm2020/src/bridge/IGuiEvent.mjs +0 -20
  22. package/esm2020/src/bridge/MagicBridge.mjs +0 -41
  23. package/esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs +0 -11
  24. package/esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs +0 -9
  25. package/esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs +0 -9
  26. package/esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs +0 -9
  27. package/esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs +0 -23
  28. package/esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs +0 -15
  29. package/esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +0 -60
  30. package/esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs +0 -26
  31. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +0 -260
  32. package/esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs +0 -69
  33. package/esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs +0 -23
  34. package/esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +0 -21
  35. package/esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +0 -20
  36. package/esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs +0 -8
  37. package/esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs +0 -13
  38. package/esm2020/src/commands/ClientToServer/DataviewCommand.mjs +0 -44
  39. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +0 -36
  40. package/esm2020/src/commands/ClientToServer/EventCommand.mjs +0 -40
  41. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +0 -67
  42. package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +0 -22
  43. package/esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs +0 -11
  44. package/esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs +0 -2
  45. package/esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs +0 -21
  46. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +0 -23
  47. package/esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +0 -23
  48. package/esm2020/src/commands/ClientToServer/QueryCommand.mjs +0 -21
  49. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +0 -27
  50. package/esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs +0 -27
  51. package/esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +0 -24
  52. package/esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs +0 -39
  53. package/esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs +0 -15
  54. package/esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs +0 -9
  55. package/esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs +0 -21
  56. package/esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +0 -24
  57. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +0 -28
  58. package/esm2020/src/commands/ClientToServer/UnloadCommand.mjs +0 -15
  59. package/esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +0 -18
  60. package/esm2020/src/commands/DataViewCommandBase.mjs +0 -10
  61. package/esm2020/src/commands/IClientCommand.mjs +0 -2
  62. package/esm2020/src/commands/IClientTargetedCommand.mjs +0 -9
  63. package/esm2020/src/commands/IClientToServerCommandInfo.mjs +0 -2
  64. package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +0 -65
  65. package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +0 -22
  66. package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +0 -62
  67. package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +0 -33
  68. package/esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs +0 -25
  69. package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +0 -27
  70. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +0 -45
  71. package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +0 -221
  72. package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +0 -15
  73. package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +0 -15
  74. package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +0 -15
  75. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +0 -37
  76. package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +0 -83
  77. package/esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +0 -132
  78. package/esm2020/src/communications/IConnectionStateManager.mjs +0 -2
  79. package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +0 -17
  80. package/esm2020/src/data/DataSourceIdKey.mjs +0 -3
  81. package/esm2020/src/data/DataView.mjs +0 -1610
  82. package/esm2020/src/data/DataViewBase.mjs +0 -4
  83. package/esm2020/src/data/DataviewManager.mjs +0 -28
  84. package/esm2020/src/data/DataviewManagerBase.mjs +0 -15
  85. package/esm2020/src/data/DvCache.mjs +0 -67
  86. package/esm2020/src/data/Field.mjs +0 -646
  87. package/esm2020/src/data/FieldBase.mjs +0 -18
  88. package/esm2020/src/data/FieldsTable.mjs +0 -103
  89. package/esm2020/src/data/IRecordsTable.mjs +0 -2
  90. package/esm2020/src/data/Key.mjs +0 -88
  91. package/esm2020/src/data/Record.mjs +0 -846
  92. package/esm2020/src/data/RecordOutOfDataViewException.mjs +0 -16
  93. package/esm2020/src/data/RecordsTable.mjs +0 -267
  94. package/esm2020/src/data/TaskTransactionManager.mjs +0 -103
  95. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +0 -74
  96. package/esm2020/src/enums.mjs +0 -24
  97. package/esm2020/src/env/EnvVariablesTable.mjs +0 -340
  98. package/esm2020/src/env/Environment.mjs +0 -489
  99. package/esm2020/src/env/ILanguageData.mjs +0 -2
  100. package/esm2020/src/env/LanguageData.mjs +0 -226
  101. package/esm2020/src/env/MirrorString.mjs +0 -65
  102. package/esm2020/src/event/ActionManager.mjs +0 -91
  103. package/esm2020/src/event/Event.mjs +0 -1333
  104. package/esm2020/src/event/EventHandler.mjs +0 -766
  105. package/esm2020/src/event/EventHandlerPosition.mjs +0 -204
  106. package/esm2020/src/event/EventsManager.mjs +0 -2975
  107. package/esm2020/src/event/IEventsManager.mjs +0 -7
  108. package/esm2020/src/event/RunTimeEvent.mjs +0 -392
  109. package/esm2020/src/event/RunTimeEventBase.mjs +0 -4
  110. package/esm2020/src/event/UserEventsTable.mjs +0 -47
  111. package/esm2020/src/exp/ExpTable.mjs +0 -59
  112. package/esm2020/src/exp/Expression.mjs +0 -200
  113. package/esm2020/src/exp/ExpressionDict.mjs +0 -727
  114. package/esm2020/src/exp/ExpressionEvaluator.mjs +0 -4208
  115. package/esm2020/src/exp/ExpressionLocalJpn.mjs +0 -314
  116. package/esm2020/src/exp/GlobalParamsTable.mjs +0 -85
  117. package/esm2020/src/exp/YesNoExp.mjs +0 -36
  118. package/esm2020/src/gui/CreatedFormVector.mjs +0 -23
  119. package/esm2020/src/gui/FormsTable.mjs +0 -66
  120. package/esm2020/src/gui/MgControl.mjs +0 -353
  121. package/esm2020/src/gui/MgForm.mjs +0 -1181
  122. package/esm2020/src/http/HttpManager.mjs +0 -97
  123. package/esm2020/src/http/client/HttpClientAsync.mjs +0 -67
  124. package/esm2020/src/http/client/HttpClientBase.mjs +0 -132
  125. package/esm2020/src/http/client/HttpClientEvents.mjs +0 -39
  126. package/esm2020/src/http/client/HttpClientSync.mjs +0 -42
  127. package/esm2020/src/http/client/HttpUtility.mjs +0 -84
  128. package/esm2020/src/http/client/ICommunicationsFailureHandler.mjs +0 -2
  129. package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +0 -18
  130. package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +0 -18
  131. package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +0 -18
  132. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +0 -880
  133. package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +0 -25
  134. package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +0 -24
  135. package/esm2020/src/remote/RemoteDataViewCommandFactory.mjs +0 -61
  136. package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +0 -16
  137. package/esm2020/src/remote/RemoteDataviewManager.mjs +0 -17
  138. package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +0 -11
  139. package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +0 -17
  140. package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +0 -13
  141. package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +0 -16
  142. package/esm2020/src/remote/ServerError.mjs +0 -40
  143. package/esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +0 -20
  144. package/esm2020/src/rt/Argument.mjs +0 -265
  145. package/esm2020/src/rt/ArgumentsList.mjs +0 -103
  146. package/esm2020/src/rt/Boundary.mjs +0 -152
  147. package/esm2020/src/rt/CompMainPrgTable.mjs +0 -65
  148. package/esm2020/src/rt/DataviewHeaderBase.mjs +0 -96
  149. package/esm2020/src/rt/DataviewHeaderFactory.mjs +0 -7
  150. package/esm2020/src/rt/DataviewHeaders.mjs +0 -53
  151. package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +0 -38
  152. package/esm2020/src/rt/ExecutionStack.mjs +0 -94
  153. package/esm2020/src/rt/ExecutionStackEntry.mjs +0 -17
  154. package/esm2020/src/rt/HandlersTable.mjs +0 -96
  155. package/esm2020/src/rt/IDataSourceViewDefinition.mjs +0 -2
  156. package/esm2020/src/rt/IDataviewHeader.mjs +0 -2
  157. package/esm2020/src/rt/IResultValue.mjs +0 -2
  158. package/esm2020/src/rt/LastFocusedManager.mjs +0 -67
  159. package/esm2020/src/rt/Operation.mjs +0 -735
  160. package/esm2020/src/rt/OperationTable.mjs +0 -67
  161. package/esm2020/src/rt/Recompute.mjs +0 -355
  162. package/esm2020/src/rt/RecomputeTable.mjs +0 -63
  163. package/esm2020/src/rt/RemoteDataviewHeader.mjs +0 -108
  164. package/esm2020/src/rt/ResultValue.mjs +0 -12
  165. package/esm2020/src/rt/TableCache.mjs +0 -177
  166. package/esm2020/src/rt/TableCacheManager.mjs +0 -67
  167. package/esm2020/src/rt/Transaction.mjs +0 -53
  168. package/esm2020/src/security/UserDetails.mjs +0 -71
  169. package/esm2020/src/tasks/IMGDataCollection.mjs +0 -2
  170. package/esm2020/src/tasks/MGData.mjs +0 -552
  171. package/esm2020/src/tasks/MGDataCollection.mjs +0 -252
  172. package/esm2020/src/tasks/RCTimer.mjs +0 -63
  173. package/esm2020/src/tasks/RemoteTaskService.mjs +0 -45
  174. package/esm2020/src/tasks/Task.mjs +0 -2496
  175. package/esm2020/src/tasks/TaskBase.mjs +0 -87
  176. package/esm2020/src/tasks/TaskServiceBase.mjs +0 -25
  177. package/esm2020/src/tasks/TasksTable.mjs +0 -80
  178. package/esm2020/src/tasks/sort/Sort.mjs +0 -7
  179. package/esm2020/src/tasks/sort/SortCollection.mjs +0 -67
  180. package/esm2020/src/util/ConstUtils.mjs +0 -14
  181. package/esm2020/src/util/FlowMonitorQueue.mjs +0 -453
  182. package/esm2020/src/util/HeapSort.mjs +0 -70
  183. package/esm2020/src/util/IMirrorXML.mjs +0 -2
  184. package/esm2020/src/util/IServerConfig.mjs +0 -2
  185. package/esm2020/src/util/MgBlockingQueue.mjs +0 -2
  186. package/esm2020/src/util/MgPriorityBlockingQueue.mjs +0 -74
  187. package/esm2020/src/util/MgPriorityQueue.mjs +0 -66
  188. package/esm2020/src/util/ParamParseResult.mjs +0 -8
  189. package/esm2020/src/util/PrmMap.mjs +0 -151
  190. package/esm2020/src/util/ReturnResult.mjs +0 -46
  191. package/esm2020/src/util/ReturnResultBase.mjs +0 -18
  192. package/esm2020/src/util/Scrambler.mjs +0 -89
  193. package/esm2020/src/util/UniqueIDUtils.mjs +0 -12
  194. package/esm2020/src/util/cookie.service.mjs +0 -92
  195. package/src/AccessHelper.d.ts +0 -20
  196. package/src/ClientManager.d.ts +0 -32
  197. package/src/CommandsProcessorBase.d.ts +0 -23
  198. package/src/CommandsProcessorManager.d.ts +0 -6
  199. package/src/CommandsTable.d.ts +0 -22
  200. package/src/ConstInterface.d.ts +0 -515
  201. package/src/CurrentClientVersion.d.ts +0 -1
  202. package/src/FlowMonitorInterface.d.ts +0 -15
  203. package/src/GUIManager.d.ts +0 -17
  204. package/src/GlobalCommandsManager.d.ts +0 -17
  205. package/src/GuiEventsProcessor.d.ts +0 -24
  206. package/src/ICommandsTable.d.ts +0 -9
  207. package/src/ServerConfig.d.ts +0 -34
  208. package/src/bridge/IGuiEvent.d.ts +0 -19
  209. package/src/bridge/MagicBridge.d.ts +0 -16
  210. package/src/commands/ClientOriginatedCommandTaskTag.d.ts +0 -8
  211. package/src/commands/ClientToServer/AddUserLocateDataViewCommand.d.ts +0 -4
  212. package/src/commands/ClientToServer/AddUserRangeDataviewCommand.d.ts +0 -6
  213. package/src/commands/ClientToServer/AddUserSortDataViewCommand.d.ts +0 -6
  214. package/src/commands/ClientToServer/BrowserEscEventCommand.d.ts +0 -8
  215. package/src/commands/ClientToServer/ClientOriginatedCommand.d.ts +0 -8
  216. package/src/commands/ClientToServer/ClientOriginatedCommandSerializer.d.ts +0 -6
  217. package/src/commands/ClientToServer/ColumnSortEventCommand.d.ts +0 -10
  218. package/src/commands/ClientToServer/CommandFactory.d.ts +0 -64
  219. package/src/commands/ClientToServer/CommandSerializationHelper.d.ts +0 -20
  220. package/src/commands/ClientToServer/ComputeEventCommand.d.ts +0 -8
  221. package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +0 -7
  222. package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +0 -7
  223. package/src/commands/ClientToServer/ControlItemsRefreshCommand.d.ts +0 -6
  224. package/src/commands/ClientToServer/DataViewOutputCommand.d.ts +0 -9
  225. package/src/commands/ClientToServer/DataviewCommand.d.ts +0 -32
  226. package/src/commands/ClientToServer/EvaluateCommand.d.ts +0 -15
  227. package/src/commands/ClientToServer/EventCommand.d.ts +0 -15
  228. package/src/commands/ClientToServer/ExecOperCommand.d.ts +0 -23
  229. package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +0 -8
  230. package/src/commands/ClientToServer/GlobalParamsQueryCommand.d.ts +0 -5
  231. package/src/commands/ClientToServer/ICommandTaskTag.d.ts +0 -3
  232. package/src/commands/ClientToServer/IndexChangeEventCommand.d.ts +0 -8
  233. package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +0 -10
  234. package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +0 -8
  235. package/src/commands/ClientToServer/QueryCommand.d.ts +0 -8
  236. package/src/commands/ClientToServer/RecomputeCommand.d.ts +0 -11
  237. package/src/commands/ClientToServer/RefreshEventCommand.d.ts +0 -12
  238. package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +0 -10
  239. package/src/commands/ClientToServer/RollbackEventCommand.d.ts +0 -14
  240. package/src/commands/ClientToServer/SelectProgramCommand.d.ts +0 -6
  241. package/src/commands/ClientToServer/SetTransactionStateDataviewCommand.d.ts +0 -5
  242. package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +0 -8
  243. package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +0 -9
  244. package/src/commands/ClientToServer/TransactionCommand.d.ts +0 -12
  245. package/src/commands/ClientToServer/UnloadCommand.d.ts +0 -7
  246. package/src/commands/ClientToServer/WriteMessageToServerLogCommand.d.ts +0 -6
  247. package/src/commands/DataViewCommandBase.d.ts +0 -6
  248. package/src/commands/IClientCommand.d.ts +0 -2
  249. package/src/commands/IClientTargetedCommand.d.ts +0 -12
  250. package/src/commands/IClientToServerCommandInfo.d.ts +0 -3
  251. package/src/commands/ServerToClient/AbortCommand.d.ts +0 -11
  252. package/src/commands/ServerToClient/AddLocateCommand.d.ts +0 -6
  253. package/src/commands/ServerToClient/AddRangeCommand.d.ts +0 -10
  254. package/src/commands/ServerToClient/AddSortCommand.d.ts +0 -9
  255. package/src/commands/ServerToClient/ClientRefreshCommand.d.ts +0 -7
  256. package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +0 -12
  257. package/src/commands/ServerToClient/EnhancedVerifyCommand.d.ts +0 -13
  258. package/src/commands/ServerToClient/OpenURLCommand.d.ts +0 -21
  259. package/src/commands/ServerToClient/ResetLocateCommand.d.ts +0 -6
  260. package/src/commands/ServerToClient/ResetRangeCommand.d.ts +0 -6
  261. package/src/commands/ServerToClient/ResetSortCommand.d.ts +0 -6
  262. package/src/commands/ServerToClient/ResultCommand.d.ts +0 -10
  263. package/src/commands/ServerToClient/VerifyCommand.d.ts +0 -17
  264. package/src/commands/ServerToClient/XMLBasedCommandBuilder.d.ts +0 -11
  265. package/src/communications/IConnectionStateManager.d.ts +0 -4
  266. package/src/communications/InteractiveCommunicationsFailureHandler.d.ts +0 -6
  267. package/src/data/DataSourceIdKey.d.ts +0 -2
  268. package/src/data/DataView.d.ts +0 -162
  269. package/src/data/DataViewBase.d.ts +0 -12
  270. package/src/data/DataviewManager.d.ts +0 -14
  271. package/src/data/DataviewManagerBase.d.ts +0 -11
  272. package/src/data/DvCache.d.ts +0 -15
  273. package/src/data/Field.d.ts +0 -103
  274. package/src/data/FieldBase.d.ts +0 -23
  275. package/src/data/FieldsTable.d.ts +0 -27
  276. package/src/data/IRecordsTable.d.ts +0 -7
  277. package/src/data/Key.d.ts +0 -15
  278. package/src/data/Record.d.ts +0 -156
  279. package/src/data/RecordOutOfDataViewException.d.ts +0 -10
  280. package/src/data/RecordsTable.d.ts +0 -38
  281. package/src/data/TaskTransactionManager.d.ts +0 -17
  282. package/src/data/XMLBasedDcValuesBuilder.d.ts +0 -11
  283. package/src/enums.d.ts +0 -21
  284. package/src/env/EnvVariablesTable.d.ts +0 -17
  285. package/src/env/Environment.d.ts +0 -118
  286. package/src/env/ILanguageData.d.ts +0 -3
  287. package/src/env/LanguageData.d.ts +0 -20
  288. package/src/env/MirrorString.d.ts +0 -15
  289. package/src/event/ActionManager.d.ts +0 -14
  290. package/src/event/Event.d.ts +0 -79
  291. package/src/event/EventHandler.d.ts +0 -66
  292. package/src/event/EventHandlerPosition.d.ts +0 -25
  293. package/src/event/EventsManager.d.ts +0 -204
  294. package/src/event/IEventsManager.d.ts +0 -77
  295. package/src/event/RunTimeEvent.d.ts +0 -123
  296. package/src/event/RunTimeEventBase.d.ts +0 -5
  297. package/src/event/UserEventsTable.d.ts +0 -11
  298. package/src/exp/ExpTable.d.ts +0 -11
  299. package/src/exp/Expression.d.ts +0 -37
  300. package/src/exp/ExpressionDict.d.ts +0 -12
  301. package/src/exp/ExpressionEvaluator.d.ts +0 -198
  302. package/src/exp/ExpressionLocalJpn.d.ts +0 -18
  303. package/src/exp/GlobalParamsTable.d.ts +0 -19
  304. package/src/exp/YesNoExp.d.ts +0 -9
  305. package/src/gui/CreatedFormVector.d.ts +0 -10
  306. package/src/gui/FormsTable.d.ts +0 -15
  307. package/src/gui/MgControl.d.ts +0 -60
  308. package/src/gui/MgForm.d.ts +0 -93
  309. package/src/http/HttpManager.d.ts +0 -25
  310. package/src/http/client/HttpClientAsync.d.ts +0 -16
  311. package/src/http/client/HttpClientBase.d.ts +0 -30
  312. package/src/http/client/HttpClientEvents.d.ts +0 -18
  313. package/src/http/client/HttpClientSync.d.ts +0 -17
  314. package/src/http/client/HttpUtility.d.ts +0 -10
  315. package/src/http/client/ICommunicationsFailureHandler.d.ts +0 -5
  316. package/src/remote/AddUserLocateRemoteDataViewCommand.d.ts +0 -8
  317. package/src/remote/AddUserRangeRemoteDataViewCommand.d.ts +0 -8
  318. package/src/remote/AddUserSortRemoteDataViewCommand.d.ts +0 -8
  319. package/src/remote/RemoteCommandsProcessor.d.ts +0 -51
  320. package/src/remote/RemoteControlItemsRefreshCommand.d.ts +0 -8
  321. package/src/remote/RemoteDataViewCommandBase.d.ts +0 -10
  322. package/src/remote/RemoteDataViewCommandFactory.d.ts +0 -6
  323. package/src/remote/RemoteDataViewCommandUpdateNonModifiable.d.ts +0 -8
  324. package/src/remote/RemoteDataviewManager.d.ts +0 -9
  325. package/src/remote/RemoteInitDataViewCommand.d.ts +0 -7
  326. package/src/remote/ResetUserLocateRemoteDataviewCommand.d.ts +0 -7
  327. package/src/remote/ResetUserRangeRemoteDataviewCommand.d.ts +0 -7
  328. package/src/remote/ResetUserSortRemoteDataviewCommand.d.ts +0 -7
  329. package/src/remote/ServerError.d.ts +0 -16
  330. package/src/remote/SetTransactionStateRemoteDataViewCommand.d.ts +0 -8
  331. package/src/rt/Argument.d.ts +0 -36
  332. package/src/rt/ArgumentsList.d.ts +0 -24
  333. package/src/rt/Boundary.d.ts +0 -27
  334. package/src/rt/CompMainPrgTable.d.ts +0 -10
  335. package/src/rt/DataviewHeaderBase.d.ts +0 -34
  336. package/src/rt/DataviewHeaderFactory.d.ts +0 -5
  337. package/src/rt/DataviewHeaders.d.ts +0 -12
  338. package/src/rt/DataviewHeadersSaxHandler.d.ts +0 -10
  339. package/src/rt/ExecutionStack.d.ts +0 -22
  340. package/src/rt/ExecutionStackEntry.d.ts +0 -7
  341. package/src/rt/HandlersTable.d.ts +0 -19
  342. package/src/rt/IDataSourceViewDefinition.d.ts +0 -6
  343. package/src/rt/IDataviewHeader.d.ts +0 -10
  344. package/src/rt/IResultValue.d.ts +0 -4
  345. package/src/rt/LastFocusedManager.d.ts +0 -23
  346. package/src/rt/Operation.d.ts +0 -97
  347. package/src/rt/OperationTable.d.ts +0 -15
  348. package/src/rt/Recompute.d.ts +0 -41
  349. package/src/rt/RecomputeTable.d.ts +0 -9
  350. package/src/rt/RemoteDataviewHeader.d.ts +0 -14
  351. package/src/rt/ResultValue.d.ts +0 -7
  352. package/src/rt/TableCache.d.ts +0 -29
  353. package/src/rt/TableCacheManager.d.ts +0 -10
  354. package/src/rt/Transaction.d.ts +0 -23
  355. package/src/security/UserDetails.d.ts +0 -16
  356. package/src/tasks/IMGDataCollection.d.ts +0 -26
  357. package/src/tasks/MGData.d.ts +0 -63
  358. package/src/tasks/MGDataCollection.d.ts +0 -42
  359. package/src/tasks/RCTimer.d.ts +0 -13
  360. package/src/tasks/RemoteTaskService.d.ts +0 -16
  361. package/src/tasks/Task.d.ts +0 -312
  362. package/src/tasks/TaskBase.d.ts +0 -123
  363. package/src/tasks/TaskServiceBase.d.ts +0 -16
  364. package/src/tasks/TasksTable.d.ts +0 -21
  365. package/src/tasks/sort/Sort.d.ts +0 -4
  366. package/src/tasks/sort/SortCollection.d.ts +0 -11
  367. package/src/util/ConstUtils.d.ts +0 -3
  368. package/src/util/FlowMonitorQueue.d.ts +0 -70
  369. package/src/util/HeapSort.d.ts +0 -6
  370. package/src/util/IMirrorXML.d.ts +0 -6
  371. package/src/util/IServerConfig.d.ts +0 -11
  372. package/src/util/MgBlockingQueue.d.ts +0 -5
  373. package/src/util/MgPriorityBlockingQueue.d.ts +0 -17
  374. package/src/util/MgPriorityQueue.d.ts +0 -13
  375. package/src/util/ParamParseResult.d.ts +0 -6
  376. package/src/util/PrmMap.d.ts +0 -28
  377. package/src/util/ReturnResult.d.ts +0 -18
  378. package/src/util/ReturnResultBase.d.ts +0 -11
  379. package/src/util/Scrambler.d.ts +0 -10
  380. package/src/util/UniqueIDUtils.d.ts +0 -4
  381. package/src/util/cookie.service.d.ts +0 -8
@@ -1,162 +0,0 @@
1
- import { IClientTargetedCommand } from './commands/IClientTargetedCommand';
2
- import { XMLBasedCommandBuilder } from './commands/ServerToClient/XMLBasedCommandBuilder';
3
- import { ResultCommand } from './commands/ServerToClient/ResultCommand';
4
- import { AbortCommand } from './commands/ServerToClient/AbortCommand';
5
- import { List } from '@magic-xpa/mscorelib';
6
- import { VerifyCommand } from './commands/ServerToClient/VerifyCommand';
7
- import { ConstInterface } from './ConstInterface';
8
- import { ClientOriginatedCommandSerializer } from './commands/ClientToServer/ClientOriginatedCommandSerializer';
9
- import { GlobalCommandsManager } from './GlobalCommandsManager';
10
- import { AccessHelper } from './AccessHelper';
11
- export class CommandsTable {
12
- constructor() {
13
- this._cmds = null;
14
- this._iterationIdx = 0;
15
- this._cmds = new List();
16
- }
17
- static createCommandsTable() {
18
- return new CommandsTable();
19
- }
20
- fillData(parser) {
21
- while (this.initInnerObjects(parser.getNextTag(), parser)) {
22
- }
23
- }
24
- initInnerObjects(foundTagName, parser) {
25
- if (foundTagName == null)
26
- return false;
27
- if (foundTagName === ConstInterface.MG_TAG_COMMAND) {
28
- let cmd = new XMLBasedCommandBuilder().fillData(parser);
29
- this._cmds.push(cmd);
30
- }
31
- else
32
- return false;
33
- return true;
34
- }
35
- async Execute(res) {
36
- let currFrame = GlobalCommandsManager.Instance.getCmdFrame();
37
- GlobalCommandsManager.Instance.add1toCmdFrame();
38
- let firstBlocking = -1;
39
- let i, j;
40
- let cmd;
41
- for (i = 0; i < this.getSize(); i = i + 1) {
42
- cmd = this.getCmd(i);
43
- if (cmd.IsBlocking && firstBlocking === -1)
44
- firstBlocking = i;
45
- else if (cmd instanceof ResultCommand && firstBlocking !== -1) {
46
- this._cmds.Insert(firstBlocking, cmd);
47
- this._cmds.RemoveAt(i + 1);
48
- }
49
- }
50
- for (i = 0; i < this.getSize(); i = i + 1) {
51
- cmd = this.getCmd(i);
52
- cmd.Frame = currFrame;
53
- if (cmd.IsBlocking) {
54
- for (j = i + 1; j < this.getSize(); j = j + 1)
55
- GlobalCommandsManager.Instance.addUnframedCmd(this.getCmd(j));
56
- this._cmds.SetSize(i + 1);
57
- break;
58
- }
59
- }
60
- while (this.getSize() > 0) {
61
- const tmpCmd = this.extractCmd(currFrame);
62
- if (tmpCmd instanceof IClientTargetedCommand)
63
- cmd = tmpCmd;
64
- if (cmd != null) {
65
- if (cmd.ShouldExecute) {
66
- await cmd.Execute(res);
67
- }
68
- else {
69
- GlobalCommandsManager.Instance.addCommandsExecutedAfterTaskStarted(cmd);
70
- }
71
- }
72
- else
73
- break;
74
- }
75
- }
76
- extractCmd(frame) {
77
- let size = this.getSize();
78
- let cmd = null;
79
- let verifyCmd = null;
80
- let verifyIndex;
81
- let verifyTask = null;
82
- let abortTask = null;
83
- let startIterationIdx;
84
- let tid;
85
- if (size === 0)
86
- return null;
87
- if (this._iterationIdx >= size)
88
- this._iterationIdx = 0;
89
- startIterationIdx = this._iterationIdx;
90
- for (; this._iterationIdx < size; this._iterationIdx++) {
91
- cmd = ((this.getCmd(this._iterationIdx) instanceof AbortCommand) ? this.getCmd(this._iterationIdx) : null);
92
- if (cmd != null && !cmd.TaskTag.startsWith('-') && cmd.Frame === frame) {
93
- for (verifyIndex = 0; verifyIndex < this._iterationIdx; verifyIndex++) {
94
- verifyCmd = ((this.getCmd(verifyIndex) instanceof VerifyCommand) ? this.getCmd(verifyIndex) : null);
95
- if (verifyCmd != null && verifyCmd.Frame === frame) {
96
- verifyTask = AccessHelper.mgDataTable.GetTaskByID(verifyCmd.TaskTag);
97
- abortTask = AccessHelper.mgDataTable.GetTaskByID(cmd.TaskTag);
98
- if (verifyTask != null && verifyTask.isDescendentOf(abortTask)) {
99
- this._cmds.RemoveAt(verifyIndex);
100
- this._iterationIdx--;
101
- return verifyCmd;
102
- }
103
- }
104
- }
105
- this._cmds.RemoveAt(this._iterationIdx);
106
- size = this.getSize();
107
- for (startIterationIdx = 0; startIterationIdx < size; startIterationIdx++) {
108
- tid = this.getCmd(startIterationIdx).TaskTag;
109
- if (tid != null && tid.substr(1) === cmd.TaskTag) {
110
- this._cmds.RemoveAt(startIterationIdx);
111
- break;
112
- }
113
- }
114
- return cmd;
115
- }
116
- }
117
- for (verifyIndex = 0; verifyIndex < size; verifyIndex++) {
118
- verifyCmd = ((this.getCmd(verifyIndex) instanceof VerifyCommand) ? this.getCmd(verifyIndex) : null);
119
- if (verifyCmd != null && verifyCmd.Frame === frame &&
120
- AccessHelper.mgDataTable.GetTaskByID(verifyCmd.TaskTag) != null) {
121
- this._cmds.RemoveAt(verifyIndex);
122
- return verifyCmd;
123
- }
124
- }
125
- for (this._iterationIdx = 0; this._iterationIdx < size; this._iterationIdx++) {
126
- cmd = this.getCmd(this._iterationIdx);
127
- if (cmd.Frame === frame) {
128
- this._cmds.RemoveAt(this._iterationIdx);
129
- return cmd;
130
- }
131
- }
132
- return null;
133
- }
134
- getCmd(idx) {
135
- return this._cmds.get_Item(idx);
136
- }
137
- buildXML(message) {
138
- for (let i = 0; i < this._cmds.length; i = i + 1) {
139
- let cmd = this._cmds.get_Item(i);
140
- message.Append(ClientOriginatedCommandSerializer.Serialize(cmd, AccessHelper.mgDataTable.getCurrMGData()));
141
- }
142
- this.clear();
143
- }
144
- Add(cmd) {
145
- this._cmds.push(cmd);
146
- }
147
- Clear() {
148
- this._cmds.Clear();
149
- }
150
- ExtractCommand(commandIndex) {
151
- let command = this.getCmd(commandIndex);
152
- this._cmds.RemoveAt(commandIndex);
153
- return command;
154
- }
155
- clear() {
156
- this._cmds.Clear();
157
- }
158
- getSize() {
159
- return this._cmds.length;
160
- }
161
- }
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZHNUYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvQ29tbWFuZHNUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUV4RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BFLE9BQU8sRUFBZ0IsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUU5RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsTUFBTSxPQUFPLGFBQWE7SUFJeEI7UUFIUSxVQUFLLEdBQXlCLElBQUksQ0FBQztRQUNuQyxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUdoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFNRCxRQUFRLENBQUMsTUFBaUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1NBQzFEO0lBQ0gsQ0FBQztJQU1PLGdC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SSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDeEQsSUFBSSxHQUFHLEdBQXFELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxNQUFNLENBQUMsaUNBQWlDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM1RztRQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFNRCxHQUFHLENBQUMsR0FBbUI7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUtELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFPRCxjQUFjLENBQUMsWUFBb0I7UUFDakMsSUFBSSxPQUFPLEdBQW1CLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUtELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFLRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYbWxQYXJzZXIgfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHtJQ2xpZW50VGFyZ2V0ZWRDb21tYW5kfSBmcm9tICcuL2NvbW1hbmRzL0lDbGllbnRUYXJnZXRlZENvbW1hbmQnO1xyXG5pbXBvcnQge1hNTEJhc2VkQ29tbWFuZEJ1aWxkZXJ9IGZyb20gJy4vY29tbWFuZHMvU2VydmVyVG9DbGllbnQvWE1MQmFzZWRDb21tYW5kQnVpbGRlcic7XHJcbmltcG9ydCB7SVJlc3VsdFZhbHVlfSBmcm9tICcuL3J0L0lSZXN1bHRWYWx1ZSc7XHJcbmltcG9ydCB7UmVzdWx0Q29tbWFuZH0gZnJvbSAnLi9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9SZXN1bHRDb21tYW5kJztcclxuaW1wb3J0IHtJQ2xpZW50Q29tbWFuZH0gZnJvbSAnLi9jb21tYW5kcy9JQ2xpZW50Q29tbWFuZCc7XHJcbmltcG9ydCB7QWJvcnRDb21tYW5kfSBmcm9tICcuL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L0Fib3J0Q29tbWFuZCc7XHJcbmltcG9ydCB7U3RyaW5nQnVpbGRlciwgTGlzdH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQge1ZlcmlmeUNvbW1hbmR9IGZyb20gJy4vY29tbWFuZHMvU2VydmVyVG9DbGllbnQvVmVyaWZ5Q29tbWFuZCc7XHJcbmltcG9ydCB7Q2xpZW50T3JpZ2luYXRlZENvbW1hbmR9IGZyb20gJy4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmQnO1xyXG5pbXBvcnQge0NvbnN0SW50ZXJmYWNlfSBmcm9tICcuL0NvbnN0SW50ZXJmYWNlJztcclxuaW1wb3J0IHtUYXNrfSBmcm9tICcuL3Rhc2tzL1Rhc2snO1xyXG5pbXBvcnQge0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kU2VyaWFsaXplcn0gZnJvbSAnLi9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFNlcmlhbGl6ZXInO1xyXG5pbXBvcnQgeyBJQ29tbWFuZHNUYWJsZSB9IGZyb20gJy4vSUNvbW1hbmRzVGFibGUnO1xyXG5pbXBvcnQgeyBHbG9iYWxDb21tYW5kc01hbmFnZXIgfSBmcm9tICcuL0dsb2JhbENvbW1hbmRzTWFuYWdlcic7XHJcbmltcG9ydCB7IEFjY2Vzc0hlbHBlciB9IGZyb20gJy4vQWNjZXNzSGVscGVyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBDb21tYW5kc1RhYmxlIGltcGxlbWVudHMgSUNvbW1hbmRzVGFibGV7XHJcbiAgcHJpdmF0ZSBfY21kczogTGlzdDxJQ2xpZW50Q29tbWFuZD4gPSBudWxsO1xyXG4gIHByaXZhdGUgX2l0ZXJhdGlvbklkeDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9jbWRzID0gbmV3IExpc3QoKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGVDb21tYW5kc1RhYmxlKCk6SUNvbW1hbmRzVGFibGUge1xyXG4gICAgcmV0dXJuIG5ldyBDb21tYW5kc1RhYmxlKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgVG8gcGFyc2UgaW5wdXQgc3RyaW5nIGFuZCBmaWxsICBfY21kc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiBpbmRleCBvZiBlbmQgbGFzdCAgPGNvbW1hbmQgLi4uPiB0YWc8L3JldHVybnM+XHJcbiAgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIHdoaWxlICh0aGlzLmluaXRJbm5lck9iamVjdHMocGFyc2VyLmdldE5leHRUYWcoKSwgcGFyc2VyKSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFRvIGFsbG9jYXRlIGFuZCBmaWxsIGlubmVyIG9iamVjdHMgb2YgdGhlIGNsYXNzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZvdW5kVGFnTmFtZVwiPiAgbmFtZSBvZiBpbm5lciB0YWcgPC9wYXJhbT5cclxuICBwcml2YXRlIGluaXRJbm5lck9iamVjdHMoZm91bmRUYWdOYW1lOiBzdHJpbmcsIHBhcnNlcjogWG1sUGFyc2VyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09IG51bGwpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09PSBDb25zdEludGVyZmFjZS5NR19UQUdfQ09NTUFORCkge1xyXG4gICAgICBsZXQgY21kOiBJQ2xpZW50VGFyZ2V0ZWRDb21tYW5kID0gbmV3IFhNTEJhc2VkQ29tbWFuZEJ1aWxkZXIoKS5maWxsRGF0YShwYXJzZXIpIGFzIElDbGllbnRUYXJnZXRlZENvbW1hbmQ7XHJcbiAgICAgIHRoaXMuX2NtZHMucHVzaChjbWQpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBFeGVjdXRlIGFsbCBjb21tYW5kcyBpbiBjb21tYW5kIHRhYmxlIGFuZCBkZWxldGUgdGhlbVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVzXCI+cmVzdWx0LjwvcGFyYW0+XHJcbiAgYXN5bmMgRXhlY3V0ZShyZXM6IElSZXN1bHRWYWx1ZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IGN1cnJGcmFtZTogbnVtYmVyID0gR2xvYmFsQ29tbWFuZHNNYW5hZ2VyLkluc3RhbmNlLmdldENtZEZyYW1lKCk7IC8vIGNtZEZyYW1lKys7ICBzYXZlIGEgbG9jYWwgdmFsdWUgb2YgdGhlIGZyYW1lXHJcbiAgICBHbG9iYWxDb21tYW5kc01hbmFnZXIuSW5zdGFuY2UuYWRkMXRvQ21kRnJhbWUoKTtcclxuICAgIGxldCBmaXJzdEJsb2NraW5nOiBudW1iZXIgPSAtMTtcclxuICAgIGxldCBpOiBudW1iZXIsIGo6IG51bWJlcjtcclxuICAgIGxldCBjbWQ6IElDbGllbnRUYXJnZXRlZENvbW1hbmQ7XHJcblxyXG4gICAgLy8gZnJhbWVzIGFyZSB1c2VkIGhlcmUgdG8gbWFrZSBzdXJlIHRoYXQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQgcmVjdXJzaXZlbHlcclxuICAgIC8vIHRoZSBpbm5lciBjYWxsIHdpbGwgbm90IGV4ZWN1dGUgY29tbWFuZHMgdGhhdCBzaG91bGQgYmUgZXhlY3V0ZWQgYnkgc29tZSBvdXRlclxyXG4gICAgLy8gY2FsbCB0byB0aGUgbWV0aG9kXHJcblxyXG4gICAgLy8gRmlyc3Qgc3RlcCAtIG1vdmUgYWxsIHJlc3VsdCBjb21tYW5kcyBiZWZvcmUgYW55IGJsb2NraW5nIGNvbW1hbmRzIChRQ1IgIzY5MzQyOClcclxuICAgIC8vIGl0IGNhbid0IGJlIHRoYXQgdGhleSBiZWxvbmcgdG8gdGhlIGJsb2NraW5nIHRhc2suXHJcbiAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5nZXRTaXplKCk7IGkgPSBpICsgMSkge1xyXG5cclxuICAgICAgY21kID0gdGhpcy5nZXRDbWQoaSkgYXMgSUNsaWVudFRhcmdldGVkQ29tbWFuZDtcclxuICAgICAgaWYgKGNtZC5Jc0Jsb2NraW5nICYmIGZpcnN0QmxvY2tpbmcgPT09IC0xKVxyXG4gICAgICAgIGZpcnN0QmxvY2tpbmcgPSBpO1xyXG4gICAgICBlbHNlIGlmIChjbWQgaW5zdGFuY2VvZiBSZXN1bHRDb21tYW5kICYmIGZpcnN0QmxvY2tpbmcgIT09IC0xKSB7XHJcbiAgICAgICAgdGhpcy5fY21kcy5JbnNlcnQoZmlyc3RCbG9ja2luZywgY21kKTtcclxuICAgICAgICB0aGlzLl9jbWRzLlJlbW92ZUF0KGkgKyAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gc2V0IHRoZSBmcmFtZSBmb3IgY29tbWFuZHMgd2hpY2ggaGFzIG5vIGZyYW1lIHlldFxyXG4gICAgZm9yIChpID0gMDsgaSA8IHRoaXMuZ2V0U2l6ZSgpOyBpID0gaSArIDEpIHtcclxuXHJcbiAgICAgIGNtZCA9IHRoaXMuZ2V0Q21kKGkpIGFzIElDbGllbnRUYXJnZXRlZENvbW1hbmQ7XHJcbiAgICAgIGNtZC5GcmFtZSA9IGN1cnJGcmFtZTtcclxuXHJcbiAgICAgIC8vIElmIGEgY29tbWFuZCBibG9ja3MgdGhlIGNhbGxlciwgZm9sbG93aW5nIGNvbW1hbmRzIGFyZSBtb3ZlZCB0b1xyXG4gICAgICAvLyB0aGUgbmV4dCBhY3RpdmUgTUdkYXRhLCBzbyB0aGV5IHdpbGwgYmUgZXhlY3V0ZWQgKFFDUiAjNDM4Mzg3KVxyXG4gICAgICBpZiAoY21kLklzQmxvY2tpbmcpIHtcclxuICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IHRoaXMuZ2V0U2l6ZSgpOyBqID0gaiArIDEpXHJcbiAgICAgICAgICBHbG9iYWxDb21tYW5kc01hbmFnZXIuSW5zdGFuY2UuYWRkVW5mcmFtZWRDbWQodGhpcy5nZXRDbWQoaikpO1xyXG5cclxuICAgICAgICB0aGlzLl9jbWRzLlNldFNpemUoaSArIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd2hpbGUgKHRoaXMuZ2V0U2l6ZSgpID4gMCkge1xyXG4gICAgICAvLyBUT0RPOiBDaGVjayAnYXMnIGZvciBJbnRlcmZhY2UgaW4gdHlwZXNjcmlwdFxyXG4gICAgICBjb25zdCB0bXBDbWQgPSB0aGlzLmV4dHJhY3RDbWQoY3VyckZyYW1lKTtcclxuICAgICAgaWYgKHRtcENtZCBpbnN0YW5jZW9mIElDbGllbnRUYXJnZXRlZENvbW1hbmQpXHJcbiAgICAgICAgY21kID0gdG1wQ21kO1xyXG5cclxuICAgICAgaWYgKGNtZCAhPSBudWxsKSB7XHJcbiAgICAgICAgaWYgKGNtZC5TaG91bGRFeGVjdXRlKSB7XHJcbiAgICAgICAgICBhd2FpdCBjbWQuRXhlY3V0ZShyZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIEdsb2JhbENvbW1hbmRzTWFuYWdlci5JbnN0YW5jZS5hZGRDb21tYW5kc0V4ZWN1dGVkQWZ0ZXJUYXNrU3RhcnRlZChjbWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgbmV4dCBjb21tYW5kIHRvIGV4ZWN1dGUgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBzdWNoIGNvbW1hbmRcclxuICAvLy8gICB0aGUgYWJvcnQgY29tbWFuZHMgYXJlIHJldHVybmVkIGZpcnN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImZyYW1lXCI+dGhlIGZyYW1lIGZyb20gd2hpY2ggdG8gZXh0cmFjdCBhIGNvbW1hbmQgPC9wYXJhbT5cclxuICBwcml2YXRlIGV4dHJhY3RDbWQoZnJhbWU6IG51bWJlcik6IElDbGllbnRDb21tYW5kIHtcclxuICAgIGxldCBzaXplOiBudW1iZXIgPSB0aGlzLmdldFNpemUoKTtcclxuICAgIGxldCBjbWQ6IElDbGllbnRUYXJnZXRlZENvbW1hbmQgPSBudWxsO1xyXG4gICAgbGV0IHZlcmlmeUNtZDogSUNsaWVudFRhcmdldGVkQ29tbWFuZCA9IG51bGw7XHJcbiAgICBsZXQgdmVyaWZ5SW5kZXg6IG51bWJlcjtcclxuICAgIGxldCB2ZXJpZnlUYXNrOiBUYXNrID0gbnVsbDtcclxuICAgIGxldCBhYm9ydFRhc2s6IFRhc2sgPSBudWxsO1xyXG4gICAgbGV0IHN0YXJ0SXRlcmF0aW9uSWR4OiBudW1iZXI7XHJcbiAgICBsZXQgdGlkOiBzdHJpbmc7XHJcblxyXG4gICAgaWYgKHNpemUgPT09IDApXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLl9pdGVyYXRpb25JZHggPj0gc2l6ZSlcclxuICAgICAgdGhpcy5faXRlcmF0aW9uSWR4ID0gMDtcclxuXHJcbiAgICBzdGFydEl0ZXJhdGlvbklkeCA9IHRoaXMuX2l0ZXJhdGlvbklkeDtcclxuXHJcbiAgICAvLyB0cnkgdG8gZmluZCBhbiBBQk9SVCBjb21tYW5kIGFuZCByZXR1cm4gaXRcclxuICAgIGZvciAoOyB0aGlzLl9pdGVyYXRpb25JZHggPCBzaXplOyB0aGlzLl9pdGVyYXRpb25JZHgrKykge1xyXG4gICAgICBjbWQgPSAoKHRoaXMuZ2V0Q21kKHRoaXMuX2l0ZXJhdGlvbklkeCkgaW5zdGFuY2VvZiBBYm9ydENvbW1hbmQpID8gPEFib3J0Q29tbWFuZD50aGlzLmdldENtZCh0aGlzLl9pdGVyYXRpb25JZHgpIDogbnVsbCk7XHJcbiAgICAgIGlmIChjbWQgIT0gbnVsbCAmJiAhY21kLlRhc2tUYWcuc3RhcnRzV2l0aCgnLScpICYmIGNtZC5GcmFtZSA9PT0gZnJhbWUpIHtcclxuICAgICAgICAvLyBpZiBhbiBhYm9ydCBjb21tYW5kIHdhcyBmb3VuZCwgZXhlY3V0ZSBhbGwgcHJldmlvdXMgdmVyaWZ5IGNvbW1hbmRzIG9mIHRoZSB0YXNrIG9yIGl0cycgc3ViLXRhc2tzXHJcbiAgICAgICAgZm9yICh2ZXJpZnlJbmRleCA9IDA7IHZlcmlmeUluZGV4IDwgdGhpcy5faXRlcmF0aW9uSWR4OyB2ZXJpZnlJbmRleCsrKSB7XHJcbiAgICAgICAgICB2ZXJpZnlDbWQgPSAoKHRoaXMuZ2V0Q21kKHZlcmlmeUluZGV4KSBpbnN0YW5jZW9mIFZlcmlmeUNvbW1hbmQpID8gPFZlcmlmeUNvbW1hbmQ+dGhpcy5nZXRDbWQodmVyaWZ5SW5kZXgpIDogbnVsbCk7XHJcbiAgICAgICAgICBpZiAodmVyaWZ5Q21kICE9IG51bGwgJiYgdmVyaWZ5Q21kLkZyYW1lID09PSBmcmFtZSkge1xyXG4gICAgICAgICAgICB2ZXJpZnlUYXNrID0gPFRhc2s+QWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLkdldFRhc2tCeUlEKHZlcmlmeUNtZC5UYXNrVGFnKTtcclxuICAgICAgICAgICAgYWJvcnRUYXNrID0gPFRhc2s+QWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLkdldFRhc2tCeUlEKGNtZC5UYXNrVGFnKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFNvbWV0aW1lcyB0aGUgdGFzayB3aGljaCBpc3N1ZWQgdGhlIHZlcmlmeSBpcyBub3Qga25vd24gdG8gdGhlIGNsaWVudCAoZS5nLiBhIGJhdGNoIHRhc2spLlxyXG4gICAgICAgICAgICBpZiAodmVyaWZ5VGFzayAhPSBudWxsICYmIHZlcmlmeVRhc2suaXNEZXNjZW5kZW50T2YoYWJvcnRUYXNrKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2NtZHMuUmVtb3ZlQXQodmVyaWZ5SW5kZXgpO1xyXG4gICAgICAgICAgICAgIHRoaXMuX2l0ZXJhdGlvbklkeC0tO1xyXG4gICAgICAgICAgICAgIHJldHVybiB2ZXJpZnlDbWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fY21kcy5SZW1vdmVBdCh0aGlzLl9pdGVyYXRpb25JZHgpO1xyXG5cclxuICAgICAgICAvLyBmb3IgYW4gYWJvcnQgQ01EIG9mIHRhc2sgXCJ0aWRcIiwgdGhlIHNlcnZlciBtaWdodCBzZW5kIGFub3RoZXIgYWJvcnQgQ01EIGZvciB0YXNrXHJcbiAgICAgICAgLy8gXCItdGlkXCIuIFdlIHNob3VsZCBjb21iaW5lIHRoZW0gYW5kIGdldCByaWQgb2YgdGhlIHNlY29uZCBDTUQuXHJcbiAgICAgICAgc2l6ZSA9IHRoaXMuZ2V0U2l6ZSgpO1xyXG4gICAgICAgIGZvciAoc3RhcnRJdGVyYXRpb25JZHggPSAwOyBzdGFydEl0ZXJhdGlvbklkeCA8IHNpemU7IHN0YXJ0SXRlcmF0aW9uSWR4KyspIHtcclxuICAgICAgICAgIHRpZCA9ICg8SUNsaWVudFRhcmdldGVkQ29tbWFuZD50aGlzLmdldENtZChzdGFydEl0ZXJhdGlvbklkeCkpLlRhc2tUYWc7XHJcbiAgICAgICAgICBpZiAodGlkICE9IG51bGwgJiYgdGlkLnN1YnN0cigxKSA9PT0gY21kLlRhc2tUYWcpIHtcclxuICAgICAgICAgICAgdGhpcy5fY21kcy5SZW1vdmVBdChzdGFydEl0ZXJhdGlvbklkeCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNtZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGF0IHRoaXMgc3RhZ2Ugbm8gQUJPUlQgY29tbWFuZCB3YXMgZm91bmQgaW4gdGhlIHRhYmxlXHJcblxyXG4gICAgZm9yICh2ZXJpZnlJbmRleCA9IDA7IHZlcmlmeUluZGV4IDwgc2l6ZTsgdmVyaWZ5SW5kZXgrKykge1xyXG4gICAgICB2ZXJpZnlDbWQgPSAoKHRoaXMuZ2V0Q21kKHZlcmlmeUluZGV4KSBpbnN0YW5jZW9mIFZlcmlmeUNvbW1hbmQpID8gPFZlcmlmeUNvbW1hbmQ+dGhpcy5nZXRDbWQodmVyaWZ5SW5kZXgpIDogbnVsbCk7XHJcbiAgICAgIGlmICh2ZXJpZnlDbWQgIT0gbnVsbCAmJiB2ZXJpZnlDbWQuRnJhbWUgPT09IGZyYW1lICYmXHJcbiAgICAgICAgQWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLkdldFRhc2tCeUlEKHZlcmlmeUNtZC5UYXNrVGFnKSAhPSBudWxsKSB7XHJcbiAgICAgICAgdGhpcy5fY21kcy5SZW1vdmVBdCh2ZXJpZnlJbmRleCk7XHJcbiAgICAgICAgcmV0dXJuIHZlcmlmeUNtZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGF0IHRoaXMgc3RhZ2Ugbm8gVkVSSUZZIGNvbW1hbmQgd2FzIGZvdW5kIGluIHRoZSB0YWJsZVxyXG5cclxuICAgIGZvciAodGhpcy5faXRlcmF0aW9uSWR4ID0gMDsgdGhpcy5faXRlcmF0aW9uSWR4IDwgc2l6ZTsgdGhpcy5faXRlcmF0aW9uSWR4KyspIHtcclxuICAgICAgY21kID0gdGhpcy5nZXRDbWQodGhpcy5faXRlcmF0aW9uSWR4KSBhcyBJQ2xpZW50VGFyZ2V0ZWRDb21tYW5kO1xyXG4gICAgICBpZiAoY21kLkZyYW1lID09PSBmcmFtZSkge1xyXG4gICAgICAgIHRoaXMuX2NtZHMuUmVtb3ZlQXQodGhpcy5faXRlcmF0aW9uSWR4KTtcclxuICAgICAgICByZXR1cm4gY21kO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgY29tbWFuZCBieSBpdHMgaW5kZXggaW4gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImlkeFwiPnRoZSBpbmRleCBvZiB0aGUgcmVxdWVzdGVkIGNvbW1hbmQ8L3BhcmFtPlxyXG4gIGdldENtZChpZHg6IG51bWJlcik6IElDbGllbnRDb21tYW5kIHtcclxuICAgIHJldHVybiB0aGlzLl9jbWRzLmdldF9JdGVtKGlkeCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYnVpbGQgdGhlIFhNTCBzdHJ1Y3R1cmUgb2YgdGhlIGNvbW1hbmRzIGFuZCBDTEVBUiB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGJ1aWxkWE1MKG1lc3NhZ2U6IFN0cmluZ0J1aWxkZXIpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCB0aGlzLl9jbWRzLmxlbmd0aDsgaSA9IGkgKyAxKSB7XHJcbiAgICAgIGxldCBjbWQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kID0gPENsaWVudE9yaWdpbmF0ZWRDb21tYW5kPnRoaXMuX2NtZHMuZ2V0X0l0ZW0oaSk7XHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKENsaWVudE9yaWdpbmF0ZWRDb21tYW5kU2VyaWFsaXplci5TZXJpYWxpemUoY21kLCBBY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuZ2V0Q3Vyck1HRGF0YSgpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGFkZCBhIGNvbW1hbmQgdG8gdGhlIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNtZFwiPmEgY29tbWFuZCB0byB0byBhZGQgdG8gdGhlIHRhYmxlPC9wYXJhbT5cclxuICBBZGQoY21kOiBJQ2xpZW50Q29tbWFuZCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY21kcy5wdXNoKGNtZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ2xlYXIgb3V0IHRoZSBjb21tYW5kIHRhYmxlXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBDbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NtZHMuQ2xlYXIoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gZXh0cmFjdCBhbmQgcmVtb3ZlIGEgY29tbWFuZCBmcm9tIHRoZSB0YWJsZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29tbWFuZEluZGV4XCI+IGluZGV4IG9mIGNvbW1hbmQgaW4gdGhlIHRhYmxlPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIEV4dHJhY3RDb21tYW5kKGNvbW1hbmRJbmRleDogbnVtYmVyKTogSUNsaWVudENvbW1hbmQge1xyXG4gICAgbGV0IGNvbW1hbmQ6IElDbGllbnRDb21tYW5kID0gdGhpcy5nZXRDbWQoY29tbWFuZEluZGV4KTtcclxuICAgIHRoaXMuX2NtZHMuUmVtb3ZlQXQoY29tbWFuZEluZGV4KTtcclxuICAgIHJldHVybiBjb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNsZWFyIGFsbCB0aGUgY29tbWFuZHMgZnJvbSB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY21kcy5DbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIG51bWJlciBvZiBjb21tYW5kcyBpbiB0aGUgdGFibGVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFNpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jbWRzLmxlbmd0aDtcclxuICB9XHJcbn1cclxuIl19