@magic-xpa/engine 4.801.0-dev481.244 → 4.801.0-dev481.250
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/index.mjs +190 -0
- package/{esm2015/magic-xpa-engine.js → esm2020/magic-xpa-engine.mjs} +0 -0
- package/esm2020/src/AccessHelper.mjs +3 -0
- package/esm2020/src/ClientManager.mjs +403 -0
- package/esm2020/src/CommandsProcessorBase.mjs +58 -0
- package/esm2020/src/CommandsProcessorManager.mjs +26 -0
- package/esm2020/src/CommandsTable.mjs +163 -0
- package/{esm2015/src/ConstInterface.js → esm2020/src/ConstInterface.mjs} +0 -0
- package/{esm2015/src/CurrentClientVersion.js → esm2020/src/CurrentClientVersion.mjs} +2 -2
- package/{esm2015/src/FlowMonitorInterface.js → esm2020/src/FlowMonitorInterface.mjs} +0 -0
- package/esm2020/src/GUIManager.mjs +63 -0
- package/{esm2015/src/GlobalCommandsManager.js → esm2020/src/GlobalCommandsManager.mjs} +0 -0
- package/{esm2015/src/GuiEventsProcessor.js → esm2020/src/GuiEventsProcessor.mjs} +0 -0
- package/{esm2015/src/ICommandsTable.js → esm2020/src/ICommandsTable.mjs} +1 -0
- package/{esm2015/src/ServerConfig.js → esm2020/src/ServerConfig.mjs} +0 -0
- package/{esm2015/src/bridge/IGuiEvent.js → esm2020/src/bridge/IGuiEvent.mjs} +0 -0
- package/esm2020/src/bridge/MagicBridge.mjs +41 -0
- package/{esm2015/src/commands/ClientOriginatedCommandTaskTag.js → esm2020/src/commands/ClientOriginatedCommandTaskTag.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserLocateDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserLocateDataViewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserRangeDataviewCommand.js → esm2020/src/commands/ClientToServer/AddUserRangeDataviewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/AddUserSortDataViewCommand.js → esm2020/src/commands/ClientToServer/AddUserSortDataViewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/BrowserEscEventCommand.js → esm2020/src/commands/ClientToServer/BrowserEscEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommand.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ClientOriginatedCommandSerializer.js → esm2020/src/commands/ClientToServer/ClientOriginatedCommandSerializer.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ColumnSortEventCommand.js → esm2020/src/commands/ClientToServer/ColumnSortEventCommand.mjs} +0 -0
- package/esm2020/src/commands/ClientToServer/CommandFactory.mjs +278 -0
- package/{esm2015/src/commands/ClientToServer/CommandSerializationHelper.js → esm2020/src/commands/ClientToServer/CommandSerializationHelper.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ComputeEventCommand.js → esm2020/src/commands/ClientToServer/ComputeEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ContextTerminationEventCommand.js → esm2020/src/commands/ClientToServer/ContextTerminationEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ContextTimeoutResetCommand.js → esm2020/src/commands/ClientToServer/ContextTimeoutResetCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ControlItemsRefreshCommand.js → esm2020/src/commands/ClientToServer/ControlItemsRefreshCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/DataViewOutputCommand.js → esm2020/src/commands/ClientToServer/DataViewOutputCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/DataviewCommand.js → esm2020/src/commands/ClientToServer/DataviewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/EvaluateCommand.js → esm2020/src/commands/ClientToServer/EvaluateCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/EventCommand.js → esm2020/src/commands/ClientToServer/EventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ExecOperCommand.js → esm2020/src/commands/ClientToServer/ExecOperCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/FetchDataControlValuesEventCommand.js → esm2020/src/commands/ClientToServer/FetchDataControlValuesEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/GlobalParamsQueryCommand.js → esm2020/src/commands/ClientToServer/GlobalParamsQueryCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/ICommandTaskTag.js → esm2020/src/commands/ClientToServer/ICommandTaskTag.mjs} +1 -0
- package/{esm2015/src/commands/ClientToServer/IndexChangeEventCommand.js → esm2020/src/commands/ClientToServer/IndexChangeEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/IniputForceWriteCommand.js → esm2020/src/commands/ClientToServer/IniputForceWriteCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/NonReversibleExitEventCommand.js → esm2020/src/commands/ClientToServer/NonReversibleExitEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/QueryCommand.js → esm2020/src/commands/ClientToServer/QueryCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/RecomputeCommand.js → esm2020/src/commands/ClientToServer/RecomputeCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/RefreshEventCommand.js → esm2020/src/commands/ClientToServer/RefreshEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/RefreshScreenEventCommand.js → esm2020/src/commands/ClientToServer/RefreshScreenEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/RollbackEventCommand.js → esm2020/src/commands/ClientToServer/RollbackEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SelectProgramCommand.js → esm2020/src/commands/ClientToServer/SelectProgramCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SetTransactionStateDataviewCommand.js → esm2020/src/commands/ClientToServer/SetTransactionStateDataviewCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SubformOpenEventCommand.js → esm2020/src/commands/ClientToServer/SubformOpenEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/SubformRefreshEventCommand.js → esm2020/src/commands/ClientToServer/SubformRefreshEventCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/TransactionCommand.js → esm2020/src/commands/ClientToServer/TransactionCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/UnloadCommand.js → esm2020/src/commands/ClientToServer/UnloadCommand.mjs} +0 -0
- package/{esm2015/src/commands/ClientToServer/WriteMessageToServerLogCommand.js → esm2020/src/commands/ClientToServer/WriteMessageToServerLogCommand.mjs} +0 -0
- package/esm2020/src/commands/DataViewCommandBase.mjs +10 -0
- package/{esm2015/src/commands/IClientCommand.js → esm2020/src/commands/IClientCommand.mjs} +1 -0
- package/esm2020/src/commands/IClientTargetedCommand.mjs +9 -0
- package/{esm2015/src/commands/IClientToServerCommandInfo.js → esm2020/src/commands/IClientToServerCommandInfo.mjs} +1 -0
- package/esm2020/src/commands/ServerToClient/AbortCommand.mjs +65 -0
- package/esm2020/src/commands/ServerToClient/AddLocateCommand.mjs +22 -0
- package/esm2020/src/commands/ServerToClient/AddRangeCommand.mjs +62 -0
- package/esm2020/src/commands/ServerToClient/AddSortCommand.mjs +33 -0
- package/{esm2015/src/commands/ServerToClient/ClientRefreshCommand.js → esm2020/src/commands/ServerToClient/ClientRefreshCommand.mjs} +14 -17
- package/esm2020/src/commands/ServerToClient/ClientTargetedCommandBase.mjs +27 -0
- package/esm2020/src/commands/ServerToClient/EnhancedVerifyCommand.mjs +45 -0
- package/esm2020/src/commands/ServerToClient/OpenURLCommand.mjs +222 -0
- package/esm2020/src/commands/ServerToClient/ResetLocateCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResetRangeCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResetSortCommand.mjs +15 -0
- package/esm2020/src/commands/ServerToClient/ResultCommand.mjs +37 -0
- package/esm2020/src/commands/ServerToClient/VerifyCommand.mjs +85 -0
- package/{esm2015/src/commands/ServerToClient/XMLBasedCommandBuilder.js → esm2020/src/commands/ServerToClient/XMLBasedCommandBuilder.mjs} +0 -0
- package/{esm2015/src/communications/IConnectionStateManager.js → esm2020/src/communications/IConnectionStateManager.mjs} +1 -0
- package/esm2020/src/communications/InteractiveCommunicationsFailureHandler.mjs +17 -0
- package/{esm2015/src/data/DataSourceIdKey.js → esm2020/src/data/DataSourceIdKey.mjs} +0 -0
- package/esm2020/src/data/DataView.mjs +1634 -0
- package/{esm2015/src/data/DataViewBase.js → esm2020/src/data/DataViewBase.mjs} +0 -0
- package/esm2020/src/data/DataviewManager.mjs +28 -0
- package/esm2020/src/data/DataviewManagerBase.mjs +15 -0
- package/{esm2015/src/data/DvCache.js → esm2020/src/data/DvCache.mjs} +0 -0
- package/esm2020/src/data/Field.mjs +645 -0
- package/esm2020/src/data/FieldBase.mjs +18 -0
- package/{esm2015/src/data/FieldsTable.js → esm2020/src/data/FieldsTable.mjs} +0 -0
- package/{esm2015/src/data/IRecordsTable.js → esm2020/src/data/IRecordsTable.mjs} +1 -0
- package/{esm2015/src/data/Key.js → esm2020/src/data/Key.mjs} +0 -0
- package/{esm2015/src/data/Record.js → esm2020/src/data/Record.mjs} +0 -0
- package/{esm2015/src/data/RecordOutOfDataViewException.js → esm2020/src/data/RecordOutOfDataViewException.mjs} +0 -0
- package/{esm2015/src/data/RecordsTable.js → esm2020/src/data/RecordsTable.mjs} +0 -0
- package/esm2020/src/data/TaskTransactionManager.mjs +103 -0
- package/{esm2015/src/data/XMLBasedDcValuesBuilder.js → esm2020/src/data/XMLBasedDcValuesBuilder.mjs} +0 -0
- package/{esm2015/src/enums.js → esm2020/src/enums.mjs} +0 -0
- package/esm2020/src/env/EnvVariablesTable.mjs +340 -0
- package/esm2020/src/env/Environment.mjs +554 -0
- package/{esm2015/src/env/ILanguageData.js → esm2020/src/env/ILanguageData.mjs} +1 -0
- package/esm2020/src/env/LanguageData.mjs +222 -0
- package/esm2020/src/env/MirrorString.mjs +66 -0
- package/{esm2015/src/event/ActionManager.js → esm2020/src/event/ActionManager.mjs} +0 -0
- package/esm2020/src/event/Event.mjs +1436 -0
- package/esm2020/src/event/EventHandler.mjs +773 -0
- package/{esm2015/src/event/EventHandlerPosition.js → esm2020/src/event/EventHandlerPosition.mjs} +0 -0
- package/esm2020/src/event/EventsManager.mjs +2983 -0
- package/{esm2015/src/event/IEventsManager.js → esm2020/src/event/IEventsManager.mjs} +0 -0
- package/{esm2015/src/event/RunTimeEvent.js → esm2020/src/event/RunTimeEvent.mjs} +0 -0
- package/{esm2015/src/event/RunTimeEventBase.js → esm2020/src/event/RunTimeEventBase.mjs} +0 -0
- package/{esm2015/src/event/UserEventsTable.js → esm2020/src/event/UserEventsTable.mjs} +0 -0
- package/{esm2015/src/exp/ExpTable.js → esm2020/src/exp/ExpTable.mjs} +0 -0
- package/esm2020/src/exp/Expression.mjs +200 -0
- package/{esm2015/src/exp/ExpressionDict.js → esm2020/src/exp/ExpressionDict.mjs} +0 -0
- package/esm2020/src/exp/ExpressionEvaluator.mjs +4373 -0
- package/{esm2015/src/exp/ExpressionLocalJpn.js → esm2020/src/exp/ExpressionLocalJpn.mjs} +0 -0
- package/esm2020/src/exp/GlobalParamsTable.mjs +85 -0
- package/esm2020/src/exp/YesNoExp.mjs +41 -0
- package/{esm2015/src/gui/CreatedFormVector.js → esm2020/src/gui/CreatedFormVector.mjs} +0 -0
- package/esm2020/src/gui/FormsTable.mjs +66 -0
- package/esm2020/src/gui/MgControl.mjs +357 -0
- package/esm2020/src/gui/MgForm.mjs +1195 -0
- package/esm2020/src/http/HttpManager.mjs +97 -0
- package/esm2020/src/http/client/HttpClientAsync.mjs +67 -0
- package/esm2020/src/http/client/HttpClientBase.mjs +148 -0
- package/{esm2015/src/http/client/HttpClientEvents.js → esm2020/src/http/client/HttpClientEvents.mjs} +0 -0
- package/esm2020/src/http/client/HttpClientSync.mjs +42 -0
- package/{esm2015/src/http/client/HttpUtility.js → esm2020/src/http/client/HttpUtility.mjs} +0 -0
- package/{esm2015/src/http/client/ICommunicationsFailureHandler.js → esm2020/src/http/client/ICommunicationsFailureHandler.mjs} +1 -0
- package/esm2020/src/remote/AddUserLocateRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/AddUserRangeRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/AddUserSortRemoteDataViewCommand.mjs +18 -0
- package/esm2020/src/remote/RemoteCommandsProcessor.mjs +872 -0
- package/esm2020/src/remote/RemoteControlItemsRefreshCommand.mjs +25 -0
- package/esm2020/src/remote/RemoteDataViewCommandBase.mjs +24 -0
- package/{esm2015/src/remote/RemoteDataViewCommandFactory.js → esm2020/src/remote/RemoteDataViewCommandFactory.mjs} +0 -0
- package/esm2020/src/remote/RemoteDataViewCommandUpdateNonModifiable.mjs +16 -0
- package/esm2020/src/remote/RemoteDataviewManager.mjs +17 -0
- package/esm2020/src/remote/RemoteInitDataViewCommand.mjs +11 -0
- package/esm2020/src/remote/ResetUserLocateRemoteDataviewCommand.mjs +17 -0
- package/esm2020/src/remote/ResetUserRangeRemoteDataviewCommand.mjs +13 -0
- package/esm2020/src/remote/ResetUserSortRemoteDataviewCommand.mjs +16 -0
- package/{esm2015/src/remote/ServerError.js → esm2020/src/remote/ServerError.mjs} +0 -0
- package/{esm2015/src/remote/SetTransactionStateRemoteDataViewCommand.js → esm2020/src/remote/SetTransactionStateRemoteDataViewCommand.mjs} +8 -11
- package/esm2020/src/rt/Argument.mjs +274 -0
- package/esm2020/src/rt/ArgumentsList.mjs +103 -0
- package/esm2020/src/rt/Boundary.mjs +158 -0
- package/{esm2015/src/rt/CompMainPrgTable.js → esm2020/src/rt/CompMainPrgTable.mjs} +0 -0
- package/esm2020/src/rt/DataviewHeaderBase.mjs +96 -0
- package/{esm2015/src/rt/DataviewHeaderFactory.js → esm2020/src/rt/DataviewHeaderFactory.mjs} +0 -0
- package/{esm2015/src/rt/DataviewHeaders.js → esm2020/src/rt/DataviewHeaders.mjs} +0 -0
- package/{esm2015/src/rt/DataviewHeadersSaxHandler.js → esm2020/src/rt/DataviewHeadersSaxHandler.mjs} +0 -0
- package/{esm2015/src/rt/ExecutionStack.js → esm2020/src/rt/ExecutionStack.mjs} +0 -0
- package/{esm2015/src/rt/ExecutionStackEntry.js → esm2020/src/rt/ExecutionStackEntry.mjs} +0 -0
- package/{esm2015/src/rt/HandlersTable.js → esm2020/src/rt/HandlersTable.mjs} +0 -0
- package/{esm2015/src/rt/IDataSourceViewDefinition.js → esm2020/src/rt/IDataSourceViewDefinition.mjs} +1 -0
- package/{esm2015/src/rt/IDataviewHeader.js → esm2020/src/rt/IDataviewHeader.mjs} +1 -0
- package/{esm2015/src/rt/IResultValue.js → esm2020/src/rt/IResultValue.mjs} +1 -0
- package/{esm2015/src/rt/LastFocusedManager.js → esm2020/src/rt/LastFocusedManager.mjs} +0 -0
- package/esm2020/src/rt/Operation.mjs +745 -0
- package/{esm2015/src/rt/OperationTable.js → esm2020/src/rt/OperationTable.mjs} +0 -0
- package/esm2020/src/rt/Recompute.mjs +355 -0
- package/{esm2015/src/rt/RecomputeTable.js → esm2020/src/rt/RecomputeTable.mjs} +0 -0
- package/esm2020/src/rt/RemoteDataviewHeader.mjs +105 -0
- package/{esm2015/src/rt/ResultValue.js → esm2020/src/rt/ResultValue.mjs} +0 -0
- package/esm2020/src/rt/TableCache.mjs +177 -0
- package/esm2020/src/rt/TableCacheManager.mjs +67 -0
- package/{esm2015/src/rt/Transaction.js → esm2020/src/rt/Transaction.mjs} +0 -0
- package/{esm2015/src/security/UserDetails.js → esm2020/src/security/UserDetails.mjs} +0 -0
- package/{esm2015/src/tasks/IMGDataCollection.js → esm2020/src/tasks/IMGDataCollection.mjs} +1 -0
- package/esm2020/src/tasks/MGData.mjs +552 -0
- package/esm2020/src/tasks/MGDataCollection.mjs +259 -0
- package/{esm2015/src/tasks/MenusDeserializer.js → esm2020/src/tasks/MenusDeserializer.mjs} +0 -0
- package/{esm2015/src/tasks/RCTimer.js → esm2020/src/tasks/RCTimer.mjs} +0 -0
- package/{esm2015/src/tasks/RemoteTaskService.js → esm2020/src/tasks/RemoteTaskService.mjs} +0 -0
- package/esm2020/src/tasks/Task.mjs +2501 -0
- package/{esm2015/src/tasks/TaskBase.js → esm2020/src/tasks/TaskBase.mjs} +22 -1
- package/esm2020/src/tasks/TaskServiceBase.mjs +25 -0
- package/esm2020/src/tasks/TasksTable.mjs +80 -0
- package/{esm2015/src/tasks/sort/Sort.js → esm2020/src/tasks/sort/Sort.mjs} +0 -0
- package/{esm2015/src/tasks/sort/SortCollection.js → esm2020/src/tasks/sort/SortCollection.mjs} +0 -0
- package/{esm2015/src/util/ConstUtils.js → esm2020/src/util/ConstUtils.mjs} +0 -0
- package/esm2020/src/util/FlowMonitorQueue.mjs +361 -0
- package/{esm2015/src/util/HeapSort.js → esm2020/src/util/HeapSort.mjs} +0 -0
- package/{esm2015/src/util/IMirrorXML.js → esm2020/src/util/IMirrorXML.mjs} +2 -1
- package/{esm2015/src/util/IServerConfig.js → esm2020/src/util/IServerConfig.mjs} +1 -0
- package/{esm2015/src/util/MgBlockingQueue.js → esm2020/src/util/MgBlockingQueue.mjs} +1 -0
- package/esm2020/src/util/MgPriorityBlockingQueue.mjs +76 -0
- package/{esm2015/src/util/MgPriorityQueue.js → esm2020/src/util/MgPriorityQueue.mjs} +0 -0
- package/esm2020/src/util/ParamParseResult.mjs +8 -0
- package/esm2020/src/util/PrmMap.mjs +151 -0
- package/{esm2015/src/util/Process.js → esm2020/src/util/Process.mjs} +0 -0
- package/{esm2015/src/util/ReturnResult.js → esm2020/src/util/ReturnResult.mjs} +0 -0
- package/{esm2015/src/util/ReturnResultBase.js → esm2020/src/util/ReturnResultBase.mjs} +0 -0
- package/{esm2015/src/util/Scrambler.js → esm2020/src/util/Scrambler.mjs} +0 -0
- package/{esm2015/src/util/UniqueIDUtils.js → esm2020/src/util/UniqueIDUtils.mjs} +0 -0
- package/{esm2015/src/util/cookie.service.js → esm2020/src/util/cookie.service.mjs} +0 -0
- package/fesm2015/{magic-xpa-engine.js → magic-xpa-engine.mjs} +102 -5
- package/fesm2015/magic-xpa-engine.mjs.map +1 -0
- package/fesm2020/magic-xpa-engine.mjs +30705 -0
- package/fesm2020/magic-xpa-engine.mjs.map +1 -0
- package/index.d.ts +2 -0
- package/package.json +27 -13
- package/src/AccessHelper.d.ts +1 -1
- package/src/CommandsProcessorBase.d.ts +3 -3
- package/src/commands/DataViewCommandBase.d.ts +2 -2
- package/src/commands/IClientTargetedCommand.d.ts +1 -1
- package/src/commands/ServerToClient/ClientTargetedCommandBase.d.ts +1 -1
- package/src/data/FieldBase.d.ts +3 -3
- package/src/env/EnvVariablesTable.d.ts +2 -15
- package/src/env/MirrorString.d.ts +15 -0
- package/src/exp/GlobalParamsTable.d.ts +2 -1
- package/src/http/client/HttpClientBase.d.ts +2 -2
- package/src/rt/DataviewHeaderBase.d.ts +1 -1
- package/src/tasks/TaskBase.d.ts +7 -7
- package/src/util/IMirrorXML.d.ts +1 -1
- package/src/util/ParamParseResult.d.ts +6 -0
- package/src/util/PrmMap.d.ts +0 -6
- package/bundles/magic-xpa-engine.umd.js +0 -37983
- package/bundles/magic-xpa-engine.umd.js.map +0 -1
- package/bundles/magic-xpa-engine.umd.min.js +0 -16
- package/bundles/magic-xpa-engine.umd.min.js.map +0 -1
- package/esm2015/index.js +0 -188
- package/esm2015/src/AccessHelper.js +0 -3
- package/esm2015/src/ClientManager.js +0 -412
- package/esm2015/src/CommandsProcessorBase.js +0 -54
- package/esm2015/src/CommandsProcessorManager.js +0 -31
- package/esm2015/src/CommandsTable.js +0 -166
- package/esm2015/src/GUIManager.js +0 -72
- package/esm2015/src/bridge/MagicBridge.js +0 -44
- package/esm2015/src/commands/ClientToServer/CommandFactory.js +0 -283
- package/esm2015/src/commands/DataViewCommandBase.js +0 -6
- package/esm2015/src/commands/IClientTargetedCommand.js +0 -6
- package/esm2015/src/commands/ServerToClient/AbortCommand.js +0 -68
- package/esm2015/src/commands/ServerToClient/AddLocateCommand.js +0 -25
- package/esm2015/src/commands/ServerToClient/AddRangeCommand.js +0 -65
- package/esm2015/src/commands/ServerToClient/AddSortCommand.js +0 -36
- package/esm2015/src/commands/ServerToClient/ClientTargetedCommandBase.js +0 -24
- package/esm2015/src/commands/ServerToClient/EnhancedVerifyCommand.js +0 -48
- package/esm2015/src/commands/ServerToClient/OpenURLCommand.js +0 -225
- package/esm2015/src/commands/ServerToClient/ResetLocateCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResetRangeCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResetSortCommand.js +0 -18
- package/esm2015/src/commands/ServerToClient/ResultCommand.js +0 -40
- package/esm2015/src/commands/ServerToClient/VerifyCommand.js +0 -88
- package/esm2015/src/communications/InteractiveCommunicationsFailureHandler.js +0 -20
- package/esm2015/src/data/DataView.js +0 -1692
- package/esm2015/src/data/DataviewManager.js +0 -31
- package/esm2015/src/data/DataviewManagerBase.js +0 -18
- package/esm2015/src/data/Field.js +0 -671
- package/esm2015/src/data/FieldBase.js +0 -9
- package/esm2015/src/data/TaskTransactionManager.js +0 -110
- package/esm2015/src/env/EnvVariablesTable.js +0 -408
- package/esm2015/src/env/Environment.js +0 -557
- package/esm2015/src/env/LanguageData.js +0 -229
- package/esm2015/src/event/Event.js +0 -1441
- package/esm2015/src/event/EventHandler.js +0 -786
- package/esm2015/src/event/EventsManager.js +0 -3106
- package/esm2015/src/exp/Expression.js +0 -209
- package/esm2015/src/exp/ExpressionEvaluator.js +0 -4440
- package/esm2015/src/exp/GlobalParamsTable.js +0 -84
- package/esm2015/src/exp/YesNoExp.js +0 -44
- package/esm2015/src/gui/FormsTable.js +0 -73
- package/esm2015/src/gui/MgControl.js +0 -424
- package/esm2015/src/gui/MgForm.js +0 -1291
- package/esm2015/src/http/HttpManager.js +0 -100
- package/esm2015/src/http/client/HttpClientAsync.js +0 -72
- package/esm2015/src/http/client/HttpClientBase.js +0 -147
- package/esm2015/src/http/client/HttpClientSync.js +0 -47
- package/esm2015/src/remote/AddUserLocateRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/AddUserRangeRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/AddUserSortRemoteDataViewCommand.js +0 -21
- package/esm2015/src/remote/RemoteCommandsProcessor.js +0 -901
- package/esm2015/src/remote/RemoteControlItemsRefreshCommand.js +0 -28
- package/esm2015/src/remote/RemoteDataViewCommandBase.js +0 -27
- package/esm2015/src/remote/RemoteDataViewCommandUpdateNonModifiable.js +0 -19
- package/esm2015/src/remote/RemoteDataviewManager.js +0 -23
- package/esm2015/src/remote/RemoteInitDataViewCommand.js +0 -14
- package/esm2015/src/remote/ResetUserLocateRemoteDataviewCommand.js +0 -20
- package/esm2015/src/remote/ResetUserRangeRemoteDataviewCommand.js +0 -16
- package/esm2015/src/remote/ResetUserSortRemoteDataviewCommand.js +0 -19
- package/esm2015/src/rt/Argument.js +0 -281
- package/esm2015/src/rt/ArgumentsList.js +0 -108
- package/esm2015/src/rt/Boundary.js +0 -161
- package/esm2015/src/rt/DataviewHeaderBase.js +0 -96
- package/esm2015/src/rt/Operation.js +0 -772
- package/esm2015/src/rt/Recompute.js +0 -372
- package/esm2015/src/rt/RemoteDataviewHeader.js +0 -114
- package/esm2015/src/rt/TableCache.js +0 -182
- package/esm2015/src/rt/TableCacheManager.js +0 -70
- package/esm2015/src/tasks/MGData.js +0 -561
- package/esm2015/src/tasks/MGDataCollection.js +0 -270
- package/esm2015/src/tasks/Task.js +0 -2601
- package/esm2015/src/tasks/TaskServiceBase.js +0 -30
- package/esm2015/src/tasks/TasksTable.js +0 -87
- package/esm2015/src/util/FlowMonitorQueue.js +0 -364
- package/esm2015/src/util/MgPriorityBlockingQueue.js +0 -79
- package/esm2015/src/util/PrmMap.js +0 -157
- package/fesm2015/magic-xpa-engine.js.map +0 -1
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { GuiFieldBase } from "@magic-xpa/gui";
|
|
2
|
-
export class FieldBase extends GuiFieldBase {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(...arguments);
|
|
5
|
-
this.IsEventHandlerField = false;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
FieldBase.CLEAR_FLAGS = true;
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGRCYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW5naW5lL3NyYy9kYXRhL0ZpZWxkQmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUMsTUFBTSxPQUFnQixTQUFVLFNBQVEsWUFBWTtJQUFwRDs7UUFHRSx3QkFBbUIsR0FBWSxLQUFLLENBQUM7SUFtQ3ZDLENBQUM7O0FBckNRLHFCQUFXLEdBQVksSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3VpRmllbGRCYXNlIH0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7IFJlY29tcHV0ZSB9IGZyb20gXCIuLi9ydC9SZWNvbXB1dGVcIjtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWVsZEJhc2UgZXh0ZW5kcyBHdWlGaWVsZEJhc2Uge1xyXG4gIHN0YXRpYyBDTEVBUl9GTEFHUzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIElzRXZlbnRIYW5kbGVyRmllbGQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgYWJzdHJhY3QgZ2V0VmFsdWUoY2hlY2tOdWxsQXJpdGhtZXRpYzogYm9vbGVhbik6IHN0cmluZztcclxuXHJcbiAgYWJzdHJhY3QgaXNOdWxsKCk6IGJvb2xlYW47XHJcblxyXG4gIGFic3RyYWN0IHRha2VWYWxGcm9tUmVjKCk6IHZvaWQ7XHJcblxyXG4gIGFic3RyYWN0IGlzUGFyYW0oKTogYm9vbGVhbjtcclxuXHJcbiAgYWJzdHJhY3QgaXNNb2RpZmllZCgpOiBib29sZWFuO1xyXG5cclxuICBhYnN0cmFjdCBhc3luYyB1cGRhdGVEaXNwbGF5KCk6IFByb21pc2U8dm9pZD47XHJcblxyXG4gIGFic3RyYWN0IHNldEhhc1pvb21IYW5kbGVyKCk6IHZvaWQ7XHJcblxyXG4gIGFic3RyYWN0IHNldEhhc0NoYW5nZUV2ZW50KCk6IHZvaWQ7XHJcblxyXG4gIGFic3RyYWN0IGludmFsaWRhdGUoZm9yY2VJbnZhbGlkYXRlOiBib29sZWFuLCBjbGVhckZsYWdzOiBib29sZWFuKTogdm9pZDtcclxuXHJcbiAgYWJzdHJhY3QgYXN5bmMgY29tcHV0ZShyZWNvbXB1dGU6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuICBhYnN0cmFjdCBhc3luYyBzZXRWYWx1ZUFuZFN0YXJ0UmVjb21wdXRlKHZhbDogc3RyaW5nLCBpc051bGxGbGQ6IGJvb2xlYW4sIHJlY29tcHV0ZTogYm9vbGVhbiwgc2V0UmVjb3JkVXBkYXRlZDogYm9vbGVhbiwgaXNBcmdVcGRhdGU6IGJvb2xlYW4sIGVuZm9yY2VWYXJpYWJsZUNoYW5nZT86IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuICBhYnN0cmFjdCBnZXQgSXNWaXJ0dWFsKCk6IGJvb2xlYW47XHJcblxyXG4gIGFic3RyYWN0IGhhc0luaXRFeHAoKTogYm9vbGVhbjtcclxuXHJcbiAgYWJzdHJhY3QgY2F1c2VUYWJsZUludmFsaWRhdGlvbihjYXVzZVRhYmxlSW52YWxpZGF0aW9uOiBib29sZWFuKTogdm9pZDtcclxuXHJcbiAgYWJzdHJhY3Qgc2V0UmVjb21wdXRlKHJlY29tcFJlZjogUmVjb21wdXRlKTogdm9pZDtcclxuXHJcbiAgYWJzdHJhY3Qgc2V0UmVjb21wdXRlZCgpOiB2b2lkO1xyXG5cclxuICBhYnN0cmFjdCBpc0luRXZhbFByb2Nlc3MoKTogYm9vbGVhbjtcclxufVxyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { PropInterface } from "@magic-xpa/gui";
|
|
3
|
-
import { Transaction } from "../rt/Transaction";
|
|
4
|
-
import { ReturnResult } from "../util/ReturnResult";
|
|
5
|
-
import { DataViewCommandType } from "../commands/ClientToServer/DataviewCommand";
|
|
6
|
-
import { CommandsProcessorBase_SendingInstruction } from "../CommandsProcessorBase";
|
|
7
|
-
import { CommandFactory } from "../commands/ClientToServer/CommandFactory";
|
|
8
|
-
import { ConstInterface } from "../ConstInterface";
|
|
9
|
-
import { RefParam } from "@magic-xpa/mscorelib";
|
|
10
|
-
import { RemoteCommandsProcessor } from "../remote/RemoteCommandsProcessor";
|
|
11
|
-
import { MGDataCollection } from "../tasks/MGDataCollection";
|
|
12
|
-
export class TaskTransactionManager {
|
|
13
|
-
constructor(task) {
|
|
14
|
-
this.task = null;
|
|
15
|
-
this.task = task;
|
|
16
|
-
}
|
|
17
|
-
get isClosingTopmostTask() {
|
|
18
|
-
return MGDataCollection.Instance.StartupMgData.getFirstTask().InEndTask;
|
|
19
|
-
}
|
|
20
|
-
AllowTransaction(transBegin, forLocal) {
|
|
21
|
-
let result;
|
|
22
|
-
if (forLocal)
|
|
23
|
-
result = (transBegin === ConstInterface.TRANS_TASK_PREFIX || transBegin === ConstInterface.TRANS_RECORD_PREFIX);
|
|
24
|
-
else
|
|
25
|
-
result = (transBegin === ConstInterface.TRANS_TASK_PREFIX || transBegin === ConstInterface.TRANS_RECORD_PREFIX || transBegin === ConstInterface.TRANS_NONE);
|
|
26
|
-
return result;
|
|
27
|
-
}
|
|
28
|
-
PrepareTransactionProperties(transaction, forLocal) {
|
|
29
|
-
let transactionBeginValue = this.GetTransactionBeginValue(forLocal);
|
|
30
|
-
let flag = transaction !== null && this.AllowTransaction(transactionBeginValue, forLocal);
|
|
31
|
-
if (flag)
|
|
32
|
-
transaction.setTransBegin(transactionBeginValue);
|
|
33
|
-
}
|
|
34
|
-
GetTransactionBeginValue(forLocal) {
|
|
35
|
-
let result = ConstInterface.TRANS_NONE;
|
|
36
|
-
let prop = this.task.getProp(PropInterface.PROP_TYPE_TRASACTION_BEGIN);
|
|
37
|
-
if (prop !== null) {
|
|
38
|
-
let propgetValue = forLocal ? prop.StudioValue : prop.GetComputedValue();
|
|
39
|
-
if (propgetValue !== null) {
|
|
40
|
-
result = propgetValue.charAt(0);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return result;
|
|
44
|
-
}
|
|
45
|
-
checkAndCommit(reversibleExit, level, isAbort) {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
let oper = isAbort ? ConstInterface.TRANS_ABORT : ConstInterface.TRANS_COMMIT;
|
|
48
|
-
let result = yield this.ExecuteLocalUpdatesCommand();
|
|
49
|
-
if (!result.Success) {
|
|
50
|
-
if (!this.task.IsInteractive)
|
|
51
|
-
this.task.abort();
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
let refResult = new RefParam(result);
|
|
55
|
-
let ret = yield this.checkAndCommitPerDataview(this.task.DataviewManager.RemoteDataviewManager, reversibleExit, level, oper, refResult);
|
|
56
|
-
result = refResult.value;
|
|
57
|
-
if (!ret) {
|
|
58
|
-
if (level === ConstInterface.TRANS_RECORD_PREFIX && this.task.DataView.modifiedRecordsNumber() > 0 && this.task.DataView.FlushUpdates) {
|
|
59
|
-
try {
|
|
60
|
-
this.task.TryingToCommit = true;
|
|
61
|
-
yield RemoteCommandsProcessor.GetInstance().Execute(CommandsProcessorBase_SendingInstruction.TASKS_AND_COMMANDS);
|
|
62
|
-
}
|
|
63
|
-
finally {
|
|
64
|
-
this.task.TryingToCommit = false;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return false;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
ExecuteLocalUpdatesCommand() {
|
|
72
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
let command = CommandFactory.CreateDataViewCommand(this.task.getTaskTag(), DataViewCommandType.ExecuteLocalUpdates);
|
|
74
|
-
return yield this.task.DataviewManager.Execute(command);
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
checkAndCommitPerDataview(dataviewmanager, reversibleExit, level, oper, refResult) {
|
|
78
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
-
refResult.value = new ReturnResult();
|
|
80
|
-
let returnValue = false;
|
|
81
|
-
let currentTransaction = dataviewmanager.Transaction;
|
|
82
|
-
if (currentTransaction !== null && !this.task.isAborting() &&
|
|
83
|
-
currentTransaction.isOpened() && currentTransaction.isOwner(this.task) &&
|
|
84
|
-
currentTransaction.getLevel() === level) {
|
|
85
|
-
let cmd = CommandFactory.CreateTransactionCommand(oper, this.task.getTaskTag(), reversibleExit, level);
|
|
86
|
-
if (this.isClosingTopmostTask && MGDataCollection.Instance.StartupMgData.getFirstTask().ClosingFormUI)
|
|
87
|
-
this.task.getMGData().CmdsToServer.Add(cmd);
|
|
88
|
-
try {
|
|
89
|
-
this.task.TryingToCommit = true;
|
|
90
|
-
if (!(this.isClosingTopmostTask && MGDataCollection.Instance.StartupMgData.getFirstTask().ClosingFormUI))
|
|
91
|
-
refResult.value = yield dataviewmanager.Execute(cmd);
|
|
92
|
-
}
|
|
93
|
-
finally {
|
|
94
|
-
this.task.TryingToCommit = false;
|
|
95
|
-
}
|
|
96
|
-
returnValue = true;
|
|
97
|
-
}
|
|
98
|
-
return returnValue;
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
HandelTransactionErrorHandlingsRetry(transBegin) {
|
|
102
|
-
let task = this.task;
|
|
103
|
-
if (task.Transaction === null && transBegin[0] === ConstInterface.TRANS_NONE) {
|
|
104
|
-
task.TransactionErrorHandlingsRetry = new Transaction(task, task.getTaskTag());
|
|
105
|
-
task.TransactionErrorHandlingsRetry.setTransBegin(ConstInterface.TRANS_RECORD_PREFIX);
|
|
106
|
-
transBegin[0] = ConstInterface.TRANS_RECORD_PREFIX;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGFza1RyYW5zYWN0aW9uTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VuZ2luZS9zcmMvZGF0YS9UYXNrVHJhbnNhY3Rpb25NYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsd0NBQXdDLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUdsRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFHekUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUczRCxNQUFNLE9BQU8sc0JBQXNCO0lBU2pDLFlBQVksSUFBVTtRQVJ0QixTQUFJLEdBQVMsSUFBSSxDQUFDO1FBU2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFQRCxJQUFZLG9CQUFvQjtRQUU5QixPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsU0FBUyxDQUFDO0lBQzFFLENBQUM7SUFPRCxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLFFBQWlCO1FBQ3BELElBQUksTUFBZSxDQUFDO1FBQ3BCLElBQUksUUFBUTtZQUNWLE1BQU0sR0FB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Q0FBQyxDQUFDO2dCQUU5QyxJQUFJO29CQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztvQkFFaEMsSUFBRyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUMsYUFBYSxDQUFDO3dCQUNyRyxTQUFTLENBQUMsS0FBSyxHQUFHLE1BQU0sZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDeEQ7d0JBQ087b0JBRU4sSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2lCQUNsQztnQkFFRCxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1lBRUQsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztLQUFBO0lBUUQsb0NBQW9DLENBQUMsVUFBb0I7UUFDdkQsSUFBSSxJQUFJLEdBQWEsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssSUFBSSxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxjQUFjLENBQUMsVUFBVSxFQUFFO1lBQzVFLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUN0RixVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtQcm9wSW50ZXJmYWNlLCBQcm9wZXJ0eX0gZnJvbSBcIkBtYWdpYy14cGEvZ3VpXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb259IGZyb20gXCIuLi9ydC9UcmFuc2FjdGlvblwiO1xyXG5pbXBvcnQge1JldHVyblJlc3VsdH0gZnJvbSBcIi4uL3V0aWwvUmV0dXJuUmVzdWx0XCI7XHJcbmltcG9ydCB7RGF0YVZpZXdDb21tYW5kVHlwZX0gZnJvbSBcIi4uL2NvbW1hbmRzL0NsaWVudFRvU2VydmVyL0RhdGF2aWV3Q29tbWFuZFwiO1xyXG5pbXBvcnQge0NvbW1hbmRzUHJvY2Vzc29yQmFzZV9TZW5kaW5nSW5zdHJ1Y3Rpb259IGZyb20gXCIuLi9Db21tYW5kc1Byb2Nlc3NvckJhc2VcIjtcclxuaW1wb3J0IHtJQ2xpZW50Q29tbWFuZH0gZnJvbSBcIi4uL2NvbW1hbmRzL0lDbGllbnRDb21tYW5kXCI7XHJcbmltcG9ydCB7RGF0YXZpZXdNYW5hZ2VyQmFzZX0gZnJvbSBcIi4vRGF0YXZpZXdNYW5hZ2VyQmFzZVwiO1xyXG5pbXBvcnQge0NvbW1hbmRGYWN0b3J5fSBmcm9tIFwiLi4vY29tbWFuZHMvQ2xpZW50VG9TZXJ2ZXIvQ29tbWFuZEZhY3RvcnlcIjtcclxuaW1wb3J0IHtEYXRhVmlld30gZnJvbSBcIi4vRGF0YVZpZXdcIjtcclxuaW1wb3J0IHtUYXNrfSBmcm9tIFwiLi4vdGFza3MvVGFza1wiO1xyXG5pbXBvcnQge0NvbnN0SW50ZXJmYWNlfSBmcm9tIFwiLi4vQ29uc3RJbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtSZWZQYXJhbX0gZnJvbSBcIkBtYWdpYy14cGEvbXNjb3JlbGliXCI7XHJcbmltcG9ydCB7IFRhc2tCYXNlIH0gZnJvbSBcIi4uL3Rhc2tzL1Rhc2tCYXNlXCI7XHJcbmltcG9ydCB7IFJlbW90ZUNvbW1hbmRzUHJvY2Vzc29yIH0gZnJvbSBcIi4uL3JlbW90ZS9SZW1vdGVDb21tYW5kc1Byb2Nlc3NvclwiO1xyXG5pbXBvcnQge01HRGF0YUNvbGxlY3Rpb259IGZyb20gXCIuLi90YXNrcy9NR0RhdGFDb2xsZWN0aW9uXCI7XHJcblxyXG4vLy8gbG9jYWwgdHJhbnNhY3Rpb24gbWFuYWdlclxyXG5leHBvcnQgY2xhc3MgVGFza1RyYW5zYWN0aW9uTWFuYWdlciB7XHJcbiAgdGFzazogVGFzayA9IG51bGw7XHJcblxyXG5cclxuICBwcml2YXRlIGdldCBpc0Nsb3NpbmdUb3Btb3N0VGFzaygpOiBib29sZWFuXHJcbiAge1xyXG4gICAgcmV0dXJuIE1HRGF0YUNvbGxlY3Rpb24uSW5zdGFuY2UuU3RhcnR1cE1nRGF0YS5nZXRGaXJzdFRhc2soKS5JbkVuZFRhc2s7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcih0YXNrOiBUYXNrKSB7XHJcbiAgICB0aGlzLnRhc2sgPSB0YXNrO1xyXG4gIH1cclxuXHJcbiAgLy8vIHJldHVybiB0cnVlIGlmIHRoZSB0cmFuc2FjdGlvbiBiZWdhaW4gc3VwcG9ydGVkXHJcbiAgQWxsb3dUcmFuc2FjdGlvbih0cmFuc0JlZ2luOiBzdHJpbmcsIGZvckxvY2FsOiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuO1xyXG4gICAgaWYgKGZvckxvY2FsKVxyXG4gICAgICByZXN1bHQgPSAodHJhbnNCZWdpbiA9PT0gQ29uc3RJbnRlcmZhY2UuVFJBTlNfVEFTS19QUkVGSVggfHwgdHJhbnNCZWdpbiA9PT0gQ29uc3RJbnRlcmZhY2UuVFJBTlNfUkVDT1JEX1BSRUZJWCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHJlc3VsdCA9ICh0cmFuc0JlZ2luID09PSBDb25zdEludGVyZmFjZS5UUkFOU19UQVNLX1BSRUZJWCB8fCB0cmFuc0JlZ2luID09PSBDb25zdEludGVyZmFjZS5UUkFOU19SRUNPUkRfUFJFRklYIHx8IHRyYW5zQmVnaW4gPT09IENvbnN0SW50ZXJmYWNlLlRSQU5TX05PTkUpO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBQcmVwYXJlVHJhbnNhY3Rpb25Qcm9wZXJ0aWVzKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbiwgZm9yTG9jYWw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGxldCB0cmFuc2FjdGlvbkJlZ2luVmFsdWU6IHN0cmluZyA9IHRoaXMuR2V0VHJhbnNhY3Rpb25CZWdpblZhbHVlKGZvckxvY2FsKTtcclxuICAgIGxldCBmbGFnOiBib29sZWFuID0gdHJhbnNhY3Rpb24gIT09IG51bGwgJiYgdGhpcy5BbGxvd1RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uQmVnaW5WYWx1ZSwgZm9yTG9jYWwpO1xyXG4gICAgaWYgKGZsYWcpXHJcbiAgICAgIHRyYW5zYWN0aW9uLnNldFRyYW5zQmVnaW4odHJhbnNhY3Rpb25CZWdpblZhbHVlKTtcclxuICB9XHJcblxyXG4gIEdldFRyYW5zYWN0aW9uQmVnaW5WYWx1ZShmb3JMb2NhbDogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBDb25zdEludGVyZmFjZS5UUkFOU19OT05FO1xyXG4gICAgbGV0IHByb3A6IFByb3BlcnR5ID0gdGhpcy50YXNrLmdldFByb3AoUHJvcEludGVyZmFjZS5QUk9QX1RZUEVfVFJBU0FDVElPTl9CRUdJTik7XHJcbiAgICBpZiAocHJvcCAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgcHJvcGdldFZhbHVlOiBzdHJpbmcgPSBmb3JMb2NhbCA/IHByb3AuU3R1ZGlvVmFsdWUgOiBwcm9wLkdldENvbXB1dGVkVmFsdWUoKTtcclxuICAgICAgaWYgKHByb3BnZXRWYWx1ZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJlc3VsdCA9IHByb3BnZXRWYWx1ZS5jaGFyQXQoMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vLyAgIGNoZWNrIGlmIGFsbCB0aGUgY29uZGl0aW9ucyBpbXBseSBhIGNvbW1pdCBhbmQgZG8gdGhlIGNvbW1pdCByZXR1cm4gdHJ1ZSBpZiBhIGNvbW1pdCB3YXMgZXhlY3V0ZWRcclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZSA9IFwicmV2ZXJzaWJsZUV4aXRcIj5pZiB0cnVlIHRoZW4gdGhlIHRhc2sgZXhpdCBpcyBub24gcmV2ZXJzaWJsZTwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lID0gXCJsZXZlbFwiPm9mIHRoZSBkeW5hbWljRGVmLnRyYW5zYWN0aW9uIHRvIGNvbW1pdCAodGFzayAvIHJlY29yZCk8L3BhcmFtPlxyXG4gIHB1YmxpYyBhc3luYyBjaGVja0FuZENvbW1pdChyZXZlcnNpYmxlRXhpdDogYm9vbGVhbiwgbGV2ZWw6IHN0cmluZywgaXNBYm9ydDogYm9vbGVhbik6IFByb21pc2U8Ym9vbGVhbj5cclxuICB7XHJcbiAgICBsZXQgb3Blcjogc3RyaW5nID0gaXNBYm9ydCA/IENvbnN0SW50ZXJmYWNlLlRSQU5TX0FCT1JUIDogQ29uc3RJbnRlcmZhY2UuVFJBTlNfQ09NTUlUO1xyXG4gICAgbGV0IHJlc3VsdDogUmV0dXJuUmVzdWx0ID0gYXdhaXQgdGhpcy5FeGVjdXRlTG9jYWxVcGRhdGVzQ29tbWFuZCgpO1xyXG4gICAgLy8gaXMgZmFpbGVkIHRoZSByZXR1cm5cclxuICAgIGlmICghcmVzdWx0LlN1Y2Nlc3MpIHtcclxuICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgdGhpcyBjb2RlIGlzIG5lZWRlZFxyXG4gICAgICAvLyBkZWZpbml0aW9uIDogZm9yIG5vbiBJbnRlcmFjdGl2ZSBhbmQgd2UgZ2V0IHByb2JsZW0gd2l0aCBFeGVjdXRlTG9jYWxVcGRhdGVzIGNvbW1hbmQgd2UgbmVlZCB0byBhYm9ydCB0aGUgdGFzay5cclxuICAgICAgaWYgKCF0aGlzLnRhc2suSXNJbnRlcmFjdGl2ZSlcclxuICAgICAgICB0aGlzLnRhc2suYWJvcnQoKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZWZSZXN1bHQ6IFJlZlBhcmFtPFJldHVyblJlc3VsdD4gPSBuZXcgUmVmUGFyYW0ocmVzdWx0KTtcclxuXHJcbiAgICBsZXQgcmV0OiBib29sZWFuID0gYXdhaXQgdGhpcy5jaGVja0FuZENvbW1pdFBlckRhdGF2aWV3KHRoaXMudGFzay5EYXRhdmlld01hbmFnZXIuUmVtb3RlRGF0YXZpZXdNYW5hZ2VyLCByZXZlcnNpYmxlRXhpdCwgbGV2ZWwsIG9wZXIsIHJlZlJlc3VsdCk7XHJcbiAgICByZXN1bHQgPSByZWZSZXN1bHQudmFsdWU7XHJcblxyXG4gICAgLy8vIHJlbGV2YW50IGZvciByZW1vdGUgb25seVxyXG4gICAgaWYgKCFyZXQpIHtcclxuICAgICAgLy8gSWYgd2UgbW9kaWZpZWQgdGhlIHJlY29yZCBidXQgZGlkbid0IGZsdXNoIGl0IHlldCBldmVuIHRob3VnaCB3ZSBzaG91bGQgaGF2ZSAtXHJcbiAgICAgIC8vIHNlbmQgaXQgbm93LlxyXG4gICAgICBpZiAobGV2ZWwgPT09IENvbnN0SW50ZXJmYWNlLlRSQU5TX1JFQ09SRF9QUkVGSVggJiYgKDxEYXRhVmlldz50aGlzLnRhc2suRGF0YVZpZXcpLm1vZGlmaWVkUmVjb3Jkc051bWJlcigpID4gMCAmJiAoPERhdGFWaWV3PnRoaXMudGFzay5EYXRhVmlldykuRmx1c2hVcGRhdGVzKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIHRoaXMudGFzay5UcnlpbmdUb0NvbW1pdCA9IHRydWU7XHJcbiAgICAgICAgICBhd2FpdCBSZW1vdGVDb21tYW5kc1Byb2Nlc3Nvci5HZXRJbnN0YW5jZSgpLkV4ZWN1dGUoQ29tbWFuZHNQcm9jZXNzb3JCYXNlX1NlbmRpbmdJbnN0cnVjdGlvbi5UQVNLU19BTkRfQ09NTUFORFMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZmluYWxseSB7XHJcbiAgICAgICAgICB0aGlzLnRhc2suVHJ5aW5nVG9Db21taXQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgbWV0aG9kIGlzIG5lZWRlZFxyXG4gIC8vLyBleGVjdXRlIHRoZSBsb2NhbCB1cGRmYXRlcyBjb21tYW5kXHJcbiAgYXN5bmMgRXhlY3V0ZUxvY2FsVXBkYXRlc0NvbW1hbmQoKTogUHJvbWlzZTxSZXR1cm5SZXN1bHQ+IHtcclxuICAgIGxldCBjb21tYW5kOiBJQ2xpZW50Q29tbWFuZCA9IENvbW1hbmRGYWN0b3J5LkNyZWF0ZURhdGFWaWV3Q29tbWFuZCh0aGlzLnRhc2suZ2V0VGFza1RhZygpLCBEYXRhVmlld0NvbW1hbmRUeXBlLkV4ZWN1dGVMb2NhbFVwZGF0ZXMpO1xyXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudGFzay5EYXRhdmlld01hbmFnZXIuRXhlY3V0ZShjb21tYW5kKTtcclxuICB9XHJcblxyXG4gIC8vLyA8c3VtbWFyeT5cclxuICAvLy9cclxuICAvLy8gPC9zdW1tYXJ5PlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImRhdGF2aWV3bWFuYWdlclwiPjwvcGFyYW0+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwicmV2ZXJzaWJsZUV4aXRcIj48L3BhcmFtPlxyXG4gIC8vLyA8cGFyYW0gbmFtZT1cImxldmVsXCI+PC9wYXJhbT5cclxuICAvLy8gPHBhcmFtIG5hbWU9XCJvcGVyXCI+PC9wYXJhbT5cclxuICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPlxyXG4gIGFzeW5jIGNoZWNrQW5kQ29tbWl0UGVyRGF0YXZpZXcoZGF0YXZpZXdtYW5hZ2VyOiBEYXRhdmlld01hbmFnZXJCYXNlLCByZXZlcnNpYmxlRXhpdDogYm9vbGVhbiwgbGV2ZWw6IHN0cmluZywgb3Blcjogc3RyaW5nLCByZWZSZXN1bHQ6IFJlZlBhcmFtPFJldHVyblJlc3VsdD4pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJlZlJlc3VsdC52YWx1ZSA9IG5ldyBSZXR1cm5SZXN1bHQoKTtcclxuICAgIGxldCByZXR1cm5WYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBjdXJyZW50VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uID0gZGF0YXZpZXdtYW5hZ2VyLlRyYW5zYWN0aW9uO1xyXG4gICAgaWYgKGN1cnJlbnRUcmFuc2FjdGlvbiAhPT0gbnVsbCAmJiAhdGhpcy50YXNrLmlzQWJvcnRpbmcoKSAmJlxyXG4gICAgICAgIGN1cnJlbnRUcmFuc2FjdGlvbi5pc09wZW5lZCgpICYmIGN1cnJlbnRUcmFuc2FjdGlvbi5pc093bmVyKHRoaXMudGFzaykgJiZcclxuICAgICAgICBjdXJyZW50VHJhbnNhY3Rpb24uZ2V0TGV2ZWwoKSA9PT0gbGV2ZWwpIHtcclxuICAgICAgbGV0IGNtZDogSUNsaWVudENvbW1hbmQgPSBDb21tYW5kRmFjdG9yeS5DcmVhdGVUcmFuc2FjdGlvbkNvbW1hbmQob3BlciwgdGhpcy50YXNrLmdldFRhc2tUYWcoKSwgcmV2ZXJzaWJsZUV4aXQsIGxldmVsKTtcclxuXHJcbiAgICAgIC8vIFdoaWxlIGNvbW1pdHRpbmcgdGhlIHRyYW5zYWN0aW9uIGluIGxhc3QgcmVxdWVzdCwganVzdCBzZXJpYWxpemUgdGhlIGNvbW1hbmQgYW5kIGRvbid0IGV4ZWN1dGUgaXQgaW1tZWRpYXRlbHlcclxuICAgICAgaWYodGhpcy5pc0Nsb3NpbmdUb3Btb3N0VGFzayAmJiBNR0RhdGFDb2xsZWN0aW9uLkluc3RhbmNlLlN0YXJ0dXBNZ0RhdGEuZ2V0Rmlyc3RUYXNrKCkuQ2xvc2luZ0Zvcm1VSSlcclxuICAgICAgICB0aGlzLnRhc2suZ2V0TUdEYXRhKCkuQ21kc1RvU2VydmVyLkFkZChjbWQpO1xyXG5cclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLnRhc2suVHJ5aW5nVG9Db21taXQgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZighKHRoaXMuaXNDbG9zaW5nVG9wbW9zdFRhc2sgJiYgTUdEYXRhQ29sbGVjdGlvbi5JbnN0YW5jZS5TdGFydHVwTWdEYXRhLmdldEZpcnN0VGFzaygpLkNsb3NpbmdGb3JtVUkpKVxyXG4gICAgICAgICAgcmVmUmVzdWx0LnZhbHVlID0gYXdhaXQgZGF0YXZpZXdtYW5hZ2VyLkV4ZWN1dGUoY21kKTtcclxuICAgICAgfVxyXG4gICAgICBmaW5hbGx5IHtcclxuICAgICAgICAvLyBEb24ndCBjYXRjaCBhbnkgZXhjZXB0aW9uIGhlcmUuIEp1c3QgdHVybiBvZmYgdGhlIFwidHJ5aW5nVG9Db21taXRcIiBmbGFnLlxyXG4gICAgICAgIHRoaXMudGFzay5UcnlpbmdUb0NvbW1pdCA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm5WYWx1ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8vIDxzdW1tYXJ5PlxyXG4gIC8vIHdoaWxlIHdlIGRvbid0IGhhdmUgdHJhbnNhY3Rpb24gd2UgbXVzdCBmYWlsZCBzdGFjayBvbiB0aGUgcmVjb3JkKHNhbWUgYXMgd2UgZG9pbmcgZm9yIGR1cGxpY2F0ZSBpbmRleClcclxuICAvLyBzbyB3ZSBjcmVhdGUgVHJhbnNhY3Rpb25FcnJvckhhbmRsaW5nc1JldHJ5IGFuZCB3ZSB1c2UgdGhpcyBkdW1teSB0cmFuc2FjdGlvblxyXG4gIC8vLyA8L3N1bW1hcnk+XHJcbiAgLy8vIDxwYXJhbSBuYW1lPVwidHJhbnNCZWdpblwiPjwvcGFyYW0+XHJcbiAgLy8vIDxyZXR1cm5zPjwvcmV0dXJucz5cclxuICBIYW5kZWxUcmFuc2FjdGlvbkVycm9ySGFuZGxpbmdzUmV0cnkodHJhbnNCZWdpbjogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIGxldCB0YXNrOiBUYXNrQmFzZSA9IHRoaXMudGFzaztcclxuICAgIGlmICh0YXNrLlRyYW5zYWN0aW9uID09PSBudWxsICYmIHRyYW5zQmVnaW5bMF0gPT09IENvbnN0SW50ZXJmYWNlLlRSQU5TX05PTkUpIHtcclxuICAgICAgdGFzay5UcmFuc2FjdGlvbkVycm9ySGFuZGxpbmdzUmV0cnkgPSBuZXcgVHJhbnNhY3Rpb24odGFzaywgdGFzay5nZXRUYXNrVGFnKCkpO1xyXG4gICAgICB0YXNrLlRyYW5zYWN0aW9uRXJyb3JIYW5kbGluZ3NSZXRyeS5zZXRUcmFuc0JlZ2luKENvbnN0SW50ZXJmYWNlLlRSQU5TX1JFQ09SRF9QUkVGSVgpO1xyXG4gICAgICB0cmFuc0JlZ2luWzBdID0gQ29uc3RJbnRlcmZhY2UuVFJBTlNfUkVDT1JEX1BSRUZJWDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|