@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
@@ -1,28 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
3
- import { ResultValue } from "../rt/ResultValue";
4
- import { CommandFactory } from "../commands/ClientToServer/CommandFactory";
5
- import { RemoteCommandsProcessor } from "./RemoteCommandsProcessor";
6
- import { CommandsProcessorBase_SendingInstruction, CommandsProcessorBase_SessionStage } from "../CommandsProcessorBase";
7
- import { ReturnResult } from "../util/ReturnResult";
8
- export class RemoteControlItemsRefreshCommand extends RemoteDataViewCommandBase {
9
- constructor(command) {
10
- super(command);
11
- this.control = null;
12
- this.control = command.Control;
13
- }
14
- Execute() {
15
- return __awaiter(this, void 0, void 0, function* () {
16
- let res = new ResultValue();
17
- let cmd = CommandFactory.CreatecFetchDataControlValuesCommand(this.Task.getTaskTag(), this.control.getName());
18
- this.Task.getMGData().CmdsToServer.Add(cmd);
19
- yield RemoteCommandsProcessor.GetInstance().Execute_1(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS, CommandsProcessorBase_SessionStage.NORMAL, res);
20
- for (let i = 0; i < this.Task.DataView.getSize(); i = i + 1) {
21
- this.Task.DataView.getRecByIdx(i).AddDcValuesReference(this.control.getDitIdx(), this.control.getDcRef());
22
- }
23
- this.Task.DataView.getOriginalRec().AddDcValuesReference(this.control.getDitIdx(), this.control.getDcRef());
24
- return new ReturnResult();
25
- });
26
- }
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlQ29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3JlbW90ZS9SZW1vdGVDb250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFJdEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsd0NBQXdDLEVBQUUsa0NBQWtDLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN0SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHlCQUF5QjtJQUc3RSxZQUFZLE9BQW1DO1FBQzdDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhULFlBQU8sR0FBa0IsSUFBSSxDQUFDO1FBSXBDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNqQyxDQUFDO0lBRUssT0FBTzs7WUFDWCxJQUFJLEdBQUcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUN6QyxJQUFJLEdBQUcsR0FBbUIsY0FBYyxDQUFDLG9DQUFvQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzlILElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUU1QyxNQUFNLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyx3Q0FBd0MsQ0FBQyxrQkFBa0IsRUFBRSxrQ0FBa0MsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFFbkssS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDdkg7WUFFVSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN4SCxPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2V9IGZyb20gXCIuL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2VcIjtcclxuaW1wb3J0IHtNZ0NvbnRyb2xCYXNlfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHtDb250cm9sSXRlbXNSZWZyZXNoQ29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0QmFzZX0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0QmFzZVwiO1xyXG5pbXBvcnQge1Jlc3VsdFZhbHVlfSBmcm9tIFwiLi4vcnQvUmVzdWx0VmFsdWVcIjtcclxuaW1wb3J0IHtJQ2xpZW50Q29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0lDbGllbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7Q29tbWFuZEZhY3Rvcnl9IGZyb20gXCIuLi9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9Db21tYW5kRmFjdG9yeVwiO1xyXG5pbXBvcnQge1JlbW90ZUNvbW1hbmRzUHJvY2Vzc29yfSBmcm9tIFwiLi9SZW1vdGVDb21tYW5kc1Byb2Nlc3NvclwiO1xyXG5pbXBvcnQge0NvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZW5kaW5nSW5zdHJ1Y3Rpb24sIENvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZXNzaW9uU3RhZ2V9IGZyb20gXCIuLi9Db21tYW5kc1Byb2Nlc3NvckJhc2VcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHR9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdFwiO1xyXG5pbXBvcnQge0RhdGFWaWV3fSBmcm9tIFwiLi4vZGF0YS9EYXRhVmlld1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJlbW90ZUNvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kIGV4dGVuZHMgUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZSB7XHJcbiAgcHJpdmF0ZSBjb250cm9sOiBNZ0NvbnRyb2xCYXNlID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoY29tbWFuZDogQ29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmQpIHtcclxuICAgIHN1cGVyKGNvbW1hbmQpO1xyXG4gICAgdGhpcy5jb250cm9sID0gY29tbWFuZC5Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgRXhlY3V0ZSgpOiBQcm9taXNlPFJldHVyblJlc3VsdEJhc2U+IHtcclxuICAgIGxldCByZXM6IFJlc3VsdFZhbHVlID0gbmV3IFJlc3VsdFZhbHVlKCk7XHJcbiAgICBsZXQgY21kOiBJQ2xpZW50Q29tbWFuZCA9IENvbW1hbmRGYWN0b3J5LkNyZWF0ZWNGZXRjaERhdGFDb250cm9sVmFsdWVzQ29tbWFuZCh0aGlzLlRhc2suZ2V0VGFza1RhZygpLCB0aGlzLmNvbnRyb2wuZ2V0TmFtZSgpKTtcclxuICAgIHRoaXMuVGFzay5nZXRNR0RhdGEoKS5DbWRzVG9TZXJ2ZXIuQWRkKGNtZCk7XHJcbiAgICAvLyBGZXRjaCBkYXRhIGNvbnRyb2wgdmFsdWVzIGZyb20gc2VydmVyLlxyXG4gICAgYXdhaXQgUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3IuR2V0SW5zdGFuY2UoKS5FeGVjdXRlXzEoQ29tbWFuZHNQcm9jZXNzb3JCYXNlX1NlbmRpbmdJbnN0cnVjdGlvbi5UQVNLU19BTkRfQ09NTUFORFMsIENvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZXNzaW9uU3RhZ2UuTk9STUFMLCByZXMpO1xyXG4gICAgLy8gVXBkYXRlIERDVmFsUmVmIG9mIGV2ZXJ5IHJlY29yZCBhZnRlciBmZXRjaGluZyB0aGUgZGF0YUNvbnRyb2wgdmFsdWVzLlxyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8ICg8RGF0YVZpZXc+dGhpcy5UYXNrLkRhdGFWaWV3KS5nZXRTaXplKCk7IGkgPSBpICsgMSkge1xyXG4gICAgICAoPERhdGFWaWV3PnRoaXMuVGFzay5EYXRhVmlldykuZ2V0UmVjQnlJZHgoaSkuQWRkRGNWYWx1ZXNSZWZlcmVuY2UodGhpcy5jb250cm9sLmdldERpdElkeCgpLCB0aGlzLmNvbnRyb2wuZ2V0RGNSZWYoKSk7XHJcbiAgICB9XHJcbiAgICAvLyBVcGRhdGUgRENWYWxSZWYgb2Ygb3JpZ2luYWwgcmVjb3JkLlxyXG4gICAgKDxEYXRhVmlldz50aGlzLlRhc2suRGF0YVZpZXcpLmdldE9yaWdpbmFsUmVjKCkuQWRkRGNWYWx1ZXNSZWZlcmVuY2UodGhpcy5jb250cm9sLmdldERpdElkeCgpLCB0aGlzLmNvbnRyb2wuZ2V0RGNSZWYoKSk7XHJcbiAgICByZXR1cm4gbmV3IFJldHVyblJlc3VsdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,27 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { DataViewCommandBase } from '../commands/DataViewCommandBase';
3
- import { RemoteCommandsProcessor } from './RemoteCommandsProcessor';
4
- import { CommandsProcessorBase_SendingInstruction } from '../CommandsProcessorBase';
5
- import { ReturnResult } from '../util/ReturnResult';
6
- import { ClientOriginatedCommandTaskTag } from '../commands/ClientOriginatedCommandTaskTag';
7
- import { AccessHelper } from '../AccessHelper';
8
- export class RemoteDataViewCommandBase extends DataViewCommandBase {
9
- constructor(command) {
10
- super();
11
- this.Command = null;
12
- this.Task = null;
13
- this.Command = command;
14
- if (command instanceof ClientOriginatedCommandTaskTag) {
15
- this.Task = AccessHelper.mgDataTable.GetTaskByID(command.TaskTag);
16
- }
17
- }
18
- Execute() {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- let cmdsToServer = this.Task.getMGData().CmdsToServer;
21
- cmdsToServer.Add(this.Command);
22
- yield RemoteCommandsProcessor.GetInstance().Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
23
- return new ReturnResult();
24
- });
25
- }
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUU1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLL0MsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG1CQUFtQjtJQUtoRSxZQUFZLE9BQWdDO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBSlYsWUFBTyxHQUE0QixJQUFJLENBQUM7UUFDOUIsU0FBSSxHQUFTLElBQUksQ0FBQztRQUkxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLE9BQU8sWUFBWSw4QkFBOEIsRUFBRTtZQUNyRCxJQUFJLENBQUMsSUFBSSxHQUFTLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFrQyxPQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0c7SUFDSCxDQUFDO0lBTUssT0FBTzs7WUFDWCxJQUFJLFlBQVksR0FBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDdEUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsTUFBTSx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsd0NBQXdDLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNqSCxPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhVmlld0NvbW1hbmRCYXNlIH0gZnJvbSAnLi4vY29tbWFuZHMvRGF0YVZpZXdDb21tYW5kQmFzZSc7XHJcbmltcG9ydCB7IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kIH0gZnJvbSAnLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmQnO1xyXG5pbXBvcnQgeyBSZW1vdGVDb21tYW5kc1Byb2Nlc3NvciB9IGZyb20gJy4vUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3InO1xyXG5pbXBvcnQgeyBSZXR1cm5SZXN1bHRCYXNlIH0gZnJvbSAnLi4vdXRpbC9SZXR1cm5SZXN1bHRCYXNlJztcclxuaW1wb3J0IHsgQ29tbWFuZHNQcm9jZXNzb3JCYXNlX1NlbmRpbmdJbnN0cnVjdGlvbiB9IGZyb20gJy4uL0NvbW1hbmRzUHJvY2Vzc29yQmFzZSc7XHJcbmltcG9ydCB7IFJldHVyblJlc3VsdCB9IGZyb20gJy4uL3V0aWwvUmV0dXJuUmVzdWx0JztcclxuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzL1Rhc2snO1xyXG5pbXBvcnQgeyBDbGllbnRPcmlnaW5hdGVkQ29tbWFuZFRhc2tUYWcgfSBmcm9tICcuLi9jb21tYW5kcy9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFRhc2tUYWcnO1xyXG5pbXBvcnQgeyBJQ29tbWFuZHNUYWJsZSB9IGZyb20gJy4uL0lDb21tYW5kc1RhYmxlJztcclxuaW1wb3J0IHsgQWNjZXNzSGVscGVyIH0gZnJvbSAnLi4vQWNjZXNzSGVscGVyJztcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIHJlbW90ZSBkYXRhdmlldyBjb21tYW5kXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlIGV4dGVuZHMgRGF0YVZpZXdDb21tYW5kQmFzZSB7XHJcblxyXG4gIENvbW1hbmQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kID0gbnVsbDtcclxuICBwcm90ZWN0ZWQgVGFzazogVGFzayA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kLCApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLkNvbW1hbmQgPSBjb21tYW5kO1xyXG4gICAgaWYgKGNvbW1hbmQgaW5zdGFuY2VvZiBDbGllbnRPcmlnaW5hdGVkQ29tbWFuZFRhc2tUYWcpIHtcclxuICAgICAgdGhpcy5UYXNrID0gPFRhc2s+QWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLkdldFRhc2tCeUlEKCg8Q2xpZW50T3JpZ2luYXRlZENvbW1hbmRUYXNrVGFnPmNvbW1hbmQpLlRhc2tUYWcpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBleGVjdXRlIHRoZSBjb21tYW5kIGJ5IHBhc3MgcmVxdWVzdHMgdG8gdGhlIHNlcnZlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29tbWFuZFwiPjwvcGFyYW0+XHJcbiAgYXN5bmMgRXhlY3V0ZSgpOiBQcm9taXNlPFJldHVyblJlc3VsdEJhc2U+IHtcclxuICAgIGxldCBjbWRzVG9TZXJ2ZXI6IElDb21tYW5kc1RhYmxlID0gdGhpcy5UYXNrLmdldE1HRGF0YSgpLkNtZHNUb1NlcnZlcjtcclxuICAgIGNtZHNUb1NlcnZlci5BZGQodGhpcy5Db21tYW5kKTtcclxuICAgIGF3YWl0IFJlbW90ZUNvbW1hbmRzUHJvY2Vzc29yLkdldEluc3RhbmNlKCkuRXhlY3V0ZShDb21tYW5kc1Byb2Nlc3NvckJhc2VfU2VuZGluZ0luc3RydWN0aW9uLlRBU0tTX0FORF9DT01NQU5EUyk7XHJcbiAgICByZXR1cm4gbmV3IFJldHVyblJlc3VsdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,19 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
3
- import { ReturnResult } from "../util/ReturnResult";
4
- import { MsgInterface } from "@magic-xpa/utils";
5
- export class RemoteDataViewCommandUpdateNonModifiable extends RemoteDataViewCommandBase {
6
- get execOperCommand() {
7
- return this.Command;
8
- }
9
- constructor(command) {
10
- super(command);
11
- }
12
- Execute() {
13
- return __awaiter(this, void 0, void 0, function* () {
14
- yield this.execOperCommand.Operation.operServer(this.execOperCommand.MprgCreator);
15
- return new ReturnResult(MsgInterface.RT_STR_NON_MODIFIABLE);
16
- });
17
- }
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlRGF0YVZpZXdDb21tYW5kVXBkYXRlTm9uTW9kaWZpYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1JlbW90ZURhdGFWaWV3Q29tbWFuZFVwZGF0ZU5vbk1vZGlmaWFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsTUFBTSxPQUFPLHdDQUF5QyxTQUFRLHlCQUF5QjtJQUNyRixJQUFZLGVBQWU7UUFDekIsT0FBd0IsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxPQUF3QjtRQUNsQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVLLE9BQU87O1lBQ1gsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsRixPQUFPLElBQUksWUFBWSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzlELENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlfSBmcm9tIFwiLi9SZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlXCI7XHJcbmltcG9ydCB7RXhlY09wZXJDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvRXhlY09wZXJDb21tYW5kXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0QmFzZX0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0QmFzZVwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0XCI7XHJcbmltcG9ydCB7TXNnSW50ZXJmYWNlfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJlbW90ZURhdGFWaWV3Q29tbWFuZFVwZGF0ZU5vbk1vZGlmaWFibGUgZXh0ZW5kcyBSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlIHtcclxuICBwcml2YXRlIGdldCBleGVjT3BlckNvbW1hbmQoKTogRXhlY09wZXJDb21tYW5kIHtcclxuICAgIHJldHVybiA8RXhlY09wZXJDb21tYW5kPnRoaXMuQ29tbWFuZDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IEV4ZWNPcGVyQ29tbWFuZCkge1xyXG4gICAgc3VwZXIoY29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgYXdhaXQgdGhpcy5leGVjT3BlckNvbW1hbmQuT3BlcmF0aW9uLm9wZXJTZXJ2ZXIodGhpcy5leGVjT3BlckNvbW1hbmQuTXByZ0NyZWF0b3IpO1xyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoTXNnSW50ZXJmYWNlLlJUX1NUUl9OT05fTU9ESUZJQUJMRSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { DataviewManagerBase } from "../data/DataviewManagerBase";
3
- import { RemoteDataViewCommandFactory } from "./RemoteDataViewCommandFactory";
4
- import { ReturnResult } from "../util/ReturnResult";
5
- export class RemoteDataviewManager extends DataviewManagerBase {
6
- constructor(task) {
7
- super(task);
8
- this._remoteDataViewCommandFactory = null;
9
- this._remoteDataViewCommandFactory = new RemoteDataViewCommandFactory();
10
- }
11
- Execute(command) {
12
- const _super = Object.create(null, {
13
- Execute: { get: () => super.Execute }
14
- });
15
- return __awaiter(this, void 0, void 0, function* () {
16
- yield _super.Execute.call(this, command);
17
- let remoteDataViewCommandBase = this._remoteDataViewCommandFactory.CreateDataViewCommand(command);
18
- let innerResult = yield remoteDataViewCommandBase.Execute();
19
- return new ReturnResult(innerResult);
20
- });
21
- }
22
- }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlRGF0YXZpZXdNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9yZW1vdGUvUmVtb3RlRGF0YXZpZXdNYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUk1RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFVbEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQUc1RCxZQUFZLElBQVU7UUFDcEIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBSE4sa0NBQTZCLEdBQWlDLElBQUksQ0FBQztRQUl6RSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSw0QkFBNEIsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFNSyxPQUFPLENBQUMsT0FBdUI7Ozs7O1lBQ25DLE1BQU0sT0FBTSxPQUFPLFlBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsSUFBSSx5QkFBeUIsR0FBOEIsSUFBSSxDQUFDLDZCQUE2QixDQUFDLHFCQUFxQixDQUEwQixPQUFPLENBQUMsQ0FBQztZQUN0SixJQUFJLFdBQVcsR0FBcUIsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5RSxPQUFPLElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRhdmlld01hbmFnZXJCYXNlfSBmcm9tIFwiLi4vZGF0YS9EYXRhdmlld01hbmFnZXJCYXNlXCI7XHJcbmltcG9ydCB7UmVtb3RlRGF0YVZpZXdDb21tYW5kRmFjdG9yeX0gZnJvbSBcIi4vUmVtb3RlRGF0YVZpZXdDb21tYW5kRmFjdG9yeVwiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCI7XHJcbmltcG9ydCB7SUNsaWVudENvbW1hbmR9IGZyb20gXCIuLi9jb21tYW5kcy9JQ2xpZW50Q29tbWFuZFwiO1xyXG5pbXBvcnQge0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHR9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdFwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdEJhc2V9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdEJhc2VcIjtcclxuaW1wb3J0IHtSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlfSBmcm9tIFwiLi9SZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyByZW1vdGUgZGF0YXZpZXcgbWFuYWdlcjpcclxuLy8vIHdpbGwgcGFzcyByZXF1ZXN0cyB0byB0aGUgc2VydmVyXHJcbi8vLyB3aGVuIHJlcGx5IGlzIHJlY2VpdmVkIHdpbGwgcGVyZm9ybSBmaWxsRGF0YSB0byB0aGUgZGF0YXZpZXcueG1sXHJcbi8vLyBOb3RlOiBpbiBuZXh0IHBoYXNlIHdpbGwgaW1wbGVtZW50IG1vcmUgY29tcGxpY2F0ZWQgdGFza3NcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIFJlbW90ZURhdGF2aWV3TWFuYWdlciBleHRlbmRzIERhdGF2aWV3TWFuYWdlckJhc2Uge1xyXG4gIHByaXZhdGUgX3JlbW90ZURhdGFWaWV3Q29tbWFuZEZhY3Rvcnk6IFJlbW90ZURhdGFWaWV3Q29tbWFuZEZhY3RvcnkgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcih0YXNrOiBUYXNrKSB7XHJcbiAgICBzdXBlcih0YXNrKTtcclxuICAgIHRoaXMuX3JlbW90ZURhdGFWaWV3Q29tbWFuZEZhY3RvcnkgPSBuZXcgUmVtb3RlRGF0YVZpZXdDb21tYW5kRmFjdG9yeSgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBleGVjdXRlIHRoZSBjb21tYW5kIGJ5IHBhc3MgcmVxdWVzdHMgdG8gdGhlIHNlcnZlclxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29tbWFuZFwiPjwvcGFyYW0+XHJcbiAgYXN5bmMgRXhlY3V0ZShjb21tYW5kOiBJQ2xpZW50Q29tbWFuZCk6IFByb21pc2U8UmV0dXJuUmVzdWx0PiB7XHJcbiAgICBhd2FpdCBzdXBlci5FeGVjdXRlKGNvbW1hbmQpO1xyXG4gICAgbGV0IHJlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2U6IFJlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2UgPSB0aGlzLl9yZW1vdGVEYXRhVmlld0NvbW1hbmRGYWN0b3J5LkNyZWF0ZURhdGFWaWV3Q29tbWFuZCg8Q2xpZW50T3JpZ2luYXRlZENvbW1hbmQ+Y29tbWFuZCk7XHJcbiAgICBsZXQgaW5uZXJSZXN1bHQ6IFJldHVyblJlc3VsdEJhc2UgPSBhd2FpdCByZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlLkV4ZWN1dGUoKTtcclxuICAgIHJldHVybiBuZXcgUmV0dXJuUmVzdWx0KGlubmVyUmVzdWx0KTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,14 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
3
- import { ReturnResult } from "../util/ReturnResult";
4
- export class DummyDataViewCommand extends RemoteDataViewCommandBase {
5
- constructor(command) {
6
- super(command);
7
- }
8
- Execute() {
9
- return __awaiter(this, void 0, void 0, function* () {
10
- return new ReturnResult();
11
- });
12
- }
13
- }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVtb3RlSW5pdERhdGFWaWV3Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1JlbW90ZUluaXREYXRhVmlld0NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtsRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEseUJBQXlCO0lBQ2pFLFlBQVksT0FBZ0M7UUFDMUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFSyxPQUFPOztZQUNYLE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZX0gZnJvbSBcIi4vUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZVwiO1xyXG5pbXBvcnQge0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHRCYXNlfSBmcm9tIFwiLi4vdXRpbC9SZXR1cm5SZXN1bHRCYXNlXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0fSBmcm9tIFwiLi4vdXRpbC9SZXR1cm5SZXN1bHRcIjtcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIHJlbW90ZSBjb21tYW5kIDogZHVtbXkgZm9yIG5vd1xyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgRHVtbXlEYXRhVmlld0NvbW1hbmQgZXh0ZW5kcyBSZW1vdGVEYXRhVmlld0NvbW1hbmRCYXNlIHtcclxuICBjb25zdHJ1Y3Rvcihjb21tYW5kOiBDbGllbnRPcmlnaW5hdGVkQ29tbWFuZCkge1xyXG4gICAgc3VwZXIoY29tbWFuZCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,20 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
3
- import { ReturnResult } from "../util/ReturnResult";
4
- export class ResetUserLocateRemoteDataviewCommand extends RemoteDataViewCommandBase {
5
- constructor(command) {
6
- super(command);
7
- }
8
- Execute() {
9
- return __awaiter(this, void 0, void 0, function* () {
10
- let flag = this.Task.UserLocs !== null;
11
- if (flag) {
12
- this.Task.UserLocs.Clear();
13
- this.Task.UserLocs = null;
14
- }
15
- this.Task.ResetLocate = true;
16
- return new ReturnResult();
17
- });
18
- }
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRVc2VyTG9jYXRlUmVtb3RlRGF0YXZpZXdDb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9yZW1vdGUvUmVzZXRVc2VyTG9jYXRlUmVtb3RlRGF0YXZpZXdDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUd0RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFLbEQsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHlCQUF5QjtJQUNqRixZQUFZLE9BQWdDO1FBQzFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBTUssT0FBTzs7WUFDWCxJQUFJLElBQUksR0FBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7WUFDaEQsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzthQUMzQjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztZQUM3QixPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2V9IGZyb20gXCIuL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2VcIjtcclxuaW1wb3J0IHtDbGllbnRPcmlnaW5hdGVkQ29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0QmFzZX0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0QmFzZVwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0XCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBSZXNldFVzZXJMb2NhdGVSZW1vdGVEYXRhdmlld0NvbW1hbmRcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIFJlc2V0VXNlckxvY2F0ZVJlbW90ZURhdGF2aWV3Q29tbWFuZCBleHRlbmRzIFJlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2Uge1xyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kKSB7XHJcbiAgICBzdXBlcihjb21tYW5kKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUmVzZXQgVXNlciBMb2NhdGVzIEFkZGVkIGJ5IExvY2F0ZUFkZCBmdW5jdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBhc3luYyBFeGVjdXRlKCk6IFByb21pc2U8UmV0dXJuUmVzdWx0QmFzZT4ge1xyXG4gICAgbGV0IGZsYWc6IGJvb2xlYW4gPSB0aGlzLlRhc2suVXNlckxvY3MgIT09IG51bGw7XHJcbiAgICBpZiAoZmxhZykge1xyXG4gICAgICB0aGlzLlRhc2suVXNlckxvY3MuQ2xlYXIoKTtcclxuICAgICAgdGhpcy5UYXNrLlVzZXJMb2NzID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuVGFzay5SZXNldExvY2F0ZSA9IHRydWU7XHJcbiAgICByZXR1cm4gbmV3IFJldHVyblJlc3VsdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,16 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
3
- import { ReturnResult } from "../util/ReturnResult";
4
- export class ResetUserRangeRemoteDataviewCommand extends RemoteDataViewCommandBase {
5
- constructor(command) {
6
- super(command);
7
- }
8
- Execute() {
9
- return __awaiter(this, void 0, void 0, function* () {
10
- this.Task.UserRngs = null;
11
- this.Task.ResetRange = true;
12
- return new ReturnResult();
13
- });
14
- }
15
- }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRVc2VyUmFuZ2VSZW1vdGVEYXRhdmlld0NvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3JlbW90ZS9SZXNldFVzZXJSYW5nZVJlbW90ZURhdGF2aWV3Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBS2xELE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSx5QkFBeUI7SUFDaEYsWUFBWSxPQUFnQztRQUMxQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVLLE9BQU87O1lBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUM1QixPQUFPLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2V9IGZyb20gXCIuL1JlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2VcIjtcclxuaW1wb3J0IHtDbGllbnRPcmlnaW5hdGVkQ29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kXCI7XHJcbmltcG9ydCB7UmV0dXJuUmVzdWx0QmFzZX0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0QmFzZVwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0XCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBjb21tYW5kIHRvIHJlc2V0IHRoZSB1c2VyIHJhbmdlcyBvbiB0aGUgcmVtb3RlIGRhdGF2aWV3XHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBSZXNldFVzZXJSYW5nZVJlbW90ZURhdGF2aWV3Q29tbWFuZCBleHRlbmRzIFJlbW90ZURhdGFWaWV3Q29tbWFuZEJhc2Uge1xyXG4gIGNvbnN0cnVjdG9yKGNvbW1hbmQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kKSB7XHJcbiAgICBzdXBlcihjb21tYW5kKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIEV4ZWN1dGUoKTogUHJvbWlzZTxSZXR1cm5SZXN1bHRCYXNlPiB7XHJcbiAgICB0aGlzLlRhc2suVXNlclJuZ3MgPSBudWxsO1xyXG4gICAgdGhpcy5UYXNrLlJlc2V0UmFuZ2UgPSB0cnVlO1xyXG4gICAgcmV0dXJuIG5ldyBSZXR1cm5SZXN1bHQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,19 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { RemoteDataViewCommandBase } from "./RemoteDataViewCommandBase";
3
- import { ReturnResult } from "../util/ReturnResult";
4
- export class ResetUserSortRemoteDataviewCommand extends RemoteDataViewCommandBase {
5
- constructor(command) {
6
- super(command);
7
- }
8
- Execute() {
9
- return __awaiter(this, void 0, void 0, function* () {
10
- if (this.Task.UserSorts !== null) {
11
- this.Task.UserSorts.Clear();
12
- this.Task.UserSorts = null;
13
- }
14
- this.Task.ResetSort = true;
15
- return new ReturnResult();
16
- });
17
- }
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRVc2VyU29ydFJlbW90ZURhdGF2aWV3Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcmVtb3RlL1Jlc2V0VXNlclNvcnRSZW1vdGVEYXRhdmlld0NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXRFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEseUJBQXlCO0lBQy9FLFlBQVksT0FBZ0M7UUFDMUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFNSyxPQUFPOztZQUNYLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2FBQzVCO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQzNCLE9BQU8sSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixDQUFDO0tBQUE7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZX0gZnJvbSBcIi4vUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZVwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdEJhc2V9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdEJhc2VcIjtcclxuaW1wb3J0IHtSZXR1cm5SZXN1bHR9IGZyb20gXCIuLi91dGlsL1JldHVyblJlc3VsdFwiO1xyXG5pbXBvcnQge0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kfSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBSZXNldFVzZXJTb3J0UmVtb3RlRGF0YXZpZXdDb21tYW5kIGV4dGVuZHMgUmVtb3RlRGF0YVZpZXdDb21tYW5kQmFzZSB7XHJcbiAgY29uc3RydWN0b3IoY29tbWFuZDogQ2xpZW50T3JpZ2luYXRlZENvbW1hbmQpIHtcclxuICAgIHN1cGVyKGNvbW1hbmQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBSZXNldCBVc2VyIFNvcnRzIGFkZGVkIGJ5IFNvcnRBZGQgZnVuY3Rpb24uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIGFzeW5jIEV4ZWN1dGUoKTogUHJvbWlzZTxSZXR1cm5SZXN1bHRCYXNlPiB7XHJcbiAgICBpZiAodGhpcy5UYXNrLlVzZXJTb3J0cyAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLlRhc2suVXNlclNvcnRzLkNsZWFyKCk7XHJcbiAgICAgIHRoaXMuVGFzay5Vc2VyU29ydHMgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5UYXNrLlJlc2V0U29ydCA9IHRydWU7XHJcbiAgICByZXR1cm4gbmV3IFJldHVyblJlc3VsdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,281 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { ApplicationException, NNumber } from '@magic-xpa/mscorelib';
3
- import { Logger, StorageAttribute, StorageAttributeCheck, StrUtil } from '@magic-xpa/utils';
4
- import { BlobType, ExpVal, FieldDef } from '@magic-xpa/gui';
5
- import { ConstInterface } from '../ConstInterface';
6
- import { FieldBase } from '../data/FieldBase';
7
- export class Argument {
8
- constructor(fieldOrExpValOrSrcArg) {
9
- this._exp = null;
10
- this._fld = null;
11
- this._skip = false;
12
- this._type = '\0';
13
- this._val = null;
14
- this._valueAttr = StorageAttribute.NONE;
15
- this._valueIsNull = false;
16
- if (arguments.length === 0) {
17
- this.constructor_0();
18
- return;
19
- }
20
- if (arguments.length === 1 && (fieldOrExpValOrSrcArg === null || fieldOrExpValOrSrcArg instanceof FieldBase)) {
21
- this.constructor_1(fieldOrExpValOrSrcArg);
22
- return;
23
- }
24
- if (arguments.length === 1 && (fieldOrExpValOrSrcArg === null || fieldOrExpValOrSrcArg instanceof ExpVal)) {
25
- this.constructor_2(fieldOrExpValOrSrcArg);
26
- return;
27
- }
28
- this.constructor_3(fieldOrExpValOrSrcArg);
29
- }
30
- constructor_0() {
31
- this._type = '\0';
32
- this._fld = null;
33
- this._exp = null;
34
- this._skip = false;
35
- }
36
- constructor_1(field) {
37
- this._fld = field;
38
- this._type = ConstInterface.ARG_TYPE_FIELD;
39
- this._exp = null;
40
- this._skip = false;
41
- }
42
- constructor_2(expVal) {
43
- this._type = ConstInterface.ARG_TYPE_VALUE;
44
- this._fld = null;
45
- this._exp = null;
46
- this._skip = false;
47
- if (expVal.IsNull)
48
- this._val = null;
49
- else
50
- this._val = expVal.ToMgVal();
51
- this._valueIsNull = (this._val === null);
52
- this._valueAttr = expVal.Attr;
53
- }
54
- constructor_3(srcArg) {
55
- this._type = ConstInterface.ARG_TYPE_VALUE;
56
- switch (srcArg._type) {
57
- case ConstInterface.ARG_TYPE_FIELD:
58
- this._valueAttr = srcArg._fld.getType();
59
- break;
60
- case ConstInterface.ARG_TYPE_EXP:
61
- break;
62
- case ConstInterface.ARG_TYPE_SKIP:
63
- this._skip = true;
64
- break;
65
- default:
66
- throw new ApplicationException("in Argument.Argument(): illegal source Argument type!");
67
- }
68
- }
69
- Initialize(srcArg) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- switch (srcArg._type) {
72
- case ConstInterface.ARG_TYPE_FIELD:
73
- this._val = srcArg._fld.getValue(true);
74
- this._valueIsNull = srcArg._fld.isNull();
75
- break;
76
- case ConstInterface.ARG_TYPE_EXP:
77
- let retVal = yield srcArg._exp.evaluateWithResLength(255);
78
- this._val = retVal.mgVal;
79
- this._valueAttr = retVal.type;
80
- this._valueIsNull = (this._val == null);
81
- if (this._valueIsNull)
82
- this._val = Argument.getEmptyValue((retVal.type === StorageAttribute.BLOB ||
83
- retVal.type === StorageAttribute.BLOB_VECTOR));
84
- break;
85
- }
86
- });
87
- }
88
- fillData(arg, srcTask) {
89
- this._type = arg[0];
90
- let argElements = arg.substr(2);
91
- switch (this._type) {
92
- case ConstInterface.ARG_TYPE_FIELD:
93
- {
94
- let fieldId = argElements.split(',');
95
- let parent = NNumber.Parse(fieldId[0]);
96
- let fldIdx = NNumber.Parse(fieldId[1]);
97
- this._fld = srcTask.getFieldDef(parent, fldIdx);
98
- }
99
- break;
100
- case ConstInterface.ARG_TYPE_EXP:
101
- let expNum = NNumber.Parse(argElements);
102
- this._exp = srcTask.getExpById(expNum);
103
- break;
104
- case ConstInterface.ARG_TYPE_SKIP:
105
- this._skip = true;
106
- break;
107
- default:
108
- Logger.Instance.WriteExceptionToLogWithMsg("in Argument.FillData() illegal type: " + arg);
109
- break;
110
- }
111
- }
112
- buildXML(message) {
113
- switch (this._type) {
114
- case ConstInterface.ARG_TYPE_FIELD:
115
- message.Append("F:" + this._fld.getTask().getTaskTag() + "," + this._fld.getId());
116
- break;
117
- case ConstInterface.ARG_TYPE_EXP:
118
- message.Append("E:" + this._exp.getId());
119
- break;
120
- case ConstInterface.ARG_TYPE_SKIP:
121
- message.Append("X:0");
122
- break;
123
- default:
124
- Logger.Instance.WriteExceptionToLogWithMsg("in Argument.buildXML() illegal type: " + this._type);
125
- break;
126
- }
127
- }
128
- getType() {
129
- return this._type;
130
- }
131
- getField() {
132
- if (this._type === ConstInterface.ARG_TYPE_FIELD)
133
- return this._fld;
134
- return null;
135
- }
136
- getExp() {
137
- if (this._type === ConstInterface.ARG_TYPE_EXP)
138
- return this._exp;
139
- return null;
140
- }
141
- setValueToField(destFld) {
142
- return __awaiter(this, void 0, void 0, function* () {
143
- let val;
144
- let isNull;
145
- switch (this._type) {
146
- case ConstInterface.ARG_TYPE_FIELD:
147
- val = this._fld.getValue(true);
148
- val = Argument.convertArgs(val, this._fld.getType(), destFld.getType());
149
- isNull = this._fld.isNull() || val == null;
150
- break;
151
- case ConstInterface.ARG_TYPE_EXP:
152
- val = yield this._exp.evaluateWithResultTypeAndLength(destFld.getType(), destFld.getSize());
153
- isNull = (val == null);
154
- if (isNull)
155
- val = Argument.getEmptyValue((destFld.getType() === StorageAttribute.BLOB ||
156
- destFld.getType() === StorageAttribute.BLOB_VECTOR));
157
- break;
158
- case ConstInterface.ARG_TYPE_VALUE:
159
- val = Argument.convertArgs(this._val, this._valueAttr, destFld.getType());
160
- isNull = this._valueIsNull || val == null;
161
- break;
162
- default:
163
- return;
164
- }
165
- destFld.takeValFromRec();
166
- yield destFld.setValueAndStartRecompute(val, isNull, destFld.getTask().DataViewWasRetrieved, false, true);
167
- });
168
- }
169
- static convertArgs(value, srcAttr, expectedType) {
170
- let invalidArg = false;
171
- switch (expectedType) {
172
- case StorageAttribute.ALPHA:
173
- case StorageAttribute.UNICODE:
174
- if (srcAttr === StorageAttribute.BLOB) {
175
- if (BlobType.isValidBlob(value))
176
- value = BlobType.getString(value);
177
- }
178
- else if (!StorageAttributeCheck.IsTypeAlphaOrUnicode(srcAttr))
179
- invalidArg = true;
180
- break;
181
- case StorageAttribute.NUMERIC:
182
- case StorageAttribute.DATE:
183
- case StorageAttribute.TIME:
184
- if (!StorageAttributeCheck.isTypeNumeric(srcAttr))
185
- invalidArg = true;
186
- break;
187
- case StorageAttribute.BLOB:
188
- if (StorageAttributeCheck.IsTypeAlphaOrUnicode(srcAttr)) {
189
- let contentType = srcAttr === StorageAttribute.ALPHA
190
- ? BlobType.CONTENT_TYPE_ANSI
191
- : BlobType.CONTENT_TYPE_UNICODE;
192
- value = BlobType.createFromString(value, contentType);
193
- }
194
- else if (!StorageAttributeCheck.isTypeBlob(srcAttr))
195
- invalidArg = true;
196
- break;
197
- }
198
- if (invalidArg)
199
- value = FieldDef.getMagicDefaultValue(expectedType);
200
- return value;
201
- }
202
- getValue(expType, expSize) {
203
- return __awaiter(this, void 0, void 0, function* () {
204
- switch (this._type) {
205
- case ConstInterface.ARG_TYPE_EXP:
206
- this._val = yield this._exp.evaluateWithResultTypeAndLength(expType, expSize);
207
- if (this._val == null)
208
- this._val = Argument.getEmptyValue(expType === StorageAttribute.BLOB
209
- || expType === StorageAttribute.BLOB_VECTOR);
210
- break;
211
- case ConstInterface.ARG_TYPE_FIELD:
212
- this._val = this._fld.getValue(true);
213
- break;
214
- case ConstInterface.ARG_TYPE_VALUE:
215
- break;
216
- default:
217
- return null;
218
- }
219
- return this._val;
220
- });
221
- }
222
- skipArg() {
223
- return this._skip;
224
- }
225
- fillDataByParams(paramValueAttr, paramValue, paramNull) {
226
- this._valueAttr = paramValueAttr;
227
- this._val = paramValue;
228
- this._valueIsNull = paramNull;
229
- if (this._valueAttr === StorageAttribute.SKIP) {
230
- this._type = ConstInterface.ARG_TYPE_SKIP;
231
- this._skip = true;
232
- }
233
- else {
234
- this._type = ConstInterface.ARG_TYPE_VALUE;
235
- }
236
- }
237
- static getEmptyValue(isBlob) {
238
- return isBlob ? (BlobType.getEmptyBlobPrefix('\0') + ";") : "";
239
- }
240
- FillFromString(argStr) {
241
- this._type = ConstInterface.ARG_TYPE_VALUE;
242
- let argType = null;
243
- if (argStr.length > 2)
244
- argType = argStr.substr(0, 2);
245
- switch (argType) {
246
- case ConstInterface.REQ_ARG_ALPHA:
247
- this._valueAttr = StorageAttribute.ALPHA;
248
- break;
249
- case ConstInterface.REQ_ARG_UNICODE:
250
- this._valueAttr = StorageAttribute.UNICODE;
251
- break;
252
- case ConstInterface.REQ_ARG_NUMERIC:
253
- this._valueAttr = StorageAttribute.NUMERIC;
254
- break;
255
- case ConstInterface.REQ_ARG_DOUBLE:
256
- this._valueAttr = StorageAttribute.NUMERIC;
257
- break;
258
- case ConstInterface.REQ_ARG_LOGICAL:
259
- this._valueAttr = StorageAttribute.BOOLEAN;
260
- break;
261
- case ConstInterface.REQ_ARG_NULL:
262
- this._valueAttr = StorageAttribute.NONE;
263
- break;
264
- default:
265
- this._valueAttr = StorageAttribute.ALPHA;
266
- this._val = argStr;
267
- return;
268
- }
269
- this._val = argStr.substr(2);
270
- }
271
- makeURLPrintable(source) {
272
- let from = [
273
- "\\", "\0", ","
274
- ];
275
- let to = [
276
- "\\\\", "\\0", "\\,"
277
- ];
278
- return StrUtil.searchAndReplace(source, from, to);
279
- }
280
- }
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0FyZ3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc5QyxNQUFNLE9BQU8sUUFBUTtJQWFuQixZQUFZLHFCQUEyQjtRQVovQixTQUFJLEdBQWUsSUFBSSxDQUFDO1FBQ3hCLFNBQUksR0FBYyxJQUFJLENBQUM7UUFDdkIsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixVQUFLLEdBQVcsSUFBSSxDQUFDO1FBQ3JCLFNBQUksR0FBVyxJQUFJLENBQUM7UUFDcEIsZUFBVSxHQUFxQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7UUFDckQsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFPcEMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsT0FBTztTQUNSO1FBQ0QsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLElBQUksSUFBSSxxQkFBcUIsWUFBWSxTQUFTLENBQUMsRUFBRTtZQUM1RyxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDMUMsT0FBTztTQUNSO1FB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uRXhjZXB0aW9uLCBOTnVtYmVyLCBTdHJpbmdCdWlsZGVyIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBMb2dnZXIsIFN0b3JhZ2VBdHRyaWJ1dGUsIFN0b3JhZ2VBdHRyaWJ1dGVDaGVjaywgU3RyVXRpbCB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBCbG9iVHlwZSwgRXhwVmFsLCBGaWVsZERlZiB9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uL2V4cC9FeHByZXNzaW9uJztcclxuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzL1Rhc2snO1xyXG5pbXBvcnQgeyBDb25zdEludGVyZmFjZSB9IGZyb20gJy4uL0NvbnN0SW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSAnLi4vZGF0YS9GaWVsZEJhc2UnO1xyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBBcmd1bWVudCB7XHJcbiAgcHJpdmF0ZSBfZXhwOiBFeHByZXNzaW9uID0gbnVsbDtcclxuICBwcml2YXRlIF9mbGQ6IEZpZWxkQmFzZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfc2tpcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3R5cGU6IHN0cmluZyA9ICdcXDAnOyAvLyBGaWVsZEJhc2V8RXhwcmVzc2lvbnxWYWx1ZVxyXG4gIHByaXZhdGUgX3ZhbDogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF92YWx1ZUF0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7IC8vIHRydWUgaXMgYXJndW1lbnQgaXMgb2YgdHlwZSBBUkdfVFlQRV9WQUxVRSBhbmRcclxuICBwcml2YXRlIF92YWx1ZUlzTnVsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpO1xyXG4gIGNvbnN0cnVjdG9yKGZpZWxkOiBGaWVsZEJhc2UpO1xyXG4gIGNvbnN0cnVjdG9yKGV4cFZhbDogRXhwVmFsKTtcclxuICBjb25zdHJ1Y3RvcihzcmNBcmc6IEFyZ3VtZW50KTtcclxuICBjb25zdHJ1Y3RvcihmaWVsZE9yRXhwVmFsT3JTcmNBcmc/OiBhbnkpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0b3JfMCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiAoZmllbGRPckV4cFZhbE9yU3JjQXJnID09PSBudWxsIHx8IGZpZWxkT3JFeHBWYWxPclNyY0FyZyBpbnN0YW5jZW9mIEZpZWxkQmFzZSkpIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8xKGZpZWxkT3JFeHBWYWxPclNyY0FyZyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxICYmIChmaWVsZE9yRXhwVmFsT3JTcmNBcmcgPT09IG51bGwgfHwgZmllbGRPckV4cFZhbE9yU3JjQXJnIGluc3RhbmNlb2YgRXhwVmFsKSkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzIoZmllbGRPckV4cFZhbE9yU3JjQXJnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8zKGZpZWxkT3JFeHBWYWxPclNyY0FyZyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8wKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHlwZSA9ICdcXDAnLyonXHUwMDAwJyovO1xyXG4gICAgdGhpcy5fZmxkID0gbnVsbDtcclxuICAgIHRoaXMuX2V4cCA9IG51bGw7XHJcbiAgICB0aGlzLl9za2lwID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENUT1IgLSBjcmVhdGUgYW4gYXJndW1lbnQgZnJvbSBhIGZpZWxkXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzEoZmllbGQ6IEZpZWxkQmFzZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fZmxkID0gZmllbGQ7XHJcbiAgICB0aGlzLl90eXBlID0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQgLyonRicqLztcclxuICAgIHRoaXMuX2V4cCA9IG51bGw7XHJcbiAgICB0aGlzLl9za2lwID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgQ1RPUiB0aGF0IGNyZWF0ZXMgYSBcIlZhbHVlXCIgdHlwZSBhcmd1bWVudCBmcm9tIGEgZ2l2ZW4gRXhwcmVzc2lvbiBWYWx1ZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHBWYWxcIj50aGUgc291cmNlIGV4cHJlc3Npb24gdmFsdWU8L3BhcmFtPlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMihleHBWYWw6IEV4cFZhbCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFO1xyXG4gICAgdGhpcy5fZmxkID0gbnVsbDtcclxuICAgIHRoaXMuX2V4cCA9IG51bGw7XHJcbiAgICB0aGlzLl9za2lwID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKGV4cFZhbC5Jc051bGwpXHJcbiAgICAgIHRoaXMuX3ZhbCA9IG51bGw7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX3ZhbCA9IGV4cFZhbC5Ub01nVmFsKCk7XHJcblxyXG4gICAgdGhpcy5fdmFsdWVJc051bGwgPSAodGhpcy5fdmFsID09PSBudWxsKTtcclxuICAgIHRoaXMuX3ZhbHVlQXR0ciA9IGV4cFZhbC5BdHRyO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1IgdGhhdCBjcmVhdGVzIGEgXCJWYWx1ZVwiIHR5cGUgYXJndW1lbnQgZnJvbSBhIGdpdmVuIEZpZWxkQmFzZSBvciBFeHByZXNzaW9uIHR5cGVcclxuICAvLy8gICBhcmd1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzcmNBcmdcIj50aGUgc291cmNlIGFyZ3VtZW50PC9wYXJhbT5cclxuICBjb25zdHJ1Y3Rvcl8zKHNyY0FyZzogQXJndW1lbnQpIHtcclxuICAgIHRoaXMuX3R5cGUgPSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRTtcclxuXHJcbiAgICBzd2l0Y2ggKHNyY0FyZy5fdHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IHNyY0FyZy5fZmxkLmdldFR5cGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfU0tJUDpcclxuICAgICAgICB0aGlzLl9za2lwID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aHJvdyBuZXcgQXBwbGljYXRpb25FeGNlcHRpb24oXCJpbiBBcmd1bWVudC5Bcmd1bWVudCgpOiBpbGxlZ2FsIHNvdXJjZSBBcmd1bWVudCB0eXBlIVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBJbml0aWFsaXplKHNyY0FyZzogQXJndW1lbnQpOiBQcm9taXNlPHZvaWQ+e1xyXG4gICAgc3dpdGNoIChzcmNBcmcuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDpcclxuICAgICAgICB0aGlzLl92YWwgPSBzcmNBcmcuX2ZsZC5nZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB0aGlzLl92YWx1ZUlzTnVsbCA9IHNyY0FyZy5fZmxkLmlzTnVsbCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgbGV0IHJldFZhbCA9IGF3YWl0IHNyY0FyZy5fZXhwLmV2YWx1YXRlV2l0aFJlc0xlbmd0aCgyNTUpO1xyXG4gICAgICAgIHRoaXMuX3ZhbCA9IHJldFZhbC5tZ1ZhbDtcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSByZXRWYWwudHlwZTtcclxuICAgICAgICB0aGlzLl92YWx1ZUlzTnVsbCA9ICh0aGlzLl92YWwgPT0gbnVsbCk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3ZhbHVlSXNOdWxsKVxyXG4gICAgICAgICAgdGhpcy5fdmFsID0gQXJndW1lbnQuZ2V0RW1wdHlWYWx1ZSgocmV0VmFsLnR5cGUgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQiB8fFxyXG4gICAgICAgICAgICByZXRWYWwudHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUikpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIFBhcnNpbmcgQXJndW1lbnQgc3RyaW5nIGFuZCBmaWxsIGlubmVyIG9iamVjdHNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiYXJnXCI+c3RyaW5nIHRvIHBhcnNlIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzcmNUYXNrXCI+b2YgdGhlIGFyZ3VtZW50IHRvIGZpbmQgZXhwcmVzc2lvbiBhcmd1bWVudCA8L3BhcmFtPlxyXG4gIHB1YmxpYyBmaWxsRGF0YShhcmc6IFN0cmluZywgc3JjVGFzazogVGFzayk6IHZvaWQge1xyXG4gICAgdGhpcy5fdHlwZSA9IGFyZ1swXTtcclxuICAgIGxldCBhcmdFbGVtZW50czogc3RyaW5nID0gYXJnLnN1YnN0cigyKTtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRDoge1xyXG4gICAgICAgIGxldCBmaWVsZElkOiBzdHJpbmdbXSA9IGFyZ0VsZW1lbnRzLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgbGV0IHBhcmVudDogbnVtYmVyID0gIE5OdW1iZXIuUGFyc2UoZmllbGRJZFswXSk7XHJcbiAgICAgICAgbGV0IGZsZElkeDogbnVtYmVyID0gIE5OdW1iZXIuUGFyc2UoZmllbGRJZFsxXSk7XHJcbiAgICAgICAgdGhpcy5fZmxkID0gPEZpZWxkQmFzZT5zcmNUYXNrLmdldEZpZWxkRGVmKHBhcmVudCwgZmxkSWR4KTtcclxuICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgbGV0IGV4cE51bTogbnVtYmVyID0gTk51bWJlci5QYXJzZShhcmdFbGVtZW50cyk7XHJcbiAgICAgICAgdGhpcy5fZXhwID0gc3JjVGFzay5nZXRFeHBCeUlkKGV4cE51bSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1NLSVA6XHJcbiAgICAgICAgdGhpcy5fc2tpcCA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gQXJndW1lbnQuRmlsbERhdGEoKSBpbGxlZ2FsIHR5cGU6IFwiICsgYXJnKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBidWlsZCB0aGUgWE1MIHN0cmluZyBmb3IgdGhlIGFyZ3VtZW50XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1lc3NhZ2VcIj50aGUgWE1MIHN0cmluZyB0byBhcHBlbmQgdGhlIGFyZ3VtZW50IHRvPC9wYXJhbT5cclxuICBwdWJsaWMgYnVpbGRYTUwobWVzc2FnZTogU3RyaW5nQnVpbGRlcik6IHZvaWQge1xyXG4gICAgc3dpdGNoICh0aGlzLl90eXBlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRklFTEQ6XHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoXCJGOlwiICsgdGhpcy5fZmxkLmdldFRhc2soKS5nZXRUYXNrVGFnKCkgKyBcIixcIiArIHRoaXMuX2ZsZC5nZXRJZCgpKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQOlxyXG4gICAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiRTpcIiArIHRoaXMuX2V4cC5nZXRJZCgpKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfU0tJUDpcclxuICAgICAgICBtZXNzYWdlLkFwcGVuZChcIlg6MFwiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2dXaXRoTXNnKFwiaW4gQXJndW1lbnQuYnVpbGRYTUwoKSBpbGxlZ2FsIHR5cGU6IFwiICsgdGhpcy5fdHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgdHlwZSBvZiB0aGUgYXJndW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGdldFR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGZvciBmaWVsZCB0eXBlIGFyZ3VtZW50cyByZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBmaWVsZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0RmllbGQoKTogRmllbGRCYXNlIHtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9GSUVMRClcclxuICAgICAgcmV0dXJuIHRoaXMuX2ZsZDtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGZvciBleHByZXNzaW9uIHR5cGUgYXJndW1lbnRzIHJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIGV4cHJlc3Npb25cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByb3RlY3RlZCBnZXRFeHAoKTogRXhwcmVzc2lvbiB7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfRVhQKVxyXG4gICAgICByZXR1cm4gdGhpcy5fZXhwO1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgc2V0IHRoZSB2YWx1ZSBvZiB0aGlzIGFyZ3VtZW50IHRvIGEgZ2l2ZW4gZmllbGRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZGVzdEZsZFwiPnRoZSBkZXN0aW5hdGlvbiBmaWVsZFxyXG4gIC8vLyA8L3BhcmFtPlxyXG4gIHB1YmxpYyBhc3luYyBzZXRWYWx1ZVRvRmllbGQoZGVzdEZsZDogRmllbGRCYXNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgdmFsOiBzdHJpbmc7XHJcbiAgICBsZXQgaXNOdWxsOiBib29sZWFuO1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5fdHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOlxyXG4gICAgICAgIHZhbCA9IHRoaXMuX2ZsZC5nZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB2YWwgPSBBcmd1bWVudC5jb252ZXJ0QXJncyh2YWwsIHRoaXMuX2ZsZC5nZXRUeXBlKCksIGRlc3RGbGQuZ2V0VHlwZSgpKTtcclxuICAgICAgICBpc051bGwgPSB0aGlzLl9mbGQuaXNOdWxsKCkgfHwgdmFsID09IG51bGw7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0VYUDpcclxuICAgICAgICB2YWwgPSBhd2FpdCB0aGlzLl9leHAuZXZhbHVhdGVXaXRoUmVzdWx0VHlwZUFuZExlbmd0aChkZXN0RmxkLmdldFR5cGUoKSwgZGVzdEZsZC5nZXRTaXplKCkpO1xyXG4gICAgICAgIGlzTnVsbCA9ICh2YWwgPT0gbnVsbCk7XHJcbiAgICAgICAgaWYgKGlzTnVsbClcclxuICAgICAgICAgIHZhbCA9IEFyZ3VtZW50LmdldEVtcHR5VmFsdWUoKGRlc3RGbGQuZ2V0VHlwZSgpID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IgfHxcclxuICAgICAgICAgICAgZGVzdEZsZC5nZXRUeXBlKCkgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQl9WRUNUT1IpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9WQUxVRTpcclxuICAgICAgICB2YWwgPSBBcmd1bWVudC5jb252ZXJ0QXJncyh0aGlzLl92YWwsIHRoaXMuX3ZhbHVlQXR0ciwgZGVzdEZsZC5nZXRUeXBlKCkpO1xyXG4gICAgICAgIGlzTnVsbCA9IHRoaXMuX3ZhbHVlSXNOdWxsIHx8IHZhbCA9PSBudWxsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIFVwZGF0ZSBkZXN0aW5hdGlvbiBmaWVsZCdzIF9pc05VTEwgd2l0aCB0aGUgdmFsdWUgZnJvbSByZWNvcmQuIFRoaXMgaXMgbmVlZGVkIHRvIGlkZW50aWZ5XHJcbiAgICAvLyBpZiB0aGUgdmFyaWFibGUgaXMgbW9kaWZpZWQuXHJcbiAgICBkZXN0RmxkLnRha2VWYWxGcm9tUmVjKCk7XHJcbiAgICBhd2FpdCBkZXN0RmxkLnNldFZhbHVlQW5kU3RhcnRSZWNvbXB1dGUodmFsLCBpc051bGwsICg8VGFzaz5kZXN0RmxkLmdldFRhc2soKSkuRGF0YVZpZXdXYXNSZXRyaWV2ZWQsIGZhbHNlLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY29udmVydHMgQWxwaGEvVW5pY29kZSB2YWx1ZXMgdG8gQmxvYiBhbmQgdmljZSB2ZXJzYS5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInZhbHVlXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzcmNBdHRyXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJleHBlY3RlZFR5cGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0QXJncyh2YWx1ZTogc3RyaW5nLCBzcmNBdHRyOiBTdG9yYWdlQXR0cmlidXRlLCBleHBlY3RlZFR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUpOiBzdHJpbmcge1xyXG4gICAgbGV0IGludmFsaWRBcmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBzd2l0Y2ggKGV4cGVjdGVkVHlwZSkge1xyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFOlxyXG4gICAgICAgIGlmIChzcmNBdHRyID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0IpIHtcclxuICAgICAgICAgIGlmIChCbG9iVHlwZS5pc1ZhbGlkQmxvYih2YWx1ZSkpXHJcbiAgICAgICAgICAgIHZhbHVlID0gQmxvYlR5cGUuZ2V0U3RyaW5nKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoIVN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5Jc1R5cGVBbHBoYU9yVW5pY29kZShzcmNBdHRyKSlcclxuICAgICAgICAgIGludmFsaWRBcmcgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM6XHJcbiAgICAgIGNhc2UgU3RvcmFnZUF0dHJpYnV0ZS5EQVRFOlxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuVElNRTpcclxuICAgICAgICBpZiAoIVN0b3JhZ2VBdHRyaWJ1dGVDaGVjay5pc1R5cGVOdW1lcmljKHNyY0F0dHIpKVxyXG4gICAgICAgICAgaW52YWxpZEFyZyA9IHRydWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFN0b3JhZ2VBdHRyaWJ1dGUuQkxPQjpcclxuICAgICAgICBpZiAoU3RvcmFnZUF0dHJpYnV0ZUNoZWNrLklzVHlwZUFscGhhT3JVbmljb2RlKHNyY0F0dHIpKSB7XHJcbiAgICAgICAgICBsZXQgY29udGVudFR5cGU6IHN0cmluZyA9IHNyY0F0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEFcclxuICAgICAgICAgICAgPyBCbG9iVHlwZS5DT05URU5UX1RZUEVfQU5TSVxyXG4gICAgICAgICAgICA6IEJsb2JUeXBlLkNPTlRFTlRfVFlQRV9VTklDT0RFO1xyXG4gICAgICAgICAgdmFsdWUgPSBCbG9iVHlwZS5jcmVhdGVGcm9tU3RyaW5nKHZhbHVlLCBjb250ZW50VHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKCFTdG9yYWdlQXR0cmlidXRlQ2hlY2suaXNUeXBlQmxvYihzcmNBdHRyKSlcclxuICAgICAgICAgIGludmFsaWRBcmcgPSB0cnVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZXJlIGlzIG1pc21hdGNoIGluIGF0dHJpYnV0ZSwgdGFrZSBkZWZhdWx0IHZhbHVlIG9mIGV4cGVjdGQgYXJndW1lbnQuXHJcbiAgICBpZiAoaW52YWxpZEFyZylcclxuICAgICAgdmFsdWUgPSBGaWVsZERlZi5nZXRNYWdpY0RlZmF1bHRWYWx1ZShleHBlY3RlZFR5cGUpO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldCB2YWx1ZSBvZiBBcmd1bWVudFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJleHBUeXBlXCI+dHlwZSBvZiBleHBlY3RlZCB0eXBlIG9mIGV2YWx1YXRpb248L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwU2l6ZVwiPnNpemUgb2YgZXhwZWN0ZWQgc3RyaW5nIGZyb20gZXZhbHVhdGlvbjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB2YWx1ZSBvZiB0aGUgQXJndW1lbnQ8L3JldHVybnM+XHJcbiAgcHVibGljIGFzeW5jIGdldFZhbHVlKGV4cFR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIGV4cFNpemU6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuX3R5cGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5BUkdfVFlQRV9FWFA6XHJcbiAgICAgICAgdGhpcy5fdmFsID0gYXdhaXQgdGhpcy5fZXhwLmV2YWx1YXRlV2l0aFJlc3VsdFR5cGVBbmRMZW5ndGgoZXhwVHlwZSwgZXhwU2l6ZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3ZhbCA9PSBudWxsKVxyXG4gICAgICAgICAgdGhpcy5fdmFsID0gQXJndW1lbnQuZ2V0RW1wdHlWYWx1ZShleHBUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLkJMT0JcclxuICAgICAgICAgICAgfHwgZXhwVHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5CTE9CX1ZFQ1RPUik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX0ZJRUxEOlxyXG4gICAgICAgIHRoaXMuX3ZhbCA9IHRoaXMuX2ZsZC5nZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUU6XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbDtcclxuICB9XHJcblxyXG4gIC8vLyA8cmV0dXJucz4gdmFsdWUgb2YgdGhlIHNraXAgZmxhZyA8L3JldHVybnM+XHJcbiAgc2tpcEFyZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9za2lwO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGZpbGwgYW4gYXJndW1lbnQgZGF0YSBmcm9tIGEgcGFyYW1ldGVyIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyYW1WYWx1ZUF0dHJcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyYW1WYWx1ZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJwYXJhbU51bGxcIj48L3BhcmFtPlxyXG4gIGZpbGxEYXRhQnlQYXJhbXMocGFyYW1WYWx1ZUF0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUsIHBhcmFtVmFsdWU6IHN0cmluZywgcGFyYW1OdWxsOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl92YWx1ZUF0dHIgPSBwYXJhbVZhbHVlQXR0cjtcclxuICAgIHRoaXMuX3ZhbCA9IHBhcmFtVmFsdWU7XHJcbiAgICB0aGlzLl92YWx1ZUlzTnVsbCA9IHBhcmFtTnVsbDtcclxuXHJcbiAgICAvLyBUaGUgc2VydmVyIGluZGljYXRlcyBza2lwIG9uIGEgcGFyYW1ldGVyIGJ5IHNlbmRpbmcgREFUQV9UWVBFX1NLSVAgaW5zdGVhZCBvZiB0aGUgcmVhbCBhdHRyaWJ1dGUuXHJcbiAgICBpZiAodGhpcy5fdmFsdWVBdHRyID09PSBTdG9yYWdlQXR0cmlidXRlLlNLSVApIHtcclxuICAgICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1NLSVAgLyonWCcqLztcclxuICAgICAgdGhpcy5fc2tpcCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fdHlwZSA9IENvbnN0SW50ZXJmYWNlLkFSR19UWVBFX1ZBTFVFIC8qViovO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiByZXR1cm5zIGVtcHR5IHZhbHVlPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImlzQmxvYlwiPi0gdHJ1ZSBpcyB2YWx1ZSBpcyBmb3IgYmxvYjwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RW1wdHlWYWx1ZShpc0Jsb2I6IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGlzQmxvYiA/IChCbG9iVHlwZS5nZXRFbXB0eUJsb2JQcmVmaXgoJ1xcMCcpIC8qJ1x1MDAwMCcqLyArIFwiO1wiKSA6IFwiXCI7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIGZpbGwgdGhlIGFyZ3VtZW50IGZyb20gYSBzdHJpbmdcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImFyZ1N0clwiPjwvcGFyYW0+XHJcbiAgcHVibGljIEZpbGxGcm9tU3RyaW5nKGFyZ1N0cjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvLyB0eXBlIGlzIGFsd2F5cyBhIHZhbHVlXHJcbiAgICB0aGlzLl90eXBlID0gQ29uc3RJbnRlcmZhY2UuQVJHX1RZUEVfVkFMVUU7XHJcblxyXG4gICAgbGV0IGFyZ1R5cGU6IHN0cmluZyA9IG51bGw7XHJcbiAgICAvLyBJZiBzdHJpbmcgaXMgc2hvcnRlciB0aGFuIDMsIGFzc3VtZSBpdCBkb2VzIG5vdCBoYXZlIGFuIGF0dHJpYnV0ZSBpZGVudGlmaWVyXHJcbiAgICBpZiAoYXJnU3RyLmxlbmd0aCA+IDIpXHJcbiAgICAgIGFyZ1R5cGUgPSBhcmdTdHIuc3Vic3RyKDAsIDIpO1xyXG5cclxuICAgIHN3aXRjaCAoYXJnVHlwZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfQUxQSEE6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5SRVFfQVJHX1VOSUNPREU6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfTlVNRVJJQzpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLk5VTUVSSUM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuUkVRX0FSR19ET1VCTEU6XHJcbiAgICAgICAgdGhpcy5fdmFsdWVBdHRyID0gU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLlJFUV9BUkdfTE9HSUNBTDpcclxuICAgICAgICB0aGlzLl92YWx1ZUF0dHIgPSBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU47XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuUkVRX0FSR19OVUxMOlxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuTk9ORTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICAvLyBpZiBzdG9yYWdlIHR5cGUgaXMgbm90IGRlZmluZWQsIGFzc3VtZSBhbHBoYSBzdHJpbmcgYW5kIHRoZSBlbnRpcmUgc3RyaW5nIGlzIHRoZSB2YWx1ZVxyXG4gICAgICAgIHRoaXMuX3ZhbHVlQXR0ciA9IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEE7XHJcbiAgICAgICAgdGhpcy5fdmFsID0gYXJnU3RyO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIHRoZSBjYXNlIHRoZSBzdHJpbmcgaXMgdG9vIHNob3J0IHdhcyBkZWFsdCB3aXRoIGVhcmxpZXIgLSBpdCB3aWxsIGdldCB0byB0aGUgZGVmYXVsdCBjYXNlIGluIHRoZSBzd2l0Y2hcclxuICAgIC8vIGFuZCByZXR1cm4gZnJvbSB0aGVyZVxyXG4gICAgdGhpcy5fdmFsID0gYXJnU3RyLnN1YnN0cigyKTtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY2hhbmdlcyBhbGwgaWxsZWdhbCBjaGFyYWN0ZXJzIG9yIHNwZWNpYWwgY2hhcmFjdGVycyB1c2VkIGZvciBwYXJzaW5nIHRvIHRoZWlyIGxlZ2FsIGZvcm1hdFxyXG4gIC8vLyAgIHRoZSBwYXJzaW5nIGlzIHBlcmZvcm1lZCBhdCBzZXZlcmFsIHBsYWNlcyBmaXJzdCB3aGVuIHBhc3NpbmcgdGhlIHVybCB0byBJRSBieSBJRVxyXG4gIC8vLyAgIHNlY29uZCBpbiB0aGUgcmVxdWVzdGVyIChycWh0dHAuY3BwKSB3aGVuIHBhcnNpbmcgdGhlIHVybCBmb3IgYXJndW1lbnRzXHJcbiAgLy8vICAgdGhpcnN0IGluIHRoZSBtYWdpYyBlbmdpbmUgKG1ncnFtcmcuY3BwIC0gY29weV9pbl9hcmdzKVxyXG4gIC8vLyAgIHdlIG11c3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBjaGFyYWN0ZXJzIHRoYXQgYXJlIHJlc2VydmVkIGZvciBzcGVjaWFsIHVzZSBieSB0aGUgVVJMIFJGQyBhbmRcclxuICAvLy8gICBiZXR3ZWVuIGNoYXJhY3RlcnMgdXNlZCBpbnRlcm5hbGx5IGJ5IG1hZ2ljIGZvciBzcGVjaWFsIHVzZVxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJzb3VyY2VcIj51cmwgdG8gYmUgY29udmVydGVkIDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgY29udmVydGVkIHVybCAgIDwvcmV0dXJucz5cclxuICBtYWtlVVJMUHJpbnRhYmxlKHNvdXJjZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBmcm9tOiBzdHJpbmdbXSA9IFtcclxuICAgICAgXCJcXFxcXCIsIFwiXFwwXCIsIFwiLFwiXHJcbiAgICBdO1xyXG4gICAgbGV0IHRvOiBzdHJpbmdbXSA9IFtcclxuICAgICAgXCJcXFxcXFxcXFwiLCBcIlxcXFwwXCIsIFwiXFxcXCxcIlxyXG4gICAgXTtcclxuICAgIHJldHVybiBTdHJVdGlsLnNlYXJjaEFuZFJlcGxhY2Uoc291cmNlLCBmcm9tLCB0byk7XHJcbiAgfVxyXG59XHJcbiJdfQ==