@magic-xpa/engine 4.1200.0-dev4120.20 → 4.1200.0-dev4120.201

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 (213) hide show
  1. package/fesm2022/magic-xpa-engine.mjs +11347 -1307
  2. package/fesm2022/magic-xpa-engine.mjs.map +1 -1
  3. package/index.d.ts +4 -0
  4. package/package.json +5 -7
  5. package/src/ClientManager.d.ts +2 -0
  6. package/src/CommandsProcessorBase.d.ts +2 -1
  7. package/src/CommandsProcessorManager.d.ts +2 -1
  8. package/src/ConstInterface.d.ts +7 -0
  9. package/src/bridge/MagicBridge.d.ts +2 -0
  10. package/src/commands/ClientToServer/CachedFileQueryCommand.d.ts +9 -0
  11. package/src/commands/ClientToServer/CommandFactory.d.ts +4 -2
  12. package/src/commands/ClientToServer/ControlItemsRefreshCommand.d.ts +1 -0
  13. package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +1 -0
  14. package/src/event/EventHandler.d.ts +5 -0
  15. package/src/event/EventsManager.d.ts +4 -0
  16. package/src/exp/ExpressionEvaluator.d.ts +5 -0
  17. package/src/http/HttpManager.d.ts +2 -1
  18. package/src/http/client/HttpClientAsync.d.ts +2 -2
  19. package/src/http/client/HttpClientBase.d.ts +3 -3
  20. package/src/http/client/HttpClientSync.d.ts +2 -2
  21. package/src/remote/RemoteCommandsProcessor.d.ts +9 -2
  22. package/src/remote/RemoteControlItemsRefreshCommand.d.ts +1 -0
  23. package/src/rt/Operation.d.ts +3 -1
  24. package/src/util/ParamParseResult.d.ts +3 -3
  25. package/esm2022/index.mjs +0 -188
  26. package/esm2022/magic-xpa-engine.mjs +0 -2
  27. package/esm2022/src/AccessHelper.mjs +0 -15
  28. package/esm2022/src/ClientManager.mjs +0 -420
  29. package/esm2022/src/CommandsProcessorBase.mjs +0 -56
  30. package/esm2022/src/CommandsProcessorManager.mjs +0 -26
  31. package/esm2022/src/CommandsTable.mjs +0 -162
  32. package/esm2022/src/ConstInterface.mjs +0 -517
  33. package/esm2022/src/CurrentClientVersion.mjs +0 -2
  34. package/esm2022/src/FlowMonitorInterface.mjs +0 -16
  35. package/esm2022/src/GUIManager.mjs +0 -62
  36. package/esm2022/src/GlobalCommandsManager.mjs +0 -34
  37. package/esm2022/src/GuiEventsProcessor.mjs +0 -156
  38. package/esm2022/src/ICommandsTable.mjs +0 -2
  39. package/esm2022/src/ServerConfig.mjs +0 -122
  40. package/esm2022/src/bridge/IGuiEvent.mjs +0 -20
  41. package/esm2022/src/bridge/MagicBridge.mjs +0 -41
  42. package/esm2022/src/commands/ClientOriginatedCommandTaskTag.mjs +0 -12
  43. package/esm2022/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs +0 -9
  44. package/esm2022/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs +0 -9
  45. package/esm2022/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs +0 -9
  46. package/esm2022/src/commands/ClientToServer/BrowserEscEventCommand.mjs +0 -26
  47. package/esm2022/src/commands/ClientToServer/ClientOriginatedCommand.mjs +0 -15
  48. package/esm2022/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +0 -60
  49. package/esm2022/src/commands/ClientToServer/ColumnSortEventCommand.mjs +0 -29
  50. package/esm2022/src/commands/ClientToServer/CommandFactory.mjs +0 -261
  51. package/esm2022/src/commands/ClientToServer/CommandSerializationHelper.mjs +0 -67
  52. package/esm2022/src/commands/ClientToServer/ComputeEventCommand.mjs +0 -26
  53. package/esm2022/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +0 -24
  54. package/esm2022/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +0 -23
  55. package/esm2022/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs +0 -8
  56. package/esm2022/src/commands/ClientToServer/DataViewOutputCommand.mjs +0 -13
  57. package/esm2022/src/commands/ClientToServer/DataviewCommand.mjs +0 -44
  58. package/esm2022/src/commands/ClientToServer/EvaluateCommand.mjs +0 -40
  59. package/esm2022/src/commands/ClientToServer/EventCommand.mjs +0 -43
  60. package/esm2022/src/commands/ClientToServer/ExecOperCommand.mjs +0 -70
  61. package/esm2022/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +0 -25
  62. package/esm2022/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs +0 -11
  63. package/esm2022/src/commands/ClientToServer/ICommandTaskTag.mjs +0 -2
  64. package/esm2022/src/commands/ClientToServer/IndexChangeEventCommand.mjs +0 -24
  65. package/esm2022/src/commands/ClientToServer/IniputForceWriteCommand.mjs +0 -26
  66. package/esm2022/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +0 -26
  67. package/esm2022/src/commands/ClientToServer/QueryCommand.mjs +0 -21
  68. package/esm2022/src/commands/ClientToServer/RecomputeCommand.mjs +0 -30
  69. package/esm2022/src/commands/ClientToServer/RefreshEventCommand.mjs +0 -30
  70. package/esm2022/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +0 -27
  71. package/esm2022/src/commands/ClientToServer/RollbackEventCommand.mjs +0 -43
  72. package/esm2022/src/commands/ClientToServer/SelectProgramCommand.mjs +0 -19
  73. package/esm2022/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs +0 -9
  74. package/esm2022/src/commands/ClientToServer/SubformOpenEventCommand.mjs +0 -24
  75. package/esm2022/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +0 -27
  76. package/esm2022/src/commands/ClientToServer/TransactionCommand.mjs +0 -34
  77. package/esm2022/src/commands/ClientToServer/UnloadCommand.mjs +0 -18
  78. package/esm2022/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +0 -18
  79. package/esm2022/src/commands/DataViewCommandBase.mjs +0 -8
  80. package/esm2022/src/commands/IClientCommand.mjs +0 -2
  81. package/esm2022/src/commands/IClientTargetedCommand.mjs +0 -13
  82. package/esm2022/src/commands/IClientToServerCommandInfo.mjs +0 -2
  83. package/esm2022/src/commands/ServerToClient/AbortCommand.mjs +0 -65
  84. package/esm2022/src/commands/ServerToClient/AddLocateCommand.mjs +0 -22
  85. package/esm2022/src/commands/ServerToClient/AddRangeCommand.mjs +0 -62
  86. package/esm2022/src/commands/ServerToClient/AddSortCommand.mjs +0 -33
  87. package/esm2022/src/commands/ServerToClient/ClientRefreshCommand.mjs +0 -25
  88. package/esm2022/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +0 -24
  89. package/esm2022/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +0 -45
  90. package/esm2022/src/commands/ServerToClient/OpenURLCommand.mjs +0 -221
  91. package/esm2022/src/commands/ServerToClient/ResetLocateCommand.mjs +0 -15
  92. package/esm2022/src/commands/ServerToClient/ResetRangeCommand.mjs +0 -15
  93. package/esm2022/src/commands/ServerToClient/ResetSortCommand.mjs +0 -15
  94. package/esm2022/src/commands/ServerToClient/ResultCommand.mjs +0 -37
  95. package/esm2022/src/commands/ServerToClient/VerifyCommand.mjs +0 -83
  96. package/esm2022/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +0 -132
  97. package/esm2022/src/communications/IConnectionStateManager.mjs +0 -2
  98. package/esm2022/src/communications/InteractiveCommunicationsFailureHandler.mjs +0 -15
  99. package/esm2022/src/data/DataSourceIdKey.mjs +0 -3
  100. package/esm2022/src/data/DataView.mjs +0 -1613
  101. package/esm2022/src/data/DataViewBase.mjs +0 -4
  102. package/esm2022/src/data/DataviewManager.mjs +0 -28
  103. package/esm2022/src/data/DataviewManagerBase.mjs +0 -15
  104. package/esm2022/src/data/DvCache.mjs +0 -67
  105. package/esm2022/src/data/Field.mjs +0 -646
  106. package/esm2022/src/data/FieldBase.mjs +0 -15
  107. package/esm2022/src/data/FieldsTable.mjs +0 -103
  108. package/esm2022/src/data/IRecordsTable.mjs +0 -2
  109. package/esm2022/src/data/Key.mjs +0 -88
  110. package/esm2022/src/data/Record.mjs +0 -880
  111. package/esm2022/src/data/RecordOutOfDataViewException.mjs +0 -16
  112. package/esm2022/src/data/RecordsTable.mjs +0 -267
  113. package/esm2022/src/data/TaskTransactionManager.mjs +0 -107
  114. package/esm2022/src/data/XMLBasedDcValuesBuilder.mjs +0 -74
  115. package/esm2022/src/enums.mjs +0 -24
  116. package/esm2022/src/env/EnvVariablesTable.mjs +0 -340
  117. package/esm2022/src/env/Environment.mjs +0 -487
  118. package/esm2022/src/env/ILanguageData.mjs +0 -2
  119. package/esm2022/src/env/LanguageData.mjs +0 -227
  120. package/esm2022/src/env/MirrorString.mjs +0 -67
  121. package/esm2022/src/event/ActionManager.mjs +0 -91
  122. package/esm2022/src/event/Event.mjs +0 -1333
  123. package/esm2022/src/event/EventHandler.mjs +0 -766
  124. package/esm2022/src/event/EventHandlerPosition.mjs +0 -204
  125. package/esm2022/src/event/EventsManager.mjs +0 -2988
  126. package/esm2022/src/event/IEventsManager.mjs +0 -7
  127. package/esm2022/src/event/RunTimeEvent.mjs +0 -399
  128. package/esm2022/src/event/RunTimeEventBase.mjs +0 -4
  129. package/esm2022/src/event/UserEventsTable.mjs +0 -47
  130. package/esm2022/src/exp/ExpTable.mjs +0 -57
  131. package/esm2022/src/exp/Expression.mjs +0 -200
  132. package/esm2022/src/exp/ExpressionDict.mjs +0 -727
  133. package/esm2022/src/exp/ExpressionEvaluator.mjs +0 -4206
  134. package/esm2022/src/exp/ExpressionLocalJpn.mjs +0 -314
  135. package/esm2022/src/exp/GlobalParamsTable.mjs +0 -85
  136. package/esm2022/src/exp/YesNoExp.mjs +0 -36
  137. package/esm2022/src/gui/CreatedFormVector.mjs +0 -23
  138. package/esm2022/src/gui/FormsTable.mjs +0 -66
  139. package/esm2022/src/gui/MgControl.mjs +0 -363
  140. package/esm2022/src/gui/MgForm.mjs +0 -1224
  141. package/esm2022/src/http/HttpManager.mjs +0 -97
  142. package/esm2022/src/http/client/HttpClientAsync.mjs +0 -68
  143. package/esm2022/src/http/client/HttpClientBase.mjs +0 -132
  144. package/esm2022/src/http/client/HttpClientEvents.mjs +0 -39
  145. package/esm2022/src/http/client/HttpClientSync.mjs +0 -42
  146. package/esm2022/src/http/client/HttpUtility.mjs +0 -84
  147. package/esm2022/src/http/client/ICommunicationsFailureHandler.mjs +0 -2
  148. package/esm2022/src/remote/AddUserLocateRemoteDataViewCommand.mjs +0 -18
  149. package/esm2022/src/remote/AddUserRangeRemoteDataViewCommand.mjs +0 -18
  150. package/esm2022/src/remote/AddUserSortRemoteDataViewCommand.mjs +0 -18
  151. package/esm2022/src/remote/RemoteCommandsProcessor.mjs +0 -883
  152. package/esm2022/src/remote/RemoteControlItemsRefreshCommand.mjs +0 -25
  153. package/esm2022/src/remote/RemoteDataViewCommandBase.mjs +0 -24
  154. package/esm2022/src/remote/RemoteDataViewCommandFactory.mjs +0 -61
  155. package/esm2022/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +0 -16
  156. package/esm2022/src/remote/RemoteDataviewManager.mjs +0 -17
  157. package/esm2022/src/remote/RemoteInitDataViewCommand.mjs +0 -11
  158. package/esm2022/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +0 -17
  159. package/esm2022/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +0 -13
  160. package/esm2022/src/remote/ResetUserSortRemoteDataviewCommand.mjs +0 -16
  161. package/esm2022/src/remote/ServerError.mjs +0 -40
  162. package/esm2022/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +0 -20
  163. package/esm2022/src/rt/Argument.mjs +0 -265
  164. package/esm2022/src/rt/ArgumentsList.mjs +0 -103
  165. package/esm2022/src/rt/Boundary.mjs +0 -152
  166. package/esm2022/src/rt/CompMainPrgTable.mjs +0 -63
  167. package/esm2022/src/rt/DataviewHeaderBase.mjs +0 -98
  168. package/esm2022/src/rt/DataviewHeaderFactory.mjs +0 -7
  169. package/esm2022/src/rt/DataviewHeaders.mjs +0 -53
  170. package/esm2022/src/rt/DataviewHeadersSaxHandler.mjs +0 -38
  171. package/esm2022/src/rt/ExecutionStack.mjs +0 -94
  172. package/esm2022/src/rt/ExecutionStackEntry.mjs +0 -17
  173. package/esm2022/src/rt/HandlersTable.mjs +0 -96
  174. package/esm2022/src/rt/IDataSourceViewDefinition.mjs +0 -2
  175. package/esm2022/src/rt/IDataviewHeader.mjs +0 -2
  176. package/esm2022/src/rt/IResultValue.mjs +0 -2
  177. package/esm2022/src/rt/LastFocusedManager.mjs +0 -65
  178. package/esm2022/src/rt/Operation.mjs +0 -735
  179. package/esm2022/src/rt/OperationTable.mjs +0 -67
  180. package/esm2022/src/rt/Recompute.mjs +0 -355
  181. package/esm2022/src/rt/RecomputeTable.mjs +0 -63
  182. package/esm2022/src/rt/RemoteDataviewHeader.mjs +0 -108
  183. package/esm2022/src/rt/ResultValue.mjs +0 -10
  184. package/esm2022/src/rt/TableCache.mjs +0 -177
  185. package/esm2022/src/rt/TableCacheManager.mjs +0 -67
  186. package/esm2022/src/rt/Transaction.mjs +0 -53
  187. package/esm2022/src/security/UserDetails.mjs +0 -71
  188. package/esm2022/src/tasks/IMGDataCollection.mjs +0 -2
  189. package/esm2022/src/tasks/MGData.mjs +0 -552
  190. package/esm2022/src/tasks/MGDataCollection.mjs +0 -252
  191. package/esm2022/src/tasks/RCTimer.mjs +0 -63
  192. package/esm2022/src/tasks/RemoteTaskService.mjs +0 -45
  193. package/esm2022/src/tasks/Task.mjs +0 -2499
  194. package/esm2022/src/tasks/TaskBase.mjs +0 -83
  195. package/esm2022/src/tasks/TaskServiceBase.mjs +0 -25
  196. package/esm2022/src/tasks/TasksTable.mjs +0 -80
  197. package/esm2022/src/tasks/sort/Sort.mjs +0 -5
  198. package/esm2022/src/tasks/sort/SortCollection.mjs +0 -67
  199. package/esm2022/src/util/ConstUtils.mjs +0 -14
  200. package/esm2022/src/util/FlowMonitorQueue.mjs +0 -451
  201. package/esm2022/src/util/HeapSort.mjs +0 -70
  202. package/esm2022/src/util/IMirrorXML.mjs +0 -2
  203. package/esm2022/src/util/IServerConfig.mjs +0 -2
  204. package/esm2022/src/util/MgBlockingQueue.mjs +0 -2
  205. package/esm2022/src/util/MgPriorityBlockingQueue.mjs +0 -74
  206. package/esm2022/src/util/MgPriorityQueue.mjs +0 -66
  207. package/esm2022/src/util/ParamParseResult.mjs +0 -8
  208. package/esm2022/src/util/PrmMap.mjs +0 -153
  209. package/esm2022/src/util/ReturnResult.mjs +0 -46
  210. package/esm2022/src/util/ReturnResultBase.mjs +0 -18
  211. package/esm2022/src/util/Scrambler.mjs +0 -89
  212. package/esm2022/src/util/UniqueIDUtils.mjs +0 -13
  213. package/esm2022/src/util/cookie.service.mjs +0 -92
@@ -1,45 +0,0 @@
1
- import { VerifyCommand } from "./VerifyCommand";
2
- import { Operation } from "../../rt/Operation";
3
- import { Task } from "../../tasks/Task";
4
- import { ConstInterface } from "../../ConstInterface";
5
- import { LanguageData } from "../../env/LanguageData";
6
- export class EnhancedVerifyCommand extends VerifyCommand {
7
- _buttonsID = '\0';
8
- _image = '\0';
9
- _returnValStr = null;
10
- _returnVal = null;
11
- async ProcessMessageBoxResponse(task, returnValue) {
12
- if (task !== null)
13
- await Operation.setoperVerifyReturnValue(returnValue, this._returnVal);
14
- }
15
- PrepareMessageBoxForDisplay(task, mlsTransTitle, style) {
16
- mlsTransTitle.value = LanguageData.Instance.translate(this._title);
17
- style.value = Operation.getButtons(this._buttonsID);
18
- style.value |= Operation.getImage(this._image);
19
- if (task !== null) {
20
- if (Task.isMainProgramField(this._returnValStr)) {
21
- this._returnVal = Operation.InitField(this._returnValStr, task);
22
- }
23
- }
24
- }
25
- HandleAttribute(attribute, value) {
26
- switch (attribute) {
27
- case ConstInterface.MG_ATTR_IMAGE:
28
- this._image = value[0];
29
- break;
30
- case ConstInterface.MG_ATTR_BUTTONS:
31
- this._buttonsID = value[0];
32
- break;
33
- case ConstInterface.MG_ATTR_RETURN_VAL:
34
- this._returnValStr = value;
35
- break;
36
- default:
37
- super.HandleAttribute(attribute, value);
38
- break;
39
- }
40
- }
41
- constructor() {
42
- super();
43
- }
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW5oYW5jZWRWZXJpZnlDb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9FbmhhbmNlZFZlcmlmeUNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM3QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdEMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd0RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQUM5QyxVQUFVLEdBQVcsSUFBSSxDQUFDO0lBQzFCLE1BQU0sR0FBVyxJQUFJLENBQUM7SUFDdEIsYUFBYSxHQUFXLElBQUksQ0FBQztJQUM3QixVQUFVLEdBQVUsSUFBSSxDQUFDO0lBRWpDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxJQUFVLEVBQUUsV0FBbUI7UUFDN0QsSUFBSSxJQUFJLEtBQUssSUFBSTtZQUNmLE1BQU0sU0FBUyxDQUFDLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELDJCQUEyQixDQUFDLElBQVUsRUFBRSxhQUErQixFQUFFLEtBQXVCO1FBQzlGLGFBQWEsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsS0FBSyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFFakIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO2dCQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNqRTtTQUNGO0lBQ0gsQ0FBQztJQUVNLGVBQWUsQ0FBQyxTQUFpQixFQUFFLEtBQWE7UUFDckQsUUFBUSxTQUFTLEVBQUU7WUFDakIsS0FBSyxjQUFjLENBQUMsYUFBYTtnQkFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU07WUFDUixLQUFLLGNBQWMsQ0FBQyxlQUFlO2dCQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsTUFBTTtZQUNSLEtBQUssY0FBYyxDQUFDLGtCQUFrQjtnQkFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLE1BQU07WUFDUjtnQkFDRSxLQUFLLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDeEMsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlZlBhcmFtfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtWZXJpZnlDb21tYW5kfSBmcm9tIFwiLi9WZXJpZnlDb21tYW5kXCI7XHJcbmltcG9ydCB7T3BlcmF0aW9ufSBmcm9tIFwiLi4vLi4vcnQvT3BlcmF0aW9uXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIi4uLy4uL3Rhc2tzL1Rhc2tcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uLy4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7RmllbGR9IGZyb20gXCIuLi8uLi9kYXRhL0ZpZWxkXCI7XHJcbmltcG9ydCB7IExhbmd1YWdlRGF0YSB9IGZyb20gXCIuLi8uLi9lbnYvTGFuZ3VhZ2VEYXRhXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEVuaGFuY2VkVmVyaWZ5Q29tbWFuZCBleHRlbmRzIFZlcmlmeUNvbW1hbmQge1xyXG4gIHByaXZhdGUgX2J1dHRvbnNJRDogc3RyaW5nID0gJ1xcMCc7IC8vIGJ1dHRvbnMgb2YgdmVyaWZ5IG9wclxyXG4gIHByaXZhdGUgX2ltYWdlOiBzdHJpbmcgPSAnXFwwJzsgLy8gaW1hZ2Ugb2YgdmVyaWZ5IG9wclxyXG4gIHByaXZhdGUgX3JldHVyblZhbFN0cjogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF9yZXR1cm5WYWw6IEZpZWxkID0gbnVsbDsgLy8gcmV0dXJuIHZhbHVlIG9mIHZlcmlmeSBvcHJcclxuXHJcbiAgYXN5bmMgUHJvY2Vzc01lc3NhZ2VCb3hSZXNwb25zZSh0YXNrOiBUYXNrLCByZXR1cm5WYWx1ZTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGFzayAhPT0gbnVsbClcclxuICAgICAgYXdhaXQgT3BlcmF0aW9uLnNldG9wZXJWZXJpZnlSZXR1cm5WYWx1ZShyZXR1cm5WYWx1ZSwgdGhpcy5fcmV0dXJuVmFsKTtcclxuICB9XHJcblxyXG4gIFByZXBhcmVNZXNzYWdlQm94Rm9yRGlzcGxheSh0YXNrOiBUYXNrLCBtbHNUcmFuc1RpdGxlOiBSZWZQYXJhbTxzdHJpbmc+LCBzdHlsZTogUmVmUGFyYW08bnVtYmVyPik6IHZvaWQge1xyXG4gICAgbWxzVHJhbnNUaXRsZS52YWx1ZSA9IExhbmd1YWdlRGF0YS5JbnN0YW5jZS50cmFuc2xhdGUodGhpcy5fdGl0bGUpO1xyXG4gICAgc3R5bGUudmFsdWUgPSBPcGVyYXRpb24uZ2V0QnV0dG9ucyh0aGlzLl9idXR0b25zSUQpO1xyXG4gICAgc3R5bGUudmFsdWUgfD0gT3BlcmF0aW9uLmdldEltYWdlKHRoaXMuX2ltYWdlKTtcclxuXHJcbiAgICBpZiAodGFzayAhPT0gbnVsbCkge1xyXG4gICAgICAvLyBWZXJpZnkgY29tbWFuZCByZXR1cm4gdmFsdWUgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIG1haW4gcHJvZ3JhbSBmaWVsZHNcclxuICAgICAgaWYgKFRhc2suaXNNYWluUHJvZ3JhbUZpZWxkKHRoaXMuX3JldHVyblZhbFN0cikpIHtcclxuICAgICAgICB0aGlzLl9yZXR1cm5WYWwgPSBPcGVyYXRpb24uSW5pdEZpZWxkKHRoaXMuX3JldHVyblZhbFN0ciwgdGFzayk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBIYW5kbGVBdHRyaWJ1dGUoYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9JTUFHRTpcclxuICAgICAgICB0aGlzLl9pbWFnZSA9IHZhbHVlWzBdO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQlVUVE9OUzpcclxuICAgICAgICB0aGlzLl9idXR0b25zSUQgPSB2YWx1ZVswXTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1JFVFVSTl9WQUw6XHJcbiAgICAgICAgdGhpcy5fcmV0dXJuVmFsU3RyID0gdmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgc3VwZXIuSGFuZGxlQXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,221 +0,0 @@
1
- import { Debug, Int32, List, NString } from "@magic-xpa/mscorelib";
2
- import { InternalInterface, XMLConstants, XmlParser } from "@magic-xpa/utils";
3
- import { ClientTargetedCommandBase } from "./ClientTargetedCommandBase";
4
- import { ArgumentsList } from "../../rt/ArgumentsList";
5
- import { MGData } from "../../tasks/MGData";
6
- import { MgControl } from "../../gui/MgControl";
7
- import { OpeningTaskDetails } from "../../tasks/TaskBase";
8
- import { ConstInterface } from "../../ConstInterface";
9
- import { LastFocusedManager } from "../../rt/LastFocusedManager";
10
- import { RemoteCommandsProcessor } from "../../remote/RemoteCommandsProcessor";
11
- import { Task } from "../../tasks/Task";
12
- import { AccessHelper } from "../../AccessHelper";
13
- import { MgControlType } from "@magic-xpa/utils";
14
- import { RunTimeEvent } from '../../event/RunTimeEvent';
15
- export class OpenURLCommand extends ClientTargetedCommandBase {
16
- _callingTaskTag = null;
17
- _pathParentTaskTag = null;
18
- _subformCtrlName = null;
19
- _ditIdx = Int32.MinValue;
20
- _isModal = true;
21
- _transOwner = null;
22
- _newId = null;
23
- _forceModal = false;
24
- _key = null;
25
- _varList = null;
26
- _isRoute = false;
27
- NewTaskXML = null;
28
- static createNewCommandsTable = null;
29
- constructor() {
30
- super();
31
- }
32
- get IsBlocking() {
33
- return this._isModal && this._subformCtrlName === null;
34
- }
35
- async Execute(res) {
36
- let mgd = null;
37
- let destinationSubformSucceeded = false;
38
- let refreshWhenHidden = true;
39
- let mgdID = 0;
40
- let subformCtrl = null;
41
- let oldTimers = new List(), newTimers = new List();
42
- let moveToFirstControl = true;
43
- let guiParentTask;
44
- let guiParentMgData = null;
45
- let callingTask = (this._callingTaskTag != null ? AccessHelper.mgDataTable.GetTaskByID(this._callingTaskTag) : null);
46
- let pathParentTask = (this._pathParentTaskTag != null ? AccessHelper.mgDataTable.GetTaskByID(this._pathParentTaskTag) : null);
47
- guiParentTask = callingTask = AccessHelper.mgDataTable.GetTaskByID(this._callingTaskTag);
48
- if ((!NString.IsNullOrEmpty(this._subformCtrlName)) || (this._ditIdx !== Int32.MinValue) || this._isRoute) {
49
- if (this._isRoute && NString.IsNullOrEmpty(this._subformCtrlName.trim())) {
50
- subformCtrl = callingTask.getForm().DefaultRouterOutlet;
51
- }
52
- else {
53
- if (!callingTask.IsInteractive) {
54
- for (let parentTask = callingTask; parentTask.getForm() != null; parentTask = parentTask.getParent()) {
55
- subformCtrl = parentTask.getForm().getCtrlByName(this._subformCtrlName, MgControlType.CTRL_TYPE_SUBFORM);
56
- if (subformCtrl != null) {
57
- callingTask = guiParentTask = parentTask;
58
- break;
59
- }
60
- }
61
- }
62
- else
63
- subformCtrl = (this._ditIdx !== Int32.MinValue ? callingTask.getForm().getCtrl(this._ditIdx) : callingTask.getForm().getSubFormCtrlByName(this._subformCtrlName));
64
- }
65
- }
66
- if (callingTask != null)
67
- mgd = callingTask.getMGData();
68
- if (subformCtrl != null) {
69
- let subformTask = subformCtrl.getSubformTask();
70
- guiParentTask = subformCtrl.getForm().getTask();
71
- mgdID = guiParentTask.getMgdID();
72
- guiParentMgData = guiParentTask.getMGData();
73
- if (guiParentMgData.getTimerHandlers() != null)
74
- oldTimers = guiParentMgData.getTimerHandlers().getTimersVector();
75
- if (this._ditIdx !== Int32.MinValue) {
76
- refreshWhenHidden = false;
77
- moveToFirstControl = false;
78
- }
79
- else {
80
- destinationSubformSucceeded = true;
81
- if (this._transOwner != null) {
82
- let newTransOwnerTask = AccessHelper.mgDataTable.GetTaskByID(this._transOwner);
83
- if (newTransOwnerTask != null)
84
- newTransOwnerTask.setTransOwnerTask();
85
- }
86
- if (subformTask != null) {
87
- subformTask.setDestinationSubform(true);
88
- await subformTask.stop();
89
- }
90
- if (!MgControl.validReturnToCtrl())
91
- MgControl.ReturnToCtrl = LastFocusedManager.getLastFocusedControl();
92
- }
93
- subformCtrl.setSubformTaskId(this._newId);
94
- }
95
- let parentMgData;
96
- if (callingTask == null)
97
- parentMgData = AccessHelper.mgDataTable.getMGData(0);
98
- else
99
- parentMgData = callingTask.getMGData();
100
- if (!destinationSubformSucceeded && refreshWhenHidden) {
101
- mgdID = AccessHelper.mgDataTable.getAvailableIdx();
102
- Debug.Assert(mgdID > 0);
103
- mgd = new MGData(OpenURLCommand.createNewCommandsTable(), OpenURLCommand.createNewCommandsTable(), mgdID, parentMgData, this._isModal, this._forceModal);
104
- mgd.copyUnframedCmds();
105
- await AccessHelper.mgDataTable.addMGData(mgd, mgdID, false);
106
- AccessHelper.mgDataTable.currMgdID = mgdID;
107
- }
108
- this.Obj = this._key;
109
- this._key = null;
110
- try {
111
- await RemoteCommandsProcessor.GetInstance().ProcessResponse(this.NewTaskXML, mgdID, new OpeningTaskDetails(callingTask, pathParentTask), null);
112
- }
113
- finally {
114
- AccessHelper.eventsManager.setIgnoreUnknownAbort(false);
115
- }
116
- if (destinationSubformSucceeded || !refreshWhenHidden) {
117
- subformCtrl.initSubformTask();
118
- if (destinationSubformSucceeded) {
119
- let subformTask = subformCtrl.getSubformTask();
120
- moveToFirstControl = !callingTask.RetainFocus;
121
- subformTask.setIsDestinationCall(true);
122
- }
123
- }
124
- let isSubformModal = false;
125
- let prevMgDataIsModal = mgd.IsModal;
126
- if (subformCtrl != null) {
127
- if (guiParentMgData.getTimerHandlers() != null)
128
- newTimers = guiParentMgData.getTimerHandlers().getTimersVector();
129
- guiParentMgData.changeTimers(oldTimers, newTimers);
130
- if (subformCtrl.IsModal())
131
- this._isModal = isSubformModal = mgd.IsModal = true;
132
- }
133
- let nonInteractiveTask = await Task.StartProgram(destinationSubformSucceeded, moveToFirstControl);
134
- if (!isSubformModal)
135
- this._isModal = mgd.IsModal;
136
- if (nonInteractiveTask == null) {
137
- if (callingTask != null && ((this._isModal && (isSubformModal || !destinationSubformSucceeded) && refreshWhenHidden) || (!callingTask.IsInteractive && (!callingTask.isMainProg() || callingTask.getForm() == null)))) {
138
- if (this._isModal) {
139
- AccessHelper.mgDataTable.startTasksIteration();
140
- let task;
141
- while ((task = AccessHelper.mgDataTable.getNextTask()) !== null) {
142
- let dataViewWasRetrieved = task.DataViewWasRetrieved;
143
- if (dataViewWasRetrieved) {
144
- await task.RefreshDisplay();
145
- }
146
- }
147
- }
148
- await AccessHelper.eventsManager.EventsLoop(mgd);
149
- if (isSubformModal) {
150
- mgd.IsAborting = false;
151
- mgd.IsModal = prevMgDataIsModal;
152
- }
153
- }
154
- }
155
- else
156
- await AccessHelper.eventsManager.NonInteractiveEventsLoop(mgd, nonInteractiveTask);
157
- if (AccessHelper.eventsManager.getPendingGuiEvent() != null && (isSubformModal || nonInteractiveTask != null)) {
158
- let guiEvent = AccessHelper.eventsManager.getPendingGuiEvent();
159
- if (guiEvent.getTask() != callingTask || this._callingTaskTag !== callingTask.getTaskTag()) {
160
- callingTask = AccessHelper.mgDataTable.GetTaskByID(this._callingTaskTag);
161
- if (callingTask.getIsDestinationCall()) {
162
- let subformCtrl = callingTask.getForm().getSubFormCtrl();
163
- await AccessHelper.eventsManager.performSubformClose(subformCtrl);
164
- }
165
- else {
166
- let rtEvt = new RunTimeEvent(callingTask);
167
- rtEvt.setInternal(InternalInterface.MG_ACT_CLOSE);
168
- rtEvt.setCtrl(null);
169
- rtEvt.setArgList(null);
170
- AccessHelper.eventsManager.addToTail(rtEvt);
171
- }
172
- }
173
- else {
174
- AccessHelper.eventsManager.addToTail(guiEvent);
175
- AccessHelper.eventsManager.setPendingGuiEvent(null);
176
- }
177
- }
178
- }
179
- HandleAttribute(attribute, value) {
180
- switch (attribute) {
181
- case ConstInterface.MG_ATTR_CALLINGTASK:
182
- this._callingTaskTag = value;
183
- break;
184
- case ConstInterface.MG_ATTR_PATH_PARENT_TASK:
185
- this._pathParentTaskTag = value;
186
- break;
187
- case ConstInterface.MG_ATTR_SUBFORM_CTRL:
188
- this._subformCtrlName = value;
189
- break;
190
- case XMLConstants.MG_ATTR_DITIDX:
191
- this._ditIdx = XmlParser.getInt(value);
192
- break;
193
- case ConstInterface.MG_ATTR_MODAL:
194
- this._isModal = (value[0] === '1');
195
- break;
196
- case ConstInterface.MG_ATTR_TRANS_OWNER:
197
- this._transOwner = value;
198
- break;
199
- case ConstInterface.MG_ATTR_NEWID:
200
- this._newId = NString.TrimEnd(value);
201
- break;
202
- case ConstInterface.MG_ATTR_KEY:
203
- this._key = value;
204
- break;
205
- case ConstInterface.MG_ATTR_ARGLIST:
206
- this._varList = new ArgumentsList();
207
- this._varList.fillList(value, AccessHelper.mgDataTable.GetTaskByID(this.TaskTag));
208
- break;
209
- case ConstInterface.MG_ATTR_OBJECT:
210
- this.Obj = value;
211
- break;
212
- case ConstInterface.MG_ATTR_IS_ROUTE:
213
- this._isRoute = (value[0] === '1');
214
- break;
215
- default:
216
- super.HandleAttribute(attribute, value);
217
- break;
218
- }
219
- }
220
- }
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3BlblVSTENvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L09wZW5VUkxDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzVFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDMUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRTlDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFHdEQsTUFBTSxPQUFPLGNBQWUsU0FBUSx5QkFBeUI7SUFDbkQsZUFBZSxHQUFXLElBQUksQ0FBQztJQUMv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QUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQVksWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzVGLE1BQU07WUFDUixLQUFLLGNBQWMsQ0FBQyxjQUFjO2dCQUNoQyxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztnQkFDakIsTUFBTTtZQUNSLEtBQUssY0FBYyxDQUFDLGdCQUFnQjtnQkFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDbkMsTUFBTTtZQUNSO2dCQUNFLEtBQUssQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxNQUFNO1NBQ1Q7SUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEZWJ1ZywgSW50MzIsIExpc3QsIE5TdHJpbmd9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0ludGVybmFsSW50ZXJmYWNlLCBYTUxDb25zdGFudHMsIFhtbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtDbGllbnRUYXJnZXRlZENvbW1hbmRCYXNlfSBmcm9tIFwiLi9DbGllbnRUYXJnZXRlZENvbW1hbmRCYXNlXCI7XHJcbmltcG9ydCB7QXJndW1lbnRzTGlzdH0gZnJvbSBcIi4uLy4uL3J0L0FyZ3VtZW50c0xpc3RcIjtcclxuaW1wb3J0IHtNR0RhdGF9IGZyb20gXCIuLi8uLi90YXNrcy9NR0RhdGFcIjtcclxuaW1wb3J0IHtNZ0NvbnRyb2x9IGZyb20gXCIuLi8uLi9ndWkvTWdDb250cm9sXCI7XHJcbmltcG9ydCB7TWdGb3JtfSBmcm9tIFwiLi4vLi4vZ3VpL01nRm9ybVwiO1xyXG5pbXBvcnQge09wZW5pbmdUYXNrRGV0YWlsc30gZnJvbSBcIi4uLy4uL3Rhc2tzL1Rhc2tCYXNlXCI7XHJcbmltcG9ydCB7IFRhc2tCYXNlfSBmcm9tIFwiLi4vLi4vdGFza3MvVGFza0Jhc2VcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uLy4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7SVJlc3VsdFZhbHVlfSBmcm9tIFwiLi4vLi4vcnQvSVJlc3VsdFZhbHVlXCI7XHJcbmltcG9ydCB7IExhc3RGb2N1c2VkTWFuYWdlciB9IGZyb20gXCIuLi8uLi9ydC9MYXN0Rm9jdXNlZE1hbmFnZXJcIjtcclxuaW1wb3J0IHsgUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3IgfSBmcm9tIFwiLi4vLi4vcmVtb3RlL1JlbW90ZUNvbW1hbmRzUHJvY2Vzc29yXCI7XHJcbmltcG9ydCB7IFRhc2sgfSBmcm9tIFwiLi4vLi4vdGFza3MvVGFza1wiO1xyXG5pbXBvcnQgeyBBY2Nlc3NIZWxwZXIgfSBmcm9tIFwiLi4vLi4vQWNjZXNzSGVscGVyXCI7XHJcbmltcG9ydCB7TWdDb250cm9sVHlwZX0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtSdW5UaW1lRXZlbnR9IGZyb20gJy4uLy4uL2V2ZW50L1J1blRpbWVFdmVudCc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIE9wZW5VUkxDb21tYW5kIGV4dGVuZHMgQ2xpZW50VGFyZ2V0ZWRDb21tYW5kQmFzZSB7XHJcbiAgcHJpdmF0ZSBfY2FsbGluZ1Rhc2tUYWc6IHN0cmluZyA9IG51bGw7ICAvLyBpcyB0aGUgaWQgb2YgdGhlIHRhc2sgdGhhdCBjYWxsZWQgdGhlIG5ldyB3aW5kb3dcclxuICBwcml2YXRlIF9wYXRoUGFyZW50VGFza1RhZzogc3RyaW5nID0gbnVsbDsgLy8gaXMgdGhlIGlkIG9mIHBhdGggcGFyZW50IHRhc2sgdGFnXHJcbiAgcHJpdmF0ZSBfc3ViZm9ybUN0cmxOYW1lOiBzdHJpbmcgPSBudWxsOyAvLyBTdWJmb3JtIGNvbnRyb2wgbmFtZSBmb3IgRGVzdGluYXRpb24gU3ViZm9ybVxyXG4gIHByaXZhdGUgX2RpdElkeDogbnVtYmVyID0gSW50MzIuTWluVmFsdWU7XHJcbiAgcHJpdmF0ZSBfaXNNb2RhbDogYm9vbGVhbiA9IHRydWU7IC8vIFl8TlxyXG4gIHByaXZhdGUgX3RyYW5zT3duZXI6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfbmV3SWQ6IHN0cmluZyA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfZm9yY2VNb2RhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2tleTogc3RyaW5nID0gbnVsbDtcclxuICBwcml2YXRlIF92YXJMaXN0OiBBcmd1bWVudHNMaXN0ID0gbnVsbDtcclxuICBwcml2YXRlIF9pc1JvdXRlOiBib29sZWFuID0gZmFsc2U7IC8vIFl8TlxyXG4gIE5ld1Rhc2tYTUw6IHN0cmluZyA9IG51bGw7XHJcbiAgc3RhdGljIGNyZWF0ZU5ld0NvbW1hbmRzVGFibGUgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgSXNCbG9ja2luZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc01vZGFsICYmIHRoaXMuX3N1YmZvcm1DdHJsTmFtZSA9PT0gbnVsbDtcclxuICB9XHJcblxyXG4gIGFzeW5jIEV4ZWN1dGUocmVzOiBJUmVzdWx0VmFsdWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCBtZ2Q6IE1HRGF0YSA9IG51bGw7XHJcbiAgICBsZXQgZGVzdGluYXRpb25TdWJmb3JtU3VjY2VlZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBsZXQgcmVmcmVzaFdoZW5IaWRkZW46IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgbGV0IG1nZElEOiBudW1iZXIgPSAwO1xyXG4gICAgbGV0IHN1YmZvcm1DdHJsOiBNZ0NvbnRyb2wgPSBudWxsO1xyXG4gICAgbGV0IG9sZFRpbWVyczogTGlzdDxudW1iZXI+ID0gbmV3IExpc3Q8bnVtYmVyPigpLCBuZXdUaW1lcnMgPSBuZXcgTGlzdDxudW1iZXI+KCk7XHJcbiAgICBsZXQgbW92ZVRvRmlyc3RDb250cm9sOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGxldCBndWlQYXJlbnRUYXNrOiBUYXNrQmFzZTtcclxuICAgIGxldCBndWlQYXJlbnRNZ0RhdGE6IE1HRGF0YSA9IG51bGw7XHJcbiAgICBsZXQgY2FsbGluZ1Rhc2s6IFRhc2tCYXNlID0gKHRoaXMuX2NhbGxpbmdUYXNrVGFnICE9IG51bGwgPyA8VGFza0Jhc2U+QWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLkdldFRhc2tCeUlEKHRoaXMuX2NhbGxpbmdUYXNrVGFnKSA6IG51bGwpO1xyXG4gICAgbGV0IHBhdGhQYXJlbnRUYXNrOiBUYXNrQmFzZSA9ICh0aGlzLl9wYXRoUGFyZW50VGFza1RhZyAhPSBudWxsID8gPFRhc2tCYXNlPkFjY2Vzc0hlbHBlci5tZ0RhdGFUYWJsZS5HZXRUYXNrQnlJRCh0aGlzLl9wYXRoUGFyZW50VGFza1RhZykgOiBudWxsKTtcclxuXHJcbiAgICAvLyBXaGVuIGEgbm9uT2ZmbGluZSB0YXNrIHdhcyBjYWxsZWQgZnJvbSBhbiBPZmZsaW5lIHRhc2sgKG9mIGNvdXJzZSB2aWEgTVAgZXZlbnQpLFxyXG4gICAgLy8gdGhlIGNhbGxpbmcgdGFzayBpZCB3YXMgbm90IHNlbnQgdG8gdGhlIHNlcnZlciBiZWNhdXNlIHRoZSBzZXJ2ZXIgaXMgdW5hd2FyZSBvZiB0aGVcclxuICAgIC8vIG9mZmxpbmUgdGFzay4gU28sIHdoZW4gY29taW5nIGJhY2sgZnJvbSB0aGUgc2VydmVyLCBhc3NpZ24gdGhlIGNvcnJlY3QgY2FsbGluZyB0YXNrLlxyXG4gICAgLy8gVGFza0Jhc2UgbGFzdEZvY3VzZWRUYXNrID0gQ2xpZW50TWFuYWdlci5JbnN0YW5jZS5nZXRMYXN0Rm9jdXNlZFRhc2soKTtcclxuICAgIC8vIGlmIChsYXN0Rm9jdXNlZFRhc2sgIT0gbnVsbCAmJiBsYXN0Rm9jdXNlZFRhc2suSXNPZmZsaW5lKVxyXG4gICAgLy8gICBfY2FsbGluZ1Rhc2tUYWcgPSBsYXN0Rm9jdXNlZFRhc2suZ2V0VGFza1RhZygpO1xyXG5cclxuICAgIGd1aVBhcmVudFRhc2sgPSBjYWxsaW5nVGFzayA9IDxUYXNrQmFzZT5BY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuR2V0VGFza0J5SUQodGhpcy5fY2FsbGluZ1Rhc2tUYWcpO1xyXG5cclxuICAgIC8vIGRpdElkeCBpcyBzZW5kIGJ5IHNlcnZlciBvbmx5IGZvciBzdWJmb3JtIG9wZW5pbmcgZm9yIHJlZnJlc2hXaGVuSGlkZGVuXHJcbiAgICBpZiAoKCFOU3RyaW5nLklzTnVsbE9yRW1wdHkodGhpcy5fc3ViZm9ybUN0cmxOYW1lKSkgfHwgKHRoaXMuX2RpdElkeCAhPT0gSW50MzIuTWluVmFsdWUpIHx8IHRoaXMuX2lzUm91dGUpIHtcclxuICAgICAgaWYgKHRoaXMuX2lzUm91dGUgJiYgTlN0cmluZy5Jc051bGxPckVtcHR5KHRoaXMuX3N1YmZvcm1DdHJsTmFtZS50cmltKCkpKSB7XHJcbiAgICAgICAgc3ViZm9ybUN0cmwgPSA8TWdDb250cm9sPmNhbGxpbmdUYXNrLmdldEZvcm0oKS5EZWZhdWx0Um91dGVyT3V0bGV0O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICghY2FsbGluZ1Rhc2suSXNJbnRlcmFjdGl2ZSkge1xyXG4gICAgICAgICAgZm9yIChsZXQgcGFyZW50VGFzazogVGFza0Jhc2UgPSBjYWxsaW5nVGFzazsgcGFyZW50VGFzay5nZXRGb3JtKCkgIT0gbnVsbDsgcGFyZW50VGFzayA9IHBhcmVudFRhc2suZ2V0UGFyZW50KCkpIHtcclxuICAgICAgICAgICAgc3ViZm9ybUN0cmwgPSA8TWdDb250cm9sPnBhcmVudFRhc2suZ2V0Rm9ybSgpLmdldEN0cmxCeU5hbWUodGhpcy5fc3ViZm9ybUN0cmxOYW1lLCBNZ0NvbnRyb2xUeXBlLkNUUkxfVFlQRV9TVUJGT1JNKTtcclxuICAgICAgICAgICAgaWYgKHN1YmZvcm1DdHJsICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGNhbGxpbmdUYXNrID0gZ3VpUGFyZW50VGFzayA9IHBhcmVudFRhc2s7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgc3ViZm9ybUN0cmwgPSAodGhpcy5fZGl0SWR4ICE9PSBJbnQzMi5NaW5WYWx1ZSA/IDxNZ0NvbnRyb2w+Y2FsbGluZ1Rhc2suZ2V0Rm9ybSgpLmdldEN0cmwodGhpcy5fZGl0SWR4KSA6ICg8TWdGb3JtPmNhbGxpbmdUYXNrLmdldEZvcm0oKSkuZ2V0U3ViRm9ybUN0cmxCeU5hbWUodGhpcy5fc3ViZm9ybUN0cmxOYW1lKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoY2FsbGluZ1Rhc2sgIT0gbnVsbClcclxuICAgICAgbWdkID0gY2FsbGluZ1Rhc2suZ2V0TUdEYXRhKCk7XHJcblxyXG4gICAgaWYgKHN1YmZvcm1DdHJsICE9IG51bGwpIHtcclxuICAgICAgbGV0IHN1YmZvcm1UYXNrOiBUYXNrQmFzZSA9IDxUYXNrQmFzZT5zdWJmb3JtQ3RybC5nZXRTdWJmb3JtVGFzaygpO1xyXG4gICAgICBndWlQYXJlbnRUYXNrID0gPFRhc2tCYXNlPnN1YmZvcm1DdHJsLmdldEZvcm0oKS5nZXRUYXNrKCk7XHJcbiAgICAgIG1nZElEID0gZ3VpUGFyZW50VGFzay5nZXRNZ2RJRCgpO1xyXG4gICAgICBndWlQYXJlbnRNZ0RhdGEgPSBndWlQYXJlbnRUYXNrLmdldE1HRGF0YSgpO1xyXG4gICAgICBpZiAoZ3VpUGFyZW50TWdEYXRhLmdldFRpbWVySGFuZGxlcnMoKSAhPSBudWxsKVxyXG4gICAgICAgIG9sZFRpbWVycyA9IGd1aVBhcmVudE1nRGF0YS5nZXRUaW1lckhhbmRsZXJzKCkuZ2V0VGltZXJzVmVjdG9yKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5fZGl0SWR4ICE9PSBJbnQzMi5NaW5WYWx1ZSkgeyAvLyBmb3IgcmVmcmVzaCB3aGVuIGhpZGRlblxyXG4gICAgICAgIHJlZnJlc2hXaGVuSGlkZGVuID0gZmFsc2U7XHJcbiAgICAgICAgbW92ZVRvRmlyc3RDb250cm9sID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7IC8vIGZvciBkZXN0aW5hdGlvblxyXG4gICAgICAgIGRlc3RpbmF0aW9uU3ViZm9ybVN1Y2NlZWRlZCA9IHRydWU7XHJcbiAgICAgICAgLy8gUGFzcyB0cmFuc2FjdGlvbiBvd25lcnNoaXBcclxuICAgICAgICBpZiAodGhpcy5fdHJhbnNPd25lciAhPSBudWxsKSB7XHJcbiAgICAgICAgICBsZXQgbmV3VHJhbnNPd25lclRhc2sgPSA8VGFza0Jhc2U+QWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLkdldFRhc2tCeUlEKHRoaXMuX3RyYW5zT3duZXIpO1xyXG4gICAgICAgICAgaWYgKG5ld1RyYW5zT3duZXJUYXNrICE9IG51bGwpXHJcbiAgICAgICAgICAgIG5ld1RyYW5zT3duZXJUYXNrLnNldFRyYW5zT3duZXJUYXNrKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzdWJmb3JtVGFzayAhPSBudWxsKSB7XHJcbiAgICAgICAgICBzdWJmb3JtVGFzay5zZXREZXN0aW5hdGlvblN1YmZvcm0odHJ1ZSk7XHJcbiAgICAgICAgICBhd2FpdCBzdWJmb3JtVGFzay5zdG9wKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghTWdDb250cm9sLnZhbGlkUmV0dXJuVG9DdHJsKCkpXHJcbiAgICAgICAgICAgTWdDb250cm9sLlJldHVyblRvQ3RybCA9IExhc3RGb2N1c2VkTWFuYWdlci5nZXRMYXN0Rm9jdXNlZENvbnRyb2woKTtcclxuICAgICAgfVxyXG4gICAgICBzdWJmb3JtQ3RybC5zZXRTdWJmb3JtVGFza0lkKHRoaXMuX25ld0lkKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcGFyZW50TWdEYXRhOiBNR0RhdGE7XHJcbiAgICBpZiAoY2FsbGluZ1Rhc2sgPT0gbnVsbClcclxuICAgICAgcGFyZW50TWdEYXRhID0gQWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLmdldE1HRGF0YSgwKTtcclxuICAgIGVsc2VcclxuICAgICAgcGFyZW50TWdEYXRhID0gY2FsbGluZ1Rhc2suZ2V0TUdEYXRhKCk7XHJcblxyXG4gICAgaWYgKCFkZXN0aW5hdGlvblN1YmZvcm1TdWNjZWVkZWQgJiYgcmVmcmVzaFdoZW5IaWRkZW4pIHtcclxuICAgICAgbWdkSUQgPSBBY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuZ2V0QXZhaWxhYmxlSWR4KCk7XHJcbiAgICAgIERlYnVnLkFzc2VydChtZ2RJRCA+IDApO1xyXG4gICAgICBtZ2QgPSBuZXcgTUdEYXRhKCBPcGVuVVJMQ29tbWFuZC5jcmVhdGVOZXdDb21tYW5kc1RhYmxlKCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIE9wZW5VUkxDb21tYW5kLmNyZWF0ZU5ld0NvbW1hbmRzVGFibGUoKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWdkSUQsIHBhcmVudE1nRGF0YSwgdGhpcy5faXNNb2RhbCwgdGhpcy5fZm9yY2VNb2RhbCk7XHJcbiAgICAgIG1nZC5jb3B5VW5mcmFtZWRDbWRzKCk7XHJcbiAgICAgIGF3YWl0IEFjY2Vzc0hlbHBlci5tZ0RhdGFUYWJsZS5hZGRNR0RhdGEobWdkLCBtZ2RJRCwgZmFsc2UpO1xyXG5cclxuICAgICAgQWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLmN1cnJNZ2RJRCA9IG1nZElEO1xyXG4gICAgfVxyXG4gICAgdGhpcy5PYmogPSB0aGlzLl9rZXk7XHJcbiAgICB0aGlzLl9rZXkgPSBudWxsO1xyXG4gICAgdHJ5IHtcclxuXHJcbiAgICAgIC8vIFRPRE8gOiBjaGVjayBpZiB3ZSBuZWVkIHRvIGZvcmNlIEdhcmJhZ2VDb2xsZWN0aW9uXHJcbiAgICAgIC8vIFRPRE8gOiBjaGVjayB0aGlzIG91dCA6ICBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNzMyMTk5Ny9ob3ctdG8tcmVxdWVzdC10aGUtZ2FyYmFnZS1jb2xsZWN0b3ItaW4tbm9kZS1qcy10by1ydW5cclxuICAgICAgLy8gaWYgKEdDLkdldFRvdGFsTWVtb3J5KGZhbHNlKSA+IDMwMDAwMDAwKVxyXG4gICAgICAvLyAgIEdDLkNvbGxlY3QoKTtcclxuICAgICAgYXdhaXQgUmVtb3RlQ29tbWFuZHNQcm9jZXNzb3IuR2V0SW5zdGFuY2UoKS5Qcm9jZXNzUmVzcG9uc2UodGhpcy5OZXdUYXNrWE1MLCBtZ2RJRCwgbmV3IE9wZW5pbmdUYXNrRGV0YWlscyhjYWxsaW5nVGFzaywgcGF0aFBhcmVudFRhc2spLCBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICBmaW5hbGx5IHtcclxuICAgICAgQWNjZXNzSGVscGVyLmV2ZW50c01hbmFnZXIuc2V0SWdub3JlVW5rbm93bkFib3J0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGVzdGluYXRpb25TdWJmb3JtU3VjY2VlZGVkIHx8ICFyZWZyZXNoV2hlbkhpZGRlbikge1xyXG4gICAgICBzdWJmb3JtQ3RybC5pbml0U3ViZm9ybVRhc2soKTtcclxuXHJcbiAgICAgIGlmIChkZXN0aW5hdGlvblN1YmZvcm1TdWNjZWVkZWQpIHtcclxuICAgICAgICBsZXQgc3ViZm9ybVRhc2s6IFRhc2tCYXNlID0gPFRhc2tCYXNlPnN1YmZvcm1DdHJsLmdldFN1YmZvcm1UYXNrKCk7XHJcbiAgICAgICAgbW92ZVRvRmlyc3RDb250cm9sID0gIWNhbGxpbmdUYXNrLlJldGFpbkZvY3VzO1xyXG4gICAgICAgIHN1YmZvcm1UYXNrLnNldElzRGVzdGluYXRpb25DYWxsKHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGlzU3ViZm9ybU1vZGFsOiBib29sZWFuID0gZmFsc2U7XHJcblx0ICBsZXQgcHJldk1nRGF0YUlzTW9kYWwgPSBtZ2QuSXNNb2RhbDtcclxuXHJcbiAgICBpZiAoc3ViZm9ybUN0cmwgIT0gbnVsbCkge1xyXG4gICAgICBpZiAoZ3VpUGFyZW50TWdEYXRhLmdldFRpbWVySGFuZGxlcnMoKSAhPSBudWxsKVxyXG4gICAgICAgIG5ld1RpbWVycyA9IGd1aVBhcmVudE1nRGF0YS5nZXRUaW1lckhhbmRsZXJzKCkuZ2V0VGltZXJzVmVjdG9yKCk7XHJcbiAgICAgIGd1aVBhcmVudE1nRGF0YS5jaGFuZ2VUaW1lcnMob2xkVGltZXJzLCBuZXdUaW1lcnMpO1xyXG5cdCAgaWYgKHN1YmZvcm1DdHJsLklzTW9kYWwoKSlcclxuXHRcdHRoaXMuX2lzTW9kYWwgPSBpc1N1YmZvcm1Nb2RhbCA9IG1nZC5Jc01vZGFsID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGxldCBub25JbnRlcmFjdGl2ZVRhc2s6IFRhc2tCYXNlID0gYXdhaXQgVGFzay5TdGFydFByb2dyYW0oZGVzdGluYXRpb25TdWJmb3JtU3VjY2VlZGVkLCBtb3ZlVG9GaXJzdENvbnRyb2wpO1xyXG4gICAgLy8gaW4gbG9jYWwgdGFza3MsIGlzbW9kYWwgaXMgY2FsY3VsYXRlZCBhZnRlciB0aGUgbWFpbiBkaXNwbGF5LCBzbyB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgY29tbWFuZCBtZW1iZXJcclxuICAgIGlmICghaXNTdWJmb3JtTW9kYWwpXHJcbiAgICAgIHRoaXMuX2lzTW9kYWwgPSBtZ2QuSXNNb2RhbDtcclxuXHJcbiAgICAvLyBUaGlzIGlzIGJlY2F1c2Ugd2UgY2Fubm90IGFsbG93IHRoZSB0YXNrcyBhYm92ZSBpdCB0byBjYXRjaCBldmVudHMuXHJcbiAgICBpZiAobm9uSW50ZXJhY3RpdmVUYXNrID09IG51bGwpIHtcclxuICAgICAgLy8gYSBub24gaW50ZXJhY3RpdmUgcGFyZW50IHdpbGwgY2F1c2UgdGhlIGNhbGxlZCB0YXNrIHRvIGJlaGF2ZSBsaWtlIG1vZGFsIGJ5IGhhdmluZyBpdHMgb3duIGV2ZW50cyBsb29wLlxyXG4gICAgICAvLyBJbiBjYXNlIG9mIG1haW4gcHJvZ3JhbSBjYWxsZXIgKHdoaWNoIGlzIGZsYWdnZWQgYXMgbm9uIGludGVyYWN0aXZlKSB3ZSB3aWxsIGhhdmUgYSBuZXcgZXZlbnRzIGxvb3AgZm9yIHRoZSBjYWxsZWQgcHJvZ3JhbVxyXG4gICAgICAvLyBpZiB0aGUgbWFpbiBwcm9ncmFtIGlzIHdpdGhvdXQgYSBmb3JtLiBJZiB0aGUgbWFpbiBwcm9nIGhhcyBhIGZvcm0gLCB0aGVuIHRoZSBjYWxsZWUgY2FuIGJlIGluY2x1ZGVkIGluIHRoZSBtYWluIHByb2cgbG9vcC5cclxuICAgICAgLy8gaWYgc3ViZm9ybSBpcyBNb2RhbCwgZW50ZXIgaW4gc2VwYXJhdGUgZXZlbnRsb29wIHRvIGdldCBNb2RhbGl0eSBiZWhhdmlvclxyXG4gICAgICBpZiAoY2FsbGluZ1Rhc2sgIT0gbnVsbCAmJiAoKHRoaXMuX2lzTW9kYWwgJiYgKGlzU3ViZm9ybU1vZGFsIHx8ICFkZXN0aW5hdGlvblN1YmZvcm1TdWNjZWVkZWQpICYmIHJlZnJlc2hXaGVuSGlkZGVuKSB8fCAoIWNhbGxpbmdUYXNrLklzSW50ZXJhY3RpdmUgJiYgKCFjYWxsaW5nVGFzay5pc01haW5Qcm9nKCkgfHwgY2FsbGluZ1Rhc2suZ2V0Rm9ybSgpID09IG51bGwpKSkpIHtcclxuICAgICAgICBpZiAodGhpcy5faXNNb2RhbCkge1xyXG4gICAgICAgICAgLy8gcmVmcmVzaCBhbGwgdGFza3MgZGF0YSBiZWZvcmUgb3BlbmluZyBtb2RhbCB3aW5kb3cuIEJlY2F1c2Ugb25jZSB0aGUgd2luZG93IGlzIG9wZW5lZCwgcGFyZW50IHRhc2snc1xyXG4gICAgICAgICAgLy8gZGF0YSB3aWxsIG5vdCBiZSByZWZyZXNoZWQgdW50aWwgdGhlIG1vZGFsIHdpbmRvdyBpcyBjbG9zZWQgYW5kIG1vZGFsIHdpbmRvdyB0YXNrIHdpbGwgbm90IGdldCB0aGUgbGF0ZXN0XHJcbiAgICAgICAgICAvLyBwYXJlbnQgZGF0YS5cclxuXHJcbiAgICAgICAgICBBY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuc3RhcnRUYXNrc0l0ZXJhdGlvbigpO1xyXG4gICAgICAgICAgICBsZXQgdGFzazogVGFza0Jhc2U7XHJcbiAgICAgICAgICAgIHdoaWxlICgodGFzayA9IDxUYXNrQmFzZT5BY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuZ2V0TmV4dFRhc2soKSkgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICBsZXQgZGF0YVZpZXdXYXNSZXRyaWV2ZWQ6IGJvb2xlYW4gPSB0YXNrLkRhdGFWaWV3V2FzUmV0cmlldmVkO1xyXG4gICAgICAgICAgICAgIGlmIChkYXRhVmlld1dhc1JldHJpZXZlZCkge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGFzay5SZWZyZXNoRGlzcGxheSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYXdhaXQgQWNjZXNzSGVscGVyLmV2ZW50c01hbmFnZXIuRXZlbnRzTG9vcChtZ2QpO1xyXG5cclxuICAgICAgICAgIC8vYWZ0ZXIgY2xvc2luZyBtb2RhbCBzdWJmb3JtIGF0c2ssIGl0IGNvbWVzIG91dCBvZiBldmVudCBsb29wICwgc2V0IG1nZC5Jc0Fib3J0aW5nPSBmYWxzZS5cclxuICAgICAgICAgIC8vcmUtc3RvcmUgbWdkLklzTW9kYWwgYmFjayB0byBpdCdzIG9yaWdpbmFsIHZhbHVlLlxyXG4gICAgICAgICAgaWYgKGlzU3ViZm9ybU1vZGFsKVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBtZ2QuSXNBYm9ydGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBtZ2QuSXNNb2RhbCA9IHByZXZNZ0RhdGFJc01vZGFsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlXHJcbiAgICAgIGF3YWl0IEFjY2Vzc0hlbHBlci5ldmVudHNNYW5hZ2VyLk5vbkludGVyYWN0aXZlRXZlbnRzTG9vcChtZ2QsIG5vbkludGVyYWN0aXZlVGFzayk7XHJcblxyXG4gICAgLy8gaWYgdGhlcmUgaXMgcGVuZGluZyBldmVudCB3aGljaCBjYXVzZWQgY2xvc3VyZSBvZiBtb2RhbCBzdWJmb3JtLCBhZGQgaXQgaW4gcXVldWUgbm93LlxyXG4gICAgaWYgKEFjY2Vzc0hlbHBlci5ldmVudHNNYW5hZ2VyLmdldFBlbmRpbmdHdWlFdmVudCgpIT0gbnVsbCAmJiAoaXNTdWJmb3JtTW9kYWwgfHwgbm9uSW50ZXJhY3RpdmVUYXNrICE9IG51bGwpKVxyXG4gICAge1xyXG4gICAgICBsZXQgZ3VpRXZlbnQgPSBBY2Nlc3NIZWxwZXIuZXZlbnRzTWFuYWdlci5nZXRQZW5kaW5nR3VpRXZlbnQoKTtcclxuICAgICAgLy8gY2hlY2sgaWYgdHJ1ZSBjYWxsZXIgaXMgbm9uLWludGVyYWN0aXZlIHRhc2sgPyBpZiBzbyAuLi5NR19BQ1RfQ0xPU0Ugc2hvdWxkIGJlIGFkZGVkXHJcbiAgICAgIGlmIChndWlFdmVudC5nZXRUYXNrKCkgIT0gY2FsbGluZ1Rhc2sgfHwgdGhpcy5fY2FsbGluZ1Rhc2tUYWcgIT09IGNhbGxpbmdUYXNrLmdldFRhc2tUYWcoKSkge1xyXG5cclxuICAgICAgICBjYWxsaW5nVGFzayA9IDxUYXNrPkFjY2Vzc0hlbHBlci5tZ0RhdGFUYWJsZS5HZXRUYXNrQnlJRCh0aGlzLl9jYWxsaW5nVGFza1RhZyk7XHJcbiAgICAgICAgLy8gSWYgY2FsbGluZyB0YXNrIGlzIGNhbGxlZCBieSBjYWxsIGRlc3RpbmF0aW9uIHRoZW4gY2xvc2UgaXQgYnkgcGVyZm9ybVN1YmZvcm1DbG9zZSgpLlxyXG4gICAgICAgIGlmICgoPFRhc2s+Y2FsbGluZ1Rhc2spLmdldElzRGVzdGluYXRpb25DYWxsKCkpIHtcclxuICAgICAgICAgIGxldCBzdWJmb3JtQ3RybDogTWdDb250cm9sID0gPE1nQ29udHJvbD5jYWxsaW5nVGFzay5nZXRGb3JtKCkuZ2V0U3ViRm9ybUN0cmwoKTtcclxuICAgICAgICAgIGF3YWl0IEFjY2Vzc0hlbHBlci5ldmVudHNNYW5hZ2VyLnBlcmZvcm1TdWJmb3JtQ2xvc2UoPE1nQ29udHJvbD5zdWJmb3JtQ3RybCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHJ0RXZ0ID0gbmV3IFJ1blRpbWVFdmVudChjYWxsaW5nVGFzayk7XHJcbiAgICAgICAgICBydEV2dC5zZXRJbnRlcm5hbChJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ0xPU0UpO1xyXG4gICAgICAgICAgcnRFdnQuc2V0Q3RybChudWxsKTtcclxuICAgICAgICAgIHJ0RXZ0LnNldEFyZ0xpc3QobnVsbCk7XHJcbiAgICAgICAgICBBY2Nlc3NIZWxwZXIuZXZlbnRzTWFuYWdlci5hZGRUb1RhaWwocnRFdnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBBY2Nlc3NIZWxwZXIuZXZlbnRzTWFuYWdlci5hZGRUb1RhaWwoZ3VpRXZlbnQpO1xyXG4gICAgICAgIEFjY2Vzc0hlbHBlci5ldmVudHNNYW5hZ2VyLnNldFBlbmRpbmdHdWlFdmVudChudWxsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEhhbmRsZUF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChhdHRyaWJ1dGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0NBTExJTkdUQVNLOlxyXG4gICAgICAgIHRoaXMuX2NhbGxpbmdUYXNrVGFnID0gdmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9QQVRIX1BBUkVOVF9UQVNLOlxyXG4gICAgICAgIHRoaXMuX3BhdGhQYXJlbnRUYXNrVGFnID0gdmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9TVUJGT1JNX0NUUkw6XHJcbiAgICAgICAgdGhpcy5fc3ViZm9ybUN0cmxOYW1lID0gdmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgWE1MQ29uc3RhbnRzLk1HX0FUVFJfRElUSURYOlxyXG4gICAgICAgIHRoaXMuX2RpdElkeCA9IFhtbFBhcnNlci5nZXRJbnQodmFsdWUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTU9EQUw6XHJcbiAgICAgICAgdGhpcy5faXNNb2RhbCA9ICh2YWx1ZVswXSA9PT0gJzEnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RSQU5TX09XTkVSOlxyXG4gICAgICAgIHRoaXMuX3RyYW5zT3duZXIgPSB2YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX05FV0lEOlxyXG4gICAgICAgIHRoaXMuX25ld0lkID0gTlN0cmluZy5UcmltRW5kKHZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0tFWTpcclxuICAgICAgICB0aGlzLl9rZXkgPSB2YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX0FSR0xJU1Q6XHJcbiAgICAgICAgdGhpcy5fdmFyTGlzdCA9IG5ldyBBcmd1bWVudHNMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5fdmFyTGlzdC5maWxsTGlzdCh2YWx1ZSwgPFRhc2tCYXNlPkFjY2Vzc0hlbHBlci5tZ0RhdGFUYWJsZS5HZXRUYXNrQnlJRCh0aGlzLlRhc2tUYWcpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX09CSkVDVDpcclxuICAgICAgICB0aGlzLk9iaiA9IHZhbHVlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSVNfUk9VVEU6XHJcbiAgICAgICAgdGhpcy5faXNSb3V0ZSA9ICh2YWx1ZVswXSA9PT0gJzEnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBzdXBlci5IYW5kbGVBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { ClientTargetedCommandBase } from './ClientTargetedCommandBase';
2
- import { DataViewCommandType } from '../ClientToServer/DataviewCommand';
3
- import { CommandFactory } from '../ClientToServer/CommandFactory';
4
- import { AccessHelper } from '../../AccessHelper';
5
- export class ResetLocateCommand extends ClientTargetedCommandBase {
6
- constructor() {
7
- super();
8
- }
9
- async Execute(res) {
10
- let task = AccessHelper.mgDataTable.GetTaskByID(this.TaskTag);
11
- let command = CommandFactory.CreateDataViewCommand(this.TaskTag, DataViewCommandType.ResetUserLocate);
12
- await task.DataviewManager.Execute(command);
13
- }
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRMb2NhdGVDb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9jb21tYW5kcy9TZXJ2ZXJUb0NsaWVudC9SZXNldExvY2F0ZUNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHdEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUtsRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEseUJBQXlCO0lBRS9EO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBTUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFpQjtRQUM3QixJQUFJLElBQUksR0FBZSxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUUsSUFBSSxPQUFPLEdBQW1CLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RILE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGllbnRUYXJnZXRlZENvbW1hbmRCYXNlfSBmcm9tICcuL0NsaWVudFRhcmdldGVkQ29tbWFuZEJhc2UnO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gJy4uLy4uL3Rhc2tzL1Rhc2snO1xyXG5pbXBvcnQge0lSZXN1bHRWYWx1ZX0gZnJvbSAnLi4vLi4vcnQvSVJlc3VsdFZhbHVlJztcclxuaW1wb3J0IHtEYXRhVmlld0NvbW1hbmRUeXBlfSBmcm9tICcuLi9DbGllbnRUb1NlcnZlci9EYXRhdmlld0NvbW1hbmQnO1xyXG5pbXBvcnQge0NvbW1hbmRGYWN0b3J5fSBmcm9tICcuLi9DbGllbnRUb1NlcnZlci9Db21tYW5kRmFjdG9yeSc7XHJcbmltcG9ydCB7SUNsaWVudENvbW1hbmR9IGZyb20gJy4uL0lDbGllbnRDb21tYW5kJztcclxuaW1wb3J0IHsgQWNjZXNzSGVscGVyIH0gZnJvbSAnLi4vLi4vQWNjZXNzSGVscGVyJztcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIFJlc2V0TG9jYXRlQ29tbWFuZFxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgUmVzZXRMb2NhdGVDb21tYW5kIGV4dGVuZHMgQ2xpZW50VGFyZ2V0ZWRDb21tYW5kQmFzZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gRXhlY3V0ZSBSZXNldExvY2F0ZSBjb21tYW5kLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmVzXCI+PC9wYXJhbT5cclxuICBhc3luYyBFeGVjdXRlKHJlczogSVJlc3VsdFZhbHVlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgdGFzazogVGFzayA9IDxUYXNrPkFjY2Vzc0hlbHBlci5tZ0RhdGFUYWJsZS5HZXRUYXNrQnlJRCh0aGlzLlRhc2tUYWcpO1xyXG5cclxuICAgIGxldCBjb21tYW5kOiBJQ2xpZW50Q29tbWFuZCA9IENvbW1hbmRGYWN0b3J5LkNyZWF0ZURhdGFWaWV3Q29tbWFuZCh0aGlzLlRhc2tUYWcsIERhdGFWaWV3Q29tbWFuZFR5cGUuUmVzZXRVc2VyTG9jYXRlKTtcclxuICAgIGF3YWl0IHRhc2suRGF0YXZpZXdNYW5hZ2VyLkV4ZWN1dGUoY29tbWFuZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,15 +0,0 @@
1
- import { ClientTargetedCommandBase } from './ClientTargetedCommandBase';
2
- import { CommandFactory } from '../ClientToServer/CommandFactory';
3
- import { DataViewCommandType } from '../ClientToServer/DataviewCommand';
4
- import { AccessHelper } from '../../AccessHelper';
5
- export class ResetRangeCommand extends ClientTargetedCommandBase {
6
- constructor() {
7
- super();
8
- }
9
- async Execute(res) {
10
- let task = AccessHelper.mgDataTable.GetTaskByID(this.TaskTag);
11
- let command = CommandFactory.CreateDataViewCommand(this.TaskTag, DataViewCommandType.ResetUserRange);
12
- await task.DataviewManager.Execute(command);
13
- }
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRSYW5nZUNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2NvbW1hbmRzL1NlcnZlclRvQ2xpZW50L1Jlc2V0UmFuZ2VDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLbEQsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHlCQUF5QjtJQUU5RDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQU1ELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBaUI7UUFFN0IsSUFBSSxJQUFJLEdBQWUsWUFBWSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFFLElBQUksT0FBTyxHQUFtQixjQUFjLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNySCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWVudFRhcmdldGVkQ29tbWFuZEJhc2UgfSBmcm9tICcuL0NsaWVudFRhcmdldGVkQ29tbWFuZEJhc2UnO1xyXG5pbXBvcnQgeyBJUmVzdWx0VmFsdWUgfSBmcm9tICcuLi8uLi9ydC9JUmVzdWx0VmFsdWUnO1xyXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vLi4vdGFza3MvVGFzayc7XHJcbmltcG9ydCB7IElDbGllbnRDb21tYW5kIH0gZnJvbSAnLi4vSUNsaWVudENvbW1hbmQnO1xyXG5pbXBvcnQgeyBDb21tYW5kRmFjdG9yeSB9IGZyb20gJy4uL0NsaWVudFRvU2VydmVyL0NvbW1hbmRGYWN0b3J5JztcclxuaW1wb3J0IHsgRGF0YVZpZXdDb21tYW5kVHlwZSB9IGZyb20gJy4uL0NsaWVudFRvU2VydmVyL0RhdGF2aWV3Q29tbWFuZCc7XHJcbmltcG9ydCB7IEFjY2Vzc0hlbHBlciB9IGZyb20gJy4uLy4uL0FjY2Vzc0hlbHBlcic7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBSZXNldFJhbmdlQ29tbWFuZFxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgUmVzZXRSYW5nZUNvbW1hbmQgZXh0ZW5kcyBDbGllbnRUYXJnZXRlZENvbW1hbmRCYXNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBFeGVjdXRlIFJlc2V0UmFuZ2UgY29tbWFuZC5cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInJlc1wiPjwvcGFyYW0+XHJcbiAgYXN5bmMgRXhlY3V0ZShyZXM6IElSZXN1bHRWYWx1ZSk6IFByb21pc2U8dm9pZD4ge1xyXG5cclxuICAgIGxldCB0YXNrOiBUYXNrID0gPFRhc2s+QWNjZXNzSGVscGVyLm1nRGF0YVRhYmxlLkdldFRhc2tCeUlEKHRoaXMuVGFza1RhZyk7XHJcblxyXG4gICAgbGV0IGNvbW1hbmQ6IElDbGllbnRDb21tYW5kID0gQ29tbWFuZEZhY3RvcnkuQ3JlYXRlRGF0YVZpZXdDb21tYW5kKHRoaXMuVGFza1RhZywgRGF0YVZpZXdDb21tYW5kVHlwZS5SZXNldFVzZXJSYW5nZSk7XHJcbiAgICBhd2FpdCB0YXNrLkRhdGF2aWV3TWFuYWdlci5FeGVjdXRlKGNvbW1hbmQpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,15 +0,0 @@
1
- import { ClientTargetedCommandBase } from './ClientTargetedCommandBase';
2
- import { CommandFactory } from '../ClientToServer/CommandFactory';
3
- import { DataViewCommandType } from '../ClientToServer/DataviewCommand';
4
- import { AccessHelper } from '../../AccessHelper';
5
- export class ResetSortCommand extends ClientTargetedCommandBase {
6
- constructor() {
7
- super();
8
- }
9
- async Execute(res) {
10
- let task = AccessHelper.mgDataTable.GetTaskByID(this.TaskTag);
11
- let command = CommandFactory.CreateDataViewCommand(this.TaskTag, DataViewCommandType.ResetUserSort);
12
- await task.DataviewManager.Execute(command);
13
- }
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzZXRTb3J0Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvUmVzZXRTb3J0Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUd4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSx5QkFBeUI7SUFFN0Q7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQWlCO1FBQzdCLElBQUksSUFBSSxHQUFlLFlBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxRSxJQUFJLE9BQU8sR0FBbUIsY0FBYyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEgsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGllbnRUYXJnZXRlZENvbW1hbmRCYXNlIH0gZnJvbSAnLi9DbGllbnRUYXJnZXRlZENvbW1hbmRCYXNlJztcclxuaW1wb3J0IHsgSVJlc3VsdFZhbHVlIH0gZnJvbSAnLi4vLi4vcnQvSVJlc3VsdFZhbHVlJztcclxuaW1wb3J0IHsgSUNsaWVudENvbW1hbmQgfSBmcm9tICcuLi9JQ2xpZW50Q29tbWFuZCc7XHJcbmltcG9ydCB7IENvbW1hbmRGYWN0b3J5IH0gZnJvbSAnLi4vQ2xpZW50VG9TZXJ2ZXIvQ29tbWFuZEZhY3RvcnknO1xyXG5pbXBvcnQgeyBEYXRhVmlld0NvbW1hbmRUeXBlIH0gZnJvbSAnLi4vQ2xpZW50VG9TZXJ2ZXIvRGF0YXZpZXdDb21tYW5kJztcclxuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uL3Rhc2tzL1Rhc2snO1xyXG5pbXBvcnQgeyBBY2Nlc3NIZWxwZXIgfSBmcm9tICcuLi8uLi9BY2Nlc3NIZWxwZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJlc2V0U29ydENvbW1hbmQgZXh0ZW5kcyBDbGllbnRUYXJnZXRlZENvbW1hbmRCYXNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgRXhlY3V0ZShyZXM6IElSZXN1bHRWYWx1ZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHRhc2s6IFRhc2sgPSA8VGFzaz5BY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuR2V0VGFza0J5SUQodGhpcy5UYXNrVGFnKTtcclxuXHJcbiAgICBsZXQgY29tbWFuZDogSUNsaWVudENvbW1hbmQgPSBDb21tYW5kRmFjdG9yeS5DcmVhdGVEYXRhVmlld0NvbW1hbmQodGhpcy5UYXNrVGFnLCBEYXRhVmlld0NvbW1hbmRUeXBlLlJlc2V0VXNlclNvcnQpO1xyXG4gICAgYXdhaXQgdGFzay5EYXRhdmlld01hbmFnZXIuRXhlY3V0ZShjb21tYW5kKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,37 +0,0 @@
1
- import { ClientTargetedCommandBase } from "./ClientTargetedCommandBase";
2
- import { StorageAttribute, XMLConstants, XmlParser } from "@magic-xpa/utils";
3
- import { ConstInterface } from "../../ConstInterface";
4
- export class ResultCommand extends ClientTargetedCommandBase {
5
- _isNull = false;
6
- _attr = StorageAttribute.NONE;
7
- _val = null;
8
- async Execute(res) {
9
- if (this._isNull)
10
- res.SetResultValue(null, StorageAttribute.NONE);
11
- else {
12
- if (this._val == null)
13
- this._val = "";
14
- res.SetResultValue(this._val, this._attr);
15
- }
16
- }
17
- HandleAttribute(attribute, value) {
18
- switch (attribute) {
19
- case ConstInterface.MG_ATTR_NULL:
20
- this._isNull = (XmlParser.getInt(value) === 1);
21
- break;
22
- case ConstInterface.MG_ATTR_PAR_ATTRS:
23
- this._attr = value[0];
24
- break;
25
- case XMLConstants.MG_ATTR_VALUE:
26
- this._val = XmlParser.unescape(value);
27
- break;
28
- default:
29
- super.HandleAttribute(attribute, value);
30
- break;
31
- }
32
- }
33
- constructor() {
34
- super();
35
- }
36
- }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVzdWx0Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvUmVzdWx0Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTNFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxNQUFNLE9BQU8sYUFBYyxTQUFRLHlCQUF5QjtJQUNsRCxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLEtBQUssR0FBcUIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQ2hELElBQUksR0FBVyxJQUFJLENBQUM7SUFNNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFpQjtRQUU3QixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQ2QsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDN0M7WUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSTtnQkFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDakIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFPTSxlQUFlLENBQUMsU0FBaUIsRUFBRSxLQUFhO1FBQ3JELFFBQVEsU0FBUyxFQUFFO1lBQ2pCLEtBQUssY0FBYyxDQUFDLFlBQVk7Z0JBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNO1lBRVIsS0FBSyxjQUFjLENBQUMsaUJBQWlCO2dCQUNuQyxJQUFJLENBQUMsS0FBSyxHQUFxQixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLE1BQU07WUFFUixLQUFLLFlBQVksQ0FBQyxhQUFhO2dCQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLE1BQU07WUFFUjtnQkFDRSxLQUFLLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDeEMsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVEO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsaWVudFRhcmdldGVkQ29tbWFuZEJhc2V9IGZyb20gXCIuL0NsaWVudFRhcmdldGVkQ29tbWFuZEJhc2VcIjtcclxuaW1wb3J0IHtTdG9yYWdlQXR0cmlidXRlLCBYTUxDb25zdGFudHMsIFhtbFBhcnNlcn0gZnJvbSBcIkBtYWdpYy14cGEvdXRpbHNcIjtcclxuaW1wb3J0IHtJUmVzdWx0VmFsdWV9IGZyb20gXCIuLi8uLi9ydC9JUmVzdWx0VmFsdWVcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uLy4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUmVzdWx0Q29tbWFuZCBleHRlbmRzIENsaWVudFRhcmdldGVkQ29tbWFuZEJhc2Uge1xyXG4gIHByaXZhdGUgX2lzTnVsbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2F0dHI6IFN0b3JhZ2VBdHRyaWJ1dGUgPSBTdG9yYWdlQXR0cmlidXRlLk5PTkU7XHJcbiAgcHJpdmF0ZSBfdmFsOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJleHBcIj48L3BhcmFtPlxyXG4gIGFzeW5jIEV4ZWN1dGUocmVzOiBJUmVzdWx0VmFsdWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIC8vIHNldCB2YWx1ZSB0byAnZ2xvYmFsJyBFeHByZXNzaW9uIHZhcmlhYmxlXHJcbiAgICBpZiAodGhpcy5faXNOdWxsKVxyXG4gICAgICByZXMuU2V0UmVzdWx0VmFsdWUobnVsbCwgU3RvcmFnZUF0dHJpYnV0ZS5OT05FKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5fdmFsID09IG51bGwpXHJcbiAgICAgICAgdGhpcy5fdmFsID0gXCJcIjtcclxuICAgICAgcmVzLlNldFJlc3VsdFZhbHVlKHRoaXMuX3ZhbCwgdGhpcy5fYXR0cik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJhdHRyaWJ1dGVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInZhbHVlXCI+PC9wYXJhbT5cclxuICBwdWJsaWMgSGFuZGxlQXR0cmlidXRlKGF0dHJpYnV0ZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkge1xyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfTlVMTDpcclxuICAgICAgICB0aGlzLl9pc051bGwgPSAoWG1sUGFyc2VyLmdldEludCh2YWx1ZSkgPT09IDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1BBUl9BVFRSUzpcclxuICAgICAgICB0aGlzLl9hdHRyID0gPFN0b3JhZ2VBdHRyaWJ1dGU+dmFsdWVbMF07XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIFhNTENvbnN0YW50cy5NR19BVFRSX1ZBTFVFOlxyXG4gICAgICAgIHRoaXMuX3ZhbCA9IFhtbFBhcnNlci51bmVzY2FwZSh2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHN1cGVyLkhhbmRsZUF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,83 +0,0 @@
1
- import { ClientTargetedCommandBase } from './ClientTargetedCommandBase';
2
- import { NString, RefParam } from '@magic-xpa/mscorelib';
3
- import { Styles } from '@magic-xpa/gui';
4
- import { Logger, MsgInterface, StrUtil, XmlParser } from '@magic-xpa/utils';
5
- import { ConstUtils } from '../../util/ConstUtils';
6
- import { ConstInterface } from '../../ConstInterface';
7
- import { LanguageData } from '../../env/LanguageData';
8
- import { LastFocusedManager } from '../../rt/LastFocusedManager';
9
- import { AccessHelper } from '../../AccessHelper';
10
- import { GUIManager } from "../../GUIManager";
11
- export class VerifyCommand extends ClientTargetedCommandBase {
12
- _callingTaskTag = null;
13
- _title = null;
14
- _errLogAppend = false;
15
- _text = null;
16
- _display = '\0';
17
- _mode = '\0';
18
- constructor() {
19
- super();
20
- }
21
- async Execute(res) {
22
- let errForConsole = StrUtil.getConsoleErorString(this._text);
23
- let task = (AccessHelper.mgDataTable.GetTaskByID(this.TaskTag) || AccessHelper.mgDataTable.GetTaskByID(this._callingTaskTag));
24
- if (task === null)
25
- task = LastFocusedManager.Instance.getLastFocusedTask();
26
- let errLogAppend = this._errLogAppend;
27
- if (errLogAppend)
28
- Logger.Instance.WriteExceptionToLogWithMsg(errForConsole);
29
- if (!NString.IsNullOrEmpty(this._text)) {
30
- if (this._display === ConstInterface.DISPLAY_BOX) {
31
- let style = new RefParam(0);
32
- let errForMsgBox = StrUtil.getMsgBoxErorString(this._text);
33
- let mlsTransText = LanguageData.Instance.translate(errForMsgBox);
34
- let mlsTransTitle = new RefParam(NString.Empty);
35
- this.PrepareMessageBoxForDisplay(task, mlsTransTitle, style);
36
- let returnValue = await GUIManager.Instance.MessageBox(mlsTransTitle.value, mlsTransText, style.value);
37
- await this.ProcessMessageBoxResponse(task, returnValue);
38
- }
39
- else if (this._display === ConstInterface.DISPLAY_STATUS && task != null) {
40
- task.DisplayMessageToStatusBar(errForConsole);
41
- }
42
- }
43
- }
44
- PrepareMessageBoxForDisplay(task, mlsTransTitle, style) {
45
- let options = LanguageData.Instance.getConstMessage(MsgInterface.BRKTAB_STOP_MODE_TITLE);
46
- this._title = ConstUtils.getStringOfOption(options, "EW", this._mode);
47
- mlsTransTitle.value = LanguageData.Instance.translate(this._title);
48
- style.value = Styles.MSGBOX_BUTTON_OK |
49
- ((this._mode === 'E')
50
- ? Styles.MSGBOX_ICON_ERROR
51
- : Styles.MSGBOX_ICON_WARNING);
52
- }
53
- ProcessMessageBoxResponse(task, returnValue) {
54
- }
55
- HandleAttribute(attribute, value) {
56
- switch (attribute) {
57
- case ConstInterface.MG_ATTR_TITLE:
58
- this._title = value;
59
- break;
60
- case ConstInterface.MG_ATTR_CALLINGTASK:
61
- this._callingTaskTag = value;
62
- break;
63
- case ConstInterface.MG_ATTR_ERR_LOG_APPEND:
64
- this._errLogAppend = XmlParser.getBoolean(value);
65
- break;
66
- case ConstInterface.MG_ATTR_TEXT:
67
- this._text = XmlParser.unescape(value);
68
- break;
69
- case ConstInterface.MG_ATTR_DISPLAY:
70
- this._display = value[0];
71
- break;
72
- case ConstInterface.MG_ATTR_MODE:
73
- this._mode = value[0];
74
- break;
75
- case ConstInterface.MG_ATTR_ACK:
76
- break;
77
- default:
78
- super.HandleAttribute(attribute, value);
79
- break;
80
- }
81
- }
82
- }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmVyaWZ5Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvU2VydmVyVG9DbGllbnQvVmVyaWZ5Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxNQUFNLE9BQU8sYUFBYyxTQUFRLHlCQUF5QjtJQUNsRCxlQUFlLEdBQVcsSUFBSSxDQUFDO0lBQ3ZDLE1BQU0sR0FBVyxJQUFJLENBQUM7SUFDZCxhQUFhLEdBQVksS0FBSyxDQUFDO0lBQy9CLEtBQUssR0FBVyxJQUFJLENBQUM7SUFDckIsUUFBUSxHQUFXLElBQUksQ0FBQztJQUN4QixLQUFLLEdBQVcsSUFBSSxDQUFDO0lBRzdCO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBTUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFp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LENBQUMsbUJBQW1CO2dCQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztnQkFDN0IsTUFBTTtZQUVSLEtBQUssY0FBYyxDQUFDLHNCQUFzQjtnQkFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqRCxNQUFNO1lBRVIsS0FBSyxjQUFjLENBQUMsWUFBWTtnQkFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxNQUFNO1lBRVIsS0FBSyxjQUFjLENBQUMsZUFBZTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU07WUFFUixLQUFLLGNBQWMsQ0FBQyxZQUFZO2dCQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsTUFBTTtZQUVSLEtBQUssY0FBYyxDQUFDLFdBQVc7Z0JBQzdCLE1BQU07WUFFUjtnQkFDRSxLQUFLLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDeEMsTUFBTTtTQUNUO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpZW50VGFyZ2V0ZWRDb21tYW5kQmFzZSB9IGZyb20gJy4vQ2xpZW50VGFyZ2V0ZWRDb21tYW5kQmFzZSc7XHJcbmltcG9ydCB7IElSZXN1bHRWYWx1ZSB9IGZyb20gJy4uLy4uL3J0L0lSZXN1bHRWYWx1ZSc7XHJcbmltcG9ydCB7IE5TdHJpbmcsIFJlZlBhcmFtIH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vLi4vdGFza3MvVGFzayc7XHJcbmltcG9ydCB7IFN0eWxlcyB9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuaW1wb3J0IHsgTG9nZ2VyLCBNc2dJbnRlcmZhY2UsIFN0clV0aWwsIFhtbFBhcnNlciB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5pbXBvcnQgeyBDb25zdFV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbC9Db25zdFV0aWxzJztcclxuaW1wb3J0IHsgQ29uc3RJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9Db25zdEludGVyZmFjZSc7XHJcbmltcG9ydCB7IExhbmd1YWdlRGF0YSB9IGZyb20gJy4uLy4uL2Vudi9MYW5ndWFnZURhdGEnO1xyXG5pbXBvcnQgeyBMYXN0Rm9jdXNlZE1hbmFnZXIgfSBmcm9tICcuLi8uLi9ydC9MYXN0Rm9jdXNlZE1hbmFnZXInO1xyXG5pbXBvcnQgeyBBY2Nlc3NIZWxwZXIgfSBmcm9tICcuLi8uLi9BY2Nlc3NIZWxwZXInO1xyXG5pbXBvcnQge0dVSU1hbmFnZXJ9IGZyb20gXCIuLi8uLi9HVUlNYW5hZ2VyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgVmVyaWZ5Q29tbWFuZCBleHRlbmRzIENsaWVudFRhcmdldGVkQ29tbWFuZEJhc2Uge1xyXG4gIHByaXZhdGUgX2NhbGxpbmdUYXNrVGFnOiBzdHJpbmcgPSBudWxsOyAvLyBpcyB0aGUgaWQgb2YgdGhlIHRhc2sgdGhhdCBjYWxsZWQgdGhlIG5ldyB3aW5kb3dcclxuICBfdGl0bGU6IHN0cmluZyA9IG51bGw7IC8vIHRpdGxlIG9mIHZlcmlmeSBvcHJcclxuICBwcml2YXRlIF9lcnJMb2dBcHBlbmQ6IGJvb2xlYW4gPSBmYWxzZTsgLy8gYXBwZW5kIHRvIGVycm9yIGxvZyBmb3IgdmVyaWZ5IG9wclxyXG4gIHByaXZhdGUgX3RleHQ6IHN0cmluZyA9IG51bGw7IC8vIHRoZSB2ZXJpZnkgbWVzc2FnZVxyXG4gIHByaXZhdGUgX2Rpc3BsYXk6IHN0cmluZyA9ICdcXDAnO1xyXG4gIHByaXZhdGUgX21vZGU6IHN0cmluZyA9ICdcXDAnO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiZXhwXCI+PC9wYXJhbT5cclxuICBhc3luYyBFeGVjdXRlKHJlczogSVJlc3VsdFZhbHVlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgZXJyRm9yQ29uc29sZSA9IFN0clV0aWwuZ2V0Q29uc29sZUVyb3JTdHJpbmcodGhpcy5fdGV4dCk7XHJcbiAgICBsZXQgdGFzazogVGFzayA9IDxUYXNrPihBY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuR2V0VGFza0J5SUQodGhpcy5UYXNrVGFnKSB8fCBBY2Nlc3NIZWxwZXIubWdEYXRhVGFibGUuR2V0VGFza0J5SUQodGhpcy5fY2FsbGluZ1Rhc2tUYWcpKTtcclxuICAgIGlmICh0YXNrID09PSBudWxsKVxyXG4gICAgICB0YXNrID0gTGFzdEZvY3VzZWRNYW5hZ2VyLkluc3RhbmNlLmdldExhc3RGb2N1c2VkVGFzaygpO1xyXG5cclxuICAgIC8vIEluIG9yZGVyIHRvIGtlZXAgdGhlIGJlaGF2aW9yIHNhbWUgYXMgaW4gT25saW5lLCB2ZXJpZnkgb3BlcmF0aW9uIHdhcm5pbmcgbWVzc2FnZXNcclxuICAgIC8vIHdpbGwgYmUgd3JpdHRlbiBhcyBlcnJvciBtZXNzYWdlcyBpbiBDbGllbnQgbG9nIChRQ1IgIzkxNTEyMilcclxuICAgIGxldCBlcnJMb2dBcHBlbmQ6IGJvb2xlYW4gPSB0aGlzLl9lcnJMb2dBcHBlbmQ7XHJcbiAgICBpZiAoZXJyTG9nQXBwZW5kKVxyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coZXJyRm9yQ29uc29sZSk7XHJcblxyXG4gICAgLy8gQmxhbmsgTWVzc2FnZSB3aWxsIG5vdCBiZSBzaG93biwgc2FtZSBhcyBpbiBPbmxpbmVcclxuICAgIGlmICghTlN0cmluZy5Jc051bGxPckVtcHR5KHRoaXMuX3RleHQpKSB7XHJcbiAgICAgIGlmICh0aGlzLl9kaXNwbGF5ID09PSBDb25zdEludGVyZmFjZS5ESVNQTEFZX0JPWCkge1xyXG4gICAgICAgIGxldCBzdHlsZTogUmVmUGFyYW08bnVtYmVyPiA9IG5ldyBSZWZQYXJhbSgwKTtcclxuXHJcbiAgICAgICAgLy8gb24gdmVyaWZ5IGJveCwgc2hvdyB0cmFuc2xhdGVkIHZhbHVlLiAoc3RhdHVzIGlzIGhhbmRsZWQgaW4gcHJvcGVydHkpLlxyXG4gICAgICAgIGxldCBlcnJGb3JNc2dCb3g6IHN0cmluZyA9IFN0clV0aWwuZ2V0TXNnQm94RXJvclN0cmluZyh0aGlzLl90ZXh0KTtcclxuICAgICAgICBsZXQgbWxzVHJhbnNUZXh0OiBzdHJpbmcgPSBMYW5ndWFnZURhdGEuSW5zdGFuY2UudHJhbnNsYXRlKGVyckZvck1zZ0JveCk7XHJcbiAgICAgICAgbGV0IG1sc1RyYW5zVGl0bGU6IFJlZlBhcmFtPHN0cmluZz4gPSBuZXcgUmVmUGFyYW0oTlN0cmluZy5FbXB0eSk7XHJcblxyXG4gICAgICAgIHRoaXMuUHJlcGFyZU1lc3NhZ2VCb3hGb3JEaXNwbGF5KHRhc2ssIG1sc1RyYW5zVGl0bGUsIHN0eWxlKTtcclxuICAgICAgICBsZXQgcmV0dXJuVmFsdWU6IG51bWJlciA9IGF3YWl0IEdVSU1hbmFnZXIuSW5zdGFuY2UuTWVzc2FnZUJveChtbHNUcmFuc1RpdGxlLnZhbHVlLCBtbHNUcmFuc1RleHQsIHN0eWxlLnZhbHVlKTtcclxuICAgICAgICBhd2FpdCB0aGlzLlByb2Nlc3NNZXNzYWdlQm94UmVzcG9uc2UodGFzaywgcmV0dXJuVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRpc3BsYXkgbWVzc2FnZSBvbiBzdGF0dXMgb25seSBpZiB3ZSBoYXZlIGEgdGFza1xyXG4gICAgICAvLyBCbGFuayBNZXNzYWdlIHdpbGwgbm90IGJlIHNob3duLCBzYW1lIGFzIGluIE9ubGluZVxyXG4gICAgICBlbHNlIGlmICh0aGlzLl9kaXNwbGF5ID09PSBDb25zdEludGVyZmFjZS5ESVNQTEFZX1NUQVRVUyAmJiB0YXNrICE9IG51bGwpIHtcclxuICAgICAgICB0YXNrLkRpc3BsYXlNZXNzYWdlVG9TdGF0dXNCYXIoZXJyRm9yQ29uc29sZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gUHJlcGFyZXMgdGhlIG1lc3NhZ2UgYm94J3Mgc3R5bGUgYW5kIHRpdGxlIGZvciBkaXNwbGF5LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwibWxzVHJhbnNUaXRsZVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwic3R5bGVcIj48L3BhcmFtPlxyXG4gIFByZXBhcmVNZXNzYWdlQm94Rm9yRGlzcGxheSh0YXNrOiBUYXNrLCBtbHNUcmFuc1RpdGxlOiBSZWZQYXJhbTxzdHJpbmc+LCBzdHlsZTogUmVmUGFyYW08bnVtYmVyPik6IHZvaWQge1xyXG4gICAgbGV0IG9wdGlvbnM6IHN0cmluZyA9IExhbmd1YWdlRGF0YS5JbnN0YW5jZS5nZXRDb25zdE1lc3NhZ2UoTXNnSW50ZXJmYWNlLkJSS1RBQl9TVE9QX01PREVfVElUTEUpO1xyXG4gICAgdGhpcy5fdGl0bGUgPSBDb25zdFV0aWxzLmdldFN0cmluZ09mT3B0aW9uKG9wdGlvbnMsIFwiRVdcIiwgdGhpcy5fbW9kZSk7XHJcbiAgICBtbHNUcmFuc1RpdGxlLnZhbHVlID0gTGFuZ3VhZ2VEYXRhLkluc3RhbmNlLnRyYW5zbGF0ZSh0aGlzLl90aXRsZSk7XHJcblxyXG4gICAgLy8gYWRkIHRoZSBpY29uIGFjY29yZGluZyB0byB0aGUgbW9kZSA6aXMgRXJyb3IgXFwgV2FybmluZ1xyXG4gICAgc3R5bGUudmFsdWUgPSBTdHlsZXMuTVNHQk9YX0JVVFRPTl9PSyB8XHJcbiAgICAgICgodGhpcy5fbW9kZSA9PT0gJ0UnKVxyXG4gICAgICAgID8gU3R5bGVzLk1TR0JPWF9JQ09OX0VSUk9SXHJcbiAgICAgICAgOiBTdHlsZXMuTVNHQk9YX0lDT05fV0FSTklORyk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEhhbmRsZXMgdGhlIHJlc3BvbnNlIHJlY2VpdmVkIGZyb20gdGhlIG1lc3NhZ2UgYm94LlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmV0dXJuVmFsdWVcIj48L3BhcmFtPlxyXG4gIFByb2Nlc3NNZXNzYWdlQm94UmVzcG9uc2UodGFzazogVGFzaywgcmV0dXJuVmFsdWU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgLy8gaW50ZW50aW9uYWxseSBsZWZ0IGVtcHR5LlxyXG4gIH1cclxuXHJcbiAgcHVibGljIEhhbmRsZUF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChhdHRyaWJ1dGUpIHtcclxuICAgICAgY2FzZSBDb25zdEludGVyZmFjZS5NR19BVFRSX1RJVExFOlxyXG4gICAgICAgIHRoaXMuX3RpdGxlID0gdmFsdWU7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfQ0FMTElOR1RBU0s6XHJcbiAgICAgICAgdGhpcy5fY2FsbGluZ1Rhc2tUYWcgPSB2YWx1ZTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9FUlJfTE9HX0FQUEVORDpcclxuICAgICAgICB0aGlzLl9lcnJMb2dBcHBlbmQgPSBYbWxQYXJzZXIuZ2V0Qm9vbGVhbih2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVEVYVDpcclxuICAgICAgICB0aGlzLl90ZXh0ID0gWG1sUGFyc2VyLnVuZXNjYXBlKHZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9ESVNQTEFZOlxyXG4gICAgICAgIHRoaXMuX2Rpc3BsYXkgPSB2YWx1ZVswXTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9NT0RFOlxyXG4gICAgICAgIHRoaXMuX21vZGUgPSB2YWx1ZVswXTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9BQ0s6XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHN1cGVyLkhhbmRsZUF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbHVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19