@sapui5/sap.fe.test 1.108.2 → 1.110.0
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/README.md +5 -1
- package/package.json +9 -7
- package/src/sap/fe/test/.library +17 -18
- package/src/sap/fe/test/BaseActions.js +3 -2
- package/src/sap/fe/test/BaseArrangements.js +3 -2
- package/src/sap/fe/test/BaseAssertions.js +26 -2
- package/src/sap/fe/test/CollaborationClient.js +21 -5
- package/src/sap/fe/test/CollaborationClient.ts +29 -1
- package/src/sap/fe/test/ConfirmDialog.js +12 -11
- package/src/sap/fe/test/FCLView.js +16 -15
- package/src/sap/fe/test/FeMocks.js +1 -11
- package/src/sap/fe/test/Flexibility.js +12 -7
- package/src/sap/fe/test/FlexibleColumnLayout.js +12 -11
- package/src/sap/fe/test/JestFlexibilityHelper.js +141 -0
- package/src/sap/fe/test/JestFlexibilityHelper.ts +135 -0
- package/src/sap/fe/test/JestTemplatingHelper.js +191 -207
- package/src/sap/fe/test/JestTemplatingHelper.ts +171 -91
- package/src/sap/fe/test/JourneyRunner.js +3 -2
- package/src/sap/fe/test/ListReport.js +3 -2
- package/src/sap/fe/test/LocationUtil.js +3 -2
- package/src/sap/fe/test/ObjectPage.js +129 -26
- package/src/sap/fe/test/Shell.js +9 -4
- package/src/sap/fe/test/Stubs.js +18 -17
- package/src/sap/fe/test/TemplatePage.js +3 -2
- package/src/sap/fe/test/TemplatingTestUtils.js +3 -2
- package/src/sap/fe/test/UI5MockHelper.js +39 -72
- package/src/sap/fe/test/UI5MockHelper.ts +3 -0
- package/src/sap/fe/test/Utils.js +4 -3
- package/src/sap/fe/test/api/APIHelper.js +3 -2
- package/src/sap/fe/test/api/BaseAPI.js +3 -2
- package/src/sap/fe/test/api/ChartActions.js +3 -2
- package/src/sap/fe/test/api/ChartAssertions.js +3 -2
- package/src/sap/fe/test/api/CollaborationAPI.js +2 -30
- package/src/sap/fe/test/api/DialogAPI.js +3 -2
- package/src/sap/fe/test/api/DialogActions.js +3 -2
- package/src/sap/fe/test/api/DialogAssertions.js +4 -3
- package/src/sap/fe/test/api/DialogCreateActions.js +6 -5
- package/src/sap/fe/test/api/DialogCreateAssertions.js +48 -49
- package/src/sap/fe/test/api/DialogHelper.js +4 -3
- package/src/sap/fe/test/api/DialogMassEditActions.js +3 -2
- package/src/sap/fe/test/api/DialogMassEditAssertions.js +3 -2
- package/src/sap/fe/test/api/DialogMessageActions.js +3 -2
- package/src/sap/fe/test/api/DialogMessageAssertions.js +82 -79
- package/src/sap/fe/test/api/DialogType.js +3 -2
- package/src/sap/fe/test/api/DialogValueHelpActions.js +3 -2
- package/src/sap/fe/test/api/DialogValueHelpAssertions.js +3 -2
- package/src/sap/fe/test/api/EditState.js +4 -3
- package/src/sap/fe/test/api/FilterBarAPI.js +3 -2
- package/src/sap/fe/test/api/FilterBarActions.js +3 -2
- package/src/sap/fe/test/api/FilterBarAssertions.js +3 -2
- package/src/sap/fe/test/api/FooterAPI.js +5 -4
- package/src/sap/fe/test/api/FooterActionsBase.js +3 -2
- package/src/sap/fe/test/api/FooterActionsOP.js +3 -2
- package/src/sap/fe/test/api/FooterAssertionsBase.js +3 -2
- package/src/sap/fe/test/api/FooterAssertionsOP.js +3 -2
- package/src/sap/fe/test/api/FormAPI.js +4 -2
- package/src/sap/fe/test/api/FormActions.js +3 -2
- package/src/sap/fe/test/api/FormAssertions.js +3 -2
- package/src/sap/fe/test/api/HeaderAPI.js +3 -2
- package/src/sap/fe/test/api/HeaderActions.js +3 -2
- package/src/sap/fe/test/api/HeaderActionsLR.js +3 -2
- package/src/sap/fe/test/api/HeaderAssertions.js +3 -2
- package/src/sap/fe/test/api/HeaderAssertionsLR.js +3 -2
- package/src/sap/fe/test/api/HeaderLR.js +3 -2
- package/src/sap/fe/test/api/KPICardAPI.js +5 -4
- package/src/sap/fe/test/api/KPICardActions.js +7 -11
- package/src/sap/fe/test/api/KPICardAssertions.js +3 -2
- package/src/sap/fe/test/api/TableAPI.js +5 -4
- package/src/sap/fe/test/api/TableActions.js +16 -9
- package/src/sap/fe/test/api/TableAssertions.js +8 -7
- package/src/sap/fe/test/builder/DialogBuilder.js +99 -102
- package/src/sap/fe/test/builder/FEBuilder.js +3 -2
- package/src/sap/fe/test/builder/KPIBuilder.js +16 -25
- package/src/sap/fe/test/builder/MacroFieldBuilder.js +4 -2
- package/src/sap/fe/test/builder/MdcFieldBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcFilterBarBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcFilterFieldBuilder.js +3 -2
- package/src/sap/fe/test/builder/MdcTableBuilder.js +196 -96
- package/src/sap/fe/test/builder/OverflowToolbarBuilder.js +3 -2
- package/src/sap/fe/test/builder/VMBuilder.js +3 -2
- package/src/sap/fe/test/internal/ConsoleErrorChecker.js +13 -48
- package/src/sap/fe/test/internal/FEArrangements.js +3 -2
- package/src/sap/fe/test/internal/FEJourneyRunner.js +5 -3
- package/src/sap/fe/test/library.js +3 -2
|
@@ -9,14 +9,12 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
9
9
|
var initializeCollaboration = ActivityBase.initializeCollaboration;
|
|
10
10
|
var endCollaboration = ActivityBase.endCollaboration;
|
|
11
11
|
var broadcastCollaborationMessage = ActivityBase.broadcastCollaborationMessage;
|
|
12
|
-
|
|
13
12
|
var CollaborationAPI = {
|
|
14
13
|
_lastReceivedMessage: undefined,
|
|
15
14
|
_rootPath: "",
|
|
16
15
|
_oModel: undefined,
|
|
17
16
|
_lockedPropertyPath: "",
|
|
18
17
|
_internalModel: undefined,
|
|
19
|
-
|
|
20
18
|
/**
|
|
21
19
|
* Open an existing collaborative draft with a new user, and creates a 'ghost client' for this user.
|
|
22
20
|
*
|
|
@@ -26,12 +24,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
26
24
|
*/
|
|
27
25
|
enterDraft: function (oContext, userID, userName) {
|
|
28
26
|
var webSocketBaseURL = oContext.getModel().getMetaModel().getObject("/@com.sap.vocabularies.Common.v1.WebSocketBaseURL");
|
|
29
|
-
|
|
30
27
|
if (!webSocketBaseURL) {
|
|
31
28
|
Log.error("Cannot find WebSocketBaseURL annotation");
|
|
32
29
|
return;
|
|
33
30
|
}
|
|
34
|
-
|
|
35
31
|
var sDraftUUID = oContext.getProperty("DraftAdministrativeData/DraftUUID");
|
|
36
32
|
this._internalModel = new JSONModel({});
|
|
37
33
|
var serviceUrl = oContext.getModel().getServiceUrl();
|
|
@@ -43,7 +39,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
43
39
|
this._rootPath = oContext.getPath();
|
|
44
40
|
this._oModel = oContext.getModel();
|
|
45
41
|
},
|
|
46
|
-
|
|
47
42
|
/**
|
|
48
43
|
* Checks if the ghost client has revieved a given message.
|
|
49
44
|
*
|
|
@@ -54,26 +49,21 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
54
49
|
if (!this._lastReceivedMessage) {
|
|
55
50
|
return false;
|
|
56
51
|
}
|
|
57
|
-
|
|
58
52
|
var found = (!message.userID || message.userID === this._lastReceivedMessage.userID) && (!message.userAction || message.userAction === this._lastReceivedMessage.userAction) && (!message.clientContent || message.clientContent === this._lastReceivedMessage.clientContent);
|
|
59
53
|
this._lastReceivedMessage = undefined; // reset history to avoid finding the same message twice
|
|
60
54
|
|
|
61
55
|
return found;
|
|
62
56
|
},
|
|
63
|
-
|
|
64
57
|
/**
|
|
65
58
|
* Closes the ghost client and removes the user from the collaborative draft.
|
|
66
59
|
*/
|
|
67
60
|
leaveDraft: function () {
|
|
68
61
|
if (this._internalModel) {
|
|
69
62
|
endCollaboration(this._internalModel);
|
|
70
|
-
|
|
71
63
|
this._internalModel.destroy();
|
|
72
|
-
|
|
73
64
|
this._internalModel = undefined;
|
|
74
65
|
}
|
|
75
66
|
},
|
|
76
|
-
|
|
77
67
|
/**
|
|
78
68
|
* Simulates that the user starts typing in an input (live change).
|
|
79
69
|
*
|
|
@@ -85,12 +75,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
85
75
|
// Unlock previous property path
|
|
86
76
|
this.undoChange();
|
|
87
77
|
}
|
|
88
|
-
|
|
89
78
|
this._lockedPropertyPath = sPropertyPath;
|
|
90
79
|
broadcastCollaborationMessage(Activity.LiveChange, "".concat(this._rootPath, "/").concat(sPropertyPath), this._internalModel);
|
|
91
80
|
}
|
|
92
81
|
},
|
|
93
|
-
|
|
94
82
|
/**
|
|
95
83
|
* Simulates that the user has modified a property.
|
|
96
84
|
*
|
|
@@ -99,20 +87,16 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
99
87
|
*/
|
|
100
88
|
updatePropertyValue: function (sPropertyPath, value) {
|
|
101
89
|
var _this = this;
|
|
102
|
-
|
|
103
90
|
if (this._internalModel) {
|
|
104
91
|
if (this._lockedPropertyPath !== sPropertyPath) {
|
|
105
92
|
this.startLiveChange(sPropertyPath);
|
|
106
93
|
}
|
|
107
|
-
|
|
108
94
|
var oContextBinding = this._oModel.bindContext(this._rootPath, undefined, {
|
|
109
95
|
$$patchWithoutSideEffects: true,
|
|
110
96
|
$$groupId: "$auto",
|
|
111
97
|
$$updateGroupId: "$auto"
|
|
112
98
|
});
|
|
113
|
-
|
|
114
99
|
var oPropertyBinding = this._oModel.bindProperty(sPropertyPath, oContextBinding.getBoundContext());
|
|
115
|
-
|
|
116
100
|
oPropertyBinding.requestValue().then(function () {
|
|
117
101
|
oPropertyBinding.setValue(value);
|
|
118
102
|
oContextBinding.attachEventOnce("patchCompleted", function () {
|
|
@@ -124,7 +108,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
124
108
|
});
|
|
125
109
|
}
|
|
126
110
|
},
|
|
127
|
-
|
|
128
111
|
/**
|
|
129
112
|
* Simulates that the user did an 'undo' (to be called after startLiveChange).
|
|
130
113
|
*/
|
|
@@ -134,39 +117,31 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
134
117
|
this._lockedPropertyPath = "";
|
|
135
118
|
}
|
|
136
119
|
},
|
|
137
|
-
|
|
138
120
|
/**
|
|
139
121
|
* Simulates that the user has discarded the draft.
|
|
140
122
|
*/
|
|
141
123
|
discardDraft: function () {
|
|
142
124
|
var _this2 = this;
|
|
143
|
-
|
|
144
125
|
if (this._internalModel) {
|
|
145
126
|
var draftContext = this._getDraftContext();
|
|
146
|
-
|
|
147
127
|
draftContext.requestProperty("IsActiveEntity").then(function () {
|
|
148
128
|
draft.deleteDraft(draftContext);
|
|
149
129
|
}).then(function () {
|
|
150
130
|
broadcastCollaborationMessage(Activity.Discard, _this2._rootPath.replace("IsActiveEntity=false", "IsActiveEntity=true"), _this2._internalModel);
|
|
151
|
-
|
|
152
131
|
_this2._internalModel.destroy();
|
|
153
|
-
|
|
154
132
|
_this2._internalModel = undefined;
|
|
155
133
|
}).catch(function (err) {
|
|
156
134
|
Log.error(err);
|
|
157
135
|
});
|
|
158
136
|
}
|
|
159
137
|
},
|
|
160
|
-
|
|
161
138
|
/**
|
|
162
139
|
* Simulates that the user has deleted the draft.
|
|
163
140
|
*/
|
|
164
141
|
deleteDraft: function () {
|
|
165
142
|
var _this3 = this;
|
|
166
|
-
|
|
167
143
|
if (this._internalModel) {
|
|
168
144
|
var draftContext = this._getDraftContext();
|
|
169
|
-
|
|
170
145
|
var activeContext;
|
|
171
146
|
draftContext.requestProperty("IsActiveEntity").then(function () {
|
|
172
147
|
return draftContext.getModel().bindContext("".concat(_this3._rootPath, "/SiblingEntity")).getBoundContext();
|
|
@@ -178,9 +153,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
178
153
|
}).then(function () {
|
|
179
154
|
activeContext.delete();
|
|
180
155
|
broadcastCollaborationMessage(Activity.Delete, _this3._rootPath, _this3._internalModel);
|
|
181
|
-
|
|
182
156
|
_this3._internalModel.destroy();
|
|
183
|
-
|
|
184
157
|
_this3._internalModel = undefined;
|
|
185
158
|
}).catch(function (err) {
|
|
186
159
|
Log.error(err);
|
|
@@ -189,6 +162,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
189
162
|
},
|
|
190
163
|
// /////////////////////////////
|
|
191
164
|
// Private methods
|
|
165
|
+
|
|
192
166
|
_getDraftContext: function () {
|
|
193
167
|
return this._oModel.bindContext(this._rootPath, undefined, {
|
|
194
168
|
$$patchWithoutSideEffects: true,
|
|
@@ -196,7 +170,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
196
170
|
$$updateGroupId: "$auto"
|
|
197
171
|
}).getBoundContext();
|
|
198
172
|
},
|
|
199
|
-
|
|
200
173
|
/**
|
|
201
174
|
* Callback of the ghost client when receiving a message on the web socket.
|
|
202
175
|
*
|
|
@@ -205,7 +178,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
205
178
|
_onMessageReceived: function (oMessage) {
|
|
206
179
|
oMessage.userAction = oMessage.userAction || oMessage.clientAction;
|
|
207
180
|
this._lastReceivedMessage = oMessage;
|
|
208
|
-
|
|
209
181
|
if (oMessage.userAction === Activity.Join) {
|
|
210
182
|
broadcastCollaborationMessage(Activity.JoinEcho, this._lockedPropertyPath ? "".concat(this._rootPath, "/").concat(this._lockedPropertyPath) : undefined, this._internalModel);
|
|
211
183
|
}
|
|
@@ -213,4 +185,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/controllerextensions/collaboration/A
|
|
|
213
185
|
};
|
|
214
186
|
return CollaborationAPI;
|
|
215
187
|
}, false);
|
|
216
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aW9uQVBJIiwiX2xhc3RSZWNlaXZlZE1lc3NhZ2UiLCJ1bmRlZmluZWQiLCJfcm9vdFBhdGgiLCJfb01vZGVsIiwiX2xvY2tlZFByb3BlcnR5UGF0aCIsIl9pbnRlcm5hbE1vZGVsIiwiZW50ZXJEcmFmdCIsIm9Db250ZXh0IiwidXNlcklEIiwidXNlck5hbWUiLCJ3ZWJTb2NrZXRCYXNlVVJMIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJnZXRPYmplY3QiLCJMb2ciLCJlcnJvciIsInNEcmFmdFVVSUQiLCJnZXRQcm9wZXJ0eSIsIkpTT05Nb2RlbCIsInNlcnZpY2VVcmwiLCJnZXRTZXJ2aWNlVXJsIiwiaW5pdGlhbGl6ZUNvbGxhYm9yYXRpb24iLCJpZCIsIm5hbWUiLCJpbml0aWFsTmFtZSIsIl9vbk1lc3NhZ2VSZWNlaXZlZCIsImJpbmQiLCJnZXRQYXRoIiwiY2hlY2tSZWNlaXZlZCIsIm1lc3NhZ2UiLCJmb3VuZCIsInVzZXJBY3Rpb24iLCJjbGllbnRDb250ZW50IiwibGVhdmVEcmFmdCIsImVuZENvbGxhYm9yYXRpb24iLCJkZXN0cm95Iiwic3RhcnRMaXZlQ2hhbmdlIiwic1Byb3BlcnR5UGF0aCIsInVuZG9DaGFuZ2UiLCJicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZSIsIkFjdGl2aXR5IiwiTGl2ZUNoYW5nZSIsInVwZGF0ZVByb3BlcnR5VmFsdWUiLCJ2YWx1ZSIsIm9Db250ZXh0QmluZGluZyIsImJpbmRDb250ZXh0IiwiJCRwYXRjaFdpdGhvdXRTaWRlRWZmZWN0cyIsIiQkZ3JvdXBJZCIsIiQkdXBkYXRlR3JvdXBJZCIsIm9Qcm9wZXJ0eUJpbmRpbmciLCJiaW5kUHJvcGVydHkiLCJnZXRCb3VuZENvbnRleHQiLCJyZXF1ZXN0VmFsdWUiLCJ0aGVuIiwic2V0VmFsdWUiLCJhdHRhY2hFdmVudE9uY2UiLCJDaGFuZ2UiLCJjYXRjaCIsImVyciIsIlVuZG8iLCJkaXNjYXJkRHJhZnQiLCJkcmFmdENvbnRleHQiLCJfZ2V0RHJhZnRDb250ZXh0IiwicmVxdWVzdFByb3BlcnR5IiwiZHJhZnQiLCJkZWxldGVEcmFmdCIsIkRpc2NhcmQiLCJyZXBsYWNlIiwiYWN0aXZlQ29udGV4dCIsImNvbnRleHQiLCJyZXF1ZXN0Q2Fub25pY2FsUGF0aCIsImRlbGV0ZSIsIkRlbGV0ZSIsIm9NZXNzYWdlIiwiY2xpZW50QWN0aW9uIiwiSm9pbiIsIkpvaW5FY2hvIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDb2xsYWJvcmF0aW9uQVBJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHtcblx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UsXG5cdGVuZENvbGxhYm9yYXRpb24sXG5cdGluaXRpYWxpemVDb2xsYWJvcmF0aW9uXG59IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0FjdGl2aXR5QmFzZVwiO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQ29sbGFib3JhdGlvbkNvbW1vblwiO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgZHJhZnQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2VkaXRGbG93L2RyYWZ0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IFY0Q29udGV4dCB9IGZyb20gXCJ0eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcblxuY29uc3QgQ29sbGFib3JhdGlvbkFQSSA9IHtcblx0X2xhc3RSZWNlaXZlZE1lc3NhZ2U6IHVuZGVmaW5lZCBhcyBNZXNzYWdlIHwgdW5kZWZpbmVkLFxuXHRfcm9vdFBhdGg6IFwiXCIsXG5cdF9vTW9kZWw6IHVuZGVmaW5lZCBhcyBPRGF0YU1vZGVsIHwgdW5kZWZpbmVkLFxuXHRfbG9ja2VkUHJvcGVydHlQYXRoOiBcIlwiLFxuXHRfaW50ZXJuYWxNb2RlbDogdW5kZWZpbmVkIGFzIEpTT05Nb2RlbCB8IHVuZGVmaW5lZCxcblxuXHQvKipcblx0ICogT3BlbiBhbiBleGlzdGluZyBjb2xsYWJvcmF0aXZlIGRyYWZ0IHdpdGggYSBuZXcgdXNlciwgYW5kIGNyZWF0ZXMgYSAnZ2hvc3QgY2xpZW50JyBmb3IgdGhpcyB1c2VyLlxuXHQgKlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgVGhlIGNvbnRleHQgb2YgdGhlIGNvbGxhYm9yYXRpdmUgZHJhZnRcblx0ICogQHBhcmFtIHVzZXJJRCBUaGUgSUQgb2YgdGhlIHVzZXJcblx0ICogQHBhcmFtIHVzZXJOYW1lIFRoZSBuYW1lIG9mIHRoZSB1c2VyXG5cdCAqL1xuXHRlbnRlckRyYWZ0OiBmdW5jdGlvbiAob0NvbnRleHQ6IFY0Q29udGV4dCwgdXNlcklEOiBzdHJpbmcsIHVzZXJOYW1lOiBzdHJpbmcpIHtcblx0XHRjb25zdCB3ZWJTb2NrZXRCYXNlVVJMOiBzdHJpbmcgPSBvQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLmdldE9iamVjdChcIi9AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLldlYlNvY2tldEJhc2VVUkxcIik7XG5cblx0XHRpZiAoIXdlYlNvY2tldEJhc2VVUkwpIHtcblx0XHRcdExvZy5lcnJvcihcIkNhbm5vdCBmaW5kIFdlYlNvY2tldEJhc2VVUkwgYW5ub3RhdGlvblwiKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBzRHJhZnRVVUlEOiBzdHJpbmcgPSBvQ29udGV4dC5nZXRQcm9wZXJ0eShcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0VVVJRFwiKTtcblx0XHR0aGlzLl9pbnRlcm5hbE1vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSk7XG5cblx0XHRjb25zdCBzZXJ2aWNlVXJsID0gb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRTZXJ2aWNlVXJsKCk7XG5cblx0XHRpbml0aWFsaXplQ29sbGFib3JhdGlvbihcblx0XHRcdHtcblx0XHRcdFx0aWQ6IHVzZXJJRCxcblx0XHRcdFx0bmFtZTogdXNlck5hbWUsXG5cdFx0XHRcdGluaXRpYWxOYW1lOiB1c2VyTmFtZVxuXHRcdFx0fSxcblx0XHRcdHdlYlNvY2tldEJhc2VVUkwsXG5cdFx0XHRzRHJhZnRVVUlELFxuXHRcdFx0c2VydmljZVVybCxcblx0XHRcdHRoaXMuX2ludGVybmFsTW9kZWwsXG5cdFx0XHR0aGlzLl9vbk1lc3NhZ2VSZWNlaXZlZC5iaW5kKHRoaXMpLFxuXHRcdFx0dHJ1ZVxuXHRcdCk7XG5cblx0XHR0aGlzLl9yb290UGF0aCA9IG9Db250ZXh0LmdldFBhdGgoKTtcblx0XHR0aGlzLl9vTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWw7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgZ2hvc3QgY2xpZW50IGhhcyByZXZpZXZlZCBhIGdpdmVuIG1lc3NhZ2UuXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIGNvbnRlbnQgdG8gYmUgbG9va2VkIGZvclxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBsYXN0IHJlY2lldmVkIG1lc3NhZ2UgbWF0Y2hlcyB0aGUgY29udGVudFxuXHQgKi9cblx0Y2hlY2tSZWNlaXZlZDogZnVuY3Rpb24gKG1lc3NhZ2U6IFBhcnRpYWw8TWVzc2FnZT4pOiBib29sZWFuIHtcblx0XHRpZiAoIXRoaXMuX2xhc3RSZWNlaXZlZE1lc3NhZ2UpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRjb25zdCBmb3VuZCA9XG5cdFx0XHQoIW1lc3NhZ2UudXNlcklEIHx8IG1lc3NhZ2UudXNlcklEID09PSB0aGlzLl9sYXN0UmVjZWl2ZWRNZXNzYWdlLnVzZXJJRCkgJiZcblx0XHRcdCghbWVzc2FnZS51c2VyQWN0aW9uIHx8IG1lc3NhZ2UudXNlckFjdGlvbiA9PT0gdGhpcy5fbGFzdFJlY2VpdmVkTWVzc2FnZS51c2VyQWN0aW9uKSAmJlxuXHRcdFx0KCFtZXNzYWdlLmNsaWVudENvbnRlbnQgfHwgbWVzc2FnZS5jbGllbnRDb250ZW50ID09PSB0aGlzLl9sYXN0UmVjZWl2ZWRNZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXG5cdFx0dGhpcy5fbGFzdFJlY2VpdmVkTWVzc2FnZSA9IHVuZGVmaW5lZDsgLy8gcmVzZXQgaGlzdG9yeSB0byBhdm9pZCBmaW5kaW5nIHRoZSBzYW1lIG1lc3NhZ2UgdHdpY2VcblxuXHRcdHJldHVybiBmb3VuZDtcblx0fSxcblxuXHQvKipcblx0ICogQ2xvc2VzIHRoZSBnaG9zdCBjbGllbnQgYW5kIHJlbW92ZXMgdGhlIHVzZXIgZnJvbSB0aGUgY29sbGFib3JhdGl2ZSBkcmFmdC5cblx0ICovXG5cdGxlYXZlRHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0ZW5kQ29sbGFib3JhdGlvbih0aGlzLl9pbnRlcm5hbE1vZGVsKTtcblx0XHRcdHRoaXMuX2ludGVybmFsTW9kZWwuZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5faW50ZXJuYWxNb2RlbCA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNpbXVsYXRlcyB0aGF0IHRoZSB1c2VyIHN0YXJ0cyB0eXBpbmcgaW4gYW4gaW5wdXQgKGxpdmUgY2hhbmdlKS5cblx0ICpcblx0ICogQHBhcmFtIHNQcm9wZXJ0eVBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IGJlaW5nIG1vZGlmaWVkXG5cdCAqL1xuXHRzdGFydExpdmVDaGFuZ2U6IGZ1bmN0aW9uIChzUHJvcGVydHlQYXRoOiBzdHJpbmcpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0aWYgKHRoaXMuX2xvY2tlZFByb3BlcnR5UGF0aCkge1xuXHRcdFx0XHQvLyBVbmxvY2sgcHJldmlvdXMgcHJvcGVydHkgcGF0aFxuXHRcdFx0XHR0aGlzLnVuZG9DaGFuZ2UoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuX2xvY2tlZFByb3BlcnR5UGF0aCA9IHNQcm9wZXJ0eVBhdGg7XG5cdFx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShBY3Rpdml0eS5MaXZlQ2hhbmdlLCBgJHt0aGlzLl9yb290UGF0aH0vJHtzUHJvcGVydHlQYXRofWAsIHRoaXMuX2ludGVybmFsTW9kZWwpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogU2ltdWxhdGVzIHRoYXQgdGhlIHVzZXIgaGFzIG1vZGlmaWVkIGEgcHJvcGVydHkuXG5cdCAqXG5cdCAqIEBwYXJhbSBzUHJvcGVydHlQYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSBiZWluZyBtb2RpZmllZFxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgYmVpbmcgbW9kaWZpZWRcblx0ICovXG5cdHVwZGF0ZVByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIChzUHJvcGVydHlQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0aWYgKHRoaXMuX2xvY2tlZFByb3BlcnR5UGF0aCAhPT0gc1Byb3BlcnR5UGF0aCkge1xuXHRcdFx0XHR0aGlzLnN0YXJ0TGl2ZUNoYW5nZShzUHJvcGVydHlQYXRoKTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3Qgb0NvbnRleHRCaW5kaW5nID0gdGhpcy5fb01vZGVsIS5iaW5kQ29udGV4dCh0aGlzLl9yb290UGF0aCwgdW5kZWZpbmVkLCB7XG5cdFx0XHRcdCQkcGF0Y2hXaXRob3V0U2lkZUVmZmVjdHM6IHRydWUsXG5cdFx0XHRcdCQkZ3JvdXBJZDogXCIkYXV0b1wiLFxuXHRcdFx0XHQkJHVwZGF0ZUdyb3VwSWQ6IFwiJGF1dG9cIlxuXHRcdFx0fSk7XG5cblx0XHRcdGNvbnN0IG9Qcm9wZXJ0eUJpbmRpbmcgPSB0aGlzLl9vTW9kZWwhLmJpbmRQcm9wZXJ0eShzUHJvcGVydHlQYXRoLCBvQ29udGV4dEJpbmRpbmcuZ2V0Qm91bmRDb250ZXh0KCkpO1xuXG5cdFx0XHRvUHJvcGVydHlCaW5kaW5nXG5cdFx0XHRcdC5yZXF1ZXN0VmFsdWUoKVxuXHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0b1Byb3BlcnR5QmluZGluZy5zZXRWYWx1ZSh2YWx1ZSk7XG5cdFx0XHRcdFx0b0NvbnRleHRCaW5kaW5nLmF0dGFjaEV2ZW50T25jZShcInBhdGNoQ29tcGxldGVkXCIsICgpID0+IHtcblx0XHRcdFx0XHRcdGJyb2FkY2FzdENvbGxhYm9yYXRpb25NZXNzYWdlKEFjdGl2aXR5LkNoYW5nZSwgYCR7dGhpcy5fcm9vdFBhdGh9LyR7c1Byb3BlcnR5UGF0aH1gLCB0aGlzLl9pbnRlcm5hbE1vZGVsISk7XG5cdFx0XHRcdFx0XHR0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGggPSBcIlwiO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycikge1xuXHRcdFx0XHRcdExvZy5lcnJvcihlcnIpO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNpbXVsYXRlcyB0aGF0IHRoZSB1c2VyIGRpZCBhbiAndW5kbycgKHRvIGJlIGNhbGxlZCBhZnRlciBzdGFydExpdmVDaGFuZ2UpLlxuXHQgKi9cblx0dW5kb0NoYW5nZTogZnVuY3Rpb24gKCkge1xuXHRcdGlmICh0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGgpIHtcblx0XHRcdGJyb2FkY2FzdENvbGxhYm9yYXRpb25NZXNzYWdlKEFjdGl2aXR5LlVuZG8sIGAke3RoaXMuX3Jvb3RQYXRofS8ke3RoaXMuX2xvY2tlZFByb3BlcnR5UGF0aH1gLCB0aGlzLl9pbnRlcm5hbE1vZGVsISk7XG5cdFx0XHR0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGggPSBcIlwiO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogU2ltdWxhdGVzIHRoYXQgdGhlIHVzZXIgaGFzIGRpc2NhcmRlZCB0aGUgZHJhZnQuXG5cdCAqL1xuXHRkaXNjYXJkRHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0Y29uc3QgZHJhZnRDb250ZXh0ID0gdGhpcy5fZ2V0RHJhZnRDb250ZXh0KCk7XG5cblx0XHRcdGRyYWZ0Q29udGV4dFxuXHRcdFx0XHQucmVxdWVzdFByb3BlcnR5KFwiSXNBY3RpdmVFbnRpdHlcIilcblx0XHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdGRyYWZ0LmRlbGV0ZURyYWZ0KGRyYWZ0Q29udGV4dCk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShcblx0XHRcdFx0XHRcdEFjdGl2aXR5LkRpc2NhcmQsXG5cdFx0XHRcdFx0XHR0aGlzLl9yb290UGF0aC5yZXBsYWNlKFwiSXNBY3RpdmVFbnRpdHk9ZmFsc2VcIiwgXCJJc0FjdGl2ZUVudGl0eT10cnVlXCIpLFxuXHRcdFx0XHRcdFx0dGhpcy5faW50ZXJuYWxNb2RlbCFcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHRoaXMuX2ludGVybmFsTW9kZWwhLmRlc3Ryb3koKTtcblx0XHRcdFx0XHR0aGlzLl9pbnRlcm5hbE1vZGVsID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycjogYW55KSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKGVycik7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogU2ltdWxhdGVzIHRoYXQgdGhlIHVzZXIgaGFzIGRlbGV0ZWQgdGhlIGRyYWZ0LlxuXHQgKi9cblx0ZGVsZXRlRHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0Y29uc3QgZHJhZnRDb250ZXh0ID0gdGhpcy5fZ2V0RHJhZnRDb250ZXh0KCk7XG5cdFx0XHRsZXQgYWN0aXZlQ29udGV4dDogVjRDb250ZXh0O1xuXG5cdFx0XHRkcmFmdENvbnRleHRcblx0XHRcdFx0LnJlcXVlc3RQcm9wZXJ0eShcIklzQWN0aXZlRW50aXR5XCIpXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gZHJhZnRDb250ZXh0LmdldE1vZGVsKCkuYmluZENvbnRleHQoYCR7dGhpcy5fcm9vdFBhdGh9L1NpYmxpbmdFbnRpdHlgKS5nZXRCb3VuZENvbnRleHQoKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4oKGNvbnRleHQ6IGFueSkgPT4ge1xuXHRcdFx0XHRcdGFjdGl2ZUNvbnRleHQgPSBjb250ZXh0O1xuXHRcdFx0XHRcdHJldHVybiBjb250ZXh0LnJlcXVlc3RDYW5vbmljYWxQYXRoKCk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gZHJhZnQuZGVsZXRlRHJhZnQoZHJhZnRDb250ZXh0KTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdChhY3RpdmVDb250ZXh0IGFzIGFueSkuZGVsZXRlKCk7XG5cdFx0XHRcdFx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UoQWN0aXZpdHkuRGVsZXRlLCB0aGlzLl9yb290UGF0aCwgdGhpcy5faW50ZXJuYWxNb2RlbCEpO1xuXHRcdFx0XHRcdHRoaXMuX2ludGVybmFsTW9kZWwhLmRlc3Ryb3koKTtcblx0XHRcdFx0XHR0aGlzLl9pbnRlcm5hbE1vZGVsID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycjogYW55KSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKGVycik7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblxuXHQvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXHQvLyBQcml2YXRlIG1ldGhvZHNcblxuXHRfZ2V0RHJhZnRDb250ZXh0OiBmdW5jdGlvbiAoKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5fb01vZGVsIS5iaW5kQ29udGV4dCh0aGlzLl9yb290UGF0aCwgdW5kZWZpbmVkLCB7XG5cdFx0XHQkJHBhdGNoV2l0aG91dFNpZGVFZmZlY3RzOiB0cnVlLFxuXHRcdFx0JCRncm91cElkOiBcIiRhdXRvXCIsXG5cdFx0XHQkJHVwZGF0ZUdyb3VwSWQ6IFwiJGF1dG9cIlxuXHRcdH0pLmdldEJvdW5kQ29udGV4dCgpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDYWxsYmFjayBvZiB0aGUgZ2hvc3QgY2xpZW50IHdoZW4gcmVjZWl2aW5nIGEgbWVzc2FnZSBvbiB0aGUgd2ViIHNvY2tldC5cblx0ICpcblx0ICogQHBhcmFtIG9NZXNzYWdlIFRoZSBtZXNzYWdlXG5cdCAqL1xuXHRfb25NZXNzYWdlUmVjZWl2ZWQ6IGZ1bmN0aW9uIChvTWVzc2FnZTogTWVzc2FnZSkge1xuXHRcdG9NZXNzYWdlLnVzZXJBY3Rpb24gPSBvTWVzc2FnZS51c2VyQWN0aW9uIHx8IG9NZXNzYWdlLmNsaWVudEFjdGlvbjtcblx0XHR0aGlzLl9sYXN0UmVjZWl2ZWRNZXNzYWdlID0gb01lc3NhZ2U7XG5cblx0XHRpZiAob01lc3NhZ2UudXNlckFjdGlvbiA9PT0gQWN0aXZpdHkuSm9pbikge1xuXHRcdFx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UoXG5cdFx0XHRcdEFjdGl2aXR5LkpvaW5FY2hvLFxuXHRcdFx0XHR0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGggPyBgJHt0aGlzLl9yb290UGF0aH0vJHt0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGh9YCA6IHVuZGVmaW5lZCxcblx0XHRcdFx0dGhpcy5faW50ZXJuYWxNb2RlbCFcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb2xsYWJvcmF0aW9uQVBJO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7RUFhQSxJQUFNQSxnQkFBZ0IsR0FBRztJQUN4QkMsb0JBQW9CLEVBQUVDLFNBREU7SUFFeEJDLFNBQVMsRUFBRSxFQUZhO0lBR3hCQyxPQUFPLEVBQUVGLFNBSGU7SUFJeEJHLG1CQUFtQixFQUFFLEVBSkc7SUFLeEJDLGNBQWMsRUFBRUosU0FMUTs7SUFPeEI7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQ0ssVUFBVSxFQUFFLFVBQVVDLFFBQVYsRUFBK0JDLE1BQS9CLEVBQStDQyxRQUEvQyxFQUFpRTtNQUM1RSxJQUFNQyxnQkFBd0IsR0FBR0gsUUFBUSxDQUFDSSxRQUFULEdBQW9CQyxZQUFwQixHQUFtQ0MsU0FBbkMsQ0FBNkMsbURBQTdDLENBQWpDOztNQUVBLElBQUksQ0FBQ0gsZ0JBQUwsRUFBdUI7UUFDdEJJLEdBQUcsQ0FBQ0MsS0FBSixDQUFVLHlDQUFWO1FBQ0E7TUFDQTs7TUFFRCxJQUFNQyxVQUFrQixHQUFHVCxRQUFRLENBQUNVLFdBQVQsQ0FBcUIsbUNBQXJCLENBQTNCO01BQ0EsS0FBS1osY0FBTCxHQUFzQixJQUFJYSxTQUFKLENBQWMsRUFBZCxDQUF0QjtNQUVBLElBQU1DLFVBQVUsR0FBR1osUUFBUSxDQUFDSSxRQUFULEdBQW9CUyxhQUFwQixFQUFuQjtNQUVBQyx1QkFBdUIsQ0FDdEI7UUFDQ0MsRUFBRSxFQUFFZCxNQURMO1FBRUNlLElBQUksRUFBRWQsUUFGUDtRQUdDZSxXQUFXLEVBQUVmO01BSGQsQ0FEc0IsRUFNdEJDLGdCQU5zQixFQU90Qk0sVUFQc0IsRUFRdEJHLFVBUnNCLEVBU3RCLEtBQUtkLGNBVGlCLEVBVXRCLEtBQUtvQixrQkFBTCxDQUF3QkMsSUFBeEIsQ0FBNkIsSUFBN0IsQ0FW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
|
|
188
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2xsYWJvcmF0aW9uQVBJIiwiX2xhc3RSZWNlaXZlZE1lc3NhZ2UiLCJ1bmRlZmluZWQiLCJfcm9vdFBhdGgiLCJfb01vZGVsIiwiX2xvY2tlZFByb3BlcnR5UGF0aCIsIl9pbnRlcm5hbE1vZGVsIiwiZW50ZXJEcmFmdCIsIm9Db250ZXh0IiwidXNlcklEIiwidXNlck5hbWUiLCJ3ZWJTb2NrZXRCYXNlVVJMIiwiZ2V0TW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJnZXRPYmplY3QiLCJMb2ciLCJlcnJvciIsInNEcmFmdFVVSUQiLCJnZXRQcm9wZXJ0eSIsIkpTT05Nb2RlbCIsInNlcnZpY2VVcmwiLCJnZXRTZXJ2aWNlVXJsIiwiaW5pdGlhbGl6ZUNvbGxhYm9yYXRpb24iLCJpZCIsIm5hbWUiLCJpbml0aWFsTmFtZSIsIl9vbk1lc3NhZ2VSZWNlaXZlZCIsImJpbmQiLCJnZXRQYXRoIiwiY2hlY2tSZWNlaXZlZCIsIm1lc3NhZ2UiLCJmb3VuZCIsInVzZXJBY3Rpb24iLCJjbGllbnRDb250ZW50IiwibGVhdmVEcmFmdCIsImVuZENvbGxhYm9yYXRpb24iLCJkZXN0cm95Iiwic3RhcnRMaXZlQ2hhbmdlIiwic1Byb3BlcnR5UGF0aCIsInVuZG9DaGFuZ2UiLCJicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZSIsIkFjdGl2aXR5IiwiTGl2ZUNoYW5nZSIsInVwZGF0ZVByb3BlcnR5VmFsdWUiLCJ2YWx1ZSIsIm9Db250ZXh0QmluZGluZyIsImJpbmRDb250ZXh0IiwiJCRwYXRjaFdpdGhvdXRTaWRlRWZmZWN0cyIsIiQkZ3JvdXBJZCIsIiQkdXBkYXRlR3JvdXBJZCIsIm9Qcm9wZXJ0eUJpbmRpbmciLCJiaW5kUHJvcGVydHkiLCJnZXRCb3VuZENvbnRleHQiLCJyZXF1ZXN0VmFsdWUiLCJ0aGVuIiwic2V0VmFsdWUiLCJhdHRhY2hFdmVudE9uY2UiLCJDaGFuZ2UiLCJjYXRjaCIsImVyciIsIlVuZG8iLCJkaXNjYXJkRHJhZnQiLCJkcmFmdENvbnRleHQiLCJfZ2V0RHJhZnRDb250ZXh0IiwicmVxdWVzdFByb3BlcnR5IiwiZHJhZnQiLCJkZWxldGVEcmFmdCIsIkRpc2NhcmQiLCJyZXBsYWNlIiwiYWN0aXZlQ29udGV4dCIsImNvbnRleHQiLCJyZXF1ZXN0Q2Fub25pY2FsUGF0aCIsImRlbGV0ZSIsIkRlbGV0ZSIsIm9NZXNzYWdlIiwiY2xpZW50QWN0aW9uIiwiSm9pbiIsIkpvaW5FY2hvIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJDb2xsYWJvcmF0aW9uQVBJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHtcblx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UsXG5cdGVuZENvbGxhYm9yYXRpb24sXG5cdGluaXRpYWxpemVDb2xsYWJvcmF0aW9uXG59IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9jb2xsYWJvcmF0aW9uL0FjdGl2aXR5QmFzZVwiO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2NvbGxhYm9yYXRpb24vQ29sbGFib3JhdGlvbkNvbW1vblwiO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgZHJhZnQgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL2VkaXRGbG93L2RyYWZ0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7IFY0Q29udGV4dCB9IGZyb20gXCJ0eXBlcy9leHRlbnNpb25fdHlwZXNcIjtcblxuY29uc3QgQ29sbGFib3JhdGlvbkFQSSA9IHtcblx0X2xhc3RSZWNlaXZlZE1lc3NhZ2U6IHVuZGVmaW5lZCBhcyBNZXNzYWdlIHwgdW5kZWZpbmVkLFxuXHRfcm9vdFBhdGg6IFwiXCIsXG5cdF9vTW9kZWw6IHVuZGVmaW5lZCBhcyBPRGF0YU1vZGVsIHwgdW5kZWZpbmVkLFxuXHRfbG9ja2VkUHJvcGVydHlQYXRoOiBcIlwiLFxuXHRfaW50ZXJuYWxNb2RlbDogdW5kZWZpbmVkIGFzIEpTT05Nb2RlbCB8IHVuZGVmaW5lZCxcblxuXHQvKipcblx0ICogT3BlbiBhbiBleGlzdGluZyBjb2xsYWJvcmF0aXZlIGRyYWZ0IHdpdGggYSBuZXcgdXNlciwgYW5kIGNyZWF0ZXMgYSAnZ2hvc3QgY2xpZW50JyBmb3IgdGhpcyB1c2VyLlxuXHQgKlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgVGhlIGNvbnRleHQgb2YgdGhlIGNvbGxhYm9yYXRpdmUgZHJhZnRcblx0ICogQHBhcmFtIHVzZXJJRCBUaGUgSUQgb2YgdGhlIHVzZXJcblx0ICogQHBhcmFtIHVzZXJOYW1lIFRoZSBuYW1lIG9mIHRoZSB1c2VyXG5cdCAqL1xuXHRlbnRlckRyYWZ0OiBmdW5jdGlvbiAob0NvbnRleHQ6IFY0Q29udGV4dCwgdXNlcklEOiBzdHJpbmcsIHVzZXJOYW1lOiBzdHJpbmcpIHtcblx0XHRjb25zdCB3ZWJTb2NrZXRCYXNlVVJMOiBzdHJpbmcgPSBvQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLmdldE9iamVjdChcIi9AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLldlYlNvY2tldEJhc2VVUkxcIik7XG5cblx0XHRpZiAoIXdlYlNvY2tldEJhc2VVUkwpIHtcblx0XHRcdExvZy5lcnJvcihcIkNhbm5vdCBmaW5kIFdlYlNvY2tldEJhc2VVUkwgYW5ub3RhdGlvblwiKTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBzRHJhZnRVVUlEOiBzdHJpbmcgPSBvQ29udGV4dC5nZXRQcm9wZXJ0eShcIkRyYWZ0QWRtaW5pc3RyYXRpdmVEYXRhL0RyYWZ0VVVJRFwiKTtcblx0XHR0aGlzLl9pbnRlcm5hbE1vZGVsID0gbmV3IEpTT05Nb2RlbCh7fSk7XG5cblx0XHRjb25zdCBzZXJ2aWNlVXJsID0gb0NvbnRleHQuZ2V0TW9kZWwoKS5nZXRTZXJ2aWNlVXJsKCk7XG5cblx0XHRpbml0aWFsaXplQ29sbGFib3JhdGlvbihcblx0XHRcdHtcblx0XHRcdFx0aWQ6IHVzZXJJRCxcblx0XHRcdFx0bmFtZTogdXNlck5hbWUsXG5cdFx0XHRcdGluaXRpYWxOYW1lOiB1c2VyTmFtZVxuXHRcdFx0fSxcblx0XHRcdHdlYlNvY2tldEJhc2VVUkwsXG5cdFx0XHRzRHJhZnRVVUlELFxuXHRcdFx0c2VydmljZVVybCxcblx0XHRcdHRoaXMuX2ludGVybmFsTW9kZWwsXG5cdFx0XHR0aGlzLl9vbk1lc3NhZ2VSZWNlaXZlZC5iaW5kKHRoaXMpLFxuXHRcdFx0dHJ1ZVxuXHRcdCk7XG5cblx0XHR0aGlzLl9yb290UGF0aCA9IG9Db250ZXh0LmdldFBhdGgoKTtcblx0XHR0aGlzLl9vTW9kZWwgPSBvQ29udGV4dC5nZXRNb2RlbCgpIGFzIE9EYXRhTW9kZWw7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgZ2hvc3QgY2xpZW50IGhhcyByZXZpZXZlZCBhIGdpdmVuIG1lc3NhZ2UuXG5cdCAqXG5cdCAqIEBwYXJhbSBtZXNzYWdlIFRoZSBtZXNzYWdlIGNvbnRlbnQgdG8gYmUgbG9va2VkIGZvclxuXHQgKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBsYXN0IHJlY2lldmVkIG1lc3NhZ2UgbWF0Y2hlcyB0aGUgY29udGVudFxuXHQgKi9cblx0Y2hlY2tSZWNlaXZlZDogZnVuY3Rpb24gKG1lc3NhZ2U6IFBhcnRpYWw8TWVzc2FnZT4pOiBib29sZWFuIHtcblx0XHRpZiAoIXRoaXMuX2xhc3RSZWNlaXZlZE1lc3NhZ2UpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRjb25zdCBmb3VuZCA9XG5cdFx0XHQoIW1lc3NhZ2UudXNlcklEIHx8IG1lc3NhZ2UudXNlcklEID09PSB0aGlzLl9sYXN0UmVjZWl2ZWRNZXNzYWdlLnVzZXJJRCkgJiZcblx0XHRcdCghbWVzc2FnZS51c2VyQWN0aW9uIHx8IG1lc3NhZ2UudXNlckFjdGlvbiA9PT0gdGhpcy5fbGFzdFJlY2VpdmVkTWVzc2FnZS51c2VyQWN0aW9uKSAmJlxuXHRcdFx0KCFtZXNzYWdlLmNsaWVudENvbnRlbnQgfHwgbWVzc2FnZS5jbGllbnRDb250ZW50ID09PSB0aGlzLl9sYXN0UmVjZWl2ZWRNZXNzYWdlLmNsaWVudENvbnRlbnQpO1xuXG5cdFx0dGhpcy5fbGFzdFJlY2VpdmVkTWVzc2FnZSA9IHVuZGVmaW5lZDsgLy8gcmVzZXQgaGlzdG9yeSB0byBhdm9pZCBmaW5kaW5nIHRoZSBzYW1lIG1lc3NhZ2UgdHdpY2VcblxuXHRcdHJldHVybiBmb3VuZDtcblx0fSxcblxuXHQvKipcblx0ICogQ2xvc2VzIHRoZSBnaG9zdCBjbGllbnQgYW5kIHJlbW92ZXMgdGhlIHVzZXIgZnJvbSB0aGUgY29sbGFib3JhdGl2ZSBkcmFmdC5cblx0ICovXG5cdGxlYXZlRHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0ZW5kQ29sbGFib3JhdGlvbih0aGlzLl9pbnRlcm5hbE1vZGVsKTtcblx0XHRcdHRoaXMuX2ludGVybmFsTW9kZWwuZGVzdHJveSgpO1xuXHRcdFx0dGhpcy5faW50ZXJuYWxNb2RlbCA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNpbXVsYXRlcyB0aGF0IHRoZSB1c2VyIHN0YXJ0cyB0eXBpbmcgaW4gYW4gaW5wdXQgKGxpdmUgY2hhbmdlKS5cblx0ICpcblx0ICogQHBhcmFtIHNQcm9wZXJ0eVBhdGggVGhlIHBhdGggb2YgdGhlIHByb3BlcnR5IGJlaW5nIG1vZGlmaWVkXG5cdCAqL1xuXHRzdGFydExpdmVDaGFuZ2U6IGZ1bmN0aW9uIChzUHJvcGVydHlQYXRoOiBzdHJpbmcpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0aWYgKHRoaXMuX2xvY2tlZFByb3BlcnR5UGF0aCkge1xuXHRcdFx0XHQvLyBVbmxvY2sgcHJldmlvdXMgcHJvcGVydHkgcGF0aFxuXHRcdFx0XHR0aGlzLnVuZG9DaGFuZ2UoKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuX2xvY2tlZFByb3BlcnR5UGF0aCA9IHNQcm9wZXJ0eVBhdGg7XG5cdFx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShBY3Rpdml0eS5MaXZlQ2hhbmdlLCBgJHt0aGlzLl9yb290UGF0aH0vJHtzUHJvcGVydHlQYXRofWAsIHRoaXMuX2ludGVybmFsTW9kZWwpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogU2ltdWxhdGVzIHRoYXQgdGhlIHVzZXIgaGFzIG1vZGlmaWVkIGEgcHJvcGVydHkuXG5cdCAqXG5cdCAqIEBwYXJhbSBzUHJvcGVydHlQYXRoIFRoZSBwYXRoIG9mIHRoZSBwcm9wZXJ0eSBiZWluZyBtb2RpZmllZFxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgYmVpbmcgbW9kaWZpZWRcblx0ICovXG5cdHVwZGF0ZVByb3BlcnR5VmFsdWU6IGZ1bmN0aW9uIChzUHJvcGVydHlQYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0aWYgKHRoaXMuX2xvY2tlZFByb3BlcnR5UGF0aCAhPT0gc1Byb3BlcnR5UGF0aCkge1xuXHRcdFx0XHR0aGlzLnN0YXJ0TGl2ZUNoYW5nZShzUHJvcGVydHlQYXRoKTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3Qgb0NvbnRleHRCaW5kaW5nID0gdGhpcy5fb01vZGVsIS5iaW5kQ29udGV4dCh0aGlzLl9yb290UGF0aCwgdW5kZWZpbmVkLCB7XG5cdFx0XHRcdCQkcGF0Y2hXaXRob3V0U2lkZUVmZmVjdHM6IHRydWUsXG5cdFx0XHRcdCQkZ3JvdXBJZDogXCIkYXV0b1wiLFxuXHRcdFx0XHQkJHVwZGF0ZUdyb3VwSWQ6IFwiJGF1dG9cIlxuXHRcdFx0fSk7XG5cblx0XHRcdGNvbnN0IG9Qcm9wZXJ0eUJpbmRpbmcgPSB0aGlzLl9vTW9kZWwhLmJpbmRQcm9wZXJ0eShzUHJvcGVydHlQYXRoLCBvQ29udGV4dEJpbmRpbmcuZ2V0Qm91bmRDb250ZXh0KCkpO1xuXG5cdFx0XHRvUHJvcGVydHlCaW5kaW5nXG5cdFx0XHRcdC5yZXF1ZXN0VmFsdWUoKVxuXHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0b1Byb3BlcnR5QmluZGluZy5zZXRWYWx1ZSh2YWx1ZSk7XG5cdFx0XHRcdFx0b0NvbnRleHRCaW5kaW5nLmF0dGFjaEV2ZW50T25jZShcInBhdGNoQ29tcGxldGVkXCIsICgpID0+IHtcblx0XHRcdFx0XHRcdGJyb2FkY2FzdENvbGxhYm9yYXRpb25NZXNzYWdlKEFjdGl2aXR5LkNoYW5nZSwgYCR7dGhpcy5fcm9vdFBhdGh9LyR7c1Byb3BlcnR5UGF0aH1gLCB0aGlzLl9pbnRlcm5hbE1vZGVsISk7XG5cdFx0XHRcdFx0XHR0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGggPSBcIlwiO1xuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycikge1xuXHRcdFx0XHRcdExvZy5lcnJvcihlcnIpO1xuXHRcdFx0XHR9KTtcblx0XHR9XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNpbXVsYXRlcyB0aGF0IHRoZSB1c2VyIGRpZCBhbiAndW5kbycgKHRvIGJlIGNhbGxlZCBhZnRlciBzdGFydExpdmVDaGFuZ2UpLlxuXHQgKi9cblx0dW5kb0NoYW5nZTogZnVuY3Rpb24gKCkge1xuXHRcdGlmICh0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGgpIHtcblx0XHRcdGJyb2FkY2FzdENvbGxhYm9yYXRpb25NZXNzYWdlKEFjdGl2aXR5LlVuZG8sIGAke3RoaXMuX3Jvb3RQYXRofS8ke3RoaXMuX2xvY2tlZFByb3BlcnR5UGF0aH1gLCB0aGlzLl9pbnRlcm5hbE1vZGVsISk7XG5cdFx0XHR0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGggPSBcIlwiO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogU2ltdWxhdGVzIHRoYXQgdGhlIHVzZXIgaGFzIGRpc2NhcmRlZCB0aGUgZHJhZnQuXG5cdCAqL1xuXHRkaXNjYXJkRHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0Y29uc3QgZHJhZnRDb250ZXh0ID0gdGhpcy5fZ2V0RHJhZnRDb250ZXh0KCk7XG5cblx0XHRcdGRyYWZ0Q29udGV4dFxuXHRcdFx0XHQucmVxdWVzdFByb3BlcnR5KFwiSXNBY3RpdmVFbnRpdHlcIilcblx0XHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdGRyYWZ0LmRlbGV0ZURyYWZ0KGRyYWZ0Q29udGV4dCk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRicm9hZGNhc3RDb2xsYWJvcmF0aW9uTWVzc2FnZShcblx0XHRcdFx0XHRcdEFjdGl2aXR5LkRpc2NhcmQsXG5cdFx0XHRcdFx0XHR0aGlzLl9yb290UGF0aC5yZXBsYWNlKFwiSXNBY3RpdmVFbnRpdHk9ZmFsc2VcIiwgXCJJc0FjdGl2ZUVudGl0eT10cnVlXCIpLFxuXHRcdFx0XHRcdFx0dGhpcy5faW50ZXJuYWxNb2RlbCFcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdHRoaXMuX2ludGVybmFsTW9kZWwhLmRlc3Ryb3koKTtcblx0XHRcdFx0XHR0aGlzLl9pbnRlcm5hbE1vZGVsID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycjogYW55KSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKGVycik7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogU2ltdWxhdGVzIHRoYXQgdGhlIHVzZXIgaGFzIGRlbGV0ZWQgdGhlIGRyYWZ0LlxuXHQgKi9cblx0ZGVsZXRlRHJhZnQ6IGZ1bmN0aW9uICgpIHtcblx0XHRpZiAodGhpcy5faW50ZXJuYWxNb2RlbCkge1xuXHRcdFx0Y29uc3QgZHJhZnRDb250ZXh0ID0gdGhpcy5fZ2V0RHJhZnRDb250ZXh0KCk7XG5cdFx0XHRsZXQgYWN0aXZlQ29udGV4dDogVjRDb250ZXh0O1xuXG5cdFx0XHRkcmFmdENvbnRleHRcblx0XHRcdFx0LnJlcXVlc3RQcm9wZXJ0eShcIklzQWN0aXZlRW50aXR5XCIpXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gZHJhZnRDb250ZXh0LmdldE1vZGVsKCkuYmluZENvbnRleHQoYCR7dGhpcy5fcm9vdFBhdGh9L1NpYmxpbmdFbnRpdHlgKS5nZXRCb3VuZENvbnRleHQoKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4oKGNvbnRleHQ6IGFueSkgPT4ge1xuXHRcdFx0XHRcdGFjdGl2ZUNvbnRleHQgPSBjb250ZXh0O1xuXHRcdFx0XHRcdHJldHVybiBjb250ZXh0LnJlcXVlc3RDYW5vbmljYWxQYXRoKCk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRyZXR1cm4gZHJhZnQuZGVsZXRlRHJhZnQoZHJhZnRDb250ZXh0KTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdChhY3RpdmVDb250ZXh0IGFzIGFueSkuZGVsZXRlKCk7XG5cdFx0XHRcdFx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UoQWN0aXZpdHkuRGVsZXRlLCB0aGlzLl9yb290UGF0aCwgdGhpcy5faW50ZXJuYWxNb2RlbCEpO1xuXHRcdFx0XHRcdHRoaXMuX2ludGVybmFsTW9kZWwhLmRlc3Ryb3koKTtcblx0XHRcdFx0XHR0aGlzLl9pbnRlcm5hbE1vZGVsID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycjogYW55KSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKGVycik7XG5cdFx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblxuXHQvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXHQvLyBQcml2YXRlIG1ldGhvZHNcblxuXHRfZ2V0RHJhZnRDb250ZXh0OiBmdW5jdGlvbiAoKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5fb01vZGVsIS5iaW5kQ29udGV4dCh0aGlzLl9yb290UGF0aCwgdW5kZWZpbmVkLCB7XG5cdFx0XHQkJHBhdGNoV2l0aG91dFNpZGVFZmZlY3RzOiB0cnVlLFxuXHRcdFx0JCRncm91cElkOiBcIiRhdXRvXCIsXG5cdFx0XHQkJHVwZGF0ZUdyb3VwSWQ6IFwiJGF1dG9cIlxuXHRcdH0pLmdldEJvdW5kQ29udGV4dCgpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDYWxsYmFjayBvZiB0aGUgZ2hvc3QgY2xpZW50IHdoZW4gcmVjZWl2aW5nIGEgbWVzc2FnZSBvbiB0aGUgd2ViIHNvY2tldC5cblx0ICpcblx0ICogQHBhcmFtIG9NZXNzYWdlIFRoZSBtZXNzYWdlXG5cdCAqL1xuXHRfb25NZXNzYWdlUmVjZWl2ZWQ6IGZ1bmN0aW9uIChvTWVzc2FnZTogTWVzc2FnZSkge1xuXHRcdG9NZXNzYWdlLnVzZXJBY3Rpb24gPSBvTWVzc2FnZS51c2VyQWN0aW9uIHx8IG9NZXNzYWdlLmNsaWVudEFjdGlvbjtcblx0XHR0aGlzLl9sYXN0UmVjZWl2ZWRNZXNzYWdlID0gb01lc3NhZ2U7XG5cblx0XHRpZiAob01lc3NhZ2UudXNlckFjdGlvbiA9PT0gQWN0aXZpdHkuSm9pbikge1xuXHRcdFx0YnJvYWRjYXN0Q29sbGFib3JhdGlvbk1lc3NhZ2UoXG5cdFx0XHRcdEFjdGl2aXR5LkpvaW5FY2hvLFxuXHRcdFx0XHR0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGggPyBgJHt0aGlzLl9yb290UGF0aH0vJHt0aGlzLl9sb2NrZWRQcm9wZXJ0eVBhdGh9YCA6IHVuZGVmaW5lZCxcblx0XHRcdFx0dGhpcy5faW50ZXJuYWxNb2RlbCFcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb2xsYWJvcmF0aW9uQVBJO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7OztFQWFBLElBQU1BLGdCQUFnQixHQUFHO0lBQ3hCQyxvQkFBb0IsRUFBRUMsU0FBZ0M7SUFDdERDLFNBQVMsRUFBRSxFQUFFO0lBQ2JDLE9BQU8sRUFBRUYsU0FBbUM7SUFDNUNHLG1CQUFtQixFQUFFLEVBQUU7SUFDdkJDLGNBQWMsRUFBRUosU0FBa0M7SUFFbEQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQ0ssVUFBVSxFQUFFLFVBQVVDLFFBQW1CLEVBQUVDLE1BQWMsRUFBRUMsUUFBZ0IsRUFBRTtNQUM1RSxJQUFNQyxnQkFBd0IsR0FBR0gsUUFBUSxDQUFDSSxRQUFRLEVBQUUsQ0FBQ0MsWUFBWSxFQUFFLENBQUNDLFNBQVMsQ0FBQyxtREFBbUQsQ0FBQztNQUVsSSxJQUFJLENBQUNILGdCQUFnQixFQUFFO1FBQ3RCSSxHQUFHLENBQUNDLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQztRQUNwRDtNQUNEO01BRUEsSUFBTUMsVUFBa0IsR0FBR1QsUUFBUSxDQUFDVSxXQUFXLENBQUMsbUNBQW1DLENBQUM7TUFDcEYsSUFBSSxDQUFDWixjQUFjLEdBQUcsSUFBSWEsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BRXZDLElBQU1DLFVBQVUsR0FBR1osUUFBUSxDQUFDSSxRQUFRLEVBQUUsQ0FBQ1MsYUFBYSxFQUFFO01BRXREQyx1QkFBdUIsQ0FDdEI7UUFDQ0MsRUFBRSxFQUFFZCxNQUFNO1FBQ1ZlLElBQUksRUFBRWQsUUFBUTtRQUNkZSxXQUFXLEVBQUVmO01BQ2QsQ0FBQyxFQUNEQyxnQkFBZ0IsRUFDaEJNLFVBQVUsRUFDVkcsVUFBVSxFQUNWLElBQUksQ0FBQ2QsY0FBYyxFQUNuQixJQUFJLENBQUNvQixrQkFBa0IsQ0FBQ0Ms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
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
7
|
sap.ui.define(["./DialogAPI", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder"], function (DialogAPI, Utils, OpaBuilder) {
|
|
7
8
|
"use strict";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
7
|
sap.ui.define(["./DialogAPI", "sap/fe/test/Utils"], function (DialogAPI, Utils) {
|
|
7
8
|
"use strict";
|
|
@@ -40,7 +41,7 @@ sap.ui.define(["./DialogAPI", "sap/fe/test/Utils"], function (DialogAPI, Utils)
|
|
|
40
41
|
.execute()
|
|
41
42
|
);
|
|
42
43
|
};
|
|
43
|
-
|
|
44
|
+
|
|
44
45
|
/**
|
|
45
46
|
* Checks the confirmation button of the dialog.
|
|
46
47
|
*
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
|
-
sap.ui.define(["./DialogActions", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder"], function(DialogActions, Utils, OpaBuilder) {
|
|
7
|
+
sap.ui.define(["./DialogActions", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder"], function (DialogActions, Utils, OpaBuilder) {
|
|
7
8
|
"use strict";
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -18,7 +19,7 @@ sap.ui.define(["./DialogActions", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder"]
|
|
|
18
19
|
* @hideconstructor
|
|
19
20
|
* @public
|
|
20
21
|
*/
|
|
21
|
-
var DialogCreateActions = function(oDialogBuilder, vDialogDescription) {
|
|
22
|
+
var DialogCreateActions = function (oDialogBuilder, vDialogDescription) {
|
|
22
23
|
return DialogActions.call(this, oDialogBuilder, vDialogDescription, 0);
|
|
23
24
|
};
|
|
24
25
|
DialogCreateActions.prototype = Object.create(DialogActions.prototype);
|
|
@@ -31,7 +32,7 @@ sap.ui.define(["./DialogActions", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder"]
|
|
|
31
32
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
32
33
|
* @public
|
|
33
34
|
*/
|
|
34
|
-
DialogCreateActions.prototype.iExecuteCreate = function() {
|
|
35
|
+
DialogCreateActions.prototype.iExecuteCreate = function () {
|
|
35
36
|
return this.prepareResult(
|
|
36
37
|
this.getBuilder()
|
|
37
38
|
.doPressFooterButton(
|
|
@@ -1,55 +1,54 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
|
-
sap.ui.define(
|
|
7
|
-
DialogAssertions,
|
|
8
|
-
OpaBuilder,
|
|
9
|
-
|
|
10
|
-
Utils
|
|
11
|
-
) {
|
|
12
|
-
"use strict";
|
|
7
|
+
sap.ui.define(
|
|
8
|
+
["./DialogAssertions", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"],
|
|
9
|
+
function (DialogAssertions, OpaBuilder, FEBuilder, Utils) {
|
|
10
|
+
"use strict";
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Constructs a new DialogCreateAssertions instance.
|
|
14
|
+
*
|
|
15
|
+
* @param {sap.fe.test.builder.DialogBuilder} oDialogBuilder The {@link sap.fe.test.builder.DialogBuilder} instance used to interact with the UI
|
|
16
|
+
* @param {string} [vDialogDescription] Description (optional) of the dialog to be used for logging messages
|
|
17
|
+
* @returns {sap.fe.test.api.DialogCreateAssertions} The new instance
|
|
18
|
+
* @extends sap.fe.test.api.DialogAssertions
|
|
19
|
+
* @alias sap.fe.test.api.DialogCreateAssertions
|
|
20
|
+
* @class
|
|
21
|
+
* @hideconstructor
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
var DialogCreateAssertions = function (oDialogBuilder, vDialogDescription) {
|
|
25
|
+
return DialogAssertions.call(this, oDialogBuilder, vDialogDescription, 0);
|
|
26
|
+
};
|
|
27
|
+
DialogCreateAssertions.prototype = Object.create(DialogAssertions.prototype);
|
|
28
|
+
DialogCreateAssertions.prototype.constructor = DialogCreateAssertions;
|
|
29
|
+
DialogCreateAssertions.prototype.isAction = false;
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Checks the <code>Create</code> action on the dialog.
|
|
33
|
+
*
|
|
34
|
+
* @param {object} [mState] Defines the expected state of the button
|
|
35
|
+
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
DialogCreateAssertions.prototype.iCheckCreate = function (mState) {
|
|
39
|
+
return this.prepareResult(
|
|
40
|
+
this.getBuilder()
|
|
41
|
+
.hasFooterButton(
|
|
42
|
+
OpaBuilder.Matchers.resourceBundle("text", "sap.fe.core", "C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE_BUTTON"),
|
|
43
|
+
mState
|
|
44
|
+
)
|
|
45
|
+
.description(
|
|
46
|
+
Utils.formatMessage("Checking that dialog '{0}' has create button with state '{1}'", this.getIdentifier(), mState)
|
|
47
|
+
)
|
|
48
|
+
.execute()
|
|
49
|
+
);
|
|
50
|
+
};
|
|
53
51
|
|
|
54
|
-
|
|
55
|
-
}
|
|
52
|
+
return DialogCreateAssertions;
|
|
53
|
+
}
|
|
54
|
+
);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
7
|
sap.ui.define(["./DialogAPI"], function (DialogAPI) {
|
|
7
8
|
"use strict";
|
|
@@ -27,7 +28,7 @@ sap.ui.define(["./DialogAPI"], function (DialogAPI) {
|
|
|
27
28
|
var changeField = loParams.changeField
|
|
28
29
|
? loParams.changeField
|
|
29
30
|
: {
|
|
30
|
-
|
|
31
|
+
PurchaseOrderByCustomer: "CHANGED" //default field with "changed value"
|
|
31
32
|
};
|
|
32
33
|
|
|
33
34
|
var draftOption = loParams.draftOption ? loParams.draftOption : "draftDataLossOptionKeep";
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
7
|
sap.ui.define(
|
|
7
8
|
["./DialogActions", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder"],
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
7
|
sap.ui.define(
|
|
7
8
|
["./DialogAssertions", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"],
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* !
|
|
2
|
+
* !
|
|
3
|
+
SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
4
|
(c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
-
|
|
5
|
+
|
|
5
6
|
*/
|
|
6
7
|
sap.ui.define(
|
|
7
8
|
["./DialogActions", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder"],
|