@sapui5/sap.fe.templates 1.105.0 → 1.106.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/package.json +2 -2
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
- package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
- package/src/sap/fe/templates/Feedback.js +1 -1
- package/src/sap/fe/templates/Feedback.ts +0 -3
- package/src/sap/fe/templates/ListReport/ListReport.view.xml +1 -11
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +49 -66
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +41 -60
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +1 -13
- package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +0 -9
- package/src/sap/fe/templates/ListReport/overrides/Share.js +4 -12
- package/src/sap/fe/templates/ListReport/overrides/Share.ts +4 -12
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +5 -5
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +4 -4
- package/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +6 -1
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +15 -7
- package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +12 -3
- package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +19 -15
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +2 -2
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +2 -2
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +38 -20
- package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +37 -24
- package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +60 -48
- package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +6 -6
- package/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +5 -1
- package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +11 -8
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +4 -4
- package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +3 -3
- package/src/sap/fe/templates/library.js +1 -1
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
import EditState from "sap/fe/core/helpers/EditState";
|
|
27
27
|
import MessageStrip from "sap/fe/core/helpers/MessageStrip";
|
|
28
28
|
import { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
29
|
+
import * as StableIdHelper from "sap/fe/core/helpers/StableIdHelper";
|
|
29
30
|
import CoreLibrary from "sap/fe/core/library";
|
|
30
31
|
import PageController from "sap/fe/core/PageController";
|
|
31
32
|
import ChartRuntime from "sap/fe/macros/chart/ChartRuntime";
|
|
@@ -38,6 +39,7 @@ import ExtensionAPI from "sap/fe/templates/ListReport/ExtensionAPI";
|
|
|
38
39
|
import EditFlowOverrides from "sap/fe/templates/RootContainer/overrides/EditFlow";
|
|
39
40
|
import TableScroller from "sap/fe/templates/TableScroller";
|
|
40
41
|
import type SegmentedButton from "sap/m/SegmentedButton";
|
|
42
|
+
import Component from "sap/ui/core/Component";
|
|
41
43
|
import type Control from "sap/ui/core/Control";
|
|
42
44
|
import OverrideExecution from "sap/ui/core/mvc/OverrideExecution";
|
|
43
45
|
import { system } from "sap/ui/Device";
|
|
@@ -47,6 +49,7 @@ import type JSONModel from "sap/ui/model/json/JSONModel";
|
|
|
47
49
|
import type ResourceModel from "sap/ui/model/resource/ResourceModel";
|
|
48
50
|
import hasher from "sap/ui/thirdparty/hasher";
|
|
49
51
|
import type { V4Context } from "types/extension_types";
|
|
52
|
+
import * as ListReportTemplating from "./ListReportTemplating";
|
|
50
53
|
import IntentBasedNavigationOverride from "./overrides/IntentBasedNavigation";
|
|
51
54
|
import ShareOverrides from "./overrides/Share";
|
|
52
55
|
import ViewStateOverrides from "./overrides/ViewState";
|
|
@@ -153,7 +156,7 @@ class ListReportController extends PageController {
|
|
|
153
156
|
const aTables = this._getControls("table");
|
|
154
157
|
if (EditState.isEditStateDirty()) {
|
|
155
158
|
this._getMultiModeControl()?.invalidateContent();
|
|
156
|
-
const oTableBinding = this.
|
|
159
|
+
const oTableBinding = this._getTable()?.getRowBinding();
|
|
157
160
|
if (oTableBinding) {
|
|
158
161
|
if (CommonUtils.getAppComponent(this.getView())._isFclEnabled()) {
|
|
159
162
|
// there is an issue if we use a timeout with a kept alive context used on another page
|
|
@@ -276,9 +279,7 @@ class ListReportController extends PageController {
|
|
|
276
279
|
}
|
|
277
280
|
|
|
278
281
|
getCurrentEntitySet() {
|
|
279
|
-
return this.
|
|
280
|
-
? this._getMultiModeControl()?.getDisplayedEntitySet()
|
|
281
|
-
: this._getTable()?.data("targetCollectionPath").slice(1);
|
|
282
|
+
return this._getTable()?.data("targetCollectionPath").slice(1);
|
|
282
283
|
}
|
|
283
284
|
|
|
284
285
|
/**
|
|
@@ -318,16 +319,13 @@ class ListReportController extends PageController {
|
|
|
318
319
|
}
|
|
319
320
|
|
|
320
321
|
_getPageTitleInformation() {
|
|
321
|
-
const
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
return (
|
|
329
|
-
this.getView().byId("fe::PageVariantManagement") || this.getView().byId(`${this._getFilterBarControlId()}::VariantManagement`)
|
|
330
|
-
);
|
|
322
|
+
const oManifestEntry = this.getAppComponent().getManifestEntry("sap.app");
|
|
323
|
+
return {
|
|
324
|
+
title: oManifestEntry.title,
|
|
325
|
+
subtitle: oManifestEntry.appSubTitle || "",
|
|
326
|
+
intent: "",
|
|
327
|
+
icon: ""
|
|
328
|
+
};
|
|
331
329
|
}
|
|
332
330
|
|
|
333
331
|
_getFilterBarControl() {
|
|
@@ -342,62 +340,48 @@ class ListReportController extends PageController {
|
|
|
342
340
|
}
|
|
343
341
|
|
|
344
342
|
_getSegmentedButton(sControl: any) {
|
|
345
|
-
|
|
343
|
+
const sSegmentedButtonId = (sControl === "Chart" ? this.getChartControl() : this._getTable())?.data("segmentedButtonId");
|
|
344
|
+
return this.getView().byId(sSegmentedButtonId);
|
|
346
345
|
}
|
|
347
346
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
} else {
|
|
352
|
-
return this._getTable()?.data("segmentedButtonId");
|
|
353
|
-
}
|
|
347
|
+
_getControlFromPageModelProperty(sPath: string) {
|
|
348
|
+
const controlId = this._getPageModel()?.getProperty(sPath);
|
|
349
|
+
return controlId && this.getView().byId(controlId);
|
|
354
350
|
}
|
|
355
351
|
|
|
356
|
-
|
|
357
|
-
|
|
352
|
+
_getPageModel(): JSONModel | undefined {
|
|
353
|
+
const pageComponent = Component.getOwnerComponentFor(this.getView()) as any;
|
|
354
|
+
return pageComponent.getModel("_pageModel");
|
|
358
355
|
}
|
|
359
356
|
|
|
360
|
-
|
|
361
|
-
return this.
|
|
357
|
+
_getFilterBarControlId(): string {
|
|
358
|
+
return this._getPageModel()?.getProperty("/filterBarId") || "";
|
|
362
359
|
}
|
|
363
360
|
|
|
364
361
|
getChartControl() {
|
|
365
|
-
return this.
|
|
362
|
+
return this._getControlFromPageModelProperty("/singleChartId");
|
|
366
363
|
}
|
|
367
364
|
|
|
368
365
|
_getVisualFilterBarControl() {
|
|
369
|
-
|
|
366
|
+
const sVisualFilterBarId = StableIdHelper.generate(["visualFilter", this._getFilterBarControlId()]);
|
|
367
|
+
return sVisualFilterBarId && this.getView().byId(sVisualFilterBarId);
|
|
370
368
|
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
return this.getView().getContent()[0].data("visualFilterBarId");
|
|
369
|
+
_getFilterBarVariantControl() {
|
|
370
|
+
return this._getControlFromPageModelProperty("/variantManagement/id");
|
|
374
371
|
}
|
|
375
372
|
|
|
376
373
|
_getMultiModeControl() {
|
|
377
374
|
return this.getView().byId("fe::TabMultipleMode::Control") as MultipleModeControl;
|
|
378
375
|
}
|
|
379
376
|
|
|
380
|
-
_getTableControlId() {
|
|
381
|
-
return this.getView().getContent()[0].data("singleTableId");
|
|
382
|
-
}
|
|
383
|
-
|
|
384
377
|
_getTable(): Table | undefined {
|
|
385
378
|
if (this._isMultiMode()) {
|
|
386
379
|
const oControl = this._getMultiModeControl()?.getSelectedInnerControl()?.content;
|
|
387
380
|
return oControl?.isA("sap.ui.mdc.Table") ? (oControl as Table) : undefined;
|
|
381
|
+
} else {
|
|
382
|
+
return this._getControlFromPageModelProperty("/singleTableId") as Table;
|
|
388
383
|
}
|
|
389
|
-
return this.getView().byId(this._getTableControlId()) as Table;
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
_getChart() {
|
|
393
|
-
return this.getView().byId(this._getChartControlId());
|
|
394
384
|
}
|
|
395
|
-
|
|
396
|
-
_getTableBinding(sTableId?: any) {
|
|
397
|
-
const oTableControl = sTableId ? this.getView().byId(sTableId) : this._getTable();
|
|
398
|
-
return oTableControl && (oTableControl as any)._getRowBinding();
|
|
399
|
-
}
|
|
400
|
-
|
|
401
385
|
_getControls(sKey?: any) {
|
|
402
386
|
if (this._isMultiMode()) {
|
|
403
387
|
const aControls: any[] = [];
|
|
@@ -414,7 +398,7 @@ class ListReportController extends PageController {
|
|
|
414
398
|
});
|
|
415
399
|
return aControls;
|
|
416
400
|
} else if (sKey === "Chart") {
|
|
417
|
-
const oChart = this.
|
|
401
|
+
const oChart = this.getChartControl();
|
|
418
402
|
return oChart ? [oChart] : [];
|
|
419
403
|
} else {
|
|
420
404
|
const oTable = this._getTable();
|
|
@@ -423,7 +407,7 @@ class ListReportController extends PageController {
|
|
|
423
407
|
}
|
|
424
408
|
|
|
425
409
|
_getDefaultPath() {
|
|
426
|
-
const defaultPath =
|
|
410
|
+
const defaultPath = ListReportTemplating.getDefaultPath(this._getPageModel()?.getProperty("/views") || []);
|
|
427
411
|
switch (defaultPath) {
|
|
428
412
|
case "primary":
|
|
429
413
|
return TemplateContentView.Chart;
|
|
@@ -443,7 +427,7 @@ class ListReportController extends PageController {
|
|
|
443
427
|
* @returns Is Multiple Table mode set?
|
|
444
428
|
*/
|
|
445
429
|
_isMultiMode(): boolean {
|
|
446
|
-
return !!this.
|
|
430
|
+
return !!this._getPageModel()?.getProperty("/multiViewsControl");
|
|
447
431
|
}
|
|
448
432
|
|
|
449
433
|
/**
|
|
@@ -453,13 +437,13 @@ class ListReportController extends PageController {
|
|
|
453
437
|
* @name _isInitLoadDisabled
|
|
454
438
|
* @returns Is InitLoad enabled?
|
|
455
439
|
*/
|
|
456
|
-
_isInitLoadEnabled() {
|
|
440
|
+
_isInitLoadEnabled(): boolean {
|
|
457
441
|
const initLoadMode = (this.getView().getViewData() as any).initialLoad;
|
|
458
442
|
return initLoadMode === InitialLoadMode.Enabled;
|
|
459
443
|
}
|
|
460
444
|
|
|
461
|
-
_hasMultiVisualizations() {
|
|
462
|
-
return this.
|
|
445
|
+
_hasMultiVisualizations(): boolean {
|
|
446
|
+
return this._getPageModel()?.getProperty("/hasMultiVisualizations");
|
|
463
447
|
}
|
|
464
448
|
|
|
465
449
|
/**
|
|
@@ -499,7 +483,8 @@ class ListReportController extends PageController {
|
|
|
499
483
|
}
|
|
500
484
|
// set hook for flex for when standard variant is set (at start or by user at runtime)
|
|
501
485
|
// required to override the user setting 'apply automatically' behaviour if there are no filters
|
|
502
|
-
const
|
|
486
|
+
const variantManagementId: any = ListReportTemplating.getVariantBackReference(this.getView().getViewData(), this._getPageModel());
|
|
487
|
+
const variantManagement = variantManagementId && this.getView().byId(variantManagementId);
|
|
503
488
|
if (variantManagement) {
|
|
504
489
|
variantManagement.registerApplyAutomaticallyOnStandardVariant(this._applyAutomaticallyOnStandardVariant.bind(this));
|
|
505
490
|
}
|
|
@@ -737,7 +722,7 @@ class ListReportController extends PageController {
|
|
|
737
722
|
const sSelectedKey = oEvent.mParameters.key ? oEvent.mParameters.key : null;
|
|
738
723
|
const oInternalModelContext = this.getView().getBindingContext("internal") as InternalModelContext;
|
|
739
724
|
oInternalModelContext.setProperty("alpContentView", sSelectedKey);
|
|
740
|
-
const oChart = this.
|
|
725
|
+
const oChart = this.getChartControl();
|
|
741
726
|
const oTable = this._getTable();
|
|
742
727
|
const oSegmentedButtonDelegate = {
|
|
743
728
|
onAfterRendering() {
|
|
@@ -773,13 +758,9 @@ class ListReportController extends PageController {
|
|
|
773
758
|
this.getExtensionAPI().updateAppState();
|
|
774
759
|
},
|
|
775
760
|
onFiltersSegmentedButtonPressed(this: ListReportController, oEvent: any) {
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
} else {
|
|
780
|
-
this._getFilterBarControl().setVisible(false);
|
|
781
|
-
(this.getView().byId(this.getView().getContent()[0].data("visualFilterBarId")) as Control).setVisible(true);
|
|
782
|
-
}
|
|
761
|
+
const isCompact = oEvent.getParameter("key") === "Compact";
|
|
762
|
+
this._getFilterBarControl().setVisible(isCompact);
|
|
763
|
+
(this._getVisualFilterBarControl() as Control).setVisible(!isCompact);
|
|
783
764
|
},
|
|
784
765
|
onStateChange(this: ListReportController) {
|
|
785
766
|
this.getExtensionAPI().updateAppState();
|
|
@@ -114,18 +114,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
|
|
|
114
114
|
MultipleModeControl.render = function render(oRm, oControl) {
|
|
115
115
|
oRm.renderControl(oControl.content);
|
|
116
116
|
}
|
|
117
|
-
/**
|
|
118
|
-
* Gets the entity set of the displayed visualization.
|
|
119
|
-
*
|
|
120
|
-
* @returns {string} The entity set
|
|
121
|
-
*/
|
|
122
|
-
;
|
|
123
|
-
|
|
124
|
-
_proto.getDisplayedEntitySet = function getDisplayedEntitySet() {
|
|
125
|
-
var _this$getSelectedInne3, _this$getSelectedInne4;
|
|
126
|
-
|
|
127
|
-
return (_this$getSelectedInne3 = this.getSelectedInnerControl()) === null || _this$getSelectedInne3 === void 0 ? void 0 : (_this$getSelectedInne4 = _this$getSelectedInne3.content) === null || _this$getSelectedInne4 === void 0 ? void 0 : _this$getSelectedInne4.data("targetCollectionPath").slice(1);
|
|
128
|
-
}
|
|
129
117
|
/**
|
|
130
118
|
* Gets the model containing information related to the IconTabFilters.
|
|
131
119
|
*
|
|
@@ -468,4 +456,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
|
|
|
468
456
|
})), _class2)) || _class);
|
|
469
457
|
return MultipleModeControl;
|
|
470
458
|
}, false);
|
|
471
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJCYXJBUEkiLCJfZ2V0RmlsdGVyQ29udHJvbCIsImdldFBhcmVudCIsIl9nZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJnZXREaXNwbGF5ZWRFbnRpdHlTZXQiLCJkYXRhIiwic2xpY2UiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJzZXRDb3VudHNPdXREYXRlZCIsImJWYWx1ZSIsInNldFByb3BlcnR5Iiwic2V0RnJlZXplQ29udGVudCIsIl91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMiLCJvUmVzb3VyY2VCdW5kbGUiLCJ0YWJzTW9kZWwiLCJvRmlsdGVyQ29udHJvbCIsInJlc3VsdHMiLCJvVGFiIiwic1RhYklkIiwibUlnbm9yZWRGaWVsZHMiLCJyZWZyZXNoTm90QXBwbGljYWJsZUZpZWxkcyIsIm5vdEFwcGxpY2FibGUiLCJmaWVsZHMiLCJ0aXRsZSIsIl9zZXRUYWJNZXNzYWdlU3RyaXAiLCJlbnRpdHlUeXBlUGF0aCIsImlnbm9yZWRGaWVsZHMiLCJyZXNvdXJjZUJ1bmRsZSIsImdldFRleHQiLCJzZXREYXRhIiwiYk9ubHlGb3JWaXNpYmxlVGFiIiwiaW5uZXJDb250cm9scyIsInJlZHVjZSIsImFJbm5lckNvbnRyb2xzIiwic0lubmVyQ29udHJvbCIsIkNvcmUiLCJieUlkIiwicHVzaCIsImZpbHRlciIsIm9Jbm5lckNvbnRyb2wiLCJnZXRWaXNpYmxlIiwiZmlsdGVyQ29udHJvbCIsInNTdXBwb3J0ZWRDbGFzcyIsIkljb25UYWJGaWx0ZXIiLCJnZXRNZXRhZGF0YSIsImdldE5hbWUiLCJpc0EiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJvRmlsdGVyQ29uZGl0aW9ucyIsInNSZWZyZXNoQ2F1c2UiLCJvblZpZXdOZWVkc1JlZnJlc2giLCJmaWx0ZXJDb25kaXRpb25zIiwiY3VycmVudFRhYklkIiwicmVmcmVzaENhdXNlIiwib0ljb25UYWJGaWx0ZXIiLCJnZXRDb3VudHMiLCJjb3VudHNPdXREYXRlZCIsInNldENvdW50IiwidGhlbiIsImlDb3VudCIsImNhdGNoIiwib0Vycm9yIiwiTG9nIiwiZXJyb3IiLCJiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQiLCJiSXNTZWxlY3RlZEtleSIsInNBY3Rpb24iLCJSZXN1bWUiLCJTdXNwZW5kIiwicHJvcGVydGllcyIsInNUZXh0IiwiYUlnbm9yZWRGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJhSWdub3JlZExhYmVscyIsIk1lc3NhZ2VTdHJpcCIsImdldExhYmVscyIsIkRlbGVnYXRlVXRpbCIsImdldExvY2FsaXplZFRleHQiLCJnZXRQYXJhbWV0ZXIiLCJDb250cm9sIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJNdWx0aXBsZU1vZGVDb250cm9sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlc291cmNlQnVuZGxlIGZyb20gXCJzYXAvYmFzZS9pMThuL1Jlc291cmNlQnVuZGxlXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbHMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBhZ2dyZWdhdGlvbiwgYXNzb2NpYXRpb24sIGRlZmluZVVJNUNsYXNzLCBldmVudCwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTWVzc2FnZVN0cmlwXCI7XG5pbXBvcnQgRGVsZWdhdGVVdGlsIGZyb20gXCJzYXAvZmUvbWFjcm9zL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IE1hY3JvQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL01hY3JvQVBJXCI7XG5pbXBvcnQgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IEljb25UYWJGaWx0ZXIgZnJvbSBcInNhcC9tL0ljb25UYWJGaWx0ZXJcIjtcbmltcG9ydCB0eXBlIENvcmVFdmVudCBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRcIjtcbmltcG9ydCBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ29yZSBmcm9tIFwic2FwL3VpL2NvcmUvQ29yZVwiO1xuaW1wb3J0IFJlbmRlck1hbmFnZXIgZnJvbSBcInNhcC91aS9jb3JlL1JlbmRlck1hbmFnZXJcIjtcbmltcG9ydCBDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkgZnJvbSBcInNhcC91aS9mbC93cml0ZS9hcGkvQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5cbmV4cG9ydCB0eXBlIElubmVyQ29udHJvbFR5cGUgPSBNYWNyb0FQSSAmXG5cdFBhcnRpYWw8e1xuXHRcdHJlc3VtZUJpbmRpbmc6IEZ1bmN0aW9uO1xuXHRcdHN1c3BlbmRCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRnZXRDb3VudHM6IEZ1bmN0aW9uO1xuXHRcdHJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzOiBGdW5jdGlvbjtcblx0XHRpbnZhbGlkYXRlQ29udGVudDogRnVuY3Rpb247XG5cdH0+O1xuXG50eXBlIE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMgPSB7XG5cdGVudGl0eVR5cGVQYXRoOiBzdHJpbmc7XG5cdGlnbm9yZWRGaWVsZHM6IGFueVtdO1xuXHRyZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGU7XG5cdHRpdGxlOiBzdHJpbmc7XG59O1xuXG5lbnVtIEJpbmRpbmdBY3Rpb24ge1xuXHRTdXNwZW5kID0gXCJzdXNwZW5kQmluZGluZ1wiLFxuXHRSZXN1bWUgPSBcInJlc3VtZUJpbmRpbmdcIlxufVxuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQuY29udHJvbHMuTXVsdGlwbGVNb2RlQ29udHJvbFwiKVxuY2xhc3MgTXVsdGlwbGVNb2RlQ29udHJvbCBleHRlbmRzIENvbnRyb2wge1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRzaG93Q291bnRzITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRmcmVlemVDb250ZW50ITogYm9vbGVhbjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRjb3VudHNPdXREYXRlZCE6IGJvb2xlYW47XG5cblx0QGFnZ3JlZ2F0aW9uKHsgdHlwZTogXCJzYXAubS5JY29uVGFiQmFyXCIsIG11bHRpcGxlOiBmYWxzZSwgaXNEZWZhdWx0OiB0cnVlIH0pXG5cdGNvbnRlbnQhOiBJY29uVGFiQmFyO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLnVpLmNvcmUuQ29udHJvbFwiLCBtdWx0aXBsZTogdHJ1ZSB9KVxuXHRpbm5lckNvbnRyb2xzITogc3RyaW5nW107XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAuZmUuY29yZS5jb250cm9scy5GaWx0ZXJCYXJcIiwgbXVsdGlwbGU6IGZhbHNlIH0pXG5cdGZpbHRlckNvbnRyb2whOiBzdHJpbmc7XG5cblx0QGV2ZW50KClcblx0c2VsZWN0ITogRnVuY3Rpb247XG5cblx0b25CZWZvcmVSZW5kZXJpbmcoKSB7XG5cdFx0dGhpcy5nZXRUYWJzTW9kZWwoKTsgLy8gR2VuZXJhdGUgdGhlIG1vZGVsIHdoaWNoIGlzIG1hbmRhdG9yeSBmb3Igc29tZSBiaW5kaW5nc1xuXG5cdFx0Y29uc3Qgb0ZpbHRlckJhckFQSSA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKT8uZ2V0UGFyZW50KCk7XG5cdFx0dGhpcy5fZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2hvd0NvdW50cykge1xuXHRcdFx0XHRvTWFjcm9BUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcIiwgdGhpcy5fcmVmcmVzaFRhYnNDb3VudC5iaW5kKHRoaXMpKTtcblx0XHRcdH1cblx0XHRcdG9NYWNyb0FQSS5zdXNwZW5kQmluZGluZz8uKCk7XG5cdFx0fSk7XG5cdFx0aWYgKG9GaWx0ZXJCYXJBUEkpIHtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbFNlYXJjaFwiLCB0aGlzLl9vblNlYXJjaC5iaW5kKHRoaXMpKTtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbEZpbHRlckNoYW5nZWRcIiwgdGhpcy5fb25GaWx0ZXJDaGFuZ2VkLmJpbmQodGhpcykpO1xuXHRcdH1cblx0fVxuXG5cdG9uQWZ0ZXJSZW5kZXJpbmcoKSB7XG5cdFx0dGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpPy5yZXN1bWVCaW5kaW5nPy4oIXRoaXMuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpKTtcblx0fVxuXG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogTXVsdGlwbGVNb2RlQ29udHJvbCkge1xuXHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGVudGl0eSBzZXQgb2YgdGhlIGRpc3BsYXllZCB2aXN1YWxpemF0aW9uLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZW50aXR5IHNldFxuXHQgKi9cblx0Z2V0RGlzcGxheWVkRW50aXR5U2V0KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKT8uY29udGVudD8uZGF0YShcInRhcmdldENvbGxlY3Rpb25QYXRoXCIpLnNsaWNlKDEpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG1vZGVsIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgSWNvblRhYkZpbHRlcnMuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzYXAudWkubW9kZWwuTW9kZWwgfCB1bmRlZmluZWR9IFRoZSBtb2RlbFxuXHQgKi9cblx0Z2V0VGFic01vZGVsKCk6IE1vZGVsIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzVGFic01vZGVsID0gXCJ0YWJzSW50ZXJuYWxcIjtcblx0XHRjb25zdCBvQ29udGVudCA9IHRoaXMuY29udGVudDtcblx0XHRpZiAoIW9Db250ZW50KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRsZXQgb01vZGVsID0gb0NvbnRlbnQuZ2V0TW9kZWwoc1RhYnNNb2RlbCk7XG5cdFx0aWYgKCFvTW9kZWwpIHtcblx0XHRcdG9Nb2RlbCA9IG5ldyBKU09OTW9kZWwoe30pO1xuXHRcdFx0b0NvbnRlbnQuc2V0TW9kZWwob01vZGVsLCBzVGFic01vZGVsKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9Nb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBpbm5lciBjb250cm9sIG9mIHRoZSBkaXNwbGF5ZWQgdGFiLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7SW5uZXJDb250cm9sVHlwZSB8IHVuZGVmaW5lZH0gVGhlIGNvbnRyb2xcblx0ICovXG5cdGdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk6IElubmVyQ29udHJvbFR5cGUgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9TZWxlY3RlZFRhYiA9IHRoaXMuY29udGVudC5nZXRJdGVtcygpLmZpbmQoKG9JdGVtKSA9PiAob0l0ZW0gYXMgSWNvblRhYkZpbHRlcikuZ2V0S2V5KCkgPT09IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpKTtcblx0XHRyZXR1cm4gb1NlbGVjdGVkVGFiXG5cdFx0XHQ/IHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5maW5kKChvTWFjcm9BUEkpID0+IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKSA9PT0gb1NlbGVjdGVkVGFiKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogTWFuYWdlcyB0aGUgYmluZGluZyBvZiBhbGwgaW5uZXIgY29udHJvbHMgd2hlbiB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBpcyBjaGFuZ2VkLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3NhcC51aS5iYXNlLkV2ZW50fSBvRXZlbnQgRXZlbnQgZmlyZWQgYnkgdGhlIEljb25UYWJCYXJcblx0ICovXG5cdHN0YXRpYyBoYW5kbGVUYWJDaGFuZ2Uob0V2ZW50OiBhbnkpOiB2b2lkIHtcblx0XHRjb25zdCBvSWNvblRhYkJhciA9IG9FdmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBvTXVsdGlDb250cm9sID0gb0ljb25UYWJCYXIuZ2V0UGFyZW50KCk7XG5cblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IG9FdmVudC5nZXRQYXJhbWV0ZXJzKCk7XG5cdFx0b011bHRpQ29udHJvbC5fc2V0SW5uZXJCaW5kaW5nKHRydWUpO1xuXHRcdGNvbnN0IHNQcmV2aW91c1NlbGVjdGVkS2V5ID0gbVBhcmFtZXRlcnM/LnByZXZpb3VzS2V5O1xuXHRcdGNvbnN0IHNTZWxlY3RlZEtleSA9IG1QYXJhbWV0ZXJzPy5zZWxlY3RlZEtleTtcblxuXHRcdGlmIChzU2VsZWN0ZWRLZXkgJiYgc1ByZXZpb3VzU2VsZWN0ZWRLZXkgIT09IHNTZWxlY3RlZEtleSkge1xuXHRcdFx0Y29uc3Qgb0ZpbHRlckJhciA9IG9NdWx0aUNvbnRyb2wuX2dldEZpbHRlckNvbnRyb2woKTtcblx0XHRcdGlmIChvRmlsdGVyQmFyICYmICFvTXVsdGlDb250cm9sLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSkge1xuXHRcdFx0XHRpZiAoIW9NdWx0aUNvbnRyb2wuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0XHRcdC8vY3VzdG9tIHRhYlxuXHRcdFx0XHRcdG9NdWx0aUNvbnRyb2wuX3JlZnJlc2hDdXN0b21WaWV3KG9GaWx0ZXJCYXIuZ2V0RmlsdGVyQ29uZGl0aW9ucygpLCBcInRhYkNoYW5nZWRcIik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdENvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSS5hZGQoe1xuXHRcdFx0XHRjaGFuZ2VzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y2hhbmdlU3BlY2lmaWNEYXRhOiB7XG5cdFx0XHRcdFx0XHRcdGNoYW5nZVR5cGU6IFwic2VsZWN0SWNvblRhYkJhckZpbHRlclwiLFxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiB7XG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRLZXk6IHNTZWxlY3RlZEtleSxcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c1NlbGVjdGVkS2V5OiBzUHJldmlvdXNTZWxlY3RlZEtleVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0c2VsZWN0b3JFbGVtZW50OiBvSWNvblRhYkJhclxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0b011bHRpQ29udHJvbC5fZ2V0Vmlld0NvbnRyb2xsZXIoKT8uZ2V0RXh0ZW5zaW9uQVBJKCk/LnVwZGF0ZUFwcFN0YXRlKCk7XG5cblx0XHRvTXVsdGlDb250cm9sLmZpcmVFdmVudChcInNlbGVjdFwiLCB7XG5cdFx0XHRpY29uVGFiQmFyOiBvSWNvblRhYkJhcixcblx0XHRcdHNlbGVjdGVkS2V5OiBzU2VsZWN0ZWRLZXksXG5cdFx0XHRwcmV2aW91c0tleTogc1ByZXZpb3VzU2VsZWN0ZWRLZXlcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbnZhbGlkYXRlcyB0aGUgY29udGVudCBvZiBhbGwgaW5uZXIgY29udHJvbHMuXG5cdCAqL1xuXHRpbnZhbGlkYXRlQ29udGVudCgpIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdG9NYWNyb0FQSS5pbnZhbGlkYXRlQ29udGVudD8uKCk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgY291bnRzIHRvIG91dCBvZiBkYXRlIG9yIHVwIHRvIGRhdGVcblx0ICogSWYgdGhlIGNvdW50cyBhcmUgc2V0IHRvIFwib3V0IG9mIGRhdGVcIiBhbmQgdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgZG9lc24ndCBjb250YWluIGFuIGlubmVyIGNvbnRyb2wgYWxsIGlubmVyIGNvbnRyb2xzIGFyZSByZXF1ZXN0ZWQgdG8gZ2V0IHRoZSBuZXcgY291bnRzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRDb3VudHNPdXREYXRlZChiVmFsdWUgPSB0cnVlKSB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcImNvdW50c091dERhdGVkXCIsIGJWYWx1ZSk7XG5cdFx0Ly8gaWYgdGhlIGN1cnJlbnQgdGFiIGlzIG5vdCBjb25maWd1cmVkIHdpdGggbm8gaW5uZXIgQ29udHJvbFxuXHRcdC8vIHRoZSB0YWIgY291bnRzIG11c3QgYmUgbWFudWFsbHkgcmVmcmVzaGVkIHNpbmNlIG5vIE1hY3JvIEFQSSB3aWxsIHNlbnQgZXZlbnQgaW50ZXJuYWxEYXRhUmVxdWVzdGVkXG5cdFx0aWYgKGJWYWx1ZSAmJiAhdGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHR0aGlzLl9yZWZyZXNoVGFic0NvdW50KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEZyZWV6ZXMgdGhlIGNvbnRlbnQgOlxuXHQgKiAgLSBjb250ZW50IGlzIGZyb3plbjogdGhlIGJpbmRpbmcgb2YgdGhlIGlubmVyIGNvbnRyb2xzIGFyZSBzdXNwZW5kZWQuXG5cdCAqICAtIGNvbnRlbnQgaXMgdW5mcm96ZW46IHRoZSBiaW5kaW5nIG9mIGlubmVyIGNvbnRyb2wgcmVsYXRlZCB0byB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBpcyByZXN1bWVkLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJWYWx1ZSBGcmVlemUgb3Igbm90IHRoZSBjb250cm9sXG5cdCAqL1xuXHRzZXRGcmVlemVDb250ZW50KGJWYWx1ZTogYm9vbGVhbikge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIsIGJWYWx1ZSk7XG5cdFx0dGhpcy5fc2V0SW5uZXJCaW5kaW5nKCk7XG5cdH1cblxuXHQvKipcblx0ICogVXBkYXRlcyB0aGUgaW50ZXJuYWwgbW9kZWwgd2l0aCB0aGUgcHJvcGVydGllcyB0aGF0IGFyZSBub3QgYXBwbGljYWJsZSBvbiBlYWNoIEljb25UYWJGaWx0ZXIgKGNvbnRhaW5pbmcgaW5uZXIgY29udHJvbCkgYWNjb3JkaW5nIHRvIHRoZSBlbnRpdHlUeXBlIG9mIHRoZSBmaWx0ZXIgY29udHJvbC5cblx0ICpcblx0ICogQHBhcmFtIG9SZXNvdXJjZUJ1bmRsZVxuXHQgKi9cblx0X3VwZGF0ZU11bHRpVGFiTm90QXBwbGljYWJsZUZpZWxkcyhvUmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlKSB7XG5cdFx0Y29uc3QgdGFic01vZGVsID0gdGhpcy5nZXRUYWJzTW9kZWwoKTtcblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKSBhcyBDb250cm9sO1xuXHRcdGlmICh0YWJzTW9kZWwgJiYgb0ZpbHRlckNvbnRyb2wpIHtcblx0XHRcdGNvbnN0IHJlc3VsdHM6IGFueSA9IHt9O1xuXHRcdFx0dGhpcy5fZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvVGFiID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRpZiAob1RhYikge1xuXHRcdFx0XHRcdGNvbnN0IHNUYWJJZCA9IG9UYWIuZ2V0S2V5KCk7XG5cdFx0XHRcdFx0Y29uc3QgbUlnbm9yZWRGaWVsZHMgPSBvTWFjcm9BUEkucmVmcmVzaE5vdEFwcGxpY2FibGVGaWVsZHM/LihvRmlsdGVyQ29udHJvbCkgfHwgW107XG5cdFx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdID0ge1xuXHRcdFx0XHRcdFx0bm90QXBwbGljYWJsZToge1xuXHRcdFx0XHRcdFx0XHRmaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHR0aXRsZTogdGhpcy5fc2V0VGFiTWVzc2FnZVN0cmlwKHtcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHlUeXBlUGF0aDogb0ZpbHRlckNvbnRyb2wuZGF0YShcImVudGl0eVR5cGVcIiksXG5cdFx0XHRcdFx0XHRcdFx0aWdub3JlZEZpZWxkczogbUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdFx0XHRcdFx0cmVzb3VyY2VCdW5kbGU6IG9SZXNvdXJjZUJ1bmRsZSxcblx0XHRcdFx0XHRcdFx0XHR0aXRsZTogb1RhYi5nZXRUZXh0KClcblx0XHRcdFx0XHRcdFx0fSlcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdCh0YWJzTW9kZWwgYXMgYW55KS5zZXREYXRhKHJlc3VsdHMpO1xuXHRcdH1cblx0fVxuXG5cdF9nZXRBbGxJbm5lckNvbnRyb2xzKGJPbmx5Rm9yVmlzaWJsZVRhYiA9IGZhbHNlKTogSW5uZXJDb250cm9sVHlwZVtdIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0dGhpcy5pbm5lckNvbnRyb2xzLnJlZHVjZSgoYUlubmVyQ29udHJvbHM6IElubmVyQ29udHJvbFR5cGVbXSwgc0lubmVyQ29udHJvbDogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9Db250cm9sID0gQ29yZS5ieUlkKHNJbm5lckNvbnRyb2wpIGFzIElubmVyQ29udHJvbFR5cGU7XG5cdFx0XHRcdGlmIChvQ29udHJvbCkge1xuXHRcdFx0XHRcdGFJbm5lckNvbnRyb2xzLnB1c2gob0NvbnRyb2wpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhSW5uZXJDb250cm9scy5maWx0ZXIoXG5cdFx0XHRcdFx0KG9Jbm5lckNvbnRyb2wpID0+ICFiT25seUZvclZpc2libGVUYWIgfHwgdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvSW5uZXJDb250cm9sKT8uZ2V0VmlzaWJsZSgpXG5cdFx0XHRcdCk7XG5cdFx0XHR9LCBbXSkgfHwgW11cblx0XHQpO1xuXHR9XG5cblx0X2dldEZpbHRlckNvbnRyb2woKTogRmlsdGVyQmFyIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gQ29yZS5ieUlkKHRoaXMuZmlsdGVyQ29udHJvbCkgYXMgRmlsdGVyQmFyIHwgdW5kZWZpbmVkO1xuXHR9XG5cblx0X2dldFRhYkZyb21Jbm5lckNvbnRyb2wob0NvbnRyb2w6IENvbnRyb2wpOiBJY29uVGFiRmlsdGVyIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzU3VwcG9ydGVkQ2xhc3MgPSBJY29uVGFiRmlsdGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpO1xuXHRcdGxldCBvVGFiOiBhbnkgPSBvQ29udHJvbDtcblx0XHRpZiAob1RhYiAmJiAhb1RhYi5pc0Eoc1N1cHBvcnRlZENsYXNzKSAmJiBvVGFiLmdldFBhcmVudCkge1xuXHRcdFx0b1RhYiA9IG9Db250cm9sLmdldFBhcmVudCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gb1RhYiAmJiBvVGFiLmlzQShzU3VwcG9ydGVkQ2xhc3MpID8gKG9UYWIgYXMgSWNvblRhYkZpbHRlcikgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHRfZ2V0Vmlld0NvbnRyb2xsZXIoKSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdHJldHVybiBvVmlldyAmJiBvVmlldy5nZXRDb250cm9sbGVyKCk7XG5cdH1cblxuXHRfcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckNvbmRpdGlvbnM6IGFueSwgc1JlZnJlc2hDYXVzZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fZ2V0Vmlld0NvbnRyb2xsZXIoKT8ub25WaWV3TmVlZHNSZWZyZXNoPy4oe1xuXHRcdFx0ZmlsdGVyQ29uZGl0aW9uczogb0ZpbHRlckNvbmRpdGlvbnMsXG5cdFx0XHRjdXJyZW50VGFiSWQ6IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpLFxuXHRcdFx0cmVmcmVzaENhdXNlOiBzUmVmcmVzaENhdXNlXG5cdFx0fSk7XG5cdH1cblxuXHRfcmVmcmVzaFRhYnNDb3VudCgpOiB2b2lkIHtcblx0XHRjb25zdCBzU2VsZWN0ZWRLZXkgPSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKTtcblx0XHR0aGlzLl9nZXRBbGxJbm5lckNvbnRyb2xzKHRydWUpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRpZiAob01hY3JvQVBJPy5nZXRDb3VudHMgJiYgKHRoaXMuY291bnRzT3V0RGF0ZWQgfHwgc1NlbGVjdGVkS2V5ID09PSBvSWNvblRhYkZpbHRlcj8uZ2V0S2V5KCkpKSB7XG5cdFx0XHRcdGlmIChvSWNvblRhYkZpbHRlciAmJiBvSWNvblRhYkZpbHRlci5zZXRDb3VudCkge1xuXHRcdFx0XHRcdG9JY29uVGFiRmlsdGVyLnNldENvdW50KFwiLi4uXCIpO1xuXHRcdFx0XHRcdG9NYWNyb0FQSVxuXHRcdFx0XHRcdFx0LmdldENvdW50cygpXG5cdFx0XHRcdFx0XHQudGhlbigoaUNvdW50OiBzdHJpbmcpID0+IG9JY29uVGFiRmlsdGVyLnNldENvdW50KGlDb3VudCB8fCBcIjBcIikpXG5cdFx0XHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIHJlcXVlc3RpbmcgQ291bnRzIGZvciBDb250cm9sXCIsIG9FcnJvcik7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQoZmFsc2UpO1xuXHR9XG5cblx0X3NldElubmVyQmluZGluZyhiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQgPSBmYWxzZSkge1xuXHRcdGlmICh0aGlzLmNvbnRlbnQpIHtcblx0XHRcdHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRcdGNvbnN0IGJJc1NlbGVjdGVkS2V5ID0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKTtcblx0XHRcdFx0Y29uc3Qgc0FjdGlvbiA9IGJJc1NlbGVjdGVkS2V5ICYmICF0aGlzLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSA/IEJpbmRpbmdBY3Rpb24uUmVzdW1lIDogQmluZGluZ0FjdGlvbi5TdXNwZW5kO1xuXHRcdFx0XHRvTWFjcm9BUElbc0FjdGlvbl0/LihzQWN0aW9uID09PSBCaW5kaW5nQWN0aW9uLlJlc3VtZSA/IGJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCAmJiBiSXNTZWxlY3RlZEtleSA6IHVuZGVmaW5lZCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRfc2V0VGFiTWVzc2FnZVN0cmlwKHByb3BlcnRpZXM6IE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMpIHtcblx0XHRsZXQgc1RleHQgPSBcIlwiO1xuXHRcdGNvbnN0IGFJZ25vcmVkRmllbGRzID0gcHJvcGVydGllcy5pZ25vcmVkRmllbGRzO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKG9GaWx0ZXJDb250cm9sICYmIEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHMpICYmIGFJZ25vcmVkRmllbGRzLmxlbmd0aCA+IDAgJiYgcHJvcGVydGllcy50aXRsZSkge1xuXHRcdFx0Y29uc3QgYUlnbm9yZWRMYWJlbHMgPSBNZXNzYWdlU3RyaXAuZ2V0TGFiZWxzKFxuXHRcdFx0XHRhSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0cHJvcGVydGllcy5lbnRpdHlUeXBlUGF0aCxcblx0XHRcdFx0b0ZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdHByb3BlcnRpZXMucmVzb3VyY2VCdW5kbGVcblx0XHRcdCk7XG5cdFx0XHRzVGV4dCA9IE1lc3NhZ2VTdHJpcC5nZXRUZXh0KGFJZ25vcmVkTGFiZWxzLCBvRmlsdGVyQ29udHJvbCwgcHJvcGVydGllcy50aXRsZSwgRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQpO1xuXHRcdFx0cmV0dXJuIHNUZXh0O1xuXHRcdH1cblx0fVxuXG5cdF9vblNlYXJjaChvRXZlbnQ6IENvcmVFdmVudCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQodHJ1ZSk7XG5cdFx0dGhpcy5zZXRGcmVlemVDb250ZW50KGZhbHNlKTtcblx0XHRpZiAodGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHR0aGlzLl91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHModGhpcy5fZ2V0Vmlld0NvbnRyb2xsZXIoKT8ub1Jlc291cmNlQnVuZGxlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gY3VzdG9tIHRhYlxuXHRcdFx0dGhpcy5fcmVmcmVzaEN1c3RvbVZpZXcob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbmRpdGlvbnNcIiksIFwic2VhcmNoXCIpO1xuXHRcdH1cblx0fVxuXG5cdF9vbkZpbHRlckNoYW5nZWQob0V2ZW50OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHRpZiAob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbmRpdGlvbnNCYXNlZFwiKSkge1xuXHRcdFx0dGhpcy5zZXRGcmVlemVDb250ZW50KHRydWUpO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBNdWx0aXBsZU1vZGVDb250cm9sO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFrQ0tBLGE7O2FBQUFBLGE7SUFBQUEsYTtJQUFBQSxhO0tBQUFBLGEsS0FBQUEsYTs7TUFNQ0MsbUIsV0FETEMsY0FBYyxDQUFDLDBEQUFELEMsVUFFYkMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFSLENBQUQsQyxVQUdSRCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVI7SUFBbUJDLFlBQVksRUFBRTtFQUFqQyxDQUFELEMsVUFHUkYsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFSO0lBQW1CQyxZQUFZLEVBQUU7RUFBakMsQ0FBRCxDLFVBR1JDLFdBQVcsQ0FBQztJQUFFRixJQUFJLEVBQUUsa0JBQVI7SUFBNEJHLFFBQVEsRUFBRSxLQUF0QztJQUE2Q0MsU0FBUyxFQUFFO0VBQXhELENBQUQsQyxVQUdYQyxXQUFXLENBQUM7SUFBRUwsSUFBSSxFQUFFLHFCQUFSO0lBQStCRyxRQUFRLEVBQUU7RUFBekMsQ0FBRCxDLFVBR1hFLFdBQVcsQ0FBQztJ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
|
|
459
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJCYXJBUEkiLCJfZ2V0RmlsdGVyQ29udHJvbCIsImdldFBhcmVudCIsIl9nZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJzZXRDb3VudHNPdXREYXRlZCIsImJWYWx1ZSIsInNldFByb3BlcnR5Iiwic2V0RnJlZXplQ29udGVudCIsIl91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMiLCJvUmVzb3VyY2VCdW5kbGUiLCJ0YWJzTW9kZWwiLCJvRmlsdGVyQ29udHJvbCIsInJlc3VsdHMiLCJvVGFiIiwic1RhYklkIiwibUlnbm9yZWRGaWVsZHMiLCJyZWZyZXNoTm90QXBwbGljYWJsZUZpZWxkcyIsIm5vdEFwcGxpY2FibGUiLCJmaWVsZHMiLCJ0aXRsZSIsIl9zZXRUYWJNZXNzYWdlU3RyaXAiLCJlbnRpdHlUeXBlUGF0aCIsImRhdGEiLCJpZ25vcmVkRmllbGRzIiwicmVzb3VyY2VCdW5kbGUiLCJnZXRUZXh0Iiwic2V0RGF0YSIsImJPbmx5Rm9yVmlzaWJsZVRhYiIsImlubmVyQ29udHJvbHMiLCJyZWR1Y2UiLCJhSW5uZXJDb250cm9scyIsInNJbm5lckNvbnRyb2wiLCJDb3JlIiwiYnlJZCIsInB1c2giLCJmaWx0ZXIiLCJvSW5uZXJDb250cm9sIiwiZ2V0VmlzaWJsZSIsImZpbHRlckNvbnRyb2wiLCJzU3VwcG9ydGVkQ2xhc3MiLCJJY29uVGFiRmlsdGVyIiwiZ2V0TWV0YWRhdGEiLCJnZXROYW1lIiwiaXNBIiwib1ZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckNvbmRpdGlvbnMiLCJzUmVmcmVzaENhdXNlIiwib25WaWV3TmVlZHNSZWZyZXNoIiwiZmlsdGVyQ29uZGl0aW9ucyIsImN1cnJlbnRUYWJJZCIsInJlZnJlc2hDYXVzZSIsIm9JY29uVGFiRmlsdGVyIiwiZ2V0Q291bnRzIiwiY291bnRzT3V0RGF0ZWQiLCJzZXRDb3VudCIsInRoZW4iLCJpQ291bnQiLCJjYXRjaCIsIm9FcnJvciIsIkxvZyIsImVycm9yIiwiYlJlcXVlc3RJZk5vdEluaXRpYWxpemVkIiwiYklzU2VsZWN0ZWRLZXkiLCJzQWN0aW9uIiwiUmVzdW1lIiwiU3VzcGVuZCIsInByb3BlcnRpZXMiLCJzVGV4dCIsImFJZ25vcmVkRmllbGRzIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiYUlnbm9yZWRMYWJlbHMiLCJNZXNzYWdlU3RyaXAiLCJnZXRMYWJlbHMiLCJEZWxlZ2F0ZVV0aWwiLCJnZXRMb2NhbGl6ZWRUZXh0IiwiZ2V0UGFyYW1ldGVyIiwiQ29udHJvbCJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiTXVsdGlwbGVNb2RlQ29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBSZXNvdXJjZUJ1bmRsZSBmcm9tIFwic2FwL2Jhc2UvaTE4bi9SZXNvdXJjZUJ1bmRsZVwiO1xuaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xzL0ZpbHRlckJhclwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTWVzc2FnZVN0cmlwIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IERlbGVnYXRlVXRpbCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9EZWxlZ2F0ZVV0aWxcIjtcbmltcG9ydCBNYWNyb0FQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9NYWNyb0FQSVwiO1xuaW1wb3J0IEljb25UYWJCYXIgZnJvbSBcInNhcC9tL0ljb25UYWJCYXJcIjtcbmltcG9ydCBJY29uVGFiRmlsdGVyIGZyb20gXCJzYXAvbS9JY29uVGFiRmlsdGVyXCI7XG5pbXBvcnQgdHlwZSBDb3JlRXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIGZyb20gXCJzYXAvdWkvZmwvd3JpdGUvYXBpL0NvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSVwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBJbm5lckNvbnRyb2xUeXBlID0gTWFjcm9BUEkgJlxuXHRQYXJ0aWFsPHtcblx0XHRyZXN1bWVCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRzdXNwZW5kQmluZGluZzogRnVuY3Rpb247XG5cdFx0Z2V0Q291bnRzOiBGdW5jdGlvbjtcblx0XHRyZWZyZXNoTm90QXBwbGljYWJsZUZpZWxkczogRnVuY3Rpb247XG5cdFx0aW52YWxpZGF0ZUNvbnRlbnQ6IEZ1bmN0aW9uO1xuXHR9PjtcblxudHlwZSBNZXNzYWdlU3RyaXBQcm9wZXJ0aWVzID0ge1xuXHRlbnRpdHlUeXBlUGF0aDogc3RyaW5nO1xuXHRpZ25vcmVkRmllbGRzOiBhbnlbXTtcblx0cmVzb3VyY2VCdW5kbGU6IFJlc291cmNlQnVuZGxlO1xuXHR0aXRsZTogc3RyaW5nO1xufTtcblxuZW51bSBCaW5kaW5nQWN0aW9uIHtcblx0U3VzcGVuZCA9IFwic3VzcGVuZEJpbmRpbmdcIixcblx0UmVzdW1lID0gXCJyZXN1bWVCaW5kaW5nXCJcbn1cblxuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LmNvbnRyb2xzLk11bHRpcGxlTW9kZUNvbnRyb2xcIilcbmNsYXNzIE11bHRpcGxlTW9kZUNvbnRyb2wgZXh0ZW5kcyBDb250cm9sIHtcblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0c2hvd0NvdW50cyE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZnJlZXplQ29udGVudCE6IGJvb2xlYW47XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0Y291bnRzT3V0RGF0ZWQhOiBib29sZWFuO1xuXG5cdEBhZ2dyZWdhdGlvbih7IHR5cGU6IFwic2FwLm0uSWNvblRhYkJhclwiLCBtdWx0aXBsZTogZmFsc2UsIGlzRGVmYXVsdDogdHJ1ZSB9KVxuXHRjb250ZW50ITogSWNvblRhYkJhcjtcblxuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC51aS5jb3JlLkNvbnRyb2xcIiwgbXVsdGlwbGU6IHRydWUgfSlcblx0aW5uZXJDb250cm9scyE6IHN0cmluZ1tdO1xuXG5cdEBhc3NvY2lhdGlvbih7IHR5cGU6IFwic2FwLmZlLmNvcmUuY29udHJvbHMuRmlsdGVyQmFyXCIsIG11bHRpcGxlOiBmYWxzZSB9KVxuXHRmaWx0ZXJDb250cm9sITogc3RyaW5nO1xuXG5cdEBldmVudCgpXG5cdHNlbGVjdCE6IEZ1bmN0aW9uO1xuXG5cdG9uQmVmb3JlUmVuZGVyaW5nKCkge1xuXHRcdHRoaXMuZ2V0VGFic01vZGVsKCk7IC8vIEdlbmVyYXRlIHRoZSBtb2RlbCB3aGljaCBpcyBtYW5kYXRvcnkgZm9yIHNvbWUgYmluZGluZ3NcblxuXHRcdGNvbnN0IG9GaWx0ZXJCYXJBUEkgPSB0aGlzLl9nZXRGaWx0ZXJDb250cm9sKCk/LmdldFBhcmVudCgpO1xuXHRcdHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdGlmICh0aGlzLnNob3dDb3VudHMpIHtcblx0XHRcdFx0b01hY3JvQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxEYXRhUmVxdWVzdGVkXCIsIHRoaXMuX3JlZnJlc2hUYWJzQ291bnQuYmluZCh0aGlzKSk7XG5cdFx0XHR9XG5cdFx0XHRvTWFjcm9BUEkuc3VzcGVuZEJpbmRpbmc/LigpO1xuXHRcdH0pO1xuXHRcdGlmIChvRmlsdGVyQmFyQVBJKSB7XG5cdFx0XHRvRmlsdGVyQmFyQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxTZWFyY2hcIiwgdGhpcy5fb25TZWFyY2guYmluZCh0aGlzKSk7XG5cdFx0XHRvRmlsdGVyQmFyQVBJLmF0dGFjaEV2ZW50KFwiaW50ZXJuYWxGaWx0ZXJDaGFuZ2VkXCIsIHRoaXMuX29uRmlsdGVyQ2hhbmdlZC5iaW5kKHRoaXMpKTtcblx0XHR9XG5cdH1cblxuXHRvbkFmdGVyUmVuZGVyaW5nKCkge1xuXHRcdHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKT8ucmVzdW1lQmluZGluZz8uKCF0aGlzLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSk7XG5cdH1cblxuXHRzdGF0aWMgcmVuZGVyKG9SbTogUmVuZGVyTWFuYWdlciwgb0NvbnRyb2w6IE11bHRpcGxlTW9kZUNvbnRyb2wpIHtcblx0XHRvUm0ucmVuZGVyQ29udHJvbChvQ29udHJvbC5jb250ZW50KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBtb2RlbCBjb250YWluaW5nIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGhlIEljb25UYWJGaWx0ZXJzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7c2FwLnVpLm1vZGVsLk1vZGVsIHwgdW5kZWZpbmVkfSBUaGUgbW9kZWxcblx0ICovXG5cdGdldFRhYnNNb2RlbCgpOiBNb2RlbCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgc1RhYnNNb2RlbCA9IFwidGFic0ludGVybmFsXCI7XG5cdFx0Y29uc3Qgb0NvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0aWYgKCFvQ29udGVudCkge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0bGV0IG9Nb2RlbCA9IG9Db250ZW50LmdldE1vZGVsKHNUYWJzTW9kZWwpO1xuXHRcdGlmICghb01vZGVsKSB7XG5cdFx0XHRvTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHt9KTtcblx0XHRcdG9Db250ZW50LnNldE1vZGVsKG9Nb2RlbCwgc1RhYnNNb2RlbCk7XG5cdFx0fVxuXHRcdHJldHVybiBvTW9kZWw7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgaW5uZXIgY29udHJvbCBvZiB0aGUgZGlzcGxheWVkIHRhYi5cblx0ICpcblx0ICogQHJldHVybnMge0lubmVyQ29udHJvbFR5cGUgfCB1bmRlZmluZWR9IFRoZSBjb250cm9sXG5cdCAqL1xuXHRnZXRTZWxlY3RlZElubmVyQ29udHJvbCgpOiBJbm5lckNvbnRyb2xUeXBlIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBvU2VsZWN0ZWRUYWIgPSB0aGlzLmNvbnRlbnQuZ2V0SXRlbXMoKS5maW5kKChvSXRlbSkgPT4gKG9JdGVtIGFzIEljb25UYWJGaWx0ZXIpLmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKSk7XG5cdFx0cmV0dXJuIG9TZWxlY3RlZFRhYlxuXHRcdFx0PyB0aGlzLl9nZXRBbGxJbm5lckNvbnRyb2xzKCkuZmluZCgob01hY3JvQVBJKSA9PiB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSkgPT09IG9TZWxlY3RlZFRhYilcblx0XHRcdDogdW5kZWZpbmVkO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1hbmFnZXMgdGhlIGJpbmRpbmcgb2YgYWxsIGlubmVyIGNvbnRyb2xzIHdoZW4gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgY2hhbmdlZC5cblx0ICpcblx0ICogQHBhcmFtIHtzYXAudWkuYmFzZS5FdmVudH0gb0V2ZW50IEV2ZW50IGZpcmVkIGJ5IHRoZSBJY29uVGFiQmFyXG5cdCAqL1xuXHRzdGF0aWMgaGFuZGxlVGFiQ2hhbmdlKG9FdmVudDogYW55KTogdm9pZCB7XG5cdFx0Y29uc3Qgb0ljb25UYWJCYXIgPSBvRXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3Qgb011bHRpQ29udHJvbCA9IG9JY29uVGFiQmFyLmdldFBhcmVudCgpO1xuXG5cdFx0Y29uc3QgbVBhcmFtZXRlcnMgPSBvRXZlbnQuZ2V0UGFyYW1ldGVycygpO1xuXHRcdG9NdWx0aUNvbnRyb2wuX3NldElubmVyQmluZGluZyh0cnVlKTtcblx0XHRjb25zdCBzUHJldmlvdXNTZWxlY3RlZEtleSA9IG1QYXJhbWV0ZXJzPy5wcmV2aW91c0tleTtcblx0XHRjb25zdCBzU2VsZWN0ZWRLZXkgPSBtUGFyYW1ldGVycz8uc2VsZWN0ZWRLZXk7XG5cblx0XHRpZiAoc1NlbGVjdGVkS2V5ICYmIHNQcmV2aW91c1NlbGVjdGVkS2V5ICE9PSBzU2VsZWN0ZWRLZXkpIHtcblx0XHRcdGNvbnN0IG9GaWx0ZXJCYXIgPSBvTXVsdGlDb250cm9sLl9nZXRGaWx0ZXJDb250cm9sKCk7XG5cdFx0XHRpZiAob0ZpbHRlckJhciAmJiAhb011bHRpQ29udHJvbC5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikpIHtcblx0XHRcdFx0aWYgKCFvTXVsdGlDb250cm9sLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdFx0XHQvL2N1c3RvbSB0YWJcblx0XHRcdFx0XHRvTXVsdGlDb250cm9sLl9yZWZyZXNoQ3VzdG9tVmlldyhvRmlsdGVyQmFyLmdldEZpbHRlckNvbmRpdGlvbnMoKSwgXCJ0YWJDaGFuZ2VkXCIpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRDb250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUEkuYWRkKHtcblx0XHRcdFx0Y2hhbmdlczogW1xuXHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdGNoYW5nZVNwZWNpZmljRGF0YToge1xuXHRcdFx0XHRcdFx0XHRjaGFuZ2VUeXBlOiBcInNlbGVjdEljb25UYWJCYXJGaWx0ZXJcIixcblx0XHRcdFx0XHRcdFx0Y29udGVudDoge1xuXHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkS2V5OiBzU2VsZWN0ZWRLZXksXG5cdFx0XHRcdFx0XHRcdFx0cHJldmlvdXNTZWxlY3RlZEtleTogc1ByZXZpb3VzU2VsZWN0ZWRLZXlcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdHNlbGVjdG9yRWxlbWVudDogb0ljb25UYWJCYXJcblx0XHRcdFx0XHR9XG5cdFx0XHRcdF1cblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdG9NdWx0aUNvbnRyb2wuX2dldFZpZXdDb250cm9sbGVyKCk/LmdldEV4dGVuc2lvbkFQSSgpPy51cGRhdGVBcHBTdGF0ZSgpO1xuXG5cdFx0b011bHRpQ29udHJvbC5maXJlRXZlbnQoXCJzZWxlY3RcIiwge1xuXHRcdFx0aWNvblRhYkJhcjogb0ljb25UYWJCYXIsXG5cdFx0XHRzZWxlY3RlZEtleTogc1NlbGVjdGVkS2V5LFxuXHRcdFx0cHJldmlvdXNLZXk6IHNQcmV2aW91c1NlbGVjdGVkS2V5XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogSW52YWxpZGF0ZXMgdGhlIGNvbnRlbnQgb2YgYWxsIGlubmVyIGNvbnRyb2xzLlxuXHQgKi9cblx0aW52YWxpZGF0ZUNvbnRlbnQoKSB7XG5cdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHR0aGlzLl9nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRvTWFjcm9BUEkuaW52YWxpZGF0ZUNvbnRlbnQ/LigpO1xuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGNvdW50cyB0byBvdXQgb2YgZGF0ZSBvciB1cCB0byBkYXRlXG5cdCAqIElmIHRoZSBjb3VudHMgYXJlIHNldCB0byBcIm91dCBvZiBkYXRlXCIgYW5kIHRoZSBzZWxlY3RlZCBJY29uVGFiRmlsdGVyIGRvZXNuJ3QgY29udGFpbiBhbiBpbm5lciBjb250cm9sIGFsbCBpbm5lciBjb250cm9scyBhcmUgcmVxdWVzdGVkIHRvIGdldCB0aGUgbmV3IGNvdW50cy5cblx0ICpcblx0ICogQHBhcmFtIHtib29sZWFufSBiVmFsdWUgRnJlZXplIG9yIG5vdCB0aGUgY29udHJvbFxuXHQgKi9cblx0c2V0Q291bnRzT3V0RGF0ZWQoYlZhbHVlID0gdHJ1ZSkge1xuXHRcdHRoaXMuc2V0UHJvcGVydHkoXCJjb3VudHNPdXREYXRlZFwiLCBiVmFsdWUpO1xuXHRcdC8vIGlmIHRoZSBjdXJyZW50IHRhYiBpcyBub3QgY29uZmlndXJlZCB3aXRoIG5vIGlubmVyIENvbnRyb2xcblx0XHQvLyB0aGUgdGFiIGNvdW50cyBtdXN0IGJlIG1hbnVhbGx5IHJlZnJlc2hlZCBzaW5jZSBubyBNYWNybyBBUEkgd2lsbCBzZW50IGV2ZW50IGludGVybmFsRGF0YVJlcXVlc3RlZFxuXHRcdGlmIChiVmFsdWUgJiYgIXRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5fcmVmcmVzaFRhYnNDb3VudCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBGcmVlemVzIHRoZSBjb250ZW50IDpcblx0ICogIC0gY29udGVudCBpcyBmcm96ZW46IHRoZSBiaW5kaW5nIG9mIHRoZSBpbm5lciBjb250cm9scyBhcmUgc3VzcGVuZGVkLlxuXHQgKiAgLSBjb250ZW50IGlzIHVuZnJvemVuOiB0aGUgYmluZGluZyBvZiBpbm5lciBjb250cm9sIHJlbGF0ZWQgdG8gdGhlIHNlbGVjdGVkIEljb25UYWJGaWx0ZXIgaXMgcmVzdW1lZC5cblx0ICpcblx0ICogQHBhcmFtIHtib29sZWFufSBiVmFsdWUgRnJlZXplIG9yIG5vdCB0aGUgY29udHJvbFxuXHQgKi9cblx0c2V0RnJlZXplQ29udGVudChiVmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiLCBiVmFsdWUpO1xuXHRcdHRoaXMuX3NldElubmVyQmluZGluZygpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFVwZGF0ZXMgdGhlIGludGVybmFsIG1vZGVsIHdpdGggdGhlIHByb3BlcnRpZXMgdGhhdCBhcmUgbm90IGFwcGxpY2FibGUgb24gZWFjaCBJY29uVGFiRmlsdGVyIChjb250YWluaW5nIGlubmVyIGNvbnRyb2wpIGFjY29yZGluZyB0byB0aGUgZW50aXR5VHlwZSBvZiB0aGUgZmlsdGVyIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBwYXJhbSBvUmVzb3VyY2VCdW5kbGVcblx0ICovXG5cdF91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMob1Jlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZSkge1xuXHRcdGNvbnN0IHRhYnNNb2RlbCA9IHRoaXMuZ2V0VGFic01vZGVsKCk7XG5cdFx0Y29uc3Qgb0ZpbHRlckNvbnRyb2wgPSB0aGlzLl9nZXRGaWx0ZXJDb250cm9sKCkgYXMgQ29udHJvbDtcblx0XHRpZiAodGFic01vZGVsICYmIG9GaWx0ZXJDb250cm9sKSB7XG5cdFx0XHRjb25zdCByZXN1bHRzOiBhbnkgPSB7fTtcblx0XHRcdHRoaXMuX2dldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb1RhYiA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKTtcblx0XHRcdFx0aWYgKG9UYWIpIHtcblx0XHRcdFx0XHRjb25zdCBzVGFiSWQgPSBvVGFiLmdldEtleSgpO1xuXHRcdFx0XHRcdGNvbnN0IG1JZ25vcmVkRmllbGRzID0gb01hY3JvQVBJLnJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzPy4ob0ZpbHRlckNvbnRyb2wpIHx8IFtdO1xuXHRcdFx0XHRcdHJlc3VsdHNbc1RhYklkXSA9IHtcblx0XHRcdFx0XHRcdG5vdEFwcGxpY2FibGU6IHtcblx0XHRcdFx0XHRcdFx0ZmllbGRzOiBtSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuX3NldFRhYk1lc3NhZ2VTdHJpcCh7XG5cdFx0XHRcdFx0XHRcdFx0ZW50aXR5VHlwZVBhdGg6IG9GaWx0ZXJDb250cm9sLmRhdGEoXCJlbnRpdHlUeXBlXCIpLFxuXHRcdFx0XHRcdFx0XHRcdGlnbm9yZWRGaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHRcdHJlc291cmNlQnVuZGxlOiBvUmVzb3VyY2VCdW5kbGUsXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IG9UYWIuZ2V0VGV4dCgpXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHQodGFic01vZGVsIGFzIGFueSkuc2V0RGF0YShyZXN1bHRzKTtcblx0XHR9XG5cdH1cblxuXHRfZ2V0QWxsSW5uZXJDb250cm9scyhiT25seUZvclZpc2libGVUYWIgPSBmYWxzZSk6IElubmVyQ29udHJvbFR5cGVbXSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdHRoaXMuaW5uZXJDb250cm9scy5yZWR1Y2UoKGFJbm5lckNvbnRyb2xzOiBJbm5lckNvbnRyb2xUeXBlW10sIHNJbm5lckNvbnRyb2w6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRjb25zdCBvQ29udHJvbCA9IENvcmUuYnlJZChzSW5uZXJDb250cm9sKSBhcyBJbm5lckNvbnRyb2xUeXBlO1xuXHRcdFx0XHRpZiAob0NvbnRyb2wpIHtcblx0XHRcdFx0XHRhSW5uZXJDb250cm9scy5wdXNoKG9Db250cm9sKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gYUlubmVyQ29udHJvbHMuZmlsdGVyKFxuXHRcdFx0XHRcdChvSW5uZXJDb250cm9sKSA9PiAhYk9ubHlGb3JWaXNpYmxlVGFiIHx8IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob0lubmVyQ29udHJvbCk/LmdldFZpc2libGUoKVxuXHRcdFx0XHQpO1xuXHRcdFx0fSwgW10pIHx8IFtdXG5cdFx0KTtcblx0fVxuXG5cdF9nZXRGaWx0ZXJDb250cm9sKCk6IEZpbHRlckJhciB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIENvcmUuYnlJZCh0aGlzLmZpbHRlckNvbnRyb2wpIGFzIEZpbHRlckJhciB8IHVuZGVmaW5lZDtcblx0fVxuXG5cdF9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9Db250cm9sOiBDb250cm9sKTogSWNvblRhYkZpbHRlciB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgc1N1cHBvcnRlZENsYXNzID0gSWNvblRhYkZpbHRlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKTtcblx0XHRsZXQgb1RhYjogYW55ID0gb0NvbnRyb2w7XG5cdFx0aWYgKG9UYWIgJiYgIW9UYWIuaXNBKHNTdXBwb3J0ZWRDbGFzcykgJiYgb1RhYi5nZXRQYXJlbnQpIHtcblx0XHRcdG9UYWIgPSBvQ29udHJvbC5nZXRQYXJlbnQoKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9UYWIgJiYgb1RhYi5pc0Eoc1N1cHBvcnRlZENsYXNzKSA/IChvVGFiIGFzIEljb25UYWJGaWx0ZXIpIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0X2dldFZpZXdDb250cm9sbGVyKCkge1xuXHRcdGNvbnN0IG9WaWV3ID0gQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0Vmlldyh0aGlzKTtcblx0XHRyZXR1cm4gb1ZpZXcgJiYgb1ZpZXcuZ2V0Q29udHJvbGxlcigpO1xuXHR9XG5cblx0X3JlZnJlc2hDdXN0b21WaWV3KG9GaWx0ZXJDb25kaXRpb25zOiBhbnksIHNSZWZyZXNoQ2F1c2U6IHN0cmluZykge1xuXHRcdHRoaXMuX2dldFZpZXdDb250cm9sbGVyKCk/Lm9uVmlld05lZWRzUmVmcmVzaD8uKHtcblx0XHRcdGZpbHRlckNvbmRpdGlvbnM6IG9GaWx0ZXJDb25kaXRpb25zLFxuXHRcdFx0Y3VycmVudFRhYklkOiB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKSxcblx0XHRcdHJlZnJlc2hDYXVzZTogc1JlZnJlc2hDYXVzZVxuXHRcdH0pO1xuXHR9XG5cblx0X3JlZnJlc2hUYWJzQ291bnQoKTogdm9pZCB7XG5cdFx0Y29uc3Qgc1NlbGVjdGVkS2V5ID0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0dGhpcy5fZ2V0QWxsSW5uZXJDb250cm9scyh0cnVlKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0aWYgKG9NYWNyb0FQST8uZ2V0Q291bnRzICYmICh0aGlzLmNvdW50c091dERhdGVkIHx8IHNTZWxlY3RlZEtleSA9PT0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpKSkge1xuXHRcdFx0XHRpZiAob0ljb25UYWJGaWx0ZXIgJiYgb0ljb25UYWJGaWx0ZXIuc2V0Q291bnQpIHtcblx0XHRcdFx0XHRvSWNvblRhYkZpbHRlci5zZXRDb3VudChcIi4uLlwiKTtcblx0XHRcdFx0XHRvTWFjcm9BUElcblx0XHRcdFx0XHRcdC5nZXRDb3VudHMoKVxuXHRcdFx0XHRcdFx0LnRoZW4oKGlDb3VudDogc3RyaW5nKSA9PiBvSWNvblRhYkZpbHRlci5zZXRDb3VudChpQ291bnQgfHwgXCIwXCIpKVxuXHRcdFx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSByZXF1ZXN0aW5nIENvdW50cyBmb3IgQ29udHJvbFwiLCBvRXJyb3IpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKGZhbHNlKTtcblx0fVxuXG5cdF9zZXRJbm5lckJpbmRpbmcoYlJlcXVlc3RJZk5vdEluaXRpYWxpemVkID0gZmFsc2UpIHtcblx0XHRpZiAodGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLl9nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRjb25zdCBiSXNTZWxlY3RlZEtleSA9IG9JY29uVGFiRmlsdGVyPy5nZXRLZXkoKSA9PT0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0XHRcdGNvbnN0IHNBY3Rpb24gPSBiSXNTZWxlY3RlZEtleSAmJiAhdGhpcy5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikgPyBCaW5kaW5nQWN0aW9uLlJlc3VtZSA6IEJpbmRpbmdBY3Rpb24uU3VzcGVuZDtcblx0XHRcdFx0b01hY3JvQVBJW3NBY3Rpb25dPy4oc0FjdGlvbiA9PT0gQmluZGluZ0FjdGlvbi5SZXN1bWUgPyBiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQgJiYgYklzU2VsZWN0ZWRLZXkgOiB1bmRlZmluZWQpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0X3NldFRhYk1lc3NhZ2VTdHJpcChwcm9wZXJ0aWVzOiBNZXNzYWdlU3RyaXBQcm9wZXJ0aWVzKSB7XG5cdFx0bGV0IHNUZXh0ID0gXCJcIjtcblx0XHRjb25zdCBhSWdub3JlZEZpZWxkcyA9IHByb3BlcnRpZXMuaWdub3JlZEZpZWxkcztcblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKSBhcyBDb250cm9sO1xuXHRcdGlmIChvRmlsdGVyQ29udHJvbCAmJiBBcnJheS5pc0FycmF5KGFJZ25vcmVkRmllbGRzKSAmJiBhSWdub3JlZEZpZWxkcy5sZW5ndGggPiAwICYmIHByb3BlcnRpZXMudGl0bGUpIHtcblx0XHRcdGNvbnN0IGFJZ25vcmVkTGFiZWxzID0gTWVzc2FnZVN0cmlwLmdldExhYmVscyhcblx0XHRcdFx0YUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdHByb3BlcnRpZXMuZW50aXR5VHlwZVBhdGgsXG5cdFx0XHRcdG9GaWx0ZXJDb250cm9sLFxuXHRcdFx0XHRwcm9wZXJ0aWVzLnJlc291cmNlQnVuZGxlXG5cdFx0XHQpO1xuXHRcdFx0c1RleHQgPSBNZXNzYWdlU3RyaXAuZ2V0VGV4dChhSWdub3JlZExhYmVscywgb0ZpbHRlckNvbnRyb2wsIHByb3BlcnRpZXMudGl0bGUsIERlbGVnYXRlVXRpbC5nZXRMb2NhbGl6ZWRUZXh0KTtcblx0XHRcdHJldHVybiBzVGV4dDtcblx0XHR9XG5cdH1cblxuXHRfb25TZWFyY2gob0V2ZW50OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuc2V0RnJlZXplQ29udGVudChmYWxzZSk7XG5cdFx0aWYgKHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5fdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzKHRoaXMuX2dldFZpZXdDb250cm9sbGVyKCk/Lm9SZXNvdXJjZUJ1bmRsZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGN1c3RvbSB0YWJcblx0XHRcdHRoaXMuX3JlZnJlc2hDdXN0b21WaWV3KG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zXCIpLCBcInNlYXJjaFwiKTtcblx0XHR9XG5cdH1cblxuXHRfb25GaWx0ZXJDaGFuZ2VkKG9FdmVudDogQ29yZUV2ZW50KTogdm9pZCB7XG5cdFx0aWYgKG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zQmFzZWRcIikpIHtcblx0XHRcdHRoaXMuc2V0RnJlZXplQ29udGVudCh0cnVlKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTXVsdGlwbGVNb2RlQ29udHJvbDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01Ba0NLQSxhOzthQUFBQSxhO0lBQUFBLGE7SUFBQUEsYTtLQUFBQSxhLEtBQUFBLGE7O01BTUNDLG1CLFdBRExDLGNBQWMsQ0FBQywwREFBRCxDLFVBRWJDLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBUixDQUFELEMsVUFHUkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFSO0lBQW1CQyxZQUFZLEVBQUU7RUFBakMsQ0FBRCxDLFVBR1JGLFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUUsU0FBUjtJQUFtQkMsWUFBWSxFQUFFO0VBQWpDLENBQUQsQyxVQUdSQyxXQUFXLENBQUM7SUFBRUYsSUFBSSxFQUFFLGtCQUFSO0lBQTRCRyxRQUFRLEVBQUUsS0FBdEM7SUFBNkNDLFNBQVMsRUFBRTtFQUF4RCxDQUFELEMsVUFHWEMsV0FBVyxDQUFDO0lBQUVMLElBQUksRUFBRSxxQkFBUjtJQUErQkcsUUFBUSxFQUFFO0VBQXpDLENBQUQsQyxVQUdYRSxXQUFXLENBQUM7SUFBRUwsSUFBSSxFQUFFLGdDQUFSO0lBQTBDRyxRQUFRLEVBQUU7RUFBcEQsQ0FBRCxDLFVBR1hHLEtBQUssRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQUdOQyxpQixHQUFBLDZCQUFvQjtNQUFBO01BQUE7O01BQ25CLEtBQUtDLFlBQUwsR0FEbUIsQ0FDRTs7TUFFckIsSUFBTUMsYUFBYSw0QkFBRyxLQUFLQyxpQkFBTCxFQUFILDBEQUFHLHNCQUEwQkMsU0FBMUIsRUFBdEI7O01BQ0EsS0FBS0Msb0JBQUwsR0FBNEJDLE9BQTVCLENBQW9DLFVBQUNDLFNBQUQsRUFBZTtRQUFBOztRQUNsRCxJQUFJLE1BQUksQ0FB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
|
|
@@ -84,15 +84,6 @@ class MultipleModeControl extends Control {
|
|
|
84
84
|
oRm.renderControl(oControl.content);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
/**
|
|
88
|
-
* Gets the entity set of the displayed visualization.
|
|
89
|
-
*
|
|
90
|
-
* @returns {string} The entity set
|
|
91
|
-
*/
|
|
92
|
-
getDisplayedEntitySet(): string | undefined {
|
|
93
|
-
return this.getSelectedInnerControl()?.content?.data("targetCollectionPath").slice(1);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
87
|
/**
|
|
97
88
|
* Gets the model containing information related to the IconTabFilters.
|
|
98
89
|
*
|
|
@@ -6,17 +6,9 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function getCountUrl(oController) {
|
|
9
|
-
var _oController$
|
|
9
|
+
var _oController$_getTabl;
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
var sTableId = (_oController$getView$ = oController.getView().byId("fe::TabMultipleMode")) === null || _oController$getView$ === void 0 ? void 0 : _oController$getView$.getSelectedKey();
|
|
13
|
-
|
|
14
|
-
if (!sTableId) {
|
|
15
|
-
// if not multiple tabs, get single table ID
|
|
16
|
-
sTableId = oController.getView().getContent()[0].data().singleTableId;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
var oTable = oController.getView().byId(sTableId);
|
|
11
|
+
var oTable = (_oController$_getTabl = oController._getTable) === null || _oController$_getTabl === void 0 ? void 0 : _oController$_getTabl.call(oController);
|
|
20
12
|
|
|
21
13
|
if (!oTable) {
|
|
22
14
|
return "";
|
|
@@ -69,7 +61,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
69
61
|
}
|
|
70
62
|
|
|
71
63
|
function getSaveAsTileServiceUrl(oController) {
|
|
72
|
-
var oFilterBar = oController.
|
|
64
|
+
var oFilterBar = oController._getFilterBarControl();
|
|
73
65
|
|
|
74
66
|
if (oFilterBar) {
|
|
75
67
|
var oConditions = oFilterBar.getFilterConditions();
|
|
@@ -136,4 +128,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/S
|
|
|
136
128
|
};
|
|
137
129
|
return ShareOverride;
|
|
138
130
|
}, false);
|
|
139
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDb3VudFVybCIsIm9Db250cm9sbGVyIiwic1RhYmxlSWQiLCJnZXRWaWV3IiwiYnlJZCIsImdldFNlbGVjdGVkS2V5IiwiZ2V0Q29udGVudCIsImRhdGEiLCJzaW5nbGVUYWJsZUlkIiwib1RhYmxlIiwib0JpbmRpbmciLCJnZXRSb3dCaW5kaW5nIiwiZ2V0QmluZGluZyIsInNEb3dubG9hZFVybCIsImdldERvd25sb2FkVXJsIiwiYVNwbGl0VXJsIiwic3BsaXQiLCJiYXNlVXJsIiwiYVN1cHBvcnRlZFBhcmFtcyIsImxlbmd0aCIsInVybFBhcmFtcyIsImZvckVhY2giLCJ1cmxQYXJhbSIsImFVcmxQYXJhbVBhcnRzIiwicHVzaCIsImpvaW4iLCJnZXRTaGFyZVVybCIsInNIYXNoIiwiSGFzaENoYW5nZXIiLCJnZXRJbnN0YW5jZSIsImdldEhhc2giLCJzQmFzZVBhdGgiLCJocmVmRm9yQXBwU3BlY2lmaWNIYXNoIiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwiZ2V0U2hhcmVFbWFpbFVybCIsIm9VU2hlbGxDb250YWluZXIiLCJzYXAiLCJ1c2hlbGwiLCJDb250YWluZXIiLCJnZXRGTFBVcmxBc3luYyIsInRoZW4iLCJzRkxQVXJsIiwiY2F0Y2giLCJzRXJyb3IiLCJMb2ciLCJlcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwiZG9jdW1lbnQiLCJVUkwiLCJnZXRTYXZlQXNUaWxlU2VydmljZVVybCIsIm9GaWx0ZXJCYXIiLCJvQ29uZGl0aW9ucyIsImdldEZpbHRlckNvbmRpdGlvbnMiLCJiU2F2ZUFzVGlsZVNlcnZpY2VVcmxBbGxvd2VkIiwiU2VtYW50aWNEYXRlT3BlcmF0b3JzIiwiaGFzU2VtYW50aWNEYXRlT3BlcmF0aW9ucyIsImdldEphbVVybCIsInNKYW1VcmwiLCJydW5uaW5nSW5JZnJhbWUiLCJnZXRGTFBVcmwiLCJzVXJsIiwic3Vic3RyIiwiaW5kZXhPZiIsIm9yaWdpbiIsInBhdGhuYW1lIiwiU2hhcmVPdmVycmlkZSIsImFkYXB0U2hhcmVNZXRhZGF0YSIsIm9TaGFyZU1ldGFkYXRhIiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50IiwiYmFzZSIsIm9NZXRhZGF0YSIsImdldE1ldGFkYXRhIiwib1VJTWFuaWZlc3QiLCJnZXRNYW5pZmVzdEVudHJ5Iiwic0ljb24iLCJpY29ucyIsImljb24iLCJvQXBwTWFuaWZlc3QiLCJzVGl0bGUiLCJ0aXRsZSIsInRpbGUiLCJxdWVyeVVybCIsImphbSIsInVybCIsImVtYWlsIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTaGFyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB0eXBlIEJhc2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgU2hhcmUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NoYXJlXCI7XG5pbXBvcnQgU2VtYW50aWNEYXRlT3BlcmF0b3JzIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1NlbWFudGljRGF0ZU9wZXJhdG9yc1wiO1xuaW1wb3J0IHR5cGUgSWNvblRhYkJhciBmcm9tIFwic2FwL20vSWNvblRhYkJhclwiO1xuaW1wb3J0IEhhc2hDaGFuZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9yb3V0aW5nL0hhc2hDaGFuZ2VyXCI7XG5pbXBvcnQgdHlwZSBUYWJsZSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuZnVuY3Rpb24gZ2V0Q291bnRVcmwob0NvbnRyb2xsZXI6IEJhc2VDb250cm9sbGVyKSB7XG5cdC8vIGdldCBzZWxlY3RlZCB0YWJsZSBJRCBmcm9tIG11bHRpcGxlIHRhYnNcblx0bGV0IHNUYWJsZUlkID0gKG9Db250cm9sbGVyLmdldFZpZXcoKS5ieUlkKFwiZmU6OlRhYk11bHRpcGxlTW9kZVwiKSBhcyBJY29uVGFiQmFyKT8uZ2V0U2VsZWN0ZWRLZXkoKTtcblx0aWYgKCFzVGFibGVJZCkge1xuXHRcdC8vIGlmIG5vdCBtdWx0aXBsZSB0YWJzLCBnZXQgc2luZ2xlIHRhYmxlIElEXG5cdFx0c1RhYmxlSWQgPSBvQ29udHJvbGxlci5nZXRWaWV3KCkuZ2V0Q29udGVudCgpWzBdLmRhdGEoKS5zaW5nbGVUYWJsZUlkO1xuXHR9XG5cdGNvbnN0IG9UYWJsZSA9IG9Db250cm9sbGVyLmdldFZpZXcoKS5ieUlkKHNUYWJsZUlkKSBhcyBUYWJsZTtcblx0aWYgKCFvVGFibGUpIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRjb25zdCBvQmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCkgfHwgb1RhYmxlLmdldEJpbmRpbmcoXCJpdGVtc1wiKTtcblx0Y29uc3Qgc0Rvd25sb2FkVXJsID0gKG9CaW5kaW5nICYmIChvQmluZGluZyBhcyBhbnkpLmdldERvd25sb2FkVXJsKCkpIHx8IFwiXCI7XG5cdGNvbnN0IGFTcGxpdFVybCA9IHNEb3dubG9hZFVybC5zcGxpdChcIj9cIik7XG5cdGNvbnN0IGJhc2VVcmwgPSBgJHthU3BsaXRVcmxbMF19LyRjb3VudD9gO1xuXHQvLyBnZXREb3dubG9hZFVybCgpIHJldHVybnMgdXJsIHdpdGggJHNlbGVjdCwgJGV4cGFuZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gLyRjb3VudCBpcyB1c2VkIHRvIGdldCB0aGUgcmVjb3JkIGNvdW50LiBvbmx5ICRhcHBseSwgJHNlYXJjaCwgJGZpbHRlciBpcyBzdXBwb3J0ZWRcblx0Ly8gPyRjb3VudD10cnVlIHJldHVybnMgY291bnQgaW4gYSBmb3JtYXQgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSBGTFAgeWV0LlxuXHQvLyBjdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1hdCBmb3IgdjQgaXMgLi4vY291bnQuLiBvbmx5ICh3aGVyZSB0aWxlIHByZXZpZXcgd2lsbCBzdGlsbCBub3Qgd29yaylcblx0Y29uc3QgYVN1cHBvcnRlZFBhcmFtczogYW55W10gPSBbXTtcblx0aWYgKGFTcGxpdFVybC5sZW5ndGggPiAxKSB7XG5cdFx0Y29uc3QgdXJsUGFyYW1zID0gYVNwbGl0VXJsWzFdO1xuXHRcdHVybFBhcmFtcy5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbiAodXJsUGFyYW06IGFueSkge1xuXHRcdFx0Y29uc3QgYVVybFBhcmFtUGFydHMgPSB1cmxQYXJhbS5zcGxpdChcIj1cIik7XG5cdFx0XHRzd2l0Y2ggKGFVcmxQYXJhbVBhcnRzWzBdKSB7XG5cdFx0XHRcdGNhc2UgXCIkYXBwbHlcIjpcblx0XHRcdFx0Y2FzZSBcIiRzZWFyY2hcIjpcblx0XHRcdFx0Y2FzZSBcIiRmaWx0ZXJcIjpcblx0XHRcdFx0XHRhU3VwcG9ydGVkUGFyYW1zLnB1c2godXJsUGFyYW0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBiYXNlVXJsICsgYVN1cHBvcnRlZFBhcmFtcy5qb2luKFwiJlwiKTtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlVXJsKCkge1xuXHRjb25zdCBzSGFzaCA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpO1xuXHRjb25zdCBzQmFzZVBhdGggPSAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2hcblx0XHQ/IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKVxuXHRcdDogXCJcIjtcblx0cmV0dXJuIHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlRW1haWxVcmwoKSB7XG5cdGNvbnN0IG9VU2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyO1xuXHRpZiAob1VTaGVsbENvbnRhaW5lcikge1xuXHRcdHJldHVybiBvVVNoZWxsQ29udGFpbmVyXG5cdFx0XHQuZ2V0RkxQVXJsQXN5bmModHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNGTFBVcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuVVJMKTtcblx0fVxufVxuZnVuY3Rpb24gZ2V0U2F2ZUFzVGlsZVNlcnZpY2VVcmwob0NvbnRyb2xsZXI6IGFueSkge1xuXHRjb25zdCBvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpLmJ5SWQob0NvbnRyb2xsZXIuZ2V0VmlldygpLmdldENvbnRlbnQoKVswXS5kYXRhKFwiZmlsdGVyQmFySWRcIikpO1xuXHRpZiAob0ZpbHRlckJhcikge1xuXHRcdGNvbnN0IG9Db25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRGaWx0ZXJDb25kaXRpb25zKCk7XG5cdFx0Y29uc3QgYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCA9IFNlbWFudGljRGF0ZU9wZXJhdG9ycy5oYXNTZW1hbnRpY0RhdGVPcGVyYXRpb25zKG9Db25kaXRpb25zKTtcblx0XHRpZiAoYlNhdmVBc1RpbGVTZXJ2aWNlVXJsQWxsb3dlZCkge1xuXHRcdFx0cmV0dXJuIGdldENvdW50VXJsKG9Db250cm9sbGVyKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIFwiXCI7XG59XG5mdW5jdGlvbiBnZXRKYW1VcmwoKSB7XG5cdGNvbnN0IHNIYXNoID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKS5nZXRIYXNoKCk7XG5cdGNvbnN0IHNCYXNlUGF0aCA9IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaFxuXHRcdD8gKEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkgYXMgYW55KS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoKFwiXCIpXG5cdFx0OiBcIlwiO1xuXHRjb25zdCBzSmFtVXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXHQvLyBpbiBjYXNlIHdlIGFyZSBpbiBjRkxQIHNjZW5hcmlvLCB0aGUgYXBwbGljYXRpb24gaXMgcnVubmluZ1xuXHQvLyBpbnNpZGUgYW4gaWZyYW1lLCBhbmQgdGhlcmUgZm9yIHdlIG5lZWQgdG8gZ2V0IHRoZSBjRkxQIFVSTFxuXHQvLyBhbmQgbm90ICdkb2N1bWVudC5VUkwnIHRoYXQgcmVwcmVzZW50cyB0aGUgaWZyYW1lIFVSTFxuXHRpZiAoc2FwLnVzaGVsbCAmJiBzYXAudXNoZWxsLkNvbnRhaW5lciAmJiBzYXAudXNoZWxsLkNvbnRhaW5lci5ydW5uaW5nSW5JZnJhbWUgJiYgc2FwLnVzaGVsbC5Db250YWluZXIucnVubmluZ0luSWZyYW1lKCkpIHtcblx0XHRzYXAudXNoZWxsLkNvbnRhaW5lci5nZXRGTFBVcmwodHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNVcmwuc3Vic3RyKDAsIHNVcmwuaW5kZXhPZihcIiNcIikpICsgc0phbVVybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKHNFcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkNvdWxkIG5vdCByZXRyaWV2ZSBjRkxQIFVSTCBmb3IgdGhlIHNoYXJpbmcgZGlhbG9nIChkaWFsb2cgd2lsbCBub3QgYmUgb3BlbmVkKVwiLCBzRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBzSmFtVXJsO1xuXHR9XG59XG5cbmNvbnN0IFNoYXJlT3ZlcnJpZGUgPSB7XG5cdGFkYXB0U2hhcmVNZXRhZGF0YTogZnVuY3Rpb24gKHRoaXM6IFNoYXJlLCBvU2hhcmVNZXRhZGF0YTogYW55KSB7XG5cdFx0UHJvbWlzZS5yZXNvbHZlKGdldEphbVVybCgpKVxuXHRcdFx0LnRoZW4oKHNKYW1Vcmw6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4ge1xuXHRcdFx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuYmFzZS5nZXRWaWV3KCkpO1xuXHRcdFx0XHRjb25zdCBvTWV0YWRhdGEgPSBvQXBwQ29tcG9uZW50LmdldE1ldGFkYXRhKCk7XG5cdFx0XHRcdGNvbnN0IG9VSU1hbmlmZXN0ID0gb01ldGFkYXRhLmdldE1hbmlmZXN0RW50cnkoXCJzYXAudWlcIik7XG5cdFx0XHRcdGNvbnN0IHNJY29uID0gKG9VSU1hbmlmZXN0ICYmIG9VSU1hbmlmZXN0Lmljb25zICYmIG9VSU1hbmlmZXN0Lmljb25zLmljb24pIHx8IFwiXCI7XG5cdFx0XHRcdGNvbnN0IG9BcHBNYW5pZmVzdCA9IG9NZXRhZGF0YS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLmFwcFwiKTtcblx0XHRcdFx0Y29uc3Qgc1RpdGxlID0gKG9BcHBNYW5pZmVzdCAmJiBvQXBwTWFuaWZlc3QudGl0bGUpIHx8IFwiXCI7XG5cdFx0XHRcdC8vIFRPRE86IGNoZWNrIGlmIHRoZXJlIGlzIGFueSBzZW1hbnRpYyBkYXRlIHVzZWQgYmVmb3JlIGFkZGluZyBzZXJ2aWNlVVJMIGFzIEJMSTpGSU9SSVRFQ0hQMS0xODAyM1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS50aWxlID0ge1xuXHRcdFx0XHRcdGljb246IHNJY29uLFxuXHRcdFx0XHRcdHRpdGxlOiBzVGl0bGUsXG5cdFx0XHRcdFx0cXVlcnlVcmw6IGdldFNhdmVBc1RpbGVTZXJ2aWNlVXJsKHRoaXMuYmFzZSlcblx0XHRcdFx0fTtcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEudGl0bGUgPSBkb2N1bWVudC50aXRsZTtcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEuamFtLnVybCA9IHNKYW1Vcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihlcnJvcik7XG5cdFx0XHR9KTtcblxuXHRcdFByb21pc2UucmVzb2x2ZShnZXRTaGFyZVVybCgpKVxuXHRcdFx0LnRoZW4oZnVuY3Rpb24gKHNVcmw6IGFueSkge1xuXHRcdFx0XHRvU2hhcmVNZXRhZGF0YS51cmwgPSBzVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoZXJyb3IpO1xuXHRcdFx0fSk7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShnZXRTaGFyZUVtYWlsVXJsKCkpLnRoZW4oZnVuY3Rpb24gKHNGTFBVcmw6IGFueSkge1xuXHRcdFx0b1NoYXJlTWV0YWRhdGEuZW1haWwudXJsID0gc0ZMUFVybDtcblx0XHRcdHJldHVybiBvU2hhcmVNZXRhZGF0YTtcblx0XHR9KTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2hhcmVPdmVycmlkZTtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7OztFQVFBLFNBQVNBLFdBQVQsQ0FBcUJDLFdBQXJCLEVBQWtEO0lBQUE7O0lBQ2pEO0lBQ0EsSUFBSUMsUUFBUSw0QkFBSUQsV0FBVyxDQUFDRSxPQUFaLEdBQXNCQyxJQUF0QixDQUEyQixxQkFBM0IsQ0FBSiwwREFBRyxzQkFBbUVDLGNBQW5FLEVBQWY7O0lBQ0EsSUFBSSxDQUFDSCxRQUFMLEVBQWU7TUFDZDtNQUNBQSxRQUFRLEdBQUdELFdBQVcsQ0FBQ0UsT0FBWixHQUFzQkcsVUFBdEIsR0FBbUMsQ0FBbkMsRUFBc0NDLElBQXRD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
|
|
131
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRDb3VudFVybCIsIm9Db250cm9sbGVyIiwib1RhYmxlIiwiX2dldFRhYmxlIiwib0JpbmRpbmciLCJnZXRSb3dCaW5kaW5nIiwiZ2V0QmluZGluZyIsInNEb3dubG9hZFVybCIsImdldERvd25sb2FkVXJsIiwiYVNwbGl0VXJsIiwic3BsaXQiLCJiYXNlVXJsIiwiYVN1cHBvcnRlZFBhcmFtcyIsImxlbmd0aCIsInVybFBhcmFtcyIsImZvckVhY2giLCJ1cmxQYXJhbSIsImFVcmxQYXJhbVBhcnRzIiwicHVzaCIsImpvaW4iLCJnZXRTaGFyZVVybCIsInNIYXNoIiwiSGFzaENoYW5nZXIiLCJnZXRJbnN0YW5jZSIsImdldEhhc2giLCJzQmFzZVBhdGgiLCJocmVmRm9yQXBwU3BlY2lmaWNIYXNoIiwid2luZG93IiwibG9jYXRpb24iLCJoYXNoIiwiZ2V0U2hhcmVFbWFpbFVybCIsIm9VU2hlbGxDb250YWluZXIiLCJzYXAiLCJ1c2hlbGwiLCJDb250YWluZXIiLCJnZXRGTFBVcmxBc3luYyIsInRoZW4iLCJzRkxQVXJsIiwiY2F0Y2giLCJzRXJyb3IiLCJMb2ciLCJlcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwiZG9jdW1lbnQiLCJVUkwiLCJnZXRTYXZlQXNUaWxlU2VydmljZVVybCIsIm9GaWx0ZXJCYXIiLCJfZ2V0RmlsdGVyQmFyQ29udHJvbCIsIm9Db25kaXRpb25zIiwiZ2V0RmlsdGVyQ29uZGl0aW9ucyIsImJTYXZlQXNUaWxlU2VydmljZVVybEFsbG93ZWQiLCJTZW1hbnRpY0RhdGVPcGVyYXRvcnMiLCJoYXNTZW1hbnRpY0RhdGVPcGVyYXRpb25zIiwiZ2V0SmFtVXJsIiwic0phbVVybCIsInJ1bm5pbmdJbklmcmFtZSIsImdldEZMUFVybCIsInNVcmwiLCJzdWJzdHIiLCJpbmRleE9mIiwib3JpZ2luIiwicGF0aG5hbWUiLCJTaGFyZU92ZXJyaWRlIiwiYWRhcHRTaGFyZU1ldGFkYXRhIiwib1NoYXJlTWV0YWRhdGEiLCJvQXBwQ29tcG9uZW50IiwiQ29tbW9uVXRpbHMiLCJnZXRBcHBDb21wb25lbnQiLCJiYXNlIiwiZ2V0VmlldyIsIm9NZXRhZGF0YSIsImdldE1ldGFkYXRhIiwib1VJTWFuaWZlc3QiLCJnZXRNYW5pZmVzdEVudHJ5Iiwic0ljb24iLCJpY29ucyIsImljb24iLCJvQXBwTWFuaWZlc3QiLCJzVGl0bGUiLCJ0aXRsZSIsInRpbGUiLCJxdWVyeVVybCIsImphbSIsInVybCIsImVtYWlsIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTaGFyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIFNoYXJlIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9TaGFyZVwiO1xuaW1wb3J0IFNlbWFudGljRGF0ZU9wZXJhdG9ycyBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TZW1hbnRpY0RhdGVPcGVyYXRvcnNcIjtcbmltcG9ydCBIYXNoQ2hhbmdlciBmcm9tIFwic2FwL3VpL2NvcmUvcm91dGluZy9IYXNoQ2hhbmdlclwiO1xuaW1wb3J0IExpc3RSZXBvcnRDb250cm9sbGVyIGZyb20gXCIuLi9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5mdW5jdGlvbiBnZXRDb3VudFVybChvQ29udHJvbGxlcjogTGlzdFJlcG9ydENvbnRyb2xsZXIpIHtcblx0Y29uc3Qgb1RhYmxlID0gb0NvbnRyb2xsZXIuX2dldFRhYmxlPy4oKTtcblx0aWYgKCFvVGFibGUpIHtcblx0XHRyZXR1cm4gXCJcIjtcblx0fVxuXHRjb25zdCBvQmluZGluZyA9IG9UYWJsZS5nZXRSb3dCaW5kaW5nKCkgfHwgb1RhYmxlLmdldEJpbmRpbmcoXCJpdGVtc1wiKTtcblx0Y29uc3Qgc0Rvd25sb2FkVXJsID0gKG9CaW5kaW5nICYmIChvQmluZGluZyBhcyBhbnkpLmdldERvd25sb2FkVXJsKCkpIHx8IFwiXCI7XG5cdGNvbnN0IGFTcGxpdFVybCA9IHNEb3dubG9hZFVybC5zcGxpdChcIj9cIik7XG5cdGNvbnN0IGJhc2VVcmwgPSBgJHthU3BsaXRVcmxbMF19LyRjb3VudD9gO1xuXHQvLyBnZXREb3dubG9hZFVybCgpIHJldHVybnMgdXJsIHdpdGggJHNlbGVjdCwgJGV4cGFuZCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIHdoZW4gLyRjb3VudCBpcyB1c2VkIHRvIGdldCB0aGUgcmVjb3JkIGNvdW50LiBvbmx5ICRhcHBseSwgJHNlYXJjaCwgJGZpbHRlciBpcyBzdXBwb3J0ZWRcblx0Ly8gPyRjb3VudD10cnVlIHJldHVybnMgY291bnQgaW4gYSBmb3JtYXQgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSBGTFAgeWV0LlxuXHQvLyBjdXJyZW50bHkgc3VwcG9ydGVkIGZvcm1hdCBmb3IgdjQgaXMgLi4vY291bnQuLiBvbmx5ICh3aGVyZSB0aWxlIHByZXZpZXcgd2lsbCBzdGlsbCBub3Qgd29yaylcblx0Y29uc3QgYVN1cHBvcnRlZFBhcmFtczogYW55W10gPSBbXTtcblx0aWYgKGFTcGxpdFVybC5sZW5ndGggPiAxKSB7XG5cdFx0Y29uc3QgdXJsUGFyYW1zID0gYVNwbGl0VXJsWzFdO1xuXHRcdHVybFBhcmFtcy5zcGxpdChcIiZcIikuZm9yRWFjaChmdW5jdGlvbiAodXJsUGFyYW06IGFueSkge1xuXHRcdFx0Y29uc3QgYVVybFBhcmFtUGFydHMgPSB1cmxQYXJhbS5zcGxpdChcIj1cIik7XG5cdFx0XHRzd2l0Y2ggKGFVcmxQYXJhbVBhcnRzWzBdKSB7XG5cdFx0XHRcdGNhc2UgXCIkYXBwbHlcIjpcblx0XHRcdFx0Y2FzZSBcIiRzZWFyY2hcIjpcblx0XHRcdFx0Y2FzZSBcIiRmaWx0ZXJcIjpcblx0XHRcdFx0XHRhU3VwcG9ydGVkUGFyYW1zLnB1c2godXJsUGFyYW0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBiYXNlVXJsICsgYVN1cHBvcnRlZFBhcmFtcy5qb2luKFwiJlwiKTtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlVXJsKCkge1xuXHRjb25zdCBzSGFzaCA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpO1xuXHRjb25zdCBzQmFzZVBhdGggPSAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2hcblx0XHQ/IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKVxuXHRcdDogXCJcIjtcblx0cmV0dXJuIHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcbn1cbmZ1bmN0aW9uIGdldFNoYXJlRW1haWxVcmwoKSB7XG5cdGNvbnN0IG9VU2hlbGxDb250YWluZXIgPSBzYXAudXNoZWxsICYmIHNhcC51c2hlbGwuQ29udGFpbmVyO1xuXHRpZiAob1VTaGVsbENvbnRhaW5lcikge1xuXHRcdHJldHVybiBvVVNoZWxsQ29udGFpbmVyXG5cdFx0XHQuZ2V0RkxQVXJsQXN5bmModHJ1ZSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdFx0cmV0dXJuIHNGTFBVcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZG9jdW1lbnQuVVJMKTtcblx0fVxufVxuZnVuY3Rpb24gZ2V0U2F2ZUFzVGlsZVNlcnZpY2VVcmwob0NvbnRyb2xsZXI6IGFueSkge1xuXHRjb25zdCBvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblx0aWYgKG9GaWx0ZXJCYXIpIHtcblx0XHRjb25zdCBvQ29uZGl0aW9ucyA9IG9GaWx0ZXJCYXIuZ2V0RmlsdGVyQ29uZGl0aW9ucygpO1xuXHRcdGNvbnN0IGJTYXZlQXNUaWxlU2VydmljZVVybEFsbG93ZWQgPSBTZW1hbnRpY0RhdGVPcGVyYXRvcnMuaGFzU2VtYW50aWNEYXRlT3BlcmF0aW9ucyhvQ29uZGl0aW9ucyk7XG5cdFx0aWYgKGJTYXZlQXNUaWxlU2VydmljZVVybEFsbG93ZWQpIHtcblx0XHRcdHJldHVybiBnZXRDb3VudFVybChvQ29udHJvbGxlcik7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBcIlwiO1xufVxuZnVuY3Rpb24gZ2V0SmFtVXJsKCkge1xuXHRjb25zdCBzSGFzaCA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCkuZ2V0SGFzaCgpO1xuXHRjb25zdCBzQmFzZVBhdGggPSAoSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSBhcyBhbnkpLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2hcblx0XHQ/IChIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpIGFzIGFueSkuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKVxuXHRcdDogXCJcIjtcblx0Y29uc3Qgc0phbVVybCA9IHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0Ly8gaW4gY2FzZSB3ZSBhcmUgaW4gY0ZMUCBzY2VuYXJpbywgdGhlIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmdcblx0Ly8gaW5zaWRlIGFuIGlmcmFtZSwgYW5kIHRoZXJlIGZvciB3ZSBuZWVkIHRvIGdldCB0aGUgY0ZMUCBVUkxcblx0Ly8gYW5kIG5vdCAnZG9jdW1lbnQuVVJMJyB0aGF0IHJlcHJlc2VudHMgdGhlIGlmcmFtZSBVUkxcblx0aWYgKHNhcC51c2hlbGwgJiYgc2FwLnVzaGVsbC5Db250YWluZXIgJiYgc2FwLnVzaGVsbC5Db250YWluZXIucnVubmluZ0luSWZyYW1lICYmIHNhcC51c2hlbGwuQ29udGFpbmVyLnJ1bm5pbmdJbklmcmFtZSgpKSB7XG5cdFx0c2FwLnVzaGVsbC5Db250YWluZXIuZ2V0RkxQVXJsKHRydWUpXG5cdFx0XHQudGhlbihmdW5jdGlvbiAoc1VybDogYW55KSB7XG5cdFx0XHRcdHJldHVybiBzVXJsLnN1YnN0cigwLCBzVXJsLmluZGV4T2YoXCIjXCIpKSArIHNKYW1Vcmw7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChzRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDb3VsZCBub3QgcmV0cmlldmUgY0ZMUCBVUkwgZm9yIHRoZSBzaGFyaW5nIGRpYWxvZyAoZGlhbG9nIHdpbGwgbm90IGJlIG9wZW5lZClcIiwgc0Vycm9yKTtcblx0XHRcdH0pO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgc0phbVVybDtcblx0fVxufVxuXG5jb25zdCBTaGFyZU92ZXJyaWRlID0ge1xuXHRhZGFwdFNoYXJlTWV0YWRhdGE6IGZ1bmN0aW9uICh0aGlzOiBTaGFyZSwgb1NoYXJlTWV0YWRhdGE6IGFueSkge1xuXHRcdFByb21pc2UucmVzb2x2ZShnZXRKYW1VcmwoKSlcblx0XHRcdC50aGVuKChzSmFtVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLmJhc2UuZ2V0VmlldygpKTtcblx0XHRcdFx0Y29uc3Qgb01ldGFkYXRhID0gb0FwcENvbXBvbmVudC5nZXRNZXRhZGF0YSgpO1xuXHRcdFx0XHRjb25zdCBvVUlNYW5pZmVzdCA9IG9NZXRhZGF0YS5nZXRNYW5pZmVzdEVudHJ5KFwic2FwLnVpXCIpO1xuXHRcdFx0XHRjb25zdCBzSWNvbiA9IChvVUlNYW5pZmVzdCAmJiBvVUlNYW5pZmVzdC5pY29ucyAmJiBvVUlNYW5pZmVzdC5pY29ucy5pY29uKSB8fCBcIlwiO1xuXHRcdFx0XHRjb25zdCBvQXBwTWFuaWZlc3QgPSBvTWV0YWRhdGEuZ2V0TWFuaWZlc3RFbnRyeShcInNhcC5hcHBcIik7XG5cdFx0XHRcdGNvbnN0IHNUaXRsZSA9IChvQXBwTWFuaWZlc3QgJiYgb0FwcE1hbmlmZXN0LnRpdGxlKSB8fCBcIlwiO1xuXHRcdFx0XHQvLyBUT0RPOiBjaGVjayBpZiB0aGVyZSBpcyBhbnkgc2VtYW50aWMgZGF0ZSB1c2VkIGJlZm9yZSBhZGRpbmcgc2VydmljZVVSTCBhcyBCTEk6RklPUklURUNIUDEtMTgwMjNcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEudGlsZSA9IHtcblx0XHRcdFx0XHRpY29uOiBzSWNvbixcblx0XHRcdFx0XHR0aXRsZTogc1RpdGxlLFxuXHRcdFx0XHRcdHF1ZXJ5VXJsOiBnZXRTYXZlQXNUaWxlU2VydmljZVVybCh0aGlzLmJhc2UpXG5cdFx0XHRcdH07XG5cdFx0XHRcdG9TaGFyZU1ldGFkYXRhLnRpdGxlID0gZG9jdW1lbnQudGl0bGU7XG5cdFx0XHRcdG9TaGFyZU1ldGFkYXRhLmphbS51cmwgPSBzSmFtVXJsO1xuXHRcdFx0fSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoZXJyb3IpO1xuXHRcdFx0fSk7XG5cblx0XHRQcm9taXNlLnJlc29sdmUoZ2V0U2hhcmVVcmwoKSlcblx0XHRcdC50aGVuKGZ1bmN0aW9uIChzVXJsOiBhbnkpIHtcblx0XHRcdFx0b1NoYXJlTWV0YWRhdGEudXJsID0gc1VybDtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcblx0XHRcdFx0TG9nLmVycm9yKGVycm9yKTtcblx0XHRcdH0pO1xuXHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoZ2V0U2hhcmVFbWFpbFVybCgpKS50aGVuKGZ1bmN0aW9uIChzRkxQVXJsOiBhbnkpIHtcblx0XHRcdG9TaGFyZU1ldGFkYXRhLmVtYWlsLnVybCA9IHNGTFBVcmw7XG5cdFx0XHRyZXR1cm4gb1NoYXJlTWV0YWRhdGE7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNoYXJlT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7RUFNQSxTQUFTQSxXQUFULENBQXFCQyxXQUFyQixFQUF3RDtJQUFBOztJQUN2RCxJQUFNQyxNQUFNLDRCQUFHRCxXQUFXLENBQUNFLFNBQWYsMERBQUcsMkJBQUFGLFdBQVcsQ0FBMUI7O0lBQ0EsSUFBSSxDQUFDQyxNQUFMLEVBQWE7TUFDWixPQUFPLEVBQVA7SUFDQTs7SUFDRCxJQUFNRSxRQUFRLEdBQUdGLE1BQU0sQ0FBQ0csYUFBUCxNQUEwQkgsTUFBTSxDQUFDSSxVQUFQLENBQWtCLE9BQWxCLENBQTNDO0lBQ0EsSUFBTUMsWUFBWSxHQUFJSCxRQUFRLElBQUtBLFFBQUQsQ0FBa0JJLGNBQWxCLEVBQWIsSUFBb0QsRUFBekU7SUFDQSxJQUFNQyxTQUFTLEdBQUdGLFlBQVksQ0FBQ0csS0FBYixDQUFtQixHQUFuQixDQUFsQjtJQUNBLElBQU1DLE9BQU8sYUFBTUYsU0FBUyxDQUFDLENBQUQsQ0FBZixhQUFiLENBUnVELENBU3ZEO0lBQ0E7SUFDQTs7SUFDQSxJQUFNRyxnQkFBdUIsR0FBRyxFQUFoQzs7SUFDQSxJQUFJSCxTQUFTLENBQUNJLE1BQVYsR0FBbUIsQ0FBdkIsRUFBMEI7TUFDekIsSUFBTUMsU0FBUyxHQUFHTCxTQUFTLENBQUMsQ0FBRCxDQUEzQjtNQUNBSyxTQUFTLENBQUNKLEtBQVYsQ0FBZ0IsR0FBaEIsRUFBcUJLLE9BQXJCLENBQTZCLFVBQVVDLFFBQVYsRUFBeUI7UUFDckQsSUFBTUMsY0FBYyxHQUFHRCxRQUFRLENBQUNOLEtBQVQsQ0FBZSxHQUFmLENBQXZCOztRQUNBLFFBQVFPLGNBQWMsQ0FBQyxDQUFELENBQXRCO1VBQ0MsS0FBSyxRQUFMO1VBQ0EsS0FBSyxTQUFMO1VBQ0Es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
|
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
|
-
import type BaseController from "sap/fe/core/BaseController";
|
|
3
2
|
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
4
3
|
import type Share from "sap/fe/core/controllerextensions/Share";
|
|
5
4
|
import SemanticDateOperators from "sap/fe/core/helpers/SemanticDateOperators";
|
|
6
|
-
import type IconTabBar from "sap/m/IconTabBar";
|
|
7
5
|
import HashChanger from "sap/ui/core/routing/HashChanger";
|
|
8
|
-
import
|
|
9
|
-
function getCountUrl(oController:
|
|
10
|
-
|
|
11
|
-
let sTableId = (oController.getView().byId("fe::TabMultipleMode") as IconTabBar)?.getSelectedKey();
|
|
12
|
-
if (!sTableId) {
|
|
13
|
-
// if not multiple tabs, get single table ID
|
|
14
|
-
sTableId = oController.getView().getContent()[0].data().singleTableId;
|
|
15
|
-
}
|
|
16
|
-
const oTable = oController.getView().byId(sTableId) as Table;
|
|
6
|
+
import ListReportController from "../ListReportController.controller";
|
|
7
|
+
function getCountUrl(oController: ListReportController) {
|
|
8
|
+
const oTable = oController._getTable?.();
|
|
17
9
|
if (!oTable) {
|
|
18
10
|
return "";
|
|
19
11
|
}
|
|
@@ -62,7 +54,7 @@ function getShareEmailUrl() {
|
|
|
62
54
|
}
|
|
63
55
|
}
|
|
64
56
|
function getSaveAsTileServiceUrl(oController: any) {
|
|
65
|
-
const oFilterBar = oController.
|
|
57
|
+
const oFilterBar = oController._getFilterBarControl();
|
|
66
58
|
if (oFilterBar) {
|
|
67
59
|
const oConditions = oFilterBar.getFilterConditions();
|
|
68
60
|
const bSaveAsTileServiceUrlAllowed = SemanticDateOperators.hasSemanticDateOperations(oConditions);
|