@magic-xpa/engine 4.801.0-dev481.243 → 4.801.0-dev481.249

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 (293) hide show
  1. package/esm2020/index.mjs +190 -0
  2. package/{esm2015/magic-xpa-engine.js → esm2020/magic-xpa-engine.mjs} +0 -0
  3. package/esm2020/src/AccessHelper.mjs +3 -0
  4. package/esm2020/src/ClientManager.mjs +403 -0
  5. package/esm2020/src/CommandsProcessorBase.mjs +58 -0
  6. package/esm2020/src/CommandsProcessorManager.mjs +26 -0
  7. package/esm2020/src/CommandsTable.mjs +163 -0
  8. package/{esm2015/src/ConstInterface.js → esm2020/src/ConstInterface.mjs} +0 -0
  9. package/{esm2015/src/CurrentClientVersion.js → esm2020/src/CurrentClientVersion.mjs} +2 -2
  10. package/{esm2015/src/FlowMonitorInterface.js → esm2020/src/FlowMonitorInterface.mjs} +0 -0
  11. package/esm2020/src/GUIManager.mjs +63 -0
  12. package/{esm2015/src/GlobalCommandsManager.js → esm2020/src/GlobalCommandsManager.mjs} +0 -0
  13. package/{esm2015/src/GuiEventsProcessor.js → esm2020/src/GuiEventsProcessor.mjs} +0 -0
  14. package/{esm2015/src/ICommandsTable.js → esm2020/src/ICommandsTable.mjs} +1 -0
  15. package/{esm2015/src/ServerConfig.js → esm2020/src/ServerConfig.mjs} +0 -0
  16. package/{esm2015/src/bridge/IGuiEvent.js → esm2020/src/bridge/IGuiEvent.mjs} +0 -0
  17. package/esm2020/src/bridge/MagicBridge.mjs +41 -0
  18. package/{esm2015/src/commands/ClientOriginatedCommandTaskTag.js → esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs} +0 -0
  19. package/{esm2015/src/commands/ClientToServer/AddUserLocateDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs} +0 -0
  20. package/{esm2015/src/commands/ClientToServer/AddUserRangeDataviewCommand.js → esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs} +0 -0
  21. package/{esm2015/src/commands/ClientToServer/AddUserSortDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs} +0 -0
  22. package/{esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js → esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs} +0 -0
  23. package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs} +0 -0
  24. package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs} +0 -0
  25. package/{esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js → esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs} +0 -0
  26. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +278 -0
  27. package/{esm2015/src/commands/ClientToServer/CommandSerializationHelper.js → esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs} +0 -0
  28. package/{esm2015/src/commands/ClientToServer/ComputeEventCommand.js → esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs} +0 -0
  29. package/{esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js → esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs} +0 -0
  30. package/{esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js → esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs} +0 -0
  31. package/{esm2015/src/commands/ClientToServer/ControlItemsRefreshCommand.js → esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs} +0 -0
  32. package/{esm2015/src/commands/ClientToServer/DataViewOutputCommand.js → esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs} +0 -0
  33. package/{esm2015/src/commands/ClientToServer/DataviewCommand.js → esm2020/src/commands/ClientToServer/DataviewCommand.mjs} +0 -0
  34. package/{esm2015/src/commands/ClientToServer/EvaluateCommand.js → esm2020/src/commands/ClientToServer/EvaluateCommand.mjs} +0 -0
  35. package/{esm2015/src/commands/ClientToServer/EventCommand.js → esm2020/src/commands/ClientToServer/EventCommand.mjs} +0 -0
  36. package/{esm2015/src/commands/ClientToServer/ExecOperCommand.js → esm2020/src/commands/ClientToServer/ExecOperCommand.mjs} +0 -0
  37. package/{esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js → esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs} +0 -0
  38. package/{esm2015/src/commands/ClientToServer/GlobalParamsQueryCommand.js → esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs} +0 -0
  39. package/{esm2015/src/commands/ClientToServer/ICommandTaskTag.js → esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs} +1 -0
  40. package/{esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js → esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs} +0 -0
  41. package/{esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js → esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs} +0 -0
  42. package/{esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js → esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs} +0 -0
  43. package/{esm2015/src/commands/ClientToServer/QueryCommand.js → esm2020/src/commands/ClientToServer/QueryCommand.mjs} +0 -0
  44. package/{esm2015/src/commands/ClientToServer/RecomputeCommand.js → esm2020/src/commands/ClientToServer/RecomputeCommand.mjs} +0 -0
  45. package/{esm2015/src/commands/ClientToServer/RefreshEventCommand.js → esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs} +0 -0
  46. package/{esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js → esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs} +0 -0
  47. package/{esm2015/src/commands/ClientToServer/RollbackEventCommand.js → esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs} +0 -0
  48. package/{esm2015/src/commands/ClientToServer/SelectProgramCommand.js → esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs} +0 -0
  49. package/{esm2015/src/commands/ClientToServer/SetTransactionStateDataviewCommand.js → esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs} +0 -0
  50. package/{esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js → esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs} +0 -0
  51. package/{esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js → esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs} +0 -0
  52. package/{esm2015/src/commands/ClientToServer/TransactionCommand.js → esm2020/src/commands/ClientToServer/TransactionCommand.mjs} +0 -0
  53. package/{esm2015/src/commands/ClientToServer/UnloadCommand.js → esm2020/src/commands/ClientToServer/UnloadCommand.mjs} +0 -0
  54. package/{esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js → esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs} +0 -0
  55. package/esm2020/src/commands/DataViewCommandBase.mjs +10 -0
  56. package/{esm2015/src/commands/IClientCommand.js → esm2020/src/commands/IClientCommand.mjs} +1 -0
  57. package/esm2020/src/commands/IClientTargetedCommand.mjs +9 -0
  58. package/{esm2015/src/commands/IClientToServerCommandInfo.js → esm2020/src/commands/IClientToServerCommandInfo.mjs} +1 -0
  59. package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +65 -0
  60. package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +22 -0
  61. package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
  62. package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
  63. package/{esm2015/src/commands/ServerToClient/ClientRefreshCommand.js → esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs} +14 -17
  64. package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +27 -0
  65. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
  66. package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +222 -0
  67. package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +15 -0
  68. package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +15 -0
  69. package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +15 -0
  70. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +37 -0
  71. package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +85 -0
  72. package/{esm2015/src/commands/ServerToClient/XMLBasedCommandBuilder.js → esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs} +0 -0
  73. package/{esm2015/src/communications/IConnectionStateManager.js → esm2020/src/communications/IConnectionStateManager.mjs} +1 -0
  74. package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +17 -0
  75. package/{esm2015/src/data/DataSourceIdKey.js → esm2020/src/data/DataSourceIdKey.mjs} +0 -0
  76. package/esm2020/src/data/DataView.mjs +1634 -0
  77. package/{esm2015/src/data/DataViewBase.js → esm2020/src/data/DataViewBase.mjs} +0 -0
  78. package/esm2020/src/data/DataviewManager.mjs +28 -0
  79. package/esm2020/src/data/DataviewManagerBase.mjs +15 -0
  80. package/{esm2015/src/data/DvCache.js → esm2020/src/data/DvCache.mjs} +0 -0
  81. package/esm2020/src/data/Field.mjs +645 -0
  82. package/esm2020/src/data/FieldBase.mjs +18 -0
  83. package/{esm2015/src/data/FieldsTable.js → esm2020/src/data/FieldsTable.mjs} +0 -0
  84. package/{esm2015/src/data/IRecordsTable.js → esm2020/src/data/IRecordsTable.mjs} +1 -0
  85. package/{esm2015/src/data/Key.js → esm2020/src/data/Key.mjs} +0 -0
  86. package/{esm2015/src/data/Record.js → esm2020/src/data/Record.mjs} +0 -0
  87. package/{esm2015/src/data/RecordOutOfDataViewException.js → esm2020/src/data/RecordOutOfDataViewException.mjs} +0 -0
  88. package/{esm2015/src/data/RecordsTable.js → esm2020/src/data/RecordsTable.mjs} +0 -0
  89. package/esm2020/src/data/TaskTransactionManager.mjs +103 -0
  90. package/{esm2015/src/data/XMLBasedDcValuesBuilder.js → esm2020/src/data/XMLBasedDcValuesBuilder.mjs} +0 -0
  91. package/{esm2015/src/enums.js → esm2020/src/enums.mjs} +0 -0
  92. package/esm2020/src/env/EnvVariablesTable.mjs +340 -0
  93. package/esm2020/src/env/Environment.mjs +554 -0
  94. package/{esm2015/src/env/ILanguageData.js → esm2020/src/env/ILanguageData.mjs} +1 -0
  95. package/esm2020/src/env/LanguageData.mjs +222 -0
  96. package/esm2020/src/env/MirrorString.mjs +66 -0
  97. package/{esm2015/src/event/ActionManager.js → esm2020/src/event/ActionManager.mjs} +0 -0
  98. package/esm2020/src/event/Event.mjs +1436 -0
  99. package/esm2020/src/event/EventHandler.mjs +773 -0
  100. package/{esm2015/src/event/EventHandlerPosition.js → esm2020/src/event/EventHandlerPosition.mjs} +0 -0
  101. package/esm2020/src/event/EventsManager.mjs +2983 -0
  102. package/{esm2015/src/event/IEventsManager.js → esm2020/src/event/IEventsManager.mjs} +0 -0
  103. package/{esm2015/src/event/RunTimeEvent.js → esm2020/src/event/RunTimeEvent.mjs} +0 -0
  104. package/{esm2015/src/event/RunTimeEventBase.js → esm2020/src/event/RunTimeEventBase.mjs} +0 -0
  105. package/{esm2015/src/event/UserEventsTable.js → esm2020/src/event/UserEventsTable.mjs} +0 -0
  106. package/{esm2015/src/exp/ExpTable.js → esm2020/src/exp/ExpTable.mjs} +0 -0
  107. package/esm2020/src/exp/Expression.mjs +200 -0
  108. package/{esm2015/src/exp/ExpressionDict.js → esm2020/src/exp/ExpressionDict.mjs} +0 -0
  109. package/esm2020/src/exp/ExpressionEvaluator.mjs +4373 -0
  110. package/{esm2015/src/exp/ExpressionLocalJpn.js → esm2020/src/exp/ExpressionLocalJpn.mjs} +0 -0
  111. package/esm2020/src/exp/GlobalParamsTable.mjs +85 -0
  112. package/esm2020/src/exp/YesNoExp.mjs +41 -0
  113. package/{esm2015/src/gui/CreatedFormVector.js → esm2020/src/gui/CreatedFormVector.mjs} +0 -0
  114. package/esm2020/src/gui/FormsTable.mjs +66 -0
  115. package/esm2020/src/gui/MgControl.mjs +357 -0
  116. package/esm2020/src/gui/MgForm.mjs +1195 -0
  117. package/esm2020/src/http/HttpManager.mjs +97 -0
  118. package/esm2020/src/http/client/HttpClientAsync.mjs +67 -0
  119. package/esm2020/src/http/client/HttpClientBase.mjs +148 -0
  120. package/{esm2015/src/http/client/HttpClientEvents.js → esm2020/src/http/client/HttpClientEvents.mjs} +0 -0
  121. package/esm2020/src/http/client/HttpClientSync.mjs +42 -0
  122. package/{esm2015/src/http/client/HttpUtility.js → esm2020/src/http/client/HttpUtility.mjs} +0 -0
  123. package/{esm2015/src/http/client/ICommunicationsFailureHandler.js → esm2020/src/http/client/ICommunicationsFailureHandler.mjs} +1 -0
  124. package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
  125. package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
  126. package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
  127. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +872 -0
  128. package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
  129. package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +24 -0
  130. package/{esm2015/src/remote/RemoteDataViewCommandFactory.js → esm2020/src/remote/RemoteDataViewCommandFactory.mjs} +0 -0
  131. package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +16 -0
  132. package/esm2020/src/remote/RemoteDataviewManager.mjs +17 -0
  133. package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +11 -0
  134. package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
  135. package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +13 -0
  136. package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
  137. package/{esm2015/src/remote/ServerError.js → esm2020/src/remote/ServerError.mjs} +0 -0
  138. package/{esm2015/src/remote/SetTransactionStateRemoteDataViewCommand.js → esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs} +8 -11
  139. package/esm2020/src/rt/Argument.mjs +274 -0
  140. package/esm2020/src/rt/ArgumentsList.mjs +103 -0
  141. package/esm2020/src/rt/Boundary.mjs +158 -0
  142. package/{esm2015/src/rt/CompMainPrgTable.js → esm2020/src/rt/CompMainPrgTable.mjs} +0 -0
  143. package/esm2020/src/rt/DataviewHeaderBase.mjs +96 -0
  144. package/{esm2015/src/rt/DataviewHeaderFactory.js → esm2020/src/rt/DataviewHeaderFactory.mjs} +0 -0
  145. package/{esm2015/src/rt/DataviewHeaders.js → esm2020/src/rt/DataviewHeaders.mjs} +0 -0
  146. package/{esm2015/src/rt/DataviewHeadersSaxHandler.js → esm2020/src/rt/DataviewHeadersSaxHandler.mjs} +0 -0
  147. package/{esm2015/src/rt/ExecutionStack.js → esm2020/src/rt/ExecutionStack.mjs} +0 -0
  148. package/{esm2015/src/rt/ExecutionStackEntry.js → esm2020/src/rt/ExecutionStackEntry.mjs} +0 -0
  149. package/{esm2015/src/rt/HandlersTable.js → esm2020/src/rt/HandlersTable.mjs} +0 -0
  150. package/{esm2015/src/rt/IDataSourceViewDefinition.js → esm2020/src/rt/IDataSourceViewDefinition.mjs} +1 -0
  151. package/{esm2015/src/rt/IDataviewHeader.js → esm2020/src/rt/IDataviewHeader.mjs} +1 -0
  152. package/{esm2015/src/rt/IResultValue.js → esm2020/src/rt/IResultValue.mjs} +1 -0
  153. package/{esm2015/src/rt/LastFocusedManager.js → esm2020/src/rt/LastFocusedManager.mjs} +0 -0
  154. package/esm2020/src/rt/Operation.mjs +745 -0
  155. package/{esm2015/src/rt/OperationTable.js → esm2020/src/rt/OperationTable.mjs} +0 -0
  156. package/esm2020/src/rt/Recompute.mjs +355 -0
  157. package/{esm2015/src/rt/RecomputeTable.js → esm2020/src/rt/RecomputeTable.mjs} +0 -0
  158. package/esm2020/src/rt/RemoteDataviewHeader.mjs +105 -0
  159. package/{esm2015/src/rt/ResultValue.js → esm2020/src/rt/ResultValue.mjs} +0 -0
  160. package/esm2020/src/rt/TableCache.mjs +177 -0
  161. package/esm2020/src/rt/TableCacheManager.mjs +67 -0
  162. package/{esm2015/src/rt/Transaction.js → esm2020/src/rt/Transaction.mjs} +0 -0
  163. package/{esm2015/src/security/UserDetails.js → esm2020/src/security/UserDetails.mjs} +0 -0
  164. package/{esm2015/src/tasks/IMGDataCollection.js → esm2020/src/tasks/IMGDataCollection.mjs} +1 -0
  165. package/esm2020/src/tasks/MGData.mjs +552 -0
  166. package/esm2020/src/tasks/MGDataCollection.mjs +259 -0
  167. package/{esm2015/src/tasks/MenusDeserializer.js → esm2020/src/tasks/MenusDeserializer.mjs} +0 -0
  168. package/{esm2015/src/tasks/RCTimer.js → esm2020/src/tasks/RCTimer.mjs} +0 -0
  169. package/{esm2015/src/tasks/RemoteTaskService.js → esm2020/src/tasks/RemoteTaskService.mjs} +0 -0
  170. package/esm2020/src/tasks/Task.mjs +2501 -0
  171. package/{esm2015/src/tasks/TaskBase.js → esm2020/src/tasks/TaskBase.mjs} +22 -1
  172. package/esm2020/src/tasks/TaskServiceBase.mjs +25 -0
  173. package/esm2020/src/tasks/TasksTable.mjs +80 -0
  174. package/{esm2015/src/tasks/sort/Sort.js → esm2020/src/tasks/sort/Sort.mjs} +0 -0
  175. package/{esm2015/src/tasks/sort/SortCollection.js → esm2020/src/tasks/sort/SortCollection.mjs} +0 -0
  176. package/{esm2015/src/util/ConstUtils.js → esm2020/src/util/ConstUtils.mjs} +0 -0
  177. package/esm2020/src/util/FlowMonitorQueue.mjs +361 -0
  178. package/{esm2015/src/util/HeapSort.js → esm2020/src/util/HeapSort.mjs} +0 -0
  179. package/{esm2015/src/util/IMirrorXML.js → esm2020/src/util/IMirrorXML.mjs} +2 -1
  180. package/{esm2015/src/util/IServerConfig.js → esm2020/src/util/IServerConfig.mjs} +1 -0
  181. package/{esm2015/src/util/MgBlockingQueue.js → esm2020/src/util/MgBlockingQueue.mjs} +1 -0
  182. package/esm2020/src/util/MgPriorityBlockingQueue.mjs +76 -0
  183. package/{esm2015/src/util/MgPriorityQueue.js → esm2020/src/util/MgPriorityQueue.mjs} +0 -0
  184. package/esm2020/src/util/ParamParseResult.mjs +8 -0
  185. package/esm2020/src/util/PrmMap.mjs +151 -0
  186. package/{esm2015/src/util/Process.js → esm2020/src/util/Process.mjs} +0 -0
  187. package/{esm2015/src/util/ReturnResult.js → esm2020/src/util/ReturnResult.mjs} +0 -0
  188. package/{esm2015/src/util/ReturnResultBase.js → esm2020/src/util/ReturnResultBase.mjs} +0 -0
  189. package/{esm2015/src/util/Scrambler.js → esm2020/src/util/Scrambler.mjs} +0 -0
  190. package/{esm2015/src/util/UniqueIDUtils.js → esm2020/src/util/UniqueIDUtils.mjs} +0 -0
  191. package/{esm2015/src/util/cookie.service.js → esm2020/src/util/cookie.service.mjs} +0 -0
  192. package/fesm2015/{magic-xpa-engine.js → magic-xpa-engine.mjs} +102 -5
  193. package/fesm2015/magic-xpa-engine.mjs.map +1 -0
  194. package/fesm2020/magic-xpa-engine.mjs +30705 -0
  195. package/fesm2020/magic-xpa-engine.mjs.map +1 -0
  196. package/index.d.ts +2 -0
  197. package/package.json +27 -13
  198. package/src/AccessHelper.d.ts +1 -1
  199. package/src/CommandsProcessorBase.d.ts +3 -3
  200. package/src/commands/DataViewCommandBase.d.ts +2 -2
  201. package/src/commands/IClientTargetedCommand.d.ts +1 -1
  202. package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +1 -1
  203. package/src/data/FieldBase.d.ts +3 -3
  204. package/src/env/EnvVariablesTable.d.ts +2 -15
  205. package/src/env/MirrorString.d.ts +15 -0
  206. package/src/exp/GlobalParamsTable.d.ts +2 -1
  207. package/src/http/client/HttpClientBase.d.ts +2 -2
  208. package/src/rt/DataviewHeaderBase.d.ts +1 -1
  209. package/src/tasks/TaskBase.d.ts +7 -7
  210. package/src/util/IMirrorXML.d.ts +1 -1
  211. package/src/util/ParamParseResult.d.ts +6 -0
  212. package/src/util/PrmMap.d.ts +0 -6
  213. package/bundles/magic-xpa-engine.umd.js +0 -37983
  214. package/bundles/magic-xpa-engine.umd.js.map +0 -1
  215. package/bundles/magic-xpa-engine.umd.min.js +0 -16
  216. package/bundles/magic-xpa-engine.umd.min.js.map +0 -1
  217. package/esm2015/index.js +0 -188
  218. package/esm2015/src/AccessHelper.js +0 -3
  219. package/esm2015/src/ClientManager.js +0 -412
  220. package/esm2015/src/CommandsProcessorBase.js +0 -54
  221. package/esm2015/src/CommandsProcessorManager.js +0 -31
  222. package/esm2015/src/CommandsTable.js +0 -166
  223. package/esm2015/src/GUIManager.js +0 -72
  224. package/esm2015/src/bridge/MagicBridge.js +0 -44
  225. package/esm2015/src/commands/ClientToServer/CommandFactory.js +0 -283
  226. package/esm2015/src/commands/DataViewCommandBase.js +0 -6
  227. package/esm2015/src/commands/IClientTargetedCommand.js +0 -6
  228. package/esm2015/src/commands/ServerToClient/AbortCommand.js +0 -68
  229. package/esm2015/src/commands/ServerToClient/AddLocateCommand.js +0 -25
  230. package/esm2015/src/commands/ServerToClient/AddRangeCommand.js +0 -65
  231. package/esm2015/src/commands/ServerToClient/AddSortCommand.js +0 -36
  232. package/esm2015/src/commands/ServerToClient/ClientTargetedCommandBase.js +0 -24
  233. package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +0 -48
  234. package/esm2015/src/commands/ServerToClient/OpenURLCommand.js +0 -225
  235. package/esm2015/src/commands/ServerToClient/ResetLocateCommand.js +0 -18
  236. package/esm2015/src/commands/ServerToClient/ResetRangeCommand.js +0 -18
  237. package/esm2015/src/commands/ServerToClient/ResetSortCommand.js +0 -18
  238. package/esm2015/src/commands/ServerToClient/ResultCommand.js +0 -40
  239. package/esm2015/src/commands/ServerToClient/VerifyCommand.js +0 -88
  240. package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +0 -20
  241. package/esm2015/src/data/DataView.js +0 -1692
  242. package/esm2015/src/data/DataviewManager.js +0 -31
  243. package/esm2015/src/data/DataviewManagerBase.js +0 -18
  244. package/esm2015/src/data/Field.js +0 -671
  245. package/esm2015/src/data/FieldBase.js +0 -9
  246. package/esm2015/src/data/TaskTransactionManager.js +0 -110
  247. package/esm2015/src/env/EnvVariablesTable.js +0 -408
  248. package/esm2015/src/env/Environment.js +0 -557
  249. package/esm2015/src/env/LanguageData.js +0 -229
  250. package/esm2015/src/event/Event.js +0 -1441
  251. package/esm2015/src/event/EventHandler.js +0 -786
  252. package/esm2015/src/event/EventsManager.js +0 -3106
  253. package/esm2015/src/exp/Expression.js +0 -209
  254. package/esm2015/src/exp/ExpressionEvaluator.js +0 -4440
  255. package/esm2015/src/exp/GlobalParamsTable.js +0 -84
  256. package/esm2015/src/exp/YesNoExp.js +0 -44
  257. package/esm2015/src/gui/FormsTable.js +0 -73
  258. package/esm2015/src/gui/MgControl.js +0 -424
  259. package/esm2015/src/gui/MgForm.js +0 -1291
  260. package/esm2015/src/http/HttpManager.js +0 -100
  261. package/esm2015/src/http/client/HttpClientAsync.js +0 -72
  262. package/esm2015/src/http/client/HttpClientBase.js +0 -147
  263. package/esm2015/src/http/client/HttpClientSync.js +0 -47
  264. package/esm2015/src/remote/AddUserLocateRemoteDataViewCommand.js +0 -21
  265. package/esm2015/src/remote/AddUserRangeRemoteDataViewCommand.js +0 -21
  266. package/esm2015/src/remote/AddUserSortRemoteDataViewCommand.js +0 -21
  267. package/esm2015/src/remote/RemoteCommandsProcessor.js +0 -901
  268. package/esm2015/src/remote/RemoteControlItemsRefreshCommand.js +0 -28
  269. package/esm2015/src/remote/RemoteDataViewCommandBase.js +0 -27
  270. package/esm2015/src/remote/RemoteDataViewCommandUpdateNonModifiable.js +0 -19
  271. package/esm2015/src/remote/RemoteDataviewManager.js +0 -23
  272. package/esm2015/src/remote/RemoteInitDataViewCommand.js +0 -14
  273. package/esm2015/src/remote/ResetUserLocateRemoteDataviewCommand.js +0 -20
  274. package/esm2015/src/remote/ResetUserRangeRemoteDataviewCommand.js +0 -16
  275. package/esm2015/src/remote/ResetUserSortRemoteDataviewCommand.js +0 -19
  276. package/esm2015/src/rt/Argument.js +0 -281
  277. package/esm2015/src/rt/ArgumentsList.js +0 -108
  278. package/esm2015/src/rt/Boundary.js +0 -161
  279. package/esm2015/src/rt/DataviewHeaderBase.js +0 -96
  280. package/esm2015/src/rt/Operation.js +0 -772
  281. package/esm2015/src/rt/Recompute.js +0 -372
  282. package/esm2015/src/rt/RemoteDataviewHeader.js +0 -114
  283. package/esm2015/src/rt/TableCache.js +0 -182
  284. package/esm2015/src/rt/TableCacheManager.js +0 -70
  285. package/esm2015/src/tasks/MGData.js +0 -561
  286. package/esm2015/src/tasks/MGDataCollection.js +0 -270
  287. package/esm2015/src/tasks/Task.js +0 -2601
  288. package/esm2015/src/tasks/TaskServiceBase.js +0 -30
  289. package/esm2015/src/tasks/TasksTable.js +0 -87
  290. package/esm2015/src/util/FlowMonitorQueue.js +0 -364
  291. package/esm2015/src/util/MgPriorityBlockingQueue.js +0 -79
  292. package/esm2015/src/util/PrmMap.js +0 -157
  293. package/fesm2015/magic-xpa-engine.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
2
+ import { ResultValue } from "../rt/ResultValue";
3
+ import { CommandFactory } from "../commands/ClientToServer/CommandFactory";
4
+ import { RemoteCommandsProcessor } from "./RemoteCommandsProcessor";
5
+ import { CommandsProcessorBase_SendingInstruction, CommandsProcessorBase_SessionStage } from "../CommandsProcessorBase";
6
+ import { ReturnResult } from "../util/ReturnResult";
7
+ export class RemoteControlItemsRefreshCommand extends RemoteDataViewCommandBase {
8
+ constructor(command) {
9
+ super(command);
10
+ this.control = null;
11
+ this.control = command.Control;
12
+ }
13
+ async Execute() {
14
+ let res = new ResultValue();
15
+ let cmd = CommandFactory.CreatecFetchDataControlValuesCommand(this.Task.getTaskTag(), this.control.getName());
16
+ this.Task.getMGData().CmdsToServer.Add(cmd);
17
+ await RemoteCommandsProcessor.GetInstance().Execute_1(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS, CommandsProcessorBase_SessionStage.NORMAL, res);
18
+ for (let i = 0; i < this.Task.DataView.getSize(); i = i + 1) {
19
+ this.Task.DataView.getRecByIdx(i).AddDcValuesReference(this.control.getDitIdx(), this.control.getDcRef());
20
+ }
21
+ this.Task.DataView.getOriginalRec().AddDcValuesReference(this.control.getDitIdx(), this.control.getDcRef());
22
+ return new ReturnResult();
23
+ }
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlQ29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3JlbW90ZS9SZW1vdGVDb250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUl0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFOUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyx3Q0FBd0MsRUFBRSxrQ0FBa0MsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEseUJBQXlCO0lBRzdFLFlBQVksT0FBbUM7UUFDN0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBSFQsWUFBTyxHQUFrQixJQUFJLENBQUM7UUFJcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLElBQUksR0FBRyxHQUFnQixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLElBQUksR0FBRyxHQUFtQixjQUFjLENBQUMsb0NBQW9DLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDOUgsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVDLE1BQU0sdUJBQXVCLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLHdDQUF3QyxDQUFDLGtCQUFrQixFQUFFLGtDQUFrQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVuSyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZIO1FBRVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFTLENBQUMsY0FBYyxFQUFFLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDeEgsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZX0gZnJvbSBcIi4vUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZVwiO1xyXG5pbXBvcnQge01nQ29udHJvbEJhc2V9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQge0NvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmRcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHRCYXNlfSBmcm9tIFwiLi4vdXRpbC9SZXR1cm5SZXN1bHRCYXNlXCI7XHJcbmltcG9ydCB7UmVzdWx0VmFsdWV9IGZyb20gXCIuLi9ydC9SZXN1bHRWYWx1ZVwiO1xyXG5pbXBvcnQge0lDbGllbnRDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvSUNsaWVudENvbW1hbmRcIjtcclxuaW1wb3J0IHtDb21tYW5kRmFjdG9yeX0gZnJvbSBcIi4uL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NvbW1hbmRGYWN0b3J5XCI7XHJcbmltcG9ydCB7UmVtb3RlQ29tbWFuZHNQcm9jZXNzb3J9IGZyb20gXCIuL1JlbW90ZUNvbW1hbmRzUHJvY2Vzc29yXCI7XHJcbmltcG9ydCB7Q29tbWFuZHNQcm9jZXNzb3JCYXNlX1NlbmRpbmdJbnN0cnVjdGlvbiwgQ29tbWFuZHNQcm9jZXNzb3JCYXNlX1Nlc3Npb25TdGFnZX0gZnJvbSBcIi4uL0NvbW1hbmRzUHJvY2Vzc29yQmFzZVwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0XCI7XHJcbmltcG9ydCB7RGF0YVZpZXd9IGZyb20gXCIuLi9kYXRhL0RhdGFWaWV3XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUmVtb3RlQ29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmQgZXh0ZW5kcyBSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlIHtcclxuICBwcml2YXRlIGNvbnRyb2w6IE1nQ29udHJvbEJhc2UgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihjb21tYW5kOiBDb250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZCkge1xyXG4gICAgc3VwZXIoY29tbWFuZCk7XHJcbiAgICB0aGlzLmNvbnRyb2wgPSBjb21tYW5kLkNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgbGV0IHJlczogUmVzdWx0VmFsdWUgPSBuZXcgUmVzdWx0VmFsdWUoKTtcclxuICAgIGxldCBjbWQ6IElDbGllbnRDb21tYW5kID0gQ29tbWFuZEZhY3RvcnkuQ3JlYXRlY0ZldGNoRGF0YUNvbnRyb2xWYWx1ZXNDb21tYW5kKHRoaXMuVGFzay5nZXRUYXNrVGFnKCksIHRoaXMuY29udHJvbC5nZXROYW1lKCkpO1xyXG4gICAgdGhpcy5UYXNrLmdldE1HRGF0YSgpLkNtZHNUb1NlcnZlci5BZGQoY21kKTtcclxuICAgIC8vIEZldGNoIGRhdGEgY29udHJvbCB2YWx1ZXMgZnJvbSBzZXJ2ZXIuXHJcbiAgICBhd2FpdCBSZW1vdGVDb21tYW5kc1Byb2Nlc3Nvci5HZXRJbnN0YW5jZSgpLkV4ZWN1dGVfMShDb21tYW5kc1Byb2Nlc3NvckJhc2VfU2VuZGluZ0luc3RydWN0aW9uLlRBU0tTX0FORF9DT01NQU5EUywgQ29tbWFuZHNQcm9jZXNzb3JCYXNlX1Nlc3Npb25TdGFnZS5OT1JNQUwsIHJlcyk7XHJcbiAgICAvLyBVcGRhdGUgRENWYWxSZWYgb2YgZXZlcnkgcmVjb3JkIGFmdGVyIGZldGNoaW5nIHRoZSBkYXRhQ29udHJvbCB2YWx1ZXMuXHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgKDxEYXRhVmlldz50aGlzLlRhc2suRGF0YVZpZXcpLmdldFNpemUoKTsgaSA9IGkgKyAxKSB7XHJcbiAgICAgICg8RGF0YVZpZXc+dGhpcy5UYXNrLkRhdGFWaWV3KS5nZXRSZWNCeUlkeChpKS5BZGREY1ZhbHVlc1JlZmVyZW5jZSh0aGlzLmNvbnRyb2wuZ2V0RGl0SWR4KCksIHRoaXMuY29udHJvbC5nZXREY1JlZigpKTtcclxuICAgIH1cclxuICAgIC8vIFVwZGF0ZSBEQ1ZhbFJlZiBvZiBvcmlnaW5hbCByZWNvcmQuXHJcbiAgICAoPERhdGFWaWV3PnRoaXMuVGFzay5EYXRhVmlldykuZ2V0T3JpZ2luYWxSZWMoKS5BZGREY1ZhbHVlc1JlZmVyZW5jZSh0aGlzLmNvbnRyb2wuZ2V0RGl0SWR4KCksIHRoaXMuY29udHJvbC5nZXREY1JlZigpKTtcclxuICAgIHJldHVybiBuZXcgUmV0dXJuUmVzdWx0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { DataViewCommandBase } from '../commands/DataViewCommandBase';
2
+ import { RemoteCommandsProcessor } from './RemoteCommandsProcessor';
3
+ import { CommandsProcessorBase_SendingInstruction } from '../CommandsProcessorBase';
4
+ import { ReturnResult } from '../util/ReturnResult';
5
+ import { ClientOriginatedCommandTaskTag } from '../commands/ClientOriginatedCommandTaskTag';
6
+ import { AccessHelper } from '../AccessHelper';
7
+ export class RemoteDataViewCommandBase extends DataViewCommandBase {
8
+ constructor(command) {
9
+ super();
10
+ this.Command = null;
11
+ this.Task = null;
12
+ this.Command = command;
13
+ if (command instanceof ClientOriginatedCommandTaskTag) {
14
+ this.Task = AccessHelper.mgDataTable.GetTaskByID(command.TaskTag);
15
+ }
16
+ }
17
+ async Execute() {
18
+ let cmdsToServer = this.Task.getMGData().CmdsToServer;
19
+ cmdsToServer.Add(this.Command);
20
+ await RemoteCommandsProcessor.GetInstance().Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
21
+ return new ReturnResult();
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEUsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUsvQyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsbUJBQW1CO0lBS2hFLFlBQVksT0FBZ0M7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFKVixZQUFPLEdBQTRCLElBQUksQ0FBQztRQUM5QixTQUFJLEdBQVMsSUFBSSxDQUFDO1FBSTFCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksT0FBTyxZQUFZLDhCQUE4QixFQUFFO1lBQ3JELElBQUksQ0FBQyxJQUFJLEdBQVMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQWtDLE9BQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzRztJQUNILENBQUM7SUFNRCxLQUFLLENBQUMsT0FBTztRQUNYLElBQUksWUFBWSxHQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLFlBQVksQ0FBQztRQUN0RSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixNQUFNLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pILE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVmlld0NvbW1hbmRCYXNlIH0gZnJvbSAnLi4vY29tbWFuZHMvRGF0YVZpZXdDb21tYW5kQmFzZSc7XHJcbmltcG9ydCB7IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kIH0gZnJvbSAnLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmQnO1xyXG5pbXBvcnQgeyBSZW1vdGVDb21tYW5kc1Byb2Nlc3NvciB9IGZyb20gJy4vUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3InO1xyXG5pbXBvcnQgeyBSZXR1cm5SZXN1bHRCYXNlIH0gZnJvbSAnLi4vdXRpbC9SZXR1cm5SZXN1bHRCYXNlJztcclxuaW1wb3J0IHsgQ29tbWFuZHNQcm9jZXNzb3JCYXNlX1NlbmRpbmdJbnN0cnVjdGlvbiB9IGZyb20gJy4uL0NvbW1hbmRzUHJvY2Vzc29yQmFzZSc7XHJcbmltcG9ydCB7IFJldHVyblJlc3VsdCB9IGZyb20gJy4uL3V0aWwvUmV0dXJuUmVzdWx0JztcclxuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzL1Rhc2snO1xyXG5pbXBvcnQgeyBDbGllbnRPcmlnaW5hdGVkQ29tbWFuZFRhc2tUYWcgfSBmcm9tICcuLi9jb21tYW5kcy9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFRhc2tUYWcnO1xyXG5pbXBvcnQgeyBJQ29tbWFuZHNUYWJsZSB9IGZyb20gJy4uL0lDb21tYW5kc1RhYmxlJztcclxuaW1wb3J0IHsgQWNjZXNzSGVscGVyIH0gZnJvbSAnLi4vQWNjZXNzSGVscGVyJztcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIHJlbW90ZSBkYXRhdmlldyBjb21tYW5kXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlIGV4dGVuZHMgRGF0YVZpZXdDb21tYW5kQmFzZSB7XHJcblxyXG4gIENvbW1hbmQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgVGFzazogVGFzayA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kLCApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLkNvbW1hbmQgPSBjb21tYW5kO1xyXG4gICAgaWYgKGNvbW1hbmQgaW5zdGFuY2VvZiBDbGllbnRPcmlnaW5hdGVkQ29tbWFuZFRhc2tUYWcpIHtcclxuICAgICAgdGhpcy5UYXNrID0gPFRhc2s+QWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLkdldFRhc2tCeUlEKCg8Q2xpZW50T3JpZ2luYXRlZENvbW1hbmRUYXNrVGFnPmNvbW1hbmQpLlRhc2tUYWcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBleGVjdXRlIHRoZSBjb21tYW5kIGJ5IHBhc3MgcmVxdWVzdHMgdG8gdGhlIHNlcnZlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29tbWFuZFwiPjwvcGFyYW0+XHJcbiAgYXN5bmMgRXhlY3V0ZSgpOiBQcm9taXNlPFJldHVyblJlc3VsdEJhc2U+IHtcclxuICAgIGxldCBjbWRzVG9TZXJ2ZXI6IElDb21tYW5kc1RhYmxlID0gdGhpcy5UYXNrLmdldE1HRGF0YSgpLkNtZHNUb1NlcnZlcjtcclxuICAgIGNtZHNUb1NlcnZlci5BZGQodGhpcy5Db21tYW5kKTtcclxuICAgIGF3YWl0IFJlbW90ZUNvbW1hbmRzUHJvY2Vzc29yLkdldEluc3RhbmNlKCkuRXhlY3V0ZShDb21tYW5kc1Byb2Nlc3NvckJhc2VfU2VuZGluZ0luc3RydWN0aW9uLlRBU0tTX0FORF9DT01NQU5EUyk7XHJcbiAgICByZXR1cm4gbmV3IFJldHVyblJlc3VsdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
2
+ import { ReturnResult } from "../util/ReturnResult";
3
+ import { MsgInterface } from "@magic-xpa/utils";
4
+ export class RemoteDataViewCommandUpdateNonModifiable extends RemoteDataViewCommandBase {
5
+ get execOperCommand() {
6
+ return this.Command;
7
+ }
8
+ constructor(command) {
9
+ super(command);
10
+ }
11
+ async Execute() {
12
+ await this.execOperCommand.Operation.operServer(this.execOperCommand.MprgCreator);
13
+ return new ReturnResult(MsgInterface.RT_STR_NON_MODIFIABLE);
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlRGF0YVZpZXdDb21tYW5kVXBkYXRlTm9uTW9kaWZpYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1JlbW90ZURhdGFWaWV3Q29tbWFuZFVwZGF0ZU5vbk1vZGlmaWFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxNQUFNLE9BQU8sd0NBQXlDLFNBQVEseUJBQXlCO0lBQ3JGLElBQVksZUFBZTtRQUN6QixPQUF3QixJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLE9BQXdCO1FBQ2xDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sSUFBSSxZQUFZLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlfSBmcm9tIFwiLi9SZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlXCI7XHJcbmltcG9ydCB7RXhlY09wZXJDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvRXhlY09wZXJDb21tYW5kXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0QmFzZX0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0QmFzZVwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0XCI7XHJcbmltcG9ydCB7TXNnSW50ZXJmYWNlfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJlbW90ZURhdGFWaWV3Q29tbWFuZFVwZGF0ZU5vbk1vZGlmaWFibGUgZXh0ZW5kcyBSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlIHtcclxuICBwcml2YXRlIGdldCBleGVjT3BlckNvbW1hbmQoKTogRXhlY09wZXJDb21tYW5kIHtcclxuICAgIHJldHVybiA8RXhlY09wZXJDb21tYW5kPnRoaXMuQ29tbWFuZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IEV4ZWNPcGVyQ29tbWFuZCkge1xyXG4gICAgc3VwZXIoY29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgYXdhaXQgdGhpcy5leGVjT3BlckNvbW1hbmQuT3BlcmF0aW9uLm9wZXJTZXJ2ZXIodGhpcy5leGVjT3BlckNvbW1hbmQuTXByZ0NyZWF0b3IpO1xyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoTXNnSW50ZXJmYWNlLlJUX1NUUl9OT05fTU9ESUZJQUJMRSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { DataviewManagerBase } from "../data/DataviewManagerBase";
2
+ import { RemoteDataViewCommandFactory } from "./RemoteDataViewCommandFactory";
3
+ import { ReturnResult } from "../util/ReturnResult";
4
+ export class RemoteDataviewManager extends DataviewManagerBase {
5
+ constructor(task) {
6
+ super(task);
7
+ this._remoteDataViewCommandFactory = null;
8
+ this._remoteDataViewCommandFactory = new RemoteDataViewCommandFactory();
9
+ }
10
+ async Execute(command) {
11
+ await super.Execute(command);
12
+ let remoteDataViewCommandBase = this._remoteDataViewCommandFactory.CreateDataViewCommand(command);
13
+ let innerResult = await remoteDataViewCommandBase.Execute();
14
+ return new ReturnResult(innerResult);
15
+ }
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlRGF0YXZpZXdNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9yZW1vdGUvUmVtb3RlRGF0YXZpZXdNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBSTVFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQVVsRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBRzVELFlBQVksSUFBVTtRQUNwQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFITixrQ0FBNkIsR0FBaUMsSUFBSSxDQUFDO1FBSXpFLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7SUFDMUUsQ0FBQztJQU1ELEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBdUI7UUFDbkMsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUkseUJBQXlCLEdBQThCLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxxQkFBcUIsQ0FBMEIsT0FBTyxDQUFDLENBQUM7UUFDdEosSUFBSSxXQUFXLEdBQXFCLE1BQU0seUJBQXlCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDOUUsT0FBTyxJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGF2aWV3TWFuYWdlckJhc2V9IGZyb20gXCIuLi9kYXRhL0RhdGF2aWV3TWFuYWdlckJhc2VcIjtcclxuaW1wb3J0IHtSZW1vdGVEYXRhVmlld0NvbW1hbmRGYWN0b3J5fSBmcm9tIFwiLi9SZW1vdGVEYXRhVmlld0NvbW1hbmRGYWN0b3J5XCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIi4uL3Rhc2tzL1Rhc2tcIjtcclxuaW1wb3J0IHtJQ2xpZW50Q29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0lDbGllbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7Q2xpZW50T3JpZ2luYXRlZENvbW1hbmR9IGZyb20gXCIuLi9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0XCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0QmFzZX0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0QmFzZVwiO1xyXG5pbXBvcnQge1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2V9IGZyb20gXCIuL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2VcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIHJlbW90ZSBkYXRhdmlldyBtYW5hZ2VyOlxyXG4vLy8gd2lsbCBwYXNzIHJlcXVlc3RzIHRvIHRoZSBzZXJ2ZXJcclxuLy8vIHdoZW4gcmVwbHkgaXMgcmVjZWl2ZWQgd2lsbCBwZXJmb3JtIGZpbGxEYXRhIHRvIHRoZSBkYXRhdmlldy54bWxcclxuLy8vIE5vdGU6IGluIG5leHQgcGhhc2Ugd2lsbCBpbXBsZW1lbnQgbW9yZSBjb21wbGljYXRlZCB0YXNrc1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgUmVtb3RlRGF0YXZpZXdNYW5hZ2VyIGV4dGVuZHMgRGF0YXZpZXdNYW5hZ2VyQmFzZSB7XHJcbiAgcHJpdmF0ZSBfcmVtb3RlRGF0YVZpZXdDb21tYW5kRmFjdG9yeTogUmVtb3RlRGF0YVZpZXdDb21tYW5kRmFjdG9yeSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHRhc2s6IFRhc2spIHtcclxuICAgIHN1cGVyKHRhc2spO1xyXG4gICAgdGhpcy5fcmVtb3RlRGF0YVZpZXdDb21tYW5kRmFjdG9yeSA9IG5ldyBSZW1vdGVEYXRhVmlld0NvbW1hbmRGYWN0b3J5KCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGV4ZWN1dGUgdGhlIGNvbW1hbmQgYnkgcGFzcyByZXF1ZXN0cyB0byB0aGUgc2VydmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJjb21tYW5kXCI+PC9wYXJhbT5cclxuICBhc3luYyBFeGVjdXRlKGNvbW1hbmQ6IElDbGllbnRDb21tYW5kKTogUHJvbWlzZTxSZXR1cm5SZXN1bHQ+IHtcclxuICAgIGF3YWl0IHN1cGVyLkV4ZWN1dGUoY29tbWFuZCk7XHJcbiAgICBsZXQgcmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZTogUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZSA9IHRoaXMuX3JlbW90ZURhdGFWaWV3Q29tbWFuZEZhY3RvcnkuQ3JlYXRlRGF0YVZpZXdDb21tYW5kKDxDbGllbnRPcmlnaW5hdGVkQ29tbWFuZD5jb21tYW5kKTtcclxuICAgIGxldCBpbm5lclJlc3VsdDogUmV0dXJuUmVzdWx0QmFzZSA9IGF3YWl0IHJlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2UuRXhlY3V0ZSgpO1xyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoaW5uZXJSZXN1bHQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
2
+ import { ReturnResult } from "../util/ReturnResult";
3
+ export class DummyDataViewCommand extends RemoteDataViewCommandBase {
4
+ constructor(command) {
5
+ super(command);
6
+ }
7
+ async Execute() {
8
+ return new ReturnResult();
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlSW5pdERhdGFWaWV3Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1JlbW90ZUluaXREYXRhVmlld0NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBS2xELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx5QkFBeUI7SUFDakUsWUFBWSxPQUFnQztRQUMxQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1gsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZX0gZnJvbSBcIi4vUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZVwiO1xyXG5pbXBvcnQge0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHRCYXNlfSBmcm9tIFwiLi4vdXRpbC9SZXR1cm5SZXN1bHRCYXNlXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0fSBmcm9tIFwiLi4vdXRpbC9SZXR1cm5SZXN1bHRcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIHJlbW90ZSBjb21tYW5kIDogZHVtbXkgZm9yIG5vd1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgRHVtbXlEYXRhVmlld0NvbW1hbmQgZXh0ZW5kcyBSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlIHtcclxuICBjb25zdHJ1Y3Rvcihjb21tYW5kOiBDbGllbnRPcmlnaW5hdGVkQ29tbWFuZCkge1xyXG4gICAgc3VwZXIoY29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,17 @@
1
+ import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
2
+ import { ReturnResult } from "../util/ReturnResult";
3
+ export class ResetUserLocateRemoteDataviewCommand extends RemoteDataViewCommandBase {
4
+ constructor(command) {
5
+ super(command);
6
+ }
7
+ async Execute() {
8
+ let flag = this.Task.UserLocs !== null;
9
+ if (flag) {
10
+ this.Task.UserLocs.Clear();
11
+ this.Task.UserLocs = null;
12
+ }
13
+ this.Task.ResetLocate = true;
14
+ return new ReturnResult();
15
+ }
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRVc2VyTG9jYXRlUmVtb3RlRGF0YXZpZXdDb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9yZW1vdGUvUmVzZXRVc2VyTG9jYXRlUmVtb3RlRGF0YXZpZXdDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtsRCxNQUFNLE9BQU8sb0NBQXFDLFNBQVEseUJBQXlCO0lBQ2pGLFlBQVksT0FBZ0M7UUFDMUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFNRCxLQUFLLENBQUMsT0FBTztRQUNYLElBQUksSUFBSSxHQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQztRQUNoRCxJQUFJLElBQUksRUFBRTtZQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUMzQjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUM3QixPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlfSBmcm9tIFwiLi9SZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlXCI7XHJcbmltcG9ydCB7Q2xpZW50T3JpZ2luYXRlZENvbW1hbmR9IGZyb20gXCIuLi9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdEJhc2V9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdEJhc2VcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHR9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdFwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gUmVzZXRVc2VyTG9jYXRlUmVtb3RlRGF0YXZpZXdDb21tYW5kXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBSZXNldFVzZXJMb2NhdGVSZW1vdGVEYXRhdmlld0NvbW1hbmQgZXh0ZW5kcyBSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlIHtcclxuICBjb25zdHJ1Y3Rvcihjb21tYW5kOiBDbGllbnRPcmlnaW5hdGVkQ29tbWFuZCkge1xyXG4gICAgc3VwZXIoY29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIFJlc2V0IFVzZXIgTG9jYXRlcyBBZGRlZCBieSBMb2NhdGVBZGQgZnVuY3Rpb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgYXN5bmMgRXhlY3V0ZSgpOiBQcm9taXNlPFJldHVyblJlc3VsdEJhc2U+IHtcclxuICAgIGxldCBmbGFnOiBib29sZWFuID0gdGhpcy5UYXNrLlVzZXJMb2NzICE9PSBudWxsO1xyXG4gICAgaWYgKGZsYWcpIHtcclxuICAgICAgdGhpcy5UYXNrLlVzZXJMb2NzLkNsZWFyKCk7XHJcbiAgICAgIHRoaXMuVGFzay5Vc2VyTG9jcyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLlRhc2suUmVzZXRMb2NhdGUgPSB0cnVlO1xyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,13 @@
1
+ import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
2
+ import { ReturnResult } from "../util/ReturnResult";
3
+ export class ResetUserRangeRemoteDataviewCommand extends RemoteDataViewCommandBase {
4
+ constructor(command) {
5
+ super(command);
6
+ }
7
+ async Execute() {
8
+ this.Task.UserRngs = null;
9
+ this.Task.ResetRange = true;
10
+ return new ReturnResult();
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRVc2VyUmFuZ2VSZW1vdGVEYXRhdmlld0NvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3JlbW90ZS9SZXNldFVzZXJSYW5nZVJlbW90ZURhdGF2aWV3Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUd0RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFLbEQsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLHlCQUF5QjtJQUNoRixZQUFZLE9BQWdDO1FBQzFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2V9IGZyb20gXCIuL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2VcIjtcclxuaW1wb3J0IHtDbGllbnRPcmlnaW5hdGVkQ29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0QmFzZX0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0QmFzZVwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0XCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBjb21tYW5kIHRvIHJlc2V0IHRoZSB1c2VyIHJhbmdlcyBvbiB0aGUgcmVtb3RlIGRhdGF2aWV3XHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBSZXNldFVzZXJSYW5nZVJlbW90ZURhdGF2aWV3Q29tbWFuZCBleHRlbmRzIFJlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2Uge1xyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kKSB7XHJcbiAgICBzdXBlcihjb21tYW5kKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIEV4ZWN1dGUoKTogUHJvbWlzZTxSZXR1cm5SZXN1bHRCYXNlPiB7XHJcbiAgICB0aGlzLlRhc2suVXNlclJuZ3MgPSBudWxsO1xyXG4gICAgdGhpcy5UYXNrLlJlc2V0UmFuZ2UgPSB0cnVlO1xyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,16 @@
1
+ import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
2
+ import { ReturnResult } from "../util/ReturnResult";
3
+ export class ResetUserSortRemoteDataviewCommand extends RemoteDataViewCommandBase {
4
+ constructor(command) {
5
+ super(command);
6
+ }
7
+ async Execute() {
8
+ if (this.Task.UserSorts !== null) {
9
+ this.Task.UserSorts.Clear();
10
+ this.Task.UserSorts = null;
11
+ }
12
+ this.Task.ResetSort = true;
13
+ return new ReturnResult();
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRVc2VyU29ydFJlbW90ZURhdGF2aWV3Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1Jlc2V0VXNlclNvcnRSZW1vdGVEYXRhdmlld0NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBR2xELE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSx5QkFBeUI7SUFDL0UsWUFBWSxPQUFnQztRQUMxQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQU1ELEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzNCLE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2V9IGZyb20gXCIuL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2VcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHRCYXNlfSBmcm9tIFwiLi4vdXRpbC9SZXR1cm5SZXN1bHRCYXNlXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0fSBmcm9tIFwiLi4vdXRpbC9SZXR1cm5SZXN1bHRcIjtcclxuaW1wb3J0IHtDbGllbnRPcmlnaW5hdGVkQ29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUmVzZXRVc2VyU29ydFJlbW90ZURhdGF2aWV3Q29tbWFuZCBleHRlbmRzIFJlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2Uge1xyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kKSB7XHJcbiAgICBzdXBlcihjb21tYW5kKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUmVzZXQgVXNlciBTb3J0cyBhZGRlZCBieSBTb3J0QWRkIGZ1bmN0aW9uLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgaWYgKHRoaXMuVGFzay5Vc2VyU29ydHMgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5UYXNrLlVzZXJTb3J0cy5DbGVhcigpO1xyXG4gICAgICB0aGlzLlRhc2suVXNlclNvcnRzID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuVGFzay5SZXNldFNvcnQgPSB0cnVlO1xyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,4 +1,3 @@
1
- import { __awaiter } from "tslib";
2
1
  import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
3
2
  import { ReturnResult } from "../util/ReturnResult";
4
3
  export class SetTransactionStateRemoteDataViewCommand extends RemoteDataViewCommandBase {
@@ -8,16 +7,14 @@ export class SetTransactionStateRemoteDataViewCommand extends RemoteDataViewComm
8
7
  constructor(command) {
9
8
  super(command);
10
9
  }
11
- Execute() {
12
- return __awaiter(this, void 0, void 0, function* () {
13
- if (this.Task !== null) {
14
- let transaction = this.Task.DataviewManager.RemoteDataviewManager.Transaction;
15
- if (transaction !== null) {
16
- transaction.Opened = this.dataviewCommand.TransactionIsOpen;
17
- }
10
+ async Execute() {
11
+ if (this.Task !== null) {
12
+ let transaction = this.Task.DataviewManager.RemoteDataviewManager.Transaction;
13
+ if (transaction !== null) {
14
+ transaction.Opened = this.dataviewCommand.TransactionIsOpen;
18
15
  }
19
- return new ReturnResult();
20
- });
16
+ }
17
+ return new ReturnResult();
21
18
  }
22
19
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2V0VHJhbnNhY3Rpb25TdGF0ZVJlbW90ZURhdGFWaWV3Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1NldFRyYW5zYWN0aW9uU3RhdGVSZW1vdGVEYXRhVmlld0NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXRFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQU9sRCxNQUFNLE9BQU8sd0NBQXlDLFNBQVEseUJBQXlCO0lBQ3JGLElBQVksZUFBZTtRQUN6QixPQUEyQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUFZLE9BQTJDO1FBQ3JELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUssT0FBTzs7WUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUN0QixJQUFJLFdBQVcsR0FBZ0IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDO2dCQUMzRixJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUU7b0JBQ3hCLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDN0Q7YUFDRjtZQUNELE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZX0gZnJvbSBcIi4vUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9ufSBmcm9tIFwiLi4vcnQvVHJhbnNhY3Rpb25cIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHR9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdFwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdEJhc2V9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdEJhc2VcIjtcclxuaW1wb3J0IHtTZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvU2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZFwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gc2V0IHN0YXRlIHRyYW5zYWN0aW9uXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBTZXRUcmFuc2FjdGlvblN0YXRlUmVtb3RlRGF0YVZpZXdDb21tYW5kIGV4dGVuZHMgUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZSB7XHJcbiAgcHJpdmF0ZSBnZXQgZGF0YXZpZXdDb21tYW5kKCk6IFNldFRyYW5zYWN0aW9uU3RhdGVEYXRhdmlld0NvbW1hbmQge1xyXG4gICAgcmV0dXJuIDxTZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kPnRoaXMuQ29tbWFuZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IFNldFRyYW5zYWN0aW9uU3RhdGVEYXRhdmlld0NvbW1hbmQpIHtcclxuICAgIHN1cGVyKGNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgRXhlY3V0ZSgpOiBQcm9taXNlPFJldHVyblJlc3VsdEJhc2U+IHtcclxuICAgIGlmICh0aGlzLlRhc2sgIT09IG51bGwpIHtcclxuICAgICAgbGV0IHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiA9IHRoaXMuVGFzay5EYXRhdmlld01hbmFnZXIuUmVtb3RlRGF0YXZpZXdNYW5hZ2VyLlRyYW5zYWN0aW9uO1xyXG4gICAgICBpZiAodHJhbnNhY3Rpb24gIT09IG51bGwpIHtcclxuICAgICAgICB0cmFuc2FjdGlvbi5PcGVuZWQgPSB0aGlzLmRhdGF2aWV3Q29tbWFuZC5UcmFuc2FjdGlvbklzT3BlbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoKTtcclxuICB9XHJcbn1cclxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2V0VHJhbnNhY3Rpb25TdGF0ZVJlbW90ZURhdGFWaWV3Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1NldFRyYW5zYWN0aW9uU3RhdGVSZW1vdGVEYXRhVmlld0NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBT2xELE1BQU0sT0FBTyx3Q0FBeUMsU0FBUSx5QkFBeUI7SUFDckYsSUFBWSxlQUFlO1FBQ3pCLE9BQTJDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQVksT0FBMkM7UUFDckQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDdEIsSUFBSSxXQUFXLEdBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztZQUMzRixJQUFJLFdBQVcsS0FBSyxJQUFJLEVBQUU7Z0JBQ3hCLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQzthQUM3RDtTQUNGO1FBQ0QsT0FBTyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZX0gZnJvbSBcIi4vUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9ufSBmcm9tIFwiLi4vcnQvVHJhbnNhY3Rpb25cIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHR9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdFwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdEJhc2V9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdEJhc2VcIjtcclxuaW1wb3J0IHtTZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvU2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZFwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gc2V0IHN0YXRlIHRyYW5zYWN0aW9uXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBTZXRUcmFuc2FjdGlvblN0YXRlUmVtb3RlRGF0YVZpZXdDb21tYW5kIGV4dGVuZHMgUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZSB7XHJcbiAgcHJpdmF0ZSBnZXQgZGF0YXZpZXdDb21tYW5kKCk6IFNldFRyYW5zYWN0aW9uU3RhdGVEYXRhdmlld0NvbW1hbmQge1xyXG4gICAgcmV0dXJuIDxTZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kPnRoaXMuQ29tbWFuZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IFNldFRyYW5zYWN0aW9uU3RhdGVEYXRhdmlld0NvbW1hbmQpIHtcclxuICAgIHN1cGVyKGNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgRXhlY3V0ZSgpOiBQcm9taXNlPFJldHVyblJlc3VsdEJhc2U+IHtcclxuICAgIGlmICh0aGlzLlRhc2sgIT09IG51bGwpIHtcclxuICAgICAgbGV0IHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiA9IHRoaXMuVGFzay5EYXRhdmlld01hbmFnZXIuUmVtb3RlRGF0YXZpZXdNYW5hZ2VyLlRyYW5zYWN0aW9uO1xyXG4gICAgICBpZiAodHJhbnNhY3Rpb24gIT09IG51bGwpIHtcclxuICAgICAgICB0cmFuc2FjdGlvbi5PcGVuZWQgPSB0aGlzLmRhdGF2aWV3Q29tbWFuZC5UcmFuc2FjdGlvbklzT3BlbjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,274 @@
1
+ import { ApplicationException, NNumber } from '@magic-xpa/mscorelib';
2
+ import { Logger, StorageAttribute, StorageAttributeCheck, StrUtil } from '@magic-xpa/utils';
3
+ import { BlobType, ExpVal, FieldDef } from '@magic-xpa/gui';
4
+ import { ConstInterface } from '../ConstInterface';
5
+ import { FieldBase } from '../data/FieldBase';
6
+ export class Argument {
7
+ constructor(fieldOrExpValOrSrcArg) {
8
+ this._exp = null;
9
+ this._fld = null;
10
+ this._skip = false;
11
+ this._type = '\0';
12
+ this._val = null;
13
+ this._valueAttr = StorageAttribute.NONE;
14
+ this._valueIsNull = false;
15
+ if (arguments.length === 0) {
16
+ this.constructor_0();
17
+ return;
18
+ }
19
+ if (arguments.length === 1 && (fieldOrExpValOrSrcArg === null || fieldOrExpValOrSrcArg instanceof FieldBase)) {
20
+ this.constructor_1(fieldOrExpValOrSrcArg);
21
+ return;
22
+ }
23
+ if (arguments.length === 1 && (fieldOrExpValOrSrcArg === null || fieldOrExpValOrSrcArg instanceof ExpVal)) {
24
+ this.constructor_2(fieldOrExpValOrSrcArg);
25
+ return;
26
+ }
27
+ this.constructor_3(fieldOrExpValOrSrcArg);
28
+ }
29
+ constructor_0() {
30
+ this._type = '\0';
31
+ this._fld = null;
32
+ this._exp = null;
33
+ this._skip = false;
34
+ }
35
+ constructor_1(field) {
36
+ this._fld = field;
37
+ this._type = ConstInterface.ARG_TYPE_FIELD;
38
+ this._exp = null;
39
+ this._skip = false;
40
+ }
41
+ constructor_2(expVal) {
42
+ this._type = ConstInterface.ARG_TYPE_VALUE;
43
+ this._fld = null;
44
+ this._exp = null;
45
+ this._skip = false;
46
+ if (expVal.IsNull)
47
+ this._val = null;
48
+ else
49
+ this._val = expVal.ToMgVal();
50
+ this._valueIsNull = (this._val === null);
51
+ this._valueAttr = expVal.Attr;
52
+ }
53
+ constructor_3(srcArg) {
54
+ this._type = ConstInterface.ARG_TYPE_VALUE;
55
+ switch (srcArg._type) {
56
+ case ConstInterface.ARG_TYPE_FIELD:
57
+ this._valueAttr = srcArg._fld.getType();
58
+ break;
59
+ case ConstInterface.ARG_TYPE_EXP:
60
+ break;
61
+ case ConstInterface.ARG_TYPE_SKIP:
62
+ this._skip = true;
63
+ break;
64
+ default:
65
+ throw new ApplicationException("in Argument.Argument(): illegal source Argument type!");
66
+ }
67
+ }
68
+ async Initialize(srcArg) {
69
+ switch (srcArg._type) {
70
+ case ConstInterface.ARG_TYPE_FIELD:
71
+ this._val = srcArg._fld.getValue(true);
72
+ this._valueIsNull = srcArg._fld.isNull();
73
+ break;
74
+ case ConstInterface.ARG_TYPE_EXP:
75
+ let retVal = await srcArg._exp.evaluateWithResLength(255);
76
+ this._val = retVal.mgVal;
77
+ this._valueAttr = retVal.type;
78
+ this._valueIsNull = (this._val == null);
79
+ if (this._valueIsNull)
80
+ this._val = Argument.getEmptyValue((retVal.type === StorageAttribute.BLOB ||
81
+ retVal.type === StorageAttribute.BLOB_VECTOR));
82
+ break;
83
+ }
84
+ }
85
+ fillData(arg, srcTask) {
86
+ this._type = arg[0];
87
+ let argElements = arg.substr(2);
88
+ switch (this._type) {
89
+ case ConstInterface.ARG_TYPE_FIELD:
90
+ {
91
+ let fieldId = argElements.split(',');
92
+ let parent = NNumber.Parse(fieldId[0]);
93
+ let fldIdx = NNumber.Parse(fieldId[1]);
94
+ this._fld = srcTask.getFieldDef(parent, fldIdx);
95
+ }
96
+ break;
97
+ case ConstInterface.ARG_TYPE_EXP:
98
+ let expNum = NNumber.Parse(argElements);
99
+ this._exp = srcTask.getExpById(expNum);
100
+ break;
101
+ case ConstInterface.ARG_TYPE_SKIP:
102
+ this._skip = true;
103
+ break;
104
+ default:
105
+ Logger.Instance.WriteExceptionToLogWithMsg("in Argument.FillData() illegal type: " + arg);
106
+ break;
107
+ }
108
+ }
109
+ buildXML(message) {
110
+ switch (this._type) {
111
+ case ConstInterface.ARG_TYPE_FIELD:
112
+ message.Append("F:" + this._fld.getTask().getTaskTag() + "," + this._fld.getId());
113
+ break;
114
+ case ConstInterface.ARG_TYPE_EXP:
115
+ message.Append("E:" + this._exp.getId());
116
+ break;
117
+ case ConstInterface.ARG_TYPE_SKIP:
118
+ message.Append("X:0");
119
+ break;
120
+ default:
121
+ Logger.Instance.WriteExceptionToLogWithMsg("in Argument.buildXML() illegal type: " + this._type);
122
+ break;
123
+ }
124
+ }
125
+ getType() {
126
+ return this._type;
127
+ }
128
+ getField() {
129
+ if (this._type === ConstInterface.ARG_TYPE_FIELD)
130
+ return this._fld;
131
+ return null;
132
+ }
133
+ getExp() {
134
+ if (this._type === ConstInterface.ARG_TYPE_EXP)
135
+ return this._exp;
136
+ return null;
137
+ }
138
+ async setValueToField(destFld) {
139
+ let val;
140
+ let isNull;
141
+ switch (this._type) {
142
+ case ConstInterface.ARG_TYPE_FIELD:
143
+ val = this._fld.getValue(true);
144
+ val = Argument.convertArgs(val, this._fld.getType(), destFld.getType());
145
+ isNull = this._fld.isNull() || val == null;
146
+ break;
147
+ case ConstInterface.ARG_TYPE_EXP:
148
+ val = await this._exp.evaluateWithResultTypeAndLength(destFld.getType(), destFld.getSize());
149
+ isNull = (val == null);
150
+ if (isNull)
151
+ val = Argument.getEmptyValue((destFld.getType() === StorageAttribute.BLOB ||
152
+ destFld.getType() === StorageAttribute.BLOB_VECTOR));
153
+ break;
154
+ case ConstInterface.ARG_TYPE_VALUE:
155
+ val = Argument.convertArgs(this._val, this._valueAttr, destFld.getType());
156
+ isNull = this._valueIsNull || val == null;
157
+ break;
158
+ default:
159
+ return;
160
+ }
161
+ destFld.takeValFromRec();
162
+ await destFld.setValueAndStartRecompute(val, isNull, destFld.getTask().DataViewWasRetrieved, false, true);
163
+ }
164
+ static convertArgs(value, srcAttr, expectedType) {
165
+ let invalidArg = false;
166
+ switch (expectedType) {
167
+ case StorageAttribute.ALPHA:
168
+ case StorageAttribute.UNICODE:
169
+ if (srcAttr === StorageAttribute.BLOB) {
170
+ if (BlobType.isValidBlob(value))
171
+ value = BlobType.getString(value);
172
+ }
173
+ else if (!StorageAttributeCheck.IsTypeAlphaOrUnicode(srcAttr))
174
+ invalidArg = true;
175
+ break;
176
+ case StorageAttribute.NUMERIC:
177
+ case StorageAttribute.DATE:
178
+ case StorageAttribute.TIME:
179
+ if (!StorageAttributeCheck.isTypeNumeric(srcAttr))
180
+ invalidArg = true;
181
+ break;
182
+ case StorageAttribute.BLOB:
183
+ if (StorageAttributeCheck.IsTypeAlphaOrUnicode(srcAttr)) {
184
+ let contentType = srcAttr === StorageAttribute.ALPHA
185
+ ? BlobType.CONTENT_TYPE_ANSI
186
+ : BlobType.CONTENT_TYPE_UNICODE;
187
+ value = BlobType.createFromString(value, contentType);
188
+ }
189
+ else if (!StorageAttributeCheck.isTypeBlob(srcAttr))
190
+ invalidArg = true;
191
+ break;
192
+ }
193
+ if (invalidArg)
194
+ value = FieldDef.getMagicDefaultValue(expectedType);
195
+ return value;
196
+ }
197
+ async getValue(expType, expSize) {
198
+ switch (this._type) {
199
+ case ConstInterface.ARG_TYPE_EXP:
200
+ this._val = await this._exp.evaluateWithResultTypeAndLength(expType, expSize);
201
+ if (this._val == null)
202
+ this._val = Argument.getEmptyValue(expType === StorageAttribute.BLOB
203
+ || expType === StorageAttribute.BLOB_VECTOR);
204
+ break;
205
+ case ConstInterface.ARG_TYPE_FIELD:
206
+ this._val = this._fld.getValue(true);
207
+ break;
208
+ case ConstInterface.ARG_TYPE_VALUE:
209
+ break;
210
+ default:
211
+ return null;
212
+ }
213
+ return this._val;
214
+ }
215
+ skipArg() {
216
+ return this._skip;
217
+ }
218
+ fillDataByParams(paramValueAttr, paramValue, paramNull) {
219
+ this._valueAttr = paramValueAttr;
220
+ this._val = paramValue;
221
+ this._valueIsNull = paramNull;
222
+ if (this._valueAttr === StorageAttribute.SKIP) {
223
+ this._type = ConstInterface.ARG_TYPE_SKIP;
224
+ this._skip = true;
225
+ }
226
+ else {
227
+ this._type = ConstInterface.ARG_TYPE_VALUE;
228
+ }
229
+ }
230
+ static getEmptyValue(isBlob) {
231
+ return isBlob ? (BlobType.getEmptyBlobPrefix('\0') + ";") : "";
232
+ }
233
+ FillFromString(argStr) {
234
+ this._type = ConstInterface.ARG_TYPE_VALUE;
235
+ let argType = null;
236
+ if (argStr.length > 2)
237
+ argType = argStr.substr(0, 2);
238
+ switch (argType) {
239
+ case ConstInterface.REQ_ARG_ALPHA:
240
+ this._valueAttr = StorageAttribute.ALPHA;
241
+ break;
242
+ case ConstInterface.REQ_ARG_UNICODE:
243
+ this._valueAttr = StorageAttribute.UNICODE;
244
+ break;
245
+ case ConstInterface.REQ_ARG_NUMERIC:
246
+ this._valueAttr = StorageAttribute.NUMERIC;
247
+ break;
248
+ case ConstInterface.REQ_ARG_DOUBLE:
249
+ this._valueAttr = StorageAttribute.NUMERIC;
250
+ break;
251
+ case ConstInterface.REQ_ARG_LOGICAL:
252
+ this._valueAttr = StorageAttribute.BOOLEAN;
253
+ break;
254
+ case ConstInterface.REQ_ARG_NULL:
255
+ this._valueAttr = StorageAttribute.NONE;
256
+ break;
257
+ default:
258
+ this._valueAttr = StorageAttribute.ALPHA;
259
+ this._val = argStr;
260
+ return;
261
+ }
262
+ this._val = argStr.substr(2);
263
+ }
264
+ makeURLPrintable(source) {
265
+ let from = [
266
+ "\\", "\0", ","
267
+ ];
268
+ let to = [
269
+ "\\\\", "\\0", "\\,"
270
+ ];
271
+ return StrUtil.searchAndReplace(source, from, to);
272
+ }
273
+ }
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0FyZ3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQWlCLE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzlDLE1BQU0sT0FBTyxRQUFRO0lBYW5CLFlBQVkscUJBQTJCO1FBWi9CLFNBQUksR0FBZSxJQUFJLENBQUM7UUFDeEIsU0FBSSxHQUFjLElBQUksQ0FBQztRQUN2QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLFVBQUssR0FBVyxJQUFJLENBQUM7UUFDckIsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixlQUFVLEdBQXFCLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNyRCxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQU9wQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFDRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMscUJBQXFCLEtBQUssSUFBSSxJQUFJLHFCQUFxQixZQUFZLFNBQVMsQ0FBQyxFQUFFO1lBQzVHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUMxQyxPQUFPO1NBQ1I7UUFD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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkV4Y2VwdGlvbiwgTk51bWJlciwgU3RyaW5nQnVpbGRlciB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgTG9nZ2VyLCBTdG9yYWdlQXR0cmlidXRlLCBTdG9yYWdlQXR0cmlidXRlQ2hlY2ssIFN0clV0aWwgfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHsgQmxvYlR5cGUsIEV4cFZhbCwgRmllbGREZWYgfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuLi9leHAvRXhwcmVzc2lvbic7XHJcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi90YXNrcy9UYXNrJztcclxuaW1wb3J0IHsgQ29uc3RJbnRlcmZhY2UgfSBmcm9tICcuLi9Db25zdEludGVyZmFjZSc7XHJcbmltcG9ydCB7IEZpZWxkQmFzZSB9IGZyb20gJy4uL2RhdGEvRmllbGRCYXNlJztcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQXJndW1lbnQge1xyXG4gIHByaXZhdGUgX2V4cDogRXhwcmVzc2lvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfZmxkOiBGaWVsZEJhc2UgPSBudWxsO1xyXG4gIHByaXZhdGUgX3NraXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF90eXBlOiBzdHJpbmcgPSAnXFwwJzsgLy8gRmllbGRCYXNlfEV4cHJlc3Npb258VmFsdWVcclxuICBwcml2YXRlIF92YWw6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfdmFsdWVBdHRyOiBTdG9yYWdlQXR0cmlidXRlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FOyAvLyB0cnVlIGlzIGFyZ3VtZW50IGlzIG9mIHR5cGUgQVJHX1RZUEVfVkFMVUUgYW5kXHJcbiAgcHJpdmF0ZSBfdmFsdWVJc051bGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKTtcclxuICBjb25zdHJ1Y3RvcihmaWVsZDogRmllbGRCYXNlKTtcclxuICBjb25zdHJ1Y3RvcihleHBWYWw6IEV4cFZhbCk7XHJcbiAgY29uc3RydWN0b3Ioc3JjQXJnOiBBcmd1bWVudCk7XHJcbiAgY29uc3RydWN0b3IoZmllbGRPckV4cFZhbE9yU3JjQXJnPzogYW55KSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzAoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEgJiYgKGZpZWxkT3JFeHBWYWxPclNyY0FyZyA9PT0gbnVsbCB8fCBmaWVsZE9yRXhwVmFsT3JTcmNBcmcgaW5zdGFuY2VvZiBGaWVsZEJhc2UpKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMShmaWVsZE9yRXhwVmFsT3JTcmNBcmcpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAoZmllbGRPckV4cFZhbE9yU3JjQXJnID09PSBudWxsIHx8IGZpZWxkT3JFeHBWYWxPclNyY0FyZyBpbnN0YW5jZW9mIEV4cFZhbCkpIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8yKGZpZWxkT3JFeHBWYWxPclNyY0FyZyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuY29uc3RydWN0b3JfMyhmaWVsZE9yRXhwVmFsT3JTcmNBcmcpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3R5cGUgPSAnXFwwJy8qJ1x1MDAwMCcqLztcclxuICAgIHRoaXMuX2ZsZCA9IG51bGw7XHJcbiAgICB0aGlzLl9leHAgPSBudWxsO1xyXG4gICAgdGhpcy5fc2tpcCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDVE9SIC0gY3JlYXRlIGFuIGFyZ3VtZW50IGZyb20gYSBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xKGZpZWxkOiBGaWVsZEJhc2UpOiB2b2lkIHtcclxuICAgIHRoaXMuX2ZsZCA9IGZpZWxkO1xyXG4gICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEIC8qJ0YnKi87XHJcbiAgICB0aGlzLl9leHAgPSBudWxsO1xyXG4gICAgdGhpcy5fc2tpcCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1IgdGhhdCBjcmVhdGVzIGEgXCJWYWx1ZVwiIHR5cGUgYXJndW1lbnQgZnJvbSBhIGdpdmVuIEV4cHJlc3Npb24gVmFsdWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwVmFsXCI+dGhlIHNvdXJjZSBleHByZXNzaW9uIHZhbHVlPC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzIoZXhwVmFsOiBFeHBWYWwpOiB2b2lkIHtcclxuICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRTtcclxuICAgIHRoaXMuX2ZsZCA9IG51bGw7XHJcbiAgICB0aGlzLl9leHAgPSBudWxsO1xyXG4gICAgdGhpcy5fc2tpcCA9IGZhbHNlO1xyXG5cclxuICAgIGlmIChleHBWYWwuSXNOdWxsKVxyXG4gICAgICB0aGlzLl92YWwgPSBudWxsO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLl92YWwgPSBleHBWYWwuVG9NZ1ZhbCgpO1xyXG5cclxuICAgIHRoaXMuX3ZhbHVlSXNOdWxsID0gKHRoaXMuX3ZhbCA9PT0gbnVsbCk7XHJcbiAgICB0aGlzLl92YWx1ZUF0dHIgPSBleHBWYWwuQXR0cjtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SIHRoYXQgY3JlYXRlcyBhIFwiVmFsdWVcIiB0eXBlIGFyZ3VtZW50IGZyb20gYSBnaXZlbiBGaWVsZEJhc2Ugb3IgRXhwcmVzc2lvbiB0eXBlXHJcbiAgLy8vICAgYXJndW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3JjQXJnXCI+dGhlIHNvdXJjZSBhcmd1bWVudDwvcGFyYW0+XHJcbiAgY29uc3RydWN0b3JfMyhzcmNBcmc6IEFyZ3VtZW50KSB7XHJcbiAgICB0aGlzLl90eXBlID0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUU7XHJcblxyXG4gICAgc3dpdGNoIChzcmNBcmcuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBzcmNBcmcuX2ZsZC5nZXRUeXBlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1NLSVA6XHJcbiAgICAgICAgdGhpcy5fc2tpcCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhyb3cgbmV3IEFwcGxpY2F0aW9uRXhjZXB0aW9uKFwiaW4gQXJndW1lbnQuQXJndW1lbnQoKTogaWxsZWdhbCBzb3VyY2UgQXJndW1lbnQgdHlwZSFcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgSW5pdGlhbGl6ZShzcmNBcmc6IEFyZ3VtZW50KTogUHJvbWlzZTx2b2lkPntcclxuICAgIHN3aXRjaCAoc3JjQXJnLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQ6XHJcbiAgICAgICAgdGhpcy5fdmFsID0gc3JjQXJnLl9mbGQuZ2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVJc051bGwgPSBzcmNBcmcuX2ZsZC5pc051bGwoKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIGxldCByZXRWYWwgPSBhd2FpdCBzcmNBcmcuX2V4cC5ldmFsdWF0ZVdpdGhSZXNMZW5ndGgoMjU1KTtcclxuICAgICAgICB0aGlzLl92YWwgPSByZXRWYWwubWdWYWw7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gcmV0VmFsLnR5cGU7XHJcbiAgICAgICAgdGhpcy5fdmFsdWVJc051bGwgPSAodGhpcy5fdmFsID09IG51bGwpO1xyXG4gICAgICAgIGlmICh0aGlzLl92YWx1ZUlzTnVsbClcclxuICAgICAgICAgIHRoaXMuX3ZhbCA9IEFyZ3VtZW50LmdldEVtcHR5VmFsdWUoKHJldFZhbC50eXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IgfHxcclxuICAgICAgICAgICAgcmV0VmFsLnR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBQYXJzaW5nIEFyZ3VtZW50IHN0cmluZyBhbmQgZmlsbCBpbm5lciBvYmplY3RzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImFyZ1wiPnN0cmluZyB0byBwYXJzZSA8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3JjVGFza1wiPm9mIHRoZSBhcmd1bWVudCB0byBmaW5kIGV4cHJlc3Npb24gYXJndW1lbnQgPC9wYXJhbT5cclxuICBwdWJsaWMgZmlsbERhdGEoYXJnOiBTdHJpbmcsIHNyY1Rhc2s6IFRhc2spOiB2b2lkIHtcclxuICAgIHRoaXMuX3R5cGUgPSBhcmdbMF07XHJcbiAgICBsZXQgYXJnRWxlbWVudHM6IHN0cmluZyA9IGFyZy5zdWJzdHIoMik7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQ6IHtcclxuICAgICAgICBsZXQgZmllbGRJZDogc3RyaW5nW10gPSBhcmdFbGVtZW50cy5zcGxpdCgnLCcpO1xyXG4gICAgICAgIGxldCBwYXJlbnQ6IG51bWJlciA9ICBOTnVtYmVyLlBhcnNlKGZpZWxkSWRbMF0pO1xyXG4gICAgICAgIGxldCBmbGRJZHg6IG51bWJlciA9ICBOTnVtYmVyLlBhcnNlKGZpZWxkSWRbMV0pO1xyXG4gICAgICAgIHRoaXMuX2ZsZCA9IDxGaWVsZEJhc2U+c3JjVGFzay5nZXRGaWVsZERlZihwYXJlbnQsIGZsZElkeCk7XHJcbiAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIGxldCBleHBOdW06IG51bWJlciA9IE5OdW1iZXIuUGFyc2UoYXJnRWxlbWVudHMpO1xyXG4gICAgICAgIHRoaXMuX2V4cCA9IHNyY1Rhc2suZ2V0RXhwQnlJZChleHBOdW0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9TS0lQOlxyXG4gICAgICAgIHRoaXMuX3NraXAgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIEFyZ3VtZW50LkZpbGxEYXRhKCkgaWxsZWdhbCB0eXBlOiBcIiArIGFyZyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYnVpbGQgdGhlIFhNTCBzdHJpbmcgZm9yIHRoZSBhcmd1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtZXNzYWdlXCI+dGhlIFhNTCBzdHJpbmcgdG8gYXBwZW5kIHRoZSBhcmd1bWVudCB0bzwvcGFyYW0+XHJcbiAgcHVibGljIGJ1aWxkWE1MKG1lc3NhZ2U6IFN0cmluZ0J1aWxkZXIpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOlxyXG4gICAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiRjpcIiArIHRoaXMuX2ZsZC5nZXRUYXNrKCkuZ2V0VGFza1RhZygpICsgXCIsXCIgKyB0aGlzLl9mbGQuZ2V0SWQoKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUDpcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZChcIkU6XCIgKyB0aGlzLl9leHAuZ2V0SWQoKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1NLSVA6XHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoXCJYOjBcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIEFyZ3VtZW50LmJ1aWxkWE1MKCkgaWxsZWdhbCB0eXBlOiBcIiArIHRoaXMuX3R5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGFyZ3VtZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRUeXBlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmb3IgZmllbGQgdHlwZSBhcmd1bWVudHMgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldEZpZWxkKCk6IEZpZWxkQmFzZSB7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQpXHJcbiAgICAgIHJldHVybiB0aGlzLl9mbGQ7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmb3IgZXhwcmVzc2lvbiB0eXBlIGFyZ3VtZW50cyByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBleHByZXNzaW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcm90ZWN0ZWQgZ2V0RXhwKCk6IEV4cHJlc3Npb24ge1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUClcclxuICAgICAgcmV0dXJuIHRoaXMuX2V4cDtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHNldCB0aGUgdmFsdWUgb2YgdGhpcyBhcmd1bWVudCB0byBhIGdpdmVuIGZpZWxkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImRlc3RGbGRcIj50aGUgZGVzdGluYXRpb24gZmllbGRcclxuICAvLy8gPC9wYXJhbT5cclxuICBwdWJsaWMgYXN5bmMgc2V0VmFsdWVUb0ZpZWxkKGRlc3RGbGQ6IEZpZWxkQmFzZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHZhbDogc3RyaW5nO1xyXG4gICAgbGV0IGlzTnVsbDogYm9vbGVhbjtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDpcclxuICAgICAgICB2YWwgPSB0aGlzLl9mbGQuZ2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgdmFsID0gQXJndW1lbnQuY29udmVydEFyZ3ModmFsLCB0aGlzLl9mbGQuZ2V0VHlwZSgpLCBkZXN0RmxkLmdldFR5cGUoKSk7XHJcbiAgICAgICAgaXNOdWxsID0gdGhpcy5fZmxkLmlzTnVsbCgpIHx8IHZhbCA9PSBudWxsO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgdmFsID0gYXdhaXQgdGhpcy5fZXhwLmV2YWx1YXRlV2l0aFJlc3VsdFR5cGVBbmRMZW5ndGgoZGVzdEZsZC5nZXRUeXBlKCksIGRlc3RGbGQuZ2V0U2l6ZSgpKTtcclxuICAgICAgICBpc051bGwgPSAodmFsID09IG51bGwpO1xyXG4gICAgICAgIGlmIChpc051bGwpXHJcbiAgICAgICAgICB2YWwgPSBBcmd1bWVudC5nZXRFbXB0eVZhbHVlKChkZXN0RmxkLmdldFR5cGUoKSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CIHx8XHJcbiAgICAgICAgICAgIGRlc3RGbGQuZ2V0VHlwZSgpID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JfVkVDVE9SKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUU6XHJcbiAgICAgICAgdmFsID0gQXJndW1lbnQuY29udmVydEFyZ3ModGhpcy5fdmFsLCB0aGlzLl92YWx1ZUF0dHIsIGRlc3RGbGQuZ2V0VHlwZSgpKTtcclxuICAgICAgICBpc051bGwgPSB0aGlzLl92YWx1ZUlzTnVsbCB8fCB2YWwgPT0gbnVsbDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyBVcGRhdGUgZGVzdGluYXRpb24gZmllbGQncyBfaXNOVUxMIHdpdGggdGhlIHZhbHVlIGZyb20gcmVjb3JkLiBUaGlzIGlzIG5lZWRlZCB0byBpZGVudGlmeVxyXG4gICAgLy8gaWYgdGhlIHZhcmlhYmxlIGlzIG1vZGlmaWVkLlxyXG4gICAgZGVzdEZsZC50YWtlVmFsRnJvbVJlYygpO1xyXG4gICAgYXdhaXQgZGVzdEZsZC5zZXRWYWx1ZUFuZFN0YXJ0UmVjb21wdXRlKHZhbCwgaXNOdWxsLCAoPFRhc2s+ZGVzdEZsZC5nZXRUYXNrKCkpLkRhdGFWaWV3V2FzUmV0cmlldmVkLCBmYWxzZSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGNvbnZlcnRzIEFscGhhL1VuaWNvZGUgdmFsdWVzIHRvIEJsb2IgYW5kIHZpY2UgdmVyc2EuXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ2YWx1ZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3JjQXR0clwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZXhwZWN0ZWRUeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEFyZ3ModmFsdWU6IHN0cmluZywgc3JjQXR0cjogU3RvcmFnZUF0dHJpYnV0ZSwgZXhwZWN0ZWRUeXBlOiBTdG9yYWdlQXR0cmlidXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBpbnZhbGlkQXJnOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgc3dpdGNoIChleHBlY3RlZFR5cGUpIHtcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTpcclxuICAgICAgICBpZiAoc3JjQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CKSB7XHJcbiAgICAgICAgICBpZiAoQmxvYlR5cGUuaXNWYWxpZEJsb2IodmFsdWUpKVxyXG4gICAgICAgICAgICB2YWx1ZSA9IEJsb2JUeXBlLmdldFN0cmluZyh2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCFTdG9yYWdlQXR0cmlidXRlQ2hlY2suSXNUeXBlQWxwaGFPclVuaWNvZGUoc3JjQXR0cikpXHJcbiAgICAgICAgICBpbnZhbGlkQXJnID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuREFURTpcclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLlRJTUU6XHJcbiAgICAgICAgaWYgKCFTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlTnVtZXJpYyhzcmNBdHRyKSlcclxuICAgICAgICAgIGludmFsaWRBcmcgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLkJMT0I6XHJcbiAgICAgICAgaWYgKFN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5Jc1R5cGVBbHBoYU9yVW5pY29kZShzcmNBdHRyKSkge1xyXG4gICAgICAgICAgbGV0IGNvbnRlbnRUeXBlOiBzdHJpbmcgPSBzcmNBdHRyID09PSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBXHJcbiAgICAgICAgICAgID8gQmxvYlR5cGUuQ09OVEVOVF9UWVBFX0FOU0lcclxuICAgICAgICAgICAgOiBCbG9iVHlwZS5DT05URU5UX1RZUEVfVU5JQ09ERTtcclxuICAgICAgICAgIHZhbHVlID0gQmxvYlR5cGUuY3JlYXRlRnJvbVN0cmluZyh2YWx1ZSwgY29udGVudFR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICghU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLmlzVHlwZUJsb2Ioc3JjQXR0cikpXHJcbiAgICAgICAgICBpbnZhbGlkQXJnID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB0aGVyZSBpcyBtaXNtYXRjaCBpbiBhdHRyaWJ1dGUsIHRha2UgZGVmYXVsdCB2YWx1ZSBvZiBleHBlY3RkIGFyZ3VtZW50LlxyXG4gICAgaWYgKGludmFsaWRBcmcpXHJcbiAgICAgIHZhbHVlID0gRmllbGREZWYuZ2V0TWFnaWNEZWZhdWx0VmFsdWUoZXhwZWN0ZWRUeXBlKTtcclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgdmFsdWUgb2YgQXJndW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwVHlwZVwiPnR5cGUgb2YgZXhwZWN0ZWQgdHlwZSBvZiBldmFsdWF0aW9uPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4cFNpemVcIj5zaXplIG9mIGV4cGVjdGVkIHN0cmluZyBmcm9tIGV2YWx1YXRpb248L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdmFsdWUgb2YgdGhlIEFyZ3VtZW50PC9yZXR1cm5zPlxyXG4gIHB1YmxpYyBhc3luYyBnZXRWYWx1ZShleHBUeXBlOiBTdG9yYWdlQXR0cmlidXRlLCBleHBTaXplOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIHRoaXMuX3ZhbCA9IGF3YWl0IHRoaXMuX2V4cC5ldmFsdWF0ZVdpdGhSZXN1bHRUeXBlQW5kTGVuZ3RoKGV4cFR5cGUsIGV4cFNpemUpO1xyXG4gICAgICAgIGlmICh0aGlzLl92YWwgPT0gbnVsbClcclxuICAgICAgICAgIHRoaXMuX3ZhbCA9IEFyZ3VtZW50LmdldEVtcHR5VmFsdWUoZXhwVHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CXHJcbiAgICAgICAgICAgIHx8IGV4cFR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDpcclxuICAgICAgICB0aGlzLl92YWwgPSB0aGlzLl9mbGQuZ2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFOlxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl92YWw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHJldHVybnM+IHZhbHVlIG9mIHRoZSBza2lwIGZsYWcgPC9yZXR1cm5zPlxyXG4gIHNraXBBcmcoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2tpcDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmaWxsIGFuIGFyZ3VtZW50IGRhdGEgZnJvbSBhIHBhcmFtZXRlciBkYXRhXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInBhcmFtVmFsdWVBdHRyXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInBhcmFtVmFsdWVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyYW1OdWxsXCI+PC9wYXJhbT5cclxuICBmaWxsRGF0YUJ5UGFyYW1zKHBhcmFtVmFsdWVBdHRyOiBTdG9yYWdlQXR0cmlidXRlLCBwYXJhbVZhbHVlOiBzdHJpbmcsIHBhcmFtTnVsbDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fdmFsdWVBdHRyID0gcGFyYW1WYWx1ZUF0dHI7XHJcbiAgICB0aGlzLl92YWwgPSBwYXJhbVZhbHVlO1xyXG4gICAgdGhpcy5fdmFsdWVJc051bGwgPSBwYXJhbU51bGw7XHJcblxyXG4gICAgLy8gVGhlIHNlcnZlciBpbmRpY2F0ZXMgc2tpcCBvbiBhIHBhcmFtZXRlciBieSBzZW5kaW5nIERBVEFfVFlQRV9TS0lQIGluc3RlYWQgb2YgdGhlIHJlYWwgYXR0cmlidXRlLlxyXG4gICAgaWYgKHRoaXMuX3ZhbHVlQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5TS0lQKSB7XHJcbiAgICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9TS0lQIC8qJ1gnKi87XHJcbiAgICAgIHRoaXMuX3NraXAgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRSAvKlYqLztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gcmV0dXJucyBlbXB0eSB2YWx1ZTwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJpc0Jsb2JcIj4tIHRydWUgaXMgdmFsdWUgaXMgZm9yIGJsb2I8L3BhcmFtPlxyXG4gIHByaXZhdGUgc3RhdGljIGdldEVtcHR5VmFsdWUoaXNCbG9iOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBpc0Jsb2IgPyAoQmxvYlR5cGUuZ2V0RW1wdHlCbG9iUHJlZml4KCdcXDAnKSAvKidcdTAwMDAnKi8gKyBcIjtcIikgOiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBmaWxsIHRoZSBhcmd1bWVudCBmcm9tIGEgc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJhcmdTdHJcIj48L3BhcmFtPlxyXG4gIHB1YmxpYyBGaWxsRnJvbVN0cmluZyhhcmdTdHI6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgLy8gdHlwZSBpcyBhbHdheXMgYSB2YWx1ZVxyXG4gICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFO1xyXG5cclxuICAgIGxldCBhcmdUeXBlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgLy8gSWYgc3RyaW5nIGlzIHNob3J0ZXIgdGhhbiAzLCBhc3N1bWUgaXQgZG9lcyBub3QgaGF2ZSBhbiBhdHRyaWJ1dGUgaWRlbnRpZmllclxyXG4gICAgaWYgKGFyZ1N0ci5sZW5ndGggPiAyKVxyXG4gICAgICBhcmdUeXBlID0gYXJnU3RyLnN1YnN0cigwLCAyKTtcclxuXHJcbiAgICBzd2l0Y2ggKGFyZ1R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX0FMUEhBOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuUkVRX0FSR19VTklDT0RFOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX05VTUVSSUM6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfRE9VQkxFOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX0xPR0lDQUw6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5CT09MRUFOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfTlVMTDpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgLy8gaWYgc3RvcmFnZSB0eXBlIGlzIG5vdCBkZWZpbmVkLCBhc3N1bWUgYWxwaGEgc3RyaW5nIGFuZCB0aGUgZW50aXJlIHN0cmluZyBpcyB0aGUgdmFsdWVcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLkFMUEhBO1xyXG4gICAgICAgIHRoaXMuX3ZhbCA9IGFyZ1N0cjtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICAvLyB0aGUgY2FzZSB0aGUgc3RyaW5nIGlzIHRvbyBzaG9ydCB3YXMgZGVhbHQgd2l0aCBlYXJsaWVyIC0gaXQgd2lsbCBnZXQgdG8gdGhlIGRlZmF1bHQgY2FzZSBpbiB0aGUgc3dpdGNoXHJcbiAgICAvLyBhbmQgcmV0dXJuIGZyb20gdGhlcmVcclxuICAgIHRoaXMuX3ZhbCA9IGFyZ1N0ci5zdWJzdHIoMik7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNoYW5nZXMgYWxsIGlsbGVnYWwgY2hhcmFjdGVycyBvciBzcGVjaWFsIGNoYXJhY3RlcnMgdXNlZCBmb3IgcGFyc2luZyB0byB0aGVpciBsZWdhbCBmb3JtYXRcclxuICAvLy8gICB0aGUgcGFyc2luZyBpcyBwZXJmb3JtZWQgYXQgc2V2ZXJhbCBwbGFjZXMgZmlyc3Qgd2hlbiBwYXNzaW5nIHRoZSB1cmwgdG8gSUUgYnkgSUVcclxuICAvLy8gICBzZWNvbmQgaW4gdGhlIHJlcXVlc3RlciAocnFodHRwLmNwcCkgd2hlbiBwYXJzaW5nIHRoZSB1cmwgZm9yIGFyZ3VtZW50c1xyXG4gIC8vLyAgIHRoaXJzdCBpbiB0aGUgbWFnaWMgZW5naW5lIChtZ3JxbXJnLmNwcCAtIGNvcHlfaW5fYXJncylcclxuICAvLy8gICB3ZSBtdXN0IGRpc3Rpbmd1aXNoIGJldHdlZW4gY2hhcmFjdGVycyB0aGF0IGFyZSByZXNlcnZlZCBmb3Igc3BlY2lhbCB1c2UgYnkgdGhlIFVSTCBSRkMgYW5kXHJcbiAgLy8vICAgYmV0d2VlbiBjaGFyYWN0ZXJzIHVzZWQgaW50ZXJuYWxseSBieSBtYWdpYyBmb3Igc3BlY2lhbCB1c2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic291cmNlXCI+dXJsIHRvIGJlIGNvbnZlcnRlZCA8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdGhlIGNvbnZlcnRlZCB1cmwgICA8L3JldHVybnM+XHJcbiAgbWFrZVVSTFByaW50YWJsZShzb3VyY2U6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBsZXQgZnJvbTogc3RyaW5nW10gPSBbXHJcbiAgICAgIFwiXFxcXFwiLCBcIlxcMFwiLCBcIixcIlxyXG4gICAgXTtcclxuICAgIGxldCB0bzogc3RyaW5nW10gPSBbXHJcbiAgICAgIFwiXFxcXFxcXFxcIiwgXCJcXFxcMFwiLCBcIlxcXFwsXCJcclxuICAgIF07XHJcbiAgICByZXR1cm4gU3RyVXRpbC5zZWFyY2hBbmRSZXBsYWNlKHNvdXJjZSwgZnJvbSwgdG8pO1xyXG4gIH1cclxufVxyXG4iXX0=