@magic-xpa/engine 4.1100.0-dev4110.25 → 4.1100.0-dev4110.252
Sign up to get free protection for your applications and to get access to all the features.
- package/{esm2020 → esm2022}/index.mjs +188 -188
- package/{esm2020 → esm2022}/magic-xpa-engine.mjs +1 -1
- package/esm2022/src/AccessHelper.mjs +15 -0
- package/esm2022/src/ClientManager.mjs +416 -0
- package/esm2022/src/CommandsProcessorBase.mjs +56 -0
- package/esm2022/src/CommandsProcessorManager.mjs +26 -0
- package/esm2022/src/CommandsTable.mjs +162 -0
- package/esm2022/src/ConstInterface.mjs +517 -0
- package/{esm2020 → esm2022}/src/CurrentClientVersion.mjs +2 -2
- package/esm2022/src/FlowMonitorInterface.mjs +16 -0
- package/esm2022/src/GUIManager.mjs +62 -0
- package/esm2022/src/GlobalCommandsManager.mjs +34 -0
- package/esm2022/src/GuiEventsProcessor.mjs +156 -0
- package/{esm2020 → esm2022}/src/ICommandsTable.mjs +1 -1
- package/esm2022/src/ServerConfig.mjs +122 -0
- package/{esm2020 → esm2022}/src/bridge/IGuiEvent.mjs +19 -19
- package/esm2022/src/bridge/MagicBridge.mjs +41 -0
- package/esm2022/src/commands/ClientOriginatedCommandTaskTag.mjs +12 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs +8 -8
- package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs +9 -9
- package/{esm2020 → esm2022}/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs +9 -9
- package/esm2022/src/commands/ClientToServer/BrowserEscEventCommand.mjs +26 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ClientOriginatedCommand.mjs +14 -14
- package/esm2022/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +60 -0
- package/esm2022/src/commands/ClientToServer/ColumnSortEventCommand.mjs +29 -0
- package/esm2022/src/commands/ClientToServer/CommandFactory.mjs +261 -0
- package/esm2022/src/commands/ClientToServer/CommandSerializationHelper.mjs +67 -0
- package/esm2022/src/commands/ClientToServer/ComputeEventCommand.mjs +26 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTerminationEventCommand.mjs +24 -21
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs +23 -20
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs +8 -8
- package/esm2022/src/commands/ClientToServer/DataViewOutputCommand.mjs +13 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/DataviewCommand.mjs +44 -44
- package/esm2022/src/commands/ClientToServer/EvaluateCommand.mjs +40 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/EventCommand.mjs +43 -40
- package/esm2022/src/commands/ClientToServer/ExecOperCommand.mjs +70 -0
- package/esm2022/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +25 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs +10 -10
- package/{esm2020 → esm2022}/src/commands/ClientToServer/ICommandTaskTag.mjs +1 -1
- package/esm2022/src/commands/ClientToServer/IndexChangeEventCommand.mjs +24 -0
- package/esm2022/src/commands/ClientToServer/IniputForceWriteCommand.mjs +26 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs +26 -23
- package/{esm2020 → esm2022}/src/commands/ClientToServer/QueryCommand.mjs +20 -20
- package/esm2022/src/commands/ClientToServer/RecomputeCommand.mjs +30 -0
- package/esm2022/src/commands/ClientToServer/RefreshEventCommand.mjs +30 -0
- package/esm2022/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +27 -0
- package/esm2022/src/commands/ClientToServer/RollbackEventCommand.mjs +43 -0
- package/esm2022/src/commands/ClientToServer/SelectProgramCommand.mjs +19 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs +9 -9
- package/esm2022/src/commands/ClientToServer/SubformOpenEventCommand.mjs +24 -0
- package/esm2022/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +27 -0
- package/esm2022/src/commands/ClientToServer/TransactionCommand.mjs +34 -0
- package/{esm2020 → esm2022}/src/commands/ClientToServer/UnloadCommand.mjs +18 -15
- package/esm2022/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +18 -0
- package/esm2022/src/commands/DataViewCommandBase.mjs +8 -0
- package/{esm2020 → esm2022}/src/commands/IClientCommand.mjs +1 -1
- package/esm2022/src/commands/IClientTargetedCommand.mjs +13 -0
- package/{esm2020 → esm2022}/src/commands/IClientToServerCommandInfo.mjs +2 -2
- package/esm2022/src/commands/ServerToClient/AbortCommand.mjs +65 -0
- package/{esm2020 → esm2022}/src/commands/ServerToClient/AddLocateCommand.mjs +21 -21
- package/esm2022/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
- package/esm2022/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
- package/esm2022/src/commands/ServerToClient/ClientRefreshCommand.mjs +25 -0
- package/esm2022/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +24 -0
- package/esm2022/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
- package/esm2022/src/commands/ServerToClient/OpenURLCommand.mjs +221 -0
- package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetLocateCommand.mjs +14 -14
- package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetRangeCommand.mjs +14 -14
- package/{esm2020 → esm2022}/src/commands/ServerToClient/ResetSortCommand.mjs +14 -14
- package/esm2022/src/commands/ServerToClient/ResultCommand.mjs +37 -0
- package/esm2022/src/commands/ServerToClient/VerifyCommand.mjs +83 -0
- package/esm2022/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +132 -0
- package/{esm2020 → esm2022}/src/communications/IConnectionStateManager.mjs +1 -1
- package/esm2022/src/communications/InteractiveCommunicationsFailureHandler.mjs +15 -0
- package/{esm2020 → esm2022}/src/data/DataSourceIdKey.mjs +2 -2
- package/esm2022/src/data/DataView.mjs +1613 -0
- package/{esm2020 → esm2022}/src/data/DataViewBase.mjs +3 -3
- package/esm2022/src/data/DataviewManager.mjs +28 -0
- package/esm2022/src/data/DataviewManagerBase.mjs +15 -0
- package/esm2022/src/data/DvCache.mjs +67 -0
- package/esm2022/src/data/Field.mjs +646 -0
- package/esm2022/src/data/FieldBase.mjs +15 -0
- package/esm2022/src/data/FieldsTable.mjs +103 -0
- package/{esm2020 → esm2022}/src/data/IRecordsTable.mjs +1 -1
- package/esm2022/src/data/Key.mjs +88 -0
- package/esm2022/src/data/Record.mjs +880 -0
- package/{esm2020 → esm2022}/src/data/RecordOutOfDataViewException.mjs +15 -15
- package/esm2022/src/data/RecordsTable.mjs +267 -0
- package/esm2022/src/data/TaskTransactionManager.mjs +107 -0
- package/esm2022/src/data/XMLBasedDcValuesBuilder.mjs +74 -0
- package/{esm2020 → esm2022}/src/enums.mjs +23 -23
- package/esm2022/src/env/EnvVariablesTable.mjs +340 -0
- package/esm2022/src/env/Environment.mjs +487 -0
- package/{esm2020 → esm2022}/src/env/ILanguageData.mjs +1 -1
- package/esm2022/src/env/LanguageData.mjs +227 -0
- package/esm2022/src/env/MirrorString.mjs +65 -0
- package/esm2022/src/event/ActionManager.mjs +91 -0
- package/esm2022/src/event/Event.mjs +1333 -0
- package/esm2022/src/event/EventHandler.mjs +766 -0
- package/esm2022/src/event/EventHandlerPosition.mjs +204 -0
- package/esm2022/src/event/EventsManager.mjs +2988 -0
- package/{esm2020 → esm2022}/src/event/IEventsManager.mjs +6 -6
- package/esm2022/src/event/RunTimeEvent.mjs +399 -0
- package/{esm2020 → esm2022}/src/event/RunTimeEventBase.mjs +3 -3
- package/esm2022/src/event/UserEventsTable.mjs +47 -0
- package/esm2022/src/exp/ExpTable.mjs +57 -0
- package/esm2022/src/exp/Expression.mjs +200 -0
- package/esm2022/src/exp/ExpressionDict.mjs +727 -0
- package/esm2022/src/exp/ExpressionEvaluator.mjs +4206 -0
- package/esm2022/src/exp/ExpressionLocalJpn.mjs +314 -0
- package/esm2022/src/exp/GlobalParamsTable.mjs +85 -0
- package/esm2022/src/exp/YesNoExp.mjs +36 -0
- package/esm2022/src/gui/CreatedFormVector.mjs +23 -0
- package/esm2022/src/gui/FormsTable.mjs +66 -0
- package/esm2022/src/gui/MgControl.mjs +363 -0
- package/esm2022/src/gui/MgForm.mjs +1224 -0
- package/esm2022/src/http/HttpManager.mjs +97 -0
- package/esm2022/src/http/client/HttpClientAsync.mjs +68 -0
- package/esm2022/src/http/client/HttpClientBase.mjs +132 -0
- package/esm2022/src/http/client/HttpClientEvents.mjs +39 -0
- package/esm2022/src/http/client/HttpClientSync.mjs +42 -0
- package/esm2022/src/http/client/HttpUtility.mjs +84 -0
- package/{esm2020 → esm2022}/src/http/client/ICommunicationsFailureHandler.mjs +1 -1
- package/esm2022/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
- package/esm2022/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
- package/esm2022/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
- package/esm2022/src/remote/RemoteCommandsProcessor.mjs +883 -0
- package/esm2022/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
- package/esm2022/src/remote/RemoteDataViewCommandBase.mjs +24 -0
- package/esm2022/src/remote/RemoteDataViewCommandFactory.mjs +61 -0
- package/{esm2020 → esm2022}/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +15 -15
- package/{esm2020 → esm2022}/src/remote/RemoteDataviewManager.mjs +17 -17
- package/{esm2020 → esm2022}/src/remote/RemoteInitDataViewCommand.mjs +10 -10
- package/esm2022/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
- package/{esm2020 → esm2022}/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +12 -12
- package/esm2022/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
- package/esm2022/src/remote/ServerError.mjs +40 -0
- package/esm2022/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +20 -0
- package/esm2022/src/rt/Argument.mjs +265 -0
- package/esm2022/src/rt/ArgumentsList.mjs +103 -0
- package/esm2022/src/rt/Boundary.mjs +152 -0
- package/esm2022/src/rt/CompMainPrgTable.mjs +63 -0
- package/{esm2020 → esm2022}/src/rt/DataviewHeaderBase.mjs +98 -96
- package/{esm2020 → esm2022}/src/rt/DataviewHeaderFactory.mjs +6 -6
- package/esm2022/src/rt/DataviewHeaders.mjs +53 -0
- package/esm2022/src/rt/DataviewHeadersSaxHandler.mjs +38 -0
- package/esm2022/src/rt/ExecutionStack.mjs +94 -0
- package/{esm2020 → esm2022}/src/rt/ExecutionStackEntry.mjs +17 -17
- package/esm2022/src/rt/HandlersTable.mjs +96 -0
- package/{esm2020 → esm2022}/src/rt/IDataSourceViewDefinition.mjs +1 -1
- package/{esm2020 → esm2022}/src/rt/IDataviewHeader.mjs +1 -1
- package/{esm2020 → esm2022}/src/rt/IResultValue.mjs +1 -1
- package/esm2022/src/rt/LastFocusedManager.mjs +65 -0
- package/esm2022/src/rt/Operation.mjs +735 -0
- package/esm2022/src/rt/OperationTable.mjs +67 -0
- package/esm2022/src/rt/Recompute.mjs +355 -0
- package/esm2022/src/rt/RecomputeTable.mjs +63 -0
- package/esm2022/src/rt/RemoteDataviewHeader.mjs +108 -0
- package/esm2022/src/rt/ResultValue.mjs +10 -0
- package/esm2022/src/rt/TableCache.mjs +177 -0
- package/esm2022/src/rt/TableCacheManager.mjs +67 -0
- package/esm2022/src/rt/Transaction.mjs +53 -0
- package/esm2022/src/security/UserDetails.mjs +71 -0
- package/{esm2020 → esm2022}/src/tasks/IMGDataCollection.mjs +1 -1
- package/esm2022/src/tasks/MGData.mjs +552 -0
- package/esm2022/src/tasks/MGDataCollection.mjs +252 -0
- package/esm2022/src/tasks/RCTimer.mjs +63 -0
- package/esm2022/src/tasks/RemoteTaskService.mjs +45 -0
- package/esm2022/src/tasks/Task.mjs +2499 -0
- package/esm2022/src/tasks/TaskBase.mjs +83 -0
- package/esm2022/src/tasks/TaskServiceBase.mjs +25 -0
- package/esm2022/src/tasks/TasksTable.mjs +80 -0
- package/esm2022/src/tasks/sort/Sort.mjs +5 -0
- package/esm2022/src/tasks/sort/SortCollection.mjs +67 -0
- package/esm2022/src/util/ConstUtils.mjs +14 -0
- package/esm2022/src/util/FlowMonitorQueue.mjs +451 -0
- package/esm2022/src/util/HeapSort.mjs +70 -0
- package/{esm2020 → esm2022}/src/util/IMirrorXML.mjs +1 -1
- package/{esm2020 → esm2022}/src/util/IServerConfig.mjs +1 -1
- package/{esm2020 → esm2022}/src/util/MgBlockingQueue.mjs +1 -1
- package/esm2022/src/util/MgPriorityBlockingQueue.mjs +74 -0
- package/esm2022/src/util/MgPriorityQueue.mjs +66 -0
- package/{esm2020 → esm2022}/src/util/ParamParseResult.mjs +7 -7
- package/esm2022/src/util/PrmMap.mjs +152 -0
- package/esm2022/src/util/ReturnResult.mjs +46 -0
- package/esm2022/src/util/ReturnResultBase.mjs +18 -0
- package/esm2022/src/util/Scrambler.mjs +89 -0
- package/esm2022/src/util/UniqueIDUtils.mjs +13 -0
- package/esm2022/src/util/cookie.service.mjs +92 -0
- package/{fesm2020 → fesm2022}/magic-xpa-engine.mjs +29883 -29693
- package/fesm2022/magic-xpa-engine.mjs.map +1 -0
- package/index.d.ts +187 -187
- package/package.json +8 -14
- package/src/AccessHelper.d.ts +20 -20
- package/src/ClientManager.d.ts +35 -32
- package/src/CommandsProcessorBase.d.ts +23 -23
- package/src/CommandsProcessorManager.d.ts +6 -6
- package/src/CommandsTable.d.ts +22 -22
- package/src/ConstInterface.d.ts +516 -515
- package/src/CurrentClientVersion.d.ts +1 -1
- package/src/FlowMonitorInterface.d.ts +15 -15
- package/src/GUIManager.d.ts +17 -17
- package/src/GlobalCommandsManager.d.ts +17 -17
- package/src/GuiEventsProcessor.d.ts +24 -24
- package/src/ICommandsTable.d.ts +9 -9
- package/src/ServerConfig.d.ts +35 -34
- package/src/bridge/IGuiEvent.d.ts +19 -19
- package/src/bridge/MagicBridge.d.ts +16 -16
- package/src/commands/ClientOriginatedCommandTaskTag.d.ts +8 -8
- package/src/commands/ClientToServer/AddUserLocateDataViewCommand.d.ts +4 -4
- package/src/commands/ClientToServer/AddUserRangeDataviewCommand.d.ts +6 -6
- package/src/commands/ClientToServer/AddUserSortDataViewCommand.d.ts +6 -6
- package/src/commands/ClientToServer/BrowserEscEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/ClientOriginatedCommand.d.ts +8 -8
- package/src/commands/ClientToServer/ClientOriginatedCommandSerializer.d.ts +6 -6
- package/src/commands/ClientToServer/ColumnSortEventCommand.d.ts +11 -10
- package/src/commands/ClientToServer/CommandFactory.d.ts +64 -64
- package/src/commands/ClientToServer/CommandSerializationHelper.d.ts +20 -20
- package/src/commands/ClientToServer/ComputeEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/ContextTerminationEventCommand.d.ts +8 -7
- package/src/commands/ClientToServer/ContextTimeoutResetCommand.d.ts +8 -7
- package/src/commands/ClientToServer/ControlItemsRefreshCommand.d.ts +6 -6
- package/src/commands/ClientToServer/DataViewOutputCommand.d.ts +9 -9
- package/src/commands/ClientToServer/DataviewCommand.d.ts +32 -32
- package/src/commands/ClientToServer/EvaluateCommand.d.ts +16 -15
- package/src/commands/ClientToServer/EventCommand.d.ts +16 -15
- package/src/commands/ClientToServer/ExecOperCommand.d.ts +24 -23
- package/src/commands/ClientToServer/FetchDataControlValuesEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/GlobalParamsQueryCommand.d.ts +5 -5
- package/src/commands/ClientToServer/ICommandTaskTag.d.ts +3 -3
- package/src/commands/ClientToServer/IndexChangeEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/IniputForceWriteCommand.d.ts +11 -10
- package/src/commands/ClientToServer/NonReversibleExitEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/QueryCommand.d.ts +8 -8
- package/src/commands/ClientToServer/RecomputeCommand.d.ts +12 -11
- package/src/commands/ClientToServer/RefreshEventCommand.d.ts +13 -12
- package/src/commands/ClientToServer/RefreshScreenEventCommand.d.ts +11 -10
- package/src/commands/ClientToServer/RollbackEventCommand.d.ts +15 -14
- package/src/commands/ClientToServer/SelectProgramCommand.d.ts +7 -6
- package/src/commands/ClientToServer/SetTransactionStateDataviewCommand.d.ts +5 -5
- package/src/commands/ClientToServer/SubformOpenEventCommand.d.ts +9 -8
- package/src/commands/ClientToServer/SubformRefreshEventCommand.d.ts +10 -9
- package/src/commands/ClientToServer/TransactionCommand.d.ts +14 -12
- package/src/commands/ClientToServer/UnloadCommand.d.ts +8 -7
- package/src/commands/ClientToServer/WriteMessageToServerLogCommand.d.ts +6 -6
- package/src/commands/DataViewCommandBase.d.ts +6 -6
- package/src/commands/IClientCommand.d.ts +2 -2
- package/src/commands/IClientTargetedCommand.d.ts +12 -12
- package/src/commands/IClientToServerCommandInfo.d.ts +4 -3
- package/src/commands/ServerToClient/AbortCommand.d.ts +11 -11
- package/src/commands/ServerToClient/AddLocateCommand.d.ts +6 -6
- package/src/commands/ServerToClient/AddRangeCommand.d.ts +10 -10
- package/src/commands/ServerToClient/AddSortCommand.d.ts +9 -9
- package/src/commands/ServerToClient/ClientRefreshCommand.d.ts +7 -7
- package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +12 -12
- package/src/commands/ServerToClient/EnhancedVerifyCommand.d.ts +13 -13
- package/src/commands/ServerToClient/OpenURLCommand.d.ts +21 -21
- package/src/commands/ServerToClient/ResetLocateCommand.d.ts +6 -6
- package/src/commands/ServerToClient/ResetRangeCommand.d.ts +6 -6
- package/src/commands/ServerToClient/ResetSortCommand.d.ts +6 -6
- package/src/commands/ServerToClient/ResultCommand.d.ts +10 -10
- package/src/commands/ServerToClient/VerifyCommand.d.ts +17 -17
- package/src/commands/ServerToClient/XMLBasedCommandBuilder.d.ts +11 -11
- package/src/communications/IConnectionStateManager.d.ts +4 -4
- package/src/communications/InteractiveCommunicationsFailureHandler.d.ts +6 -6
- package/src/data/DataSourceIdKey.d.ts +2 -2
- package/src/data/DataView.d.ts +162 -162
- package/src/data/DataViewBase.d.ts +12 -12
- package/src/data/DataviewManager.d.ts +14 -14
- package/src/data/DataviewManagerBase.d.ts +11 -11
- package/src/data/DvCache.d.ts +15 -15
- package/src/data/Field.d.ts +103 -103
- package/src/data/FieldBase.d.ts +23 -23
- package/src/data/FieldsTable.d.ts +27 -27
- package/src/data/IRecordsTable.d.ts +7 -7
- package/src/data/Key.d.ts +15 -15
- package/src/data/Record.d.ts +157 -156
- package/src/data/RecordOutOfDataViewException.d.ts +10 -10
- package/src/data/RecordsTable.d.ts +38 -38
- package/src/data/TaskTransactionManager.d.ts +17 -17
- package/src/data/XMLBasedDcValuesBuilder.d.ts +11 -11
- package/src/enums.d.ts +21 -21
- package/src/env/EnvVariablesTable.d.ts +17 -17
- package/src/env/Environment.d.ts +118 -118
- package/src/env/ILanguageData.d.ts +3 -3
- package/src/env/LanguageData.d.ts +20 -20
- package/src/env/MirrorString.d.ts +15 -15
- package/src/event/ActionManager.d.ts +14 -14
- package/src/event/Event.d.ts +79 -79
- package/src/event/EventHandler.d.ts +66 -66
- package/src/event/EventHandlerPosition.d.ts +25 -25
- package/src/event/EventsManager.d.ts +205 -204
- package/src/event/IEventsManager.d.ts +77 -77
- package/src/event/RunTimeEvent.d.ts +126 -123
- package/src/event/RunTimeEventBase.d.ts +5 -5
- package/src/event/UserEventsTable.d.ts +11 -11
- package/src/exp/ExpTable.d.ts +11 -11
- package/src/exp/Expression.d.ts +37 -37
- package/src/exp/ExpressionDict.d.ts +12 -12
- package/src/exp/ExpressionEvaluator.d.ts +198 -198
- package/src/exp/ExpressionLocalJpn.d.ts +18 -18
- package/src/exp/GlobalParamsTable.d.ts +19 -19
- package/src/exp/YesNoExp.d.ts +9 -9
- package/src/gui/CreatedFormVector.d.ts +10 -10
- package/src/gui/FormsTable.d.ts +15 -15
- package/src/gui/MgControl.d.ts +60 -60
- package/src/gui/MgForm.d.ts +96 -93
- package/src/http/HttpManager.d.ts +25 -25
- package/src/http/client/HttpClientAsync.d.ts +16 -16
- package/src/http/client/HttpClientBase.d.ts +30 -30
- package/src/http/client/HttpClientEvents.d.ts +18 -18
- package/src/http/client/HttpClientSync.d.ts +17 -17
- package/src/http/client/HttpUtility.d.ts +10 -10
- package/src/http/client/ICommunicationsFailureHandler.d.ts +5 -5
- package/src/remote/AddUserLocateRemoteDataViewCommand.d.ts +8 -8
- package/src/remote/AddUserRangeRemoteDataViewCommand.d.ts +8 -8
- package/src/remote/AddUserSortRemoteDataViewCommand.d.ts +8 -8
- package/src/remote/RemoteCommandsProcessor.d.ts +51 -51
- package/src/remote/RemoteControlItemsRefreshCommand.d.ts +8 -8
- package/src/remote/RemoteDataViewCommandBase.d.ts +10 -10
- package/src/remote/RemoteDataViewCommandFactory.d.ts +6 -6
- package/src/remote/RemoteDataViewCommandUpdateNonModifiable.d.ts +8 -8
- package/src/remote/RemoteDataviewManager.d.ts +9 -9
- package/src/remote/RemoteInitDataViewCommand.d.ts +7 -7
- package/src/remote/ResetUserLocateRemoteDataviewCommand.d.ts +7 -7
- package/src/remote/ResetUserRangeRemoteDataviewCommand.d.ts +7 -7
- package/src/remote/ResetUserSortRemoteDataviewCommand.d.ts +7 -7
- package/src/remote/ServerError.d.ts +16 -16
- package/src/remote/SetTransactionStateRemoteDataViewCommand.d.ts +8 -8
- package/src/rt/Argument.d.ts +36 -36
- package/src/rt/ArgumentsList.d.ts +24 -24
- package/src/rt/Boundary.d.ts +27 -27
- package/src/rt/CompMainPrgTable.d.ts +10 -10
- package/src/rt/DataviewHeaderBase.d.ts +34 -34
- package/src/rt/DataviewHeaderFactory.d.ts +5 -5
- package/src/rt/DataviewHeaders.d.ts +12 -12
- package/src/rt/DataviewHeadersSaxHandler.d.ts +10 -10
- package/src/rt/ExecutionStack.d.ts +22 -22
- package/src/rt/ExecutionStackEntry.d.ts +7 -7
- package/src/rt/HandlersTable.d.ts +19 -19
- package/src/rt/IDataSourceViewDefinition.d.ts +6 -6
- package/src/rt/IDataviewHeader.d.ts +10 -10
- package/src/rt/IResultValue.d.ts +4 -4
- package/src/rt/LastFocusedManager.d.ts +23 -23
- package/src/rt/Operation.d.ts +97 -97
- package/src/rt/OperationTable.d.ts +15 -15
- package/src/rt/Recompute.d.ts +41 -41
- package/src/rt/RecomputeTable.d.ts +9 -9
- package/src/rt/RemoteDataviewHeader.d.ts +14 -14
- package/src/rt/ResultValue.d.ts +7 -7
- package/src/rt/TableCache.d.ts +29 -29
- package/src/rt/TableCacheManager.d.ts +10 -10
- package/src/rt/Transaction.d.ts +23 -23
- package/src/security/UserDetails.d.ts +16 -16
- package/src/tasks/IMGDataCollection.d.ts +26 -26
- package/src/tasks/MGData.d.ts +63 -63
- package/src/tasks/MGDataCollection.d.ts +42 -42
- package/src/tasks/RCTimer.d.ts +13 -13
- package/src/tasks/RemoteTaskService.d.ts +16 -16
- package/src/tasks/Task.d.ts +312 -312
- package/src/tasks/TaskBase.d.ts +123 -123
- package/src/tasks/TaskServiceBase.d.ts +16 -16
- package/src/tasks/TasksTable.d.ts +21 -21
- package/src/tasks/sort/Sort.d.ts +4 -4
- package/src/tasks/sort/SortCollection.d.ts +11 -11
- package/src/util/ConstUtils.d.ts +3 -3
- package/src/util/FlowMonitorQueue.d.ts +70 -70
- package/src/util/HeapSort.d.ts +6 -6
- package/src/util/IMirrorXML.d.ts +6 -6
- package/src/util/IServerConfig.d.ts +11 -11
- package/src/util/MgBlockingQueue.d.ts +5 -5
- package/src/util/MgPriorityBlockingQueue.d.ts +17 -17
- package/src/util/MgPriorityQueue.d.ts +13 -13
- package/src/util/ParamParseResult.d.ts +6 -6
- package/src/util/PrmMap.d.ts +28 -28
- package/src/util/ReturnResult.d.ts +18 -18
- package/src/util/ReturnResultBase.d.ts +11 -11
- package/src/util/Scrambler.d.ts +10 -10
- package/src/util/UniqueIDUtils.d.ts +4 -4
- package/src/util/cookie.service.d.ts +8 -8
- package/esm2020/src/AccessHelper.mjs +0 -9
- package/esm2020/src/ClientManager.mjs +0 -399
- package/esm2020/src/CommandsProcessorBase.mjs +0 -58
- package/esm2020/src/CommandsProcessorManager.mjs +0 -26
- package/esm2020/src/CommandsTable.mjs +0 -162
- package/esm2020/src/ConstInterface.mjs +0 -516
- package/esm2020/src/FlowMonitorInterface.mjs +0 -16
- package/esm2020/src/GUIManager.mjs +0 -62
- package/esm2020/src/GlobalCommandsManager.mjs +0 -34
- package/esm2020/src/GuiEventsProcessor.mjs +0 -154
- package/esm2020/src/ServerConfig.mjs +0 -117
- package/esm2020/src/bridge/MagicBridge.mjs +0 -41
- package/esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs +0 -11
- package/esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs +0 -23
- package/esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs +0 -60
- package/esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs +0 -26
- package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +0 -260
- package/esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs +0 -69
- package/esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs +0 -23
- package/esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs +0 -13
- package/esm2020/src/commands/ClientToServer/EvaluateCommand.mjs +0 -36
- package/esm2020/src/commands/ClientToServer/ExecOperCommand.mjs +0 -67
- package/esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs +0 -22
- package/esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs +0 -21
- package/esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs +0 -23
- package/esm2020/src/commands/ClientToServer/RecomputeCommand.mjs +0 -27
- package/esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs +0 -27
- package/esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs +0 -24
- package/esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs +0 -39
- package/esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs +0 -15
- package/esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs +0 -21
- package/esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs +0 -24
- package/esm2020/src/commands/ClientToServer/TransactionCommand.mjs +0 -28
- package/esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs +0 -18
- package/esm2020/src/commands/DataViewCommandBase.mjs +0 -10
- package/esm2020/src/commands/IClientTargetedCommand.mjs +0 -9
- package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +0 -65
- package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +0 -62
- package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +0 -33
- package/esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs +0 -25
- package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +0 -27
- package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +0 -45
- package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +0 -221
- package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +0 -37
- package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +0 -83
- package/esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs +0 -132
- package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +0 -17
- package/esm2020/src/data/DataView.mjs +0 -1610
- package/esm2020/src/data/DataviewManager.mjs +0 -28
- package/esm2020/src/data/DataviewManagerBase.mjs +0 -15
- package/esm2020/src/data/DvCache.mjs +0 -67
- package/esm2020/src/data/Field.mjs +0 -646
- package/esm2020/src/data/FieldBase.mjs +0 -18
- package/esm2020/src/data/FieldsTable.mjs +0 -103
- package/esm2020/src/data/Key.mjs +0 -88
- package/esm2020/src/data/Record.mjs +0 -846
- package/esm2020/src/data/RecordsTable.mjs +0 -267
- package/esm2020/src/data/TaskTransactionManager.mjs +0 -103
- package/esm2020/src/data/XMLBasedDcValuesBuilder.mjs +0 -74
- package/esm2020/src/env/EnvVariablesTable.mjs +0 -340
- package/esm2020/src/env/Environment.mjs +0 -489
- package/esm2020/src/env/LanguageData.mjs +0 -226
- package/esm2020/src/env/MirrorString.mjs +0 -65
- package/esm2020/src/event/ActionManager.mjs +0 -91
- package/esm2020/src/event/Event.mjs +0 -1333
- package/esm2020/src/event/EventHandler.mjs +0 -766
- package/esm2020/src/event/EventHandlerPosition.mjs +0 -204
- package/esm2020/src/event/EventsManager.mjs +0 -2975
- package/esm2020/src/event/RunTimeEvent.mjs +0 -392
- package/esm2020/src/event/UserEventsTable.mjs +0 -47
- package/esm2020/src/exp/ExpTable.mjs +0 -59
- package/esm2020/src/exp/Expression.mjs +0 -200
- package/esm2020/src/exp/ExpressionDict.mjs +0 -727
- package/esm2020/src/exp/ExpressionEvaluator.mjs +0 -4212
- package/esm2020/src/exp/ExpressionLocalJpn.mjs +0 -314
- package/esm2020/src/exp/GlobalParamsTable.mjs +0 -85
- package/esm2020/src/exp/YesNoExp.mjs +0 -36
- package/esm2020/src/gui/CreatedFormVector.mjs +0 -23
- package/esm2020/src/gui/FormsTable.mjs +0 -66
- package/esm2020/src/gui/MgControl.mjs +0 -353
- package/esm2020/src/gui/MgForm.mjs +0 -1181
- package/esm2020/src/http/HttpManager.mjs +0 -97
- package/esm2020/src/http/client/HttpClientAsync.mjs +0 -67
- package/esm2020/src/http/client/HttpClientBase.mjs +0 -132
- package/esm2020/src/http/client/HttpClientEvents.mjs +0 -39
- package/esm2020/src/http/client/HttpClientSync.mjs +0 -42
- package/esm2020/src/http/client/HttpUtility.mjs +0 -84
- package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +0 -18
- package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +0 -18
- package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +0 -18
- package/esm2020/src/remote/RemoteCommandsProcessor.mjs +0 -880
- package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +0 -25
- package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +0 -24
- package/esm2020/src/remote/RemoteDataViewCommandFactory.mjs +0 -61
- package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +0 -17
- package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +0 -16
- package/esm2020/src/remote/ServerError.mjs +0 -40
- package/esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs +0 -20
- package/esm2020/src/rt/Argument.mjs +0 -265
- package/esm2020/src/rt/ArgumentsList.mjs +0 -103
- package/esm2020/src/rt/Boundary.mjs +0 -152
- package/esm2020/src/rt/CompMainPrgTable.mjs +0 -65
- package/esm2020/src/rt/DataviewHeaders.mjs +0 -53
- package/esm2020/src/rt/DataviewHeadersSaxHandler.mjs +0 -38
- package/esm2020/src/rt/ExecutionStack.mjs +0 -94
- package/esm2020/src/rt/HandlersTable.mjs +0 -96
- package/esm2020/src/rt/LastFocusedManager.mjs +0 -67
- package/esm2020/src/rt/Operation.mjs +0 -735
- package/esm2020/src/rt/OperationTable.mjs +0 -67
- package/esm2020/src/rt/Recompute.mjs +0 -355
- package/esm2020/src/rt/RecomputeTable.mjs +0 -63
- package/esm2020/src/rt/RemoteDataviewHeader.mjs +0 -108
- package/esm2020/src/rt/ResultValue.mjs +0 -12
- package/esm2020/src/rt/TableCache.mjs +0 -177
- package/esm2020/src/rt/TableCacheManager.mjs +0 -67
- package/esm2020/src/rt/Transaction.mjs +0 -53
- package/esm2020/src/security/UserDetails.mjs +0 -71
- package/esm2020/src/tasks/MGData.mjs +0 -552
- package/esm2020/src/tasks/MGDataCollection.mjs +0 -252
- package/esm2020/src/tasks/RCTimer.mjs +0 -63
- package/esm2020/src/tasks/RemoteTaskService.mjs +0 -45
- package/esm2020/src/tasks/Task.mjs +0 -2495
- package/esm2020/src/tasks/TaskBase.mjs +0 -87
- package/esm2020/src/tasks/TaskServiceBase.mjs +0 -25
- package/esm2020/src/tasks/TasksTable.mjs +0 -80
- package/esm2020/src/tasks/sort/Sort.mjs +0 -7
- package/esm2020/src/tasks/sort/SortCollection.mjs +0 -67
- package/esm2020/src/util/ConstUtils.mjs +0 -14
- package/esm2020/src/util/FlowMonitorQueue.mjs +0 -453
- package/esm2020/src/util/HeapSort.mjs +0 -70
- package/esm2020/src/util/MgPriorityBlockingQueue.mjs +0 -74
- package/esm2020/src/util/MgPriorityQueue.mjs +0 -66
- package/esm2020/src/util/PrmMap.mjs +0 -151
- package/esm2020/src/util/ReturnResult.mjs +0 -46
- package/esm2020/src/util/ReturnResultBase.mjs +0 -18
- package/esm2020/src/util/Scrambler.mjs +0 -89
- package/esm2020/src/util/UniqueIDUtils.mjs +0 -12
- package/esm2020/src/util/cookie.service.mjs +0 -92
- package/fesm2015/magic-xpa-engine.mjs +0 -30835
- package/fesm2015/magic-xpa-engine.mjs.map +0 -1
- package/fesm2020/magic-xpa-engine.mjs.map +0 -1
@@ -1,9 +1,9 @@
|
|
1
|
-
import { DataViewCommandType } from "./DataviewCommand";
|
2
|
-
import { AddUserRangeDataviewCommand } from "./AddUserRangeDataviewCommand";
|
3
|
-
export class AddUserLocateDataViewCommand extends AddUserRangeDataviewCommand {
|
4
|
-
constructor() {
|
5
|
-
super();
|
6
|
-
this.CommandType = DataViewCommandType.AddUserLocate;
|
7
|
-
}
|
8
|
-
}
|
1
|
+
import { DataViewCommandType } from "./DataviewCommand";
|
2
|
+
import { AddUserRangeDataviewCommand } from "./AddUserRangeDataviewCommand";
|
3
|
+
export class AddUserLocateDataViewCommand extends AddUserRangeDataviewCommand {
|
4
|
+
constructor() {
|
5
|
+
super();
|
6
|
+
this.CommandType = DataViewCommandType.AddUserLocate;
|
7
|
+
}
|
8
|
+
}
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUsxRSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsMkJBQTJCO0lBSzNFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztJQUN2RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGFWaWV3Q29tbWFuZFR5cGV9IGZyb20gXCIuL0RhdGF2aWV3Q29tbWFuZFwiO1xyXG5pbXBvcnQge0FkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZH0gZnJvbSBcIi4vQWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBEYXRhVmlldyBDb21tYW5kIGZvciBBZGQgdXNlciBsb2NhdGVzLlxyXG4vLy8gPC9zdW1tYXJ5PlxyXG5leHBvcnQgY2xhc3MgQWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZCBleHRlbmRzIEFkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZCB7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5Db21tYW5kVHlwZSA9IERhdGFWaWV3Q29tbWFuZFR5cGUuQWRkVXNlckxvY2F0ZTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import { DataviewCommand, DataViewCommandType } from "./DataviewCommand";
|
2
|
-
export class AddUserRangeDataviewCommand extends DataviewCommand {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
this.CommandType = DataViewCommandType.AddUserRange;
|
7
|
-
}
|
8
|
-
}
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
import { DataviewCommand, DataViewCommandType } from "./DataviewCommand";
|
2
|
+
export class AddUserRangeDataviewCommand extends DataviewCommand {
|
3
|
+
Range = null;
|
4
|
+
constructor() {
|
5
|
+
super();
|
6
|
+
this.CommandType = DataViewCommandType.AddUserRange;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9BZGRVc2VyUmFuZ2VEYXRhdmlld0NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBTXZFLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxlQUFlO0lBQzlELEtBQUssR0FBYyxJQUFJLENBQUM7SUFLeEI7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDO0lBQ3RELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YXZpZXdDb21tYW5kLCBEYXRhVmlld0NvbW1hbmRUeXBlfSBmcm9tIFwiLi9EYXRhdmlld0NvbW1hbmRcIjtcclxuaW1wb3J0IHtVc2VyUmFuZ2V9IGZyb20gXCIuLi8uLi90YXNrcy9UYXNrQmFzZVwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gY29tbWFuZCBmb3IgdGhlIFJhbmdlQWRkIGZ1bmN0aW9uXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBBZGRVc2VyUmFuZ2VEYXRhdmlld0NvbW1hbmQgZXh0ZW5kcyBEYXRhdmlld0NvbW1hbmQge1xyXG4gIFJhbmdlOiBVc2VyUmFuZ2UgPSBudWxsO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENUT1JcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuQ29tbWFuZFR5cGUgPSBEYXRhVmlld0NvbW1hbmRUeXBlLkFkZFVzZXJSYW5nZTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -1,9 +1,9 @@
|
|
1
|
-
import { DataviewCommand, DataViewCommandType } from "./DataviewCommand";
|
2
|
-
export class AddUserSortDataViewCommand extends DataviewCommand {
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
this.CommandType = DataViewCommandType.AddUserSort;
|
7
|
-
}
|
8
|
-
}
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
import { DataviewCommand, DataViewCommandType } from "./DataviewCommand";
|
2
|
+
export class AddUserSortDataViewCommand extends DataviewCommand {
|
3
|
+
Sort = null;
|
4
|
+
constructor() {
|
5
|
+
super();
|
6
|
+
this.CommandType = DataViewCommandType.AddUserSort;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWRkVXNlclNvcnREYXRhVmlld0NvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0FkZFVzZXJTb3J0RGF0YVZpZXdDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQU12RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsZUFBZTtJQUM3RCxJQUFJLEdBQVMsSUFBSSxDQUFDO0lBS2xCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDLFdBQVcsQ0FBQztJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGF2aWV3Q29tbWFuZCwgRGF0YVZpZXdDb21tYW5kVHlwZX0gZnJvbSBcIi4vRGF0YXZpZXdDb21tYW5kXCI7XHJcbmltcG9ydCB7U29ydH0gZnJvbSBcIi4uLy4uL3Rhc2tzL3NvcnQvU29ydFwiO1xyXG5cclxuLy8vIDxzdW1tYXJ5PlxyXG4vLy8gRGF0YVZpZXcgQ29tbWFuZCBmb3IgQWRkIFVzZXIgU29ydC5cclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGNsYXNzIEFkZFVzZXJTb3J0RGF0YVZpZXdDb21tYW5kIGV4dGVuZHMgRGF0YXZpZXdDb21tYW5kIHtcclxuICBTb3J0OiBTb3J0ID0gbnVsbDtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLkNvbW1hbmRUeXBlID0gRGF0YVZpZXdDb21tYW5kVHlwZS5BZGRVc2VyU29ydDtcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { EventCommand } from './EventCommand';
|
2
|
+
import { CommandSerializationHelper } from './CommandSerializationHelper';
|
3
|
+
import { InternalInterface } from '@magic-xpa/utils';
|
4
|
+
import { ConstInterface } from '../../ConstInterface';
|
5
|
+
import { NString, isNullOrUndefined } from '@magic-xpa/mscorelib';
|
6
|
+
export class BrowserEscEventCommand extends EventCommand {
|
7
|
+
CloseSubformOnly = false;
|
8
|
+
constructor() {
|
9
|
+
super(InternalInterface.MG_ACT_BROWSER_ESC);
|
10
|
+
}
|
11
|
+
SerializeCommandData() {
|
12
|
+
let helper = new CommandSerializationHelper();
|
13
|
+
helper.SerializeTaskTag(this.TaskTag);
|
14
|
+
helper.SerializeMagicEvent(this.MagicEvent);
|
15
|
+
helper.SerializeAttribute(ConstInterface.MG_ATTR_OBJECT, "1");
|
16
|
+
helper.SerializeCloseSubformOnly(this.CloseSubformOnly);
|
17
|
+
return helper.GetString();
|
18
|
+
}
|
19
|
+
getCommandInfo() {
|
20
|
+
return NString.Format('[{0}{1} in {2}]', this.EventDescription, this.CloseSubformOnly ? ' Subform Only' : NString.Empty, isNullOrUndefined(this.Task) ? NString.Empty : this.Task.getTaskInfo());
|
21
|
+
}
|
22
|
+
getFieldsInfo() {
|
23
|
+
return NString.Empty;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJvd3NlckVzY0V2ZW50Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQnJvd3NlckVzY0V2ZW50Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUloRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQUV0RCxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFLbEM7UUFDRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBUUQsb0JBQW9CO1FBQ2xCLElBQUksTUFBTSxHQUErQixJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFFMUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV4RCxPQUFPLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFDSCxJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUN0RCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50Q29tbWFuZH0gZnJvbSAnLi9FdmVudENvbW1hbmQnO1xyXG5pbXBvcnQge0NvbW1hbmRTZXJpYWxpemF0aW9uSGVscGVyfSBmcm9tICcuL0NvbW1hbmRTZXJpYWxpemF0aW9uSGVscGVyJztcclxuaW1wb3J0IHtJbnRlcm5hbEludGVyZmFjZX0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7Q29uc3RJbnRlcmZhY2V9IGZyb20gJy4uLy4uL0NvbnN0SW50ZXJmYWNlJztcclxuaW1wb3J0IHtOU3RyaW5nLCBpc051bGxPclVuZGVmaW5lZH0gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQge0lDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvfSBmcm9tICcuLi9JQ2xpZW50VG9TZXJ2ZXJDb21tYW5kSW5mbyc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEJyb3dzZXJFc2NFdmVudENvbW1hbmQgZXh0ZW5kcyBFdmVudENvbW1hbmQgaW1wbGVtZW50cyBJQ2xpZW50VG9TZXJ2ZXJDb21tYW5kSW5mbyB7XHJcblxyXG4gIENsb3NlU3ViZm9ybU9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBDVE9SXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9CUk9XU0VSX0VTQyk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaGFzQ2hpbGRFbGVtZW50c1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBTZXJpYWxpemVDb21tYW5kRGF0YSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGhlbHBlcjogQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIgPSBuZXcgQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIoKTtcclxuXHJcbiAgICBoZWxwZXIuU2VyaWFsaXplVGFza1RhZyh0aGlzLlRhc2tUYWcpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZU1hZ2ljRXZlbnQodGhpcy5NYWdpY0V2ZW50KTtcclxuICAgIGhlbHBlci5TZXJpYWxpemVBdHRyaWJ1dGUoQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9PQkpFQ1QsIFwiMVwiKTtcclxuICAgIGhlbHBlci5TZXJpYWxpemVDbG9zZVN1YmZvcm1Pbmx5KHRoaXMuQ2xvc2VTdWJmb3JtT25seSk7XHJcblxyXG4gICAgcmV0dXJuIGhlbHBlci5HZXRTdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIGdldENvbW1hbmRJbmZvKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTlN0cmluZy5Gb3JtYXQoJ1t7MH17MX0gaW4gezJ9XSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHRoaXMuRXZlbnREZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgdGhpcy5DbG9zZVN1YmZvcm1Pbmx5ID8gJyBTdWJmb3JtIE9ubHknIDogTlN0cmluZy5FbXB0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgIGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuVGFzaykgPyBOU3RyaW5nLkVtcHR5IDogdGhpcy5UYXNrLmdldFRhc2tJbmZvKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmllbGRzSW5mbygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE5TdHJpbmcuRW1wdHk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -1,15 +1,15 @@
|
|
1
|
-
export class ClientOriginatedCommand {
|
2
|
-
get ShouldSerialize() {
|
3
|
-
return true;
|
4
|
-
}
|
5
|
-
get ShouldSerializeRecords() {
|
6
|
-
return true;
|
7
|
-
}
|
8
|
-
SerializeCommandData() {
|
9
|
-
return null;
|
10
|
-
}
|
11
|
-
SerializeDataAfterCommand() {
|
12
|
-
return null;
|
13
|
-
}
|
14
|
-
}
|
1
|
+
export class ClientOriginatedCommand {
|
2
|
+
get ShouldSerialize() {
|
3
|
+
return true;
|
4
|
+
}
|
5
|
+
get ShouldSerializeRecords() {
|
6
|
+
return true;
|
7
|
+
}
|
8
|
+
SerializeCommandData() {
|
9
|
+
return null;
|
10
|
+
}
|
11
|
+
SerializeDataAfterCommand() {
|
12
|
+
return null;
|
13
|
+
}
|
14
|
+
}
|
15
15
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50T3JpZ2luYXRlZENvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBZ0IsdUJBQXVCO0lBVTNDLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFLRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFPRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBTUQseUJBQXlCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJQ2xpZW50Q29tbWFuZH0gZnJvbSBcIi4uL0lDbGllbnRDb21tYW5kXCI7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBiYXNlIGNsYXNzIGZvciBjb21tYW5kcyBjcmVhdGVkIGluIHRoZSBjbGllbnRcclxuLy8vIDwvc3VtbWFyeT5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENsaWVudE9yaWdpbmF0ZWRDb21tYW5kIGltcGxlbWVudHMgSUNsaWVudENvbW1hbmQge1xyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gYXR0cmlidXRlIG9mIGNvbW1hbmQgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBhYnN0cmFjdCBnZXQgQ29tbWFuZFR5cGVBdHRyaWJ1dGUoKTogc3RyaW5nO1xyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIHVzZWQgdG8gdGVsbCB3aGljaCBjb21tYW5kcyBhcmUgaGFuZGxlZCBsb2NhbGx5IGFuZCBzaG91bGQgbm90IGJlIHNlcmlhbGl6ZWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgZ2V0IFNob3VsZFNlcmlhbGl6ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzaG91bGQgdGhlIFNlcmlhbGl6ZVJlY29yZHMgbWV0aG9kIGJlIGNhbGxlZCBmb3IgdGhpcyBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICBnZXQgU2hvdWxkU2VyaWFsaXplUmVjb3JkcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyB2aXJ0dWFsIG1ldGhvZCwgdG8gYWxsb3cgY29tbWFuZHMgdG8gc2VyaWFsaXplIHNwZWNpZmljIGRhdGFcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImhhc0NoaWxkRWxlbWVudHNcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgU2VyaWFsaXplQ29tbWFuZERhdGEoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBlbmFibGUgY29tbWFuZHMgdG8gc2VyaWFsaXplIGV4dHJhIGRhdGEgYWZ0ZXIgdGhlIGNvbW1hbmQgc2VyaWFsaXphdGlvbiAoZS5nLiBleGVjdXRpb24gc3RhY2spXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIFNlcmlhbGl6ZURhdGFBZnRlckNvbW1hbmQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import { Logger, XMLConstants } from "@magic-xpa/utils";
|
2
|
+
import { Exception, RefParam, StringBuilder } from "@magic-xpa/mscorelib";
|
3
|
+
import { ConstInterface } from "../../ConstInterface";
|
4
|
+
import { LastFocusedManager } from "../../rt/LastFocusedManager";
|
5
|
+
export class ClientOriginatedCommandSerializer {
|
6
|
+
static Serialize(cmd, currMGData) {
|
7
|
+
if (!cmd.ShouldSerialize)
|
8
|
+
return null;
|
9
|
+
let message = new StringBuilder();
|
10
|
+
let hasChildElements = false;
|
11
|
+
message.Append(XMLConstants.START_TAG + ConstInterface.MG_TAG_COMMAND);
|
12
|
+
message.Append(" " + XMLConstants.MG_ATTR_TYPE + "=\"" + cmd.CommandTypeAttribute + "\"");
|
13
|
+
let refHasChildElements = new RefParam(hasChildElements);
|
14
|
+
message.Append(cmd.SerializeCommandData());
|
15
|
+
hasChildElements = refHasChildElements.value;
|
16
|
+
if (cmd.ShouldSerializeRecords)
|
17
|
+
message.Append(ClientOriginatedCommandSerializer.SerializeRecords(currMGData));
|
18
|
+
if (hasChildElements)
|
19
|
+
message.Append(XMLConstants.TAG_CLOSE);
|
20
|
+
else
|
21
|
+
message.Append(XMLConstants.TAG_TERM);
|
22
|
+
message.Append(cmd.SerializeDataAfterCommand());
|
23
|
+
return message.ToString();
|
24
|
+
}
|
25
|
+
static SerializeRecords(currMGData) {
|
26
|
+
let message = new StringBuilder();
|
27
|
+
try {
|
28
|
+
let length = currMGData.getTasksCount();
|
29
|
+
let titleExist = false;
|
30
|
+
let currFocusedTask = LastFocusedManager.Instance.getLastFocusedTask();
|
31
|
+
for (let i = 0; i < length; i++) {
|
32
|
+
let task = currMGData.getTask(i);
|
33
|
+
let ctrl = task.getLastParkedCtrl();
|
34
|
+
if (ctrl !== null) {
|
35
|
+
if (!titleExist) {
|
36
|
+
message.Append(" " + ConstInterface.MG_ATTR_FOCUSLIST + "=\"");
|
37
|
+
titleExist = true;
|
38
|
+
}
|
39
|
+
else
|
40
|
+
message.Append('$');
|
41
|
+
message.Append(task.getTaskTag() + ",");
|
42
|
+
message.Append(task.getLastParkedCtrl().getDitIdx());
|
43
|
+
}
|
44
|
+
}
|
45
|
+
if (titleExist)
|
46
|
+
message.Append("\"");
|
47
|
+
if (currFocusedTask !== null)
|
48
|
+
message.Append(" " + ConstInterface.MG_ATTR_FOCUSTASK + "=\"" + currFocusedTask.getTaskTag() + "\"");
|
49
|
+
}
|
50
|
+
catch (ex) {
|
51
|
+
if (ex instanceof Exception) {
|
52
|
+
Logger.Instance.WriteExceptionToLog(ex);
|
53
|
+
}
|
54
|
+
else
|
55
|
+
throw ex;
|
56
|
+
}
|
57
|
+
return message.ToString();
|
58
|
+
}
|
59
|
+
}
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRTZXJpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9jb21tYW5kcy9DbGllbnRUb1NlcnZlci9DbGllbnRPcmlnaW5hdGVkQ29tbWFuZFNlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUd4RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHcEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFL0QsTUFBTSxPQUFPLGlDQUFpQztJQU1yQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQTRCLEVBQUUsVUFBa0I7UUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlO1lBQ3RCLE9BQU8sSUFBSSxDQUFDO1FBRWQsSUFBSSxPQUFPLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7UUFDakQsSUFBSSxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFFdEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsWUFBWSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFMUYsSUFBSSxtQkFBbUIsR0FBc0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFDM0MsZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBRTdDLElBQUksR0FBRyxDQUFDLHNCQUFzQjtZQUM1QixPQUFPLENBQUMsTUFBTSxDQUFFLGlDQUFpQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFbEYsSUFBSSxnQkFBZ0I7WUFDbEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7O1lBRXZDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztRQUNoRCxPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBTUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFVBQWtCO1FBQ3hDLElBQUksT0FBTyxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQztZQUNILElBQUksTUFBTSxHQUFXLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoRCxJQUFJLFVBQVUsR0FBWSxLQUFLLENBQUM7WUFDaEMsSUFBSSxlQUFlLEdBQWdCLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRXBGLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxJQUFJLEdBQWdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlDLElBQUksSUFBSSxHQUF5QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDMUQsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUErQyxDQUFDO29CQUMvRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7d0JBQ2hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FBQzt3QkFDL0QsVUFBVSxHQUFHLElBQUksQ0FBQztvQkFDcEIsQ0FBQzs7d0JBRUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDdkQsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLFVBQVU7Z0JBQ1osT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV2QixJQUFJLGVBQWUsS0FBSyxJQUFJO2dCQUMxQixPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxHQUFHLGVBQWUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN6RyxDQUFDO1FBQ0QsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNWLElBQUksRUFBRSxZQUFZLFNBQVMsRUFBRSxDQUFDO2dCQUM1QixNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLENBQUM7O2dCQUVDLE1BQU0sRUFBRSxDQUFDO1FBQ2IsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyLCBYTUxDb25zdGFudHN9IGZyb20gXCJAbWFnaWMteHBhL3V0aWxzXCI7XHJcbmltcG9ydCB7RXhjZXB0aW9uLCBSZWZQYXJhbSwgU3RyaW5nQnVpbGRlcn0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7TUdEYXRhfSBmcm9tIFwiLi4vLi4vdGFza3MvTUdEYXRhXCI7XHJcbmltcG9ydCB7TWdDb250cm9sfSBmcm9tIFwiLi4vLi4vZ3VpL01nQ29udHJvbFwiO1xyXG5pbXBvcnQge0NvbnN0SW50ZXJmYWNlfSBmcm9tIFwiLi4vLi4vQ29uc3RJbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtHdWlUYXNrQmFzZX0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7Q2xpZW50T3JpZ2luYXRlZENvbW1hbmR9IGZyb20gXCIuL0NsaWVudE9yaWdpbmF0ZWRDb21tYW5kXCI7XHJcbmltcG9ydCB7TGFzdEZvY3VzZWRNYW5hZ2VyfSBmcm9tIFwiLi4vLi4vcnQvTGFzdEZvY3VzZWRNYW5hZ2VyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ2xpZW50T3JpZ2luYXRlZENvbW1hbmRTZXJpYWxpemVyIHtcclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBnZW5lcmFsIHNlcmlhbGl6YXRpb24gZm9yIHN0dWZmIGNvbW1vbiB0byBhbGwgc2VyaWFsaXplZCBjb21tYW5kc1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBwdWJsaWMgc3RhdGljIFNlcmlhbGl6ZShjbWQ6IENsaWVudE9yaWdpbmF0ZWRDb21tYW5kLCBjdXJyTUdEYXRhOiBNR0RhdGEpOiBzdHJpbmcge1xyXG4gICAgICBpZiAoIWNtZC5TaG91bGRTZXJpYWxpemUpXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICBsZXQgbWVzc2FnZTogU3RyaW5nQnVpbGRlciA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7XHJcbiAgICAgIGxldCBoYXNDaGlsZEVsZW1lbnRzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgICBtZXNzYWdlLkFwcGVuZChYTUxDb25zdGFudHMuU1RBUlRfVEFHICsgQ29uc3RJbnRlcmZhY2UuTUdfVEFHX0NPTU1BTkQpO1xyXG4gICAgICBtZXNzYWdlLkFwcGVuZChcIiBcIiArIFhNTENvbnN0YW50cy5NR19BVFRSX1RZUEUgKyBcIj1cXFwiXCIgKyBjbWQuQ29tbWFuZFR5cGVBdHRyaWJ1dGUgKyBcIlxcXCJcIik7XHJcblxyXG4gICAgICBsZXQgcmVmSGFzQ2hpbGRFbGVtZW50czogUmVmUGFyYW08Ym9vbGVhbj4gPSBuZXcgUmVmUGFyYW0oaGFzQ2hpbGRFbGVtZW50cyk7XHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKGNtZC5TZXJpYWxpemVDb21tYW5kRGF0YSgpKTtcclxuICAgICAgaGFzQ2hpbGRFbGVtZW50cyA9IHJlZkhhc0NoaWxkRWxlbWVudHMudmFsdWU7XHJcblxyXG4gICAgICBpZiAoY21kLlNob3VsZFNlcmlhbGl6ZVJlY29yZHMpXHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoIENsaWVudE9yaWdpbmF0ZWRDb21tYW5kU2VyaWFsaXplci5TZXJpYWxpemVSZWNvcmRzKGN1cnJNR0RhdGEpKTtcclxuXHJcbiAgICAgIGlmIChoYXNDaGlsZEVsZW1lbnRzKVxyXG4gICAgICAgIG1lc3NhZ2UuQXBwZW5kKFhNTENvbnN0YW50cy5UQUdfQ0xPU0UpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoWE1MQ29uc3RhbnRzLlRBR19URVJNKTtcclxuXHJcbiAgICAgIG1lc3NhZ2UuQXBwZW5kKGNtZC5TZXJpYWxpemVEYXRhQWZ0ZXJDb21tYW5kKCkpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZS5Ub1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBzaG91bGQgbm90IGJlIGNhbGxlZCBmb3IgUXVlcnkgYW5kIGZvciBJbmlwdXRGb3JjZVdyaXRlOlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgU2VyaWFsaXplUmVjb3JkcyhjdXJyTUdEYXRhOiBNR0RhdGEpOiBzdHJpbmcge1xyXG4gICAgbGV0IG1lc3NhZ2U6IFN0cmluZ0J1aWxkZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IGxlbmd0aDogbnVtYmVyID0gY3Vyck1HRGF0YS5nZXRUYXNrc0NvdW50KCk7XHJcbiAgICAgIGxldCB0aXRsZUV4aXN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIGxldCBjdXJyRm9jdXNlZFRhc2s6IEd1aVRhc2tCYXNlID0gTGFzdEZvY3VzZWRNYW5hZ2VyLkluc3RhbmNlLmdldExhc3RGb2N1c2VkVGFzaygpO1xyXG5cclxuICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IHRhc2s6IEd1aVRhc2tCYXNlID0gY3Vyck1HRGF0YS5nZXRUYXNrKGkpO1xyXG4gICAgICAgIGxldCBjdHJsOiBNZ0NvbnRyb2wgPSA8TWdDb250cm9sPnRhc2suZ2V0TGFzdFBhcmtlZEN0cmwoKTtcclxuICAgICAgICBpZiAoY3RybCAhPT0gbnVsbCAvKiYmIHRhc2suS25vd25Ub1NlcnZlciAmJiAhdGFzay5Jc09mZmxpbmUqLykge1xyXG4gICAgICAgICAgaWYgKCF0aXRsZUV4aXN0KSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UuQXBwZW5kKFwiIFwiICsgQ29uc3RJbnRlcmZhY2UuTUdfQVRUUl9GT0NVU0xJU1QgKyBcIj1cXFwiXCIpO1xyXG4gICAgICAgICAgICB0aXRsZUV4aXN0ID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgbWVzc2FnZS5BcHBlbmQoJyQnKTtcclxuICAgICAgICAgIG1lc3NhZ2UuQXBwZW5kKHRhc2suZ2V0VGFza1RhZygpICsgXCIsXCIpO1xyXG4gICAgICAgICAgbWVzc2FnZS5BcHBlbmQodGFzay5nZXRMYXN0UGFya2VkQ3RybCgpLmdldERpdElkeCgpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRpdGxlRXhpc3QpXHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoXCJcXFwiXCIpO1xyXG5cclxuICAgICAgaWYgKGN1cnJGb2N1c2VkVGFzayAhPT0gbnVsbCAvKiYmICFjdXJyRm9jdXNlZFRhc2suSXNPZmZsaW5lKi8pXHJcbiAgICAgICAgbWVzc2FnZS5BcHBlbmQoXCIgXCIgKyBDb25zdEludGVyZmFjZS5NR19BVFRSX0ZPQ1VTVEFTSyArIFwiPVxcXCJcIiArIGN1cnJGb2N1c2VkVGFzay5nZXRUYXNrVGFnKCkgKyBcIlxcXCJcIik7XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgaWYgKGV4IGluc3RhbmNlb2YgRXhjZXB0aW9uKSB7XHJcbiAgICAgICAgTG9nZ2VyLkluc3RhbmNlLldyaXRlRXhjZXB0aW9uVG9Mb2coZXgpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aHJvdyBleDtcclxuICAgIH1cclxuICAgIHJldHVybiBtZXNzYWdlLlRvU3RyaW5nKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import { EventCommand } from './EventCommand';
|
2
|
+
import { CommandSerializationHelper } from './CommandSerializationHelper';
|
3
|
+
import { NString } from '@magic-xpa/mscorelib';
|
4
|
+
import { InternalInterface } from '@magic-xpa/utils';
|
5
|
+
import { ConstInterface } from '../../ConstInterface';
|
6
|
+
export class ColumnSortEventCommand extends EventCommand {
|
7
|
+
FldId = 0;
|
8
|
+
DitIdx = 0;
|
9
|
+
Direction = 0;
|
10
|
+
constructor() {
|
11
|
+
super(InternalInterface.MG_ACT_COL_SORT);
|
12
|
+
}
|
13
|
+
SerializeCommandData() {
|
14
|
+
let helper = new CommandSerializationHelper();
|
15
|
+
helper.SerializeTaskTag(this.TaskTag);
|
16
|
+
helper.SerializeFldId(this.FldId);
|
17
|
+
helper.SerializeMagicEvent(this.MagicEvent);
|
18
|
+
helper.SerializeDitIdx(this.DitIdx);
|
19
|
+
helper.SerializeAttribute(ConstInterface.MG_ATTR_DIRECTION, this.Direction);
|
20
|
+
return helper.GetString();
|
21
|
+
}
|
22
|
+
getCommandInfo() {
|
23
|
+
return NString.Format('[{0} for column {1} in {2}]', this.EventDescription, this.Task.getForm().getCtrl(this.DitIdx).getName(), this.Task.getTaskInfo());
|
24
|
+
}
|
25
|
+
getFieldsInfo() {
|
26
|
+
return NString.Empty;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uU29ydEV2ZW50Q29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29sdW1uU29ydEV2ZW50Q29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQU1wRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQUN0RCxLQUFLLEdBQVcsQ0FBQyxDQUFDO0lBQ2xCLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsU0FBUyxHQUFXLENBQUMsQ0FBQztJQUt0QjtRQUNFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBT0Qsb0JBQW9CO1FBQ2xCLElBQUksTUFBTSxHQUErQixJQUFJLDBCQUEwQixFQUFFLENBQUM7UUFFMUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLDZCQUE2QixFQUNKLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDdkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudENvbW1hbmR9IGZyb20gJy4vRXZlbnRDb21tYW5kJztcclxuaW1wb3J0IHtDb21tYW5kU2VyaWFsaXphdGlvbkhlbHBlcn0gZnJvbSAnLi9Db21tYW5kU2VyaWFsaXphdGlvbkhlbHBlcic7XHJcbmltcG9ydCB7TlN0cmluZ30gZnJvbSAnQG1hZ2ljLXhwYS9tc2NvcmVsaWInO1xyXG5pbXBvcnQge0ludGVybmFsSW50ZXJmYWNlfSBmcm9tICdAbWFnaWMteHBhL3V0aWxzJztcclxuaW1wb3J0IHtDb25zdEludGVyZmFjZX0gZnJvbSAnLi4vLi4vQ29uc3RJbnRlcmZhY2UnO1xyXG5pbXBvcnQge0lDbGllbnRUb1NlcnZlckNvbW1hbmRJbmZvfSBmcm9tICcuLi9JQ2xpZW50VG9TZXJ2ZXJDb21tYW5kSW5mbyc7XHJcblxyXG4vLy8gPHN1bW1hcnk+XHJcbi8vLyBjb2x1bW4gc29ydCBjb21tYW5kXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5Tb3J0RXZlbnRDb21tYW5kIGV4dGVuZHMgRXZlbnRDb21tYW5kIGltcGxlbWVudHMgSUNsaWVudFRvU2VydmVyQ29tbWFuZEluZm8ge1xyXG4gIEZsZElkOiBudW1iZXIgPSAwO1xyXG4gIERpdElkeDogbnVtYmVyID0gMDtcclxuICBEaXJlY3Rpb246IG51bWJlciA9IDA7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ1RPUlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcihJbnRlcm5hbEludGVyZmFjZS5NR19BQ1RfQ09MX1NPUlQpO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiaGFzQ2hpbGRFbGVtZW50c1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBTZXJpYWxpemVDb21tYW5kRGF0YSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGhlbHBlcjogQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIgPSBuZXcgQ29tbWFuZFNlcmlhbGl6YXRpb25IZWxwZXIoKTtcclxuXHJcbiAgICBoZWxwZXIuU2VyaWFsaXplVGFza1RhZyh0aGlzLlRhc2tUYWcpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZUZsZElkKHRoaXMuRmxkSWQpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZU1hZ2ljRXZlbnQodGhpcy5NYWdpY0V2ZW50KTtcclxuICAgIGhlbHBlci5TZXJpYWxpemVEaXRJZHgodGhpcy5EaXRJZHgpO1xyXG4gICAgaGVscGVyLlNlcmlhbGl6ZUF0dHJpYnV0ZShDb25zdEludGVyZmFjZS5NR19BVFRSX0RJUkVDVElPTiwgdGhpcy5EaXJlY3Rpb24pO1xyXG5cclxuICAgIHJldHVybiBoZWxwZXIuR2V0U3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBnZXRDb21tYW5kSW5mbygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIE5TdHJpbmcuRm9ybWF0KCdbezB9IGZvciBjb2x1bW4gezF9IGluIHsyfV0nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHRoaXMuRXZlbnREZXNjcmlwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCB0aGlzLlRhc2suZ2V0Rm9ybSgpLmdldEN0cmwodGhpcy5EaXRJZHgpLmdldE5hbWUoKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCB0aGlzLlRhc2suZ2V0VGFza0luZm8oKSk7XHJcbiAgfVxyXG5cclxuICBnZXRGaWVsZHNJbmZvKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTlN0cmluZy5FbXB0eTtcclxuICB9XHJcbn1cclxuIl19
|
@@ -0,0 +1,261 @@
|
|
1
|
+
import { NUM_TYPE } from '@magic-xpa/gui';
|
2
|
+
import { InternalInterface, StorageAttribute, ViewRefreshMode } from '@magic-xpa/utils';
|
3
|
+
import { EventCommand } from './EventCommand';
|
4
|
+
import { RollbackEventCommand } from './RollbackEventCommand';
|
5
|
+
import { DataviewCommand, DataViewCommandType } from './DataviewCommand';
|
6
|
+
import { AddUserRangeDataviewCommand } from './AddUserRangeDataviewCommand';
|
7
|
+
import { AddUserSortDataViewCommand } from './AddUserSortDataViewCommand';
|
8
|
+
import { AddUserLocateDataViewCommand } from './AddUserLocateDataViewCommand';
|
9
|
+
import { SetTransactionStateDataviewCommand } from './SetTransactionStateDataviewCommand';
|
10
|
+
import { RefreshEventCommand } from './RefreshEventCommand';
|
11
|
+
import { FetchDataControlValuesEventCommand } from './FetchDataControlValuesEventCommand';
|
12
|
+
import { SubformRefreshEventCommand } from './SubformRefreshEventCommand';
|
13
|
+
import { BrowserEscEventCommand } from './BrowserEscEventCommand';
|
14
|
+
import { IndexChangeEventCommand } from './IndexChangeEventCommand';
|
15
|
+
import { ColumnSortEventCommand } from './ColumnSortEventCommand';
|
16
|
+
import { RefreshScreenEventCommand } from './RefreshScreenEventCommand';
|
17
|
+
import { SubformOpenEventCommand } from './SubformOpenEventCommand';
|
18
|
+
import { ComputeEventCommand } from './ComputeEventCommand';
|
19
|
+
import { NonReversibleExitEventCommand } from './NonReversibleExitEventCommand';
|
20
|
+
import { RecomputeCommand } from './RecomputeCommand';
|
21
|
+
import { TransactionCommand } from './TransactionCommand';
|
22
|
+
import { UnloadCommand } from './UnloadCommand';
|
23
|
+
import { ExecOperCommand } from './ExecOperCommand';
|
24
|
+
import { EvaluateCommand } from './EvaluateCommand';
|
25
|
+
import { GlobalParamsQueryCommand } from './GlobalParamsQueryCommand';
|
26
|
+
import { IniputForceWriteCommand } from './IniputForceWriteCommand';
|
27
|
+
import { ContextTerminationEventCommand } from './ContextTerminationEventCommand';
|
28
|
+
import { ContextTimeoutResetCommand } from './ContextTimeoutResetCommand';
|
29
|
+
import { SelectProgramCommand } from './SelectProgramCommand';
|
30
|
+
import { ControlItemsRefreshCommand } from './ControlItemsRefreshCommand';
|
31
|
+
export class CommandFactory {
|
32
|
+
static CreateEventCommand(taskTag, magicEvent) {
|
33
|
+
let eventCommand = new EventCommand(magicEvent);
|
34
|
+
eventCommand.TaskTag = taskTag;
|
35
|
+
return eventCommand;
|
36
|
+
}
|
37
|
+
static CreateRollbackEventCommand(taskTag, rollbackType) {
|
38
|
+
let cmd = new RollbackEventCommand();
|
39
|
+
cmd.TaskTag = taskTag;
|
40
|
+
cmd.Rollback = rollbackType;
|
41
|
+
return cmd;
|
42
|
+
}
|
43
|
+
static CreateDataViewCommand(taskId, commandType) {
|
44
|
+
let dataviewCommand = new DataviewCommand();
|
45
|
+
dataviewCommand.CommandType = commandType;
|
46
|
+
dataviewCommand.TaskTag = taskId;
|
47
|
+
return dataviewCommand;
|
48
|
+
}
|
49
|
+
static CreateControlItemsRefreshCommand(taskId, control) {
|
50
|
+
let command = new ControlItemsRefreshCommand();
|
51
|
+
command.CommandType = DataViewCommandType.ControlItemsRefresh;
|
52
|
+
command.TaskTag = taskId;
|
53
|
+
command.Control = control;
|
54
|
+
return command;
|
55
|
+
}
|
56
|
+
static CreateAddUserRangeDataviewCommand(taskId, userRange) {
|
57
|
+
let addUserRangeDataviewCommand = new AddUserRangeDataviewCommand();
|
58
|
+
addUserRangeDataviewCommand.TaskTag = taskId;
|
59
|
+
addUserRangeDataviewCommand.Range = userRange;
|
60
|
+
return addUserRangeDataviewCommand;
|
61
|
+
}
|
62
|
+
static CreateAddUserSortDataviewCommand(taskId, sort) {
|
63
|
+
let addUserSortDataViewCommand = new AddUserSortDataViewCommand();
|
64
|
+
addUserSortDataViewCommand.TaskTag = taskId;
|
65
|
+
addUserSortDataViewCommand.Sort = sort;
|
66
|
+
return addUserSortDataViewCommand;
|
67
|
+
}
|
68
|
+
static CreateAddUserLocateDataviewCommand(taskId, userRange) {
|
69
|
+
let addUserLocateDataViewCommand = new AddUserLocateDataViewCommand();
|
70
|
+
addUserLocateDataViewCommand.TaskTag = taskId;
|
71
|
+
addUserLocateDataViewCommand.Range = userRange;
|
72
|
+
return addUserLocateDataViewCommand;
|
73
|
+
}
|
74
|
+
static CreateSetTransactionStateDataviewCommand(taskId, transactionIsOpened) {
|
75
|
+
let setTransactionStateDataviewCommand = new SetTransactionStateDataviewCommand();
|
76
|
+
setTransactionStateDataviewCommand.TaskTag = taskId;
|
77
|
+
setTransactionStateDataviewCommand.TransactionIsOpen = transactionIsOpened;
|
78
|
+
return setTransactionStateDataviewCommand;
|
79
|
+
}
|
80
|
+
static CreateInternalRefreshCommand(taskId, magicEvent, currentRecId, currentRow) {
|
81
|
+
let refreshEventCommand = new RefreshEventCommand(magicEvent);
|
82
|
+
refreshEventCommand.TaskTag = taskId;
|
83
|
+
refreshEventCommand.RefreshMode = ViewRefreshMode.CurrentLocation;
|
84
|
+
refreshEventCommand.ClientRecId = currentRecId;
|
85
|
+
refreshEventCommand.IsInternalRefresh = true;
|
86
|
+
refreshEventCommand.CurrentRecordRow = currentRow;
|
87
|
+
return refreshEventCommand;
|
88
|
+
}
|
89
|
+
static async CreateRealRefreshCommand(taskId, magicEvent, currentRow, argList, currentRecId) {
|
90
|
+
let refreshEventCommand = new RefreshEventCommand(magicEvent);
|
91
|
+
refreshEventCommand.TaskTag = taskId;
|
92
|
+
refreshEventCommand.RefreshMode = ViewRefreshMode.CurrentLocation;
|
93
|
+
refreshEventCommand.KeepUserSort = false;
|
94
|
+
refreshEventCommand.ClientRecId = currentRecId;
|
95
|
+
refreshEventCommand.CurrentRecordRow = currentRow;
|
96
|
+
let cmd = refreshEventCommand;
|
97
|
+
if (magicEvent !== InternalInterface.MG_ACT_RT_REFRESH_RECORD && argList !== null && argList.getSize() !== 0) {
|
98
|
+
try {
|
99
|
+
let refreshMode = new NUM_TYPE(await argList.getArgValue(0, StorageAttribute.NUMERIC, 0));
|
100
|
+
cmd.RefreshMode = refreshMode.NUM_2_LONG() + 1;
|
101
|
+
}
|
102
|
+
catch (e) {
|
103
|
+
cmd.RefreshMode = ViewRefreshMode.CurrentLocation;
|
104
|
+
}
|
105
|
+
if (argList.getSize() > 1) {
|
106
|
+
try {
|
107
|
+
cmd.KeepUserSort = (await argList.getArgValue(1, StorageAttribute.BOOLEAN, 0) === '1');
|
108
|
+
}
|
109
|
+
catch (e) {
|
110
|
+
cmd.KeepUserSort = false;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
114
|
+
return cmd;
|
115
|
+
}
|
116
|
+
static CreatecFetchDataControlValuesCommand(taskTag, controlName) {
|
117
|
+
let fetchDataControlValuesEventCommand = new FetchDataControlValuesEventCommand();
|
118
|
+
fetchDataControlValuesEventCommand.TaskTag = taskTag;
|
119
|
+
fetchDataControlValuesEventCommand.ControlName = controlName;
|
120
|
+
return fetchDataControlValuesEventCommand;
|
121
|
+
}
|
122
|
+
static CreateSubformRefreshCommand(taskTag, subformTaskTag, explicitSubformRefresh) {
|
123
|
+
let subformRefreshEventCommand = new SubformRefreshEventCommand();
|
124
|
+
subformRefreshEventCommand.TaskTag = taskTag;
|
125
|
+
subformRefreshEventCommand.SubformTaskTag = subformTaskTag;
|
126
|
+
subformRefreshEventCommand.ExplicitSubformRefresh = explicitSubformRefresh;
|
127
|
+
subformRefreshEventCommand.RefreshMode = ViewRefreshMode.UseTaskLocate;
|
128
|
+
return subformRefreshEventCommand;
|
129
|
+
}
|
130
|
+
static CreateSubformOpenCommand(taskTag, subformDitIdx) {
|
131
|
+
let subformOpenEventCommand = new SubformOpenEventCommand();
|
132
|
+
subformOpenEventCommand.TaskTag = taskTag;
|
133
|
+
subformOpenEventCommand.DitIdx = subformDitIdx;
|
134
|
+
return subformOpenEventCommand;
|
135
|
+
}
|
136
|
+
static CreateScreenRefreshCommand(taskTag, topRecIdx, clientRecId) {
|
137
|
+
let refreshScreenEventCommand = new RefreshScreenEventCommand();
|
138
|
+
refreshScreenEventCommand.TaskTag = taskTag;
|
139
|
+
refreshScreenEventCommand.TopRecIdx = topRecIdx;
|
140
|
+
refreshScreenEventCommand.RefreshMode = ViewRefreshMode.CurrentLocation;
|
141
|
+
refreshScreenEventCommand.ClientRecId = clientRecId;
|
142
|
+
return refreshScreenEventCommand;
|
143
|
+
}
|
144
|
+
static CreateColumnSortCommand(taskTag, direction, ditIdx, fieldId, recId) {
|
145
|
+
let columnSortEventCommand = new ColumnSortEventCommand();
|
146
|
+
columnSortEventCommand.TaskTag = taskTag;
|
147
|
+
columnSortEventCommand.DitIdx = ditIdx;
|
148
|
+
columnSortEventCommand.FldId = fieldId + 1;
|
149
|
+
columnSortEventCommand.ClientRecId = recId;
|
150
|
+
columnSortEventCommand.Direction = direction;
|
151
|
+
return columnSortEventCommand;
|
152
|
+
}
|
153
|
+
static async CreateIndexChangeCommand(taskTag, recId, argList) {
|
154
|
+
let indexChangeEventCommand = new IndexChangeEventCommand();
|
155
|
+
indexChangeEventCommand.TaskTag = taskTag;
|
156
|
+
indexChangeEventCommand.ClientRecId = recId;
|
157
|
+
let cmd = indexChangeEventCommand;
|
158
|
+
if (argList !== null && argList.getSize() !== 0) {
|
159
|
+
try {
|
160
|
+
let keyIndex = new NUM_TYPE(await argList.getArgValue(0, StorageAttribute.NUMERIC, 0));
|
161
|
+
cmd.KeyIndex = keyIndex.NUM_2_LONG();
|
162
|
+
}
|
163
|
+
catch (e) {
|
164
|
+
cmd.KeyIndex = 0;
|
165
|
+
}
|
166
|
+
}
|
167
|
+
return cmd;
|
168
|
+
}
|
169
|
+
static CreateBrowserEscEventCommand(taskTag, closeSubformOnly) {
|
170
|
+
let browserEscEventCommand = new BrowserEscEventCommand();
|
171
|
+
browserEscEventCommand.TaskTag = taskTag;
|
172
|
+
browserEscEventCommand.CloseSubformOnly = closeSubformOnly;
|
173
|
+
return browserEscEventCommand;
|
174
|
+
}
|
175
|
+
static CreateComputeEventCommand(taskTag, subforms, clientRecId) {
|
176
|
+
let computeEventCommand = new ComputeEventCommand();
|
177
|
+
computeEventCommand.TaskTag = taskTag;
|
178
|
+
computeEventCommand.Subforms = subforms;
|
179
|
+
computeEventCommand.ClientRecId = clientRecId;
|
180
|
+
return computeEventCommand;
|
181
|
+
}
|
182
|
+
static CreateContextTerminationEventCommand(taskTag) {
|
183
|
+
let contextTerminationEventCommand = new ContextTerminationEventCommand();
|
184
|
+
contextTerminationEventCommand.TaskTag = taskTag;
|
185
|
+
return contextTerminationEventCommand;
|
186
|
+
}
|
187
|
+
static CreateContextTimeoutResetEventCommand() {
|
188
|
+
let contextTimeoutResetCommand = new ContextTimeoutResetCommand();
|
189
|
+
return contextTimeoutResetCommand;
|
190
|
+
}
|
191
|
+
static CreateNonReversibleExitCommand(taskTag, closeSubformOnly) {
|
192
|
+
let nonReversibleExitEventCommand = new NonReversibleExitEventCommand();
|
193
|
+
nonReversibleExitEventCommand.TaskTag = taskTag;
|
194
|
+
nonReversibleExitEventCommand.CloseSubformOnly = closeSubformOnly;
|
195
|
+
return nonReversibleExitEventCommand;
|
196
|
+
}
|
197
|
+
static CreateRecomputeCommand(taskTag, fieldId, ignoreSubformRecompute) {
|
198
|
+
let recomputeCommand = new RecomputeCommand();
|
199
|
+
recomputeCommand.TaskTag = taskTag;
|
200
|
+
recomputeCommand.FldId = fieldId;
|
201
|
+
recomputeCommand.IgnoreSubformRecompute = ignoreSubformRecompute;
|
202
|
+
return recomputeCommand;
|
203
|
+
}
|
204
|
+
static CreateTransactionCommand(oper, taskTag, cReversibleExit, level, updatedFields) {
|
205
|
+
let transactionCommand = new TransactionCommand();
|
206
|
+
transactionCommand.TaskTag = taskTag;
|
207
|
+
transactionCommand.Oper = oper;
|
208
|
+
transactionCommand.ReversibleExit = cReversibleExit;
|
209
|
+
transactionCommand.Level = level;
|
210
|
+
transactionCommand.UpdatedFields = updatedFields;
|
211
|
+
return transactionCommand;
|
212
|
+
}
|
213
|
+
static CreateUnloadCommand() {
|
214
|
+
return new UnloadCommand();
|
215
|
+
}
|
216
|
+
static CreateExecOperCommand(taskTag, handlerId, operIdx, ditIdx, value) {
|
217
|
+
let execOperCommand = new ExecOperCommand();
|
218
|
+
execOperCommand.OperIdx = operIdx;
|
219
|
+
execOperCommand.TaskTag = taskTag;
|
220
|
+
execOperCommand.HandlerId = handlerId;
|
221
|
+
execOperCommand.DitIdx = ditIdx;
|
222
|
+
let cmd = execOperCommand;
|
223
|
+
if (value !== null && value.length === 0)
|
224
|
+
cmd.Val = ' ';
|
225
|
+
else
|
226
|
+
cmd.Val = value;
|
227
|
+
return cmd;
|
228
|
+
}
|
229
|
+
static CreateSelectProgramCommand(taskTag, handlerId, operIdx, ditIdx, value) {
|
230
|
+
let execOperCommand = new SelectProgramCommand();
|
231
|
+
execOperCommand.OperIdx = operIdx;
|
232
|
+
execOperCommand.TaskTag = taskTag;
|
233
|
+
execOperCommand.HandlerId = handlerId;
|
234
|
+
execOperCommand.DitIdx = ditIdx;
|
235
|
+
let cmd = execOperCommand;
|
236
|
+
if (value !== null && value.length === 0)
|
237
|
+
cmd.Val = ' ';
|
238
|
+
else
|
239
|
+
cmd.Val = value;
|
240
|
+
return cmd;
|
241
|
+
}
|
242
|
+
static CreateEvaluateCommand(taskTag, expType, expIdx, expValLen, mprgCreator) {
|
243
|
+
let evaluateCommand = new EvaluateCommand();
|
244
|
+
evaluateCommand.TaskTag = taskTag;
|
245
|
+
evaluateCommand.ExpIdx = expIdx;
|
246
|
+
evaluateCommand.ExpType = expType;
|
247
|
+
evaluateCommand.MprgCreator = mprgCreator;
|
248
|
+
if (expValLen > 0)
|
249
|
+
evaluateCommand.LengthExpVal = expValLen;
|
250
|
+
return evaluateCommand;
|
251
|
+
}
|
252
|
+
static CreateQueryGlobalParamsCommand() {
|
253
|
+
return new GlobalParamsQueryCommand();
|
254
|
+
}
|
255
|
+
static CreateIniputForceWriteCommand(param) {
|
256
|
+
let iniputForceWriteCommand = new IniputForceWriteCommand();
|
257
|
+
iniputForceWriteCommand.Text = param;
|
258
|
+
return iniputForceWriteCommand;
|
259
|
+
}
|
260
|
+
}
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZEZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbmdpbmUvc3JjL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0NvbW1hbmRGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3RGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsb0JBQW9CLEVBQW9DLE1BQU0sd0JBQXdCLENBQUM7QUFDL0YsT0FBTyxFQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBR3ZFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRTFFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyx5QkFB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QUM7SUFDYixDQUFDO0lBV0QsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE9BQWUsRUFBRSxPQUF5QixFQUFFLE1BQWMsRUFBRSxTQUFpQixFQUFFLFdBQWlCO1FBQzNILElBQUksZUFBZSxHQUFvQixJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzdELGVBQWUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBRTFDLElBQUksU0FBUyxHQUFHLENBQUM7WUFDZixlQUFlLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUMzQyxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDO0lBT0QsTUFBTSxDQUFDLDhCQUE4QjtRQUNuQyxPQUFPLElBQUksd0JBQXdCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBT0QsTUFBTSxDQUFDLDZCQUE2QixDQUFDLEtBQWE7UUFDaEQsSUFBSSx1QkFBdUIsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQ3JGLHVCQUF1QixDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDckMsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge01nQ29udHJvbEJhc2UsIE5VTV9UWVBFfSBmcm9tICdAbWFnaWMteHBhL2d1aSc7XHJcbmltcG9ydCB7SW50ZXJuYWxJbnRlcmZhY2UsIFN0b3JhZ2VBdHRyaWJ1dGUsIFZpZXdSZWZyZXNoTW9kZX0gZnJvbSAnQG1hZ2ljLXhwYS91dGlscyc7XHJcbmltcG9ydCB7RXZlbnRDb21tYW5kfSBmcm9tICcuL0V2ZW50Q29tbWFuZCc7XHJcbmltcG9ydCB7Um9sbGJhY2tFdmVudENvbW1hbmQsIFJvbGxiYWNrRXZlbnRDb21tYW5kX1JvbGxiYWNrVHlwZX0gZnJvbSAnLi9Sb2xsYmFja0V2ZW50Q29tbWFuZCc7XHJcbmltcG9ydCB7RGF0YXZpZXdDb21tYW5kLCBEYXRhVmlld0NvbW1hbmRUeXBlfSBmcm9tICcuL0RhdGF2aWV3Q29tbWFuZCc7XHJcbmltcG9ydCB7VGFza30gZnJvbSAnLi4vLi4vdGFza3MvVGFzayc7XHJcbmltcG9ydCB7VXNlclJhbmdlfSBmcm9tICcuLi8uLi90YXNrcy9UYXNrQmFzZSc7XHJcbmltcG9ydCB7QWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kfSBmcm9tICcuL0FkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZCc7XHJcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vLi4vdGFza3Mvc29ydC9Tb3J0JztcclxuaW1wb3J0IHtBZGRVc2VyU29ydERhdGFWaWV3Q29tbWFuZH0gZnJvbSAnLi9BZGRVc2VyU29ydERhdGFWaWV3Q29tbWFuZCc7XHJcbmltcG9ydCB7QWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZH0gZnJvbSAnLi9BZGRVc2VyTG9jYXRlRGF0YVZpZXdDb21tYW5kJztcclxuaW1wb3J0IHtTZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kfSBmcm9tICcuL1NldFRyYW5zYWN0aW9uU3RhdGVEYXRhdmlld0NvbW1hbmQnO1xyXG5pbXBvcnQge1JlZnJlc2hFdmVudENvbW1hbmR9IGZyb20gJy4vUmVmcmVzaEV2ZW50Q29tbWFuZCc7XHJcbmltcG9ydCB7QXJndW1lbnRzTGlzdH0gZnJvbSAnLi4vLi4vcnQvQXJndW1lbnRzTGlzdCc7XHJcbmltcG9ydCB7RmV0Y2hEYXRhQ29udHJvbFZhbHVlc0V2ZW50Q29tbWFuZH0gZnJvbSAnLi9GZXRjaERhdGFDb250cm9sVmFsdWVzRXZlbnRDb21tYW5kJztcclxuaW1wb3J0IHtTdWJmb3JtUmVmcmVzaEV2ZW50Q29tbWFuZH0gZnJvbSAnLi9TdWJmb3JtUmVmcmVzaEV2ZW50Q29tbWFuZCc7XHJcbmltcG9ydCB7QnJvd3NlckVzY0V2ZW50Q29tbWFuZH0gZnJvbSAnLi9Ccm93c2VyRXNjRXZlbnRDb21tYW5kJztcclxuaW1wb3J0IHtJbmRleENoYW5nZUV2ZW50Q29tbWFuZH0gZnJvbSAnLi9JbmRleENoYW5nZUV2ZW50Q29tbWFuZCc7XHJcbmltcG9ydCB7Q29sdW1uU29ydEV2ZW50Q29tbWFuZH0gZnJvbSAnLi9Db2x1bW5Tb3J0RXZlbnRDb21tYW5kJztcclxuaW1wb3J0IHtSZWZyZXNoU2NyZWVuRXZlbnRDb21tYW5kfSBmcm9tICcuL1JlZnJlc2hTY3JlZW5FdmVudENvbW1hbmQnO1xyXG5pbXBvcnQge1N1YmZvcm1PcGVuRXZlbnRDb21tYW5kfSBmcm9tICcuL1N1YmZvcm1PcGVuRXZlbnRDb21tYW5kJztcclxuaW1wb3J0IHtDb21wdXRlRXZlbnRDb21tYW5kfSBmcm9tICcuL0NvbXB1dGVFdmVudENvbW1hbmQnO1xyXG5pbXBvcnQge05vblJldmVyc2libGVFeGl0RXZlbnRDb21tYW5kfSBmcm9tICcuL05vblJldmVyc2libGVFeGl0RXZlbnRDb21tYW5kJztcclxuaW1wb3J0IHtSZWNvbXB1dGVDb21tYW5kfSBmcm9tICcuL1JlY29tcHV0ZUNvbW1hbmQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29tbWFuZH0gZnJvbSAnLi9UcmFuc2FjdGlvbkNvbW1hbmQnO1xyXG5pbXBvcnQge1VubG9hZENvbW1hbmR9IGZyb20gJy4vVW5sb2FkQ29tbWFuZCc7XHJcbmltcG9ydCB7RXhlY09wZXJDb21tYW5kfSBmcm9tICcuL0V4ZWNPcGVyQ29tbWFuZCc7XHJcbmltcG9ydCB7RXZhbHVhdGVDb21tYW5kfSBmcm9tICcuL0V2YWx1YXRlQ29tbWFuZCc7XHJcbmltcG9ydCB7R2xvYmFsUGFyYW1zUXVlcnlDb21tYW5kfSBmcm9tICcuL0dsb2JhbFBhcmFtc1F1ZXJ5Q29tbWFuZCc7XHJcbmltcG9ydCB7SW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmR9IGZyb20gJy4vSW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmQnO1xyXG5pbXBvcnQge0NvbnRleHRUZXJtaW5hdGlvbkV2ZW50Q29tbWFuZH0gZnJvbSAnLi9Db250ZXh0VGVybWluYXRpb25FdmVudENvbW1hbmQnO1xyXG5pbXBvcnQge0NvbnRleHRUaW1lb3V0UmVzZXRDb21tYW5kfSBmcm9tICcuL0NvbnRleHRUaW1lb3V0UmVzZXRDb21tYW5kJztcclxuaW1wb3J0IHsgU2VsZWN0UHJvZ3JhbUNvbW1hbmQgfSBmcm9tICcuL1NlbGVjdFByb2dyYW1Db21tYW5kJztcclxuaW1wb3J0IHsgQ29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmQgfSBmcm9tICcuL0NvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kJztcclxuXHJcbi8vLyA8c3VtbWFyeT5cclxuLy8vIGZhY3RvcnkgY2xhc3MgZm9yIGNyZWF0aW5nIGNvbW1hbmRzXHJcbi8vLyA8L3N1bW1hcnk+XHJcbmV4cG9ydCBjbGFzcyBDb21tYW5kRmFjdG9yeSB7XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhbiBFdmVudCBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tUYWdcIj50aGUgdGFzayBpZDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJtYWdpY0V2ZW50XCI+dGhlIGNvZGUgb2YgdGhlIGludGVybmFsIGV2ZW50PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlRXZlbnRDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgbWFnaWNFdmVudDogbnVtYmVyKTogRXZlbnRDb21tYW5kIHtcclxuICAgIGxldCBldmVudENvbW1hbmQ6IEV2ZW50Q29tbWFuZCA9IG5ldyBFdmVudENvbW1hbmQobWFnaWNFdmVudCk7XHJcbiAgICBldmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICByZXR1cm4gZXZlbnRDb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGFuIEV2ZW50IGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1RhZ1wiPnRoZSB0YXNrIGlkPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImNIYW5kbGVySWRcIj50aGUgaWQgb2YgdGhlIGhhbmRsZXIgd2hlcmUgZXhlY3V0aW9uIHNob3VsZCBzdGFydDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjT2JqXCI+dGhlIERJVCBpbmRleCBvZiB0aGUgY29udHJvbCB0aGF0IGhhZCB0aGUgZm9jdXMgd2hlbiB0aGUgZXZlbnQgb2NjdXJyZWQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwibWFnaWNFdmVudFwiPnRoZSBjb2RlIG9mIHRoZSBpbnRlcm5hbCBldmVudDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPm5ld2x5IGNyZWF0ZWQgY29tbWFuZC48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZVJvbGxiYWNrRXZlbnRDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgcm9sbGJhY2tUeXBlOiBSb2xsYmFja0V2ZW50Q29tbWFuZF9Sb2xsYmFja1R5cGUpOiBSb2xsYmFja0V2ZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgY21kOiBSb2xsYmFja0V2ZW50Q29tbWFuZCA9IG5ldyBSb2xsYmFja0V2ZW50Q29tbWFuZCgpO1xyXG4gICAgY21kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgY21kLlJvbGxiYWNrID0gcm9sbGJhY2tUeXBlO1xyXG4gICAgcmV0dXJuIGNtZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY3JlYXRlIGEgZ2VuZXJhbCBkYXRhdmlldyBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrSWRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbW1hbmRUeXBlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVEYXRhVmlld0NvbW1hbmQodGFza0lkOiBzdHJpbmcsIGNvbW1hbmRUeXBlOiBEYXRhVmlld0NvbW1hbmRUeXBlKTogRGF0YXZpZXdDb21tYW5kIHtcclxuICAgIGxldCBkYXRhdmlld0NvbW1hbmQ6IERhdGF2aWV3Q29tbWFuZCA9IG5ldyBEYXRhdmlld0NvbW1hbmQoKTtcclxuICAgIGRhdGF2aWV3Q29tbWFuZC5Db21tYW5kVHlwZSA9IGNvbW1hbmRUeXBlO1xyXG4gICAgZGF0YXZpZXdDb21tYW5kLlRhc2tUYWcgPSB0YXNrSWQ7XHJcbiAgICByZXR1cm4gZGF0YXZpZXdDb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBjcmVhdGUgYSBjb250cm9sIGl0ZW0gcmVmcmVzaCBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrSWRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNvbnRyb2xcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZUNvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kKHRhc2tJZDogc3RyaW5nLCBjb250cm9sOiBNZ0NvbnRyb2xCYXNlKTogQ29udHJvbEl0ZW1zUmVmcmVzaENvbW1hbmQge1xyXG4gICAgbGV0IGNvbW1hbmQ6IENvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kID0gbmV3IENvbnRyb2xJdGVtc1JlZnJlc2hDb21tYW5kKCk7XHJcbiAgICBjb21tYW5kLkNvbW1hbmRUeXBlID0gRGF0YVZpZXdDb21tYW5kVHlwZS5Db250cm9sSXRlbXNSZWZyZXNoO1xyXG4gICAgY29tbWFuZC5UYXNrVGFnID0gdGFza0lkO1xyXG4gICAgY29tbWFuZC5Db250cm9sID0gY29udHJvbDtcclxuICAgIHJldHVybiBjb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vL1xyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza0lkXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ1c2VyUmFuZ2VcIj48L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZUFkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZCh0YXNrSWQ6IHN0cmluZywgdXNlclJhbmdlOiBVc2VyUmFuZ2UpOiBBZGRVc2VyUmFuZ2VEYXRhdmlld0NvbW1hbmQge1xyXG4gICAgbGV0IGFkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZDogQWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kID0gbmV3IEFkZFVzZXJSYW5nZURhdGF2aWV3Q29tbWFuZCgpO1xyXG4gICAgYWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kLlRhc2tUYWcgPSB0YXNrSWQ7XHJcbiAgICBhZGRVc2VyUmFuZ2VEYXRhdmlld0NvbW1hbmQuUmFuZ2UgPSB1c2VyUmFuZ2U7XHJcbiAgICByZXR1cm4gYWRkVXNlclJhbmdlRGF0YXZpZXdDb21tYW5kO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ3JlYXRlQWRkVXNlclNvcnREYXRhdmlld0NvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidXNlclJhbmdlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVBZGRVc2VyU29ydERhdGF2aWV3Q29tbWFuZCh0YXNrSWQ6IHN0cmluZywgc29ydDogU29ydCk6IEFkZFVzZXJTb3J0RGF0YVZpZXdDb21tYW5kIHtcclxuICAgIGxldCBhZGRVc2VyU29ydERhdGFWaWV3Q29tbWFuZDogQWRkVXNlclNvcnREYXRhVmlld0NvbW1hbmQgPSBuZXcgQWRkVXNlclNvcnREYXRhVmlld0NvbW1hbmQoKTtcclxuICAgIGFkZFVzZXJTb3J0RGF0YVZpZXdDb21tYW5kLlRhc2tUYWcgPSB0YXNrSWQ7XHJcbiAgICBhZGRVc2VyU29ydERhdGFWaWV3Q29tbWFuZC5Tb3J0ID0gc29ydDtcclxuICAgIHJldHVybiBhZGRVc2VyU29ydERhdGFWaWV3Q29tbWFuZDtcclxuICB9XHJcblxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vIENyZWF0ZUFkZFVzZXJMb2NhdGVEYXRhdmlld0NvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidXNlclJhbmdlXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVBZGRVc2VyTG9jYXRlRGF0YXZpZXdDb21tYW5kKHRhc2tJZDogc3RyaW5nLCB1c2VyUmFuZ2U6IFVzZXJSYW5nZSk6IEFkZFVzZXJMb2NhdGVEYXRhVmlld0NvbW1hbmQge1xyXG4gICAgbGV0IGFkZFVzZXJMb2NhdGVEYXRhVmlld0NvbW1hbmQ6IEFkZFVzZXJMb2NhdGVEYXRhVmlld0NvbW1hbmQgPSBuZXcgQWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZCgpO1xyXG4gICAgYWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZC5UYXNrVGFnID0gdGFza0lkO1xyXG4gICAgYWRkVXNlckxvY2F0ZURhdGFWaWV3Q29tbWFuZC5SYW5nZSA9IHVzZXJSYW5nZTtcclxuICAgIHJldHVybiBhZGRVc2VyTG9jYXRlRGF0YVZpZXdDb21tYW5kO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyBjcmVhdGUgYSBzZXQgdHJhbnNhY3Rpb24gc3RhdGUgY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza0lkXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0cmFuc2FjdGlvbklzT3BlbmVkXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVTZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kKHRhc2tJZDogc3RyaW5nLCB0cmFuc2FjdGlvbklzT3BlbmVkOiBib29sZWFuKTogU2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZCB7XHJcbiAgICBsZXQgc2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZDogU2V0VHJhbnNhY3Rpb25TdGF0ZURhdGF2aWV3Q29tbWFuZCA9IG5ldyBTZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kKCk7XHJcbiAgICBzZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kLlRhc2tUYWcgPSB0YXNrSWQ7XHJcbiAgICBzZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kLlRyYW5zYWN0aW9uSXNPcGVuID0gdHJhbnNhY3Rpb25Jc09wZW5lZDtcclxuICAgIHJldHVybiBzZXRUcmFuc2FjdGlvblN0YXRlRGF0YXZpZXdDb21tYW5kO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gY3JlYXRlcyBhIHJlZnJlc2ggY29tbWFuZCB3aGljaCB3YXMgaW5pdGlhdGVkIGludGVybmFsbHksIGkuZS4gbm90IGJ5IGEgdXNlciBmdW5jdGlvbiBjYWxsXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrSWRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cIm1hZ2ljRXZlbnRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImN1cnJlbnRSZWNJZFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlSW50ZXJuYWxSZWZyZXNoQ29tbWFuZCh0YXNrSWQ6IHN0cmluZywgbWFnaWNFdmVudDogbnVtYmVyLCBjdXJyZW50UmVjSWQ6IG51bWJlciwgY3VycmVudFJvdzogbnVtYmVyKTogUmVmcmVzaEV2ZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgcmVmcmVzaEV2ZW50Q29tbWFuZDogUmVmcmVzaEV2ZW50Q29tbWFuZCA9IG5ldyBSZWZyZXNoRXZlbnRDb21tYW5kKG1hZ2ljRXZlbnQpO1xyXG4gICAgcmVmcmVzaEV2ZW50Q29tbWFuZC5UYXNrVGFnID0gdGFza0lkO1xyXG4gICAgcmVmcmVzaEV2ZW50Q29tbWFuZC5SZWZyZXNoTW9kZSA9IFZpZXdSZWZyZXNoTW9kZS5DdXJyZW50TG9jYXRpb247XHJcbiAgICByZWZyZXNoRXZlbnRDb21tYW5kLkNsaWVudFJlY0lkID0gY3VycmVudFJlY0lkO1xyXG4gICAgcmVmcmVzaEV2ZW50Q29tbWFuZC5Jc0ludGVybmFsUmVmcmVzaCA9IHRydWU7XHJcbiAgICByZWZyZXNoRXZlbnRDb21tYW5kLkN1cnJlbnRSZWNvcmRSb3cgPSBjdXJyZW50Um93O1xyXG4gICAgcmV0dXJuIHJlZnJlc2hFdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY3JlYXRlcyBvbmx5IGEgcmVhbCByZWZyZXNoIGV2ZW50IGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBhc3luYyBDcmVhdGVSZWFsUmVmcmVzaENvbW1hbmQodGFza0lkOiBzdHJpbmcsIG1hZ2ljRXZlbnQ6IG51bWJlciwgY3VycmVudFJvdzogbnVtYmVyLCBhcmdMaXN0OiBBcmd1bWVudHNMaXN0LCBjdXJyZW50UmVjSWQ6IG51bWJlcik6IFByb21pc2U8UmVmcmVzaEV2ZW50Q29tbWFuZD4ge1xyXG4gICAgbGV0IHJlZnJlc2hFdmVudENvbW1hbmQ6IFJlZnJlc2hFdmVudENvbW1hbmQgPSBuZXcgUmVmcmVzaEV2ZW50Q29tbWFuZChtYWdpY0V2ZW50KTtcclxuICAgIHJlZnJlc2hFdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tJZDtcclxuICAgIHJlZnJlc2hFdmVudENvbW1hbmQuUmVmcmVzaE1vZGUgPSBWaWV3UmVmcmVzaE1vZGUuQ3VycmVudExvY2F0aW9uO1xyXG4gICAgcmVmcmVzaEV2ZW50Q29tbWFuZC5LZWVwVXNlclNvcnQgPSBmYWxzZTtcclxuICAgIHJlZnJlc2hFdmVudENvbW1hbmQuQ2xpZW50UmVjSWQgPSBjdXJyZW50UmVjSWQ7XHJcbiAgICByZWZyZXNoRXZlbnRDb21tYW5kLkN1cnJlbnRSZWNvcmRSb3cgPSBjdXJyZW50Um93O1xyXG4gICAgbGV0IGNtZDogUmVmcmVzaEV2ZW50Q29tbWFuZCA9IHJlZnJlc2hFdmVudENvbW1hbmQ7XHJcblxyXG4gICAgaWYgKG1hZ2ljRXZlbnQgIT09IEludGVybmFsSW50ZXJmYWNlLk1HX0FDVF9SVF9SRUZSRVNIX1JFQ09SRCAmJiBhcmdMaXN0ICE9PSBudWxsICYmIGFyZ0xpc3QuZ2V0U2l6ZSgpICE9PSAwKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgbGV0IHJlZnJlc2hNb2RlOiBOVU1fVFlQRSA9IG5ldyBOVU1fVFlQRShhd2FpdCBhcmdMaXN0LmdldEFyZ1ZhbHVlKDAsIFN0b3JhZ2VBdHRyaWJ1dGUuTlVNRVJJQywgMCkpO1xyXG4gICAgICAgIGNtZC5SZWZyZXNoTW9kZSA9IHJlZnJlc2hNb2RlLk5VTV8yX0xPTkcoKSArIDE7XHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKGUpIHtcclxuICAgICAgICBjbWQuUmVmcmVzaE1vZGUgPSBWaWV3UmVmcmVzaE1vZGUuQ3VycmVudExvY2F0aW9uO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYXJnTGlzdC5nZXRTaXplKCkgPiAxKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGNtZC5LZWVwVXNlclNvcnQgPSAoYXdhaXQgYXJnTGlzdC5nZXRBcmdWYWx1ZSgxLCBTdG9yYWdlQXR0cmlidXRlLkJPT0xFQU4sIDApID09PSAnMScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgY21kLktlZXBVc2VyU29ydCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNtZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gQ3JlYXRlIEZldGNoRGF0YUNvbnRyb2xWYWx1ZXNFdmVudCBjb21tYW5kIHdoaWNoIHdpbGwgZmV0Y2ggdGhlIGRhdGEgY29udHJvbCB2YWx1ZXMgZnJvbSBzZXJ2ZXIuIFRoaXMgaXMgdXNlZCB3aGlsZSBleGVjdXRpbmcgQ29udHJvbEl0ZW1zUmVmcmVzaCgpIGZ1bmN0aW9uLlxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidGFza1RhZ1wiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwiY29udHJvbE5hbWVcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImdlbmVyYXRpb25QYXJhbVwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlY0ZldGNoRGF0YUNvbnRyb2xWYWx1ZXNDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgY29udHJvbE5hbWU6IHN0cmluZyk6IEZldGNoRGF0YUNvbnRyb2xWYWx1ZXNFdmVudENvbW1hbmQge1xyXG4gICAgbGV0IGZldGNoRGF0YUNvbnRyb2xWYWx1ZXNFdmVudENvbW1hbmQ6IEZldGNoRGF0YUNvbnRyb2xWYWx1ZXNFdmVudENvbW1hbmQgPSBuZXcgRmV0Y2hEYXRhQ29udHJvbFZhbHVlc0V2ZW50Q29tbWFuZCgpO1xyXG4gICAgZmV0Y2hEYXRhQ29udHJvbFZhbHVlc0V2ZW50Q29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIGZldGNoRGF0YUNvbnRyb2xWYWx1ZXNFdmVudENvbW1hbmQuQ29udHJvbE5hbWUgPSBjb250cm9sTmFtZTtcclxuICAgIHJldHVybiBmZXRjaERhdGFDb250cm9sVmFsdWVzRXZlbnRDb21tYW5kO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICBzdGF0aWMgQ3JlYXRlU3ViZm9ybVJlZnJlc2hDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgc3ViZm9ybVRhc2tUYWc6IHN0cmluZywgZXhwbGljaXRTdWJmb3JtUmVmcmVzaDogYm9vbGVhbik6IFN1YmZvcm1SZWZyZXNoRXZlbnRDb21tYW5kIHtcclxuICAgIGxldCBzdWJmb3JtUmVmcmVzaEV2ZW50Q29tbWFuZDogU3ViZm9ybVJlZnJlc2hFdmVudENvbW1hbmQgPSBuZXcgU3ViZm9ybVJlZnJlc2hFdmVudENvbW1hbmQoKTtcclxuICAgIHN1YmZvcm1SZWZyZXNoRXZlbnRDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgc3ViZm9ybVJlZnJlc2hFdmVudENvbW1hbmQuU3ViZm9ybVRhc2tUYWcgPSBzdWJmb3JtVGFza1RhZztcclxuICAgIHN1YmZvcm1SZWZyZXNoRXZlbnRDb21tYW5kLkV4cGxpY2l0U3ViZm9ybVJlZnJlc2ggPSBleHBsaWNpdFN1YmZvcm1SZWZyZXNoO1xyXG4gICAgc3ViZm9ybVJlZnJlc2hFdmVudENvbW1hbmQuUmVmcmVzaE1vZGUgPSBWaWV3UmVmcmVzaE1vZGUuVXNlVGFza0xvY2F0ZTtcclxuICAgIHJldHVybiBzdWJmb3JtUmVmcmVzaEV2ZW50Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjcmVhdGVzIGEgc3ViZm9ybSBvcGVuIGV2ZW50IGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVTdWJmb3JtT3BlbkNvbW1hbmQodGFza1RhZzogc3RyaW5nLCBzdWJmb3JtRGl0SWR4OiBudW1iZXIpOiBTdWJmb3JtT3BlbkV2ZW50Q29tbWFuZCB7XHJcbiAgICBsZXQgc3ViZm9ybU9wZW5FdmVudENvbW1hbmQ6IFN1YmZvcm1PcGVuRXZlbnRDb21tYW5kID0gbmV3IFN1YmZvcm1PcGVuRXZlbnRDb21tYW5kKCk7XHJcbiAgICBzdWJmb3JtT3BlbkV2ZW50Q29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIHN1YmZvcm1PcGVuRXZlbnRDb21tYW5kLkRpdElkeCA9IHN1YmZvcm1EaXRJZHg7XHJcbiAgICByZXR1cm4gc3ViZm9ybU9wZW5FdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgY3JlYXRlcyBzY3JlZW4gcmVmcmVzaCBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlU2NyZWVuUmVmcmVzaENvbW1hbmQodGFza1RhZzogc3RyaW5nLCB0b3BSZWNJZHg6IG51bWJlciwgY2xpZW50UmVjSWQ6IG51bWJlcik6IFJlZnJlc2hTY3JlZW5FdmVudENvbW1hbmQge1xyXG4gICAgbGV0IHJlZnJlc2hTY3JlZW5FdmVudENvbW1hbmQ6IFJlZnJlc2hTY3JlZW5FdmVudENvbW1hbmQgPSBuZXcgUmVmcmVzaFNjcmVlbkV2ZW50Q29tbWFuZCgpO1xyXG4gICAgcmVmcmVzaFNjcmVlbkV2ZW50Q29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIHJlZnJlc2hTY3JlZW5FdmVudENvbW1hbmQuVG9wUmVjSWR4ID0gdG9wUmVjSWR4O1xyXG4gICAgcmVmcmVzaFNjcmVlbkV2ZW50Q29tbWFuZC5SZWZyZXNoTW9kZSA9IFZpZXdSZWZyZXNoTW9kZS5DdXJyZW50TG9jYXRpb247XHJcbiAgICByZWZyZXNoU2NyZWVuRXZlbnRDb21tYW5kLkNsaWVudFJlY0lkID0gY2xpZW50UmVjSWQ7XHJcbiAgICByZXR1cm4gcmVmcmVzaFNjcmVlbkV2ZW50Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBjcmVhdGVzIGEgY29sdW1uIHNvcnQgZXZlbnQgY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxyZXR1cm5zPm5ld2x5IGNyZWF0ZWQgY29tbWFuZC48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZUNvbHVtblNvcnRDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgZGlyZWN0aW9uOiBudW1iZXIsIGRpdElkeDogbnVtYmVyLCBmaWVsZElkOiBudW1iZXIsIHJlY0lkOiBudW1iZXIpOiBDb2x1bW5Tb3J0RXZlbnRDb21tYW5kIHtcclxuICAgIGxldCBjb2x1bW5Tb3J0RXZlbnRDb21tYW5kOiBDb2x1bW5Tb3J0RXZlbnRDb21tYW5kID0gbmV3IENvbHVtblNvcnRFdmVudENvbW1hbmQoKTtcclxuICAgIGNvbHVtblNvcnRFdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICBjb2x1bW5Tb3J0RXZlbnRDb21tYW5kLkRpdElkeCA9IGRpdElkeDtcclxuICAgIGNvbHVtblNvcnRFdmVudENvbW1hbmQuRmxkSWQgPSBmaWVsZElkICsgMTtcclxuICAgIGNvbHVtblNvcnRFdmVudENvbW1hbmQuQ2xpZW50UmVjSWQgPSByZWNJZDtcclxuICAgIGNvbHVtblNvcnRFdmVudENvbW1hbmQuRGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgcmV0dXJuIGNvbHVtblNvcnRFdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gICBjcmVhdGVzIGFuIEluZGV4IENoYW5nZSBldmVudCBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgYXN5bmMgQ3JlYXRlSW5kZXhDaGFuZ2VDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgcmVjSWQ6IG51bWJlciwgYXJnTGlzdDogQXJndW1lbnRzTGlzdCk6IFByb21pc2U8SW5kZXhDaGFuZ2VFdmVudENvbW1hbmQ+IHtcclxuICAgIGxldCBpbmRleENoYW5nZUV2ZW50Q29tbWFuZDogSW5kZXhDaGFuZ2VFdmVudENvbW1hbmQgPSBuZXcgSW5kZXhDaGFuZ2VFdmVudENvbW1hbmQoKTtcclxuICAgIGluZGV4Q2hhbmdlRXZlbnRDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgaW5kZXhDaGFuZ2VFdmVudENvbW1hbmQuQ2xpZW50UmVjSWQgPSByZWNJZDtcclxuICAgIGxldCBjbWQ6IEluZGV4Q2hhbmdlRXZlbnRDb21tYW5kID0gaW5kZXhDaGFuZ2VFdmVudENvbW1hbmQ7XHJcblxyXG4gICAgLy8gMSBwYXJhbWV0ZXIgOiBUaGUgbmV3IEtleSBJbmRleFxyXG4gICAgaWYgKGFyZ0xpc3QgIT09IG51bGwgJiYgYXJnTGlzdC5nZXRTaXplKCkgIT09IDApIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBsZXQga2V5SW5kZXg6IE5VTV9UWVBFID0gbmV3IE5VTV9UWVBFKGF3YWl0IGFyZ0xpc3QuZ2V0QXJnVmFsdWUoMCwgU3RvcmFnZUF0dHJpYnV0ZS5OVU1FUklDLCAwKSk7XHJcbiAgICAgICAgY21kLktleUluZGV4ID0ga2V5SW5kZXguTlVNXzJfTE9ORygpO1xyXG4gICAgICB9XHJcbiAgICAgIGNhdGNoIChlKSB7XHJcbiAgICAgICAgY21kLktleUluZGV4ID0gMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNtZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuLy8vICAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYW4gRXZlbnQgY29tbWFuZFxyXG4vLy8gPC9zdW1tYXJ5PlxyXG4vLy8gPHBhcmFtIG5hbWU9XCJ0YXNrVGFnXCI+PC9wYXJhbT5cclxuLy8vIDxwYXJhbSBuYW1lPVwib2JqXCI+PC9wYXJhbT5cclxuLy8vIDxwYXJhbSBuYW1lPVwiZXhpdEJ5TWVudVwiPjwvcGFyYW0+XHJcbi8vLyA8cGFyYW0gbmFtZT1cImNsb3NlU3ViZm9ybU9ubHlcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBDcmVhdGVCcm93c2VyRXNjRXZlbnRDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgY2xvc2VTdWJmb3JtT25seTogYm9vbGVhbik6IEJyb3dzZXJFc2NFdmVudENvbW1hbmQge1xyXG4gICAgbGV0IGJyb3dzZXJFc2NFdmVudENvbW1hbmQ6IEJyb3dzZXJFc2NFdmVudENvbW1hbmQgPSBuZXcgQnJvd3NlckVzY0V2ZW50Q29tbWFuZCgpO1xyXG4gICAgYnJvd3NlckVzY0V2ZW50Q29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIGJyb3dzZXJFc2NFdmVudENvbW1hbmQuQ2xvc2VTdWJmb3JtT25seSA9IGNsb3NlU3ViZm9ybU9ubHk7XHJcbiAgICByZXR1cm4gYnJvd3NlckVzY0V2ZW50Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhbiBFdmVudCBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJ0YXNrVGFnXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJvYmpcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImNsaWVudFJlY0lkXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVDb21wdXRlRXZlbnRDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgc3ViZm9ybXM6IGJvb2xlYW4sIGNsaWVudFJlY0lkOiBudW1iZXIpOiBDb21wdXRlRXZlbnRDb21tYW5kIHtcclxuICAgIGxldCBjb21wdXRlRXZlbnRDb21tYW5kOiBDb21wdXRlRXZlbnRDb21tYW5kID0gbmV3IENvbXB1dGVFdmVudENvbW1hbmQoKTtcclxuICAgIGNvbXB1dGVFdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICBjb21wdXRlRXZlbnRDb21tYW5kLlN1YmZvcm1zID0gc3ViZm9ybXM7XHJcbiAgICBjb21wdXRlRXZlbnRDb21tYW5kLkNsaWVudFJlY0lkID0gY2xpZW50UmVjSWQ7XHJcbiAgICByZXR1cm4gY29tcHV0ZUV2ZW50Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gIGEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIHRoZSBjb250ZXh0IHRlcm1pbmF0aW9uIHJlcXVlc3RcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cInRhc2tUYWdcIj48L3BhcmFtPlxyXG4gIHN0YXRpYyBDcmVhdGVDb250ZXh0VGVybWluYXRpb25FdmVudENvbW1hbmQodGFza1RhZzogc3RyaW5nKTogQ29udGV4dFRlcm1pbmF0aW9uRXZlbnRDb21tYW5kIHtcclxuICAgIGxldCBjb250ZXh0VGVybWluYXRpb25FdmVudENvbW1hbmQ6IENvbnRleHRUZXJtaW5hdGlvbkV2ZW50Q29tbWFuZCA9IG5ldyBDb250ZXh0VGVybWluYXRpb25FdmVudENvbW1hbmQoKTtcclxuICAgIGNvbnRleHRUZXJtaW5hdGlvbkV2ZW50Q29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIHJldHVybiBjb250ZXh0VGVybWluYXRpb25FdmVudENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICBhIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIGR1bW15IHJlcXVlc3QgdG8gemVyby1pbiB0aGUgY29udGV4dCBpbmFjdGl2aXR5IHRpbWVvdXRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIHN0YXRpYyBDcmVhdGVDb250ZXh0VGltZW91dFJlc2V0RXZlbnRDb21tYW5kKCkgOiBDb250ZXh0VGltZW91dFJlc2V0Q29tbWFuZCB7XHJcbiAgICBsZXQgY29udGV4dFRpbWVvdXRSZXNldENvbW1hbmQ6IENvbnRleHRUaW1lb3V0UmVzZXRDb21tYW5kID0gbmV3IENvbnRleHRUaW1lb3V0UmVzZXRDb21tYW5kKCk7XHJcbiAgICByZXR1cm4gY29udGV4dFRpbWVvdXRSZXNldENvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYSBub25yZXZlcnNpYmxlIGV4aXQgY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrVGFnXCI+dGhlIHRhc2sgaWQ8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVOb25SZXZlcnNpYmxlRXhpdENvbW1hbmQodGFza1RhZzogc3RyaW5nLCBjbG9zZVN1YmZvcm1Pbmx5OiBib29sZWFuKTogTm9uUmV2ZXJzaWJsZUV4aXRFdmVudENvbW1hbmQge1xyXG4gICAgbGV0IG5vblJldmVyc2libGVFeGl0RXZlbnRDb21tYW5kOiBOb25SZXZlcnNpYmxlRXhpdEV2ZW50Q29tbWFuZCA9IG5ldyBOb25SZXZlcnNpYmxlRXhpdEV2ZW50Q29tbWFuZCgpO1xyXG4gICAgbm9uUmV2ZXJzaWJsZUV4aXRFdmVudENvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICBub25SZXZlcnNpYmxlRXhpdEV2ZW50Q29tbWFuZC5DbG9zZVN1YmZvcm1Pbmx5ID0gY2xvc2VTdWJmb3JtT25seTtcclxuICAgIHJldHVybiBub25SZXZlcnNpYmxlRXhpdEV2ZW50Q29tbWFuZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIFJlY29tcHV0ZSBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tUYWdcIj50aGUgaWQgb2YgdGhlIHRhc2s8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZmllbGRJZFwiPnRoZSBpZCBvZiB0aGUgZmllbGQ8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVSZWNvbXB1dGVDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgZmllbGRJZDogbnVtYmVyLCBpZ25vcmVTdWJmb3JtUmVjb21wdXRlOiBib29sZWFuKTogUmVjb21wdXRlQ29tbWFuZCB7XHJcbiAgICBsZXQgcmVjb21wdXRlQ29tbWFuZDogUmVjb21wdXRlQ29tbWFuZCA9IG5ldyBSZWNvbXB1dGVDb21tYW5kKCk7XHJcbiAgICByZWNvbXB1dGVDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgcmVjb21wdXRlQ29tbWFuZC5GbGRJZCA9IGZpZWxkSWQ7XHJcbiAgICByZWNvbXB1dGVDb21tYW5kLklnbm9yZVN1YmZvcm1SZWNvbXB1dGUgPSBpZ25vcmVTdWJmb3JtUmVjb21wdXRlO1xyXG4gICAgcmV0dXJuIHJlY29tcHV0ZUNvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYSBUcmFuc2FjdGlvbiBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm9wZXJcIj50aGUgdHlwZSBvZiBvcGVyYXRpb246IEJlZ2luLCBDb21taXQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1wiPnRoZSB0YXNrIG9mIHRoZSB0cmFuc2FjdGlvbjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJjUmV2ZXJzaWJsZUV4aXRcIj50cnVlIGlmIHRoZSB0YXNrIGV4aXQgaXMgcmV2ZXJzaWJsZTwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJsZXZlbFwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPm5ld2x5IGNyZWF0ZWQgY29tbWFuZC48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZVRyYW5zYWN0aW9uQ29tbWFuZChvcGVyOiBzdHJpbmcsIHRhc2tUYWc6IHN0cmluZywgY1JldmVyc2libGVFeGl0OiBib29sZWFuLCBsZXZlbDogc3RyaW5nLCB1cGRhdGVkRmllbGRzOnN0cmluZyk6IFRyYW5zYWN0aW9uQ29tbWFuZCB7XHJcbiAgICBsZXQgdHJhbnNhY3Rpb25Db21tYW5kOiBUcmFuc2FjdGlvbkNvbW1hbmQgPSBuZXcgVHJhbnNhY3Rpb25Db21tYW5kKCk7XHJcbiAgICB0cmFuc2FjdGlvbkNvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICB0cmFuc2FjdGlvbkNvbW1hbmQuT3BlciA9IG9wZXI7XHJcbiAgICB0cmFuc2FjdGlvbkNvbW1hbmQuUmV2ZXJzaWJsZUV4aXQgPSBjUmV2ZXJzaWJsZUV4aXQ7XHJcbiAgICB0cmFuc2FjdGlvbkNvbW1hbmQuTGV2ZWwgPSBsZXZlbDtcclxuICAgIHRyYW5zYWN0aW9uQ29tbWFuZC5VcGRhdGVkRmllbGRzID0gdXBkYXRlZEZpZWxkcztcclxuICAgIHJldHVybiB0cmFuc2FjdGlvbkNvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYW4gVW5sb2FkIGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVVbmxvYWRDb21tYW5kKCk6IFVubG9hZENvbW1hbmQge1xyXG4gICAgcmV0dXJuIG5ldyBVbmxvYWRDb21tYW5kKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGEgZmFjdG9yeSBtZXRob2QgdGhhdCBjcmVhdGVzIGFuIEV4ZWNPcGVyIGNvbW1hbmRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwidGFza1RhZ1wiPnRoZSBpZCBvZiB0aGUgdGFzazwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJoYW5kbGVySWRcIj50aGUgaWQgb2YgdGhlIGhhbmRsZXIgd2hlcmUgZXhlY3V0aW9uIHNob3VsZCBzdGFydDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJvcGVySWR4XCI+dGhlIG9wZXJhdGlvbiBpbmRleCBpcyB0aGUgc2VydmVyIGluZGV4IGluZGljYXRlZCBieSB0aGUgb3BlcmF0aW9uPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImRpdElkeFwiPnRoZSBjb250cm9sIGlkPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInZhbHVlXCI+dGhlIHZhbHVlIG9mIHRoZSBjb250cm9sPC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlRXhlY09wZXJDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgaGFuZGxlcklkOiBzdHJpbmcsIG9wZXJJZHg6IG51bWJlciwgZGl0SWR4OiBudW1iZXIsIHZhbHVlOiBzdHJpbmcpOiBFeGVjT3BlckNvbW1hbmQge1xyXG4gICAgbGV0IGV4ZWNPcGVyQ29tbWFuZDogRXhlY09wZXJDb21tYW5kID0gbmV3IEV4ZWNPcGVyQ29tbWFuZCgpO1xyXG4gICAgZXhlY09wZXJDb21tYW5kLk9wZXJJZHggPSBvcGVySWR4O1xyXG4gICAgZXhlY09wZXJDb21tYW5kLlRhc2tUYWcgPSB0YXNrVGFnO1xyXG4gICAgZXhlY09wZXJDb21tYW5kLkhhbmRsZXJJZCA9IGhhbmRsZXJJZDtcclxuICAgIGV4ZWNPcGVyQ29tbWFuZC5EaXRJZHggPSBkaXRJZHg7XHJcblxyXG4gICAgbGV0IGNtZDogRXhlY09wZXJDb21tYW5kID0gZXhlY09wZXJDb21tYW5kO1xyXG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlLmxlbmd0aCA9PT0gMClcclxuICAgICAgY21kLlZhbCA9ICcgJztcclxuICAgIGVsc2VcclxuICAgICAgY21kLlZhbCA9IHZhbHVlO1xyXG4gICAgcmV0dXJuIGNtZDtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBhIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhbiBTZWxlY3QgUHJvZ3JhbSBjb21tYW5kXHJcbiAgLy8vIDwvc3VtbWFyeT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcInRhc2tUYWdcIj50aGUgaWQgb2YgdGhlIHRhc2s8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiaGFuZGxlcklkXCI+dGhlIGlkIG9mIHRoZSBoYW5kbGVyIHdoZXJlIGV4ZWN1dGlvbiBzaG91bGQgc3RhcnQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwib3BlcklkeFwiPnRoZSBvcGVyYXRpb24gaW5kZXggaXMgdGhlIHNlcnZlciBpbmRleCBpbmRpY2F0ZWQgYnkgdGhlIG9wZXJhdGlvbjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJkaXRJZHhcIj50aGUgY29udHJvbCBpZDwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ2YWx1ZVwiPnRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbDwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPm5ld2x5IGNyZWF0ZWQgY29tbWFuZC48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZVNlbGVjdFByb2dyYW1Db21tYW5kKHRhc2tUYWc6IHN0cmluZywgaGFuZGxlcklkOiBzdHJpbmcsIG9wZXJJZHg6IG51bWJlciwgZGl0SWR4OiBudW1iZXIsIHZhbHVlOiBzdHJpbmcpOiBFeGVjT3BlckNvbW1hbmQge1xyXG4gICAgbGV0IGV4ZWNPcGVyQ29tbWFuZDogU2VsZWN0UHJvZ3JhbUNvbW1hbmQgPSBuZXcgU2VsZWN0UHJvZ3JhbUNvbW1hbmQoKTtcclxuICAgIGV4ZWNPcGVyQ29tbWFuZC5PcGVySWR4ID0gb3BlcklkeDtcclxuICAgIGV4ZWNPcGVyQ29tbWFuZC5UYXNrVGFnID0gdGFza1RhZztcclxuICAgIGV4ZWNPcGVyQ29tbWFuZC5IYW5kbGVySWQgPSBoYW5kbGVySWQ7XHJcbiAgICBleGVjT3BlckNvbW1hbmQuRGl0SWR4ID0gZGl0SWR4O1xyXG5cclxuICAgIGxldCBjbWQ6IEV4ZWNPcGVyQ29tbWFuZCA9IGV4ZWNPcGVyQ29tbWFuZDtcclxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZS5sZW5ndGggPT09IDApXHJcbiAgICAgIGNtZC5WYWwgPSAnICc7XHJcbiAgICBlbHNlXHJcbiAgICAgIGNtZC5WYWwgPSB2YWx1ZTtcclxuICAgIHJldHVybiBjbWQ7XHJcbiAgfVxyXG5cclxuICAvLy8gPHN1bW1hcnk+XHJcbiAgLy8vICAgYSBmYWN0b3J5IG1ldGhvZCB0aGF0IGNyZWF0ZXMgYW4gRXZhbHVhdGUgY29tbWFuZFxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJ0YXNrVGFnXCI+dGhlIGlkIG9mIHRoZSB0YXNrPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4cFR5cGVcIj5UaGUgZXhwZWN0ZWQgdHlwZSBpcyB0aGUgZGF0YSB0eXBlIChhdHRyaWJ1dGUpIG9mIHRoZSByZXN1bHQ8L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwiZXhwSWR4XCI+ZXhwcmVzc2lvbiBpZCBhdHRyaWJ1dGVzIGFyZSBhIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBleHByZXNzaW9uIHRvIGV2YWx1YXRlPC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcImV4cFZhbExlblwiPiByZXByZXNlbnRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBhbHBoYSByZXN1bHQgb3IgdGhlIG1heGltdW0gZGlnaXRzIHRvIHRoZSByaWdodCBvZiB0aGUgZGVjaW1hbCBwb2ludCwgZm9yIG51bWVyaWMgcmVzdWx0PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWUgPSBcIm1wcmdDcmVhdG9yXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+bmV3bHkgY3JlYXRlZCBjb21tYW5kLjwvcmV0dXJucz5cclxuICBzdGF0aWMgQ3JlYXRlRXZhbHVhdGVDb21tYW5kKHRhc2tUYWc6IHN0cmluZywgZXhwVHlwZTogU3RvcmFnZUF0dHJpYnV0ZSwgZXhwSWR4OiBudW1iZXIsIGV4cFZhbExlbjogbnVtYmVyLCBtcHJnQ3JlYXRvcjogVGFzayk6IEV2YWx1YXRlQ29tbWFuZCB7XHJcbiAgICBsZXQgZXZhbHVhdGVDb21tYW5kOiBFdmFsdWF0ZUNvbW1hbmQgPSBuZXcgRXZhbHVhdGVDb21tYW5kKCk7XHJcbiAgICBldmFsdWF0ZUNvbW1hbmQuVGFza1RhZyA9IHRhc2tUYWc7XHJcbiAgICBldmFsdWF0ZUNvbW1hbmQuRXhwSWR4ID0gZXhwSWR4O1xyXG4gICAgZXZhbHVhdGVDb21tYW5kLkV4cFR5cGUgPSBleHBUeXBlO1xyXG4gICAgZXZhbHVhdGVDb21tYW5kLk1wcmdDcmVhdG9yID0gbXByZ0NyZWF0b3I7XHJcblxyXG4gICAgaWYgKGV4cFZhbExlbiA+IDApXHJcbiAgICAgIGV2YWx1YXRlQ29tbWFuZC5MZW5ndGhFeHBWYWwgPSBleHBWYWxMZW47XHJcbiAgICByZXR1cm4gZXZhbHVhdGVDb21tYW5kO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cmV0dXJucz48L3JldHVybnM+XHJcbiAgc3RhdGljIENyZWF0ZVF1ZXJ5R2xvYmFsUGFyYW1zQ29tbWFuZCgpOiBHbG9iYWxQYXJhbXNRdWVyeUNvbW1hbmQge1xyXG4gICAgcmV0dXJuIG5ldyBHbG9iYWxQYXJhbXNRdWVyeUNvbW1hbmQoKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy8gICBmb3JjZSBpbmkgZmlsZSB1cGRhdGUgYnkgSU5JUHV0KClcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicGFyYW1cIj5lbnYgcGFyYW0gY2hhbmdlZCBieSBJTklQdXQ8L3BhcmFtPlxyXG4gIC8vLyA8cmV0dXJucz5uZXdseSBjcmVhdGVkIGNvbW1hbmQuPC9yZXR1cm5zPlxyXG4gIHN0YXRpYyBDcmVhdGVJbmlwdXRGb3JjZVdyaXRlQ29tbWFuZChwYXJhbTogc3RyaW5nKTogSW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmQge1xyXG4gICAgbGV0IGluaXB1dEZvcmNlV3JpdGVDb21tYW5kOiBJbmlwdXRGb3JjZVdyaXRlQ29tbWFuZCA9IG5ldyBJbmlwdXRGb3JjZVdyaXRlQ29tbWFuZCgpO1xyXG4gICAgaW5pcHV0Rm9yY2VXcml0ZUNvbW1hbmQuVGV4dCA9IHBhcmFtO1xyXG4gICAgcmV0dXJuIGluaXB1dEZvcmNlV3JpdGVDb21tYW5kO1xyXG4gIH1cclxufVxyXG4iXX0=
|