@magic-xpa/engine 4.1100.0-dev4110.20 → 4.1100.0-dev4110.202

Sign up to get free protection for your applications and to get access to all the features.
Files changed (515) hide show
  1. package/{esm2020 → esm2022}/index.mjs +188 -188
  2. package/{esm2020 → esm2022}/magic-xpa-engine.mjs +1 -1
  3. package/esm2022/src/AccessHelper.mjs +15 -0
  4. package/esm2022/src/ClientManager.mjs +409 -0
  5. package/esm2022/src/CommandsProcessorBase.mjs +56 -0
  6. package/esm2022/src/CommandsProcessorManager.mjs +26 -0
  7. package/esm2022/src/CommandsTable.mjs +162 -0
  8. package/esm2022/src/ConstInterface.mjs +517 -0
  9. package/{esm2020 → esm2022}/src/CurrentClientVersion.mjs +2 -2
  10. package/esm2022/src/FlowMonitorInterface.mjs +16 -0
  11. package/esm2022/src/GUIManager.mjs +62 -0
  12. package/esm2022/src/GlobalCommandsManager.mjs +34 -0
  13. package/esm2022/src/GuiEventsProcessor.mjs +157 -0
  14. package/{esm2020 → esm2022}/src/ICommandsTable.mjs +1 -1
  15. package/esm2022/src/ServerConfig.mjs +122 -0
  16. package/{esm2020 → esm2022}/src/bridge/IGuiEvent.mjs +19 -19
  17. package/{esm2020 → esm2022}/src/bridge/MagicBridge.mjs +40 -40
  18. package/esm2022/src/commands/ClientOriginatedCommandTaskTag.mjs +12 -0
  19. package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs +8 -8
  20. package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs +9 -9
  21. package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs +9 -9
  22. package/{esm2020 → esm2022}/src/commands/ClientToServer/BrowserEscEventCommand.mjs +23 -23
  23. package/{esm2020 → esm2022}/src/commands/ClientToServer/ClientOriginatedCommand.mjs +14 -14
  24. package/esm2022/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +60 -0
  25. package/{esm2020 → esm2022}/src/commands/ClientToServer/ColumnSortEventCommand.mjs +26 -26
  26. package/esm2022/src/commands/ClientToServer/CommandFactory.mjs +260 -0
  27. package/esm2022/src/commands/ClientToServer/CommandSerializationHelper.mjs +67 -0
  28. package/{esm2020 → esm2022}/src/commands/ClientToServer/ComputeEventCommand.mjs +23 -23
  29. package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +20 -20
  30. package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +19 -19
  31. package/{esm2020 → esm2022}/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs +8 -8
  32. package/esm2022/src/commands/ClientToServer/DataViewOutputCommand.mjs +13 -0
  33. package/{esm2020 → esm2022}/src/commands/ClientToServer/DataviewCommand.mjs +44 -44
  34. package/esm2022/src/commands/ClientToServer/EvaluateCommand.mjs +37 -0
  35. package/esm2022/src/commands/ClientToServer/EventCommand.mjs +40 -0
  36. package/esm2022/src/commands/ClientToServer/ExecOperCommand.mjs +67 -0
  37. package/esm2022/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +22 -0
  38. package/{esm2020 → esm2022}/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs +10 -10
  39. package/{esm2020 → esm2022}/src/commands/ClientToServer/ICommandTaskTag.mjs +1 -1
  40. package/{esm2020 → esm2022}/src/commands/ClientToServer/IndexChangeEventCommand.mjs +21 -21
  41. package/esm2022/src/commands/ClientToServer/IniputForceWriteCommand.mjs +23 -0
  42. package/{esm2020 → esm2022}/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +23 -23
  43. package/{esm2020 → esm2022}/src/commands/ClientToServer/QueryCommand.mjs +20 -20
  44. package/esm2022/src/commands/ClientToServer/RecomputeCommand.mjs +27 -0
  45. package/esm2022/src/commands/ClientToServer/RefreshEventCommand.mjs +27 -0
  46. package/esm2022/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +24 -0
  47. package/esm2022/src/commands/ClientToServer/RollbackEventCommand.mjs +40 -0
  48. package/{esm2020 → esm2022}/src/commands/ClientToServer/SelectProgramCommand.mjs +14 -14
  49. package/{esm2020 → esm2022}/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs +9 -9
  50. package/{esm2020 → esm2022}/src/commands/ClientToServer/SubformOpenEventCommand.mjs +21 -21
  51. package/esm2022/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +24 -0
  52. package/esm2022/src/commands/ClientToServer/TransactionCommand.mjs +30 -0
  53. package/{esm2020 → esm2022}/src/commands/ClientToServer/UnloadCommand.mjs +14 -14
  54. package/esm2022/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +18 -0
  55. package/esm2022/src/commands/DataViewCommandBase.mjs +8 -0
  56. package/{esm2020 → esm2022}/src/commands/IClientCommand.mjs +1 -1
  57. package/esm2022/src/commands/IClientTargetedCommand.mjs +13 -0
  58. package/{esm2020 → esm2022}/src/commands/IClientToServerCommandInfo.mjs +1 -1
  59. package/esm2022/src/commands/ServerToClient/AbortCommand.mjs +65 -0
  60. package/{esm2020 → esm2022}/src/commands/ServerToClient/AddLocateCommand.mjs +21 -21
  61. package/esm2022/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
  62. package/esm2022/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
  63. package/esm2022/src/commands/ServerToClient/ClientRefreshCommand.mjs +25 -0
  64. package/esm2022/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +24 -0
  65. package/esm2022/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
  66. package/esm2022/src/commands/ServerToClient/OpenURLCommand.mjs +221 -0
  67. package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetLocateCommand.mjs +14 -14
  68. package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetRangeCommand.mjs +14 -14
  69. package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetSortCommand.mjs +14 -14
  70. package/esm2022/src/commands/ServerToClient/ResultCommand.mjs +37 -0
  71. package/esm2022/src/commands/ServerToClient/VerifyCommand.mjs +83 -0
  72. package/esm2022/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +132 -0
  73. package/{esm2020 → esm2022}/src/communications/IConnectionStateManager.mjs +1 -1
  74. package/esm2022/src/communications/InteractiveCommunicationsFailureHandler.mjs +15 -0
  75. package/{esm2020 → esm2022}/src/data/DataSourceIdKey.mjs +2 -2
  76. package/esm2022/src/data/DataView.mjs +1613 -0
  77. package/{esm2020 → esm2022}/src/data/DataViewBase.mjs +3 -3
  78. package/esm2022/src/data/DataviewManager.mjs +28 -0
  79. package/esm2022/src/data/DataviewManagerBase.mjs +15 -0
  80. package/esm2022/src/data/DvCache.mjs +67 -0
  81. package/esm2022/src/data/Field.mjs +646 -0
  82. package/esm2022/src/data/FieldBase.mjs +15 -0
  83. package/esm2022/src/data/FieldsTable.mjs +103 -0
  84. package/{esm2020 → esm2022}/src/data/IRecordsTable.mjs +1 -1
  85. package/esm2022/src/data/Key.mjs +88 -0
  86. package/esm2022/src/data/Record.mjs +866 -0
  87. package/{esm2020 → esm2022}/src/data/RecordOutOfDataViewException.mjs +15 -15
  88. package/esm2022/src/data/RecordsTable.mjs +267 -0
  89. package/esm2022/src/data/TaskTransactionManager.mjs +103 -0
  90. package/esm2022/src/data/XMLBasedDcValuesBuilder.mjs +74 -0
  91. package/{esm2020 → esm2022}/src/enums.mjs +23 -23
  92. package/esm2022/src/env/EnvVariablesTable.mjs +340 -0
  93. package/esm2022/src/env/Environment.mjs +487 -0
  94. package/{esm2020 → esm2022}/src/env/ILanguageData.mjs +1 -1
  95. package/esm2022/src/env/LanguageData.mjs +227 -0
  96. package/esm2022/src/env/MirrorString.mjs +65 -0
  97. package/esm2022/src/event/ActionManager.mjs +91 -0
  98. package/esm2022/src/event/Event.mjs +1333 -0
  99. package/esm2022/src/event/EventHandler.mjs +766 -0
  100. package/esm2022/src/event/EventHandlerPosition.mjs +204 -0
  101. package/esm2022/src/event/EventsManager.mjs +2988 -0
  102. package/{esm2020 → esm2022}/src/event/IEventsManager.mjs +6 -6
  103. package/esm2022/src/event/RunTimeEvent.mjs +399 -0
  104. package/{esm2020 → esm2022}/src/event/RunTimeEventBase.mjs +3 -3
  105. package/esm2022/src/event/UserEventsTable.mjs +47 -0
  106. package/esm2022/src/exp/ExpTable.mjs +57 -0
  107. package/esm2022/src/exp/Expression.mjs +200 -0
  108. package/esm2022/src/exp/ExpressionDict.mjs +727 -0
  109. package/esm2022/src/exp/ExpressionEvaluator.mjs +4206 -0
  110. package/esm2022/src/exp/ExpressionLocalJpn.mjs +314 -0
  111. package/esm2022/src/exp/GlobalParamsTable.mjs +85 -0
  112. package/esm2022/src/exp/YesNoExp.mjs +36 -0
  113. package/esm2022/src/gui/CreatedFormVector.mjs +23 -0
  114. package/esm2022/src/gui/FormsTable.mjs +66 -0
  115. package/esm2022/src/gui/MgControl.mjs +363 -0
  116. package/esm2022/src/gui/MgForm.mjs +1181 -0
  117. package/esm2022/src/http/HttpManager.mjs +97 -0
  118. package/esm2022/src/http/client/HttpClientAsync.mjs +68 -0
  119. package/esm2022/src/http/client/HttpClientBase.mjs +132 -0
  120. package/esm2022/src/http/client/HttpClientEvents.mjs +39 -0
  121. package/esm2022/src/http/client/HttpClientSync.mjs +42 -0
  122. package/esm2022/src/http/client/HttpUtility.mjs +84 -0
  123. package/{esm2020 → esm2022}/src/http/client/ICommunicationsFailureHandler.mjs +1 -1
  124. package/esm2022/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
  125. package/esm2022/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
  126. package/esm2022/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
  127. package/esm2022/src/remote/RemoteCommandsProcessor.mjs +882 -0
  128. package/esm2022/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
  129. package/esm2022/src/remote/RemoteDataViewCommandBase.mjs +24 -0
  130. package/esm2022/src/remote/RemoteDataViewCommandFactory.mjs +61 -0
  131. package/{esm2020 → esm2022}/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +15 -15
  132. package/{esm2020 → esm2022}/src/remote/RemoteDataviewManager.mjs +17 -17
  133. package/{esm2020 → esm2022}/src/remote/RemoteInitDataViewCommand.mjs +10 -10
  134. package/esm2022/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
  135. package/{esm2020 → esm2022}/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +12 -12
  136. package/esm2022/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
  137. package/esm2022/src/remote/ServerError.mjs +40 -0
  138. package/esm2022/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +20 -0
  139. package/esm2022/src/rt/Argument.mjs +265 -0
  140. package/esm2022/src/rt/ArgumentsList.mjs +103 -0
  141. package/esm2022/src/rt/Boundary.mjs +152 -0
  142. package/esm2022/src/rt/CompMainPrgTable.mjs +63 -0
  143. package/{esm2020 → esm2022}/src/rt/DataviewHeaderBase.mjs +98 -96
  144. package/{esm2020 → esm2022}/src/rt/DataviewHeaderFactory.mjs +6 -6
  145. package/esm2022/src/rt/DataviewHeaders.mjs +53 -0
  146. package/esm2022/src/rt/DataviewHeadersSaxHandler.mjs +38 -0
  147. package/esm2022/src/rt/ExecutionStack.mjs +94 -0
  148. package/{esm2020 → esm2022}/src/rt/ExecutionStackEntry.mjs +17 -17
  149. package/esm2022/src/rt/HandlersTable.mjs +96 -0
  150. package/{esm2020 → esm2022}/src/rt/IDataSourceViewDefinition.mjs +1 -1
  151. package/{esm2020 → esm2022}/src/rt/IDataviewHeader.mjs +1 -1
  152. package/{esm2020 → esm2022}/src/rt/IResultValue.mjs +1 -1
  153. package/esm2022/src/rt/LastFocusedManager.mjs +65 -0
  154. package/esm2022/src/rt/Operation.mjs +735 -0
  155. package/esm2022/src/rt/OperationTable.mjs +67 -0
  156. package/esm2022/src/rt/Recompute.mjs +355 -0
  157. package/esm2022/src/rt/RecomputeTable.mjs +63 -0
  158. package/esm2022/src/rt/RemoteDataviewHeader.mjs +108 -0
  159. package/esm2022/src/rt/ResultValue.mjs +10 -0
  160. package/esm2022/src/rt/TableCache.mjs +177 -0
  161. package/esm2022/src/rt/TableCacheManager.mjs +67 -0
  162. package/esm2022/src/rt/Transaction.mjs +53 -0
  163. package/esm2022/src/security/UserDetails.mjs +71 -0
  164. package/{esm2020 → esm2022}/src/tasks/IMGDataCollection.mjs +1 -1
  165. package/esm2022/src/tasks/MGData.mjs +552 -0
  166. package/esm2022/src/tasks/MGDataCollection.mjs +252 -0
  167. package/esm2022/src/tasks/RCTimer.mjs +63 -0
  168. package/esm2022/src/tasks/RemoteTaskService.mjs +45 -0
  169. package/esm2022/src/tasks/Task.mjs +2498 -0
  170. package/esm2022/src/tasks/TaskBase.mjs +83 -0
  171. package/esm2022/src/tasks/TaskServiceBase.mjs +25 -0
  172. package/esm2022/src/tasks/TasksTable.mjs +80 -0
  173. package/esm2022/src/tasks/sort/Sort.mjs +5 -0
  174. package/esm2022/src/tasks/sort/SortCollection.mjs +67 -0
  175. package/esm2022/src/util/ConstUtils.mjs +14 -0
  176. package/esm2022/src/util/FlowMonitorQueue.mjs +451 -0
  177. package/esm2022/src/util/HeapSort.mjs +70 -0
  178. package/{esm2020 → esm2022}/src/util/IMirrorXML.mjs +1 -1
  179. package/{esm2020 → esm2022}/src/util/IServerConfig.mjs +1 -1
  180. package/{esm2020 → esm2022}/src/util/MgBlockingQueue.mjs +1 -1
  181. package/esm2022/src/util/MgPriorityBlockingQueue.mjs +74 -0
  182. package/esm2022/src/util/MgPriorityQueue.mjs +66 -0
  183. package/{esm2020 → esm2022}/src/util/ParamParseResult.mjs +7 -7
  184. package/esm2022/src/util/PrmMap.mjs +152 -0
  185. package/esm2022/src/util/ReturnResult.mjs +46 -0
  186. package/esm2022/src/util/ReturnResultBase.mjs +18 -0
  187. package/esm2022/src/util/Scrambler.mjs +89 -0
  188. package/esm2022/src/util/UniqueIDUtils.mjs +13 -0
  189. package/esm2022/src/util/cookie.service.mjs +92 -0
  190. package/{fesm2020 → fesm2022}/magic-xpa-engine.mjs +29750 -29693
  191. package/fesm2022/magic-xpa-engine.mjs.map +1 -0
  192. package/index.d.ts +187 -187
  193. package/package.json +8 -14
  194. package/src/AccessHelper.d.ts +20 -20
  195. package/src/ClientManager.d.ts +34 -32
  196. package/src/CommandsProcessorBase.d.ts +23 -23
  197. package/src/CommandsProcessorManager.d.ts +6 -6
  198. package/src/CommandsTable.d.ts +22 -22
  199. package/src/ConstInterface.d.ts +516 -515
  200. package/src/CurrentClientVersion.d.ts +1 -1
  201. package/src/FlowMonitorInterface.d.ts +15 -15
  202. package/src/GUIManager.d.ts +17 -17
  203. package/src/GlobalCommandsManager.d.ts +17 -17
  204. package/src/GuiEventsProcessor.d.ts +24 -24
  205. package/src/ICommandsTable.d.ts +9 -9
  206. package/src/ServerConfig.d.ts +35 -34
  207. package/src/bridge/IGuiEvent.d.ts +19 -19
  208. package/src/bridge/MagicBridge.d.ts +16 -16
  209. package/src/commands/ClientOriginatedCommandTaskTag.d.ts +8 -8
  210. package/src/commands/ClientToServer/AddUserLocateDataViewCommand.d.ts +4 -4
  211. package/src/commands/ClientToServer/AddUserRangeDataviewCommand.d.ts +6 -6
  212. package/src/commands/ClientToServer/AddUserSortDataViewCommand.d.ts +6 -6
  213. package/src/commands/ClientToServer/BrowserEscEventCommand.d.ts +8 -8
  214. package/src/commands/ClientToServer/ClientOriginatedCommand.d.ts +8 -8
  215. package/src/commands/ClientToServer/ClientOriginatedCommandSerializer.d.ts +6 -6
  216. package/src/commands/ClientToServer/ColumnSortEventCommand.d.ts +10 -10
  217. package/src/commands/ClientToServer/CommandFactory.d.ts +64 -64
  218. package/src/commands/ClientToServer/CommandSerializationHelper.d.ts +20 -20
  219. package/src/commands/ClientToServer/ComputeEventCommand.d.ts +8 -8
  220. package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +7 -7
  221. package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +7 -7
  222. package/src/commands/ClientToServer/ControlItemsRefreshCommand.d.ts +6 -6
  223. package/src/commands/ClientToServer/DataViewOutputCommand.d.ts +9 -9
  224. package/src/commands/ClientToServer/DataviewCommand.d.ts +32 -32
  225. package/src/commands/ClientToServer/EvaluateCommand.d.ts +15 -15
  226. package/src/commands/ClientToServer/EventCommand.d.ts +15 -15
  227. package/src/commands/ClientToServer/ExecOperCommand.d.ts +23 -23
  228. package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +8 -8
  229. package/src/commands/ClientToServer/GlobalParamsQueryCommand.d.ts +5 -5
  230. package/src/commands/ClientToServer/ICommandTaskTag.d.ts +3 -3
  231. package/src/commands/ClientToServer/IndexChangeEventCommand.d.ts +8 -8
  232. package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +10 -10
  233. package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +8 -8
  234. package/src/commands/ClientToServer/QueryCommand.d.ts +8 -8
  235. package/src/commands/ClientToServer/RecomputeCommand.d.ts +11 -11
  236. package/src/commands/ClientToServer/RefreshEventCommand.d.ts +12 -12
  237. package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +10 -10
  238. package/src/commands/ClientToServer/RollbackEventCommand.d.ts +14 -14
  239. package/src/commands/ClientToServer/SelectProgramCommand.d.ts +6 -6
  240. package/src/commands/ClientToServer/SetTransactionStateDataviewCommand.d.ts +5 -5
  241. package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +8 -8
  242. package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +9 -9
  243. package/src/commands/ClientToServer/TransactionCommand.d.ts +12 -12
  244. package/src/commands/ClientToServer/UnloadCommand.d.ts +7 -7
  245. package/src/commands/ClientToServer/WriteMessageToServerLogCommand.d.ts +6 -6
  246. package/src/commands/DataViewCommandBase.d.ts +6 -6
  247. package/src/commands/IClientCommand.d.ts +2 -2
  248. package/src/commands/IClientTargetedCommand.d.ts +12 -12
  249. package/src/commands/IClientToServerCommandInfo.d.ts +3 -3
  250. package/src/commands/ServerToClient/AbortCommand.d.ts +11 -11
  251. package/src/commands/ServerToClient/AddLocateCommand.d.ts +6 -6
  252. package/src/commands/ServerToClient/AddRangeCommand.d.ts +10 -10
  253. package/src/commands/ServerToClient/AddSortCommand.d.ts +9 -9
  254. package/src/commands/ServerToClient/ClientRefreshCommand.d.ts +7 -7
  255. package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +12 -12
  256. package/src/commands/ServerToClient/EnhancedVerifyCommand.d.ts +13 -13
  257. package/src/commands/ServerToClient/OpenURLCommand.d.ts +21 -21
  258. package/src/commands/ServerToClient/ResetLocateCommand.d.ts +6 -6
  259. package/src/commands/ServerToClient/ResetRangeCommand.d.ts +6 -6
  260. package/src/commands/ServerToClient/ResetSortCommand.d.ts +6 -6
  261. package/src/commands/ServerToClient/ResultCommand.d.ts +10 -10
  262. package/src/commands/ServerToClient/VerifyCommand.d.ts +17 -17
  263. package/src/commands/ServerToClient/XMLBasedCommandBuilder.d.ts +11 -11
  264. package/src/communications/IConnectionStateManager.d.ts +4 -4
  265. package/src/communications/InteractiveCommunicationsFailureHandler.d.ts +6 -6
  266. package/src/data/DataSourceIdKey.d.ts +2 -2
  267. package/src/data/DataView.d.ts +162 -162
  268. package/src/data/DataViewBase.d.ts +12 -12
  269. package/src/data/DataviewManager.d.ts +14 -14
  270. package/src/data/DataviewManagerBase.d.ts +11 -11
  271. package/src/data/DvCache.d.ts +15 -15
  272. package/src/data/Field.d.ts +103 -103
  273. package/src/data/FieldBase.d.ts +23 -23
  274. package/src/data/FieldsTable.d.ts +27 -27
  275. package/src/data/IRecordsTable.d.ts +7 -7
  276. package/src/data/Key.d.ts +15 -15
  277. package/src/data/Record.d.ts +156 -156
  278. package/src/data/RecordOutOfDataViewException.d.ts +10 -10
  279. package/src/data/RecordsTable.d.ts +38 -38
  280. package/src/data/TaskTransactionManager.d.ts +17 -17
  281. package/src/data/XMLBasedDcValuesBuilder.d.ts +11 -11
  282. package/src/enums.d.ts +21 -21
  283. package/src/env/EnvVariablesTable.d.ts +17 -17
  284. package/src/env/Environment.d.ts +118 -118
  285. package/src/env/ILanguageData.d.ts +3 -3
  286. package/src/env/LanguageData.d.ts +20 -20
  287. package/src/env/MirrorString.d.ts +15 -15
  288. package/src/event/ActionManager.d.ts +14 -14
  289. package/src/event/Event.d.ts +79 -79
  290. package/src/event/EventHandler.d.ts +66 -66
  291. package/src/event/EventHandlerPosition.d.ts +25 -25
  292. package/src/event/EventsManager.d.ts +205 -204
  293. package/src/event/IEventsManager.d.ts +77 -77
  294. package/src/event/RunTimeEvent.d.ts +126 -123
  295. package/src/event/RunTimeEventBase.d.ts +5 -5
  296. package/src/event/UserEventsTable.d.ts +11 -11
  297. package/src/exp/ExpTable.d.ts +11 -11
  298. package/src/exp/Expression.d.ts +37 -37
  299. package/src/exp/ExpressionDict.d.ts +12 -12
  300. package/src/exp/ExpressionEvaluator.d.ts +198 -198
  301. package/src/exp/ExpressionLocalJpn.d.ts +18 -18
  302. package/src/exp/GlobalParamsTable.d.ts +19 -19
  303. package/src/exp/YesNoExp.d.ts +9 -9
  304. package/src/gui/CreatedFormVector.d.ts +10 -10
  305. package/src/gui/FormsTable.d.ts +15 -15
  306. package/src/gui/MgControl.d.ts +60 -60
  307. package/src/gui/MgForm.d.ts +93 -93
  308. package/src/http/HttpManager.d.ts +25 -25
  309. package/src/http/client/HttpClientAsync.d.ts +16 -16
  310. package/src/http/client/HttpClientBase.d.ts +30 -30
  311. package/src/http/client/HttpClientEvents.d.ts +18 -18
  312. package/src/http/client/HttpClientSync.d.ts +17 -17
  313. package/src/http/client/HttpUtility.d.ts +10 -10
  314. package/src/http/client/ICommunicationsFailureHandler.d.ts +5 -5
  315. package/src/remote/AddUserLocateRemoteDataViewCommand.d.ts +8 -8
  316. package/src/remote/AddUserRangeRemoteDataViewCommand.d.ts +8 -8
  317. package/src/remote/AddUserSortRemoteDataViewCommand.d.ts +8 -8
  318. package/src/remote/RemoteCommandsProcessor.d.ts +51 -51
  319. package/src/remote/RemoteControlItemsRefreshCommand.d.ts +8 -8
  320. package/src/remote/RemoteDataViewCommandBase.d.ts +10 -10
  321. package/src/remote/RemoteDataViewCommandFactory.d.ts +6 -6
  322. package/src/remote/RemoteDataViewCommandUpdateNonModifiable.d.ts +8 -8
  323. package/src/remote/RemoteDataviewManager.d.ts +9 -9
  324. package/src/remote/RemoteInitDataViewCommand.d.ts +7 -7
  325. package/src/remote/ResetUserLocateRemoteDataviewCommand.d.ts +7 -7
  326. package/src/remote/ResetUserRangeRemoteDataviewCommand.d.ts +7 -7
  327. package/src/remote/ResetUserSortRemoteDataviewCommand.d.ts +7 -7
  328. package/src/remote/ServerError.d.ts +16 -16
  329. package/src/remote/SetTransactionStateRemoteDataViewCommand.d.ts +8 -8
  330. package/src/rt/Argument.d.ts +36 -36
  331. package/src/rt/ArgumentsList.d.ts +24 -24
  332. package/src/rt/Boundary.d.ts +27 -27
  333. package/src/rt/CompMainPrgTable.d.ts +10 -10
  334. package/src/rt/DataviewHeaderBase.d.ts +34 -34
  335. package/src/rt/DataviewHeaderFactory.d.ts +5 -5
  336. package/src/rt/DataviewHeaders.d.ts +12 -12
  337. package/src/rt/DataviewHeadersSaxHandler.d.ts +10 -10
  338. package/src/rt/ExecutionStack.d.ts +22 -22
  339. package/src/rt/ExecutionStackEntry.d.ts +7 -7
  340. package/src/rt/HandlersTable.d.ts +19 -19
  341. package/src/rt/IDataSourceViewDefinition.d.ts +6 -6
  342. package/src/rt/IDataviewHeader.d.ts +10 -10
  343. package/src/rt/IResultValue.d.ts +4 -4
  344. package/src/rt/LastFocusedManager.d.ts +23 -23
  345. package/src/rt/Operation.d.ts +97 -97
  346. package/src/rt/OperationTable.d.ts +15 -15
  347. package/src/rt/Recompute.d.ts +41 -41
  348. package/src/rt/RecomputeTable.d.ts +9 -9
  349. package/src/rt/RemoteDataviewHeader.d.ts +14 -14
  350. package/src/rt/ResultValue.d.ts +7 -7
  351. package/src/rt/TableCache.d.ts +29 -29
  352. package/src/rt/TableCacheManager.d.ts +10 -10
  353. package/src/rt/Transaction.d.ts +23 -23
  354. package/src/security/UserDetails.d.ts +16 -16
  355. package/src/tasks/IMGDataCollection.d.ts +26 -26
  356. package/src/tasks/MGData.d.ts +63 -63
  357. package/src/tasks/MGDataCollection.d.ts +42 -42
  358. package/src/tasks/RCTimer.d.ts +13 -13
  359. package/src/tasks/RemoteTaskService.d.ts +16 -16
  360. package/src/tasks/Task.d.ts +312 -312
  361. package/src/tasks/TaskBase.d.ts +123 -123
  362. package/src/tasks/TaskServiceBase.d.ts +16 -16
  363. package/src/tasks/TasksTable.d.ts +21 -21
  364. package/src/tasks/sort/Sort.d.ts +4 -4
  365. package/src/tasks/sort/SortCollection.d.ts +11 -11
  366. package/src/util/ConstUtils.d.ts +3 -3
  367. package/src/util/FlowMonitorQueue.d.ts +70 -70
  368. package/src/util/HeapSort.d.ts +6 -6
  369. package/src/util/IMirrorXML.d.ts +6 -6
  370. package/src/util/IServerConfig.d.ts +11 -11
  371. package/src/util/MgBlockingQueue.d.ts +5 -5
  372. package/src/util/MgPriorityBlockingQueue.d.ts +17 -17
  373. package/src/util/MgPriorityQueue.d.ts +13 -13
  374. package/src/util/ParamParseResult.d.ts +6 -6
  375. package/src/util/PrmMap.d.ts +28 -28
  376. package/src/util/ReturnResult.d.ts +18 -18
  377. package/src/util/ReturnResultBase.d.ts +11 -11
  378. package/src/util/Scrambler.d.ts +10 -10
  379. package/src/util/UniqueIDUtils.d.ts +4 -4
  380. package/src/util/cookie.service.d.ts +8 -8
  381. package/esm2020/src/AccessHelper.mjs +0 -9
  382. package/esm2020/src/ClientManager.mjs +0 -399
  383. package/esm2020/src/CommandsProcessorBase.mjs +0 -58
  384. package/esm2020/src/CommandsProcessorManager.mjs +0 -26
  385. package/esm2020/src/CommandsTable.mjs +0 -162
  386. package/esm2020/src/ConstInterface.mjs +0 -516
  387. package/esm2020/src/FlowMonitorInterface.mjs +0 -16
  388. package/esm2020/src/GUIManager.mjs +0 -62
  389. package/esm2020/src/GlobalCommandsManager.mjs +0 -34
  390. package/esm2020/src/GuiEventsProcessor.mjs +0 -154
  391. package/esm2020/src/ServerConfig.mjs +0 -117
  392. package/esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs +0 -11
  393. package/esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +0 -60
  394. package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +0 -260
  395. package/esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs +0 -69
  396. package/esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs +0 -13
  397. package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +0 -36
  398. package/esm2020/src/commands/ClientToServer/EventCommand.mjs +0 -40
  399. package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +0 -67
  400. package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +0 -22
  401. package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +0 -23
  402. package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +0 -27
  403. package/esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs +0 -27
  404. package/esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +0 -24
  405. package/esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs +0 -39
  406. package/esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +0 -24
  407. package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +0 -28
  408. package/esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +0 -18
  409. package/esm2020/src/commands/DataViewCommandBase.mjs +0 -10
  410. package/esm2020/src/commands/IClientTargetedCommand.mjs +0 -9
  411. package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +0 -65
  412. package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +0 -62
  413. package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +0 -33
  414. package/esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs +0 -25
  415. package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +0 -27
  416. package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +0 -45
  417. package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +0 -221
  418. package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +0 -37
  419. package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +0 -83
  420. package/esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +0 -132
  421. package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +0 -17
  422. package/esm2020/src/data/DataView.mjs +0 -1610
  423. package/esm2020/src/data/DataviewManager.mjs +0 -28
  424. package/esm2020/src/data/DataviewManagerBase.mjs +0 -15
  425. package/esm2020/src/data/DvCache.mjs +0 -67
  426. package/esm2020/src/data/Field.mjs +0 -646
  427. package/esm2020/src/data/FieldBase.mjs +0 -18
  428. package/esm2020/src/data/FieldsTable.mjs +0 -103
  429. package/esm2020/src/data/Key.mjs +0 -88
  430. package/esm2020/src/data/Record.mjs +0 -846
  431. package/esm2020/src/data/RecordsTable.mjs +0 -267
  432. package/esm2020/src/data/TaskTransactionManager.mjs +0 -103
  433. package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +0 -74
  434. package/esm2020/src/env/EnvVariablesTable.mjs +0 -340
  435. package/esm2020/src/env/Environment.mjs +0 -489
  436. package/esm2020/src/env/LanguageData.mjs +0 -226
  437. package/esm2020/src/env/MirrorString.mjs +0 -65
  438. package/esm2020/src/event/ActionManager.mjs +0 -91
  439. package/esm2020/src/event/Event.mjs +0 -1333
  440. package/esm2020/src/event/EventHandler.mjs +0 -766
  441. package/esm2020/src/event/EventHandlerPosition.mjs +0 -204
  442. package/esm2020/src/event/EventsManager.mjs +0 -2975
  443. package/esm2020/src/event/RunTimeEvent.mjs +0 -392
  444. package/esm2020/src/event/UserEventsTable.mjs +0 -47
  445. package/esm2020/src/exp/ExpTable.mjs +0 -59
  446. package/esm2020/src/exp/Expression.mjs +0 -200
  447. package/esm2020/src/exp/ExpressionDict.mjs +0 -727
  448. package/esm2020/src/exp/ExpressionEvaluator.mjs +0 -4212
  449. package/esm2020/src/exp/ExpressionLocalJpn.mjs +0 -314
  450. package/esm2020/src/exp/GlobalParamsTable.mjs +0 -85
  451. package/esm2020/src/exp/YesNoExp.mjs +0 -36
  452. package/esm2020/src/gui/CreatedFormVector.mjs +0 -23
  453. package/esm2020/src/gui/FormsTable.mjs +0 -66
  454. package/esm2020/src/gui/MgControl.mjs +0 -353
  455. package/esm2020/src/gui/MgForm.mjs +0 -1181
  456. package/esm2020/src/http/HttpManager.mjs +0 -97
  457. package/esm2020/src/http/client/HttpClientAsync.mjs +0 -67
  458. package/esm2020/src/http/client/HttpClientBase.mjs +0 -132
  459. package/esm2020/src/http/client/HttpClientEvents.mjs +0 -39
  460. package/esm2020/src/http/client/HttpClientSync.mjs +0 -42
  461. package/esm2020/src/http/client/HttpUtility.mjs +0 -84
  462. package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +0 -18
  463. package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +0 -18
  464. package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +0 -18
  465. package/esm2020/src/remote/RemoteCommandsProcessor.mjs +0 -880
  466. package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +0 -25
  467. package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +0 -24
  468. package/esm2020/src/remote/RemoteDataViewCommandFactory.mjs +0 -61
  469. package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +0 -17
  470. package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +0 -16
  471. package/esm2020/src/remote/ServerError.mjs +0 -40
  472. package/esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +0 -20
  473. package/esm2020/src/rt/Argument.mjs +0 -265
  474. package/esm2020/src/rt/ArgumentsList.mjs +0 -103
  475. package/esm2020/src/rt/Boundary.mjs +0 -152
  476. package/esm2020/src/rt/CompMainPrgTable.mjs +0 -65
  477. package/esm2020/src/rt/DataviewHeaders.mjs +0 -53
  478. package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +0 -38
  479. package/esm2020/src/rt/ExecutionStack.mjs +0 -94
  480. package/esm2020/src/rt/HandlersTable.mjs +0 -96
  481. package/esm2020/src/rt/LastFocusedManager.mjs +0 -67
  482. package/esm2020/src/rt/Operation.mjs +0 -735
  483. package/esm2020/src/rt/OperationTable.mjs +0 -67
  484. package/esm2020/src/rt/Recompute.mjs +0 -355
  485. package/esm2020/src/rt/RecomputeTable.mjs +0 -63
  486. package/esm2020/src/rt/RemoteDataviewHeader.mjs +0 -108
  487. package/esm2020/src/rt/ResultValue.mjs +0 -12
  488. package/esm2020/src/rt/TableCache.mjs +0 -177
  489. package/esm2020/src/rt/TableCacheManager.mjs +0 -67
  490. package/esm2020/src/rt/Transaction.mjs +0 -53
  491. package/esm2020/src/security/UserDetails.mjs +0 -71
  492. package/esm2020/src/tasks/MGData.mjs +0 -552
  493. package/esm2020/src/tasks/MGDataCollection.mjs +0 -252
  494. package/esm2020/src/tasks/RCTimer.mjs +0 -63
  495. package/esm2020/src/tasks/RemoteTaskService.mjs +0 -45
  496. package/esm2020/src/tasks/Task.mjs +0 -2495
  497. package/esm2020/src/tasks/TaskBase.mjs +0 -87
  498. package/esm2020/src/tasks/TaskServiceBase.mjs +0 -25
  499. package/esm2020/src/tasks/TasksTable.mjs +0 -80
  500. package/esm2020/src/tasks/sort/Sort.mjs +0 -7
  501. package/esm2020/src/tasks/sort/SortCollection.mjs +0 -67
  502. package/esm2020/src/util/ConstUtils.mjs +0 -14
  503. package/esm2020/src/util/FlowMonitorQueue.mjs +0 -453
  504. package/esm2020/src/util/HeapSort.mjs +0 -70
  505. package/esm2020/src/util/MgPriorityBlockingQueue.mjs +0 -74
  506. package/esm2020/src/util/MgPriorityQueue.mjs +0 -66
  507. package/esm2020/src/util/PrmMap.mjs +0 -151
  508. package/esm2020/src/util/ReturnResult.mjs +0 -46
  509. package/esm2020/src/util/ReturnResultBase.mjs +0 -18
  510. package/esm2020/src/util/Scrambler.mjs +0 -89
  511. package/esm2020/src/util/UniqueIDUtils.mjs +0 -12
  512. package/esm2020/src/util/cookie.service.mjs +0 -92
  513. package/fesm2015/magic-xpa-engine.mjs +0 -30835
  514. package/fesm2015/magic-xpa-engine.mjs.map +0 -1
  515. package/fesm2020/magic-xpa-engine.mjs.map +0 -1
@@ -1,103 +0,0 @@
1
- import { List } from '@magic-xpa/mscorelib';
2
- import { Argument } from './Argument';
3
- import { StrUtil } from '@magic-xpa/utils';
4
- export class ArgumentsList {
5
- constructor(srcArgsOrExp_paramsOrArgument) {
6
- this._list = null;
7
- this.RefreshOnString = null;
8
- if (arguments.length === 0) {
9
- this.constructor_0();
10
- return;
11
- }
12
- if (arguments.length === 1 && (srcArgsOrExp_paramsOrArgument === null || srcArgsOrExp_paramsOrArgument instanceof Array)) {
13
- this.constructor_2(srcArgsOrExp_paramsOrArgument);
14
- return;
15
- }
16
- this.constructor_3(srcArgsOrExp_paramsOrArgument);
17
- }
18
- constructor_0() {
19
- }
20
- async Initialize(srcArgs) {
21
- this.constructor_0();
22
- if (srcArgs === null)
23
- this._list = null;
24
- else {
25
- this._list = new List();
26
- for (let i = 0; i < srcArgs.getSize(); i = i + 1) {
27
- let arg = new Argument(srcArgs.getArg(i));
28
- await arg.Initialize(srcArgs.getArg(i));
29
- this._list.push(arg);
30
- }
31
- }
32
- }
33
- constructor_2(Exp_params) {
34
- this.constructor_0();
35
- let argCnt = Exp_params.length;
36
- if (argCnt === 0)
37
- this._list = null;
38
- else {
39
- this._list = new List();
40
- for (let i = 0; i < argCnt; i = i + 1) {
41
- this._list.push(new Argument(Exp_params[i]));
42
- }
43
- }
44
- }
45
- constructor_3(argument) {
46
- this.Add(argument);
47
- }
48
- fillList(valueStr, srcTask) {
49
- let tok = StrUtil.tokenize(valueStr, "$");
50
- let size = tok.length;
51
- this._list = new List();
52
- for (let i = 0; i < size; i = i + 1) {
53
- let argument = new Argument();
54
- argument.fillData(tok[i], srcTask);
55
- this._list.push(argument);
56
- }
57
- }
58
- buildListFromParams(size, attrs, vals, nulls) {
59
- this._list = new List();
60
- for (let i = 0; i < size; i = i + 1) {
61
- let argument = new Argument();
62
- argument.fillDataByParams(attrs.charAt(i), vals[i], nulls.charAt(i) !== '0');
63
- this._list.push(argument);
64
- }
65
- }
66
- buildXML(message) {
67
- for (let i = 0; i < this._list.length; i = i + 1) {
68
- if (i > 0)
69
- message.Append('$');
70
- this._list.get_Item(i).buildXML(message);
71
- }
72
- }
73
- getSize() {
74
- return (this._list === null) ? 0 : this._list.length;
75
- }
76
- getArg(idx) {
77
- if (idx < 0 || idx >= this._list.length)
78
- return null;
79
- return this._list.get_Item(idx);
80
- }
81
- async getArgValue(idx, expType, expSize) {
82
- let arg = this.getArg(idx);
83
- if (arg === null)
84
- return null;
85
- return await arg.getValue(expType, expSize);
86
- }
87
- FillListFromString(argsString) {
88
- let pattern = new RegExp("(?<!\\\\),");
89
- let array = argsString.split(pattern);
90
- this._list = new List();
91
- for (let i = 0; i < array.length; i = i + 1) {
92
- let argument = new Argument();
93
- argument.FillFromString(array[i]);
94
- this._list.push(argument);
95
- }
96
- }
97
- Add(argument) {
98
- if (this._list === null)
99
- this._list = new List();
100
- this._list.push(argument);
101
- }
102
- }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJndW1lbnRzTGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcnQvQXJndW1lbnRzTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHdEMsT0FBTyxFQUFvQixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RCxNQUFNLE9BQU8sYUFBYTtJQVV4QixZQUFZLDZCQUFtQztRQVR2QyxVQUFLLEdBQW1CLElBQUksQ0FBQztRQUlyQyxvQkFBZSxHQUFXLElBQUksQ0FBQztRQU03QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFDRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsNkJBQTZCLEtBQUssSUFBSSxJQUFJLDZCQUE2QixZQUFZLEtBQUssQ0FBQyxFQUFFO1lBQ3hILElBQUksQ0FBQyxhQUFhLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNsRCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUtPLGFBQWE7SUFDckIsQ0FBQztJQUtNLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBc0I7UUFDNUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksT0FBTyxLQUFLLElBQUk7WUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7YUFDZjtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQVksQ0FBQztZQUVsQyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFD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LEdBQUcsQ0FBQyxFQUFFO1lBQ25ELElBQUksUUFBUSxHQUFhLElBQUksUUFBUSxFQUFFLENBQUM7WUFDeEMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFNRCxHQUFHLENBQUMsUUFBa0I7UUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUk7WUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksRUFBWSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cFZhbCB9IGZyb20gJ0BtYWdpYy14cGEvZ3VpJztcclxuaW1wb3J0IHsgTGlzdCwgU3RyaW5nQnVpbGRlciB9IGZyb20gJ0BtYWdpYy14cGEvbXNjb3JlbGliJztcclxuaW1wb3J0IHsgQXJndW1lbnQgfSBmcm9tICcuL0FyZ3VtZW50JztcclxuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzL1Rhc2snO1xyXG5pbXBvcnQgeyBUYXNrQmFzZSB9IGZyb20gJy4uL3Rhc2tzL1Rhc2tCYXNlJztcclxuaW1wb3J0IHsgU3RvcmFnZUF0dHJpYnV0ZSwgU3RyVXRpbCB9IGZyb20gJ0BtYWdpYy14cGEvdXRpbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFyZ3VtZW50c0xpc3Qge1xyXG4gIHByaXZhdGUgX2xpc3Q6IExpc3Q8QXJndW1lbnQ+ID0gbnVsbDtcclxuXHJcbiAgLy8gU3RyaW5nIGZvciBzdWJmb3JtIGFyZ3VtZW50c1xyXG4gIC8vIE9ubHkgZm9yIG9mZmxpbmUuIEl0J3MgcmVsZXZhbnQgZm9yIGNhbGwgd2l0aCBkZXN0aW5hdGlvblxyXG4gIFJlZnJlc2hPblN0cmluZzogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoKTtcclxuICBjb25zdHJ1Y3RvcihFeHBfcGFyYW1zOiBFeHBWYWxbXSk7XHJcbiAgY29uc3RydWN0b3IoYXJndW1lbnQ6IEFyZ3VtZW50KTtcclxuICBjb25zdHJ1Y3RvcihzcmNBcmdzT3JFeHBfcGFyYW1zT3JBcmd1bWVudD86IGFueSkge1xyXG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5jb25zdHJ1Y3Rvcl8wKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxICYmIChzcmNBcmdzT3JFeHBfcGFyYW1zT3JBcmd1bWVudCA9PT0gbnVsbCB8fCBzcmNBcmdzT3JFeHBfcGFyYW1zT3JBcmd1bWVudCBpbnN0YW5jZW9mIEFycmF5KSkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzIoc3JjQXJnc09yRXhwX3BhcmFtc09yQXJndW1lbnQpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzMoc3JjQXJnc09yRXhwX3BhcmFtc09yQXJndW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgY29uc3RydWN0b3JfMCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBDVE9SIHRoYXQgY3JlYXRlcyBhIFZBTFVFIGFyZ3VtZW50IGxpc3QgdXNpbmcgYSBnaXZlbiBhcmd1bWVudCBsaXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBwdWJsaWMgYXN5bmMgSW5pdGlhbGl6ZShzcmNBcmdzOiBBcmd1bWVudHNMaXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzAoKTtcclxuICAgIGlmIChzcmNBcmdzID09PSBudWxsKVxyXG4gICAgICB0aGlzLl9saXN0ID0gbnVsbDtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl9saXN0ID0gbmV3IExpc3Q8QXJndW1lbnQ+KCk7XHJcblxyXG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgc3JjQXJncy5nZXRTaXplKCk7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIGxldCBhcmcgPSBuZXcgQXJndW1lbnQoc3JjQXJncy5nZXRBcmcoaSkpO1xyXG4gICAgICAgIGF3YWl0IGFyZy5Jbml0aWFsaXplKHNyY0FyZ3MuZ2V0QXJnKGkpKTtcclxuICAgICAgICB0aGlzLl9saXN0LnB1c2goYXJnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIENUT1IgdGhhdCBjcmVhdGVzIGEgVkFMVUUgYXJndW1lbnQgbGlzdCB1c2luZyBhIGdpdmVuIGV4cHJlc3Npb24gdmFsdWUgbGlzdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8yKEV4cF9wYXJhbXM6IEV4cFZhbFtdKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnN0cnVjdG9yXzAoKTtcclxuICAgIGxldCBhcmdDbnQ6IG51bWJlciA9IEV4cF9wYXJhbXMubGVuZ3RoO1xyXG5cclxuICAgIGlmIChhcmdDbnQgPT09IDApXHJcbiAgICAgIHRoaXMuX2xpc3QgPSBudWxsO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX2xpc3QgPSBuZXcgTGlzdDxBcmd1bWVudD4oKTtcclxuXHJcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBhcmdDbnQ7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIHRoaXMuX2xpc3QucHVzaChuZXcgQXJndW1lbnQoRXhwX3BhcmFtc1tpXSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENUT1IgLSBjcmVhdGUgYW4gYXJndW1lbnQgbGlzdCB3aXRoIG9uZSBzcGVjaWZpZWQgYXJndW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImFyZ3VtZW50XCI+PC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzMoYXJndW1lbnQ6IEFyZ3VtZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLkFkZChhcmd1bWVudCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgZmlsbCB0aGUgYXJndW1lbnQgbGlzdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ2YWx1ZVN0clwiPnN0cmluZyBpbiB0aGUgZm9ybWF0IG9mOiBcIltGOnN0cixzdHJdfFtFOnN0cl0kLi4uXCI8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic3JjVGFza1wiPnRoZSBzb3VyY2UgdGFzayBmb3IgcGFyc2luZyBleHByZXNzaW9uIGFyZ3VtZW50czwvcGFyYW0+XHJcbiAgZmlsbExpc3QodmFsdWVTdHI6IHN0cmluZywgc3JjVGFzazogVGFza0Jhc2UpOiB2b2lkIHtcclxuICAgIGxldCB0b2s6IHN0cmluZ1tdID0gU3RyVXRpbC50b2tlbml6ZSh2YWx1ZVN0ciwgXCIkXCIpO1xyXG4gICAgbGV0IHNpemU6IG51bWJlciA9IHRvay5sZW5ndGg7XHJcblxyXG4gICAgdGhpcy5fbGlzdCA9IG5ldyBMaXN0PEFyZ3VtZW50PigpO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBzaXplOyBpID0gaSArIDEpIHtcclxuICAgICAgbGV0IGFyZ3VtZW50OiBBcmd1bWVudCA9IG5ldyBBcmd1bWVudCgpO1xyXG4gICAgICBhcmd1bWVudC5maWxsRGF0YSh0b2tbaV0sIDxUYXNrPnNyY1Rhc2spO1xyXG4gICAgICB0aGlzLl9saXN0LnB1c2goYXJndW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGJ1aWxkcyBhcmd1bWVudCBsaXN0IGZyb20gdGhlIGV2ZW50IHBhcmFtZXRlcnNcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwic2l6ZVwiPiAgIC0gYXJndW1lbnQgbnVtYmVyIDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJhdHRyc1wiPiAgLSBzdHJpbmcgb2YgYXR0cmlidXRlczwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ2YWxzXCI+ICAgLSB2YWx1ZSBzdHJpbmdzPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm51bGxzXCI+ICAtIGFyZ3VtZW50cyBudWxsczwvcGFyYW0+XHJcbiAgYnVpbGRMaXN0RnJvbVBhcmFtcyhzaXplOiBudW1iZXIsIGF0dHJzOiBzdHJpbmcsIHZhbHM6IHN0cmluZ1tdLCBudWxsczogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9saXN0ID0gbmV3IExpc3Q8QXJndW1lbnQ+KCk7XHJcblxyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHNpemU7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgYXJndW1lbnQ6IEFyZ3VtZW50ID0gbmV3IEFyZ3VtZW50KCk7XHJcbiAgICAgIGFyZ3VtZW50LmZpbGxEYXRhQnlQYXJhbXMoPFN0b3JhZ2VBdHRyaWJ1dGU+YXR0cnMuY2hhckF0KGkpLCB2YWxzW2ldLCBudWxscy5jaGFyQXQoaSkgIT09ICcwJy8qJzAnKi8pO1xyXG4gICAgICB0aGlzLl9saXN0LnB1c2goYXJndW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGJ1aWxkIHRoZSBYTUwgc3RyaW5nIGZvciB0aGUgYXJndW1lbnRzIGxpc3RcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibWVzc2FnZVwiPnRoZSBYTUwgc3RyaW5nIHRvIGFwcGVuZCB0aGUgYXJndW1lbnRzIHRvPC9wYXJhbT5cclxuICBidWlsZFhNTChtZXNzYWdlOiBTdHJpbmdCdWlsZGVyKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgdGhpcy5fbGlzdC5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBpZiAoaSA+IDApXHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoJyQnKS8qJyQnKi87XHJcbiAgICAgIHRoaXMuX2xpc3QuZ2V0X0l0ZW0oaSkuYnVpbGRYTUwobWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgcmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgbGlzdFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0U2l6ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLl9saXN0ID09PSBudWxsKSA/IDAgOiB0aGlzLl9saXN0Lmxlbmd0aDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICByZXR1cm5zIGFuIGFyZ3VtZW50IGl0ZW0gZnJvbSB0aGUgbGlzdCBieSBpdHMgaW5kZXhcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaWR4XCI+dGhlIGluZGV4IG9mIHRoZSByZXF1ZXN0ZWQgYXJndW1lbnQ8L3BhcmFtPlxyXG4gIGdldEFyZyhpZHg6IG51bWJlcik6IEFyZ3VtZW50IHtcclxuICAgIGlmIChpZHggPCAwIHx8IGlkeCA+PSB0aGlzLl9saXN0Lmxlbmd0aClcclxuICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2xpc3QuZ2V0X0l0ZW0oaWR4KTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBnZXQgVmFsdWUgb2YgQXJndW1lbnRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaWR4XCI+dGhlIGluZGV4IG9mIHRoZSByZXF1ZXN0ZWQgYXJndW1lbnQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwVHlwZVwiPnR5cGUgb2YgZXhwZWN0ZWQgdHlwZSBvZiBldmFsdWF0aW9uLCBmb3IgZXhwcmVzc2lvbiBvbmx5PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4cFNpemVcIj5zaXplIG9mIGV4cGVjdGVkIHN0cmluZyBmcm9tIGV2YWx1YXRpb24sIGZvciBleHByZXNzaW9uIG9ubHk8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz4gdmFsdWUgb2YgZXZhbHVhdGVkIEFyZ3VtZW50PC9yZXR1cm5zPlxyXG4gIGFzeW5jIGdldEFyZ1ZhbHVlKGlkeDogbnVtYmVyLCBleHBUeXBlOiBTdG9yYWdlQXR0cmlidXRlLCBleHBTaXplOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgbGV0IGFyZzogQXJndW1lbnQgPSB0aGlzLmdldEFyZyhpZHgpO1xyXG4gICAgaWYgKGFyZyA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICByZXR1cm4gYXdhaXQgYXJnLmdldFZhbHVlKGV4cFR5cGUsIGV4cFNpemUpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBmaWxsIHRoZSBhcmd1bWVudHMgbGlzdCBmcm9tIGEgc3RyaW5nXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJhcmdzU3RyaW5nXCI+PC9wYXJhbT5cclxuICBGaWxsTGlzdEZyb21TdHJpbmcoYXJnc1N0cmluZzogc3RyaW5nKTogdm9pZCB7XHJcblxyXG4gICAgLy8gVE9ETyA6IGNoZWNrIHNpemUgb2YgYnVuZGxlIGFuZCBkZWNpZGUgd2hldGhlciB0byB1c2UgUmVnRXhwXHJcbiAgICBsZXQgcGF0dGVybiA9IG5ldyBSZWdFeHAoXCIoPzwhXFxcXFxcXFwpLFwiKTtcclxuICAgIGxldCBhcnJheTogc3RyaW5nW10gPSBhcmdzU3RyaW5nLnNwbGl0KHBhdHRlcm4pO1xyXG4gICAgdGhpcy5fbGlzdCA9IG5ldyBMaXN0PEFyZ3VtZW50PigpO1xyXG5cclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBhcnJheS5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICBsZXQgYXJndW1lbnQ6IEFyZ3VtZW50ID0gbmV3IEFyZ3VtZW50KCk7XHJcbiAgICAgIGFyZ3VtZW50LkZpbGxGcm9tU3RyaW5nKGFycmF5W2ldKTtcclxuICAgICAgdGhpcy5fbGlzdC5wdXNoKGFyZ3VtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gYWRkIGFuIGFyZ3VtZW50IHRvIHRoZSBsaXN0XHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJhcmd1bWVudFwiPjwvcGFyYW0+XHJcbiAgQWRkKGFyZ3VtZW50OiBBcmd1bWVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2xpc3QgPT09IG51bGwpXHJcbiAgICAgIHRoaXMuX2xpc3QgPSBuZXcgTGlzdDxBcmd1bWVudD4oKTtcclxuICAgIHRoaXMuX2xpc3QucHVzaChhcmd1bWVudCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,152 +0,0 @@
1
- import { ExpressionEvaluator, NullValueException } from "../exp/ExpressionEvaluator";
2
- import { DisplayConvertor, ExpVal } from "@magic-xpa/gui";
3
- import { StorageAttribute, StrUtil } from "@magic-xpa/utils";
4
- import { Char, NString } from "@magic-xpa/mscorelib";
5
- export class Boundary {
6
- constructor(task, minIdx, maxIdx, returnType, size, cacheTableId) {
7
- this._cacheTableFldId = 0;
8
- this._max = null;
9
- this._min = null;
10
- this._retType = StorageAttribute.NONE;
11
- this._size = 0;
12
- this._maxExpVal = null;
13
- this._minExpVal = null;
14
- this.DiscardMin = false;
15
- this.DiscardMax = false;
16
- this.MaxEqualsMin = false;
17
- if (arguments.length === 5)
18
- this.constructor_0(task, minIdx, maxIdx, returnType, size);
19
- else
20
- this.constructor_1(task, minIdx, maxIdx, returnType, size, cacheTableId);
21
- }
22
- constructor_0(task, minIdx, maxIdx, returnType, size) {
23
- this.constructor_1(task, minIdx, maxIdx, returnType, size, -1);
24
- }
25
- constructor_1(task, minIdx, maxIdx, returnType, size, cacheTableId) {
26
- this._retType = returnType;
27
- this._size = size;
28
- this._cacheTableFldId = cacheTableId;
29
- if (minIdx !== -1)
30
- this._min = task.getExpById(minIdx);
31
- if (maxIdx !== -1)
32
- this._max = task.getExpById(maxIdx);
33
- }
34
- hasMinExp() {
35
- return this._min !== null;
36
- }
37
- hasMaxExp() {
38
- return this._max !== null;
39
- }
40
- getExpType() {
41
- return this._retType;
42
- }
43
- getCacheTableFldId() {
44
- return this._cacheTableFldId;
45
- }
46
- async compute(padValueWithMinMaxCharacters) {
47
- if (this.hasMinExp()) {
48
- let minVal = await this._min.evaluateWithResultTypeAndLength(this.getExpType(), this._size);
49
- if (minVal !== null) {
50
- minVal = NString.TrimEnd(minVal, new Array(0));
51
- }
52
- this._minExpVal = new ExpVal(this.getExpType(), minVal === null, minVal);
53
- this.MaxEqualsMin = this.IsMaxEqualsMin();
54
- if (!this._minExpVal.IsNull && (this._minExpVal.Attr === StorageAttribute.ALPHA || this._minExpVal.Attr === StorageAttribute.UNICODE)) {
55
- if (padValueWithMinMaxCharacters) {
56
- this._minExpVal.StrVal = DisplayConvertor.StringValueToMgValue(this._minExpVal.StrVal, this._minExpVal.Attr, Char.MinValue, this._size).toString();
57
- this.MaxEqualsMin = false;
58
- }
59
- this._minExpVal.StrVal = StrUtil.SearchAndReplaceWildChars(this._minExpVal.StrVal, this._size, Char.MinValue);
60
- }
61
- this.DiscardMin = await this._min.DiscardCndRangeResult();
62
- }
63
- if (this.hasMaxExp()) {
64
- let maxVal = await this._max.evaluateWithResultTypeAndLength(this.getExpType(), this._size);
65
- this._maxExpVal = new ExpVal(this.getExpType(), maxVal === null, maxVal);
66
- if (!this._maxExpVal.IsNull && (this._maxExpVal.Attr === StorageAttribute.ALPHA || this._maxExpVal.Attr === StorageAttribute.UNICODE)) {
67
- if (padValueWithMinMaxCharacters) {
68
- this._maxExpVal.StrVal = DisplayConvertor.StringValueToMgValue(this._maxExpVal.StrVal, this._maxExpVal.Attr, Char.MaxValue, this._size);
69
- }
70
- this._maxExpVal.StrVal = StrUtil.SearchAndReplaceWildChars(this._maxExpVal.StrVal, this._size, Char.MaxValue);
71
- }
72
- this.DiscardMax = await this._max.DiscardCndRangeResult();
73
- }
74
- }
75
- checkRange(val, IsNull) {
76
- let res = true;
77
- let cmpVal = new ExpVal(this.getExpType(), IsNull, val);
78
- if (cmpVal.IsNull && ((this.hasMinExp() && this._minExpVal.IsNull) || (this.hasMaxExp() && this._maxExpVal.IsNull))) {
79
- res = true;
80
- }
81
- else {
82
- if (this.hasMinExp()) {
83
- if (!this._minExpVal.IsNull && !cmpVal.IsNull) {
84
- try {
85
- if (ExpressionEvaluator.val_cmp_any(cmpVal, this._minExpVal) < 0)
86
- res = false;
87
- }
88
- catch (exception) {
89
- if (exception instanceof NullValueException) {
90
- res = false;
91
- }
92
- else
93
- throw exception;
94
- }
95
- }
96
- else {
97
- if (cmpVal.IsNull !== this._minExpVal.IsNull)
98
- res = false;
99
- }
100
- }
101
- if (this.hasMaxExp() && res) {
102
- if (!this._maxExpVal.IsNull && !cmpVal.IsNull) {
103
- try {
104
- if (ExpressionEvaluator.val_cmp_any(cmpVal, this._maxExpVal) > 0)
105
- res = false;
106
- }
107
- catch (exception) {
108
- if (exception instanceof NullValueException)
109
- res = false;
110
- else
111
- throw exception;
112
- }
113
- }
114
- else if (cmpVal.IsNull !== this._maxExpVal.IsNull)
115
- res = false;
116
- }
117
- }
118
- return res;
119
- }
120
- IsMaxEqualsMin() {
121
- let result = false;
122
- if (this.hasMaxExp() && this.hasMinExp()) {
123
- if (this._min.getId() === this._max.getId()) {
124
- if (this._retType === StorageAttribute.ALPHA || this._retType === StorageAttribute.UNICODE)
125
- result = !this.WildCharExist();
126
- else
127
- result = true;
128
- }
129
- }
130
- return result;
131
- }
132
- WildCharExist() {
133
- let wildChars = ["*", "?"];
134
- let result = false;
135
- if (!this._minExpVal.IsNull) {
136
- let stringValue = this._minExpVal.StrVal;
137
- for (let i = 0; i < wildChars.length; i = i + 1) {
138
- if (stringValue.endsWith(wildChars[i])) {
139
- result = true;
140
- break;
141
- }
142
- }
143
- }
144
- return result;
145
- }
146
- toString() {
147
- return NString.Format("{{Boundary: {0}-{1}, {2}, {3}}}", [
148
- this._max, this._max, this._retType, this._size
149
- ]);
150
- }
151
- }
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm91bmRhcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0JvdW5kYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHM0QsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtuRCxNQUFNLE9BQU8sUUFBUTtJQWdCbkIsWUFBWSxJQUFVLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxVQUE0QixFQUFFLElBQVksRUFBRSxZQUFxQjtRQWZqSCxxQkFBZ0IsR0FBVyxDQUFDLENBQUM7UUFDN0IsU0FBSSxHQUFlLElBQUksQ0FBQztRQUN4QixTQUFJLEdBQWUsSUFBSSxDQUFDO1FBQ3hCLGFBQVEsR0FBcUIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1FBQ25ELFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsZUFBVSxHQUFXLElBQUksQ0FBQztRQUMxQixlQUFVLEdBQVcsSUFBSSxDQUFDO1FBRWxDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQU01QixJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQzs7WUFFM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFVTyxhQUFhLENBQUMsSUFBVSxFQUFFLE1BQWMsRUFBRSxNQUFjLEVBQUUsVUFBNEIsRUFBRSxJQUFZO1FBQzFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyxhQUFhLENBQUMsSUFBVSxFQUFFLE1BQWMsRUFBRSxNQUFjLEVBQUUsVUFBNEIsRUFBRSxJQUFZLEVBQUUsWUFBb0I7UUFDaEksSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQztRQUNyQyxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEMsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFHRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztJQUM1QixDQUFDO0lBR0QsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUtELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQU1ELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBS0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyw0QkFBcUM7UUFDakQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFHcEIsSUFBSSxNQUFNLEdBQVcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEcsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO2dCQUNuQixNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN4RDtZQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sS0FBSyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFHekUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNySSxJQUFJLDRCQUE0QixFQUFFO29CQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDMUosSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7aUJBQzNCO2dCQUNELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBUTthQUN0SDtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDM0Q7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUdwQixJQUFJLE1BQU0sR0FBVyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEtBQUssSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRXpFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDckksSUFBSSw0QkFBNEIsRUFBRTtvQkFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ2pKO2dCQUNELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBUTthQUN0SDtZQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBT0QsVUFBVSxDQUFDLEdBQVcsRUFBRSxNQUFlO1FBQ3JDLElBQUksR0FBRyxHQUFZLElBQUksQ0FBQztRQUV4QixJQUFJLE1BQU0sR0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWhFLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1lBQ25ILEdBQUcsR0FBRyxJQUFJLENBQUM7U0FDWjthQUNJO1lBRUgsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBR3BCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQzdDLElBQUk7d0JBRUYsSUFBSSxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDOzRCQUM5RCxHQUFHLEdBQUcsS0FBSyxDQUFDO3FCQUNmO29CQUNELE9BQU8sU0FBUyxFQUFFO3dCQUNoQixJQUFJLFNBQVMsWUFBWSxrQkFBa0IsRUFBRTs0QkFDM0MsR0FBRyxHQUFHLEtBQUssQ0FBQzt5QkFDYjs7NEJBRUMsTUFBTSxTQUFTLENBQUM7cUJBQ25CO2lCQUNGO3FCQUNJO29CQUNILElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07d0JBQzFDLEdBQUcsR0FBRyxLQUFLLENBQUM7aUJBQ2Y7YUFDRjtZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRTtnQkFFM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDN0MsSUFBSTt3QkFFRixJQUFJLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7NEJBQzlELEdBQUcsR0FBRyxLQUFLLENBQUM7cUJBQ2Y7b0JBQ0QsT0FBTyxTQUFTLEVBQUU7d0JBQ2hCLElBQUksU0FBUyxZQUFZLGtCQUFrQjs0QkFDekMsR0FBRyxHQUFHLEtBQUssQ0FBQzs7NEJBRVosTUFBTSxTQUFTLENBQUM7cUJBQ25CO2lCQUNGO3FCQUVJLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU07b0JBQy9DLEdBQUcsR0FBRyxLQUFLLENBQUM7YUFDZjtTQUNGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBTUQsY0FBYztRQUNaLElBQUksTUFBTSxHQUFZLEtBQUssQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPO29CQUN4RixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7O29CQUUvQixNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ2pCO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBTU8sYUFBYTtRQUNuQixJQUFJLFNBQVMsR0FBYSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU0sR0FBWSxLQUFLLENBQUM7UUFHNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQzNCLElBQUksV0FBVyxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBRWpELEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3RDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ2QsTUFBTTtpQkFDUDthQUNGO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSztTQUNoRCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V4cHJlc3Npb25FdmFsdWF0b3IsIE51bGxWYWx1ZUV4Y2VwdGlvbn0gZnJvbSBcIi4uL2V4cC9FeHByZXNzaW9uRXZhbHVhdG9yXCI7XHJcbmltcG9ydCB7RGlzcGxheUNvbnZlcnRvciwgRXhwVmFsfSBmcm9tIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHtTdG9yYWdlQXR0cmlidXRlLCBTdHJVdGlsfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0V4cHJlc3Npb259IGZyb20gXCIuLi9leHAvRXhwcmVzc2lvblwiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCI7XHJcbmltcG9ydCB7Q2hhciwgTlN0cmluZ30gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIHRoaXMgY2xhc3MgcmVwcmVzZW50IGEgcmFuZ2Ugb3IgbG9jYXRlIHNlY3Rpb25zIC0gaS5lLiBtaW4vbWF4IGV4cHJlc3Npb25zXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBCb3VuZGFyeSB7XHJcbiAgcHJpdmF0ZSBfY2FjaGVUYWJsZUZsZElkOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX21heDogRXhwcmVzc2lvbiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfbWluOiBFeHByZXNzaW9uID0gbnVsbDtcclxuICBwcml2YXRlIF9yZXRUeXBlOiBTdG9yYWdlQXR0cmlidXRlID0gU3RvcmFnZUF0dHJpYnV0ZS5OT05FO1xyXG4gIHByaXZhdGUgX3NpemU6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfbWF4RXhwVmFsOiBFeHBWYWwgPSBudWxsO1xyXG4gIHByaXZhdGUgX21pbkV4cFZhbDogRXhwVmFsID0gbnVsbDtcclxuXHJcbiAgRGlzY2FyZE1pbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIERpc2NhcmRNYXg6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBNYXhFcXVhbHNNaW46IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyKTtcclxuICBjb25zdHJ1Y3Rvcih0YXNrOiBUYXNrLCBtaW5JZHg6IG51bWJlciwgbWF4SWR4OiBudW1iZXIsIHJldHVyblR5cGU6IFN0b3JhZ2VBdHRyaWJ1dGUsIHNpemU6IG51bWJlciwgY2FjaGVUYWJsZUlkOiBudW1iZXIpO1xyXG4gIGNvbnN0cnVjdG9yKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyLCBjYWNoZVRhYmxlSWQ/OiBudW1iZXIpIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSA1KVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzAodGFzaywgbWluSWR4LCBtYXhJZHgsIHJldHVyblR5cGUsIHNpemUpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzEodGFzaywgbWluSWR4LCBtYXhJZHgsIHJldHVyblR5cGUsIHNpemUsIGNhY2hlVGFibGVJZCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIEluc3RhbnRpYXRlcyBhIG5ldyBCb3VuZGFyeSBvYmplY3RcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1pbklkeFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwibWF4SWR4XCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJyZXR1cm5UeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJzaXplXCI+PC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzAodGFzazogVGFzaywgbWluSWR4OiBudW1iZXIsIG1heElkeDogbnVtYmVyLCByZXR1cm5UeXBlOiBTdG9yYWdlQXR0cmlidXRlLCBzaXplOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uc3RydWN0b3JfMSh0YXNrLCBtaW5JZHgsIG1heElkeCwgcmV0dXJuVHlwZSwgc2l6ZSwgLTEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcl8xKHRhc2s6IFRhc2ssIG1pbklkeDogbnVtYmVyLCBtYXhJZHg6IG51bWJlciwgcmV0dXJuVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgc2l6ZTogbnVtYmVyLCBjYWNoZVRhYmxlSWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fcmV0VHlwZSA9IHJldHVyblR5cGU7XHJcbiAgICB0aGlzLl9zaXplID0gc2l6ZTtcclxuICAgIHRoaXMuX2NhY2hlVGFibGVGbGRJZCA9IGNhY2hlVGFibGVJZDtcclxuICAgIGlmIChtaW5JZHggIT09IC0xKVxyXG4gICAgICB0aGlzLl9taW4gPSB0YXNrLmdldEV4cEJ5SWQobWluSWR4KTtcclxuXHJcbiAgICBpZiAobWF4SWR4ICE9PSAtMSlcclxuICAgICAgdGhpcy5fbWF4ID0gdGFzay5nZXRFeHBCeUlkKG1heElkeCk7XHJcbiAgfVxyXG5cclxuICAvLyBzb21ldGltZXMgdGhlIG1pbiBvciBtYXggZG9lcyBub3QgaGF2ZSBhbiBleHByZXNzaW9uXHJcbiAgaGFzTWluRXhwKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbiAhPT0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vIHNvbWV0aW1lcyB0aGUgbWluIG9yIG1heCBkb2VzIG5vdCBoYXZlIGFuIGV4cHJlc3Npb25cclxuICBoYXNNYXhFeHAoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4ICE9PSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybnMgdGhlIG1pbi9tYXggZXhwcmVzc2lvbnMgcmV0dXJuIHR5cGUgLSBpdCBhY3R1YWxseSB0aGUgdHlwZSBvZiB0aGUgZmllbGQgdGhleSBhcmUgQXNzb2NpYXRlZCB3aXRoXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRFeHBUeXBlKCk6IFN0b3JhZ2VBdHRyaWJ1dGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JldFR5cGU7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIHJldHVybiB0aGUgaWQgb2YgdGhlIGNhY2hlZCB0YWJsZSBmaWVsZCB0aGlzIHJhbmdlIGNvcnJlc3BvbmRzIHRvXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXRDYWNoZVRhYmxlRmxkSWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZVRhYmxlRmxkSWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY29tcHV0ZXMgdGhlIG1pbiBhbmQgbWF4IGV4cHJlc3Npb24gdG8gY2hlY2sgdGhlaXIgdmFsdWVzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhc3luYyBjb21wdXRlKHBhZFZhbHVlV2l0aE1pbk1heENoYXJhY3RlcnM6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmhhc01pbkV4cCgpKSB7XHJcblxyXG4gICAgICAvLyBldmFsdWF0ZSB0aGUgbWluIGV4cHJlc3Npb25cclxuICAgICAgbGV0IG1pblZhbDogc3RyaW5nID0gYXdhaXQgdGhpcy5fbWluLmV2YWx1YXRlV2l0aFJlc3VsdFR5cGVBbmRMZW5ndGgodGhpcy5nZXRFeHBUeXBlKCksIHRoaXMuX3NpemUpO1xyXG4gICAgICBpZiAobWluVmFsICE9PSBudWxsKSB7XHJcbiAgICAgICAgbWluVmFsID0gTlN0cmluZy5UcmltRW5kKG1pblZhbCwgbmV3IEFycmF5PHN0cmluZz4oMCkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl9taW5FeHBWYWwgPSBuZXcgRXhwVmFsKHRoaXMuZ2V0RXhwVHlwZSgpLCBtaW5WYWwgPT09IG51bGwsIG1pblZhbCk7XHJcblxyXG4gICAgICAvLyBjaGVjayBhbmQgc2V0IHRoZSBNYXhFcXVhbHNNaW4gYmVmb3JlIHRoZSB3aWxkIGNoYXJzIGFyZSByZXBsYWNlZCBvbiB0aGUgc3RyaW5nIHJlc3VsdFxyXG4gICAgICB0aGlzLk1heEVxdWFsc01pbiA9IHRoaXMuSXNNYXhFcXVhbHNNaW4oKTtcclxuXHJcbiAgICAgIGlmICghdGhpcy5fbWluRXhwVmFsLklzTnVsbCAmJiAodGhpcy5fbWluRXhwVmFsLkF0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuQUxQSEEgfHwgdGhpcy5fbWluRXhwVmFsLkF0dHIgPT09IFN0b3JhZ2VBdHRyaWJ1dGUuVU5JQ09ERSkpIHtcclxuICAgICAgICBpZiAocGFkVmFsdWVXaXRoTWluTWF4Q2hhcmFjdGVycykge1xyXG4gICAgICAgICAgdGhpcy5fbWluRXhwVmFsLlN0clZhbCA9IERpc3BsYXlDb252ZXJ0b3IuU3RyaW5nVmFsdWVUb01nVmFsdWUodGhpcy5fbWluRXhwVmFsLlN0clZhbCwgdGhpcy5fbWluRXhwVmFsLkF0dHIsIENoYXIuTWluVmFsdWUsIC8qJ1x1MDAwMCcqL3RoaXMuX3NpemUpLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICB0aGlzLk1heEVxdWFsc01pbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9taW5FeHBWYWwuU3RyVmFsID0gU3RyVXRpbC5TZWFyY2hBbmRSZXBsYWNlV2lsZENoYXJzKHRoaXMuX21pbkV4cFZhbC5TdHJWYWwsIHRoaXMuX3NpemUsIENoYXIuTWluVmFsdWUpLyonXHUwMDAwJyovO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuRGlzY2FyZE1pbiA9IGF3YWl0IHRoaXMuX21pbi5EaXNjYXJkQ25kUmFuZ2VSZXN1bHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oYXNNYXhFeHAoKSkge1xyXG5cclxuICAgICAgLy8gZXZhbHVhdGUgdGhlIG1heCBleHByZXNzaW9uXHJcbiAgICAgIGxldCBtYXhWYWw6IHN0cmluZyA9IGF3YWl0IHRoaXMuX21heC5ldmFsdWF0ZVdpdGhSZXN1bHRUeXBlQW5kTGVuZ3RoKHRoaXMuZ2V0RXhwVHlwZSgpLCB0aGlzLl9zaXplKTtcclxuICAgICAgdGhpcy5fbWF4RXhwVmFsID0gbmV3IEV4cFZhbCh0aGlzLmdldEV4cFR5cGUoKSwgbWF4VmFsID09PSBudWxsLCBtYXhWYWwpO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLl9tYXhFeHBWYWwuSXNOdWxsICYmICh0aGlzLl9tYXhFeHBWYWwuQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCB0aGlzLl9tYXhFeHBWYWwuQXR0ciA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5VTklDT0RFKSkge1xyXG4gICAgICAgIGlmIChwYWRWYWx1ZVdpdGhNaW5NYXhDaGFyYWN0ZXJzKSB7XHJcbiAgICAgICAgICB0aGlzLl9tYXhFeHBWYWwuU3RyVmFsID0gRGlzcGxheUNvbnZlcnRvci5TdHJpbmdWYWx1ZVRvTWdWYWx1ZSh0aGlzLl9tYXhFeHBWYWwuU3RyVmFsLCB0aGlzLl9tYXhFeHBWYWwuQXR0ciwgQ2hhci5NYXhWYWx1ZSAvKifvv78nKi8sIHRoaXMuX3NpemUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9tYXhFeHBWYWwuU3RyVmFsID0gU3RyVXRpbC5TZWFyY2hBbmRSZXBsYWNlV2lsZENoYXJzKHRoaXMuX21heEV4cFZhbC5TdHJWYWwsIHRoaXMuX3NpemUsIENoYXIuTWF4VmFsdWUpLyon77+/JyovO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuRGlzY2FyZE1heCA9IGF3YWl0IHRoaXMuX21heC5EaXNjYXJkQ25kUmFuZ2VSZXN1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICB0aGlzIGZ1bmN0aW9uIGdldHMgYSB2YWx1ZSBhbmQgY2hlY2tzIHdoZXRoZXIgaXQgc2F0aXNmaWVzIHRoZSByYW5nZSBzZWN0aW9uXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbFwiPi0gdGhlIHZhbHVlIHRvIGJlIGNvbXBhcmVkXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgY2hlY2tSYW5nZSh2YWw6IHN0cmluZywgSXNOdWxsOiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBsZXQgY21wVmFsOiBFeHBWYWwgPSBuZXcgRXhwVmFsKHRoaXMuZ2V0RXhwVHlwZSgpLCBJc051bGwsIHZhbCk7XHJcblxyXG4gICAgaWYgKGNtcFZhbC5Jc051bGwgJiYgKCh0aGlzLmhhc01pbkV4cCgpICYmIHRoaXMuX21pbkV4cFZhbC5Jc051bGwpIHx8ICh0aGlzLmhhc01heEV4cCgpICYmIHRoaXMuX21heEV4cFZhbC5Jc051bGwpKSkge1xyXG4gICAgICByZXMgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIC8vIGNoZWNrIG1pbiBleHByZXNzaW9uIENvbXBsaWFuY2VcclxuICAgICAgaWYgKHRoaXMuaGFzTWluRXhwKCkpIHtcclxuXHJcbiAgICAgICAgLy8gaWYgYm90aCBvZiB0aGUgY29tcGFyZWQgdmFsdWVzIGFyZSBub3QgbnVsbFxyXG4gICAgICAgIGlmICghdGhpcy5fbWluRXhwVmFsLklzTnVsbCAmJiAhY21wVmFsLklzTnVsbCkge1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gdGhlIGNvbXBhcmVkIHZhbHVlIG11c3QgYmUgZXF1YWwgb3IgZ3JlYXRlciB0byB0aGUgbWluIHZhbHVlXHJcbiAgICAgICAgICAgIGlmIChFeHByZXNzaW9uRXZhbHVhdG9yLnZhbF9jbXBfYW55KGNtcFZhbCwgdGhpcy5fbWluRXhwVmFsKSA8IDApXHJcbiAgICAgICAgICAgICAgcmVzID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXRjaCAoZXhjZXB0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmIChleGNlcHRpb24gaW5zdGFuY2VvZiBOdWxsVmFsdWVFeGNlcHRpb24pIHtcclxuICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgdGhyb3cgZXhjZXB0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChjbXBWYWwuSXNOdWxsICE9PSB0aGlzLl9taW5FeHBWYWwuSXNOdWxsKVxyXG4gICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gY2hlY2sgbWF4IGV4cHJlc3Npb24gQ29tcGxpYW5jZVxyXG4gICAgICBpZiAodGhpcy5oYXNNYXhFeHAoKSAmJiByZXMpIHtcclxuICAgICAgICAvLyBpZiBib3RoIG9mIHRoZSBjb21wYXJlZCB2YWx1ZXMgYXJlIG5vdCBudWxsXHJcbiAgICAgICAgaWYgKCF0aGlzLl9tYXhFeHBWYWwuSXNOdWxsICYmICFjbXBWYWwuSXNOdWxsKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAvLyB0aGUgY29tcGFyZWQgdmFsdWUgbXVzdCBiZSBlcXVhbCBvciBncmVhdGVyIHRvIHRoZSBtaW4gdmFsdWVcclxuICAgICAgICAgICAgaWYgKEV4cHJlc3Npb25FdmFsdWF0b3IudmFsX2NtcF9hbnkoY21wVmFsLCB0aGlzLl9tYXhFeHBWYWwpID4gMClcclxuICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhdGNoIChleGNlcHRpb24pIHtcclxuICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbiBpbnN0YW5jZW9mIE51bGxWYWx1ZUV4Y2VwdGlvbilcclxuICAgICAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgIHRocm93IGV4Y2VwdGlvbjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgb25lIG9mIHRoZW0gaXMgbnVsbCBhbmQgbnVsbCBpcyB0aGUgZ3JlYXRlc3QgdmFsdWUgdGhlcmUgaXMgd2UgbXVzdCBjaGVjayB0aGF0IG1heEV4cFZhbCBpcyBub3QgbnVsbFxyXG4gICAgICAgIGVsc2UgaWYgKGNtcFZhbC5Jc051bGwgIT09IHRoaXMuX21heEV4cFZhbC5Jc051bGwpXHJcbiAgICAgICAgICByZXMgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gcmV0dXJucyB0cnVlIGlmIG1pbiBleHByZXNzaW9uIGVxdWFsIHRvIG1heCBleHByZXNzaW9uIGFuZCBubyB3aWxkIGNoYXJzICgqLCA/KSBleGlzdCBpbiB0aGUgcmFuZ2VcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgSXNNYXhFcXVhbHNNaW4oKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5oYXNNYXhFeHAoKSAmJiB0aGlzLmhhc01pbkV4cCgpKSB7XHJcbiAgICAgIGlmICh0aGlzLl9taW4uZ2V0SWQoKSA9PT0gdGhpcy5fbWF4LmdldElkKCkpIHtcclxuICAgICAgICBpZiAodGhpcy5fcmV0VHlwZSA9PT0gU3RvcmFnZUF0dHJpYnV0ZS5BTFBIQSB8fCB0aGlzLl9yZXRUeXBlID09PSBTdG9yYWdlQXR0cmlidXRlLlVOSUNPREUpXHJcbiAgICAgICAgICByZXN1bHQgPSAhdGhpcy5XaWxkQ2hhckV4aXN0KCk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgcmVzdWx0ID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY2hlY2tzIGlmIHdpbGQgY2hhciBleGlzdCBpbiB0bmUgdmFsdWVcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgcHJpdmF0ZSBXaWxkQ2hhckV4aXN0KCk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHdpbGRDaGFyczogc3RyaW5nW10gPSBbXCIqXCIsIFwiP1wiXTtcclxuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvLyBjaGVjayB0cmltXHJcbiAgICBpZiAoIXRoaXMuX21pbkV4cFZhbC5Jc051bGwpIHtcclxuICAgICAgbGV0IHN0cmluZ1ZhbHVlOiBzdHJpbmcgPSB0aGlzLl9taW5FeHBWYWwuU3RyVmFsO1xyXG5cclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHdpbGRDaGFycy5sZW5ndGg7IGkgPSBpICsgMSkge1xyXG4gICAgICAgIGlmIChzdHJpbmdWYWx1ZS5lbmRzV2l0aCh3aWxkQ2hhcnNbaV0pKSB7XHJcbiAgICAgICAgICByZXN1bHQgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBOU3RyaW5nLkZvcm1hdChcInt7Qm91bmRhcnk6IHswfS17MX0sIHsyfSwgezN9fX1cIiwgW1xyXG4gICAgICB0aGlzLl9tYXgsIHRoaXMuX21heCwgdGhpcy5fcmV0VHlwZSwgdGhpcy5fc2l6ZVxyXG4gICAgXSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,65 +0,0 @@
1
- import { Logger, StrUtil, XMLConstants, XmlParser } from "@magic-xpa/utils";
2
- import { NString, NNumber } from "@magic-xpa/mscorelib";
3
- import { ConstInterface } from "../ConstInterface";
4
- export class CompMainPrgTable {
5
- constructor() {
6
- this._ctlIdxTab = null;
7
- }
8
- fillData(parser) {
9
- let endContext = parser.getXMLdata().indexOf(XMLConstants.TAG_TERM, parser.getCurrIndex());
10
- if (endContext !== -1 && endContext < parser.getXMLdata().length) {
11
- let tag = parser.getXMLsubstring(endContext);
12
- parser.add2CurrIndex(tag.indexOf(ConstInterface.MG_TAG_COMPMAINPRG) + ConstInterface.MG_TAG_COMPMAINPRG.length);
13
- let tokensVector = XmlParser.getTokens(parser.getXMLsubstring(endContext), XMLConstants.XML_ATTR_DELIM);
14
- Logger.Instance.WriteDevToLog("in CompMainPrg.FillData: " + tokensVector.toString());
15
- this.initElements(tokensVector);
16
- parser.setCurrIndex(endContext + XMLConstants.TAG_TERM.length);
17
- return;
18
- }
19
- Logger.Instance.WriteExceptionToLogWithMsg("in CompMainPrg.FillData() out of string bounds");
20
- }
21
- initElements(tokensVector) {
22
- for (let j = 0; j < tokensVector.length; j += 2) {
23
- let attribute = (tokensVector.get_Item(j));
24
- let valueStr = (tokensVector.get_Item(j + 1));
25
- if (attribute === XMLConstants.MG_ATTR_VALUE) {
26
- valueStr = StrUtil.DeleteStringsFromEnds(valueStr, "\"");
27
- this.initCtlIdxTab(valueStr);
28
- }
29
- else
30
- Logger.Instance.WriteExceptionToLogWithMsg(NString.Format("There is no such index in CompMainPrg. Add case to CompMainPrg.initElements for {0}", attribute));
31
- }
32
- Logger.Instance.WriteDevToLog("End CompMainPrg ");
33
- }
34
- initCtlIdxTab(val) {
35
- if (NString.IsNullOrEmpty(val))
36
- return;
37
- if (val.indexOf(",") !== -1)
38
- this._ctlIdxTab = StrUtil.tokenize(val, ",");
39
- else {
40
- this._ctlIdxTab = new Array(1);
41
- this._ctlIdxTab[0] = val;
42
- }
43
- }
44
- getCtlIdx(idx) {
45
- if (idx >= 0 && idx < this.getSize()) {
46
- let s = this._ctlIdxTab[idx];
47
- return NNumber.Parse(s);
48
- }
49
- return -1;
50
- }
51
- getIndexOf(ctlIdx) {
52
- let i;
53
- for (i = 0; i < this.getSize(); i++) {
54
- if (ctlIdx === this.getCtlIdx(i))
55
- return i;
56
- }
57
- return -1;
58
- }
59
- getSize() {
60
- if (this._ctlIdxTab === null)
61
- return 0;
62
- return this._ctlIdxTab.length;
63
- }
64
- }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcE1haW5QcmdUYWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcnQvQ29tcE1haW5QcmdUYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUFPLE9BQU8sRUFBRSxPQUFPLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsTUFBTSxPQUFPLGdCQUFnQjtJQUE3QjtRQUNVLGVBQVUsR0FBYSxJQUFJLENBQUM7SUFnRXRDLENBQUM7SUE5RFEsUUFBUSxDQUFDLE1BQWlCO1FBQy9CLElBQUksVUFBVSxHQUFXLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUNuRyxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLE1BQU0sRUFBRTtZQUNoRSxJQUFJLEdBQUcsR0FBVyxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsR0FBRyxjQUFjLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEgsSUFBSSxZQUFZLEdBQWlCLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsRUFDbEMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLDJCQUEyQixHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvRCxPQUFPO1NBQ1I7UUFDRCxNQUFNLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVPLFlBQVksQ0FBQyxZQUEwQjtRQUM3QyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3ZELElBQUksU0FBUyxHQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25ELElBQUksUUFBUSxHQUFXLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxJQUFJLFNBQVMsS0FBSyxZQUFZLENBQUMsYUFBYSxFQUFFO2dCQUM1QyxRQUFRLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5Qjs7Z0JBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLHFGQUFxRixFQUM1RixTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQ3JFO1FBQ0QsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQVc7UUFDL0IsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQztZQUM1QixPQUFPO1FBQ1QsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQzFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVztRQUNuQixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsR0FBVyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QjtRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFTLENBQUM7UUFDZCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDOUIsT0FBTyxDQUFDLENBQUM7U0FDWjtRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJO1lBQzFCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvZ2dlciwgU3RyVXRpbCwgWE1MQ29uc3RhbnRzLCBYbWxQYXJzZXJ9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7TGlzdCwgTlN0cmluZywgTk51bWJlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gXCIuLi9Db25zdEludGVyZmFjZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbXBNYWluUHJnVGFibGUge1xyXG4gIHByaXZhdGUgX2N0bElkeFRhYjogc3RyaW5nW10gPSBudWxsO1xyXG5cclxuICBwdWJsaWMgZmlsbERhdGEocGFyc2VyOiBYbWxQYXJzZXIpOiB2b2lkIHtcclxuICAgIGxldCBlbmRDb250ZXh0OiBudW1iZXIgPSBwYXJzZXIuZ2V0WE1MZGF0YSgpLmluZGV4T2YoWE1MQ29uc3RhbnRzLlRBR19URVJNLCBwYXJzZXIuZ2V0Q3VyckluZGV4KCkpO1xyXG4gICAgaWYgKGVuZENvbnRleHQgIT09IC0xICYmIGVuZENvbnRleHQgPCBwYXJzZXIuZ2V0WE1MZGF0YSgpLmxlbmd0aCkge1xyXG4gICAgICBsZXQgdGFnOiBTdHJpbmcgPSBwYXJzZXIuZ2V0WE1Mc3Vic3RyaW5nKGVuZENvbnRleHQpO1xyXG4gICAgICBwYXJzZXIuYWRkMkN1cnJJbmRleCh0YWcuaW5kZXhPZihDb25zdEludGVyZmFjZS5NR19UQUdfQ09NUE1BSU5QUkcpICsgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0NPTVBNQUlOUFJHLmxlbmd0aCk7XHJcbiAgICAgIGxldCB0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPiA9IFhtbFBhcnNlci5nZXRUb2tlbnMocGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRDb250ZXh0KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxDb25zdGFudHMuWE1MX0FUVFJfREVMSU0pO1xyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVEZXZUb0xvZyhcImluIENvbXBNYWluUHJnLkZpbGxEYXRhOiBcIiArIHRva2Vuc1ZlY3Rvci50b1N0cmluZygpKTtcclxuICAgICAgdGhpcy5pbml0RWxlbWVudHModG9rZW5zVmVjdG9yKTtcclxuICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChlbmRDb250ZXh0ICsgWE1MQ29uc3RhbnRzLlRBR19URVJNLmxlbmd0aCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIExvZ2dlci5JbnN0YW5jZS5Xcml0ZUV4Y2VwdGlvblRvTG9nV2l0aE1zZyhcImluIENvbXBNYWluUHJnLkZpbGxEYXRhKCkgb3V0IG9mIHN0cmluZyBib3VuZHNcIik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRFbGVtZW50cyh0b2tlbnNWZWN0b3I6IExpc3Q8c3RyaW5nPik6IHZvaWQge1xyXG4gICAgZm9yIChsZXQgajogbnVtYmVyID0gMDsgaiA8IHRva2Vuc1ZlY3Rvci5sZW5ndGg7IGogKz0gMikge1xyXG4gICAgICBsZXQgYXR0cmlidXRlOiBzdHJpbmcgPSAodG9rZW5zVmVjdG9yLmdldF9JdGVtKGopKTtcclxuICAgICAgbGV0IHZhbHVlU3RyOiBzdHJpbmcgPSAodG9rZW5zVmVjdG9yLmdldF9JdGVtKGogKyAxKSk7XHJcbiAgICAgIGlmIChhdHRyaWJ1dGUgPT09IFhNTENvbnN0YW50cy5NR19BVFRSX1ZBTFVFKSB7XHJcbiAgICAgICAgdmFsdWVTdHIgPSBTdHJVdGlsLkRlbGV0ZVN0cmluZ3NGcm9tRW5kcyh2YWx1ZVN0ciwgXCJcXFwiXCIpO1xyXG4gICAgICAgIHRoaXMuaW5pdEN0bElkeFRhYih2YWx1ZVN0cik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coTlN0cmluZy5Gb3JtYXQoXCJUaGVyZSBpcyBubyBzdWNoIGluZGV4IGluIENvbXBNYWluUHJnLiBBZGQgY2FzZSB0byBDb21wTWFpblByZy5pbml0RWxlbWVudHMgZm9yIHswfVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSkpO1xyXG4gICAgfVxyXG4gICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRGV2VG9Mb2coXCJFbmQgQ29tcE1haW5QcmcgXCIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0Q3RsSWR4VGFiKHZhbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoTlN0cmluZy5Jc051bGxPckVtcHR5KHZhbCkpXHJcbiAgICAgIHJldHVybjtcclxuICAgIGlmICh2YWwuaW5kZXhPZihcIixcIikgIT09IC0xKVxyXG4gICAgICB0aGlzLl9jdGxJZHhUYWIgPSBTdHJVdGlsLnRva2VuaXplKHZhbCwgXCIsXCIpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX2N0bElkeFRhYiA9IG5ldyBBcnJheSgxKTtcclxuICAgICAgdGhpcy5fY3RsSWR4VGFiWzBdID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q3RsSWR4KGlkeDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGlmIChpZHggPj0gMCAmJiBpZHggPCB0aGlzLmdldFNpemUoKSkge1xyXG4gICAgICBsZXQgczogc3RyaW5nID0gdGhpcy5fY3RsSWR4VGFiW2lkeF07XHJcbiAgICAgIHJldHVybiBOTnVtYmVyLlBhcnNlKHMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC0xO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEluZGV4T2YoY3RsSWR4OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgbGV0IGk6IG51bWJlcjtcclxuICAgIGZvciAoaSA9IDA7IGkgPCB0aGlzLmdldFNpemUoKTsgaSsrKSB7XHJcbiAgICAgIGlmIChjdGxJZHggPT09IHRoaXMuZ2V0Q3RsSWR4KGkpKVxyXG4gICAgICAgIHJldHVybiBpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIC0xO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2l6ZSgpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMuX2N0bElkeFRhYiA9PT0gbnVsbClcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICByZXR1cm4gdGhpcy5fY3RsSWR4VGFiLmxlbmd0aDtcclxuICB9XHJcbn1cclxuIl19
@@ -1,53 +0,0 @@
1
- import { Hashtable, StringBuilder } from "@magic-xpa/mscorelib";
2
- import { Logger, XMLConstants, XmlParser } from "@magic-xpa/utils";
3
- import { DataviewHeadersSaxHandler } from "./DataviewHeadersSaxHandler";
4
- import { RemoteDataviewHeader } from "./RemoteDataviewHeader";
5
- import { ConstInterface } from "../ConstInterface";
6
- export class DataviewHeaders {
7
- constructor(task) {
8
- this._dataviewHeaders = null;
9
- this._task = null;
10
- this._task = task;
11
- this._dataviewHeaders = new Hashtable();
12
- }
13
- fillData(parser) {
14
- while (this.initInnerObjects(parser, parser.getNextTag())) {
15
- }
16
- }
17
- initInnerObjects(parser, foundTagName) {
18
- if (foundTagName === null)
19
- return false;
20
- if (foundTagName === ConstInterface.MG_TAG_LINKS) {
21
- let endContext = parser.getXMLdata().indexOf(ConstInterface.MG_TAG_LINKS_END, parser.getCurrIndex()) + ConstInterface.MG_TAG_LINKS_END.length + 1;
22
- let xml = parser.getXMLsubstring(endContext);
23
- xml = XmlParser.escapeUrl(xml);
24
- new DataviewHeadersSaxHandler(this._task, this._dataviewHeaders, xml);
25
- parser.setCurrIndex(endContext + XMLConstants.TAG_CLOSE.length);
26
- }
27
- else
28
- Logger.Instance.WriteExceptionToLogWithMsg("There is no such tag in LinksTable.initInnerObjects(): " + foundTagName);
29
- }
30
- getDataviewHeaderById(linkId) {
31
- return this._dataviewHeaders.get_Item(linkId);
32
- }
33
- buildDbPosString() {
34
- if (this._dataviewHeaders.Count === 0) {
35
- return null;
36
- }
37
- let buf = new StringBuilder();
38
- let dataviewHeaders = this._dataviewHeaders.Values;
39
- while (dataviewHeaders.MoveNext()) {
40
- let curr = ((dataviewHeaders.Current instanceof RemoteDataviewHeader) ? dataviewHeaders.Current : null);
41
- if (curr !== null) {
42
- let currDbPosVal = curr.getLastFetchedDbPos();
43
- buf.Append("@");
44
- if (currDbPosVal !== null) {
45
- buf.Append(currDbPosVal);
46
- }
47
- }
48
- }
49
- buf.Append("@");
50
- return buf.ToString();
51
- }
52
- }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YXZpZXdIZWFkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9ydC9EYXRhdmlld0hlYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUUsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEYsT0FBTyxFQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFakUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBS2pELE1BQU0sT0FBTyxlQUFlO0lBSzFCLFlBQVksSUFBVTtRQUpkLHFCQUFnQixHQUEwQyxJQUFJLENBQUM7UUFDL0QsVUFBSyxHQUFTLElBQUksQ0FBQztRQUl6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxTQUFTLEVBQThCLENBQUM7SUFDdEUsQ0FBQztJQUtELFFBQVEsQ0FBQyxNQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUU7U0FDMUQ7SUFDSCxDQUFDO0lBS08sZ0JBQWdCLENBQUMsTUFBaUIsRUFBRSxZQUFvQjtRQUM5RCxJQUFJLFlBQVksS0FBSyxJQUFJO1lBQ3ZCLE9BQU8sS0FBSyxDQUFDO1FBRWYsSUFBSSxZQUFZLEtBQUssY0FBYyxDQUFDLFlBQVksRUFBRTtZQUNoRCxJQUFJLFVBQVUsR0FBVyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFFLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUMzSixJQUFJLEdBQUcsR0FBVyxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELEdBQUcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRy9CLElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFHdEUsTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqRTs7WUFFQyxNQUFNLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLHlEQUF5RCxHQUFHLFlBQVksQ0FBQyxDQUFDO0lBQ3pILENBQUM7SUFLRCxxQkFBcUIsQ0FBQyxNQUFjO1FBQ2xDLE9BQTJCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQU1ELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksR0FBRyxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQzdDLElBQUksZUFBZSxHQUF5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1FBRXpGLE9BQU8sZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2pDLElBQUksSUFBSSxHQUF5QixDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sWUFBWSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBd0IsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFckosSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUNqQixJQUFJLFlBQVksR0FBVyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDdEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFHaEIsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFO29CQUN6QixHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUMxQjthQUNGO1NBQ0Y7UUFDRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXJyYXlfRW51bWVyYXRvciwgSGFzaHRhYmxlLCBTdHJpbmdCdWlsZGVyfSBmcm9tIFwiQG1hZ2ljLXhwYS9tc2NvcmVsaWJcIjtcclxuaW1wb3J0IHtMb2dnZXIsIFhNTENvbnN0YW50cywgWG1sUGFyc2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5pbXBvcnQge0RhdGF2aWV3SGVhZGVyQmFzZX0gZnJvbSBcIi4vRGF0YXZpZXdIZWFkZXJCYXNlXCI7XHJcbmltcG9ydCB7RGF0YXZpZXdIZWFkZXJzU2F4SGFuZGxlcn0gZnJvbSBcIi4vRGF0YXZpZXdIZWFkZXJzU2F4SGFuZGxlclwiO1xyXG5pbXBvcnQge1JlbW90ZURhdGF2aWV3SGVhZGVyfSBmcm9tIFwiLi9SZW1vdGVEYXRhdmlld0hlYWRlclwiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCIuLi90YXNrcy9UYXNrXCJcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyAgIGhhbmRsZXMgYWxsIGxpbmtzIGluIHRoZSB0YXNrXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBEYXRhdmlld0hlYWRlcnMge1xyXG4gIHByaXZhdGUgX2RhdGF2aWV3SGVhZGVyczogSGFzaHRhYmxlPG51bWJlciwgRGF0YXZpZXdIZWFkZXJCYXNlPiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfdGFzazogVGFzayA9IG51bGw7XHJcblxyXG4gIC8vIGluaXRpYWxpemUgdGhlIGxpbmtzIHRhYmxlIG9mIGEgZ2l2ZW4gdGFza1xyXG4gIGNvbnN0cnVjdG9yKHRhc2s6IFRhc2spIHtcclxuICAgIHRoaXMuX3Rhc2sgPSB0YXNrO1xyXG4gICAgdGhpcy5fZGF0YXZpZXdIZWFkZXJzID0gbmV3IEhhc2h0YWJsZTxudW1iZXIsIERhdGF2aWV3SGVhZGVyQmFzZT4oKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICB0aGlzIG1ldGhvZCB3aWxsIHBhcnNlIHRoZSB4bWwgZGF0YSByZWxhdGUgdG8gdGhlIGxpbmtzIHRhYmxlIGFuZCB3aWxsIGFsbG9jYXRlIGFuZCBpbml0aWxhaXplIGFsbCByZWxhdGVkIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGZpbGxEYXRhKHBhcnNlcjogWG1sUGFyc2VyKTogdm9pZCB7XHJcbiAgICB3aGlsZSAodGhpcy5pbml0SW5uZXJPYmplY3RzKHBhcnNlciwgcGFyc2VyLmdldE5leHRUYWcoKSkpIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhbGxvY2F0ZXMgYW5kIGluaXRpYWxpemUgaW5uZXIgb2JqZWN0IGFjY29yZGluZyB0byB0aGUgZm91bmQgeG1sIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHByaXZhdGUgaW5pdElubmVyT2JqZWN0cyhwYXJzZXI6IFhtbFBhcnNlciwgZm91bmRUYWdOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmIChmb3VuZFRhZ05hbWUgPT09IG51bGwpXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAoZm91bmRUYWdOYW1lID09PSBDb25zdEludGVyZmFjZS5NR19UQUdfTElOS1MpIHtcclxuICAgICAgbGV0IGVuZENvbnRleHQ6IG51bWJlciA9IHBhcnNlci5nZXRYTUxkYXRhKCkuaW5kZXhPZiggQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0xJTktTX0VORCwgcGFyc2VyLmdldEN1cnJJbmRleCgpKSArIENvbnN0SW50ZXJmYWNlLk1HX1RBR19MSU5LU19FTkQubGVuZ3RoICsgMTtcclxuICAgICAgbGV0IHhtbDogc3RyaW5nID0gcGFyc2VyLmdldFhNTHN1YnN0cmluZyhlbmRDb250ZXh0KTtcclxuICAgICAgeG1sID0gWG1sUGFyc2VyLmVzY2FwZVVybCh4bWwpO1xyXG5cclxuICAgICAgLy8gQWN0aXZhdGUgdGhlIHNheCBwYXJzZXJcclxuICAgICAgbmV3IERhdGF2aWV3SGVhZGVyc1NheEhhbmRsZXIodGhpcy5fdGFzaywgdGhpcy5fZGF0YXZpZXdIZWFkZXJzLCB4bWwpO1xyXG5cclxuICAgICAgLy8gc2tpcCB0byBhZnRlciB0aGUgbGlua3NcclxuICAgICAgcGFyc2VyLnNldEN1cnJJbmRleChlbmRDb250ZXh0ICsgWE1MQ29uc3RhbnRzLlRBR19DTE9TRS5sZW5ndGgpO1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICBMb2dnZXIuSW5zdGFuY2UuV3JpdGVFeGNlcHRpb25Ub0xvZ1dpdGhNc2coXCJUaGVyZSBpcyBubyBzdWNoIHRhZyBpbiBMaW5rc1RhYmxlLmluaXRJbm5lck9iamVjdHMoKTogXCIgKyBmb3VuZFRhZ05hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGdldHMgYSBsaW5rcyBieSBpdCBpZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgZ2V0RGF0YXZpZXdIZWFkZXJCeUlkKGxpbmtJZDogbnVtYmVyKTogRGF0YXZpZXdIZWFkZXJCYXNlIHtcclxuICAgIHJldHVybiA8RGF0YXZpZXdIZWFkZXJCYXNlPnRoaXMuX2RhdGF2aWV3SGVhZGVycy5nZXRfSXRlbShsaW5rSWQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGJ1aWxkcyB0aGUgZGIgcG9zIHN0cmluZyBvZiBhbGwgbGlua3MgaW4gdGhlIHRhYmxlXHJcbiAgLy8vICAgdGhlIGZvcm1hdCBpcyBAbG5rMV9kYlBvc0BsbmsyX2RiUG9zQC4uLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgYnVpbGREYlBvc1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuX2RhdGF2aWV3SGVhZGVycy5Db3VudCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgYnVmOiBTdHJpbmdCdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIoKTtcclxuICAgIGxldCBkYXRhdmlld0hlYWRlcnM6IEFycmF5X0VudW1lcmF0b3I8RGF0YXZpZXdIZWFkZXJCYXNlPiA9IHRoaXMuX2RhdGF2aWV3SGVhZGVycy5WYWx1ZXM7XHJcblxyXG4gICAgd2hpbGUgKGRhdGF2aWV3SGVhZGVycy5Nb3ZlTmV4dCgpKSB7XHJcbiAgICAgIGxldCBjdXJyOiBSZW1vdGVEYXRhdmlld0hlYWRlciA9ICgoZGF0YXZpZXdIZWFkZXJzLkN1cnJlbnQgaW5zdGFuY2VvZiBSZW1vdGVEYXRhdmlld0hlYWRlcikgPyAgPFJlbW90ZURhdGF2aWV3SGVhZGVyPmRhdGF2aWV3SGVhZGVycy5DdXJyZW50IDogbnVsbCk7XHJcblxyXG4gICAgICBpZiAoY3VyciAhPT0gbnVsbCkge1xyXG4gICAgICAgIGxldCBjdXJyRGJQb3NWYWw6IHN0cmluZyA9IGN1cnIuZ2V0TGFzdEZldGNoZWREYlBvcygpO1xyXG4gICAgICAgIGJ1Zi5BcHBlbmQoXCJAXCIpO1xyXG5cclxuICAgICAgICAvLyBpZiB0aGUgbGFzdCBmZXRjaCBkYiBwb3Mgb2YgdGhlIGxpbmsgaXMgbnVsbCBpdCBtZWFucyB0aGF0IHdlIG5ldmVyIGZldGNoZWQgYSByZWNvcmQgZnJvbSB0aGUgbGlua1xyXG4gICAgICAgIGlmIChjdXJyRGJQb3NWYWwgIT09IG51bGwpIHtcclxuICAgICAgICAgIGJ1Zi5BcHBlbmQoY3VyckRiUG9zVmFsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGJ1Zi5BcHBlbmQoXCJAXCIpO1xyXG4gICAgcmV0dXJuIGJ1Zi5Ub1N0cmluZygpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,38 +0,0 @@
1
- import { Dictionary, isNullOrUndefined } from "@magic-xpa/mscorelib";
2
- import { JSON_Utils } from "@magic-xpa/utils";
3
- import { DataviewHeaderFactory } from "./DataviewHeaderFactory";
4
- import { ConstInterface } from "../ConstInterface";
5
- export class DataviewHeadersSaxHandler {
6
- constructor(task, dataviewHeaders, xmlData) {
7
- this._dataviewHeaders = null;
8
- this._task = null;
9
- this._dataviewHeadersFactory = null;
10
- this._dataviewHeaders = dataviewHeaders;
11
- this._task = task;
12
- this._dataviewHeadersFactory = new DataviewHeaderFactory();
13
- JSON_Utils.JSONFromXML(xmlData, this.FillFromJSON.bind(this));
14
- }
15
- FillFromJSON(error, result) {
16
- if (error != null) {
17
- throw error;
18
- }
19
- let links = result[ConstInterface.MG_TAG_LINKS][ConstInterface.MG_TAG_LINK];
20
- if (!isNullOrUndefined(links) && links.constructor === Array) {
21
- for (let i = 0; i < links.length; i++) {
22
- let link = links[i]['$'];
23
- if (!isNullOrUndefined(link[ConstInterface.MG_ATTR_TABLE_INDEX])) {
24
- let dataviewHeader = this._dataviewHeadersFactory.CreateDataviewHeaders(this._task);
25
- let attributes = new Dictionary();
26
- for (let key in link) {
27
- if (key !== ConstInterface.MG_ATTR_TABLE_INDEX) {
28
- attributes.Add(key, link[key]);
29
- }
30
- }
31
- dataviewHeader.SetAttributes(attributes);
32
- this._dataviewHeaders.set_Item(dataviewHeader.Id, dataviewHeader);
33
- }
34
- }
35
- }
36
- }
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YXZpZXdIZWFkZXJzU2F4SGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvcnQvRGF0YXZpZXdIZWFkZXJzU2F4SGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFhLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQU9qRCxNQUFNLE9BQU8seUJBQXlCO0lBV3BDLFlBQVksSUFBVSxFQUFFLGVBQXNELEVBQUUsT0FBZTtRQVZ2RixxQkFBZ0IsR0FBMEMsSUFBSSxDQUFDO1FBQy9ELFVBQUssR0FBUyxJQUFJLENBQUM7UUFDbkIsNEJBQXVCLEdBQTBCLElBQUksQ0FBQztRQVM1RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFFM0QsVUFBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8sWUFBWSxDQUFFLEtBQUssRUFBRSxNQUFNO1FBRWpDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNqQixNQUFNLEtBQUssQ0FBQztTQUNiO1FBRUQsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQzVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRXpCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRTtvQkFDaEUsSUFBSSxjQUFjLEdBQXVCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRXhHLElBQUksVUFBVSxHQUF1QixJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUV0RCxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTt3QkFDcEIsSUFBSSxHQUFHLEtBQUssY0FBYyxDQUFDLG1CQUFtQixFQUFFOzRCQUM5QyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzt5QkFDaEM7cUJBQ0Y7b0JBRUQsY0FBYyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2lCQUNuRTthQUNGO1NBQ0Y7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpY3Rpb25hcnksIEhhc2h0YWJsZSwgaXNOdWxsT3JVbmRlZmluZWR9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0pTT05fVXRpbHN9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7RGF0YXZpZXdIZWFkZXJGYWN0b3J5fSBmcm9tIFwiLi9EYXRhdmlld0hlYWRlckZhY3RvcnlcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7RGF0YXZpZXdIZWFkZXJCYXNlfSBmcm9tIFwiLi9EYXRhdmlld0hlYWRlckJhc2VcIjtcclxuaW1wb3J0IHtUYXNrfSBmcm9tIFwiLi4vdGFza3MvVGFza1wiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gc2F4IHBhcnNlciBmb3IgcGFyc2luZyBsaW5rIGNvbGxlY3Rpb25cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIERhdGF2aWV3SGVhZGVyc1NheEhhbmRsZXIge1xyXG4gIHByaXZhdGUgX2RhdGF2aWV3SGVhZGVyczogSGFzaHRhYmxlPG51bWJlciwgRGF0YXZpZXdIZWFkZXJCYXNlPiA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfdGFzazogVGFzayA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfZGF0YXZpZXdIZWFkZXJzRmFjdG9yeTogRGF0YXZpZXdIZWFkZXJGYWN0b3J5ID0gbnVsbDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDVE9SIC0gY3JlYXRlIGFuZCBhY3RpdmF0ZSB0aGUgcGFyc2luZyBwcm9jZXNzXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJkYXRhdmlld0hlYWRlcnNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInhtbERhdGFcIj48L3BhcmFtPlxyXG4gIGNvbnN0cnVjdG9yKHRhc2s6IFRhc2ssIGRhdGF2aWV3SGVhZGVyczogSGFzaHRhYmxlPG51bWJlciwgRGF0YXZpZXdIZWFkZXJCYXNlPiwgeG1sRGF0YTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9kYXRhdmlld0hlYWRlcnMgPSBkYXRhdmlld0hlYWRlcnM7XHJcbiAgICB0aGlzLl90YXNrID0gdGFzaztcclxuICAgIHRoaXMuX2RhdGF2aWV3SGVhZGVyc0ZhY3RvcnkgPSBuZXcgRGF0YXZpZXdIZWFkZXJGYWN0b3J5KCk7XHJcblxyXG4gICAgSlNPTl9VdGlscy5KU09ORnJvbVhNTCh4bWxEYXRhLCB0aGlzLkZpbGxGcm9tSlNPTi5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgRmlsbEZyb21KU09OIChlcnJvciwgcmVzdWx0KTogdm9pZCB7XHJcbiAgICAvLyBJZiB0aGVyZSB3YXMgYW4gZXJyb3IgaW4gcGFyc2luZyB0aGUgWE1MLlxyXG4gICAgaWYgKGVycm9yICE9IG51bGwpIHtcclxuICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGxpbmtzID0gcmVzdWx0W0NvbnN0SW50ZXJmYWNlLk1HX1RBR19MSU5LU11bQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0xJTktdO1xyXG5cclxuICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQobGlua3MpICYmIGxpbmtzLmNvbnN0cnVjdG9yID09PSBBcnJheSkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpbmtzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGxpbmsgPSBsaW5rc1tpXVsnJCddO1xyXG5cclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKGxpbmtbQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9UQUJMRV9JTkRFWF0pKSB7XHJcbiAgICAgICAgICBsZXQgZGF0YXZpZXdIZWFkZXI6IERhdGF2aWV3SGVhZGVyQmFzZSA9IHRoaXMuX2RhdGF2aWV3SGVhZGVyc0ZhY3RvcnkuQ3JlYXRlRGF0YXZpZXdIZWFkZXJzKHRoaXMuX3Rhc2spO1xyXG5cclxuICAgICAgICAgIGxldCBhdHRyaWJ1dGVzOiBEaWN0aW9uYXJ5PHN0cmluZz4gPSBuZXcgRGljdGlvbmFyeSgpO1xyXG5cclxuICAgICAgICAgIGZvciAobGV0IGtleSBpbiBsaW5rKSB7XHJcbiAgICAgICAgICAgIGlmIChrZXkgIT09IENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfVEFCTEVfSU5ERVgpIHtcclxuICAgICAgICAgICAgICBhdHRyaWJ1dGVzLkFkZChrZXksIGxpbmtba2V5XSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBkYXRhdmlld0hlYWRlci5TZXRBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpO1xyXG4gICAgICAgICAgdGhpcy5fZGF0YXZpZXdIZWFkZXJzLnNldF9JdGVtKGRhdGF2aWV3SGVhZGVyLklkLCBkYXRhdmlld0hlYWRlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,94 +0,0 @@
1
- import { NNumber, Stack, StringBuilder } from "@magic-xpa/mscorelib";
2
- import { ExecutionStackEntry } from "./ExecutionStackEntry";
3
- import { ConstInterface } from "../ConstInterface";
4
- import { XMLConstants } from "@magic-xpa/utils";
5
- export class ExecutionStack {
6
- constructor(inExecStack) {
7
- this._execStack = null;
8
- if (arguments.length === 0) {
9
- this.constructor_0();
10
- return;
11
- }
12
- this.constructor_1(inExecStack);
13
- }
14
- constructor_0() {
15
- this._execStack = new Stack();
16
- }
17
- constructor_1(inExecStack) {
18
- this._execStack = inExecStack.getStack().Clone();
19
- }
20
- getStack() {
21
- return this._execStack;
22
- }
23
- push(execEntryOrTaskId, handlerId, operIdx) {
24
- if (arguments.length === 1)
25
- this.push_0(execEntryOrTaskId);
26
- else
27
- this.push_1(execEntryOrTaskId, handlerId, operIdx);
28
- }
29
- push_0(execEntry) {
30
- this._execStack.push(execEntry);
31
- }
32
- push_1(taskId, handlerId, operIdx) {
33
- let execEntry = new ExecutionStackEntry(taskId, handlerId, operIdx);
34
- this._execStack.push(execEntry);
35
- }
36
- pop() {
37
- return this._execStack.pop();
38
- }
39
- empty() {
40
- return this._execStack.count() === 0;
41
- }
42
- clear() {
43
- this._execStack.Clear();
44
- }
45
- size() {
46
- return this._execStack.count();
47
- }
48
- Equals(execStackCmp) {
49
- let tmpExecStack = new ExecutionStack(this);
50
- let tmpExecStackCmp = new ExecutionStack(execStackCmp);
51
- let equalStacks = false;
52
- if (tmpExecStack.size() === tmpExecStackCmp.size()) {
53
- equalStacks = true;
54
- while (!tmpExecStack.empty() && equalStacks) {
55
- if (!tmpExecStack.pop().Equals(tmpExecStackCmp.pop()))
56
- equalStacks = false;
57
- }
58
- }
59
- return equalStacks;
60
- }
61
- pushUpSideDown(inExecStack) {
62
- let tmpStack = new ExecutionStack(inExecStack);
63
- while (!tmpStack.empty()) {
64
- let tmpStackEntry = tmpStack.pop();
65
- this._execStack.push(tmpStackEntry);
66
- }
67
- }
68
- reverse() {
69
- let tmpExecStack = new ExecutionStack(this);
70
- this.clear();
71
- while (!tmpExecStack.empty()) {
72
- let tmpExecStackEntry = tmpExecStack.pop();
73
- this.push(tmpExecStackEntry);
74
- }
75
- }
76
- buildXML(message) {
77
- let forMessage = new StringBuilder();
78
- while (this._execStack.count() !== 0) {
79
- let ExecEntry = this._execStack.pop();
80
- let taskTag = NNumber.Parse(ExecEntry.TaskId);
81
- if (taskTag > ConstInterface.INITIAL_OFFLINE_TASK_TAG) {
82
- forMessage.Remove(0, forMessage.Length);
83
- continue;
84
- }
85
- forMessage.Append("\n " + XMLConstants.TAG_OPEN + ConstInterface.MG_TAG_EXEC_STACK_ENTRY);
86
- forMessage.Append(" " + XMLConstants.MG_ATTR_TASKID + "=\"" + ExecEntry.TaskId + "\"");
87
- forMessage.Append(" " + ConstInterface.MG_ATTR_HANDLERID + "=\"" + ExecEntry.HandlerId + "\"");
88
- forMessage.Append(" " + ConstInterface.MG_ATTR_OPER_IDX + "=\"" + ExecEntry.OperIdx + "\"");
89
- forMessage.Append(" " + XMLConstants.TAG_TERM);
90
- }
91
- message.Append(forMessage.ToString());
92
- }
93
- }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhlY3V0aW9uU3RhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL3J0L0V4ZWN1dGlvblN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFLOUMsTUFBTSxPQUFPLGNBQWM7SUFLekIsWUFBWSxXQUE0QjtRQUpoQyxlQUFVLEdBQStCLElBQUksQ0FBQztRQUtwRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFHTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBSU8sYUFBYSxDQUFDLFdBQTJCO1FBQy9DLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFJRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFJRCxJQUFJLENBQUMsaUJBQXNCLEVBQUUsU0FBa0IsRUFBRSxPQUFnQjtRQUMvRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7O1lBRS9CLElBQUks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QUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4QyxTQUFTO2FBQ1Y7WUFDRCxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQzFGLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxjQUFjLEdBQUcsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDdkYsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixHQUFHLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQy9GLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM1RixVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDaEQ7UUFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Tk51bWJlciwgU3RhY2ssIFN0cmluZ0J1aWxkZXJ9IGZyb20gXCJAbWFnaWMteHBhL21zY29yZWxpYlwiO1xyXG5pbXBvcnQge0V4ZWN1dGlvblN0YWNrRW50cnl9IGZyb20gXCIuL0V4ZWN1dGlvblN0YWNrRW50cnlcIjtcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSBcIi4uL0NvbnN0SW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7WE1MQ29uc3RhbnRzfSBmcm9tIFwiQG1hZ2ljLXhwYS91dGlsc1wiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PiB0aGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gZXhlY3V0aW9uIHN0YWNrIG9mIGFsbCBvcGVyYXRpb25zIHRoYXQgY2FuIGJlIGludGVydXB0ZWQgYnkgZ29pbmcgdG8gdGhlIHNlcnZlclxyXG4vLy8gdG8gY29udGludWUgZXhlY3V0aW9uIChyYWlzZSBldmVudCBvciBhbnkgY2FsbCB0byB1c2VyIGRlZmluZWQgZnVuY3Rpb24pXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBFeGVjdXRpb25TdGFjayB7XHJcbiAgcHJpdmF0ZSBfZXhlY1N0YWNrOiBTdGFjazxFeGVjdXRpb25TdGFja0VudHJ5PiA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCk7XHJcbiAgY29uc3RydWN0b3IoaW5FeGVjU3RhY2s6IEV4ZWN1dGlvblN0YWNrKTtcclxuICBjb25zdHJ1Y3RvcihpbkV4ZWNTdGFjaz86IEV4ZWN1dGlvblN0YWNrKSB7XHJcbiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmNvbnN0cnVjdG9yXzAoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb25zdHJ1Y3Rvcl8xKGluRXhlY1N0YWNrKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gZGVmYXVsdCBjb25zdHJ1Y3Rvcjwvc3VtbWFyeT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzAoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9leGVjU3RhY2sgPSBuZXcgU3RhY2soKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gY29uc3RydWN0b3Igd2hpY2ggY29waWVzIHRoZSBwYXJhbWV0ZXIgZXhlY3V0aW9uIHN0YWNrPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImluRXhlY1N0YWNrXCI+LSB0aGUgZXhlY3V0aW9uIHN0YWNrIHRvIGNvcHkgPC9wYXJhbT5cclxuICBwcml2YXRlIGNvbnN0cnVjdG9yXzEoaW5FeGVjU3RhY2s6IEV4ZWN1dGlvblN0YWNrKTogdm9pZCB7XHJcbiAgICB0aGlzLl9leGVjU3RhY2sgPSBpbkV4ZWNTdGFjay5nZXRTdGFjaygpLkNsb25lKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IGdldHRlciBmb3IgdGhlIGV4ZWN1dGlvbiBzdGFjayBpdHNlbGY8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPiB0aGUgc3RhY2sgPC9yZXR1cm5zPlxyXG4gIGdldFN0YWNrKCk6IFN0YWNrPEV4ZWN1dGlvblN0YWNrRW50cnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9leGVjU3RhY2s7XHJcbiAgfVxyXG5cclxuICBwdXNoKGV4ZWNFbnRyeTogRXhlY3V0aW9uU3RhY2tFbnRyeSk6IHZvaWQ7XHJcbiAgcHVzaCh0YXNrSWQ6IHN0cmluZywgaGFuZGxlcklkOiBzdHJpbmcsIG9wZXJJZHg6IG51bWJlcik6IHZvaWQ7XHJcbiAgcHVzaChleGVjRW50cnlPclRhc2tJZDogYW55LCBoYW5kbGVySWQ/OiBzdHJpbmcsIG9wZXJJZHg/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKVxyXG4gICAgICB0aGlzLnB1c2hfMChleGVjRW50cnlPclRhc2tJZCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMucHVzaF8xKGV4ZWNFbnRyeU9yVGFza0lkLCBoYW5kbGVySWQsIG9wZXJJZHgpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBwdXNoZXMgb25lIGVudHJ5IGludG8gdGhlIHN0YWNrPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImV4ZWNFbnRyeVwiPi0gdG8gYmUgcHVzaGVkIDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBwdXNoXzAoZXhlY0VudHJ5OiBFeGVjdXRpb25TdGFja0VudHJ5KTogdm9pZCB7XHJcbiAgICB0aGlzLl9leGVjU3RhY2sucHVzaChleGVjRW50cnkpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBwdXNoZXMgYW4gZW50cnkgdG8gdGhlIGV4ZWN1dGlvbiBzdGFjayBjb25zdHJ1Y3RlZCBieSBpdHMgMyBlbGVtZW50cyB3aGljaCBhcmUgcmVjaWV2ZWQgYXMgcGFyYW1ldGVyczwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrSWRcIj4gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJoYW5kbGVySWRcIj4gPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJvcGVySWR4XCI+IDwvcGFyYW0+XHJcbiAgcHJpdmF0ZSBwdXNoXzEodGFza0lkOiBzdHJpbmcsIGhhbmRsZXJJZDogc3RyaW5nLCBvcGVySWR4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGxldCBleGVjRW50cnk6IEV4ZWN1dGlvblN0YWNrRW50cnkgPSBuZXcgRXhlY3V0aW9uU3RhY2tFbnRyeSh0YXNrSWQsIGhhbmRsZXJJZCwgb3BlcklkeCk7XHJcbiAgICB0aGlzLl9leGVjU3RhY2sucHVzaChleGVjRW50cnkpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiBwb3BzIGFuIGVudHJ5IGZyb20gdGhlIGV4ZWN1dGlvbiBzdGFjazwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+IHRoZSBwb3BwZWQgZW50cnlcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHBvcCgpOiBFeGVjdXRpb25TdGFja0VudHJ5IHtcclxuICAgIHJldHVybiA8RXhlY3V0aW9uU3RhY2tFbnRyeT50aGlzLl9leGVjU3RhY2sucG9wKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IGNoZWNrIGlmIHRoZSBleGVjdXRpb24gc3RhY2sgaXMgZW1wdHkgPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz4gYW4gaW5kaWNhdGlvbiBpZiBpdCdzIGVtcHR5IG9yIG5vdFxyXG4gIC8vLyA8L3JldHVybnM+XHJcbiAgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXhlY1N0YWNrLmNvdW50KCkgPT09IDA7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IGNsZWFycyB0aGUgZXhlY3V0aW9uIHN0YWNrPC9zdW1tYXJ5PlxyXG4gIGNsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZXhlY1N0YWNrLkNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvLy8gPHJldHVybnM+IHRoZSBzaXplIG9mIHRoZSBleGVjdXRpb24gc3RhY2tcclxuICAvLy8gPC9yZXR1cm5zPlxyXG4gIHNpemUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9leGVjU3RhY2suY291bnQoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gY2hlY2tzIGlmIHR3byBleGVjdXRpb24gc3RhY2tzIGFyZSBlcXVhbDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJleGVjU3RhY2tDbXBcIj4tIGV4ZWN1dGlvbiBzdGFjayB0byBjb21wYXJlIHRvIHRoZSBjdXJyZW50IDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPnMgYW4gaW5kaWNhdGlvbiB3aGV0aGVyIHRoZSB0d28gYXJlIGVxdWFsIG9yIG5vdCA8L3JldHVybnM+XHJcbiAgRXF1YWxzKGV4ZWNTdGFja0NtcDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgdG1wRXhlY1N0YWNrOiBFeGVjdXRpb25TdGFjayA9IG5ldyBFeGVjdXRpb25TdGFjayh0aGlzKTtcclxuICAgIGxldCB0bXBFeGVjU3RhY2tDbXA6IEV4ZWN1dGlvblN0YWNrID0gbmV3IEV4ZWN1dGlvblN0YWNrKDxFeGVjdXRpb25TdGFjaz5leGVjU3RhY2tDbXApO1xyXG4gICAgbGV0IGVxdWFsU3RhY2tzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKHRtcEV4ZWNTdGFjay5zaXplKCkgPT09IHRtcEV4ZWNTdGFja0NtcC5zaXplKCkpIHtcclxuICAgICAgZXF1YWxTdGFja3MgPSB0cnVlO1xyXG4gICAgICB3aGlsZSAoIXRtcEV4ZWNTdGFjay5lbXB0eSgpICYmIGVxdWFsU3RhY2tzKSB7XHJcbiAgICAgICAgaWYgKCF0bXBFeGVjU3RhY2sucG9wKCkuRXF1YWxzKHRtcEV4ZWNTdGFja0NtcC5wb3AoKSkpXHJcbiAgICAgICAgICBlcXVhbFN0YWNrcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZXF1YWxTdGFja3M7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+IHB1c2ggaW50byB0aGUgY3VycmVudCBleGVjdXRpb24gc3RhY2sgdGhlIGV4ZWN1dGlvbiBzdGFjayB0aGF0IHdlIGdldCBhcyBwYXJhbWV0ZXIsIGJ1dCBpbiByZXZlcnNlIG9yZGVyPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImluRXhlY1N0YWNrXCI+LSB0aGUgZXhlY3V0aW9uIHN0YWNrIHRvIGJlIHB1c2hlZCA8L3BhcmFtPlxyXG4gIHB1c2hVcFNpZGVEb3duKGluRXhlY1N0YWNrOiBFeGVjdXRpb25TdGFjayk6IHZvaWQge1xyXG4gICAgbGV0IHRtcFN0YWNrOiBFeGVjdXRpb25TdGFjayA9IG5ldyBFeGVjdXRpb25TdGFjayhpbkV4ZWNTdGFjayk7XHJcblxyXG4gICAgd2hpbGUgKCF0bXBTdGFjay5lbXB0eSgpKSB7XHJcbiAgICAgIGxldCB0bXBTdGFja0VudHJ5OiBFeGVjdXRpb25TdGFja0VudHJ5ID0gdG1wU3RhY2sucG9wKCk7XHJcbiAgICAgIHRoaXMuX2V4ZWNTdGFjay5wdXNoKHRtcFN0YWNrRW50cnkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PiByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgZW50cmllcyBpbiB0aGUgY3VycmVudCBleGVjdXRpb24gc3RhY2s8L3N1bW1hcnk+XHJcbiAgcmV2ZXJzZSgpOiB2b2lkIHtcclxuICAgIGxldCB0bXBFeGVjU3RhY2s6IEV4ZWN1dGlvblN0YWNrID0gbmV3IEV4ZWN1dGlvblN0YWNrKHRoaXMpO1xyXG5cclxuICAgIHRoaXMuY2xlYXIoKTtcclxuXHJcbiAgICB3aGlsZSAoIXRtcEV4ZWNTdGFjay5lbXB0eSgpKSB7XHJcbiAgICAgIGxldCB0bXBFeGVjU3RhY2tFbnRyeTogRXhlY3V0aW9uU3RhY2tFbnRyeSA9IHRtcEV4ZWNTdGFjay5wb3AoKTtcclxuICAgICAgdGhpcy5wdXNoKHRtcEV4ZWNTdGFja0VudHJ5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT4gYnVpbGRzIHRoZSB4bWwgb2YgdGhlIGN1cnJlbnQgZXhlY3V0aW9uIHN0YWNrIHRvIGJlIHNlbnQgdG8gdGhlIHNlcnZlcjwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJNZXNzYWdlXCI+LSB0aGUgbWVzc2FnZSB3aGljaCB0aGUgeG1sIG5lZWRzIHRvIGJlIGFwcGVuZGVkIHRvXHJcbiAgLy8vIDwvcGFyYW0+XHJcbiAgcHVibGljIGJ1aWxkWE1MKG1lc3NhZ2U6IFN0cmluZ0J1aWxkZXIpOiB2b2lkIHtcclxuICAgIGxldCBmb3JNZXNzYWdlOiBTdHJpbmdCdWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIoKTtcclxuICAgIHdoaWxlICh0aGlzLl9leGVjU3RhY2suY291bnQoKSAhPT0gMCkge1xyXG4gICAgICBsZXQgRXhlY0VudHJ5ID0gPEV4ZWN1dGlvblN0YWNrRW50cnk+dGhpcy5fZXhlY1N0YWNrLnBvcCgpO1xyXG4gICAgICAvLyBvZmZsaW5lIHRhc2tzLCBhbmQgYWxsIHRhc2tzIGJlZm9yZSB0aGVtLCBzaG91bGQgbm90IGJlIHBhc3NlZCB0byB0aGUgc2VydmVyXHJcbiAgICAgIGxldCB0YXNrVGFnOiBudW1iZXIgPSBOTnVtYmVyLlBhcnNlKEV4ZWNFbnRyeS5UYXNrSWQpO1xyXG4gICAgICBpZiAodGFza1RhZyA+IENvbnN0SW50ZXJmYWNlLklOSVRJQUxfT0ZGTElORV9UQVNLX1RBRykge1xyXG4gICAgICAgIC8vIGNsZWFuIHRoZSBidWZmZXIgYW5kIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgdGFza1xyXG4gICAgICAgIGZvck1lc3NhZ2UuUmVtb3ZlKDAsIGZvck1lc3NhZ2UuTGVuZ3RoKTtcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgICBmb3JNZXNzYWdlLkFwcGVuZChcIlxcbiBcIiArIFhNTENvbnN0YW50cy5UQUdfT1BFTiArIENvbnN0SW50ZXJmYWNlLk1HX1RBR19FWEVDX1NUQUNLX0VOVFJZKTtcclxuICAgICAgZm9yTWVzc2FnZS5BcHBlbmQoXCIgXCIgKyBYTUxDb25zdGFudHMuTUdfQVRUUl9UQVNLSUQgKyBcIj1cXFwiXCIgKyBFeGVjRW50cnkuVGFza0lkICsgXCJcXFwiXCIpO1xyXG4gICAgICBmb3JNZXNzYWdlLkFwcGVuZChcIiBcIiArIENvbnN0SW50ZXJmYWNlLk1HX0FUVFJfSEFORExFUklEICsgXCI9XFxcIlwiICsgRXhlY0VudHJ5LkhhbmRsZXJJZCArIFwiXFxcIlwiKTtcclxuICAgICAgZm9yTWVzc2FnZS5BcHBlbmQoXCIgXCIgKyBDb25zdEludGVyZmFjZS5NR19BVFRSX09QRVJfSURYICsgXCI9XFxcIlwiICsgRXhlY0VudHJ5Lk9wZXJJZHggKyBcIlxcXCJcIik7XHJcbiAgICAgIGZvck1lc3NhZ2UuQXBwZW5kKFwiIFwiICsgWE1MQ29uc3RhbnRzLlRBR19URVJNKTtcclxuICAgIH1cclxuICAgIG1lc3NhZ2UuQXBwZW5kKGZvck1lc3NhZ2UuVG9TdHJpbmcoKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==