@sapui5/sap.fe.templates 1.109.0 → 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 +11 -8
- package/src/sap/fe/templates/.library +26 -27
- package/src/sap/fe/templates/AnalyticalListPage/Component.js +1 -7
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +1 -4
- package/src/sap/fe/templates/ListComponent.js +45 -62
- package/src/sap/fe/templates/ListComponent.ts +43 -43
- package/src/sap/fe/templates/ListReport/Component.js +11 -19
- package/src/sap/fe/templates/ListReport/Component.ts +6 -0
- package/src/sap/fe/templates/ListReport/ExtensionAPI.js +11 -37
- package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +1 -1
- package/src/sap/fe/templates/ListReport/LRMessageStrip.js +196 -0
- package/src/sap/fe/templates/ListReport/LRMessageStrip.ts +216 -0
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +31 -0
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +140 -247
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +49 -14
- package/src/sap/fe/templates/ListReport/ListReportTemplating.js +2 -7
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +21 -108
- package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +9 -17
- package/src/sap/fe/templates/ListReport/overrides/Share.js +9 -25
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +51 -122
- package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +1 -23
- package/src/sap/fe/templates/ObjectPage/Component.js +19 -40
- package/src/sap/fe/templates/ObjectPage/Component.ts +9 -2
- package/src/sap/fe/templates/ObjectPage/ExtendPageDefinition.js +64 -0
- package/src/sap/fe/templates/ObjectPage/ExtendPageDefinition.ts +80 -0
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +21 -58
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +4 -4
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +2 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +173 -459
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +13 -18
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +129 -208
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +62 -14
- package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +1 -32
- package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +9 -37
- package/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +1 -7
- package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +9 -31
- package/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +2 -4
- package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
- package/src/sap/fe/templates/ObjectPage/flexibility/ScrollableHeaderContainer.flexibility.js +4 -5
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +4 -4
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.ts +3 -3
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +4 -4
- package/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.ts +3 -3
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +16 -21
- package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +19 -1
- package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +21 -0
- package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +4 -5
- package/src/sap/fe/templates/ObjectPage/overrides/Share.js +19 -69
- package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +1 -1
- package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +5 -20
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +6 -6
- package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +4 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +3 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/FormActions.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderContent.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +4 -3
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +7 -5
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingAvatar.fragment.xml +1 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +3 -2
- package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +2 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/SideContentCustomContainer.fragment.xml +7 -7
- package/src/sap/fe/templates/TableScroller.js +1 -6
- package/src/sap/fe/templates/library.js +4 -7
- package/src/sap/fe/templates/library.ts +1 -2
- package/src/sap/fe/templates/messagebundle.properties +30 -29
- package/src/sap/fe/templates/messagebundle_bg.properties +2 -2
- package/src/sap/fe/templates/messagebundle_cs.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +1 -1
- package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +1 -1
- package/src/sap/fe/templates/messagebundle_no.properties +3 -3
- package/src/sap/fe/templates/messagebundle_sl.properties +7 -7
- package/ui5.yaml +0 -1
- package/src/sap/fe/templates/Feedback.js +0 -80
- package/src/sap/fe/templates/Feedback.ts +0 -64
- package/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +0 -82
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +0 -20
- package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +0 -20
|
@@ -6,30 +6,23 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _class;
|
|
9
|
-
|
|
10
9
|
var MessageType = library.MessageType;
|
|
11
10
|
var InvisibleMessageMode = library.InvisibleMessageMode;
|
|
12
11
|
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
13
12
|
var getSideContentLayoutID = ID.getSideContentLayoutID;
|
|
14
|
-
|
|
15
13
|
function _catch(body, recover) {
|
|
16
14
|
try {
|
|
17
15
|
var result = body();
|
|
18
16
|
} catch (e) {
|
|
19
17
|
return recover(e);
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
if (result && result.then) {
|
|
23
20
|
return result.then(void 0, recover);
|
|
24
21
|
}
|
|
25
|
-
|
|
26
22
|
return result;
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
30
|
-
|
|
31
25
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
32
|
-
|
|
33
26
|
/**
|
|
34
27
|
* Extension API for object pages on SAP Fiori elements for OData V4.
|
|
35
28
|
*
|
|
@@ -41,13 +34,10 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
41
34
|
*/
|
|
42
35
|
var ObjectPageExtensionAPI = (_dec = defineUI5Class("sap.fe.templates.ObjectPage.ExtensionAPI"), _dec(_class = /*#__PURE__*/function (_ExtensionAPI) {
|
|
43
36
|
_inheritsLoose(ObjectPageExtensionAPI, _ExtensionAPI);
|
|
44
|
-
|
|
45
37
|
function ObjectPageExtensionAPI() {
|
|
46
38
|
return _ExtensionAPI.apply(this, arguments) || this;
|
|
47
39
|
}
|
|
48
|
-
|
|
49
40
|
var _proto = ObjectPageExtensionAPI.prototype;
|
|
50
|
-
|
|
51
41
|
/**
|
|
52
42
|
* Refreshes either the whole object page or only parts of it.
|
|
53
43
|
*
|
|
@@ -60,21 +50,18 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
60
50
|
*/
|
|
61
51
|
_proto.refresh = function refresh(vPath) {
|
|
62
52
|
var oBindingContext = this._view.getBindingContext();
|
|
63
|
-
|
|
64
53
|
if (!oBindingContext) {
|
|
65
54
|
// nothing to be refreshed - do not block the app!
|
|
66
55
|
return Promise.resolve();
|
|
67
56
|
}
|
|
68
|
-
|
|
69
57
|
var oAppComponent = CommonUtils.getAppComponent(this._view),
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
58
|
+
oSideEffectsService = oAppComponent.getSideEffectsService(),
|
|
59
|
+
oMetaModel = oBindingContext.getModel().getMetaModel(),
|
|
60
|
+
oSideEffects = {
|
|
61
|
+
TargetProperties: [],
|
|
62
|
+
TargetEntities: []
|
|
63
|
+
};
|
|
76
64
|
var aPaths, sPath, sBaseEntitySet, sKind;
|
|
77
|
-
|
|
78
65
|
if (vPath === undefined || vPath === null) {
|
|
79
66
|
// we just add an empty path which should refresh the page with all dependent bindings
|
|
80
67
|
oSideEffects.TargetEntities.push({
|
|
@@ -83,10 +70,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
83
70
|
} else {
|
|
84
71
|
aPaths = Array.isArray(vPath) ? vPath : [vPath];
|
|
85
72
|
sBaseEntitySet = this._controller.getOwnerComponent().getEntitySet();
|
|
86
|
-
|
|
87
73
|
for (var i = 0; i < aPaths.length; i++) {
|
|
88
74
|
sPath = aPaths[i];
|
|
89
|
-
|
|
90
75
|
if (sPath === "") {
|
|
91
76
|
// an empty path shall refresh the entity without dependencies which means * for the model
|
|
92
77
|
oSideEffects.TargetProperties.push({
|
|
@@ -94,7 +79,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
94
79
|
});
|
|
95
80
|
} else {
|
|
96
81
|
sKind = oMetaModel.getObject("/".concat(sBaseEntitySet, "/").concat(sPath, "/$kind"));
|
|
97
|
-
|
|
98
82
|
if (sKind === "NavigationProperty") {
|
|
99
83
|
oSideEffects.TargetEntities.push({
|
|
100
84
|
$NavigationPropertyPath: sPath
|
|
@@ -109,9 +93,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
109
93
|
}
|
|
110
94
|
}
|
|
111
95
|
}
|
|
112
|
-
|
|
113
96
|
return oSideEffectsService.requestSideEffects(oSideEffects.TargetEntities.concat(oSideEffects.TargetProperties), oBindingContext);
|
|
114
97
|
}
|
|
98
|
+
|
|
115
99
|
/**
|
|
116
100
|
* Gets the list entries currently selected for the table.
|
|
117
101
|
*
|
|
@@ -119,18 +103,15 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
119
103
|
* @param sTableId The ID identifying the table the selected context is requested for
|
|
120
104
|
* @returns Array containing the selected contexts
|
|
121
105
|
* @public
|
|
122
|
-
|
|
123
|
-
;
|
|
124
|
-
|
|
106
|
+
*/;
|
|
125
107
|
_proto.getSelectedContexts = function getSelectedContexts(sTableId) {
|
|
126
108
|
var oTable = this._view.byId(sTableId);
|
|
127
|
-
|
|
128
109
|
if (oTable && oTable.isA("sap.fe.macros.table.TableAPI")) {
|
|
129
110
|
oTable = oTable.getContent();
|
|
130
111
|
}
|
|
131
|
-
|
|
132
112
|
return oTable && oTable.isA("sap.ui.mdc.Table") && oTable.getSelectedContexts() || [];
|
|
133
113
|
}
|
|
114
|
+
|
|
134
115
|
/**
|
|
135
116
|
* Displays or hides the side content of an object page.
|
|
136
117
|
*
|
|
@@ -138,28 +119,25 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
138
119
|
* @param sSubSectionKey Key of the side content fragment as defined in the manifest.json
|
|
139
120
|
* @param [bShow] Optional Boolean flag to show or hide the side content
|
|
140
121
|
* @public
|
|
141
|
-
|
|
142
|
-
;
|
|
143
|
-
|
|
122
|
+
*/;
|
|
144
123
|
_proto.showSideContent = function showSideContent(sSubSectionKey, bShow) {
|
|
145
124
|
var sBlockID = getSideContentLayoutID(sSubSectionKey),
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
125
|
+
oBlock = this._view.byId(sBlockID),
|
|
126
|
+
bBlockState = bShow === undefined ? !oBlock.getShowSideContent() : bShow;
|
|
149
127
|
oBlock.setShowSideContent(bBlockState, false);
|
|
150
128
|
}
|
|
129
|
+
|
|
151
130
|
/**
|
|
152
131
|
* Gets the bound context of the current object page.
|
|
153
132
|
*
|
|
154
133
|
* @alias sap.fe.templates.ObjectPage.ExtensionAPI#getBindingContext
|
|
155
134
|
* @returns Context bound to the object page
|
|
156
135
|
* @public
|
|
157
|
-
|
|
158
|
-
;
|
|
159
|
-
|
|
136
|
+
*/;
|
|
160
137
|
_proto.getBindingContext = function getBindingContext() {
|
|
161
138
|
return this._view.getBindingContext();
|
|
162
139
|
}
|
|
140
|
+
|
|
163
141
|
/**
|
|
164
142
|
* Build a message to be displayed below the anchor bar.
|
|
165
143
|
*
|
|
@@ -167,36 +145,30 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
167
145
|
* @param {sap.ui.core.message.Message[]} messages Array of messages used to generated the message
|
|
168
146
|
* @returns {Promise<Message>} Promise containing the generated message
|
|
169
147
|
* @private
|
|
170
|
-
|
|
171
|
-
;
|
|
172
|
-
|
|
148
|
+
*/;
|
|
173
149
|
_proto._buildOPMessage = function _buildOPMessage(messages) {
|
|
174
150
|
try {
|
|
175
151
|
var _this2 = this;
|
|
176
|
-
|
|
177
152
|
var view = _this2._view;
|
|
178
153
|
return Promise.resolve(view.getModel("sap.fe.i18n").getResourceBundle()).then(function (resourceBundle) {
|
|
179
154
|
var message = null;
|
|
180
|
-
|
|
181
155
|
switch (messages.length) {
|
|
182
156
|
case 0:
|
|
183
157
|
break;
|
|
184
|
-
|
|
185
158
|
case 1:
|
|
186
159
|
message = messages[0];
|
|
187
160
|
break;
|
|
188
|
-
|
|
189
161
|
default:
|
|
190
162
|
var messageStats = {
|
|
191
|
-
|
|
163
|
+
Error: {
|
|
192
164
|
id: 2,
|
|
193
165
|
count: 0
|
|
194
166
|
},
|
|
195
|
-
|
|
167
|
+
Warning: {
|
|
196
168
|
id: 1,
|
|
197
169
|
count: 0
|
|
198
170
|
},
|
|
199
|
-
|
|
171
|
+
Information: {
|
|
200
172
|
id: 0,
|
|
201
173
|
count: 0
|
|
202
174
|
}
|
|
@@ -209,7 +181,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
209
181
|
}, new Message({
|
|
210
182
|
type: MessageType.Information
|
|
211
183
|
}));
|
|
212
|
-
|
|
213
184
|
if (messageStats.Error.count === 0 && messageStats.Warning.count === 0 && messageStats.Information.count > 0) {
|
|
214
185
|
message.setMessage(resourceBundle.getText("OBJECTPAGESTATE_INFORMATION"));
|
|
215
186
|
} else if (messageStats.Error.count > 0 && messageStats.Warning.count > 0 || messageStats.Information.count > 0) {
|
|
@@ -217,9 +188,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
217
188
|
} else {
|
|
218
189
|
message.setMessage(resourceBundle.getText(message.getType() === MessageType.Error ? "OBJECTPAGESTATE_ERROR" : "OBJECTPAGESTATE_WARNING"));
|
|
219
190
|
}
|
|
220
|
-
|
|
221
191
|
}
|
|
222
|
-
|
|
223
192
|
return message;
|
|
224
193
|
});
|
|
225
194
|
} catch (e) {
|
|
@@ -227,21 +196,18 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
227
196
|
}
|
|
228
197
|
}
|
|
229
198
|
/**
|
|
230
|
-
* Displays the message strip
|
|
199
|
+
* Displays the message strip between the title and the header of the ObjectPage.
|
|
231
200
|
*
|
|
232
201
|
* @alias sap.fe.templates.ObjectPage.ExtensionAPI#showMessages
|
|
233
202
|
* @param {sap.ui.core.message.Message} messages The message to be displayed
|
|
234
203
|
* @public
|
|
235
204
|
*/
|
|
236
205
|
;
|
|
237
|
-
|
|
238
206
|
_proto.showMessages = function showMessages(messages) {
|
|
239
207
|
try {
|
|
240
208
|
var _this4 = this;
|
|
241
|
-
|
|
242
209
|
var view = _this4._view;
|
|
243
210
|
var internalModelContext = view.getBindingContext("internal");
|
|
244
|
-
|
|
245
211
|
var _temp2 = _catch(function () {
|
|
246
212
|
return Promise.resolve(_this4._buildOPMessage(messages)).then(function (message) {
|
|
247
213
|
if (message) {
|
|
@@ -256,7 +222,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
256
222
|
}, function () {
|
|
257
223
|
Log.error("Cannot display ObjectPage message");
|
|
258
224
|
});
|
|
259
|
-
|
|
260
225
|
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
|
|
261
226
|
} catch (e) {
|
|
262
227
|
return Promise.reject(e);
|
|
@@ -269,15 +234,13 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converter
|
|
|
269
234
|
* @public
|
|
270
235
|
*/
|
|
271
236
|
;
|
|
272
|
-
|
|
273
237
|
_proto.hideMessage = function hideMessage() {
|
|
274
238
|
var view = this._view;
|
|
275
239
|
var internalModelContext = view.getBindingContext("internal");
|
|
276
240
|
internalModelContext === null || internalModelContext === void 0 ? void 0 : internalModelContext.setProperty("OPMessageStripVisibility", false);
|
|
277
241
|
};
|
|
278
|
-
|
|
279
242
|
return ObjectPageExtensionAPI;
|
|
280
243
|
}(ExtensionAPI)) || _class);
|
|
281
244
|
return ObjectPageExtensionAPI;
|
|
282
245
|
}, false);
|
|
283
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwiT2JqZWN0UGFnZUV4dGVuc2lvbkFQSSIsImRlZmluZVVJNUNsYXNzIiwicmVmcmVzaCIsInZQYXRoIiwib0JpbmRpbmdDb250ZXh0IiwiX3ZpZXciLCJnZXRCaW5kaW5nQ29udGV4dCIsIlByb21pc2UiLCJyZXNvbHZlIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50Iiwib1NpZGVFZmZlY3RzU2VydmljZSIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsIm9NZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsIm9TaWRlRWZmZWN0cyIsIlRhcmdldFByb3BlcnRpZXMiLCJUYXJnZXRFbnRpdGllcyIsImFQYXRocyIsInNQYXRoIiwic0Jhc2VFbnRpdHlTZXQiLCJzS2luZCIsInVuZGVmaW5lZCIsInB1c2giLCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aCIsIkFycmF5IiwiaXNBcnJheSIsIl9jb250cm9sbGVyIiwiZ2V0T3duZXJDb21wb25lbnQiLCJnZXRFbnRpdHlTZXQiLCJpIiwibGVuZ3RoIiwiJFByb3BlcnR5UGF0aCIsImdldE9iamVjdCIsInJlamVjdCIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImNvbmNhdCIsImdldFNlbGVjdGVkQ29udGV4dHMiLCJzVGFibGVJZCIsIm9UYWJsZSIsImJ5SWQiLCJpc0EiLCJnZXRDb250ZW50Iiwic2hvd1NpZGVDb250ZW50Iiwic1N1YlNlY3Rpb25LZXkiLCJiU2hvdyIsInNCbG9ja0lEIiwiZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRCIsIm9CbG9jayIsImJCbG9ja1N0YXRlIiwiZ2V0U2hvd1NpZGVDb250ZW50Iiwic2V0U2hvd1NpZGVDb250ZW50IiwiX2J1aWxkT1BNZXNzYWdlIiwibWVzc2FnZXMiLCJ2aWV3IiwiZ2V0UmVzb3VyY2VCdW5kbGUiLCJyZXNvdXJjZUJ1bmRsZSIsIm1lc3NhZ2UiLCJtZXNzYWdlU3RhdHMiLCJpZCIsImNvdW50IiwicmVkdWNlIiwiYWNjIiwiY3VycmVudFZhbHVlIiwiY3VycmVudFR5cGUiLCJnZXRUeXBlIiwic2V0VHlwZSIsIk1lc3NhZ2UiLCJ0eXBlIiwiTWVzc2FnZVR5cGUiLCJJbmZvcm1hdGlvbiIsIkVycm9yIiwiV2FybmluZyIsInNldE1lc3NhZ2UiLCJnZXRUZXh0Iiwic2hvd01lc3NhZ2VzIiwiaW50ZXJuYWxNb2RlbENvbnRleHQiLCJzZXRQcm9wZXJ0eSIsImdldE1lc3NhZ2UiLCJJbnZpc2libGVNZXNzYWdlIiwiZ2V0SW5zdGFuY2UiLCJhbm5vdW5jZSIsIkludmlzaWJsZU1lc3NhZ2VNb2RlIiwiQXNzZXJ0aXZlIiwiaGlkZU1lc3NhZ2UiLCJMb2ciLCJlcnJvciIsIkV4dGVuc2lvbkFQSSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRXh0ZW5zaW9uQVBJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHsgZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSURcIjtcbmltcG9ydCBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIFRhYmxlQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL1RhYmxlQVBJXCI7XG5pbXBvcnQgSW52aXNpYmxlTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvSW52aXNpYmxlTWVzc2FnZVwiO1xuaW1wb3J0IHsgSW52aXNpYmxlTWVzc2FnZU1vZGUsIE1lc3NhZ2VUeXBlIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBNZXNzYWdlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VcIjtcbmltcG9ydCB0eXBlIER5bmFtaWNTaWRlQ29udGVudCBmcm9tIFwic2FwL3VpL2xheW91dC9EeW5hbWljU2lkZUNvbnRlbnRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL3Jlc291cmNlL1Jlc291cmNlTW9kZWxcIjtcblxuLyoqXG4gKiBFeHRlbnNpb24gQVBJIGZvciBvYmplY3QgcGFnZXMgb24gU0FQIEZpb3JpIGVsZW1lbnRzIGZvciBPRGF0YSBWNC5cbiAqXG4gKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSVxuICogQHB1YmxpY1xuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQGZpbmFsXG4gKiBAc2luY2UgMS43OS4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUElcIilcbmNsYXNzIE9iamVjdFBhZ2VFeHRlbnNpb25BUEkgZXh0ZW5kcyBFeHRlbnNpb25BUEkge1xuXHQvKipcblx0ICogUmVmcmVzaGVzIGVpdGhlciB0aGUgd2hvbGUgb2JqZWN0IHBhZ2Ugb3Igb25seSBwYXJ0cyBvZiBpdC5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjcmVmcmVzaFxuXHQgKiBAcGFyYW0gW3ZQYXRoXSBQYXRoIG9yIGFycmF5IG9mIHBhdGhzIHJlZmVycmluZyB0byBlbnRpdGllcyBvciBwcm9wZXJ0aWVzIHRvIGJlIHJlZnJlc2hlZC5cblx0ICogSWYgb21pdHRlZCwgdGhlIHdob2xlIG9iamVjdCBwYWdlIGlzIHJlZnJlc2hlZC4gVGhlIHBhdGggXCJcIiByZWZyZXNoZXMgdGhlIGVudGl0eSBhc3NpZ25lZCB0byB0aGUgb2JqZWN0IHBhZ2Vcblx0ICogd2l0aG91dCBuYXZpZ2F0aW9uc1xuXHQgKiBAcmV0dXJucyBSZXNvbHZlZCBvbmNlIHRoZSBkYXRhIGlzIHJlZnJlc2hlZCBvciByZWplY3RlZCBpZiB0aGUgcmVxdWVzdCBmYWlsZWRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0cmVmcmVzaCh2UGF0aDogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcblx0XHRjb25zdCBvQmluZGluZ0NvbnRleHQgPSB0aGlzLl92aWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRpZiAoIW9CaW5kaW5nQ29udGV4dCkge1xuXHRcdFx0Ly8gbm90aGluZyB0byBiZSByZWZyZXNoZWQgLSBkbyBub3QgYmxvY2sgdGhlIGFwcCFcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLl92aWV3KSxcblx0XHRcdG9TaWRlRWZmZWN0c1NlcnZpY2UgPSBvQXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpLFxuXHRcdFx0b01ldGFNb2RlbCA9IG9CaW5kaW5nQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0b1NpZGVFZmZlY3RzOiBhbnkgPSB7XG5cdFx0XHRcdFRhcmdldFByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHRUYXJnZXRFbnRpdGllczogW11cblx0XHRcdH07XG5cdFx0bGV0IGFQYXRocywgc1BhdGgsIHNCYXNlRW50aXR5U2V0LCBzS2luZDtcblxuXHRcdGlmICh2UGF0aCA9PT0gdW5kZWZpbmVkIHx8IHZQYXRoID09PSBudWxsKSB7XG5cdFx0XHQvLyB3ZSBqdXN0IGFkZCBhbiBlbXB0eSBwYXRoIHdoaWNoIHNob3VsZCByZWZyZXNoIHRoZSBwYWdlIHdpdGggYWxsIGRlcGVuZGVudCBiaW5kaW5nc1xuXHRcdFx0b1NpZGVFZmZlY3RzLlRhcmdldEVudGl0aWVzLnB1c2goe1xuXHRcdFx0XHQkTmF2aWdhdGlvblByb3BlcnR5UGF0aDogXCJcIlxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFQYXRocyA9IEFycmF5LmlzQXJyYXkodlBhdGgpID8gdlBhdGggOiBbdlBhdGhdO1xuXHRcdFx0c0Jhc2VFbnRpdHlTZXQgPSAodGhpcy5fY29udHJvbGxlci5nZXRPd25lckNvbXBvbmVudCgpIGFzIGFueSkuZ2V0RW50aXR5U2V0KCk7XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVBhdGhzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdHNQYXRoID0gYVBhdGhzW2ldO1xuXHRcdFx0XHRpZiAoc1BhdGggPT09IFwiXCIpIHtcblx0XHRcdFx0XHQvLyBhbiBlbXB0eSBwYXRoIHNoYWxsIHJlZnJlc2ggdGhlIGVudGl0eSB3aXRob3V0IGRlcGVuZGVuY2llcyB3aGljaCBtZWFucyAqIGZvciB0aGUgbW9kZWxcblx0XHRcdFx0XHRvU2lkZUVmZmVjdHMuVGFyZ2V0UHJvcGVydGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdCRQcm9wZXJ0eVBhdGg6IFwiKlwiXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c0tpbmQgPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7c0Jhc2VFbnRpdHlTZXR9LyR7c1BhdGh9LyRraW5kYCk7XG5cblx0XHRcdFx0XHRpZiAoc0tpbmQgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIpIHtcblx0XHRcdFx0XHRcdG9TaWRlRWZmZWN0cy5UYXJnZXRFbnRpdGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0JE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IHNQYXRoXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKHNLaW5kKSB7XG5cdFx0XHRcdFx0XHRvU2lkZUVmZmVjdHMuVGFyZ2V0UHJvcGVydGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogc1BhdGhcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoYCR7c1BhdGh9IGlzIG5vdCBhIHZhbGlkIHBhdGggdG8gYmUgcmVmcmVzaGVkYCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBvU2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhvU2lkZUVmZmVjdHMuVGFyZ2V0RW50aXRpZXMuY29uY2F0KG9TaWRlRWZmZWN0cy5UYXJnZXRQcm9wZXJ0aWVzKSwgb0JpbmRpbmdDb250ZXh0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBsaXN0IGVudHJpZXMgY3VycmVudGx5IHNlbGVjdGVkIGZvciB0aGUgdGFibGUuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI2dldFNlbGVjdGVkQ29udGV4dHNcblx0ICogQHBhcmFtIHNUYWJsZUlkIFRoZSBJRCBpZGVudGlmeWluZyB0aGUgdGFibGUgdGhlIHNlbGVjdGVkIGNvbnRleHQgaXMgcmVxdWVzdGVkIGZvclxuXHQgKiBAcmV0dXJucyBBcnJheSBjb250YWluaW5nIHRoZSBzZWxlY3RlZCBjb250ZXh0c1xuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRTZWxlY3RlZENvbnRleHRzKHNUYWJsZUlkOiBzdHJpbmcpIHtcblx0XHRsZXQgb1RhYmxlID0gdGhpcy5fdmlldy5ieUlkKHNUYWJsZUlkKTtcblx0XHRpZiAob1RhYmxlICYmIG9UYWJsZS5pc0EoXCJzYXAuZmUubWFjcm9zLnRhYmxlLlRhYmxlQVBJXCIpKSB7XG5cdFx0XHRvVGFibGUgPSAob1RhYmxlIGFzIEVuaGFuY2VXaXRoVUk1PFRhYmxlQVBJPikuZ2V0Q29udGVudCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gKG9UYWJsZSAmJiBvVGFibGUuaXNBKFwic2FwLnVpLm1kYy5UYWJsZVwiKSAmJiAob1RhYmxlIGFzIGFueSkuZ2V0U2VsZWN0ZWRDb250ZXh0cygpKSB8fCBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyBvciBoaWRlcyB0aGUgc2lkZSBjb250ZW50IG9mIGFuIG9iamVjdCBwYWdlLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNzaG93U2lkZUNvbnRlbnRcblx0ICogQHBhcmFtIHNTdWJTZWN0aW9uS2V5IEtleSBvZiB0aGUgc2lkZSBjb250ZW50IGZyYWdtZW50IGFzIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0Lmpzb25cblx0ICogQHBhcmFtIFtiU2hvd10gT3B0aW9uYWwgQm9vbGVhbiBmbGFnIHRvIHNob3cgb3IgaGlkZSB0aGUgc2lkZSBjb250ZW50XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHNob3dTaWRlQ29udGVudChzU3ViU2VjdGlvbktleTogc3RyaW5nLCBiU2hvdzogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IHNCbG9ja0lEID0gZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRChzU3ViU2VjdGlvbktleSksXG5cdFx0XHRvQmxvY2sgPSB0aGlzLl92aWV3LmJ5SWQoc0Jsb2NrSUQpLFxuXHRcdFx0YkJsb2NrU3RhdGUgPSBiU2hvdyA9PT0gdW5kZWZpbmVkID8gIShvQmxvY2sgYXMgRHluYW1pY1NpZGVDb250ZW50KS5nZXRTaG93U2lkZUNvbnRlbnQoKSA6IGJTaG93O1xuXHRcdChvQmxvY2sgYXMgRHluYW1pY1NpZGVDb250ZW50KS5zZXRTaG93U2lkZUNvbnRlbnQoYkJsb2NrU3RhdGUsIGZhbHNlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBib3VuZCBjb250ZXh0IG9mIHRoZSBjdXJyZW50IG9iamVjdCBwYWdlLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNnZXRCaW5kaW5nQ29udGV4dFxuXHQgKiBAcmV0dXJucyBDb250ZXh0IGJvdW5kIHRvIHRoZSBvYmplY3QgcGFnZVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRCaW5kaW5nQ29udGV4dCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkIGEgbWVzc2FnZSB0byBiZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIGFuY2hvciBiYXIuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI19idWlsZE9QTWVzc2FnZVxuXHQgKiBAcGFyYW0ge3NhcC51aS5jb3JlLm1lc3NhZ2UuTWVzc2FnZVtdfSBtZXNzYWdlcyBBcnJheSBvZiBtZXNzYWdlcyB1c2VkIHRvIGdlbmVyYXRlZCB0aGUgbWVzc2FnZVxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxNZXNzYWdlPn0gUHJvbWlzZSBjb250YWluaW5nIHRoZSBnZW5lcmF0ZWQgbWVzc2FnZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0YXN5bmMgX2J1aWxkT1BNZXNzYWdlKG1lc3NhZ2VzOiBNZXNzYWdlW10pOiBQcm9taXNlPE1lc3NhZ2UgfCBudWxsPiB7XG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuX3ZpZXc7XG5cdFx0Y29uc3QgcmVzb3VyY2VCdW5kbGUgPSBhd2FpdCAodmlldy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpIGFzIFJlc291cmNlTW9kZWwpLmdldFJlc291cmNlQnVuZGxlKCk7XG5cdFx0bGV0IG1lc3NhZ2U6IE1lc3NhZ2UgfCBudWxsID0gbnVsbDtcblx0XHRzd2l0Y2ggKG1lc3NhZ2VzLmxlbmd0aCkge1xuXHRcdFx0Y2FzZSAwOlxuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgMTpcblx0XHRcdFx0bWVzc2FnZSA9IG1lc3NhZ2VzWzBdO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGNvbnN0IG1lc3NhZ2VTdGF0czogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcblx0XHRcdFx0XHRcIkVycm9yXCI6IHsgaWQ6IDIsIGNvdW50OiAwIH0sXG5cdFx0XHRcdFx0XCJXYXJuaW5nXCI6IHsgaWQ6IDEsIGNvdW50OiAwIH0sXG5cdFx0XHRcdFx0XCJJbmZvcm1hdGlvblwiOiB7IGlkOiAwLCBjb3VudDogMCB9XG5cdFx0XHRcdH07XG5cdFx0XHRcdG1lc3NhZ2UgPSBtZXNzYWdlcy5yZWR1Y2UoKGFjYywgY3VycmVudFZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudFR5cGUgPSBjdXJyZW50VmFsdWUuZ2V0VHlwZSgpO1xuXHRcdFx0XHRcdGFjYy5zZXRUeXBlKG1lc3NhZ2VTdGF0c1tjdXJyZW50VHlwZV0uaWQgPiBtZXNzYWdlU3RhdHNbYWNjLmdldFR5cGUoKV0uaWQgPyBjdXJyZW50VHlwZSA6IGFjYy5nZXRUeXBlKCkpO1xuXHRcdFx0XHRcdG1lc3NhZ2VTdGF0c1tjdXJyZW50VHlwZV0uY291bnQrKztcblx0XHRcdFx0XHRyZXR1cm4gYWNjO1xuXHRcdFx0XHR9LCBuZXcgTWVzc2FnZSh7IHR5cGU6IE1lc3NhZ2VUeXBlLkluZm9ybWF0aW9uIH0pKTtcblxuXHRcdFx0XHRpZiAobWVzc2FnZVN0YXRzLkVycm9yLmNvdW50ID09PSAwICYmIG1lc3NhZ2VTdGF0cy5XYXJuaW5nLmNvdW50ID09PSAwICYmIG1lc3NhZ2VTdGF0cy5JbmZvcm1hdGlvbi5jb3VudCA+IDApIHtcblx0XHRcdFx0XHRtZXNzYWdlLnNldE1lc3NhZ2UocmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk9CSkVDVFBBR0VTVEFURV9JTkZPUk1BVElPTlwiKSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoKG1lc3NhZ2VTdGF0cy5FcnJvci5jb3VudCA+IDAgJiYgbWVzc2FnZVN0YXRzLldhcm5pbmcuY291bnQgPiAwKSB8fCBtZXNzYWdlU3RhdHMuSW5mb3JtYXRpb24uY291bnQgPiAwKSB7XG5cdFx0XHRcdFx0bWVzc2FnZS5zZXRNZXNzYWdlKHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJPQkpFQ1RQQUdFU1RBVEVfSVNTVUVcIikpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdG1lc3NhZ2Uuc2V0TWVzc2FnZShcblx0XHRcdFx0XHRcdHJlc291cmNlQnVuZGxlLmdldFRleHQoXG5cdFx0XHRcdFx0XHRcdG1lc3NhZ2UuZ2V0VHlwZSgpID09PSBNZXNzYWdlVHlwZS5FcnJvciA/IFwiT0JKRUNUUEFHRVNUQVRFX0VSUk9SXCIgOiBcIk9CSkVDVFBBR0VTVEFURV9XQVJOSU5HXCJcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBtZXNzYWdlO1xuXHR9XG5cblx0LyoqXG5cdCAqIERpc3BsYXlzIHRoZSBtZXNzYWdlIHN0cmlwIGJlbG93IHRoZSBhbmNob3IgYmFyLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNzaG93TWVzc2FnZXNcblx0ICogQHBhcmFtIHtzYXAudWkuY29yZS5tZXNzYWdlLk1lc3NhZ2V9IG1lc3NhZ2VzIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXG5cdGFzeW5jIHNob3dNZXNzYWdlcyhtZXNzYWdlczogTWVzc2FnZVtdKSB7XG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuX3ZpZXc7XG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB2aWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCB0aGlzLl9idWlsZE9QTWVzc2FnZShtZXNzYWdlcyk7XG5cdFx0XHRpZiAobWVzc2FnZSkge1xuXHRcdFx0XHQoaW50ZXJuYWxNb2RlbENvbnRleHQgYXMgYW55KT8uc2V0UHJvcGVydHkoXCJPUE1lc3NhZ2VTdHJpcFZpc2liaWxpdHlcIiwgdHJ1ZSk7XG5cdFx0XHRcdChpbnRlcm5hbE1vZGVsQ29udGV4dCBhcyBhbnkpPy5zZXRQcm9wZXJ0eShcIk9QTWVzc2FnZVN0cmlwVGV4dFwiLCBtZXNzYWdlLmdldE1lc3NhZ2UoKSk7XG5cdFx0XHRcdChpbnRlcm5hbE1vZGVsQ29udGV4dCBhcyBhbnkpPy5zZXRQcm9wZXJ0eShcIk9QTWVzc2FnZVN0cmlwVHlwZVwiLCBtZXNzYWdlLmdldFR5cGUoKSk7XG5cdFx0XHRcdEludmlzaWJsZU1lc3NhZ2UuZ2V0SW5zdGFuY2UoKS5hbm5vdW5jZShtZXNzYWdlLmdldE1lc3NhZ2UoKSwgSW52aXNpYmxlTWVzc2FnZU1vZGUuQXNzZXJ0aXZlKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuaGlkZU1lc3NhZ2UoKTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdExvZy5lcnJvcihcIkNhbm5vdCBkaXNwbGF5IE9iamVjdFBhZ2UgbWVzc2FnZVwiKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSGlkZXMgdGhlIG1lc3NhZ2Ugc3RyaXAgYmVsb3cgdGhlIGFuY2hvciBiYXIuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI2hpZGVNZXNzYWdlXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGhpZGVNZXNzYWdlKCkge1xuXHRcdGNvbnN0IHZpZXcgPSB0aGlzLl92aWV3O1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpO1xuXHRcdChpbnRlcm5hbE1vZGVsQ29udGV4dCBhcyBhbnkpPy5zZXRQcm9wZXJ0eShcIk9QTWVzc2FnZVN0cmlwVmlzaWJpbGl0eVwiLCBmYWxzZSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgT2JqZWN0UGFnZUV4dGVuc2lvbkFQSTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7RUFrakJPLGdCQUFnQkEsSUFBaEIsRUFBc0JDLE9BQXRCLEVBQStCO0lBQ3JDLElBQUk7TUFDSCxJQUFJQyxNQUFNLEdBQUdGLElBQUksRUFBakI7SUFDQSxDQUZELENBRUUsT0FBTUcsQ0FBTixFQUFTO01BQ1YsT0FBT0YsT0FBTyxDQUFDRSxDQUFELENBQWQ7SUFDQTs7SUFDRCxJQUFJRCxNQUFNLElBQUlBLE1BQU0sQ0FBQ0UsSUFBckIsRUFBMkI7TUFDMUIsT0FBT0YsTUFBTSxDQUFDRSxJQUFQLENBQVksS0FBSyxDQUFqQixFQUFvQkgsT0FBcEIsQ0FBUDtJQUNBOztJQUNELE9BQU9DLE1BQVA7RUFDQTs7Ozs7O0VBOWlCRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUcsc0IsV0FETEMsY0FBYyxDQUFDLDBDQUFELEM7Ozs7Ozs7OztJQUVkO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO1dBQ0NDLE8sR0FBQSxpQkFBUUMsS0FBUixFQUE4QztNQUM3QyxJQUFNQyxlQUFlLEdBQUcsS0FBS0MsS0FBTCxDQUFXQyxpQkFBWCxFQUF4Qjs7TUFDQSxJQUFJLENBQUNGLGVBQUwsRUFBc0I7UUFDckI7UUFDQSxPQUFPRyxPQUFPLENBQUNDLE9BQVIsRUFBUDtNQUNBOztNQUNELElBQU1DLGFBQWEsR0FBR0MsV0FBVyxDQUFDQyxlQUFaLENBQTRCLEtBQUtOLEtBQWpDLENBQXRCO01BQUEsSUFDQ08sbUJBQW1CLEdBQUdILGFBQWEsQ0FBQ0kscUJBQWQsRUFEdkI7TUFBQSxJQUVDQyxVQUFVLEdBQUdWLGVBQWUsQ0FBQ1csUUFBaEIsR0FBMkJDLFlBQTNCLEVBRmQ7TUFBQSxJQUdDQyxZQUFp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
|
|
246
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwiT2JqZWN0UGFnZUV4dGVuc2lvbkFQSSIsImRlZmluZVVJNUNsYXNzIiwicmVmcmVzaCIsInZQYXRoIiwib0JpbmRpbmdDb250ZXh0IiwiX3ZpZXciLCJnZXRCaW5kaW5nQ29udGV4dCIsIlByb21pc2UiLCJyZXNvbHZlIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50Iiwib1NpZGVFZmZlY3RzU2VydmljZSIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsIm9NZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsIm9TaWRlRWZmZWN0cyIsIlRhcmdldFByb3BlcnRpZXMiLCJUYXJnZXRFbnRpdGllcyIsImFQYXRocyIsInNQYXRoIiwic0Jhc2VFbnRpdHlTZXQiLCJzS2luZCIsInVuZGVmaW5lZCIsInB1c2giLCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aCIsIkFycmF5IiwiaXNBcnJheSIsIl9jb250cm9sbGVyIiwiZ2V0T3duZXJDb21wb25lbnQiLCJnZXRFbnRpdHlTZXQiLCJpIiwibGVuZ3RoIiwiJFByb3BlcnR5UGF0aCIsImdldE9iamVjdCIsInJlamVjdCIsInJlcXVlc3RTaWRlRWZmZWN0cyIsImNvbmNhdCIsImdldFNlbGVjdGVkQ29udGV4dHMiLCJzVGFibGVJZCIsIm9UYWJsZSIsImJ5SWQiLCJpc0EiLCJnZXRDb250ZW50Iiwic2hvd1NpZGVDb250ZW50Iiwic1N1YlNlY3Rpb25LZXkiLCJiU2hvdyIsInNCbG9ja0lEIiwiZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRCIsIm9CbG9jayIsImJCbG9ja1N0YXRlIiwiZ2V0U2hvd1NpZGVDb250ZW50Iiwic2V0U2hvd1NpZGVDb250ZW50IiwiX2J1aWxkT1BNZXNzYWdlIiwibWVzc2FnZXMiLCJ2aWV3IiwiZ2V0UmVzb3VyY2VCdW5kbGUiLCJyZXNvdXJjZUJ1bmRsZSIsIm1lc3NhZ2UiLCJtZXNzYWdlU3RhdHMiLCJFcnJvciIsImlkIiwiY291bnQiLCJXYXJuaW5nIiwiSW5mb3JtYXRpb24iLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50VmFsdWUiLCJjdXJyZW50VHlwZSIsImdldFR5cGUiLCJzZXRUeXBlIiwiTWVzc2FnZSIsInR5cGUiLCJNZXNzYWdlVHlwZSIsInNldE1lc3NhZ2UiLCJnZXRUZXh0Iiwic2hvd01lc3NhZ2VzIiwiaW50ZXJuYWxNb2RlbENvbnRleHQiLCJzZXRQcm9wZXJ0eSIsImdldE1lc3NhZ2UiLCJJbnZpc2libGVNZXNzYWdlIiwiZ2V0SW5zdGFuY2UiLCJhbm5vdW5jZSIsIkludmlzaWJsZU1lc3NhZ2VNb2RlIiwiQXNzZXJ0aXZlIiwiaGlkZU1lc3NhZ2UiLCJMb2ciLCJlcnJvciIsIkV4dGVuc2lvbkFQSSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRXh0ZW5zaW9uQVBJLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHsgZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRCB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSURcIjtcbmltcG9ydCBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIFRhYmxlQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL1RhYmxlQVBJXCI7XG5pbXBvcnQgSW52aXNpYmxlTWVzc2FnZSBmcm9tIFwic2FwL3VpL2NvcmUvSW52aXNpYmxlTWVzc2FnZVwiO1xuaW1wb3J0IHsgSW52aXNpYmxlTWVzc2FnZU1vZGUsIE1lc3NhZ2VUeXBlIH0gZnJvbSBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBNZXNzYWdlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VcIjtcbmltcG9ydCB0eXBlIER5bmFtaWNTaWRlQ29udGVudCBmcm9tIFwic2FwL3VpL2xheW91dC9EeW5hbWljU2lkZUNvbnRlbnRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgUmVzb3VyY2VNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL3Jlc291cmNlL1Jlc291cmNlTW9kZWxcIjtcblxuLyoqXG4gKiBFeHRlbnNpb24gQVBJIGZvciBvYmplY3QgcGFnZXMgb24gU0FQIEZpb3JpIGVsZW1lbnRzIGZvciBPRGF0YSBWNC5cbiAqXG4gKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSVxuICogQHB1YmxpY1xuICogQGhpZGVjb25zdHJ1Y3RvclxuICogQGZpbmFsXG4gKiBAc2luY2UgMS43OS4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUElcIilcbmNsYXNzIE9iamVjdFBhZ2VFeHRlbnNpb25BUEkgZXh0ZW5kcyBFeHRlbnNpb25BUEkge1xuXHQvKipcblx0ICogUmVmcmVzaGVzIGVpdGhlciB0aGUgd2hvbGUgb2JqZWN0IHBhZ2Ugb3Igb25seSBwYXJ0cyBvZiBpdC5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjcmVmcmVzaFxuXHQgKiBAcGFyYW0gW3ZQYXRoXSBQYXRoIG9yIGFycmF5IG9mIHBhdGhzIHJlZmVycmluZyB0byBlbnRpdGllcyBvciBwcm9wZXJ0aWVzIHRvIGJlIHJlZnJlc2hlZC5cblx0ICogSWYgb21pdHRlZCwgdGhlIHdob2xlIG9iamVjdCBwYWdlIGlzIHJlZnJlc2hlZC4gVGhlIHBhdGggXCJcIiByZWZyZXNoZXMgdGhlIGVudGl0eSBhc3NpZ25lZCB0byB0aGUgb2JqZWN0IHBhZ2Vcblx0ICogd2l0aG91dCBuYXZpZ2F0aW9uc1xuXHQgKiBAcmV0dXJucyBSZXNvbHZlZCBvbmNlIHRoZSBkYXRhIGlzIHJlZnJlc2hlZCBvciByZWplY3RlZCBpZiB0aGUgcmVxdWVzdCBmYWlsZWRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0cmVmcmVzaCh2UGF0aDogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQpIHtcblx0XHRjb25zdCBvQmluZGluZ0NvbnRleHQgPSB0aGlzLl92aWV3LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRpZiAoIW9CaW5kaW5nQ29udGV4dCkge1xuXHRcdFx0Ly8gbm90aGluZyB0byBiZSByZWZyZXNoZWQgLSBkbyBub3QgYmxvY2sgdGhlIGFwcCFcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLl92aWV3KSxcblx0XHRcdG9TaWRlRWZmZWN0c1NlcnZpY2UgPSBvQXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpLFxuXHRcdFx0b01ldGFNb2RlbCA9IG9CaW5kaW5nQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0b1NpZGVFZmZlY3RzOiBhbnkgPSB7XG5cdFx0XHRcdFRhcmdldFByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHRUYXJnZXRFbnRpdGllczogW11cblx0XHRcdH07XG5cdFx0bGV0IGFQYXRocywgc1BhdGgsIHNCYXNlRW50aXR5U2V0LCBzS2luZDtcblxuXHRcdGlmICh2UGF0aCA9PT0gdW5kZWZpbmVkIHx8IHZQYXRoID09PSBudWxsKSB7XG5cdFx0XHQvLyB3ZSBqdXN0IGFkZCBhbiBlbXB0eSBwYXRoIHdoaWNoIHNob3VsZCByZWZyZXNoIHRoZSBwYWdlIHdpdGggYWxsIGRlcGVuZGVudCBiaW5kaW5nc1xuXHRcdFx0b1NpZGVFZmZlY3RzLlRhcmdldEVudGl0aWVzLnB1c2goe1xuXHRcdFx0XHQkTmF2aWdhdGlvblByb3BlcnR5UGF0aDogXCJcIlxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFQYXRocyA9IEFycmF5LmlzQXJyYXkodlBhdGgpID8gdlBhdGggOiBbdlBhdGhdO1xuXHRcdFx0c0Jhc2VFbnRpdHlTZXQgPSAodGhpcy5fY29udHJvbGxlci5nZXRPd25lckNvbXBvbmVudCgpIGFzIGFueSkuZ2V0RW50aXR5U2V0KCk7XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVBhdGhzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdHNQYXRoID0gYVBhdGhzW2ldO1xuXHRcdFx0XHRpZiAoc1BhdGggPT09IFwiXCIpIHtcblx0XHRcdFx0XHQvLyBhbiBlbXB0eSBwYXRoIHNoYWxsIHJlZnJlc2ggdGhlIGVudGl0eSB3aXRob3V0IGRlcGVuZGVuY2llcyB3aGljaCBtZWFucyAqIGZvciB0aGUgbW9kZWxcblx0XHRcdFx0XHRvU2lkZUVmZmVjdHMuVGFyZ2V0UHJvcGVydGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdCRQcm9wZXJ0eVBhdGg6IFwiKlwiXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c0tpbmQgPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7c0Jhc2VFbnRpdHlTZXR9LyR7c1BhdGh9LyRraW5kYCk7XG5cblx0XHRcdFx0XHRpZiAoc0tpbmQgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIpIHtcblx0XHRcdFx0XHRcdG9TaWRlRWZmZWN0cy5UYXJnZXRFbnRpdGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0JE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IHNQYXRoXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKHNLaW5kKSB7XG5cdFx0XHRcdFx0XHRvU2lkZUVmZmVjdHMuVGFyZ2V0UHJvcGVydGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogc1BhdGhcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoYCR7c1BhdGh9IGlzIG5vdCBhIHZhbGlkIHBhdGggdG8gYmUgcmVmcmVzaGVkYCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBvU2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhvU2lkZUVmZmVjdHMuVGFyZ2V0RW50aXRpZXMuY29uY2F0KG9TaWRlRWZmZWN0cy5UYXJnZXRQcm9wZXJ0aWVzKSwgb0JpbmRpbmdDb250ZXh0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBsaXN0IGVudHJpZXMgY3VycmVudGx5IHNlbGVjdGVkIGZvciB0aGUgdGFibGUuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI2dldFNlbGVjdGVkQ29udGV4dHNcblx0ICogQHBhcmFtIHNUYWJsZUlkIFRoZSBJRCBpZGVudGlmeWluZyB0aGUgdGFibGUgdGhlIHNlbGVjdGVkIGNvbnRleHQgaXMgcmVxdWVzdGVkIGZvclxuXHQgKiBAcmV0dXJucyBBcnJheSBjb250YWluaW5nIHRoZSBzZWxlY3RlZCBjb250ZXh0c1xuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRTZWxlY3RlZENvbnRleHRzKHNUYWJsZUlkOiBzdHJpbmcpIHtcblx0XHRsZXQgb1RhYmxlID0gdGhpcy5fdmlldy5ieUlkKHNUYWJsZUlkKTtcblx0XHRpZiAob1RhYmxlICYmIG9UYWJsZS5pc0EoXCJzYXAuZmUubWFjcm9zLnRhYmxlLlRhYmxlQVBJXCIpKSB7XG5cdFx0XHRvVGFibGUgPSAob1RhYmxlIGFzIEVuaGFuY2VXaXRoVUk1PFRhYmxlQVBJPikuZ2V0Q29udGVudCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gKG9UYWJsZSAmJiBvVGFibGUuaXNBKFwic2FwLnVpLm1kYy5UYWJsZVwiKSAmJiAob1RhYmxlIGFzIGFueSkuZ2V0U2VsZWN0ZWRDb250ZXh0cygpKSB8fCBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyBvciBoaWRlcyB0aGUgc2lkZSBjb250ZW50IG9mIGFuIG9iamVjdCBwYWdlLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNzaG93U2lkZUNvbnRlbnRcblx0ICogQHBhcmFtIHNTdWJTZWN0aW9uS2V5IEtleSBvZiB0aGUgc2lkZSBjb250ZW50IGZyYWdtZW50IGFzIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0Lmpzb25cblx0ICogQHBhcmFtIFtiU2hvd10gT3B0aW9uYWwgQm9vbGVhbiBmbGFnIHRvIHNob3cgb3IgaGlkZSB0aGUgc2lkZSBjb250ZW50XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHNob3dTaWRlQ29udGVudChzU3ViU2VjdGlvbktleTogc3RyaW5nLCBiU2hvdzogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IHNCbG9ja0lEID0gZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRChzU3ViU2VjdGlvbktleSksXG5cdFx0XHRvQmxvY2sgPSB0aGlzLl92aWV3LmJ5SWQoc0Jsb2NrSUQpLFxuXHRcdFx0YkJsb2NrU3RhdGUgPSBiU2hvdyA9PT0gdW5kZWZpbmVkID8gIShvQmxvY2sgYXMgRHluYW1pY1NpZGVDb250ZW50KS5nZXRTaG93U2lkZUNvbnRlbnQoKSA6IGJTaG93O1xuXHRcdChvQmxvY2sgYXMgRHluYW1pY1NpZGVDb250ZW50KS5zZXRTaG93U2lkZUNvbnRlbnQoYkJsb2NrU3RhdGUsIGZhbHNlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBib3VuZCBjb250ZXh0IG9mIHRoZSBjdXJyZW50IG9iamVjdCBwYWdlLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNnZXRCaW5kaW5nQ29udGV4dFxuXHQgKiBAcmV0dXJucyBDb250ZXh0IGJvdW5kIHRvIHRoZSBvYmplY3QgcGFnZVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRCaW5kaW5nQ29udGV4dCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEJ1aWxkIGEgbWVzc2FnZSB0byBiZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIGFuY2hvciBiYXIuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI19idWlsZE9QTWVzc2FnZVxuXHQgKiBAcGFyYW0ge3NhcC51aS5jb3JlLm1lc3NhZ2UuTWVzc2FnZVtdfSBtZXNzYWdlcyBBcnJheSBvZiBtZXNzYWdlcyB1c2VkIHRvIGdlbmVyYXRlZCB0aGUgbWVzc2FnZVxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxNZXNzYWdlPn0gUHJvbWlzZSBjb250YWluaW5nIHRoZSBnZW5lcmF0ZWQgbWVzc2FnZVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0YXN5bmMgX2J1aWxkT1BNZXNzYWdlKG1lc3NhZ2VzOiBNZXNzYWdlW10pOiBQcm9taXNlPE1lc3NhZ2UgfCBudWxsPiB7XG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuX3ZpZXc7XG5cdFx0Y29uc3QgcmVzb3VyY2VCdW5kbGUgPSBhd2FpdCAodmlldy5nZXRNb2RlbChcInNhcC5mZS5pMThuXCIpIGFzIFJlc291cmNlTW9kZWwpLmdldFJlc291cmNlQnVuZGxlKCk7XG5cdFx0bGV0IG1lc3NhZ2U6IE1lc3NhZ2UgfCBudWxsID0gbnVsbDtcblx0XHRzd2l0Y2ggKG1lc3NhZ2VzLmxlbmd0aCkge1xuXHRcdFx0Y2FzZSAwOlxuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgMTpcblx0XHRcdFx0bWVzc2FnZSA9IG1lc3NhZ2VzWzBdO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGNvbnN0IG1lc3NhZ2VTdGF0czogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcblx0XHRcdFx0XHRFcnJvcjogeyBpZDogMiwgY291bnQ6IDAgfSxcblx0XHRcdFx0XHRXYXJuaW5nOiB7IGlkOiAxLCBjb3VudDogMCB9LFxuXHRcdFx0XHRcdEluZm9ybWF0aW9uOiB7IGlkOiAwLCBjb3VudDogMCB9XG5cdFx0XHRcdH07XG5cdFx0XHRcdG1lc3NhZ2UgPSBtZXNzYWdlcy5yZWR1Y2UoKGFjYywgY3VycmVudFZhbHVlKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudFR5cGUgPSBjdXJyZW50VmFsdWUuZ2V0VHlwZSgpO1xuXHRcdFx0XHRcdGFjYy5zZXRUeXBlKG1lc3NhZ2VTdGF0c1tjdXJyZW50VHlwZV0uaWQgPiBtZXNzYWdlU3RhdHNbYWNjLmdldFR5cGUoKV0uaWQgPyBjdXJyZW50VHlwZSA6IGFjYy5nZXRUeXBlKCkpO1xuXHRcdFx0XHRcdG1lc3NhZ2VTdGF0c1tjdXJyZW50VHlwZV0uY291bnQrKztcblx0XHRcdFx0XHRyZXR1cm4gYWNjO1xuXHRcdFx0XHR9LCBuZXcgTWVzc2FnZSh7IHR5cGU6IE1lc3NhZ2VUeXBlLkluZm9ybWF0aW9uIH0pKTtcblxuXHRcdFx0XHRpZiAobWVzc2FnZVN0YXRzLkVycm9yLmNvdW50ID09PSAwICYmIG1lc3NhZ2VTdGF0cy5XYXJuaW5nLmNvdW50ID09PSAwICYmIG1lc3NhZ2VTdGF0cy5JbmZvcm1hdGlvbi5jb3VudCA+IDApIHtcblx0XHRcdFx0XHRtZXNzYWdlLnNldE1lc3NhZ2UocmVzb3VyY2VCdW5kbGUuZ2V0VGV4dChcIk9CSkVDVFBBR0VTVEFURV9JTkZPUk1BVElPTlwiKSk7XG5cdFx0XHRcdH0gZWxzZSBpZiAoKG1lc3NhZ2VTdGF0cy5FcnJvci5jb3VudCA+IDAgJiYgbWVzc2FnZVN0YXRzLldhcm5pbmcuY291bnQgPiAwKSB8fCBtZXNzYWdlU3RhdHMuSW5mb3JtYXRpb24uY291bnQgPiAwKSB7XG5cdFx0XHRcdFx0bWVzc2FnZS5zZXRNZXNzYWdlKHJlc291cmNlQnVuZGxlLmdldFRleHQoXCJPQkpFQ1RQQUdFU1RBVEVfSVNTVUVcIikpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdG1lc3NhZ2Uuc2V0TWVzc2FnZShcblx0XHRcdFx0XHRcdHJlc291cmNlQnVuZGxlLmdldFRleHQoXG5cdFx0XHRcdFx0XHRcdG1lc3NhZ2UuZ2V0VHlwZSgpID09PSBNZXNzYWdlVHlwZS5FcnJvciA/IFwiT0JKRUNUUEFHRVNUQVRFX0VSUk9SXCIgOiBcIk9CSkVDVFBBR0VTVEFURV9XQVJOSU5HXCJcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBtZXNzYWdlO1xuXHR9XG5cblx0LyoqXG5cdCAqIERpc3BsYXlzIHRoZSBtZXNzYWdlIHN0cmlwIGJldHdlZW4gdGhlIHRpdGxlIGFuZCB0aGUgaGVhZGVyIG9mIHRoZSBPYmplY3RQYWdlLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNzaG93TWVzc2FnZXNcblx0ICogQHBhcmFtIHtzYXAudWkuY29yZS5tZXNzYWdlLk1lc3NhZ2V9IG1lc3NhZ2VzIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXG5cdGFzeW5jIHNob3dNZXNzYWdlcyhtZXNzYWdlczogTWVzc2FnZVtdKSB7XG5cdFx0Y29uc3QgdmlldyA9IHRoaXMuX3ZpZXc7XG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB2aWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIik7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCB0aGlzLl9idWlsZE9QTWVzc2FnZShtZXNzYWdlcyk7XG5cdFx0XHRpZiAobWVzc2FnZSkge1xuXHRcdFx0XHQoaW50ZXJuYWxNb2RlbENvbnRleHQgYXMgYW55KT8uc2V0UHJvcGVydHkoXCJPUE1lc3NhZ2VTdHJpcFZpc2liaWxpdHlcIiwgdHJ1ZSk7XG5cdFx0XHRcdChpbnRlcm5hbE1vZGVsQ29udGV4dCBhcyBhbnkpPy5zZXRQcm9wZXJ0eShcIk9QTWVzc2FnZVN0cmlwVGV4dFwiLCBtZXNzYWdlLmdldE1lc3NhZ2UoKSk7XG5cdFx0XHRcdChpbnRlcm5hbE1vZGVsQ29udGV4dCBhcyBhbnkpPy5zZXRQcm9wZXJ0eShcIk9QTWVzc2FnZVN0cmlwVHlwZVwiLCBtZXNzYWdlLmdldFR5cGUoKSk7XG5cdFx0XHRcdEludmlzaWJsZU1lc3NhZ2UuZ2V0SW5zdGFuY2UoKS5hbm5vdW5jZShtZXNzYWdlLmdldE1lc3NhZ2UoKSwgSW52aXNpYmxlTWVzc2FnZU1vZGUuQXNzZXJ0aXZlKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuaGlkZU1lc3NhZ2UoKTtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdExvZy5lcnJvcihcIkNhbm5vdCBkaXNwbGF5IE9iamVjdFBhZ2UgbWVzc2FnZVwiKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogSGlkZXMgdGhlIG1lc3NhZ2Ugc3RyaXAgYmVsb3cgdGhlIGFuY2hvciBiYXIuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI2hpZGVNZXNzYWdlXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGhpZGVNZXNzYWdlKCkge1xuXHRcdGNvbnN0IHZpZXcgPSB0aGlzLl92aWV3O1xuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpO1xuXHRcdChpbnRlcm5hbE1vZGVsQ29udGV4dCBhcyBhbnkpPy5zZXRQcm9wZXJ0eShcIk9QTWVzc2FnZVN0cmlwVmlzaWJpbGl0eVwiLCBmYWxzZSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgT2JqZWN0UGFnZUV4dGVuc2lvbkFQSTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7O0VBa2pCTyxnQkFBZ0JBLElBQUksRUFBRUMsT0FBTyxFQUFFO0lBQ3JDLElBQUk7TUFDSCxJQUFJQyxNQUFNLEdBQUdGLElBQUksRUFBRTtJQUNwQixDQUFDLENBQUMsT0FBTUcsQ0FBQyxFQUFFO01BQ1YsT0FBT0YsT0FBTyxDQUFDRSxDQUFDLENBQUM7SUFDbEI7SUFDQSxJQUFJRCxNQUFNLElBQUlBLE1BQU0sQ0FBQ0UsSUFBSSxFQUFFO01BQzFCLE9BQU9GLE1BQU0sQ0FBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFSCxPQUFPLENBQUM7SUFDcEM7SUFDQSxPQUFPQyxNQUFNO0VBQ2Q7RUFBQztFQUFBO0VBOWlCRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFSQSxJQVVNRyxzQkFBc0IsV0FEM0JDLGNBQWMsQ0FBQywwQ0FBMEMsQ0FBQztJQUFBO0lBQUE7TUFBQTtJQUFBO0lBQUE7SUFFMUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFUQyxPQVVBQyxPQUFPLEdBQVAsaUJBQVFDLEtBQW9DLEVBQUU7TUFDN0MsSUFBTUMsZUFBZSxHQUFHLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxpQkFBaUIsRUFBYTtNQUNqRSxJQUFJLENBQUNGLGVBQWUsRUFBRTtRQUNyQjtRQUNBLE9BQU9HLE9BQU8sQ0FBQ0MsT0FBTyxFQUFFO01BQ3pCO01BQ0EsSUFBTUMsYUFBYSxHQUFHQyxXQUFXLENBQUNDLGVBQWUsQ0FBQyxJQUFJLENBQUNOLEtBQUssQ0FBQztRQUM1RE8sbUJBQW1CLEdBQUdILGFBQWEsQ0FBQ0kscUJBQXFCLEVBQUU7UUFDM0RDLFVBQVUsR0FBR1YsZUFBZSxDQUFDVyxRQUFRLEVBQUUsQ0FBQ0MsWUFBWSxFQUFFO1FBQ3REQyxZQUFpQixHQUFHO1VBQ25CQyxnQkFBZ0IsRUFBRSxFQUFFO1VBQ3BCQyxjQUFjLEVBQUU7UUFDakIsQ0FBQztNQUNGLElBQUlDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxjQUFjLEVBQUVDLEtBQUs7TUFFeEMsSUFBSXBCLEtBQUssS0FBS3FCLFNBQVMsSUFBSXJCLEtBQUssS0FBSyxJQUFJLEVBQUU7UUFDMUM7UUFDQWMsWUFBWSxDQUFDRSxjQUFjLENBQUNNLElBQUksQ0FBQztVQUNoQ0MsdUJBQXVCLEVBQUU7UUFDMUIsQ0FBQyxDQUFDO01BQ0gsQ0FBQyxNQUFNO1FBQ05OLE1BQU0sR0FBR08sS0FBSyxDQUFDQyxPQUFPLENBQUN6QixLQUFLLENBQUMsR0FBR0EsS0FBSyxHQUFHLENBQUNBLEtBQUssQ0FBQztRQUMvQ21CLGNBQWMsR0FBSSxJQUFJLENBQUNPLFdBQVcsQ0FBQ0MsaUJBQWlCLEVBQUUsQ0FBU0MsWUFBWSxFQUFFO1FBRTdFLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHWixNQUFNLENBQUNhLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7VUFDdkNYLEtBQUssR0FBR0QsTUFBTSxDQUFDWSxDQUFDLENBQUM7VUFDakIsSUFBSVgsS0FBSyxLQUFLLEVBQUUsRUFBRTtZQUNqQjtZQUNBSixZQUFZLENBQUNDLGdCQUFnQixDQUFDTyxJQUFJLENBQUM7Y0FDbENTLGFBQWEsRUFBRTtZQUNoQixDQUFDLENBQUM7VUFDSCxDQUFDLE1BQU07WUFDTlgsS0FBSyxHQUFHVCxVQUFVLENBQUNxQixTQUFTLFlBQUtiLGNBQWMsY0FBSUQsS0FBSyxZQUFTO1lBRWpFLElBQUlFLEtBQUssS0FBSyxvQkFBb0IsRUFBRTtjQUNuQ04sWUFBWSxDQUFDRSxjQUFjLENBQUNNLElBQUksQ0FBQztnQkFDaENDLHVCQUF1QixFQUFFTDtjQUMxQixDQUFDLENBQUM7WUFDSCxDQUFDLE1BQU0sSUFBSUUsS0FBSyxFQUFFO2NBQ2pCTixZQUFZLENBQUNDLGdCQUFnQixDQUFDTyxJQUFJLENBQUM7Z0JBQ2xDUyxhQUFhLEVBQUViO2NBQ2hCLENBQUMsQ0FBQztZQUNILENBQUMsTUFBTTtjQUNOLE9BQU9kLE9BQU8sQ0FBQzZCLE1BQU0sV0FBSWYsS0FBSywwQ0FBdUM7WUFDdEU7VUFDRDtRQUNEO01BQ0Q7TUFDQSxPQUFPVCxtQkFBbUIsQ0FBQ3lCLGtCQUFrQixDQUFDcEIsWUFBWSxDQUFDRSxjQUFjLENBQUNtQixNQUFNLENBQUNyQixZQUFZLENBQUNDLGdCQUFnQixDQUFDLEVBQUVkLGVBQWUsQ0FBQztJQUNsSTs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BUEM7SUFBQSxPQVFBbUMsbUJBQW1CLEdBQW5CLDZCQUFvQkMsUUFBZ0IsRUFBRTtNQUNyQyxJQUFJQyxNQUFNLEdBQUcsSUFBSSxDQUFDcEMsS0FBSyxDQUFDcUMsSUFBSSxDQUFDRixRQUFRLENBQUM7TUFDdEMsSUFBSUMsTUFBTSxJQUFJQSxNQUFNLENBQUNFLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFFO1FBQ3pERixNQUFNLEdBQUlBLE1BQU0sQ0FBOEJHLFVBQVUsRUFBRTtNQUMzRDtNQUNBLE9BQVFILE1BQU0sSUFBSUEsTUFBTSxDQUFDRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBS0YsTUFBTSxDQUFTRixtQkFBbUIsRUFBRSxJQUFLLEVBQUU7SUFDakc7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQVBDO0lBQUEsT0FRQU0sZUFBZSxHQUFmLHlCQUFnQkMsY0FBc0IsRUFBRUMsS0FBMEIsRUFBRTtNQUNuRSxJQUFNQyxRQUFRLEdBQUdDLHNCQUFzQixDQUFDSCxjQUFjLENBQUM7UUFDdERJLE1BQU0sR0FBRyxJQUFJLENBQUM3QyxLQUFLLENBQUNxQyxJQUFJLENBQUNNLFFBQVEsQ0FBQztRQUNsQ0csV0FBVyxHQUFHSixLQUFLLEtBQUt2QixTQUFTLEdBQUcsQ0FBRTBCLE1BQU0sQ0FBd0JFLGtCQUFrQixFQUFFLEdBQUdMLEtBQUs7TUFDaEdHLE1BQU0sQ0FBd0JHLGtCQUFrQixDQUFDRixXQUFXLEVBQUUsS0FBSyxDQUFDO0lBQ3RFOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTkM7SUFBQSxPQU9BN0MsaUJBQWlCLEdBQWpCLDZCQUFvQjtNQUNuQixPQUFPLElBQUksQ0FBQ0QsS0FBSyxDQUFDQyxpQkFBaUIsRUFBRTtJQUN0Qzs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BUEM7SUFBQSxPQVFNZ0QsZUFBZSw0QkFBQ0MsUUFBbUI7TUFBQSxJQUEyQjtRQUFBLGFBQ3RELElBQUk7UUFBakIsSUFBTUMsSUFBSSxHQUFHLE9BQUtuRCxLQUFLO1FBQUMsdUJBQ01tRCxJQUFJLENBQUN6QyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQW1CMEMsaUJBQWlCLEVBQUUsaUJBQTFGQyxjQUFjO1VBQ3BCLElBQUlDLE9BQXVCLEdBQUcsSUFBSTtVQUNsQyxRQUFRSixRQUFRLENBQUN0QixNQUFNO1lBQ3RCLEtBQUssQ0FBQztjQUNMO1lBQ0QsS0FBSyxDQUFDO2NBQ0wwQixPQUFPLEdBQUdKLFFBQVEsQ0FBQyxDQUFDLENBQUM7Y0FDckI7WUFDRDtjQUNDLElBQU1LLFlBQW9DLEdBQUc7Z0JBQzVDQyxLQUFLLEVBQUU7a0JBQUVDLEVBQUUsRUFBRSxDQUFDO2tCQUFFQyxLQUFLLEVBQUU7Z0JBQUUsQ0FBQztnQkFDMUJDLE9BQU8sRUFBRTtrQkFBRUYsRUFBRSxFQUFFLENBQUM7a0JBQUVDLEtBQUssRUFBRTtnQkFBRSxDQUFDO2dCQUM1QkUsV0FBVyxFQUFFO2tCQUFFSCxFQUFFLEVBQUUsQ0FBQztrQkFBRUMsS0FBSyxFQUFFO2dCQUFFO2NBQ2hDLENBQUM7Y0FDREosT0FBTyxHQUFHSixRQUFRLENBQUNXLE1BQU0sQ0FBQyxVQUFDQyxHQUFHLEVBQUVDLFlBQVksRUFBSztnQkFDaEQsSUFBTUMsV0FBVyxHQUFHRCxZQUFZLENBQUNFLE9BQU8sRUFBRTtnQkFDMUNILEdBQUcsQ0FBQ0ksT0FBTyxDQUFDWCxZQUFZLENBQUNTLFdBQVcsQ0FBQyxDQUFDUCxFQUFFLEdBQUdGLFlBQVksQ0FBQ08sR0FBRyxDQUFDRyxPQUFPLEVBQUUsQ0FBQyxDQUFDUixFQUFFLEdBQUdPLFdBQVcsR0FBR0YsR0FBRyxDQUFDRyxPQUFPLEVBQUUsQ0FBQztnQkFDeEdWLFlBQVksQ0FBQ1MsV0FBVyxDQUFDLENBQUNOLEtBQUssRUFBRTtnQkFDakMsT0FBT0ksR0FBRztjQUNYLENBQUMsRUFBRSxJQUFJSyxPQUFPLENBQUM7Z0JBQUVDLElBQUksRUFBRUMsV0FBVyxDQUFDVDtjQUFZLENBQUMsQ0FBQyxDQUFDO2NBRWxELElBQUlMLFlBQVksQ0FBQ0MsS0FBSyxDQUFDRSxLQUFLLEtBQUssQ0FBQyxJQUFJSCxZQUFZLENBQUNJLE9BQU8sQ0FBQ0QsS0FBSyxLQUFLLENBQUMsSUFBSUgsWUFBWSxDQUFDSyxXQUFXLENBQUNGLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQzdHSixPQUFPLENBQUNnQixVQUFVLENBQUNqQixjQUFjLENBQUNrQixPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQztjQUMxRSxDQUFDLE1BQU0sSUFBS2hCLFlBQVksQ0FBQ0MsS0FBSyxDQUFDRSxLQUFLLEdBQUcsQ0FBQyxJQUFJSCxZQUFZLENBQUNJLE9BQU8sQ0FBQ0QsS0FBSyxHQUFHLENBQUMsSUFBS0gsWUFBWSxDQUFDSyxXQUFXLENBQUNGLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ2xISixPQUFPLENBQUNnQixVQUFVLENBQUNqQixjQUFjLENBQUNrQixPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztjQUNwRSxDQUFDLE1BQU07Z0JBQ05qQixPQUFPLENBQUNnQixVQUFVLENBQ2pCakIsY0FBYyxDQUFDa0IsT0FBTyxDQUNyQmpCLE9BQU8sQ0FBQ1csT0FBTyxFQUFFLEtBQUtJLFdBQVcsQ0FBQ2IsS0FBSyxHQUFHLHVCQUF1QixHQUFHLHlCQUF5QixDQUM3RixDQUNEO2NBQ0Y7VUFBQztVQUVILE9BQU9GLE9BQU87UUFBQztNQUNoQixDQUFDO1FBQUE7TUFBQTtJQUFBO0lBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFOQztJQUFBLE9BUU1rQixZQUFZLHlCQUFDdEIsUUFBbUI7TUFBQSxJQUFFO1FBQUEsYUFDMUIsSUFBSTtRQUFqQixJQUFNQyxJQUFJLEdBQUcsT0FBS25ELEtBQUs7UUFDdkIsSUFBTXlFLG9CQUFvQixHQUFHdEIsSUFBSSxDQUFDbEQsaUJBQWlCLENBQUMsVUFBVSxDQUFDO1FBQUMsZ0NBQzVEO1VBQUEsdUJBQ21CLE9BQUtnRCxlQUFlLENBQUNDLFFBQVEsQ0FBQyxpQkFBOUNJLE9BQU87WUFBQSxJQUNUQSxPQUFPO2NBQ1RtQixvQkFBb0IsYUFBcEJBLG9CQUFvQix1QkFBcEJBLG9CQUFvQixDQUFVQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDO2NBQzNFRCxvQkFBb0IsYUFBcEJBLG9CQUFvQix1QkFBcEJBLG9CQUFvQixDQUFVQyxXQUFXLENBQUMsb0JBQW9CLEVBQUVwQixPQUFPLENBQUNxQixVQUFVLEVBQUUsQ0FBQztjQUNyRkYsb0JBQW9CLGFBQXBCQSxvQkFBb0IsdUJBQXBCQSxvQkFBb0IsQ0FBVUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFcEIsT0FBTyxDQUFDVyxPQUFPLEVBQUUsQ0FBQztjQUNuRlcsZ0JBQWdCLENBQUNDLFdBQVcsRUFBRSxDQUFDQyxRQUFRLENBQUN4QixPQUFPLENBQUNxQixVQUFVLEVBQUUsRUFBRUksb0JBQW9CLENBQUNDLFNBQVMsQ0FBQztZQUFDO2NBRTlGLE9BQUtDLFdBQVcsRUFBRTtZQUFDO1VBQUE7UUFFckIsQ0FBQyxjQUFhO1VBQ2JDLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLG1DQUFtQyxDQUFDO1FBQy9DLENBQUM7UUFBQTtNQUNGLENBQUM7UUFBQTtNQUFBO0lBQUE7SUFFRDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFMQztJQUFBLE9BTUFGLFdBQVcsR0FBWCx1QkFBYztNQUNiLElBQU05QixJQUFJLEdBQUcsSUFBSSxDQUFDbkQsS0FBSztNQUN2QixJQUFNeUUsb0JBQW9CLEdBQUd0QixJQUFJLENBQUNsRCxpQkFBaUIsQ0FBQyxVQUFVLENBQUM7TUFDOUR3RSxvQkFBb0IsYUFBcEJBLG9CQUFvQix1QkFBcEJBLG9CQUFvQixDQUFVQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDO0lBQzlFLENBQUM7SUFBQTtFQUFBLEVBMUxtQ1UsWUFBWTtFQUFBLE9BNkxsQ3pGLHNCQUFzQjtBQUFBIn0=
|
|
@@ -146,9 +146,9 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
|
|
|
146
146
|
break;
|
|
147
147
|
default:
|
|
148
148
|
const messageStats: { [key: string]: any } = {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
149
|
+
Error: { id: 2, count: 0 },
|
|
150
|
+
Warning: { id: 1, count: 0 },
|
|
151
|
+
Information: { id: 0, count: 0 }
|
|
152
152
|
};
|
|
153
153
|
message = messages.reduce((acc, currentValue) => {
|
|
154
154
|
const currentType = currentValue.getType();
|
|
@@ -173,7 +173,7 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
|
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
/**
|
|
176
|
-
* Displays the message strip
|
|
176
|
+
* Displays the message strip between the title and the header of the ObjectPage.
|
|
177
177
|
*
|
|
178
178
|
* @alias sap.fe.templates.ObjectPage.ExtensionAPI#showMessages
|
|
179
179
|
* @param {sap.ui.core.message.Message} messages The message to be displayed
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
xmlns:dt="sap.ui.dt"
|
|
12
12
|
xmlns:fl="sap.ui.fl"
|
|
13
13
|
xmlns:macro="sap.fe.macros"
|
|
14
|
+
xmlns:fclMacro="sap.fe.macros.fcl"
|
|
14
15
|
xmlns:internalMacro="sap.fe.macros.internal"
|
|
15
16
|
controllerName="sap.fe.templates.ObjectPage.ObjectPageController"
|
|
16
17
|
template:require="{
|
|
@@ -150,7 +151,7 @@
|
|
|
150
151
|
</template:if>
|
|
151
152
|
<!-- Flexible column layout menu-->
|
|
152
153
|
<template:if test="{= ${viewData>/fclEnabled} }">
|
|
153
|
-
<
|
|
154
|
+
<fclMacro:FlexibleColumnLayoutActions />
|
|
154
155
|
</template:if>
|
|
155
156
|
</uxap:navigationActions>
|
|
156
157
|
<uxap:actions>
|