@sapui5/sap.fe.macros 1.124.2 → 1.124.3
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/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/ai/EasyFilterBar.js +42 -7
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +50 -3
- package/src/sap/fe/macros/contact/Email.js +5 -7
- package/src/sap/fe/macros/contact/Email.tsx +5 -7
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +10 -4
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +11 -6
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +3 -3
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +3 -3
- package/src/sap/fe/macros/messages/MessageButton.js +3 -3
- package/src/sap/fe/macros/messages/MessageButton.ts +2 -2
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2024 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/fe/core/buildingBlocks/BuildingBlockBase", "sap/fe/core/controllerextensions/BusyLocker", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/templating/PropertyHelper", "sap/fe/macros/filter/FilterUtils", "sap/m/Button", "sap/m/FlexBox", "sap/m/Input", "sap/m/Label", "sap/m/MessageStrip", "sap/m/Token", "sap/m/Tokenizer", "sap/m/VBox", "sap/m/library", "sap/ui/core/Element", "sap/ui/model/json/JSONModel", "sap/ui/performance/trace/FESRHelper", "sap/fe/core/jsx-runtime/jsx", "sap/fe/core/jsx-runtime/jsxs"], function (Log, BuildingBlockBase, BusyLocker, ClassSupport, PropertyHelper, FilterUtils, Button, FlexBox, Input, Label, MessageStrip, Token, Tokenizer, VBox, library, UI5Element, JSONModel, FESRHelper, _jsx, _jsxs) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/fe/core/buildingBlocks/BuildingBlockBase", "sap/fe/core/controllerextensions/BusyLocker", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/ModelHelper", "sap/fe/core/templating/PropertyHelper", "sap/fe/macros/filter/FilterUtils", "sap/fe/macros/filterBar/DraftEditState", "sap/m/Button", "sap/m/FlexBox", "sap/m/Input", "sap/m/Label", "sap/m/MessageStrip", "sap/m/Token", "sap/m/Tokenizer", "sap/m/VBox", "sap/m/library", "sap/ui/core/Element", "sap/ui/model/json/JSONModel", "sap/ui/performance/trace/FESRHelper", "sap/fe/core/jsx-runtime/jsx", "sap/fe/core/jsx-runtime/jsxs"], function (Log, BuildingBlockBase, BusyLocker, ClassSupport, ModelHelper, PropertyHelper, FilterUtils, DraftEditState, Button, FlexBox, Input, Label, MessageStrip, Token, Tokenizer, VBox, library, UI5Element, JSONModel, FESRHelper, _jsx, _jsxs) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;
|
|
@@ -36,12 +36,14 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/buildingBlocks/BuildingBlockBase", "
|
|
|
36
36
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
37
37
|
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
|
|
38
38
|
function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }
|
|
39
|
-
|
|
39
|
+
// Editing status filter field key
|
|
40
|
+
const $editState = "$editState";
|
|
41
|
+
|
|
40
42
|
/**
|
|
41
43
|
* Delivery for beta release for the easy filter feature.
|
|
42
44
|
* @experimental
|
|
43
45
|
*/
|
|
44
|
-
_dec = defineUI5Class("sap.fe.macros.EasyFilterBar"), _dec2 = association({
|
|
46
|
+
let EasyFilterBar = (_dec = defineUI5Class("sap.fe.macros.EasyFilterBar"), _dec2 = association({
|
|
45
47
|
type: "sap.fe.macros.filterBar.FilterBarAPI"
|
|
46
48
|
}), _dec3 = property({
|
|
47
49
|
type: "string"
|
|
@@ -75,7 +77,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/buildingBlocks/BuildingBlockBase", "
|
|
|
75
77
|
const metaModel = (_owner$preprocessorCo = owner.preprocessorContext) === null || _owner$preprocessorCo === void 0 ? void 0 : _owner$preprocessorCo.models.metaModel;
|
|
76
78
|
const filterBar = UI5Element.getElementById(this.filterBar);
|
|
77
79
|
const fields = FilterUtils.getConvertedFilterFields(filterBar, undefined, undefined, metaModel);
|
|
78
|
-
|
|
80
|
+
const result = fields.filter(field => field.availability !== "Hidden") // Exclude hidden filter fields. It is not possible to set a value for hidden filters, and users would not understand anyway as they cannot see these values.
|
|
79
81
|
.map(field => {
|
|
80
82
|
var _propertyObject$targe;
|
|
81
83
|
const propertyObject = this.getDataModelObjectPath(field.annotationPath);
|
|
@@ -99,6 +101,29 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/buildingBlocks/BuildingBlockBase", "
|
|
|
99
101
|
codeList: codeList
|
|
100
102
|
};
|
|
101
103
|
});
|
|
104
|
+
|
|
105
|
+
// [Editing Status]
|
|
106
|
+
const editingStatusFilterFieldInfo = FilterUtils.getFilterPropertyInfo(filterBar).find(propertyInfo => propertyInfo.key === $editState && propertyInfo.availability !== "Hidden");
|
|
107
|
+
if (editingStatusFilterFieldInfo) {
|
|
108
|
+
// Assemble the code list for the editing status filter values:
|
|
109
|
+
const props = new JSONModel({
|
|
110
|
+
isDraftCollaborative: ModelHelper.isCollaborationDraftSupported(metaModel)
|
|
111
|
+
}).createBindingContext("/");
|
|
112
|
+
const editingStatusCodeList = DraftEditState.getEditStatesContext(props).getObject("/").map(state => ({
|
|
113
|
+
value: state.id,
|
|
114
|
+
description: state.display
|
|
115
|
+
}));
|
|
116
|
+
result.push({
|
|
117
|
+
name: $editState,
|
|
118
|
+
label: editingStatusFilterFieldInfo.label,
|
|
119
|
+
dataType: "Edm.String",
|
|
120
|
+
required: false,
|
|
121
|
+
filterable: true,
|
|
122
|
+
sortable: false,
|
|
123
|
+
codeList: editingStatusCodeList
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
102
127
|
};
|
|
103
128
|
_proto.getCodeListForProperty = async function getCodeListForProperty(key, propertyPath) {
|
|
104
129
|
// Fetch and cache the codeList for valueListWithFixedValues
|
|
@@ -174,14 +199,24 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/buildingBlocks/BuildingBlockBase", "
|
|
|
174
199
|
Log.debug("Filter criteria generated: ", JSON.stringify(easyFilterResult.data.filter, null, 2));
|
|
175
200
|
|
|
176
201
|
// Validate and apply the filter criteria
|
|
177
|
-
|
|
202
|
+
|
|
203
|
+
// If the returned conditions include the $editState filter, we need to clear the existing filter values for it (otherwise the new values will be added to the existing ones)
|
|
204
|
+
const clearEditFilter = easyFilterResult.data.filter.some(filterValue => filterValue.name === $editState);
|
|
205
|
+
await filterBarAPI._clearFilterValuesWithOptions(filterBar, {
|
|
206
|
+
clearEditFilter
|
|
207
|
+
});
|
|
178
208
|
const tokens = [];
|
|
179
209
|
for (const filterValue of easyFilterResult.data.filter) {
|
|
180
210
|
tokens.push({
|
|
181
211
|
key: filterValue.name,
|
|
182
212
|
text: `${filterValue.operator} ${filterValue.values}`
|
|
183
213
|
});
|
|
184
|
-
|
|
214
|
+
if (filterValue.name === $editState) {
|
|
215
|
+
// convert the $editState filter condition
|
|
216
|
+
await FilterUtils.addFilterValues(filterBarAPI.content, $editState, "DRAFT_EDIT_STATE", filterValue.values);
|
|
217
|
+
} else {
|
|
218
|
+
await FilterUtils.addFilterValues(filterBarAPI.content, filterValue.name, filterValue.operator, filterValue.values);
|
|
219
|
+
}
|
|
185
220
|
}
|
|
186
221
|
await filterBarAPI.triggerSearch();
|
|
187
222
|
this.stateModel.setProperty("/tokens", tokens);
|
|
@@ -299,4 +334,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/buildingBlocks/BuildingBlockBase", "
|
|
|
299
334
|
_exports = EasyFilterBar;
|
|
300
335
|
return _exports;
|
|
301
336
|
}, false);
|
|
302
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFYXN5RmlsdGVyQmFyIiwiZGVmaW5lVUk1Q2xhc3MiLCJhc3NvY2lhdGlvbiIsInR5cGUiLCJwcm9wZXJ0eSIsImRlZmluZVJlZmVyZW5jZSIsInByb3BlcnRpZXMiLCJvdGhlcnMiLCJmZXNyU3RlcE5hbWUiLCJlYXN5ZmlsdGVyIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMiLCJwcmVwYXJlRmVhdHVyZSIsInRoZW4iLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiX2ZldGNoZWRDb2RlTGlzdCIsInN0YXRlTW9kZWwiLCJKU09OTW9kZWwiLCJzaG93UmVzdWx0Iiwic2V0TW9kZWwiLCJmaWx0ZXJCYXJNZXRhZGF0YSIsInByZXBhcmVGaWx0ZXJCYXJNZXRhZGF0YSIsImNvbnRlbnQiLCJjcmVhdGVDb250ZW50Iiwib3duZXIiLCJfZ2V0T3duZXIiLCJtZXRhTW9kZWwiLCJwcmVwcm9jZXNzb3JDb250ZXh0IiwibW9kZWxzIiwiZmlsdGVyQmFyIiwiVUk1RWxlbWVudCIsImdldEVsZW1lbnRCeUlkIiwiZmllbGRzIiwiRmlsdGVyVXRpbHMiLCJnZXRDb252ZXJ0ZWRGaWx0ZXJGaWVsZHMiLCJ1bmRlZmluZWQiLCJmaWx0ZXIiLCJmaWVsZCIsImF2YWlsYWJpbGl0eSIsIm1hcCIsInByb3BlcnR5T2JqZWN0IiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsImFubm90YXRpb25QYXRoIiwiY29kZUxpc3QiLCJ0YXJnZXRPYmplY3QiLCJoYXNDb2RlTGlzdCIsImhhc1ZhbHVlSGVscFdpdGhGaXhlZFZhbHVlcyIsImtleSIsImdldENvZGVMaXN0Rm9yUHJvcGVydHkiLCJuYW1lIiwibGFiZWwiLCJkYXRhVHlwZSIsInJlcXVpcmVkIiwiZmlsdGVyYWJsZSIsInNvcnRhYmxlIiwiaXNQYXJhbWV0ZXIiLCJwcm9wZXJ0eVBhdGgiLCJvZGF0YU1vZGVsIiwiZ2V0TW9kZWwiLCJ2YWx1ZUxpc3QiLCJnZXRNZXRhTW9kZWwiLCJyZXF1ZXN0VmFsdWVMaXN0SW5mbyIsImRlZmF1bHRWYWx1ZUxpc3QiLCJzZWxlY3QiLCJQYXJhbWV0ZXJzIiwicGFyYW0iLCJWYWx1ZUxpc3RQcm9wZXJ0eSIsImpvaW4iLCJsaXN0QmluZGluZyIsIiRtb2RlbCIsImJpbmRMaXN0IiwiQ29sbGVjdGlvblBhdGgiLCIkc2VsZWN0IiwiZGF0YSIsInJlcXVlc3RDb250ZXh0cyIsInZhbHVlUHJvcGVydHkiLCJkZXNjcmlwdGlvblByb3BlcnR5IiwicGFyYW1ldGVyIiwiTG9jYWxEYXRhUHJvcGVydHkiLCIkUHJvcGVydHlQYXRoIiwiZmlsdGVyR3JvdXBWYWx1ZXMiLCJkYXR1bSIsImRhdGFvYmoiLCJnZXRPYmplY3QiLCJwdXNoIiwidmFsdWUiLCJkZXNjcmlwdGlvbiIsImNvZGVMaXN0UHJvcGVydHkiLCJmaW5kIiwib25Hb1ByZXNzIiwibWFnaWNRdWVyeSIsInNlYXJjaElucHV0IiwiY3VycmVudCIsImdldFZhbHVlIiwic2V0VmFsdWVTdGF0ZVRleHQiLCJzZXRWYWx1ZVN0YXRlIiwiZmlsdGVyQmFyQVBJIiwiZ2V0UGFyZW50IiwiX2NsZWFyRmlsdGVyVmFsdWVzV2l0aE9wdGlvbnMiLCJ0cmlnZ2VyU2VhcmNoIiwidWlNb2RlbCIsIkJ1c3lMb2NrZXIiLCJsb2NrIiwiZWFzeUZpbHRlck1ldGFkYXRhIiwidmVyc2lvbiIsImVudGl0eVNldCIsImNvbnRleHRQYXRoIiwiZ2V0T3duZXJDb250ZXh0UGF0aCIsImVhc3lGaWx0ZXJSZXN1bHQiLCJlYXN5RmlsdGVyIiwic3VjY2VzcyIsInVuY2xlYXIiLCJMb2ciLCJkZWJ1ZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0b2tlbnMiLCJmaWx0ZXJWYWx1ZSIsInRleHQiLCJvcGVyYXRvciIsInZhbHVlcyIsImFkZEZpbHRlclZhbHVlcyIsInNldFByb3BlcnR5IiwibWVzc2FnZSIsImVycm9yIiwidW5sb2NrIiwib25Ub2tlbkRlbGV0ZSIsIl9lIiwib25RdWVyeUNoYW5nZWQiLCJmaXJlRmlsdGVyc0NoYW5nZWQiLCJjb25kaXRpb25zQmFzZWQiLCJ2Qm94IiwiZSIsIkJ1dHRvblR5cGUiLCJFbXBoYXNpemVkIiwiZXZlbnQiLCJGRVNSSGVscGVyIiwic2V0U2VtYW50aWNTdGVwbmFtZSIsImdldFNvdXJjZSIsImlkeCIsImN0eCIsIm9iamVjdCIsImFkZEV2ZW50RGVsZWdhdGUiLCJvbmtleXVwIiwib25mb2N1c2luIiwiZ2V0VmFsdWVTdGF0ZSIsInJlcXVpcmVkRmllbGRzIiwicmVxdWlyZWRGaWVsZHNUZXh0IiwibGVuZ3RoIiwiQnVpbGRpbmdCbG9ja0Jhc2UiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVhc3lGaWx0ZXJCYXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2tCYXNlIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrQmFzZVwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL0J1c3lMb2NrZXJcIjtcbmltcG9ydCB7IGFzc29jaWF0aW9uLCBkZWZpbmVSZWZlcmVuY2UsIGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSwgdHlwZSBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9jb3JlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IHsgaGFzVmFsdWVIZWxwV2l0aEZpeGVkVmFsdWVzIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhckFQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVyQmFyQVBJXCI7XG5pbXBvcnQgdHlwZSB7IEJ1dHRvbiRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRmxleEJveCBmcm9tIFwic2FwL20vRmxleEJveFwiO1xuaW1wb3J0IElucHV0IGZyb20gXCJzYXAvbS9JbnB1dFwiO1xuaW1wb3J0IHR5cGUgeyBJbnB1dEJhc2UkQ2hhbmdlRXZlbnQgfSBmcm9tIFwic2FwL20vSW5wdXRCYXNlXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcInNhcC9tL0xhYmVsXCI7XG5pbXBvcnQgTWVzc2FnZVN0cmlwIGZyb20gXCJzYXAvbS9NZXNzYWdlU3RyaXBcIjtcbmltcG9ydCBUb2tlbiBmcm9tIFwic2FwL20vVG9rZW5cIjtcbmltcG9ydCBUb2tlbml6ZXIgZnJvbSBcInNhcC9tL1Rva2VuaXplclwiO1xuaW1wb3J0IFZCb3ggZnJvbSBcInNhcC9tL1ZCb3hcIjtcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgRkVTUkhlbHBlciBmcm9tIFwic2FwL3VpL3BlcmZvcm1hbmNlL3RyYWNlL0ZFU1JIZWxwZXJcIjtcbmltcG9ydCB0eXBlIEVhc3lGaWx0ZXIgZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWx0ZXIvRWFzeUZpbHRlclwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eU1ldGFkYXRhIGFzIEVhc3lGaWx0ZXJQcm9wZXJ0eU1ldGFkYXRhIH0gZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWx0ZXIvRWFzeUZpbHRlclwiO1xuXG4vKipcbiAqIERlbGl2ZXJ5IGZvciBiZXRhIHJlbGVhc2UgZm9yIHRoZSBlYXN5IGZpbHRlciBmZWF0dXJlLlxuICogQGV4cGVyaW1lbnRhbFxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLkVhc3lGaWx0ZXJCYXJcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVhc3lGaWx0ZXJCYXIgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZSB7XG5cdGZlc3JTdGVwTmFtZSA9IFwiZmU0OmFpOnNlYXJjaFwiO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLmZlLm1hY3Jvcy5maWx0ZXJCYXIuRmlsdGVyQmFyQVBJXCIgfSlcblx0ZmlsdGVyQmFyITogc3RyaW5nO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0Y29udGV4dFBhdGg/OiBzdHJpbmc7XG5cblx0QGRlZmluZVJlZmVyZW5jZSgpXG5cdHNlYXJjaElucHV0ITogUmVmPElucHV0PjtcblxuXHRlYXN5ZmlsdGVyOiBQcm9taXNlPHR5cGVvZiBFYXN5RmlsdGVyPiB8IHVuZGVmaW5lZDtcblxuXHRfZmV0Y2hlZENvZGVMaXN0ITogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cblx0cHJpdmF0ZSBmaWx0ZXJCYXJNZXRhZGF0YSE6IEVhc3lGaWx0ZXJQcm9wZXJ0eU1ldGFkYXRhW107XG5cblx0cHJpdmF0ZSBzdGF0ZU1vZGVsITogSlNPTk1vZGVsO1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6ICRDb250cm9sU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8RWFzeUZpbHRlckJhcj4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wZXJ0aWVzLCBvdGhlcnMpO1xuXHRcdHRoaXMuZWFzeWZpbHRlciA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KClcblx0XHRcdD8uZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKVxuXHRcdFx0LnByZXBhcmVGZWF0dXJlKFwiTWFnaWNGaWx0ZXJpbmdcIilcblx0XHRcdC50aGVuKGFzeW5jICgpID0+IGltcG9ydChcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWx0ZXIvRWFzeUZpbHRlclwiKSk7XG5cdH1cblxuXHRvbk1ldGFkYXRhQXZhaWxhYmxlKCk6IHZvaWQge1xuXHRcdHRoaXMuX2ZldGNoZWRDb2RlTGlzdCA/Pz0ge307XG5cdFx0dGhpcy5zdGF0ZU1vZGVsID0gbmV3IEpTT05Nb2RlbCh7IHNob3dSZXN1bHQ6IGZhbHNlIH0pO1xuXHRcdHRoaXMuc2V0TW9kZWwodGhpcy5zdGF0ZU1vZGVsLCBcInN0YXRlXCIpO1xuXHRcdHRoaXMuZmlsdGVyQmFyTWV0YWRhdGEgPSB0aGlzLnByZXBhcmVGaWx0ZXJCYXJNZXRhZGF0YSgpO1xuXHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHR9XG5cblx0cHJlcGFyZUZpbHRlckJhck1ldGFkYXRhKCk6IEVhc3lGaWx0ZXJQcm9wZXJ0eU1ldGFkYXRhW10ge1xuXHRcdGNvbnN0IG93bmVyID0gdGhpcy5fZ2V0T3duZXIoKSE7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gb3duZXIucHJlcHJvY2Vzc29yQ29udGV4dD8ubW9kZWxzLm1ldGFNb2RlbCBhcyBPRGF0YU1ldGFNb2RlbDtcblx0XHRjb25zdCBmaWx0ZXJCYXIgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZmlsdGVyQmFyKSBhcyBGaWx0ZXJCYXI7XG5cdFx0Y29uc3QgZmllbGRzID0gRmlsdGVyVXRpbHMuZ2V0Q29udmVydGVkRmlsdGVyRmllbGRzKGZpbHRlckJhciwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG1ldGFNb2RlbCk7XG5cblx0XHRyZXR1cm4gZmllbGRzXG5cdFx0XHQuZmlsdGVyKChmaWVsZCkgPT4gZmllbGQuYXZhaWxhYmlsaXR5ICE9PSBcIkhpZGRlblwiKSAvLyBFeGNsdWRlIGhpZGRlbiBmaWx0ZXIgZmllbGRzLiBJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0IGEgdmFsdWUgZm9yIGhpZGRlbiBmaWx0ZXJzLCBhbmQgdXNlcnMgd291bGQgbm90IHVuZGVyc3RhbmQgYW55d2F5IGFzIHRoZXkgY2Fubm90IHNlZSB0aGVzZSB2YWx1ZXMuXG5cdFx0XHQubWFwKChmaWVsZCk6IEVhc3lGaWx0ZXJQcm9wZXJ0eU1ldGFkYXRhID0+IHtcblx0XHRcdFx0Y29uc3QgcHJvcGVydHlPYmplY3QgPSB0aGlzLmdldERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+KGZpZWxkLmFubm90YXRpb25QYXRoKTtcblx0XHRcdFx0bGV0IGNvZGVMaXN0O1xuXHRcdFx0XHRpZiAocHJvcGVydHlPYmplY3Q/LnRhcmdldE9iamVjdCkge1xuXHRcdFx0XHRcdGNvbnN0IGhhc0NvZGVMaXN0ID0gaGFzVmFsdWVIZWxwV2l0aEZpeGVkVmFsdWVzKHByb3BlcnR5T2JqZWN0Py50YXJnZXRPYmplY3QpO1xuXHRcdFx0XHRcdGlmIChoYXNDb2RlTGlzdCkge1xuXHRcdFx0XHRcdFx0Y29kZUxpc3QgPSB0aGlzLl9mZXRjaGVkQ29kZUxpc3RbZmllbGQua2V5XTtcblx0XHRcdFx0XHRcdGlmICghY29kZUxpc3QpIHtcblx0XHRcdFx0XHRcdFx0Y29kZUxpc3QgPSBhc3luYyAoKTogUHJvbWlzZTx1bmtub3duPiA9PiB0aGlzLmdldENvZGVMaXN0Rm9yUHJvcGVydHkoZmllbGQua2V5LCBmaWVsZC5hbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0bmFtZTogZmllbGQua2V5LFxuXHRcdFx0XHRcdGxhYmVsOiBmaWVsZC5sYWJlbCxcblx0XHRcdFx0XHRkYXRhVHlwZTogcHJvcGVydHlPYmplY3Q/LnRhcmdldE9iamVjdD8udHlwZSxcblx0XHRcdFx0XHRyZXF1aXJlZDogISFmaWVsZC5yZXF1aXJlZCxcblx0XHRcdFx0XHRmaWx0ZXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdHNvcnRhYmxlOiAhZmllbGQuaXNQYXJhbWV0ZXIsXG5cdFx0XHRcdFx0Y29kZUxpc3Q6IGNvZGVMaXN0XG5cdFx0XHRcdH0gYXMgRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGE7XG5cdFx0XHR9KTtcblx0fVxuXG5cdGFzeW5jIGdldENvZGVMaXN0Rm9yUHJvcGVydHkoa2V5OiBzdHJpbmcsIHByb3BlcnR5UGF0aDogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPiB7XG5cdFx0Ly8gRmV0Y2ggYW5kIGNhY2hlIHRoZSBjb2RlTGlzdCBmb3IgdmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzXG5cdFx0Y29uc3Qgb2RhdGFNb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsO1xuXHRcdGNvbnN0IHZhbHVlTGlzdCA9IGF3YWl0IG9kYXRhTW9kZWwuZ2V0TWV0YU1vZGVsKCkucmVxdWVzdFZhbHVlTGlzdEluZm8ocHJvcGVydHlQYXRoKTtcblx0XHRjb25zdCBkZWZhdWx0VmFsdWVMaXN0ID0gdmFsdWVMaXN0W1wiXCJdO1xuXHRcdGNvbnN0IHNlbGVjdCA9IGRlZmF1bHRWYWx1ZUxpc3QuUGFyYW1ldGVycy5tYXAoKHBhcmFtOiB7IFZhbHVlTGlzdFByb3BlcnR5OiBzdHJpbmcgfSkgPT4gcGFyYW0uVmFsdWVMaXN0UHJvcGVydHkpLmpvaW4oXCIsXCIpO1xuXHRcdGNvbnN0IGxpc3RCaW5kaW5nID0gZGVmYXVsdFZhbHVlTGlzdC4kbW9kZWwuYmluZExpc3QoXCIvXCIgKyBkZWZhdWx0VmFsdWVMaXN0LkNvbGxlY3Rpb25QYXRoLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB7XG5cdFx0XHQkc2VsZWN0OiBzZWxlY3Rcblx0XHR9KTtcblx0XHRjb25zdCBkYXRhID0gYXdhaXQgbGlzdEJpbmRpbmcucmVxdWVzdENvbnRleHRzKCk7XG5cdFx0bGV0IHZhbHVlUHJvcGVydHk6IHN0cmluZztcblx0XHRsZXQgZGVzY3JpcHRpb25Qcm9wZXJ0eTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGZvciAoY29uc3QgcGFyYW1ldGVyIG9mIGRlZmF1bHRWYWx1ZUxpc3QuUGFyYW1ldGVycykge1xuXHRcdFx0aWYgKHBhcmFtZXRlci5Mb2NhbERhdGFQcm9wZXJ0eT8uJFByb3BlcnR5UGF0aCA9PT0ga2V5KSB7XG5cdFx0XHRcdHZhbHVlUHJvcGVydHkgPSBwYXJhbWV0ZXIuVmFsdWVMaXN0UHJvcGVydHk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkZXNjcmlwdGlvblByb3BlcnR5ID0gcGFyYW1ldGVyLlZhbHVlTGlzdFByb3BlcnR5O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGZpbHRlckdyb3VwVmFsdWVzID0gW107XG5cdFx0Zm9yIChjb25zdCBkYXR1bSBvZiBkYXRhKSB7XG5cdFx0XHRjb25zdCBkYXRhb2JqID0gZGF0dW0uZ2V0T2JqZWN0KCk7XG5cdFx0XHRmaWx0ZXJHcm91cFZhbHVlcy5wdXNoKHtcblx0XHRcdFx0dmFsdWU6IGRhdGFvYmpbdmFsdWVQcm9wZXJ0eSFdLFxuXHRcdFx0XHRkZXNjcmlwdGlvbjogZGVzY3JpcHRpb25Qcm9wZXJ0eSA/IGRhdGFvYmpbZGVzY3JpcHRpb25Qcm9wZXJ0eV0gOiB1bmRlZmluZWRcblx0XHRcdH0pO1xuXHRcdH1cblx0XHR0aGlzLl9mZXRjaGVkQ29kZUxpc3Rba2V5XSA9IGZpbHRlckdyb3VwVmFsdWVzO1xuXHRcdGNvbnN0IGNvZGVMaXN0UHJvcGVydHkgPSB0aGlzLmZpbHRlckJhck1ldGFkYXRhLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSBrZXkpO1xuXHRcdGlmIChjb2RlTGlzdFByb3BlcnR5KSB7XG5cdFx0XHRjb2RlTGlzdFByb3BlcnR5LmNvZGVMaXN0ID0gZmlsdGVyR3JvdXBWYWx1ZXM7XG5cdFx0fVxuXHRcdHJldHVybiBmaWx0ZXJHcm91cFZhbHVlcztcblx0fVxuXG5cdGFzeW5jIG9uR29QcmVzcygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBtYWdpY1F1ZXJ5ID0gdGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5nZXRWYWx1ZSgpO1xuXG5cdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlVGV4dChcIlwiKTtcblx0XHR0aGlzLnNlYXJjaElucHV0LmN1cnJlbnQ/LnNldFZhbHVlU3RhdGUoXCJOb25lXCIpO1xuXG5cdFx0Y29uc3QgZmlsdGVyQmFyID0gVUk1RWxlbWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpbHRlckJhcikgYXMgRmlsdGVyQmFyO1xuXHRcdGNvbnN0IGZpbHRlckJhckFQSSA9IGZpbHRlckJhci5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEk7XG5cblx0XHRpZiAoIW1hZ2ljUXVlcnkpIHtcblx0XHRcdC8vIEVtcHR5IGlucHV0OiBjbGVhciB0aGUgZmlsdGVycyBhbmQgcmVmcmVzaCB0aGUgbGlzdFxuXHRcdFx0YXdhaXQgZmlsdGVyQmFyQVBJLl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zKGZpbHRlckJhcik7XG5cdFx0XHRhd2FpdCBmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IHVpTW9kZWwgPSB0aGlzLmdldE1vZGVsKFwidWlcIikgYXMgSlNPTk1vZGVsO1xuXHRcdEJ1c3lMb2NrZXIubG9jayh1aU1vZGVsKTtcblx0XHQvLyBDYWxsIEFJIHNlcnZpY2UgdG8gZ2V0IHRoZSBmaWx0ZXIgY3JpdGVyaWFcblx0XHRjb25zdCBlYXN5ZmlsdGVyID0gYXdhaXQgdGhpcy5lYXN5ZmlsdGVyO1xuXHRcdGlmICghZWFzeWZpbHRlcikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGVhc3lGaWx0ZXJNZXRhZGF0YSA9IHtcblx0XHRcdHZlcnNpb246IDEsXG5cdFx0XHRlbnRpdHlTZXQ6IHRoaXMuY29udGV4dFBhdGggPz8gdGhpcy5nZXRPd25lckNvbnRleHRQYXRoKCkgPz8gXCJcIixcblx0XHRcdGZpZWxkczogdGhpcy5maWx0ZXJCYXJNZXRhZGF0YVxuXHRcdH07XG5cblx0XHRjb25zdCBlYXN5RmlsdGVyUmVzdWx0ID0gYXdhaXQgZWFzeWZpbHRlci5lYXN5RmlsdGVyKG1hZ2ljUXVlcnksIGVhc3lGaWx0ZXJNZXRhZGF0YSk7XG5cblx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5zdWNjZXNzKSB7XG5cdFx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5kYXRhLnZlcnNpb24gPT09IDEpIHtcblx0XHRcdFx0aWYgKGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS51bmNsZWFyKSB7XG5cdFx0XHRcdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlKFwiV2FybmluZ1wiKTtcblx0XHRcdFx0XHR0aGlzLnNlYXJjaElucHV0LmN1cnJlbnQ/LnNldFZhbHVlU3RhdGVUZXh0KFwiVW5jbGVhciBpbnB1dDogXCIgKyBlYXN5RmlsdGVyUmVzdWx0LmRhdGEudW5jbGVhcik7IC8vIFRPRE86IERvZXMgdGhpcyBtYWtlIHNlbnNlP1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChlYXN5RmlsdGVyUmVzdWx0LmRhdGEuZmlsdGVyKSB7XG5cdFx0XHRcdFx0Ly8gV2UgbmVlZCB0byBzaG93IGEgbWVzc2FnZSB0byB0aGUgdXNlciB0aGF0IHRoZSBmaWx0ZXIgY3JpdGVyaWEgaGFzIGJlZW4gZ2VuZXJhdGVkXG5cdFx0XHRcdFx0TG9nLmRlYnVnKFwiRmlsdGVyIGNyaXRlcmlhIGdlbmVyYXRlZDogXCIsIEpTT04uc3RyaW5naWZ5KGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS5maWx0ZXIsIG51bGwsIDIpKTtcblxuXHRcdFx0XHRcdC8vIFZhbGlkYXRlIGFuZCBhcHBseSB0aGUgZmlsdGVyIGNyaXRlcmlhXG5cdFx0XHRcdFx0YXdhaXQgZmlsdGVyQmFyQVBJLl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zKGZpbHRlckJhcik7XG5cblx0XHRcdFx0XHRjb25zdCB0b2tlbnMgPSBbXTtcblx0XHRcdFx0XHRmb3IgKGNvbnN0IGZpbHRlclZhbHVlIG9mIGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS5maWx0ZXIpIHtcblx0XHRcdFx0XHRcdHRva2Vucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0a2V5OiBmaWx0ZXJWYWx1ZS5uYW1lLFxuXHRcdFx0XHRcdFx0XHR0ZXh0OiBgJHtmaWx0ZXJWYWx1ZS5vcGVyYXRvcn0gJHtmaWx0ZXJWYWx1ZS52YWx1ZXN9YFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRhd2FpdCBGaWx0ZXJVdGlscy5hZGRGaWx0ZXJWYWx1ZXMoZmlsdGVyQmFyQVBJLmNvbnRlbnQsIGZpbHRlclZhbHVlLm5hbWUsIGZpbHRlclZhbHVlLm9wZXJhdG9yLCBmaWx0ZXJWYWx1ZS52YWx1ZXMpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRhd2FpdCBmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0XHRcdHRoaXMuc3RhdGVNb2RlbC5zZXRQcm9wZXJ0eShcIi90b2tlbnNcIiwgdG9rZW5zKTtcblx0XHRcdFx0XHR0aGlzLnN0YXRlTW9kZWwuc2V0UHJvcGVydHkoXCIvc2hvd1Jlc3VsdFwiLCB0cnVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChlYXN5RmlsdGVyUmVzdWx0LmRhdGEudmVyc2lvbiA9PT0gMikge1xuXHRcdFx0XHQvLyBDcmVhdGUgdGhlIHNhcC51aS5tb2RlbC5GaWx0ZXIgZnJvbSB0aGUgZmlsdGVyIGFuZCBhcHBseSBpdCBkaXJlY3RseSB0byB0aGUgbGlzdCBiaW5kaW5nXG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGVycm9yXG5cdFx0XHR0aGlzLnNlYXJjaElucHV0LmN1cnJlbnQ/LnNldFZhbHVlU3RhdGUoXCJXYXJuaW5nXCIpO1xuXHRcdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlVGV4dChlYXN5RmlsdGVyUmVzdWx0Lm1lc3NhZ2UpO1xuXHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZ2VuZXJhdGluZyBmaWx0ZXIgY3JpdGVyaWE6IFwiLCBlYXN5RmlsdGVyUmVzdWx0Lm1lc3NhZ2UpO1xuXHRcdH1cblxuXHRcdEJ1c3lMb2NrZXIudW5sb2NrKHVpTW9kZWwpO1xuXHR9XG5cblx0b25Ub2tlbkRlbGV0ZShfZTogVUk1RXZlbnQ8eyB0b2tlbnM6IFRva2VuW10gfSwgVG9rZW5pemVyPik6IHZvaWQge1xuXHRcdHRoaXMuc3RhdGVNb2RlbC5zZXRQcm9wZXJ0eShcIi9zaG93UmVzdWx0XCIsIGZhbHNlKTtcblx0fVxuXG5cdG9uUXVlcnlDaGFuZ2VkKF9lOiBJbnB1dEJhc2UkQ2hhbmdlRXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCBmaWx0ZXJCYXIgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZmlsdGVyQmFyKSBhcyBGaWx0ZXJCYXI7XG5cdFx0ZmlsdGVyQmFyLmZpcmVGaWx0ZXJzQ2hhbmdlZCh7IGNvbmRpdGlvbnNCYXNlZDogdHJ1ZSB9KTtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogVkJveCB7XG5cdFx0Y29uc3QgdkJveCA9IChcblx0XHRcdDxWQm94PlxuXHRcdFx0XHQ8TWVzc2FnZVN0cmlwXG5cdFx0XHRcdFx0dGV4dD1cIlByb21wdC1iYXNlZCBmaWx0ZXJpbmcgY3JlYXRlcyBjb21wbGV0ZWx5IG5ldyBmaWx0ZXIgY3JpdGVyaWEuIEdlbmVyYXRlZCBjb250ZW50IG1heSBub3QgYWx3YXlzIGJlIGFjY3VyYXRlLiBDb25zaWRlciB2ZXJpZnlpbmcgaXQuXCJcblx0XHRcdFx0XHRzaG93SWNvbj17dHJ1ZX1cblx0XHRcdFx0XHRzaG93Q2xvc2VCdXR0b249e3RydWV9XG5cdFx0XHRcdFx0Y2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpbkJvdHRvbVwifVxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8RmxleEJveCByZW5kZXJUeXBlPVwiQmFyZVwiPlxuXHRcdFx0XHRcdDxJbnB1dFxuXHRcdFx0XHRcdFx0cmVmPXt0aGlzLnNlYXJjaElucHV0fVxuXHRcdFx0XHRcdFx0d2lkdGg9XCIxMDAlXCJcblx0XHRcdFx0XHRcdHNob3dDbGVhckljb249e3RydWV9XG5cdFx0XHRcdFx0XHRjaGFuZ2U9eyhlKTogdm9pZCA9PiB0aGlzLm9uUXVlcnlDaGFuZ2VkKGUpfVxuXHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIHF1ZXJ5IGluIG5hdHVyYWwgbGFuZ3VhZ2UgdG8gZmlsdGVyIHRoZSBsaXN0XCJcblx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5FbmRcIn1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly9haVwifVxuXHRcdFx0XHRcdFx0dGV4dD17XCJHb1wifVxuXHRcdFx0XHRcdFx0dHlwZT17QnV0dG9uVHlwZS5FbXBoYXNpemVkfVxuXHRcdFx0XHRcdFx0cHJlc3M9eyhldmVudDogQnV0dG9uJFByZXNzRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKGV2ZW50LmdldFNvdXJjZSgpLCBcInByZXNzXCIsIHRoaXMuZmVzclN0ZXBOYW1lKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5vbkdvUHJlc3MoKTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0XHQ8RmxleEJveCByZW5kZXJUeXBlPVwiQmFyZVwiIHZpc2libGU9e2ZhbHNlfT5cblx0XHRcdFx0XHQ8TGFiZWwgdGV4dD1cIlNob3dpbmcgcmVzdWx0cyBmb3I6IFwiIGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5Ub3BcIn0gLz5cblx0XHRcdFx0XHQ8VG9rZW5pemVyXG5cdFx0XHRcdFx0XHR0b2tlbnM9e1wie3N0YXRlPi90b2tlbnN9XCJ9XG5cdFx0XHRcdFx0XHR0b2tlbkRlbGV0ZT17KGUpOiB2b2lkID0+IHRoaXMub25Ub2tlbkRlbGV0ZShlIGFzIFVJNUV2ZW50PHsgdG9rZW5zOiBUb2tlbltdIH0sIFRva2VuaXplcj4pfVxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdHRva2VuczogKGlkeDogbnVtYmVyLCBjdHg6IENvbnRleHQpOiBUb2tlbiA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgb2JqZWN0ID0gY3R4LmdldE9iamVjdCgpO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiA8VG9rZW4ga2V5PXtvYmplY3Qua2V5fSB0ZXh0PXtvYmplY3QudGV4dH0gLz47XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PC9Ub2tlbml6ZXI+XG5cdFx0XHRcdDwvRmxleEJveD5cblx0XHRcdDwvVkJveD5cblx0XHQpO1xuXHRcdHRoaXMuc2VhcmNoSW5wdXQuY3VycmVudD8uYWRkRXZlbnREZWxlZ2F0ZSh7XG5cdFx0XHRvbmtleXVwOiAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuXHRcdFx0XHRpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuXHRcdFx0XHRcdHRoaXMub25Hb1ByZXNzKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRvbmZvY3VzaW46ICgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuc2VhcmNoSW5wdXQuY3VycmVudD8uZ2V0VmFsdWVTdGF0ZSgpID09PSBcIk5vbmVcIiAmJiB0aGlzLmZpbHRlckJhck1ldGFkYXRhLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5yZXF1aXJlZCkpIHtcblx0XHRcdFx0XHR0aGlzLnNlYXJjaElucHV0LmN1cnJlbnQ/LnNldFZhbHVlU3RhdGUoXCJJbmZvcm1hdGlvblwiKTtcblx0XHRcdFx0XHRjb25zdCByZXF1aXJlZEZpZWxkcyA9IHRoaXMuZmlsdGVyQmFyTWV0YWRhdGEuZmlsdGVyKChmaWVsZCkgPT4gZmllbGQucmVxdWlyZWQpO1xuXHRcdFx0XHRcdGNvbnN0IHJlcXVpcmVkRmllbGRzVGV4dCA9IHJlcXVpcmVkRmllbGRzLm1hcCgoZmllbGQpID0+IGZpZWxkLmxhYmVsKS5qb2luKFwiLCBcIik7XG5cdFx0XHRcdFx0aWYgKHJlcXVpcmVkRmllbGRzLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlVGV4dChgJHtyZXF1aXJlZEZpZWxkc1RleHR9IGlzIGEgbWFuZGF0b3J5IGZpbHRlci5gKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlVGV4dChgJHtyZXF1aXJlZEZpZWxkc1RleHR9IGFyZSBtYW5kYXRvcnkgZmlsdGVycy5gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gdkJveDtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXFDcUJBLGFBQWE7RUFMbEM7QUFDQTtBQUNBO0FBQ0E7RUFIQSxPQUlDQyxjQUFjLENBQUMsNkJBQTZCLENBQUMsVUFJNUNDLFdB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
|
|
337
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyIkZWRpdFN0YXRlIiwiRWFzeUZpbHRlckJhciIsImRlZmluZVVJNUNsYXNzIiwiYXNzb2NpYXRpb24iLCJ0eXBlIiwicHJvcGVydHkiLCJkZWZpbmVSZWZlcmVuY2UiLCJwcm9wZXJ0aWVzIiwib3RoZXJzIiwiZmVzclN0ZXBOYW1lIiwiZWFzeWZpbHRlciIsImdldEFwcENvbXBvbmVudCIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwicHJlcGFyZUZlYXR1cmUiLCJ0aGVuIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsIl9mZXRjaGVkQ29kZUxpc3QiLCJzdGF0ZU1vZGVsIiwiSlNPTk1vZGVsIiwic2hvd1Jlc3VsdCIsInNldE1vZGVsIiwiZmlsdGVyQmFyTWV0YWRhdGEiLCJwcmVwYXJlRmlsdGVyQmFyTWV0YWRhdGEiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsIm93bmVyIiwiX2dldE93bmVyIiwibWV0YU1vZGVsIiwicHJlcHJvY2Vzc29yQ29udGV4dCIsIm1vZGVscyIsImZpbHRlckJhciIsIlVJNUVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImZpZWxkcyIsIkZpbHRlclV0aWxzIiwiZ2V0Q29udmVydGVkRmlsdGVyRmllbGRzIiwidW5kZWZpbmVkIiwicmVzdWx0IiwiZmlsdGVyIiwiZmllbGQiLCJhdmFpbGFiaWxpdHkiLCJtYXAiLCJwcm9wZXJ0eU9iamVjdCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJhbm5vdGF0aW9uUGF0aCIsImNvZGVMaXN0IiwidGFyZ2V0T2JqZWN0IiwiaGFzQ29kZUxpc3QiLCJoYXNWYWx1ZUhlbHBXaXRoRml4ZWRWYWx1ZXMiLCJrZXkiLCJnZXRDb2RlTGlzdEZvclByb3BlcnR5IiwibmFtZSIsImxhYmVsIiwiZGF0YVR5cGUiLCJyZXF1aXJlZCIsImZpbHRlcmFibGUiLCJzb3J0YWJsZSIsImlzUGFyYW1ldGVyIiwiZWRpdGluZ1N0YXR1c0ZpbHRlckZpZWxkSW5mbyIsImdldEZpbHRlclByb3BlcnR5SW5mbyIsImZpbmQiLCJwcm9wZXJ0eUluZm8iLCJwcm9wcyIsImlzRHJhZnRDb2xsYWJvcmF0aXZlIiwiTW9kZWxIZWxwZXIiLCJpc0NvbGxhYm9yYXRpb25EcmFmdFN1cHBvcnRlZCIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwiZWRpdGluZ1N0YXR1c0NvZGVMaXN0IiwiRHJhZnRFZGl0U3RhdGUiLCJnZXRFZGl0U3RhdGVzQ29udGV4dCIsImdldE9iamVjdCIsInN0YXRlIiwidmFsdWUiLCJpZCIsImRlc2NyaXB0aW9uIiwiZGlzcGxheSIsInB1c2giLCJwcm9wZXJ0eVBhdGgiLCJvZGF0YU1vZGVsIiwiZ2V0TW9kZWwiLCJ2YWx1ZUxpc3QiLCJnZXRNZXRhTW9kZWwiLCJyZXF1ZXN0VmFsdWVMaXN0SW5mbyIsImRlZmF1bHRWYWx1ZUxpc3QiLCJzZWxlY3QiLCJQYXJhbWV0ZXJzIiwicGFyYW0iLCJWYWx1ZUxpc3RQcm9wZXJ0eSIsImpvaW4iLCJsaXN0QmluZGluZyIsIiRtb2RlbCIsImJpbmRMaXN0IiwiQ29sbGVjdGlvblBhdGgiLCIkc2VsZWN0IiwiZGF0YSIsInJlcXVlc3RDb250ZXh0cyIsInZhbHVlUHJvcGVydHkiLCJkZXNjcmlwdGlvblByb3BlcnR5IiwicGFyYW1ldGVyIiwiTG9jYWxEYXRhUHJvcGVydHkiLCIkUHJvcGVydHlQYXRoIiwiZmlsdGVyR3JvdXBWYWx1ZXMiLCJkYXR1bSIsImRhdGFvYmoiLCJjb2RlTGlzdFByb3BlcnR5Iiwib25Hb1ByZXNzIiwibWFnaWNRdWVyeSIsInNlYXJjaElucHV0IiwiY3VycmVudCIsImdldFZhbHVlIiwic2V0VmFsdWVTdGF0ZVRleHQiLCJzZXRWYWx1ZVN0YXRlIiwiZmlsdGVyQmFyQVBJIiwiZ2V0UGFyZW50IiwiX2NsZWFyRmlsdGVyVmFsdWVzV2l0aE9wdGlvbnMiLCJ0cmlnZ2VyU2VhcmNoIiwidWlNb2RlbCIsIkJ1c3lMb2NrZXIiLCJsb2NrIiwiZWFzeUZpbHRlck1ldGFkYXRhIiwidmVyc2lvbiIsImVudGl0eVNldCIsImNvbnRleHRQYXRoIiwiZ2V0T3duZXJDb250ZXh0UGF0aCIsImVhc3lGaWx0ZXJSZXN1bHQiLCJlYXN5RmlsdGVyIiwic3VjY2VzcyIsInVuY2xlYXIiLCJMb2ciLCJkZWJ1ZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJjbGVhckVkaXRGaWx0ZXIiLCJzb21lIiwiZmlsdGVyVmFsdWUiLCJ0b2tlbnMiLCJ0ZXh0Iiwib3BlcmF0b3IiLCJ2YWx1ZXMiLCJhZGRGaWx0ZXJWYWx1ZXMiLCJzZXRQcm9wZXJ0eSIsIm1lc3NhZ2UiLCJlcnJvciIsInVubG9jayIsIm9uVG9rZW5EZWxldGUiLCJfZSIsIm9uUXVlcnlDaGFuZ2VkIiwiZmlyZUZpbHRlcnNDaGFuZ2VkIiwiY29uZGl0aW9uc0Jhc2VkIiwidkJveCIsImUiLCJCdXR0b25UeXBlIiwiRW1waGFzaXplZCIsImV2ZW50IiwiRkVTUkhlbHBlciIsInNldFNlbWFudGljU3RlcG5hbWUiLCJnZXRTb3VyY2UiLCJpZHgiLCJjdHgiLCJvYmplY3QiLCJhZGRFdmVudERlbGVnYXRlIiwib25rZXl1cCIsIm9uZm9jdXNpbiIsImdldFZhbHVlU3RhdGUiLCJyZXF1aXJlZEZpZWxkcyIsInJlcXVpcmVkRmllbGRzVGV4dCIsImxlbmd0aCIsIkJ1aWxkaW5nQmxvY2tCYXNlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJFYXN5RmlsdGVyQmFyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrQmFzZSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja0Jhc2VcIjtcbmltcG9ydCBCdXN5TG9ja2VyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9CdXN5TG9ja2VyXCI7XG5pbXBvcnQgeyBhc3NvY2lhdGlvbiwgZGVmaW5lUmVmZXJlbmNlLCBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9jb3JlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IHsgaGFzVmFsdWVIZWxwV2l0aEZpeGVkVmFsdWVzIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvUHJvcGVydHlIZWxwZXJcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBEcmFmdEVkaXRTdGF0ZSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRHJhZnRFZGl0U3RhdGVcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhckFQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVyQmFyQVBJXCI7XG5pbXBvcnQgdHlwZSB7IEJ1dHRvbiRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRmxleEJveCBmcm9tIFwic2FwL20vRmxleEJveFwiO1xuaW1wb3J0IElucHV0IGZyb20gXCJzYXAvbS9JbnB1dFwiO1xuaW1wb3J0IHR5cGUgeyBJbnB1dEJhc2UkQ2hhbmdlRXZlbnQgfSBmcm9tIFwic2FwL20vSW5wdXRCYXNlXCI7XG5pbXBvcnQgTGFiZWwgZnJvbSBcInNhcC9tL0xhYmVsXCI7XG5pbXBvcnQgTWVzc2FnZVN0cmlwIGZyb20gXCJzYXAvbS9NZXNzYWdlU3RyaXBcIjtcbmltcG9ydCBUb2tlbiBmcm9tIFwic2FwL20vVG9rZW5cIjtcbmltcG9ydCBUb2tlbml6ZXIgZnJvbSBcInNhcC9tL1Rva2VuaXplclwiO1xuaW1wb3J0IFZCb3ggZnJvbSBcInNhcC9tL1ZCb3hcIjtcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgVUk1RXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IFVJNUVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgRkVTUkhlbHBlciBmcm9tIFwic2FwL3VpL3BlcmZvcm1hbmNlL3RyYWNlL0ZFU1JIZWxwZXJcIjtcbmltcG9ydCB0eXBlIEVhc3lGaWx0ZXIgZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWx0ZXIvRWFzeUZpbHRlclwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eU1ldGFkYXRhIGFzIEVhc3lGaWx0ZXJQcm9wZXJ0eU1ldGFkYXRhIH0gZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWx0ZXIvRWFzeUZpbHRlclwiO1xuXG4vLyBFZGl0aW5nIHN0YXR1cyBmaWx0ZXIgZmllbGQga2V5XG5jb25zdCAkZWRpdFN0YXRlID0gXCIkZWRpdFN0YXRlXCI7XG5cbi8qKlxuICogRGVsaXZlcnkgZm9yIGJldGEgcmVsZWFzZSBmb3IgdGhlIGVhc3kgZmlsdGVyIGZlYXR1cmUuXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuRWFzeUZpbHRlckJhclwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRWFzeUZpbHRlckJhciBleHRlbmRzIEJ1aWxkaW5nQmxvY2tCYXNlIHtcblx0ZmVzclN0ZXBOYW1lID0gXCJmZTQ6YWk6c2VhcmNoXCI7XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAuZmUubWFjcm9zLmZpbHRlckJhci5GaWx0ZXJCYXJBUElcIiB9KVxuXHRmaWx0ZXJCYXIhOiBzdHJpbmc7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRjb250ZXh0UGF0aD86IHN0cmluZztcblxuXHRAZGVmaW5lUmVmZXJlbmNlKClcblx0c2VhcmNoSW5wdXQhOiBSZWY8SW5wdXQ+O1xuXG5cdGVhc3lmaWx0ZXI6IFByb21pc2U8dHlwZW9mIEVhc3lGaWx0ZXI+IHwgdW5kZWZpbmVkO1xuXG5cdF9mZXRjaGVkQ29kZUxpc3QhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuXHRwcml2YXRlIGZpbHRlckJhck1ldGFkYXRhITogRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGFbXTtcblxuXHRwcml2YXRlIHN0YXRlTW9kZWwhOiBKU09OTW9kZWw7XG5cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxFYXN5RmlsdGVyQmFyPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cdFx0dGhpcy5lYXN5ZmlsdGVyID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKVxuXHRcdFx0Py5nZXRFbnZpcm9ubWVudENhcGFiaWxpdGllcygpXG5cdFx0XHQucHJlcGFyZUZlYXR1cmUoXCJNYWdpY0ZpbHRlcmluZ1wiKVxuXHRcdFx0LnRoZW4oYXN5bmMgKCkgPT4gaW1wb3J0KFwidXgvZW5nL2Zpb3JpYWkvcmV1c2UvZWFzeWZpbHRlci9FYXN5RmlsdGVyXCIpKTtcblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0dGhpcy5fZmV0Y2hlZENvZGVMaXN0ID8/PSB7fTtcblx0XHR0aGlzLnN0YXRlTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHsgc2hvd1Jlc3VsdDogZmFsc2UgfSk7XG5cdFx0dGhpcy5zZXRNb2RlbCh0aGlzLnN0YXRlTW9kZWwsIFwic3RhdGVcIik7XG5cdFx0dGhpcy5maWx0ZXJCYXJNZXRhZGF0YSA9IHRoaXMucHJlcGFyZUZpbHRlckJhck1ldGFkYXRhKCk7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHRwcmVwYXJlRmlsdGVyQmFyTWV0YWRhdGEoKTogRWFzeUZpbHRlclByb3BlcnR5TWV0YWRhdGFbXSB7XG5cdFx0Y29uc3Qgb3duZXIgPSB0aGlzLl9nZXRPd25lcigpITtcblx0XHRjb25zdCBtZXRhTW9kZWwgPSBvd25lci5wcmVwcm9jZXNzb3JDb250ZXh0Py5tb2RlbHMubWV0YU1vZGVsIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHRcdGNvbnN0IGZpbHRlckJhciA9IFVJNUVsZW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5maWx0ZXJCYXIpIGFzIEZpbHRlckJhcjtcblx0XHRjb25zdCBmaWVsZHMgPSBGaWx0ZXJVdGlscy5nZXRDb252ZXJ0ZWRGaWx0ZXJGaWVsZHMoZmlsdGVyQmFyLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgbWV0YU1vZGVsKTtcblxuXHRcdGNvbnN0IHJlc3VsdCA9IGZpZWxkc1xuXHRcdFx0LmZpbHRlcigoZmllbGQpID0+IGZpZWxkLmF2YWlsYWJpbGl0eSAhPT0gXCJIaWRkZW5cIikgLy8gRXhjbHVkZSBoaWRkZW4gZmlsdGVyIGZpZWxkcy4gSXQgaXMgbm90IHBvc3NpYmxlIHRvIHNldCBhIHZhbHVlIGZvciBoaWRkZW4gZmlsdGVycywgYW5kIHVzZXJzIHdvdWxkIG5vdCB1bmRlcnN0YW5kIGFueXdheSBhcyB0aGV5IGNhbm5vdCBzZWUgdGhlc2UgdmFsdWVzLlxuXHRcdFx0Lm1hcCgoZmllbGQpOiBFYXN5RmlsdGVyUHJvcGVydHlNZXRhZGF0YSA9PiB7XG5cdFx0XHRcdGNvbnN0IHByb3BlcnR5T2JqZWN0ID0gdGhpcy5nZXREYXRhTW9kZWxPYmplY3RQYXRoPFByb3BlcnR5PihmaWVsZC5hbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRcdGxldCBjb2RlTGlzdDtcblx0XHRcdFx0aWYgKHByb3BlcnR5T2JqZWN0Py50YXJnZXRPYmplY3QpIHtcblx0XHRcdFx0XHRjb25zdCBoYXNDb2RlTGlzdCA9IGhhc1ZhbHVlSGVscFdpdGhGaXhlZFZhbHVlcyhwcm9wZXJ0eU9iamVjdD8udGFyZ2V0T2JqZWN0KTtcblx0XHRcdFx0XHRpZiAoaGFzQ29kZUxpc3QpIHtcblx0XHRcdFx0XHRcdGNvZGVMaXN0ID0gdGhpcy5fZmV0Y2hlZENvZGVMaXN0W2ZpZWxkLmtleV07XG5cdFx0XHRcdFx0XHRpZiAoIWNvZGVMaXN0KSB7XG5cdFx0XHRcdFx0XHRcdGNvZGVMaXN0ID0gYXN5bmMgKCk6IFByb21pc2U8dW5rbm93bj4gPT4gdGhpcy5nZXRDb2RlTGlzdEZvclByb3BlcnR5KGZpZWxkLmtleSwgZmllbGQuYW5ub3RhdGlvblBhdGgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdG5hbWU6IGZpZWxkLmtleSxcblx0XHRcdFx0XHRsYWJlbDogZmllbGQubGFiZWwsXG5cdFx0XHRcdFx0ZGF0YVR5cGU6IHByb3BlcnR5T2JqZWN0Py50YXJnZXRPYmplY3Q/LnR5cGUsXG5cdFx0XHRcdFx0cmVxdWlyZWQ6ICEhZmllbGQucmVxdWlyZWQsXG5cdFx0XHRcdFx0ZmlsdGVyYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRzb3J0YWJsZTogIWZpZWxkLmlzUGFyYW1ldGVyLFxuXHRcdFx0XHRcdGNvZGVMaXN0OiBjb2RlTGlzdFxuXHRcdFx0XHR9IGFzIEVhc3lGaWx0ZXJQcm9wZXJ0eU1ldGFkYXRhO1xuXHRcdFx0fSk7XG5cblx0XHQvLyBbRWRpdGluZyBTdGF0dXNdXG5cdFx0Y29uc3QgZWRpdGluZ1N0YXR1c0ZpbHRlckZpZWxkSW5mbyA9IEZpbHRlclV0aWxzLmdldEZpbHRlclByb3BlcnR5SW5mbyhmaWx0ZXJCYXIpLmZpbmQoXG5cdFx0XHQocHJvcGVydHlJbmZvKSA9PiBwcm9wZXJ0eUluZm8ua2V5ID09PSAkZWRpdFN0YXRlICYmIHByb3BlcnR5SW5mby5hdmFpbGFiaWxpdHkgIT09IFwiSGlkZGVuXCJcblx0XHQpO1xuXG5cdFx0aWYgKGVkaXRpbmdTdGF0dXNGaWx0ZXJGaWVsZEluZm8pIHtcblx0XHRcdC8vIEFzc2VtYmxlIHRoZSBjb2RlIGxpc3QgZm9yIHRoZSBlZGl0aW5nIHN0YXR1cyBmaWx0ZXIgdmFsdWVzOlxuXHRcdFx0Y29uc3QgcHJvcHMgPSBuZXcgSlNPTk1vZGVsKHtcblx0XHRcdFx0aXNEcmFmdENvbGxhYm9yYXRpdmU6IE1vZGVsSGVscGVyLmlzQ29sbGFib3JhdGlvbkRyYWZ0U3VwcG9ydGVkKG1ldGFNb2RlbClcblx0XHRcdH0pLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKTtcblxuXHRcdFx0Y29uc3QgZWRpdGluZ1N0YXR1c0NvZGVMaXN0ID0gRHJhZnRFZGl0U3RhdGUuZ2V0RWRpdFN0YXRlc0NvbnRleHQocHJvcHMpXG5cdFx0XHRcdC5nZXRPYmplY3QoXCIvXCIpXG5cdFx0XHRcdC5tYXAoKHN0YXRlOiB7IGlkOiBzdHJpbmc7IGRpc3BsYXk6IHN0cmluZyB9KSA9PiAoeyB2YWx1ZTogc3RhdGUuaWQsIGRlc2NyaXB0aW9uOiBzdGF0ZS5kaXNwbGF5IH0pKTtcblxuXHRcdFx0cmVzdWx0LnB1c2goe1xuXHRcdFx0XHRuYW1lOiAkZWRpdFN0YXRlLFxuXHRcdFx0XHRsYWJlbDogZWRpdGluZ1N0YXR1c0ZpbHRlckZpZWxkSW5mby5sYWJlbCxcblx0XHRcdFx0ZGF0YVR5cGU6IFwiRWRtLlN0cmluZ1wiLFxuXHRcdFx0XHRyZXF1aXJlZDogZmFsc2UsXG5cdFx0XHRcdGZpbHRlcmFibGU6IHRydWUsXG5cdFx0XHRcdHNvcnRhYmxlOiBmYWxzZSxcblx0XHRcdFx0Y29kZUxpc3Q6IGVkaXRpbmdTdGF0dXNDb2RlTGlzdFxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdGFzeW5jIGdldENvZGVMaXN0Rm9yUHJvcGVydHkoa2V5OiBzdHJpbmcsIHByb3BlcnR5UGF0aDogc3RyaW5nKTogUHJvbWlzZTx1bmtub3duPiB7XG5cdFx0Ly8gRmV0Y2ggYW5kIGNhY2hlIHRoZSBjb2RlTGlzdCBmb3IgdmFsdWVMaXN0V2l0aEZpeGVkVmFsdWVzXG5cdFx0Y29uc3Qgb2RhdGFNb2RlbCA9IHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsO1xuXHRcdGNvbnN0IHZhbHVlTGlzdCA9IGF3YWl0IG9kYXRhTW9kZWwuZ2V0TWV0YU1vZGVsKCkucmVxdWVzdFZhbHVlTGlzdEluZm8ocHJvcGVydHlQYXRoKTtcblx0XHRjb25zdCBkZWZhdWx0VmFsdWVMaXN0ID0gdmFsdWVMaXN0W1wiXCJdO1xuXHRcdGNvbnN0IHNlbGVjdCA9IGRlZmF1bHRWYWx1ZUxpc3QuUGFyYW1ldGVycy5tYXAoKHBhcmFtOiB7IFZhbHVlTGlzdFByb3BlcnR5OiBzdHJpbmcgfSkgPT4gcGFyYW0uVmFsdWVMaXN0UHJvcGVydHkpLmpvaW4oXCIsXCIpO1xuXHRcdGNvbnN0IGxpc3RCaW5kaW5nID0gZGVmYXVsdFZhbHVlTGlzdC4kbW9kZWwuYmluZExpc3QoXCIvXCIgKyBkZWZhdWx0VmFsdWVMaXN0LkNvbGxlY3Rpb25QYXRoLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB7XG5cdFx0XHQkc2VsZWN0OiBzZWxlY3Rcblx0XHR9KTtcblx0XHRjb25zdCBkYXRhID0gYXdhaXQgbGlzdEJpbmRpbmcucmVxdWVzdENvbnRleHRzKCk7XG5cdFx0bGV0IHZhbHVlUHJvcGVydHk6IHN0cmluZztcblx0XHRsZXQgZGVzY3JpcHRpb25Qcm9wZXJ0eTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGZvciAoY29uc3QgcGFyYW1ldGVyIG9mIGRlZmF1bHRWYWx1ZUxpc3QuUGFyYW1ldGVycykge1xuXHRcdFx0aWYgKHBhcmFtZXRlci5Mb2NhbERhdGFQcm9wZXJ0eT8uJFByb3BlcnR5UGF0aCA9PT0ga2V5KSB7XG5cdFx0XHRcdHZhbHVlUHJvcGVydHkgPSBwYXJhbWV0ZXIuVmFsdWVMaXN0UHJvcGVydHk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkZXNjcmlwdGlvblByb3BlcnR5ID0gcGFyYW1ldGVyLlZhbHVlTGlzdFByb3BlcnR5O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGNvbnN0IGZpbHRlckdyb3VwVmFsdWVzID0gW107XG5cdFx0Zm9yIChjb25zdCBkYXR1bSBvZiBkYXRhKSB7XG5cdFx0XHRjb25zdCBkYXRhb2JqID0gZGF0dW0uZ2V0T2JqZWN0KCk7XG5cdFx0XHRmaWx0ZXJHcm91cFZhbHVlcy5wdXNoKHtcblx0XHRcdFx0dmFsdWU6IGRhdGFvYmpbdmFsdWVQcm9wZXJ0eSFdLFxuXHRcdFx0XHRkZXNjcmlwdGlvbjogZGVzY3JpcHRpb25Qcm9wZXJ0eSA/IGRhdGFvYmpbZGVzY3JpcHRpb25Qcm9wZXJ0eV0gOiB1bmRlZmluZWRcblx0XHRcdH0pO1xuXHRcdH1cblx0XHR0aGlzLl9mZXRjaGVkQ29kZUxpc3Rba2V5XSA9IGZpbHRlckdyb3VwVmFsdWVzO1xuXHRcdGNvbnN0IGNvZGVMaXN0UHJvcGVydHkgPSB0aGlzLmZpbHRlckJhck1ldGFkYXRhLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSBrZXkpO1xuXHRcdGlmIChjb2RlTGlzdFByb3BlcnR5KSB7XG5cdFx0XHRjb2RlTGlzdFByb3BlcnR5LmNvZGVMaXN0ID0gZmlsdGVyR3JvdXBWYWx1ZXM7XG5cdFx0fVxuXHRcdHJldHVybiBmaWx0ZXJHcm91cFZhbHVlcztcblx0fVxuXG5cdGFzeW5jIG9uR29QcmVzcygpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBtYWdpY1F1ZXJ5ID0gdGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5nZXRWYWx1ZSgpO1xuXG5cdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlVGV4dChcIlwiKTtcblx0XHR0aGlzLnNlYXJjaElucHV0LmN1cnJlbnQ/LnNldFZhbHVlU3RhdGUoXCJOb25lXCIpO1xuXG5cdFx0Y29uc3QgZmlsdGVyQmFyID0gVUk1RWxlbWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpbHRlckJhcikgYXMgRmlsdGVyQmFyO1xuXHRcdGNvbnN0IGZpbHRlckJhckFQSSA9IGZpbHRlckJhci5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEk7XG5cblx0XHRpZiAoIW1hZ2ljUXVlcnkpIHtcblx0XHRcdC8vIEVtcHR5IGlucHV0OiBjbGVhciB0aGUgZmlsdGVycyBhbmQgcmVmcmVzaCB0aGUgbGlzdFxuXHRcdFx0YXdhaXQgZmlsdGVyQmFyQVBJLl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zKGZpbHRlckJhcik7XG5cdFx0XHRhd2FpdCBmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IHVpTW9kZWwgPSB0aGlzLmdldE1vZGVsKFwidWlcIikgYXMgSlNPTk1vZGVsO1xuXHRcdEJ1c3lMb2NrZXIubG9jayh1aU1vZGVsKTtcblx0XHQvLyBDYWxsIEFJIHNlcnZpY2UgdG8gZ2V0IHRoZSBmaWx0ZXIgY3JpdGVyaWFcblx0XHRjb25zdCBlYXN5ZmlsdGVyID0gYXdhaXQgdGhpcy5lYXN5ZmlsdGVyO1xuXHRcdGlmICghZWFzeWZpbHRlcikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGVhc3lGaWx0ZXJNZXRhZGF0YSA9IHtcblx0XHRcdHZlcnNpb246IDEsXG5cdFx0XHRlbnRpdHlTZXQ6IHRoaXMuY29udGV4dFBhdGggPz8gdGhpcy5nZXRPd25lckNvbnRleHRQYXRoKCkgPz8gXCJcIixcblx0XHRcdGZpZWxkczogdGhpcy5maWx0ZXJCYXJNZXRhZGF0YVxuXHRcdH07XG5cblx0XHRjb25zdCBlYXN5RmlsdGVyUmVzdWx0ID0gYXdhaXQgZWFzeWZpbHRlci5lYXN5RmlsdGVyKG1hZ2ljUXVlcnksIGVhc3lGaWx0ZXJNZXRhZGF0YSk7XG5cblx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5zdWNjZXNzKSB7XG5cdFx0XHRpZiAoZWFzeUZpbHRlclJlc3VsdC5kYXRhLnZlcnNpb24gPT09IDEpIHtcblx0XHRcdFx0aWYgKGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS51bmNsZWFyKSB7XG5cdFx0XHRcdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlKFwiV2FybmluZ1wiKTtcblx0XHRcdFx0XHR0aGlzLnNlYXJjaElucHV0LmN1cnJlbnQ/LnNldFZhbHVlU3RhdGVUZXh0KFwiVW5jbGVhciBpbnB1dDogXCIgKyBlYXN5RmlsdGVyUmVzdWx0LmRhdGEudW5jbGVhcik7IC8vIFRPRE86IERvZXMgdGhpcyBtYWtlIHNlbnNlP1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChlYXN5RmlsdGVyUmVzdWx0LmRhdGEuZmlsdGVyKSB7XG5cdFx0XHRcdFx0Ly8gV2UgbmVlZCB0byBzaG93IGEgbWVzc2FnZSB0byB0aGUgdXNlciB0aGF0IHRoZSBmaWx0ZXIgY3JpdGVyaWEgaGFzIGJlZW4gZ2VuZXJhdGVkXG5cdFx0XHRcdFx0TG9nLmRlYnVnKFwiRmlsdGVyIGNyaXRlcmlhIGdlbmVyYXRlZDogXCIsIEpTT04uc3RyaW5naWZ5KGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS5maWx0ZXIsIG51bGwsIDIpKTtcblxuXHRcdFx0XHRcdC8vIFZhbGlkYXRlIGFuZCBhcHBseSB0aGUgZmlsdGVyIGNyaXRlcmlhXG5cblx0XHRcdFx0XHQvLyBJZiB0aGUgcmV0dXJuZWQgY29uZGl0aW9ucyBpbmNsdWRlIHRoZSAkZWRpdFN0YXRlIGZpbHRlciwgd2UgbmVlZCB0byBjbGVhciB0aGUgZXhpc3RpbmcgZmlsdGVyIHZhbHVlcyBmb3IgaXQgKG90aGVyd2lzZSB0aGUgbmV3IHZhbHVlcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBleGlzdGluZyBvbmVzKVxuXHRcdFx0XHRcdGNvbnN0IGNsZWFyRWRpdEZpbHRlciA9IGVhc3lGaWx0ZXJSZXN1bHQuZGF0YS5maWx0ZXIuc29tZSgoZmlsdGVyVmFsdWUpID0+IGZpbHRlclZhbHVlLm5hbWUgPT09ICRlZGl0U3RhdGUpO1xuXHRcdFx0XHRcdGF3YWl0IGZpbHRlckJhckFQSS5fY2xlYXJGaWx0ZXJWYWx1ZXNXaXRoT3B0aW9ucyhmaWx0ZXJCYXIsIHsgY2xlYXJFZGl0RmlsdGVyIH0pO1xuXG5cdFx0XHRcdFx0Y29uc3QgdG9rZW5zID0gW107XG5cdFx0XHRcdFx0Zm9yIChjb25zdCBmaWx0ZXJWYWx1ZSBvZiBlYXN5RmlsdGVyUmVzdWx0LmRhdGEuZmlsdGVyKSB7XG5cdFx0XHRcdFx0XHR0b2tlbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdGtleTogZmlsdGVyVmFsdWUubmFtZSxcblx0XHRcdFx0XHRcdFx0dGV4dDogYCR7ZmlsdGVyVmFsdWUub3BlcmF0b3J9ICR7ZmlsdGVyVmFsdWUudmFsdWVzfWBcblx0XHRcdFx0XHRcdH0pO1xuXG5cdFx0XHRcdFx0XHRpZiAoZmlsdGVyVmFsdWUubmFtZSA9PT0gJGVkaXRTdGF0ZSkge1xuXHRcdFx0XHRcdFx0XHQvLyBjb252ZXJ0IHRoZSAkZWRpdFN0YXRlIGZpbHRlciBjb25kaXRpb25cblx0XHRcdFx0XHRcdFx0YXdhaXQgRmlsdGVyVXRpbHMuYWRkRmlsdGVyVmFsdWVzKGZpbHRlckJhckFQSS5jb250ZW50LCAkZWRpdFN0YXRlLCBcIkRSQUZUX0VESVRfU1RBVEVcIiwgZmlsdGVyVmFsdWUudmFsdWVzKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdGF3YWl0IEZpbHRlclV0aWxzLmFkZEZpbHRlclZhbHVlcyhcblx0XHRcdFx0XHRcdFx0XHRmaWx0ZXJCYXJBUEkuY29udGVudCxcblx0XHRcdFx0XHRcdFx0XHRmaWx0ZXJWYWx1ZS5uYW1lLFxuXHRcdFx0XHRcdFx0XHRcdGZpbHRlclZhbHVlLm9wZXJhdG9yLFxuXHRcdFx0XHRcdFx0XHRcdGZpbHRlclZhbHVlLnZhbHVlc1xuXHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRhd2FpdCBmaWx0ZXJCYXJBUEkudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0XHRcdHRoaXMuc3RhdGVNb2RlbC5zZXRQcm9wZXJ0eShcIi90b2tlbnNcIiwgdG9rZW5zKTtcblx0XHRcdFx0XHR0aGlzLnN0YXRlTW9kZWwuc2V0UHJvcGVydHkoXCIvc2hvd1Jlc3VsdFwiLCB0cnVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIGlmIChlYXN5RmlsdGVyUmVzdWx0LmRhdGEudmVyc2lvbiA9PT0gMikge1xuXHRcdFx0XHQvLyBDcmVhdGUgdGhlIHNhcC51aS5tb2RlbC5GaWx0ZXIgZnJvbSB0aGUgZmlsdGVyIGFuZCBhcHBseSBpdCBkaXJlY3RseSB0byB0aGUgbGlzdCBiaW5kaW5nXG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGVycm9yXG5cdFx0XHR0aGlzLnNlYXJjaElucHV0LmN1cnJlbnQ/LnNldFZhbHVlU3RhdGUoXCJXYXJuaW5nXCIpO1xuXHRcdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlVGV4dChlYXN5RmlsdGVyUmVzdWx0Lm1lc3NhZ2UpO1xuXHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgZ2VuZXJhdGluZyBmaWx0ZXIgY3JpdGVyaWE6IFwiLCBlYXN5RmlsdGVyUmVzdWx0Lm1lc3NhZ2UpO1xuXHRcdH1cblxuXHRcdEJ1c3lMb2NrZXIudW5sb2NrKHVpTW9kZWwpO1xuXHR9XG5cblx0b25Ub2tlbkRlbGV0ZShfZTogVUk1RXZlbnQ8eyB0b2tlbnM6IFRva2VuW10gfSwgVG9rZW5pemVyPik6IHZvaWQge1xuXHRcdHRoaXMuc3RhdGVNb2RlbC5zZXRQcm9wZXJ0eShcIi9zaG93UmVzdWx0XCIsIGZhbHNlKTtcblx0fVxuXG5cdG9uUXVlcnlDaGFuZ2VkKF9lOiBJbnB1dEJhc2UkQ2hhbmdlRXZlbnQpOiB2b2lkIHtcblx0XHRjb25zdCBmaWx0ZXJCYXIgPSBVSTVFbGVtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZmlsdGVyQmFyKSBhcyBGaWx0ZXJCYXI7XG5cdFx0ZmlsdGVyQmFyLmZpcmVGaWx0ZXJzQ2hhbmdlZCh7IGNvbmRpdGlvbnNCYXNlZDogdHJ1ZSB9KTtcblx0fVxuXG5cdGNyZWF0ZUNvbnRlbnQoKTogVkJveCB7XG5cdFx0Y29uc3QgdkJveCA9IChcblx0XHRcdDxWQm94PlxuXHRcdFx0XHQ8TWVzc2FnZVN0cmlwXG5cdFx0XHRcdFx0dGV4dD1cIlByb21wdC1iYXNlZCBmaWx0ZXJpbmcgY3JlYXRlcyBjb21wbGV0ZWx5IG5ldyBmaWx0ZXIgY3JpdGVyaWEuIEdlbmVyYXRlZCBjb250ZW50IG1heSBub3QgYWx3YXlzIGJlIGFjY3VyYXRlLiBDb25zaWRlciB2ZXJpZnlpbmcgaXQuXCJcblx0XHRcdFx0XHRzaG93SWNvbj17dHJ1ZX1cblx0XHRcdFx0XHRzaG93Q2xvc2VCdXR0b249e3RydWV9XG5cdFx0XHRcdFx0Y2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpbkJvdHRvbVwifVxuXHRcdFx0XHQvPlxuXHRcdFx0XHQ8RmxleEJveCByZW5kZXJUeXBlPVwiQmFyZVwiPlxuXHRcdFx0XHRcdDxJbnB1dFxuXHRcdFx0XHRcdFx0cmVmPXt0aGlzLnNlYXJjaElucHV0fVxuXHRcdFx0XHRcdFx0d2lkdGg9XCIxMDAlXCJcblx0XHRcdFx0XHRcdHNob3dDbGVhckljb249e3RydWV9XG5cdFx0XHRcdFx0XHRjaGFuZ2U9eyhlKTogdm9pZCA9PiB0aGlzLm9uUXVlcnlDaGFuZ2VkKGUpfVxuXHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9XCJFbnRlciB5b3VyIHF1ZXJ5IGluIG5hdHVyYWwgbGFuZ3VhZ2UgdG8gZmlsdGVyIHRoZSBsaXN0XCJcblx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5FbmRcIn1cblx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly9haVwifVxuXHRcdFx0XHRcdFx0dGV4dD17XCJHb1wifVxuXHRcdFx0XHRcdFx0dHlwZT17QnV0dG9uVHlwZS5FbXBoYXNpemVkfVxuXHRcdFx0XHRcdFx0cHJlc3M9eyhldmVudDogQnV0dG9uJFByZXNzRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKGV2ZW50LmdldFNvdXJjZSgpLCBcInByZXNzXCIsIHRoaXMuZmVzclN0ZXBOYW1lKTtcblx0XHRcdFx0XHRcdFx0dGhpcy5vbkdvUHJlc3MoKTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0XHQ8RmxleEJveCByZW5kZXJUeXBlPVwiQmFyZVwiIHZpc2libGU9e2ZhbHNlfT5cblx0XHRcdFx0XHQ8TGFiZWwgdGV4dD1cIlNob3dpbmcgcmVzdWx0cyBmb3I6IFwiIGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5Ub3BcIn0gLz5cblx0XHRcdFx0XHQ8VG9rZW5pemVyXG5cdFx0XHRcdFx0XHR0b2tlbnM9e1wie3N0YXRlPi90b2tlbnN9XCJ9XG5cdFx0XHRcdFx0XHR0b2tlbkRlbGV0ZT17KGUpOiB2b2lkID0+IHRoaXMub25Ub2tlbkRlbGV0ZShlIGFzIFVJNUV2ZW50PHsgdG9rZW5zOiBUb2tlbltdIH0sIFRva2VuaXplcj4pfVxuXHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdHt7XG5cdFx0XHRcdFx0XHRcdHRva2VuczogKGlkeDogbnVtYmVyLCBjdHg6IENvbnRleHQpOiBUb2tlbiA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0Y29uc3Qgb2JqZWN0ID0gY3R4LmdldE9iamVjdCgpO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiA8VG9rZW4ga2V5PXtvYmplY3Qua2V5fSB0ZXh0PXtvYmplY3QudGV4dH0gLz47XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PC9Ub2tlbml6ZXI+XG5cdFx0XHRcdDwvRmxleEJveD5cblx0XHRcdDwvVkJveD5cblx0XHQpO1xuXHRcdHRoaXMuc2VhcmNoSW5wdXQuY3VycmVudD8uYWRkRXZlbnREZWxlZ2F0ZSh7XG5cdFx0XHRvbmtleXVwOiAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xuXHRcdFx0XHRpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuXHRcdFx0XHRcdHRoaXMub25Hb1ByZXNzKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHRvbmZvY3VzaW46ICgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuc2VhcmNoSW5wdXQuY3VycmVudD8uZ2V0VmFsdWVTdGF0ZSgpID09PSBcIk5vbmVcIiAmJiB0aGlzLmZpbHRlckJhck1ldGFkYXRhLmZpbmQoKGZpZWxkKSA9PiBmaWVsZC5yZXF1aXJlZCkpIHtcblx0XHRcdFx0XHR0aGlzLnNlYXJjaElucHV0LmN1cnJlbnQ/LnNldFZhbHVlU3RhdGUoXCJJbmZvcm1hdGlvblwiKTtcblx0XHRcdFx0XHRjb25zdCByZXF1aXJlZEZpZWxkcyA9IHRoaXMuZmlsdGVyQmFyTWV0YWRhdGEuZmlsdGVyKChmaWVsZCkgPT4gZmllbGQucmVxdWlyZWQpO1xuXHRcdFx0XHRcdGNvbnN0IHJlcXVpcmVkRmllbGRzVGV4dCA9IHJlcXVpcmVkRmllbGRzLm1hcCgoZmllbGQpID0+IGZpZWxkLmxhYmVsKS5qb2luKFwiLCBcIik7XG5cdFx0XHRcdFx0aWYgKHJlcXVpcmVkRmllbGRzLmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0XHRcdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlVGV4dChgJHtyZXF1aXJlZEZpZWxkc1RleHR9IGlzIGEgbWFuZGF0b3J5IGZpbHRlci5gKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhpcy5zZWFyY2hJbnB1dC5jdXJyZW50Py5zZXRWYWx1ZVN0YXRlVGV4dChgJHtyZXF1aXJlZEZpZWxkc1RleHR9IGFyZSBtYW5kYXRvcnkgZmlsdGVycy5gKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHRyZXR1cm4gdkJveDtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtDQTtFQUNBLE1BQU1BLFVBQVUsR0FBRyxZQUFZOztFQUUvQjtBQUNBO0FBQ0E7QUFDQTtFQUhBLElBS3FCQyxhQUFhLFdBRGpDQyxjQUFjLENBQUMsNkJBQTZCLENBQUMsVUFJNUNDLFdBQVcsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBdUMsQ0FBQyxDQUFDLFVBRzdEQyxRQUFRLENBQUM7SUFBRUQsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLFVBRzVCRSxlQUFlLEVBQUU7SUFBQTtJQVdsQix1QkFBWUMsVUFBMEQsRUFBRUMsTUFBeUIsRUFBRTtNQUFBO01BQUE7TUFDbEcsc0NBQU1ELFVBQVUsRUFBRUMsTUFBTSxDQUFDO01BQUMsTUFwQjNCQyxZQUFZLEdBQUcsZUFBZTtNQUFBO01BQUE7TUFBQTtNQXFCN0IsTUFBS0MsVUFBVSw0QkFBRyxNQUFLQyxlQUFlLEVBQUUsMERBQXRCLHNCQUNmQywwQkFBMEIsRUFBRSxDQUM3QkMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQ2hDQyxJQUFJLENBQUMsWUFBWSxvQkFBTyw0Q0FBNEMsQ0FBQyxDQUFDO01BQUM7SUFDMUU7SUFBQztJQUFBO0lBQUEsT0FFREMsbUJBQW1CLEdBQW5CLCtCQUE0QjtNQUMzQixJQUFJLENB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
|
|
@@ -3,9 +3,11 @@ import Log from "sap/base/Log";
|
|
|
3
3
|
import BuildingBlockBase from "sap/fe/core/buildingBlocks/BuildingBlockBase";
|
|
4
4
|
import BusyLocker from "sap/fe/core/controllerextensions/BusyLocker";
|
|
5
5
|
import { association, defineReference, defineUI5Class, property, type PropertiesOf } from "sap/fe/core/helpers/ClassSupport";
|
|
6
|
+
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
6
7
|
import type { Ref } from "sap/fe/core/jsx-runtime/jsx";
|
|
7
8
|
import { hasValueHelpWithFixedValues } from "sap/fe/core/templating/PropertyHelper";
|
|
8
9
|
import FilterUtils from "sap/fe/macros/filter/FilterUtils";
|
|
10
|
+
import DraftEditState from "sap/fe/macros/filterBar/DraftEditState";
|
|
9
11
|
import type FilterBarAPI from "sap/fe/macros/filterBar/FilterBarAPI";
|
|
10
12
|
import type { Button$PressEvent } from "sap/m/Button";
|
|
11
13
|
import Button from "sap/m/Button";
|
|
@@ -30,6 +32,9 @@ import FESRHelper from "sap/ui/performance/trace/FESRHelper";
|
|
|
30
32
|
import type EasyFilter from "ux/eng/fioriai/reuse/easyfilter/EasyFilter";
|
|
31
33
|
import type { PropertyMetadata as EasyFilterPropertyMetadata } from "ux/eng/fioriai/reuse/easyfilter/EasyFilter";
|
|
32
34
|
|
|
35
|
+
// Editing status filter field key
|
|
36
|
+
const $editState = "$editState";
|
|
37
|
+
|
|
33
38
|
/**
|
|
34
39
|
* Delivery for beta release for the easy filter feature.
|
|
35
40
|
* @experimental
|
|
@@ -77,7 +82,7 @@ export default class EasyFilterBar extends BuildingBlockBase {
|
|
|
77
82
|
const filterBar = UI5Element.getElementById(this.filterBar) as FilterBar;
|
|
78
83
|
const fields = FilterUtils.getConvertedFilterFields(filterBar, undefined, undefined, metaModel);
|
|
79
84
|
|
|
80
|
-
|
|
85
|
+
const result = fields
|
|
81
86
|
.filter((field) => field.availability !== "Hidden") // Exclude hidden filter fields. It is not possible to set a value for hidden filters, and users would not understand anyway as they cannot see these values.
|
|
82
87
|
.map((field): EasyFilterPropertyMetadata => {
|
|
83
88
|
const propertyObject = this.getDataModelObjectPath<Property>(field.annotationPath);
|
|
@@ -101,6 +106,34 @@ export default class EasyFilterBar extends BuildingBlockBase {
|
|
|
101
106
|
codeList: codeList
|
|
102
107
|
} as EasyFilterPropertyMetadata;
|
|
103
108
|
});
|
|
109
|
+
|
|
110
|
+
// [Editing Status]
|
|
111
|
+
const editingStatusFilterFieldInfo = FilterUtils.getFilterPropertyInfo(filterBar).find(
|
|
112
|
+
(propertyInfo) => propertyInfo.key === $editState && propertyInfo.availability !== "Hidden"
|
|
113
|
+
);
|
|
114
|
+
|
|
115
|
+
if (editingStatusFilterFieldInfo) {
|
|
116
|
+
// Assemble the code list for the editing status filter values:
|
|
117
|
+
const props = new JSONModel({
|
|
118
|
+
isDraftCollaborative: ModelHelper.isCollaborationDraftSupported(metaModel)
|
|
119
|
+
}).createBindingContext("/");
|
|
120
|
+
|
|
121
|
+
const editingStatusCodeList = DraftEditState.getEditStatesContext(props)
|
|
122
|
+
.getObject("/")
|
|
123
|
+
.map((state: { id: string; display: string }) => ({ value: state.id, description: state.display }));
|
|
124
|
+
|
|
125
|
+
result.push({
|
|
126
|
+
name: $editState,
|
|
127
|
+
label: editingStatusFilterFieldInfo.label,
|
|
128
|
+
dataType: "Edm.String",
|
|
129
|
+
required: false,
|
|
130
|
+
filterable: true,
|
|
131
|
+
sortable: false,
|
|
132
|
+
codeList: editingStatusCodeList
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return result;
|
|
104
137
|
}
|
|
105
138
|
|
|
106
139
|
async getCodeListForProperty(key: string, propertyPath: string): Promise<unknown> {
|
|
@@ -182,7 +215,10 @@ export default class EasyFilterBar extends BuildingBlockBase {
|
|
|
182
215
|
Log.debug("Filter criteria generated: ", JSON.stringify(easyFilterResult.data.filter, null, 2));
|
|
183
216
|
|
|
184
217
|
// Validate and apply the filter criteria
|
|
185
|
-
|
|
218
|
+
|
|
219
|
+
// If the returned conditions include the $editState filter, we need to clear the existing filter values for it (otherwise the new values will be added to the existing ones)
|
|
220
|
+
const clearEditFilter = easyFilterResult.data.filter.some((filterValue) => filterValue.name === $editState);
|
|
221
|
+
await filterBarAPI._clearFilterValuesWithOptions(filterBar, { clearEditFilter });
|
|
186
222
|
|
|
187
223
|
const tokens = [];
|
|
188
224
|
for (const filterValue of easyFilterResult.data.filter) {
|
|
@@ -190,7 +226,18 @@ export default class EasyFilterBar extends BuildingBlockBase {
|
|
|
190
226
|
key: filterValue.name,
|
|
191
227
|
text: `${filterValue.operator} ${filterValue.values}`
|
|
192
228
|
});
|
|
193
|
-
|
|
229
|
+
|
|
230
|
+
if (filterValue.name === $editState) {
|
|
231
|
+
// convert the $editState filter condition
|
|
232
|
+
await FilterUtils.addFilterValues(filterBarAPI.content, $editState, "DRAFT_EDIT_STATE", filterValue.values);
|
|
233
|
+
} else {
|
|
234
|
+
await FilterUtils.addFilterValues(
|
|
235
|
+
filterBarAPI.content,
|
|
236
|
+
filterValue.name,
|
|
237
|
+
filterValue.operator,
|
|
238
|
+
filterValue.values
|
|
239
|
+
);
|
|
240
|
+
}
|
|
194
241
|
}
|
|
195
242
|
await filterBarAPI.triggerSearch();
|
|
196
243
|
this.stateModel.setProperty("/tokens", tokens);
|
|
@@ -103,7 +103,7 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockBase", "sap/fe/core/help
|
|
|
103
103
|
this.visible = constant(true);
|
|
104
104
|
}
|
|
105
105
|
if (!this.linkEnabled) this.linkEnabled = true;
|
|
106
|
-
this.createContent();
|
|
106
|
+
this.content = this.createContent();
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -146,12 +146,10 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockBase", "sap/fe/core/help
|
|
|
146
146
|
enabled: this.linkEnabled,
|
|
147
147
|
emptyIndicatorMode: this.emptyIndicatorMode,
|
|
148
148
|
class: "sapMTextRenderWhitespaceWrap",
|
|
149
|
-
press: async event => this.openPopover(event)
|
|
149
|
+
press: async event => this.openPopover(event),
|
|
150
|
+
ariaLabelledBy: this.ariaLabelledBy
|
|
150
151
|
});
|
|
151
|
-
|
|
152
|
-
link.addAriaLabelledBy(this.ariaLabelledBy);
|
|
153
|
-
}
|
|
154
|
-
this.content = link;
|
|
152
|
+
return link;
|
|
155
153
|
};
|
|
156
154
|
return Email;
|
|
157
155
|
}(BuildingBlockBase), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "visible", [_dec2], {
|
|
@@ -194,4 +192,4 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlockBase", "sap/fe/core/help
|
|
|
194
192
|
_exports = Email;
|
|
195
193
|
return _exports;
|
|
196
194
|
}, false);
|
|
197
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbWFpbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiaXNCaW5kaW5nSW5mbyIsImFzc29jaWF0aW9uIiwibXVsdGlwbGUiLCJzaW5ndWxhck5hbWUiLCJwcm9wZXJ0aWVzIiwib3RoZXJzIiwidmlzaWJsZSIsInVuZGVmaW5lZCIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJjb25zdGFudCIsImxpbmtFbmFibGVkIiwiaXNUZWFtc0Nvbm5lY3Rpb25BY3RpdmUiLCJhcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJnZXRDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIiwiaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQiLCJnZXRNYWlsUG9wb3ZlckZyb21Nc1RlYW1zSW50ZWdyYXRpb24iLCJtYWlsIiwic2V0TGlua0VuYWJsZWQiLCJlbmFibGVkIiwiY29udGVudCIsInNldEVuYWJsZWQiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiY3JlYXRlQ29udGVudCIsIm9wZW5Qb3BvdmVyIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInJldmVydFRvRGVmYXVsdEJlaGF2aW91ciIsImxpbmsiLCJnZXRTb3VyY2UiLCJtYWlsQkJ2NCIsImdldFBhcmVudCIsInBvcG92ZXIiLCJvcGVuQnkiLCJNTGlicmFyeSIsIlVSTEhlbHBlciIsInJlZGlyZWN0IiwidGV4dCIsImVtcHR5SW5kaWNhdG9yTW9kZSIsImFyaWFMYWJlbGxlZEJ5IiwiYWRkQXJpYUxhYmVsbGVkQnkiLCJCdWlsZGluZ0Jsb2NrQmFzZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiRW1haWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCdWlsZGluZ0Jsb2NrQmFzZSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja0Jhc2VcIjtcbmltcG9ydCB7IGNvbnN0YW50IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IExpbmskUHJlc3NFdmVudCB9IGZyb20gXCJzYXAvbS9MaW5rXCI7XG5pbXBvcnQgTGluayBmcm9tIFwic2FwL20vTGlua1wiO1xuaW1wb3J0IHR5cGUgUG9wb3ZlciBmcm9tIFwic2FwL20vUG9wb3ZlclwiO1xuaW1wb3J0IE1MaWJyYXJ5IGZyb20gXCJzYXAvbS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5QmluZGluZ0luZm8gfSBmcm9tIFwic2FwL3VpL2Jhc2UvTWFuYWdlZE9iamVjdFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyAkQ29udHJvbFNldHRpbmdzIH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5jb250YWN0LkVtYWlsXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFbWFpbCBleHRlbmRzIEJ1aWxkaW5nQmxvY2tCYXNlPExpbms+IHtcblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcImFueVwiLFxuXHRcdGlzQmluZGluZ0luZm86IHRydWVcblx0fSlcblx0dmlzaWJsZTogUHJvcGVydHlCaW5kaW5nSW5mbyA9IGNvbnN0YW50KHRydWUpO1xuXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJhbnlcIixcblx0XHRpc0JpbmRpbmdJbmZvOiB0cnVlXG5cdH0pXG5cdHRleHQhOiBQcm9wZXJ0eUJpbmRpbmdJbmZvO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdGxpbmtFbmFibGVkID0gdHJ1ZTtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdG1haWwhOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRlbXB0eUluZGljYXRvck1vZGUgPSBcIk9mZlwiO1xuXG5cdC8qKlxuXHQgKiBBc3NvY2lhdGlvbiB0byBjb250cm9scyAvIElEcyB0aGF0IGxhYmVsIHRoaXMgY29udHJvbCAoc2VlIFdBSS1BUklBIGF0dHJpYnV0ZSBhcmlhLWxhYmVsbGVkYnkpLlxuXHQgKi9cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlLCBzaW5ndWxhck5hbWU6IFwiYXJpYUxhYmVsbGVkQnlcIiB9KVxuXHRhcmlhTGFiZWxsZWRCeSE6IEFycmF5PENvbnRyb2wgfCBzdHJpbmc+O1xuXG5cdGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6ICRDb250cm9sU2V0dGluZ3MgJiBQcm9wZXJ0aWVzT2Y8RW1haWw+LCBvdGhlcnM/OiAkQ29udHJvbFNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcywgb3RoZXJzKTtcblx0XHRpZiAodGhpcy52aXNpYmxlID09PSB1bmRlZmluZWQgfHwgKHR5cGVvZiB0aGlzLnZpc2libGUgPT09IFwib2JqZWN0XCIgJiYgT2JqZWN0LmtleXModGhpcy52aXNpYmxlKS5sZW5ndGggPT09IDApKSB7XG5cdFx0XHR0aGlzLnZpc2libGUgPSBjb25zdGFudCh0cnVlKTtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLmxpbmtFbmFibGVkKSB0aGlzLmxpbmtFbmFibGVkID0gdHJ1ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgdGhlIFRlYW1zIGNvbm5lY3Rpb24gaXMgYWN0aXZlLlxuXHQgKiBAcmV0dXJucyBCb29sZWFuIHZhbHVlXG5cdCAqL1xuXHRhc3luYyBpc1RlYW1zQ29ubmVjdGlvbkFjdGl2ZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRjb25zdCBhcHBDb21wb25lbnQgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGlmIChhcHBDb21wb25lbnQpIHtcblx0XHRcdHJldHVybiBhcHBDb21wb25lbnQuZ2V0Q29sbGFib3JhdGl2ZVRvb2xzU2VydmljZSgpLmlzQ29udGFjdHNDb2xsYWJvcmF0aW9uU3VwcG9ydGVkKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogR2V0IHRoZSBtYWlsIFBvcG92ZXIgZnJvbSB0aGUgVGVhbXMgaW50ZWdyYXRpb24uXG5cdCAqIEBwYXJhbSBtYWlsXG5cdCAqIEByZXR1cm5zIFBvcG92ZXIgb3IgdW5kZWZpbmVkXG5cdCAqL1xuXHRnZXRNYWlsUG9wb3ZlckZyb21Nc1RlYW1zSW50ZWdyYXRpb24obWFpbDogc3RyaW5nKTogUHJvbWlzZTxQb3BvdmVyIHwgdW5kZWZpbmVkPiB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKTtcblx0XHRpZiAoYXBwQ29tcG9uZW50KSB7XG5cdFx0XHRyZXR1cm4gYXBwQ29tcG9uZW50LmdldENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UoKS5nZXRNYWlsUG9wb3ZlckZyb21Nc1RlYW1zSW50ZWdyYXRpb24obWFpbCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFNldHRlciBmb3IgdGhlIGxpbmtFbmFibGVkIHByb3BlcnR5LlxuXHQgKiBAcGFyYW0gZW5hYmxlZFxuXHQgKi9cblx0c2V0TGlua0VuYWJsZWQoZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMubGlua0VuYWJsZWQgPSBlbmFibGVkO1xuXHRcdHRoaXMuY29udGVudD8uc2V0RW5hYmxlZChlbmFibGVkKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVyIGZvciB0aGUgb25NZXRhZGF0YUF2YWlsYWJsZSBldmVudC5cblx0ICovXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLmNvbnRlbnQpIHtcblx0XHRcdGlmICh0aGlzLnZpc2libGUgPT09IHVuZGVmaW5lZCB8fCAodHlwZW9mIHRoaXMudmlzaWJsZSA9PT0gXCJvYmplY3RcIiAmJiBPYmplY3Qua2V5cyh0aGlzLnZpc2libGUpLmxlbmd0aCA9PT0gMCkpIHtcblx0XHRcdFx0dGhpcy52aXNpYmxlID0gY29uc3RhbnQodHJ1ZSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIXRoaXMubGlua0VuYWJsZWQpIHRoaXMubGlua0VuYWJsZWQgPSB0cnVlO1xuXHRcdFx0dGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIE9wZW4gYSBwb3BvdmVyIGlmIHRoZSBUZWFtcyBjb25uZWN0aW9uIGlzIGFjdGl2ZSBvciBhIGNsYXNzaWMgbWFpbC5cblx0ICogQHBhcmFtIGV2ZW50XG5cdCAqL1xuXHRhc3luYyBvcGVuUG9wb3ZlcihldmVudDogTGluayRQcmVzc0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gc3RvcCBkZWZhdWx0IGJlaGF2aW9yIGJhc2VkIG9uIGhyZWZcblx0XHRsZXQgcmV2ZXJ0VG9EZWZhdWx0QmVoYXZpb3VyID0gZmFsc2U7XG5cdFx0Y29uc3QgbGluayA9IGV2ZW50LmdldFNvdXJjZSgpO1xuXHRcdC8vIFwidGhpc1wiIGRvZXNuJ3QgY29udGFpbiB0aGUgRW1haWwgaW5zdGFuY2UgY29ycmVzcG9uZGluZyB0byB0aGUgbGluayBzbyB3ZSBuZWVkIHRvIHJldHJpZXZlIGl0IGluIG9yZGVyIHRvIHJlYWQgdGhlIG1haWxcblx0XHRjb25zdCBtYWlsQkJ2NCA9IGxpbmsuZ2V0UGFyZW50KCkgYXMgRW1haWw7XG5cblx0XHQvLyB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSB0ZWFtcyBjb25uZWN0aW9uIGlzIGFjdGl2ZSBub3cgYmVjYXVzZSBhdCB0ZW1wbGF0aW5nIHRoZSB0ZWFtc2hlbHBlciBzZXJ2aWNlIG1pZ2h0IG5vdCBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQgeWV0XG5cdFx0aWYgKGF3YWl0IHRoaXMuaXNUZWFtc0Nvbm5lY3Rpb25BY3RpdmUoKSkge1xuXHRcdFx0aWYgKG1haWxCQnY0Lm1haWwpIHtcblx0XHRcdFx0Y29uc3QgcG9wb3ZlciA9IGF3YWl0IHRoaXMuZ2V0TWFpbFBvcG92ZXJGcm9tTXNUZWFtc0ludGVncmF0aW9uKG1haWxCQnY0Lm1haWwpO1xuXHRcdFx0XHRpZiAocG9wb3Zlcikge1xuXHRcdFx0XHRcdHBvcG92ZXIub3BlbkJ5KGxpbmspO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldmVydFRvRGVmYXVsdEJlaGF2aW91ciA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV2ZXJ0VG9EZWZhdWx0QmVoYXZpb3VyID0gdHJ1ZTtcblx0XHR9XG5cdFx0aWYgKHJldmVydFRvRGVmYXVsdEJlaGF2aW91cikge1xuXHRcdFx0TUxpYnJhcnkuVVJMSGVscGVyLnJlZGlyZWN0KGBtYWlsdG86JHttYWlsQkJ2NC5tYWlsfWApO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGUgdGhlIGNvbnRlbnQuXG5cdCAqL1xuXHRjcmVhdGVDb250ZW50KCk6IHZvaWQge1xuXHRcdGNvbnN0IGxpbmsgPSAoXG5cdFx0XHQ8TGlua1xuXHRcdFx0XHR2aXNpYmxlPXt0aGlzLnZpc2libGV9XG5cdFx0XHRcdHRleHQ9e3RoaXMudGV4dH1cblx0XHRcdFx0ZW5hYmxlZD17dGhpcy5saW5rRW5hYmxlZH1cblx0XHRcdFx0ZW1wdHlJbmRpY2F0b3JNb2RlPXt0aGlzLmVtcHR5SW5kaWNhdG9yTW9kZX1cblx0XHRcdFx0Y2xhc3M9XCJzYXBNVGV4dFJlbmRlcldoaXRlc3BhY2VXcmFwXCJcblx0XHRcdFx0cHJlc3M9e2FzeW5jIChldmVudDogTGluayRQcmVzc0V2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB0aGlzLm9wZW5Qb3BvdmVyKGV2ZW50KX1cblx0XHRcdC8+XG5cdFx0KTtcblx0XHRpZiAodGhpcy5hcmlhTGFiZWxsZWRCeSkge1xuXHRcdFx0bGluay5hZGRBcmlhTGFiZWxsZWRCeSh0aGlzLmFyaWFMYWJlbGxlZEJ5KTtcblx0XHR9XG5cdFx0dGhpcy5jb250ZW50ID0gbGluaztcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O01BWXFCQSxLQUFLLFdBRHpCQyxjQUFjLENBQUMsNkJBQTZCLENBQUMsVUFFNUNDLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUUsS0FBSztJQUNYQyxhQUFhLEVBQUU7RUFDaEIsQ0FBQyxDQUFDLFVBR0RGLFFBQVEsQ0FBQztJQUNUQyxJQUFJLEVBQUUsS0FBSztJQUNYQyxhQUFhLEVBQUU7RUFDaEIsQ0FBQyxDQUFDLFVBR0RGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBVSxDQUFDLENBQUMsVUFHN0JELFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsVUFHNUJELFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUyxDQUFDLENBQUMsVUFNNUJFLFdBQVcsQ0FBQztJQUFFRixJQUFJLEVBQUUscUJBQXFCO0lBQUVHLFFBQVEsRUFBRSxJQUFJO0lBQUVDLFlBQVksRUFBRTtFQUFpQixDQUFDLENBQUM7SUFBQTtJQUg3RjtBQUNEO0FBQ0E7O0lBSUMsZUFBWUMsVUFBa0QsRUFBRUMsTUFBeUIsRUFBRTtNQUFBO01BQzFGLHNDQUFNRCxVQUFVLEVBQUVDLE1BQU0sQ0FBQztNQUFDO01BQUE7TUFBQTtNQUFBO01BQUE7TUFBQTtNQUMxQixJQUFJLE1BQUtDLE9BQU8sS0FBS0MsU0FBUyxJQUFLLE9BQU8sTUFBS0QsT0FBTyxLQUFLLFFBQVEsSUFBSUUsTUFBTSxDQUFDQyxJQUFJLENBQUMsTUFBS0gsT0FBTyxD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
|
|
195
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbWFpbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiaXNCaW5kaW5nSW5mbyIsImFzc29jaWF0aW9uIiwibXVsdGlwbGUiLCJzaW5ndWxhck5hbWUiLCJwcm9wZXJ0aWVzIiwib3RoZXJzIiwidmlzaWJsZSIsInVuZGVmaW5lZCIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJjb25zdGFudCIsImxpbmtFbmFibGVkIiwiaXNUZWFtc0Nvbm5lY3Rpb25BY3RpdmUiLCJhcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJnZXRDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlIiwiaXNDb250YWN0c0NvbGxhYm9yYXRpb25TdXBwb3J0ZWQiLCJnZXRNYWlsUG9wb3ZlckZyb21Nc1RlYW1zSW50ZWdyYXRpb24iLCJtYWlsIiwic2V0TGlua0VuYWJsZWQiLCJlbmFibGVkIiwiY29udGVudCIsInNldEVuYWJsZWQiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiY3JlYXRlQ29udGVudCIsIm9wZW5Qb3BvdmVyIiwiZXZlbnQiLCJwcmV2ZW50RGVmYXVsdCIsInJldmVydFRvRGVmYXVsdEJlaGF2aW91ciIsImxpbmsiLCJnZXRTb3VyY2UiLCJtYWlsQkJ2NCIsImdldFBhcmVudCIsInBvcG92ZXIiLCJvcGVuQnkiLCJNTGlicmFyeSIsIlVSTEhlbHBlciIsInJlZGlyZWN0IiwidGV4dCIsImVtcHR5SW5kaWNhdG9yTW9kZSIsImFyaWFMYWJlbGxlZEJ5IiwiQnVpbGRpbmdCbG9ja0Jhc2UiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVtYWlsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQnVpbGRpbmdCbG9ja0Jhc2UgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tCYXNlXCI7XG5pbXBvcnQgeyBjb25zdGFudCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBhc3NvY2lhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIHByb3BlcnR5LCB0eXBlIFByb3BlcnRpZXNPZiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHR5cGUgeyBMaW5rJFByZXNzRXZlbnQgfSBmcm9tIFwic2FwL20vTGlua1wiO1xuaW1wb3J0IExpbmsgZnJvbSBcInNhcC9tL0xpbmtcIjtcbmltcG9ydCB0eXBlIFBvcG92ZXIgZnJvbSBcInNhcC9tL1BvcG92ZXJcIjtcbmltcG9ydCBNTGlicmFyeSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eUJpbmRpbmdJbmZvIH0gZnJvbSBcInNhcC91aS9iYXNlL01hbmFnZWRPYmplY3RcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIHsgJENvbnRyb2xTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuY29udGFjdC5FbWFpbFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW1haWwgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZTxMaW5rPiB7XG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJhbnlcIixcblx0XHRpc0JpbmRpbmdJbmZvOiB0cnVlXG5cdH0pXG5cdHZpc2libGU6IFByb3BlcnR5QmluZGluZ0luZm8gPSBjb25zdGFudCh0cnVlKTtcblxuXHRAcHJvcGVydHkoe1xuXHRcdHR5cGU6IFwiYW55XCIsXG5cdFx0aXNCaW5kaW5nSW5mbzogdHJ1ZVxuXHR9KVxuXHR0ZXh0ITogUHJvcGVydHlCaW5kaW5nSW5mbztcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRsaW5rRW5hYmxlZCA9IHRydWU7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRtYWlsITogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0ZW1wdHlJbmRpY2F0b3JNb2RlID0gXCJPZmZcIjtcblxuXHQvKipcblx0ICogQXNzb2NpYXRpb24gdG8gY29udHJvbHMgLyBJRHMgdGhhdCBsYWJlbCB0aGlzIGNvbnRyb2wgKHNlZSBXQUktQVJJQSBhdHRyaWJ1dGUgYXJpYS1sYWJlbGxlZGJ5KS5cblx0ICovXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSwgc2luZ3VsYXJOYW1lOiBcImFyaWFMYWJlbGxlZEJ5XCIgfSlcblx0YXJpYUxhYmVsbGVkQnkhOiBBcnJheTxDb250cm9sIHwgc3RyaW5nPjtcblxuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPEVtYWlsPiwgb3RoZXJzPzogJENvbnRyb2xTZXR0aW5ncykge1xuXHRcdHN1cGVyKHByb3BlcnRpZXMsIG90aGVycyk7XG5cdFx0aWYgKHRoaXMudmlzaWJsZSA9PT0gdW5kZWZpbmVkIHx8ICh0eXBlb2YgdGhpcy52aXNpYmxlID09PSBcIm9iamVjdFwiICYmIE9iamVjdC5rZXlzKHRoaXMudmlzaWJsZSkubGVuZ3RoID09PSAwKSkge1xuXHRcdFx0dGhpcy52aXNpYmxlID0gY29uc3RhbnQodHJ1ZSk7XG5cdFx0fVxuXHRcdGlmICghdGhpcy5saW5rRW5hYmxlZCkgdGhpcy5saW5rRW5hYmxlZCA9IHRydWU7XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIHRoZSBUZWFtcyBjb25uZWN0aW9uIGlzIGFjdGl2ZS5cblx0ICogQHJldHVybnMgQm9vbGVhbiB2YWx1ZVxuXHQgKi9cblx0YXN5bmMgaXNUZWFtc0Nvbm5lY3Rpb25BY3RpdmUoKTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0Y29uc3QgYXBwQ29tcG9uZW50ID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKTtcblx0XHRpZiAoYXBwQ29tcG9uZW50KSB7XG5cdFx0XHRyZXR1cm4gYXBwQ29tcG9uZW50LmdldENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2UoKS5pc0NvbnRhY3RzQ29sbGFib3JhdGlvblN1cHBvcnRlZCgpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldCB0aGUgbWFpbCBQb3BvdmVyIGZyb20gdGhlIFRlYW1zIGludGVncmF0aW9uLlxuXHQgKiBAcGFyYW0gbWFpbFxuXHQgKiBAcmV0dXJucyBQb3BvdmVyIG9yIHVuZGVmaW5lZFxuXHQgKi9cblx0Z2V0TWFpbFBvcG92ZXJGcm9tTXNUZWFtc0ludGVncmF0aW9uKG1haWw6IHN0cmluZyk6IFByb21pc2U8UG9wb3ZlciB8IHVuZGVmaW5lZD4gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGFwcENvbXBvbmVudCA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCk7XG5cdFx0aWYgKGFwcENvbXBvbmVudCkge1xuXHRcdFx0cmV0dXJuIGFwcENvbXBvbmVudC5nZXRDb2xsYWJvcmF0aXZlVG9vbHNTZXJ2aWNlKCkuZ2V0TWFpbFBvcG92ZXJGcm9tTXNUZWFtc0ludGVncmF0aW9uKG1haWwpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBTZXR0ZXIgZm9yIHRoZSBsaW5rRW5hYmxlZCBwcm9wZXJ0eS5cblx0ICogQHBhcmFtIGVuYWJsZWRcblx0ICovXG5cdHNldExpbmtFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcblx0XHR0aGlzLmxpbmtFbmFibGVkID0gZW5hYmxlZDtcblx0XHR0aGlzLmNvbnRlbnQ/LnNldEVuYWJsZWQoZW5hYmxlZCk7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlciBmb3IgdGhlIG9uTWV0YWRhdGFBdmFpbGFibGUgZXZlbnQuXG5cdCAqL1xuXHRvbk1ldGFkYXRhQXZhaWxhYmxlKCk6IHZvaWQge1xuXHRcdGlmICghdGhpcy5jb250ZW50KSB7XG5cdFx0XHRpZiAodGhpcy52aXNpYmxlID09PSB1bmRlZmluZWQgfHwgKHR5cGVvZiB0aGlzLnZpc2libGUgPT09IFwib2JqZWN0XCIgJiYgT2JqZWN0LmtleXModGhpcy52aXNpYmxlKS5sZW5ndGggPT09IDApKSB7XG5cdFx0XHRcdHRoaXMudmlzaWJsZSA9IGNvbnN0YW50KHRydWUpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCF0aGlzLmxpbmtFbmFibGVkKSB0aGlzLmxpbmtFbmFibGVkID0gdHJ1ZTtcblx0XHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBPcGVuIGEgcG9wb3ZlciBpZiB0aGUgVGVhbXMgY29ubmVjdGlvbiBpcyBhY3RpdmUgb3IgYSBjbGFzc2ljIG1haWwuXG5cdCAqIEBwYXJhbSBldmVudFxuXHQgKi9cblx0YXN5bmMgb3BlblBvcG92ZXIoZXZlbnQ6IExpbmskUHJlc3NFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIHN0b3AgZGVmYXVsdCBiZWhhdmlvciBiYXNlZCBvbiBocmVmXG5cdFx0bGV0IHJldmVydFRvRGVmYXVsdEJlaGF2aW91ciA9IGZhbHNlO1xuXHRcdGNvbnN0IGxpbmsgPSBldmVudC5nZXRTb3VyY2UoKTtcblx0XHQvLyBcInRoaXNcIiBkb2Vzbid0IGNvbnRhaW4gdGhlIEVtYWlsIGluc3RhbmNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGxpbmsgc28gd2UgbmVlZCB0byByZXRyaWV2ZSBpdCBpbiBvcmRlciB0byByZWFkIHRoZSBtYWlsXG5cdFx0Y29uc3QgbWFpbEJCdjQgPSBsaW5rLmdldFBhcmVudCgpIGFzIEVtYWlsO1xuXG5cdFx0Ly8gd2UgbmVlZCB0byBjaGVjayBpZiB0aGUgdGVhbXMgY29ubmVjdGlvbiBpcyBhY3RpdmUgbm93IGJlY2F1c2UgYXQgdGVtcGxhdGluZyB0aGUgdGVhbXNoZWxwZXIgc2VydmljZSBtaWdodCBub3QgaGF2ZSBiZWVuIGluaXRpYWxpemVkIHlldFxuXHRcdGlmIChhd2FpdCB0aGlzLmlzVGVhbXNDb25uZWN0aW9uQWN0aXZlKCkpIHtcblx0XHRcdGlmIChtYWlsQkJ2NC5tYWlsKSB7XG5cdFx0XHRcdGNvbnN0IHBvcG92ZXIgPSBhd2FpdCB0aGlzLmdldE1haWxQb3BvdmVyRnJvbU1zVGVhbXNJbnRlZ3JhdGlvbihtYWlsQkJ2NC5tYWlsKTtcblx0XHRcdFx0aWYgKHBvcG92ZXIpIHtcblx0XHRcdFx0XHRwb3BvdmVyLm9wZW5CeShsaW5rKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRyZXZlcnRUb0RlZmF1bHRCZWhhdmlvdXIgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldmVydFRvRGVmYXVsdEJlaGF2aW91ciA9IHRydWU7XG5cdFx0fVxuXHRcdGlmIChyZXZlcnRUb0RlZmF1bHRCZWhhdmlvdXIpIHtcblx0XHRcdE1MaWJyYXJ5LlVSTEhlbHBlci5yZWRpcmVjdChgbWFpbHRvOiR7bWFpbEJCdjQubWFpbH1gKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlIHRoZSBjb250ZW50LlxuXHQgKi9cblx0Y3JlYXRlQ29udGVudCgpOiBMaW5rIHtcblx0XHRjb25zdCBsaW5rID0gKFxuXHRcdFx0PExpbmtcblx0XHRcdFx0dmlzaWJsZT17dGhpcy52aXNpYmxlfVxuXHRcdFx0XHR0ZXh0PXt0aGlzLnRleHR9XG5cdFx0XHRcdGVuYWJsZWQ9e3RoaXMubGlua0VuYWJsZWR9XG5cdFx0XHRcdGVtcHR5SW5kaWNhdG9yTW9kZT17dGhpcy5lbXB0eUluZGljYXRvck1vZGV9XG5cdFx0XHRcdGNsYXNzPVwic2FwTVRleHRSZW5kZXJXaGl0ZXNwYWNlV3JhcFwiXG5cdFx0XHRcdHByZXNzPXthc3luYyAoZXZlbnQ6IExpbmskUHJlc3NFdmVudCk6IFByb21pc2U8dm9pZD4gPT4gdGhpcy5vcGVuUG9wb3ZlcihldmVudCl9XG5cdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXt0aGlzLmFyaWFMYWJlbGxlZEJ5fVxuXHRcdFx0Lz5cblx0XHQpIGFzIExpbms7XG5cdFx0cmV0dXJuIGxpbms7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7OztNQVlxQkEsS0FBSyxXQUR6QkMsY0FBYyxDQUFDLDZCQUE2QixDQUFDLFVBRTVDQyxRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLEtBQUs7SUFDWEMsYUFBYSxFQUFFO0VBQ2hCLENBQUMsQ0FBQyxVQUdERixRQUFRLENBQUM7SUFDVEMsSUFBSSxFQUFFLEtBQUs7SUFDWEMsYUFBYSxFQUFFO0VBQ2hCLENBQUMsQ0FBQyxVQUdERixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLFVBRzdCRCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLFVBRzVCRCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVMsQ0FBQyxDQUFDLFVBTTVCRSxXQUFXLENBQUM7SUFBRUYsSUFBSSxFQUFFLHFCQUFxQjtJQUFFRyxRQUFRLEVBQUUsSUFBSTtJQUFFQyxZQUFZLEVBQUU7RUFBaUIsQ0FBQyxDQUFDO0lBQUE7SUFIN0Y7QUFDRDtBQUNBOztJQUlDLGVBQVlDLFVBQWtELEVBQUVDLE1BQXlCLEVBQUU7TUFBQTtNQUMxRixzQ0FBTUQsVUFBVSxFQUFFQyxNQUFNLENBQUM7TUFBQztNQUFBO01BQUE7TUFBQTtNQUFBO01BQUE7TUFDMUIsSUFBSSxNQUFLQyxPQUFPLEtBQUtDLFNBQVMsSUFBSyxPQUFPLE1BQUtELE9BQU8sS0FBSyxRQUFRLElBQUlFLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLE1BQUtILE9BQU8sQ0FBQyxDQUFDSSxNQUFNLEtBQUssQ0FBRSxFQUFFO1FBQy9HLE1BQUtKLE9BQU8sR0FBR0ssUUFBUSxDQUFDLElBQUksQ0FBQztNQUM5QjtNQUNBLElBQUksQ0FBQyxNQUFLQyxXQUFXLEVBQUUsTUFBS0EsV0FBVyxHQUFHLElBQUk7TUFBQztJQUNoRDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtJQUhDO0lBQUE7SUFBQSxPQUlNQyx1QkFBdUIsR0FBN0IseUNBQWtEO01BQ2pELE1BQU1DLFlBQVksR0FBRyxJQUFJLENBQUNDLGVBQWUsRUFBRTtNQUMzQyxJQUFJRCxZQUFZLEVBQUU7UUFDakIsT0FBT0EsWUFBWSxDQUFDRSw0QkFBNEIsRUFBRSxDQUFDQyxnQ0FBZ0MsRUFBRTtNQUN0RixDQUFDLE1BQU07UUFDTixPQUFPLEtBQUs7TUFDYjtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBLE9BS0FDLG9DQUFvQyxHQUFwQyw4Q0FBcUNDLElBQVksRUFBNEM7TUFDNUYsTUFBTUwsWUFBWSxHQUFHLElBQUksQ0FBQ0MsZUFBZSxFQUFFO01BQzNDLElBQUlELFlBQVksRUFBRTtRQUNqQixPQUFPQSxZQUFZLENBQUNFLDRCQUE0QixFQUFFLENBQUNFLG9DQUFvQyxDQUFDQyxJQUFJLENBQUM7TUFDOUYsQ0FBQyxNQUFNO1FBQ04sT0FBT1osU0FBUztNQUNqQjtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQSxPQUlBYSxjQUFjLEdBQWQsd0JBQWVDLE9BQWdCLEVBQVE7TUFBQTtNQUN0QyxJQUFJLENBQUNULFdBQVcsR0FBR1MsT0FBTztNQUMxQixxQkFBSSxDQUFDQyxPQUFPLGtEQUFaLGNBQWNDLFVBQVUsQ0FBQ0YsT0FBTyxDQUFDO0lBQ2xDOztJQUVBO0FBQ0Q7QUFDQSxPQUZDO0lBQUEsT0FHQUcsbUJBQW1CLEdBQW5CLCtCQUE0QjtNQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDRixPQUFPLEVBQUU7UUFDbEIsSUFBSSxJQUFJLENBQUNoQixPQUFPLEtBQUtDLFNBQVMsSUFBSyxPQUFPLElBQUksQ0FBQ0QsT0FBTyxLQUFLLFFBQVEsSUFBSUUsTUFBTSxDQUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDSCxPQUFPLENBQUMsQ0FBQ0ksTUFBTSxLQUFLLENBQUUsRUFBRTtVQUMvRyxJQUFJLENBQUNKLE9BQU8sR0FBR0ssUUFBUSxDQUFDLElBQUksQ0FBQztRQUM5QjtRQUNBLElBQUksQ0FBQyxJQUFJLENBQUNDLFdBQVcsRUFBRSxJQUFJLENBQUNBLFdBQVcsR0FBRyxJQUFJO1FBQzlDLElBQUksQ0FBQ1UsT0FBTyxHQUFHLElBQUksQ0FBQ0csYUFBYSxFQUFFO01BQ3BDO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBLE9BSU1DLFdBQVcsR0FBakIsMkJBQWtCQyxLQUFzQixFQUFpQjtNQUN4REEsS0FBSyxDQUFDQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO01BQ3hCLElBQUlDLHdCQUF3QixHQUFHLEtBQUs7TUFDcEMsTUFBTUMsSUFBSSxHQUFHSCxLQUFLLENBQUNJLFNBQVMsRUFBRTtNQUM5QjtNQUNBLE1BQU1DLFFBQVEsR0FBR0YsSUFBSSxDQUFDRyxTQUFTLEVBQVc7O01BRTFDO01BQ0EsSUFBSSxNQUFNLElBQUksQ0FBQ3BCLHVCQUF1QixFQUFFLEVBQUU7UUFDekMsSUFBSW1CLFFBQVEsQ0FBQ2IsSUFBSSxFQUFFO1VBQ2xCLE1BQU1lLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQ2hCLG9DQUFvQyxDQUFDYyxRQUFRLENBQUNiLElBQUksQ0FBQztVQUM5RSxJQUFJZSxPQUFPLEVBQUU7WUFDWkEsT0FBTyxDQUFDQyxNQUFNLENBQUNMLElBQUksQ0FBQztVQUNyQixDQUFDLE1BQU07WUFDTkQsd0JBQXdCLEdBQUcsSUFBSTtVQUNoQztRQUNEO01BQ0QsQ0FBQyxNQUFNO1FBQ05BLHdCQUF3QixHQUFHLElBQUk7TUFDaEM7TUFDQSxJQUFJQSx3QkFBd0IsRUFBRTtRQUM3Qk8sUUFBUSxDQUFDQyxTQUFTLENBQUNDLFFBQVEsQ0FBRSxVQUFTTixRQUFRLENBQUNiLElBQUssRUFBQyxDQUFDO01BQ3ZEO0lBQ0Q7O0lBRUE7QUFDRDtBQUNBLE9BRkM7SUFBQSxPQUdBTSxhQUFhLEdBQWIseUJBQXNCO01BQ3JCLE1BQU1LLElBQUksR0FDVCxLQUFDLElBQUk7UUFDSixPQUFPLEVBQUUsSUFBSSxDQUFDeEIsT0FBUTtRQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDaUMsSUFBSztRQUNoQixPQUFPLEVBQUUsSUFBSSxDQUFDM0IsV0FBWTtRQUMxQixrQkFBa0IsRUFBRSxJQUFJLENBQUM0QixrQkFBbUI7UUFDNUMsS0FBSyxFQUFDLDhCQUE4QjtRQUNwQyxLQUFLLEVBQUUsTUFBT2IsS0FBc0IsSUFBb0IsSUFBSSxDQUFDRCxXQUFXLENBQUNDLEtBQUssQ0FBRTtRQUNoRixjQUFjLEVBQUUsSUFBSSxDQUFDYztNQUFlLEVBRTdCO01BQ1QsT0FBT1gsSUFBSTtJQUNaLENBQUM7SUFBQTtFQUFBLEVBbElpQ1ksaUJBQWlCO0lBQUE7SUFBQTtJQUFBO0lBQUE7TUFBQSxPQUtwQi9CLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO01BQUEsT0FTL0IsSUFBSTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7TUFBQSxPQU1HLEtBQUs7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtFQUFBO0VBQUE7QUFBQSJ9
|
|
@@ -91,7 +91,7 @@ export default class Email extends BuildingBlockBase<Link> {
|
|
|
91
91
|
this.visible = constant(true);
|
|
92
92
|
}
|
|
93
93
|
if (!this.linkEnabled) this.linkEnabled = true;
|
|
94
|
-
this.createContent();
|
|
94
|
+
this.content = this.createContent();
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -127,7 +127,7 @@ export default class Email extends BuildingBlockBase<Link> {
|
|
|
127
127
|
/**
|
|
128
128
|
* Create the content.
|
|
129
129
|
*/
|
|
130
|
-
createContent():
|
|
130
|
+
createContent(): Link {
|
|
131
131
|
const link = (
|
|
132
132
|
<Link
|
|
133
133
|
visible={this.visible}
|
|
@@ -136,11 +136,9 @@ export default class Email extends BuildingBlockBase<Link> {
|
|
|
136
136
|
emptyIndicatorMode={this.emptyIndicatorMode}
|
|
137
137
|
class="sapMTextRenderWhitespaceWrap"
|
|
138
138
|
press={async (event: Link$PressEvent): Promise<void> => this.openPopover(event)}
|
|
139
|
+
ariaLabelledBy={this.ariaLabelledBy}
|
|
139
140
|
/>
|
|
140
|
-
);
|
|
141
|
-
|
|
142
|
-
link.addAriaLabelledBy(this.ariaLabelledBy);
|
|
143
|
-
}
|
|
144
|
-
this.content = link;
|
|
141
|
+
) as Link;
|
|
142
|
+
return link;
|
|
145
143
|
}
|
|
146
144
|
}
|