@sapui5/sap.fe.macros 1.141.2 → 1.143.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 +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Breadcrumbs.js +4 -10
- package/src/sap/fe/macros/Breadcrumbs.tsx +2 -8
- package/src/sap/fe/macros/Chart.js +34 -23
- package/src/sap/fe/macros/Chart.tsx +25 -11
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +47 -36
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +50 -31
- package/src/sap/fe/macros/CollectionBindingInfo.js +8 -2
- package/src/sap/fe/macros/CollectionBindingInfo.ts +11 -6
- package/src/sap/fe/macros/CommonHelper.js +14 -24
- package/src/sap/fe/macros/CommonHelper.ts +18 -25
- package/src/sap/fe/macros/ConditionalSwitch.js +1 -2
- package/src/sap/fe/macros/ConditionalSwitch.tsx +0 -1
- package/src/sap/fe/macros/ConditionalSwitchProperty.js +1 -3
- package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +0 -2
- package/src/sap/fe/macros/Field.js +34 -17
- package/src/sap/fe/macros/Field.ts +64 -32
- package/src/sap/fe/macros/FooterContent.js +7 -3
- package/src/sap/fe/macros/FooterContent.tsx +8 -13
- package/src/sap/fe/macros/KPITag.js +6 -6
- package/src/sap/fe/macros/KPITag.tsx +8 -6
- package/src/sap/fe/macros/MacroAPI.js +4 -3
- package/src/sap/fe/macros/MacroAPI.ts +3 -3
- package/src/sap/fe/macros/MessageButton.js +4 -3
- package/src/sap/fe/macros/MessageButton.tsx +7 -3
- package/src/sap/fe/macros/MicroChart.js +12 -7
- package/src/sap/fe/macros/MicroChart.tsx +9 -3
- package/src/sap/fe/macros/MultiValueField.js +22 -36
- package/src/sap/fe/macros/MultiValueField.tsx +34 -66
- package/src/sap/fe/macros/RichTextEditor.js +3 -4
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -3
- package/src/sap/fe/macros/Share.js +7 -7
- package/src/sap/fe/macros/Share.tsx +9 -6
- package/src/sap/fe/macros/Status.js +39 -11
- package/src/sap/fe/macros/Status.tsx +25 -5
- package/src/sap/fe/macros/ValueHelp.js +5 -2
- package/src/sap/fe/macros/ValueHelp.tsx +5 -0
- package/src/sap/fe/macros/ai/EasyFillDialog.js +2 -1
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +1 -0
- package/src/sap/fe/macros/ai/EasyFilterBar.js +7 -34
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +6 -35
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +31 -7
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +33 -6
- package/src/sap/fe/macros/ai/SummarizationButton.js +6 -4
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +5 -3
- package/src/sap/fe/macros/chart/Action.js +25 -2
- package/src/sap/fe/macros/chart/Action.ts +13 -0
- package/src/sap/fe/macros/chart/ActionGroup.js +25 -2
- package/src/sap/fe/macros/chart/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/chart/ChartDelegate.js +29 -8
- package/src/sap/fe/macros/chart/ChartDelegate.ts +46 -14
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +58 -12
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +75 -13
- package/src/sap/fe/macros/chart/OverflowGroup.js +62 -0
- package/src/sap/fe/macros/chart/OverflowGroup.ts +22 -0
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +7 -7
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +3 -2
- package/src/sap/fe/macros/controls/FileWrapper.js +11 -5
- package/src/sap/fe/macros/controls/FileWrapper.ts +10 -4
- package/src/sap/fe/macros/controls/FilterBar.js +39 -3
- package/src/sap/fe/macros/controls/FilterBar.ts +42 -1
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +3 -1
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -0
- package/src/sap/fe/macros/controls/RadioButtons.js +18 -5
- package/src/sap/fe/macros/controls/RadioButtons.tsx +10 -1
- package/src/sap/fe/macros/coreUI/CreateDialog.js +3 -3
- package/src/sap/fe/macros/coreUI/CreateDialog.tsx +2 -2
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +40 -12
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -9
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +4 -2
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +3 -1
- package/src/sap/fe/macros/field/FieldFormatOptions.js +4 -4
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +2 -2
- package/src/sap/fe/macros/field/FieldHelper.js +4 -3
- package/src/sap/fe/macros/field/FieldHelper.ts +7 -1
- package/src/sap/fe/macros/field/FieldRuntime.js +44 -9
- package/src/sap/fe/macros/field/FieldRuntime.ts +72 -8
- package/src/sap/fe/macros/field/FieldRuntimeHelper.js +3 -34
- package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +28 -53
- package/src/sap/fe/macros/field/FieldTemplating.js +5 -4
- package/src/sap/fe/macros/field/FieldTemplating.ts +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.ts +7 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +130 -40
- package/src/sap/fe/macros/filter/FilterUtils.ts +167 -45
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.js +2 -2
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.ts +1 -1
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +19 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +15 -9
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +36 -17
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +21 -10
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +81 -63
- package/src/sap/fe/macros/filterBar/UOMValidationDelegate.js +376 -0
- package/src/sap/fe/macros/filterBar/UOMValidationDelegate.ts +463 -0
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +4 -3
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +3 -2
- package/src/sap/fe/macros/form/Form.block.js +27 -2
- package/src/sap/fe/macros/form/Form.block.ts +31 -11
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -3
- package/src/sap/fe/macros/form/FormContainer.block.js +110 -63
- package/src/sap/fe/macros/form/FormContainer.block.ts +121 -64
- package/src/sap/fe/macros/formatters/TableFormatter.js +13 -10
- package/src/sap/fe/macros/formatters/TableFormatter.ts +11 -9
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.js +6 -4
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.ts +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +4 -4
- package/src/sap/fe/macros/insights/InsightsService.js +3 -2
- package/src/sap/fe/macros/insights/InsightsService.ts +2 -1
- package/src/sap/fe/macros/internal/DataPoint.js +7 -8
- package/src/sap/fe/macros/internal/DataPoint.tsx +6 -9
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +8 -6
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +7 -8
- package/src/sap/fe/macros/internal/field/EditStyle.js +9 -20
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +17 -41
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.js +2 -2
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.tsx +1 -1
- package/src/sap/fe/macros/internal/field/FieldStructure.js +1 -2
- package/src/sap/fe/macros/internal/field/FieldStructure.tsx +0 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +7 -7
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +17 -11
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +6 -2
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +5 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +9 -6
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +7 -5
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +4 -4
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +6 -6
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +5 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +2 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +2 -1
- package/src/sap/fe/macros/library.js +5 -6
- package/src/sap/fe/macros/{library.ts → library.tsx} +3 -1
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +15 -5
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +21 -5
- package/src/sap/fe/macros/messagebundle.properties +13 -5
- package/src/sap/fe/macros/messagebundle_ar.properties +12 -3
- package/src/sap/fe/macros/messagebundle_bg.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ca.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cnr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cs.properties +11 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +12 -3
- package/src/sap/fe/macros/messagebundle_da.properties +12 -3
- package/src/sap/fe/macros/messagebundle_de.properties +16 -7
- package/src/sap/fe/macros/messagebundle_el.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_GB.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +13 -4
- package/src/sap/fe/macros/messagebundle_es.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es_MX.properties +12 -3
- package/src/sap/fe/macros/messagebundle_et.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hr.properties +13 -4
- package/src/sap/fe/macros/messagebundle_hu.properties +12 -3
- package/src/sap/fe/macros/messagebundle_id.properties +18 -9
- package/src/sap/fe/macros/messagebundle_it.properties +12 -3
- package/src/sap/fe/macros/messagebundle_iw.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ja.properties +12 -3
- package/src/sap/fe/macros/messagebundle_kk.properties +11 -2
- package/src/sap/fe/macros/messagebundle_ko.properties +13 -4
- package/src/sap/fe/macros/messagebundle_lt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_mk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ms.properties +12 -3
- package/src/sap/fe/macros/messagebundle_nl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_no.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ro.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ru.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sh.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +13 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_th.properties +11 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_uk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_vi.properties +13 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +12 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -3
- package/src/sap/fe/macros/messages/MessageButton.js +21 -12
- package/src/sap/fe/macros/messages/MessageButton.ts +21 -11
- package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.js +7 -3
- package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.ts +8 -2
- package/src/sap/fe/macros/quickView/QuickView.js +5 -4
- package/src/sap/fe/macros/quickView/QuickView.tsx +10 -3
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.js +2 -2
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.ts +2 -2
- package/src/sap/fe/macros/table/Action.js +21 -5
- package/src/sap/fe/macros/table/Action.ts +14 -4
- package/src/sap/fe/macros/table/ActionGroup.js +15 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +8 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +16 -2
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +15 -0
- package/src/sap/fe/macros/table/Column.js +3 -2
- package/src/sap/fe/macros/table/Column.ts +1 -1
- package/src/sap/fe/macros/table/MdcTableTemplate.js +96 -18
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +136 -17
- package/src/sap/fe/macros/table/OverflowGroups.js +59 -0
- package/src/sap/fe/macros/table/OverflowGroups.ts +27 -0
- package/src/sap/fe/macros/table/Table.block.js +74 -30
- package/src/sap/fe/macros/table/Table.block.tsx +77 -14
- package/src/sap/fe/macros/table/TableAPI.js +175 -132
- package/src/sap/fe/macros/table/TableAPI.ts +67 -30
- package/src/sap/fe/macros/table/TableDefinition.js +20 -3
- package/src/sap/fe/macros/table/TableDefinition.ts +18 -2
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -3
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +12 -9
- package/src/sap/fe/macros/table/TableHelper.js +5 -2
- package/src/sap/fe/macros/table/TableHelper.ts +5 -2
- package/src/sap/fe/macros/table/TableRuntime.js +25 -13
- package/src/sap/fe/macros/table/TableRuntime.ts +31 -17
- package/src/sap/fe/macros/table/TableSizeHelper.js +4 -4
- package/src/sap/fe/macros/table/TableSizeHelper.ts +6 -11
- package/src/sap/fe/macros/table/Utils.js +9 -3
- package/src/sap/fe/macros/table/Utils.ts +14 -8
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +72 -29
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +114 -123
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +41 -15
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +41 -22
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +15 -6
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +14 -5
- package/src/sap/fe/macros/table/massEdit/MassEditField.js +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.tsx +3 -6
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -3
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +3 -2
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +42 -14
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +49 -19
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +7 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +7 -8
- package/src/sap/fe/macros/table/mixin/TableExport.js +1 -1
- package/src/sap/fe/macros/table/mixin/TableExport.ts +3 -3
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +3 -4
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +2 -3
- package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.js +5 -4
- package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.ts +6 -3
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +17 -10
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +24 -9
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +4 -4
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +3 -3
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +20 -2
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +28 -6
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +4 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.js +3 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.tsx +10 -4
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +1 -1
|
@@ -114,11 +114,11 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/SizeHelper", "sap/fe/core/he
|
|
|
114
114
|
* @alias sap.fe.macros.TableSizeHelper
|
|
115
115
|
* @returns {object} Object containing the width of the label and the width of the property.
|
|
116
116
|
*/
|
|
117
|
-
|
|
118
|
-
|
|
117
|
+
getWidthForDataField: function (dataField, properties, convertedMetaData, widthIncludingColumnHeader, dataModelObjectPath) {
|
|
118
|
+
let showDataFieldsLabel = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
|
|
119
119
|
const oTargetedProperty = dataField.Value?.$target,
|
|
120
120
|
oTextArrangementTarget = oTargetedProperty?.annotations?.Common?.Text,
|
|
121
|
-
displayMode = getDisplayMode(dataField.Value?.$target);
|
|
121
|
+
displayMode = getDisplayMode(dataField.Value?.$target, dataModelObjectPath.targetEntityType);
|
|
122
122
|
let nPropertyWidth = 0,
|
|
123
123
|
fLabelWidth = 0;
|
|
124
124
|
if (oTargetedProperty) {
|
|
@@ -145,4 +145,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/helpers/SizeHelper", "sap/fe/core/he
|
|
|
145
145
|
};
|
|
146
146
|
return TableSizeHelper;
|
|
147
147
|
}, false);
|
|
148
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUYWJsZVNpemVIZWxwZXIiLCJnZXRNRENDb2x1bW5XaWR0aEZyb21EYXRhRmllbGQiLCJkYXRhRmllbGQiLCJwcm9wZXJ0aWVzIiwiY29udmVydGVkTWV0YURhdGEiLCJ3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlciIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInByb3BlcnR5IiwiZmluZCIsInByb3AiLCJhbm5vdGF0aW9uUGF0aCIsInJlc29sdmVQYXRoIiwidGFyZ2V0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiZ2V0TURDQ29sdW1uV2lkdGhGcm9tUHJvcGVydHkiLCJpc1NvcnRhYmxlQ29sdW1uIiwiaXNDb2x1bW5SZXF1aXJlZCIsIm1XaWR0aENhbGN1bGF0aW9uIiwiT2JqZWN0IiwiYXNzaWduIiwiaGVhZGVyR2FwIiwiZ2FwIiwidHJ1bmNhdGVMYWJlbCIsImV4Y2x1ZGVQcm9wZXJ0aWVzIiwicmVxdWlyZWQiLCJ2aXN1YWxTZXR0aW5ncyIsIndpZHRoQ2FsY3VsYXRpb24iLCJ0eXBlcyIsInByb3BlcnR5SW5mb3MiLCJtYXAiLCJwcm9wTmFtZSIsIl9wcm9wZXJ0eSIsImtleSIsInByb3BlcnR5VHlwZUNvbmZpZyIsImRhdGFUeXBlIiwidHlwZUNvbmZpZyIsIlR5cGVNYXAiLCJnZXRUeXBlQ29uZmlnIiwiZm9ybWF0T3B0aW9ucyIsImNvbnN0cmFpbnRzIiwidHlwZUluc3RhbmNlIiwiZmlsdGVyIiwiaXRlbSIsInNpemUiLCJUYWJsZVV0aWwiLCJjYWxjQ29sdW1uV2lkdGgiLCJsYWJlbCIsIkxvZyIsImVycm9yIiwicGFyc2VGbG9hdCIsInJlcGxhY2UiLCJnZXRXaWR0aEZvckRhdGFGaWVsZEZvckFubm90YXRpb24iLCJzaG93RGF0YUZpZWxkc0xhYmVsIiwib1RhcmdldGVkUHJvcGVydHkiLCJpc0Fubm90YXRpb25PZlR5cGUiLCJUYXJnZXQiLCIkdGFyZ2V0IiwiblByb3BlcnR5V2lkdGgiLCJmTGFiZWxXaWR0aCIsIlZpc3VhbGl6YXRpb24iLCJuYlN0YXJzIiwiVGFyZ2V0VmFsdWUiLCJwYXJzZUludCIsInNMYWJlbCIsIkxhYmVsIiwidG9TdHJpbmciLCJTaXplSGVscGVyIiwiZ2V0QnV0dG9uV2lkdGgiLCJpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiIsImZuIiwibGFiZWxXaWR0aCIsInByb3BlcnR5V2lkdGgiLCJnZXRXaWR0aEZvckRhdGFGaWVsZCIsIlZhbHVlIiwib1RleHRBcnJhbmdlbWVudFRhcmdldCIsImFubm90YXRpb25zIiwiQ29tbW9uIiwiVGV4dCIsImRpc3BsYXlNb2RlIiwiZ2V0RGlzcGxheU1vZGUiLCIkVHlwZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVGFibGVTaXplSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydHksIFNlcnZpY2VPYmplY3QgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgQ29udmVydGVkTWV0YWRhdGEgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvRWRtXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRhY3RUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgeyBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9Db21tdW5pY2F0aW9uXCI7XG5pbXBvcnQgdHlwZSB7XG5cdERhdGFGaWVsZCxcblx0RGF0YUZpZWxkRm9yQWN0aW9uLFxuXHREYXRhRmllbGRGb3JBbm5vdGF0aW9uLFxuXHREYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24sXG5cdERhdGFQb2ludFR5cGVcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBTaXplSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1NpemVIZWxwZXJcIjtcbmltcG9ydCB7IGlzQW5ub3RhdGlvbk9mVHlwZSwgaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgeyBnZXREaXNwbGF5TW9kZSB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0Rpc3BsYXlNb2RlRm9ybWF0dGVyXCI7XG5pbXBvcnQgdHlwZSB7IEVuaGFuY2VkRkVQcm9wZXJ0eUluZm8gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy90YWJsZS9UYWJsZUFQSVwiO1xuaW1wb3J0IFRhYmxlVXRpbCBmcm9tIFwic2FwL20vdGFibGUvVXRpbFwiO1xuaW1wb3J0IHR5cGUgVHlwZUNvbmZpZyBmcm9tIFwic2FwL3VpL21kYy9UeXBlQ29uZmlnXCI7XG5pbXBvcnQgVHlwZU1hcCBmcm9tIFwic2FwL3VpL21kYy9vZGF0YS92NC9UeXBlTWFwXCI7XG5cbmNvbnN0IFRhYmxlU2l6ZUhlbHBlciA9IHtcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBjYWxjdWxhdGUgdGhlIHdpZHRoIG9mIHRoZSBNRENDb2x1bW4uXG5cdCAqIEBwYXJhbSBkYXRhRmllbGQgVGhlIFByb3BlcnR5IG9yIFByb3BlcnR5SW5mbyBPYmplY3QgZm9yIHdoaWNoIHRoZSB3aWR0aCB3aWxsIGJlIGNhbGN1bGF0ZWQuXG5cdCAqIEBwYXJhbSBwcm9wZXJ0aWVzIEFuIGFycmF5IGNvbnRhaW5pbmcgYWxsIHByb3BlcnR5IGRlZmluaXRpb25zIChvcHRpb25hbClcblx0ICogQHBhcmFtIGNvbnZlcnRlZE1ldGFEYXRhXG5cdCAqIEBwYXJhbSB3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlciBJbmRpY2F0ZXMgaWYgdGhlIGxhYmVsIHNob3VsZCBiZSBhIHBhcnQgb2YgdGhlIHdpZHRoIGNhbGN1bGF0aW9uXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLlRhYmxlU2l6ZUhlbHBlclxuXHQgKiBAcmV0dXJucyBUaGUgd2lkdGggb2YgdGhlIGNvbHVtbi5cblx0ICovXG5cdGdldE1EQ0NvbHVtbldpZHRoRnJvbURhdGFGaWVsZDogZnVuY3Rpb24gKFxuXHRcdGRhdGFGaWVsZDogRGF0YUZpZWxkIHwgUHJvcGVydHkgfCB1bmRlZmluZWQsXG5cdFx0cHJvcGVydGllczogRW5oYW5jZWRGRVByb3BlcnR5SW5mb1tdLFxuXHRcdGNvbnZlcnRlZE1ldGFEYXRhOiBDb252ZXJ0ZWRNZXRhZGF0YSxcblx0XHR3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlciA9IGZhbHNlXG5cdCk6IG51bWJlciB7XG5cdFx0Y29uc3QgcHJvcGVydHkgPSBwcm9wZXJ0aWVzLmZpbmQoXG5cdFx0XHQocHJvcCkgPT5cblx0XHRcdFx0cHJvcC5hbm5vdGF0aW9uUGF0aCAmJlxuXHRcdFx0XHRjb252ZXJ0ZWRNZXRhRGF0YS5yZXNvbHZlUGF0aDxTZXJ2aWNlT2JqZWN0Pihwcm9wLmFubm90YXRpb25QYXRoKT8udGFyZ2V0Py5mdWxseVF1YWxpZmllZE5hbWUgPT09XG5cdFx0XHRcdFx0ZGF0YUZpZWxkPy5mdWxseVF1YWxpZmllZE5hbWVcblx0XHQpO1xuXHRcdHJldHVybiBwcm9wZXJ0eSA/IHRoaXMuZ2V0TURDQ29sdW1uV2lkdGhGcm9tUHJvcGVydHkocHJvcGVydHksIHByb3BlcnRpZXMsIHdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyKSA6IDA7XG5cdH0sXG5cblx0LyoqXG5cdCAqICBNZXRob2QgdG8gY2FsY3VsYXRlIHRoZSB3aWR0aCBvZiB0aGUgTURDQ29sdW1uLlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgVGhlIFByb3BlcnR5SW5mbyBvYmplY3QgZm9yIHdoaWNoIHRoZSB3aWR0aCBpcyBjYWxjdWxhdGVkXG5cdCAqIEBwYXJhbSBwcm9wZXJ0aWVzICBBbiBhcnJheSBjb250YWluaW5nIGFsbCBwcm9wZXJ0eSBkZWZpbml0aW9ucyAob3B0aW9uYWwpXG5cdCAqIEBwYXJhbSB3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlciBJbmRpY2F0ZXMgaWYgdGhlIGxhYmVsIGlzIHBhcnQgb2YgdGhlIHdpZHRoIGNhbGN1bGF0aW9uXG5cdCAqIEBwYXJhbSBpc1NvcnRhYmxlQ29sdW1uIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIHNvcnRhYmxlXG5cdCAqIEBwYXJhbSBpc0NvbHVtblJlcXVpcmVkIEluZGljYXRlcyBpZiB0aGUgY29sdW1uIGlzIHJlcXVpcmVkXG5cdCAqIEByZXR1cm5zIFRoZSB3aWR0aCBvZiB0aGUgY29sdW1uLlxuXHQgKi9cblx0Z2V0TURDQ29sdW1uV2lkdGhGcm9tUHJvcGVydHk6IGZ1bmN0aW9uIChcblx0XHRwcm9wZXJ0eTogRW5oYW5jZWRGRVByb3BlcnR5SW5mbyxcblx0XHRwcm9wZXJ0aWVzOiBFbmhhbmNlZEZFUHJvcGVydHlJbmZvW10sXG5cdFx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXIgPSBmYWxzZSxcblx0XHRpc1NvcnRhYmxlQ29sdW1uID0gZmFsc2UsXG5cdFx0aXNDb2x1bW5SZXF1aXJlZCA9IGZhbHNlXG5cdCk6IG51bWJlciB7XG5cdFx0Y29uc3QgbVdpZHRoQ2FsY3VsYXRpb24gPSBPYmplY3QuYXNzaWduKFxuXHRcdFx0e1xuXHRcdFx0XHRoZWFkZXJHYXA6IHdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyICYmIGlzU29ydGFibGVDb2x1bW4sXG5cdFx0XHRcdGdhcDogMCxcblx0XHRcdFx0dHJ1bmNhdGVMYWJlbDogIXdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyLFxuXHRcdFx0XHRleGNsdWRlUHJvcGVydGllczogW10sXG5cdFx0XHRcdHJlcXVpcmVkOiBpc0NvbHVtblJlcXVpcmVkXG5cdFx0XHR9LFxuXHRcdFx0cHJvcGVydHkudmlzdWFsU2V0dGluZ3M/LndpZHRoQ2FsY3VsYXRpb25cblx0XHQpO1xuXG5cdFx0bGV0IHR5cGVzO1xuXHRcdGlmIChwcm9wZXJ0eS5wcm9wZXJ0eUluZm9zPy5sZW5ndGgpIHtcblx0XHRcdHR5cGVzID0gcHJvcGVydHkucHJvcGVydHlJbmZvc1xuXHRcdFx0XHQubWFwKChwcm9wTmFtZSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHByb3AgPSBwcm9wZXJ0aWVzLmZpbmQoKF9wcm9wZXJ0eSkgPT4gX3Byb3BlcnR5LmtleSA9PT0gcHJvcE5hbWUpO1xuXHRcdFx0XHRcdC8vYWRkIHRoZSB0eXBlQ29uZmlnIHRvIHRoZSBwcm9wZXJ0aWVzIGFzIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiB0aGUgdGFibGUgdmFsdWUgaGVscFxuXHRcdFx0XHRcdGNvbnN0IHByb3BlcnR5VHlwZUNvbmZpZyA9XG5cdFx0XHRcdFx0XHRwcm9wICYmIHByb3AuZGF0YVR5cGUgJiYgIXByb3AudHlwZUNvbmZpZ1xuXHRcdFx0XHRcdFx0XHQ/IFR5cGVNYXAuZ2V0VHlwZUNvbmZpZyhwcm9wLmRhdGFUeXBlLCBwcm9wLmZvcm1hdE9wdGlvbnMsIHByb3AuY29uc3RyYWludHMpXG5cdFx0XHRcdFx0XHRcdDogbnVsbDtcblx0XHRcdFx0XHRyZXR1cm4gcHJvcGVydHlUeXBlQ29uZmlnID8gcHJvcGVydHlUeXBlQ29uZmlnLnR5cGVJbnN0YW5jZSA6IHByb3A/LnR5cGVDb25maWc/LnR5cGVJbnN0YW5jZTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmZpbHRlcigoaXRlbSkgPT4gaXRlbSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGxldCBwcm9wZXJ0eVR5cGVDb25maWc6IFR5cGVDb25maWcgfCBudWxsID0gbnVsbDtcblx0XHRcdC8vYWRkIHRoZSB0eXBlQ29uZmlnIHRvIHRoZSBwcm9wZXJ0aWVzIGFzIGl0J3Mgbm90IGF2YWlsYWJsZSBpbiB0aGUgdGFibGUgdmFsdWUgaGVscFxuXHRcdFx0aWYgKHByb3BlcnR5LmRhdGFUeXBlICYmICFwcm9wZXJ0eS50eXBlQ29uZmlnKSB7XG5cdFx0XHRcdHByb3BlcnR5VHlwZUNvbmZpZyA9IFR5cGVNYXAuZ2V0VHlwZUNvbmZpZyhwcm9wZXJ0eS5kYXRhVHlwZSwgcHJvcGVydHkuZm9ybWF0T3B0aW9ucywgcHJvcGVydHkuY29uc3RyYWludHMpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKHByb3BlcnR5LnR5cGVDb25maWc/LnR5cGVJbnN0YW5jZSB8fCBwcm9wZXJ0eVR5cGVDb25maWcpIHtcblx0XHRcdFx0dHlwZXMgPSBwcm9wZXJ0eVR5cGVDb25maWcgPyBbcHJvcGVydHlUeXBlQ29uZmlnLnR5cGVJbnN0YW5jZV0gOiBbcHJvcGVydHkudHlwZUNvbmZpZz8udHlwZUluc3RhbmNlXTtcblx0XHRcdH1cblx0XHR9XG5cdFx0Y29uc3Qgc2l6ZSA9IHR5cGVzID8gVGFibGVVdGlsLmNhbGNDb2x1bW5XaWR0aCh0eXBlcywgcHJvcGVydHkubGFiZWwsIG1XaWR0aENhbGN1bGF0aW9uKSA6IG51bGw7XG5cdFx0aWYgKCFzaXplKSB7XG5cdFx0XHRMb2cuZXJyb3IoYENhbm5vdCBjb21wdXRlIHRoZSBjb2x1bW4gd2lkdGggZm9yIHByb3BlcnR5OiAke3Byb3BlcnR5LmtleX1gKTtcblx0XHR9XG5cdFx0cmV0dXJuIHNpemUgPyBwYXJzZUZsb2F0KHNpemUucmVwbGFjZShcIlJlbVwiLCBcIlwiKSkgOiAwO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gY2FsY3VsYXRlIHRoZSAgd2lkdGggb2YgYSBEYXRhRmllbGRBbm5vdGF0aW9uIG9iamVjdCBjb250YWluZWQgaW4gYSBmaWVsZEdyb3VwLlxuXHQgKiBAcGFyYW0gZGF0YUZpZWxkIERhdGFGaWVsZEFubm90YXRpb24gb2JqZWN0LlxuXHQgKiBAcGFyYW0gd2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXIgSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gaGVhZGVyIHNob3VsZCBiZSBhIHBhcnQgb2YgdGhlIHdpZHRoIGNhbGN1bGF0aW9uLlxuXHQgKiBAcGFyYW0gcHJvcGVydGllcyBBcnJheSBjb250YWluaW5nIGFsbCBQcm9wZXJ0eUluZm8gb2JqZWN0cy5cblx0ICogQHBhcmFtIGNvbnZlcnRlZE1ldGFEYXRhXG5cdCAqIEBwYXJhbSBzaG93RGF0YUZpZWxkc0xhYmVsIExhYmVsIGlzIGRpc3BsYXllZCBpbnNpZGUgdGhlIGZpZWxkXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLlRhYmxlU2l6ZUhlbHBlclxuXHQgKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyB0aGUgd2lkdGggb2YgdGhlIGxhYmVsIGFuZCB0aGUgd2lkdGggb2YgdGhlIHByb3BlcnR5LlxuXHQgKi9cblx0Z2V0V2lkdGhGb3JEYXRhRmllbGRGb3JBbm5vdGF0aW9uOiBmdW5jdGlvbiAoXG5cdFx0ZGF0YUZpZWxkOiBEYXRhRmllbGRGb3JBbm5vdGF0aW9uIHwgRGF0YUZpZWxkRm9yQWN0aW9uIHwgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIHwgdW5kZWZpbmVkLFxuXHRcdHdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyPzogYm9vbGVhbixcblx0XHRwcm9wZXJ0aWVzPzogRW5oYW5jZWRGRVByb3BlcnR5SW5mb1tdLFxuXHRcdGNvbnZlcnRlZE1ldGFEYXRhPzogQ29udmVydGVkTWV0YWRhdGEsXG5cdFx0c2hvd0RhdGFGaWVsZHNMYWJlbCA9IGZhbHNlXG5cdCk6IHsgbGFiZWxXaWR0aDogbnVtYmVyOyBwcm9wZXJ0eVdpZHRoOiBudW1iZXIgfSB7XG5cdFx0Y29uc3Qgb1RhcmdldGVkUHJvcGVydHkgPSBpc0Fubm90YXRpb25PZlR5cGU8RGF0YUZpZWxkRm9yQW5ub3RhdGlvbj4oZGF0YUZpZWxkLCBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uKVxuXHRcdFx0PyAoZGF0YUZpZWxkPy5UYXJnZXQ/LiR0YXJnZXQgYXMgRGF0YVBvaW50VHlwZSB8IENvbnRhY3RUeXBlIHwgdW5kZWZpbmVkKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0bGV0IG5Qcm9wZXJ0eVdpZHRoID0gMCxcblx0XHRcdGZMYWJlbFdpZHRoID0gMDtcblx0XHRpZiAoaXNBbm5vdGF0aW9uT2ZUeXBlPERhdGFQb2ludFR5cGU+KG9UYXJnZXRlZFByb3BlcnR5LCBVSUFubm90YXRpb25UeXBlcy5EYXRhUG9pbnRUeXBlKSAmJiBvVGFyZ2V0ZWRQcm9wZXJ0eT8uVmlzdWFsaXphdGlvbikge1xuXHRcdFx0c3dpdGNoIChvVGFyZ2V0ZWRQcm9wZXJ0eS5WaXN1YWxpemF0aW9uKSB7XG5cdFx0XHRcdGNhc2UgXCJVSS5WaXN1YWxpemF0aW9uVHlwZS9SYXRpbmdcIjpcblx0XHRcdFx0XHRjb25zdCBuYlN0YXJzID0gb1RhcmdldGVkUHJvcGVydHkuVGFyZ2V0VmFsdWU7XG5cdFx0XHRcdFx0blByb3BlcnR5V2lkdGggPSBwYXJzZUludChuYlN0YXJzLCAxMCkgKiAxLjM3NTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcIlVJLlZpc3VhbGl6YXRpb25UeXBlL1Byb2dyZXNzXCI6XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0blByb3BlcnR5V2lkdGggPSA1O1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgc0xhYmVsID0gb1RhcmdldGVkUHJvcGVydHkgPyAob1RhcmdldGVkUHJvcGVydHkgYXMgeyBsYWJlbD86IHN0cmluZyB9KS5sYWJlbCA6IGRhdGFGaWVsZD8uTGFiZWw/LnRvU3RyaW5nKCkgfHwgXCJcIjtcblx0XHRcdGZMYWJlbFdpZHRoID0gc2hvd0RhdGFGaWVsZHNMYWJlbCAmJiBzTGFiZWwgPyBTaXplSGVscGVyLmdldEJ1dHRvbldpZHRoKHNMYWJlbCkgOiAwO1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRjb252ZXJ0ZWRNZXRhRGF0YSAmJlxuXHRcdFx0cHJvcGVydGllcyAmJlxuXHRcdFx0aXNBbm5vdGF0aW9uT2ZUeXBlPENvbnRhY3RUeXBlPihvVGFyZ2V0ZWRQcm9wZXJ0eSwgQ29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcy5Db250YWN0VHlwZSkgJiZcblx0XHRcdGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKG9UYXJnZXRlZFByb3BlcnR5LmZuKVxuXHRcdCkge1xuXHRcdFx0blByb3BlcnR5V2lkdGggPSB0aGlzLmdldE1EQ0NvbHVtbldpZHRoRnJvbURhdGFGaWVsZChcblx0XHRcdFx0b1RhcmdldGVkUHJvcGVydHkuZm4uJHRhcmdldCxcblx0XHRcdFx0cHJvcGVydGllcyxcblx0XHRcdFx0Y29udmVydGVkTWV0YURhdGEsXG5cdFx0XHRcdHdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4geyBsYWJlbFdpZHRoOiBmTGFiZWxXaWR0aCwgcHJvcGVydHlXaWR0aDogblByb3BlcnR5V2lkdGggfTtcblx0fSxcblxuXHQvKipcblx0ICogTWV0aG9kIHRvIGNhbGN1bGF0ZSB0aGUgd2lkdGggb2YgYSBEYXRhRmllbGQgb2JqZWN0LlxuXHQgKiBAcGFyYW0gZGF0YUZpZWxkIERhdGFGaWVsZEFubm90YXRpb24gb2JqZWN0LlxuXHQgKiBAcGFyYW0gc2hvd0RhdGFGaWVsZHNMYWJlbCBMYWJlbCBpcyBkaXNwbGF5ZWQgaW5zaWRlIHRoZSBmaWVsZC5cblx0ICogQHBhcmFtIHByb3BlcnRpZXMgQXJyYXkgY29udGFpbmluZyBhbGwgUHJvcGVydHlJbmZvIG9iamVjdHMuXG5cdCAqIEBwYXJhbSBjb252ZXJ0ZWRNZXRhRGF0YSBDb250ZXh0IE9iamVjdCBvZiB0aGUgcGFyZW50IHByb3BlcnR5LlxuXHQgKiBAcHJpdmF0ZVxuXHQgKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5UYWJsZVNpemVIZWxwZXJcblx0ICogQHJldHVybnMge29iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHdpZHRoIG9mIHRoZSBsYWJlbCBhbmQgdGhlIHdpZHRoIG9mIHRoZSBwcm9wZXJ0eS5cblx0ICovXG5cblx0Z2V0V2lkdGhGb3JEYXRhRmllbGQ6IGZ1bmN0aW9uIChcblx0XHRkYXRhRmllbGQ6IERhdGFGaWVsZCxcblx0XHRzaG93RGF0YUZpZWxkc0xhYmVsOiBib29sZWFuLFxuXHRcdHByb3BlcnRpZXM6IEVuaGFuY2VkRkVQcm9wZXJ0eUluZm9bXSxcblx0XHRjb252ZXJ0ZWRNZXRhRGF0YTogQ29udmVydGVkTWV0YWRhdGEsXG5cdFx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXI6IGJvb2xlYW5cblx0KTogeyBsYWJlbFdpZHRoOiBudW1iZXI7IHByb3BlcnR5V2lkdGg6IG51bWJlciB9IHtcblx0XHRjb25zdCBvVGFyZ2V0ZWRQcm9wZXJ0eSA9IGRhdGFGaWVsZC5WYWx1ZT8uJHRhcmdldCxcblx0XHRcdG9UZXh0QXJyYW5nZW1lbnRUYXJnZXQgPSBvVGFyZ2V0ZWRQcm9wZXJ0eT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dCxcblx0XHRcdGRpc3BsYXlNb2RlID0gZ2V0RGlzcGxheU1vZGUoZGF0YUZpZWxkLlZhbHVlPy4kdGFyZ2V0KTtcblxuXHRcdGxldCBuUHJvcGVydHlXaWR0aCA9IDAsXG5cdFx0XHRmTGFiZWxXaWR0aCA9IDA7XG5cdFx0aWYgKG9UYXJnZXRlZFByb3BlcnR5KSB7XG5cdFx0XHRzd2l0Y2ggKGRpc3BsYXlNb2RlKSB7XG5cdFx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblwiOlxuXHRcdFx0XHRcdG5Qcm9wZXJ0eVdpZHRoID1cblx0XHRcdFx0XHRcdHRoaXMuZ2V0TURDQ29sdW1uV2lkdGhGcm9tRGF0YUZpZWxkKFxuXHRcdFx0XHRcdFx0XHRvVGV4dEFycmFuZ2VtZW50VGFyZ2V0LiR0YXJnZXQsXG5cdFx0XHRcdFx0XHRcdHByb3BlcnRpZXMsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlZE1ldGFEYXRhLFxuXHRcdFx0XHRcdFx0XHR3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlclxuXHRcdFx0XHRcdFx0KSAtIDE7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblZhbHVlXCI6XG5cdFx0XHRcdGNhc2UgXCJWYWx1ZURlc2NyaXB0aW9uXCI6XG5cdFx0XHRcdGNhc2UgXCJWYWx1ZVwiOlxuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdG5Qcm9wZXJ0eVdpZHRoID1cblx0XHRcdFx0XHRcdHRoaXMuZ2V0TURDQ29sdW1uV2lkdGhGcm9tRGF0YUZpZWxkKG9UYXJnZXRlZFByb3BlcnR5LCBwcm9wZXJ0aWVzLCBjb252ZXJ0ZWRNZXRhRGF0YSwgd2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXIpIC1cblx0XHRcdFx0XHRcdDE7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBzTGFiZWwgPSBkYXRhRmllbGQuTGFiZWwgPyBkYXRhRmllbGQuTGFiZWwgOiBvVGFyZ2V0ZWRQcm9wZXJ0eS5sYWJlbDtcblx0XHRcdGZMYWJlbFdpZHRoID0gc2hvd0RhdGFGaWVsZHNMYWJlbCAmJiBzTGFiZWwgPyBTaXplSGVscGVyLmdldEJ1dHRvbldpZHRoKHNMYWJlbCkgOiAwO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRMb2cuZXJyb3IoYENhbm5vdCBjb21wdXRlIHdpZHRoIGZvciB0eXBlIG9iamVjdDogJHtkYXRhRmllbGQuJFR5cGV9YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7IGxhYmVsV2lkdGg6IGZMYWJlbFdpZHRoLCBwcm9wZXJ0eVdpZHRoOiBuUHJvcGVydHlXaWR0aCB9O1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBUYWJsZVNpemVIZWxwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7RUFxQkEsTUFBTUEsZUFBZSxHQUFHO0lBQ3ZCO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0lBQ0NDLDhCQUE4QixFQUFFLFNBQUFBLENBQy9CQyxTQUEyQyxFQUMzQ0MsVUFBb0MsRUFDcENDLGlCQUFvQyxFQUUzQjtNQUFBLElBRFRDLDBCQUEwQixHQUFBQyxTQUFBLENBQUFDLE1BQUEs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
|
|
148
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUYWJsZVNpemVIZWxwZXIiLCJnZXRNRENDb2x1bW5XaWR0aEZyb21EYXRhRmllbGQiLCJkYXRhRmllbGQiLCJwcm9wZXJ0aWVzIiwiY29udmVydGVkTWV0YURhdGEiLCJ3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlciIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsInByb3BlcnR5IiwiZmluZCIsInByb3AiLCJhbm5vdGF0aW9uUGF0aCIsInJlc29sdmVQYXRoIiwidGFyZ2V0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiZ2V0TURDQ29sdW1uV2lkdGhGcm9tUHJvcGVydHkiLCJpc1NvcnRhYmxlQ29sdW1uIiwiaXNDb2x1bW5SZXF1aXJlZCIsIm1XaWR0aENhbGN1bGF0aW9uIiwiT2JqZWN0IiwiYXNzaWduIiwiaGVhZGVyR2FwIiwiZ2FwIiwidHJ1bmNhdGVMYWJlbCIsImV4Y2x1ZGVQcm9wZXJ0aWVzIiwicmVxdWlyZWQiLCJ2aXN1YWxTZXR0aW5ncyIsIndpZHRoQ2FsY3VsYXRpb24iLCJ0eXBlcyIsInByb3BlcnR5SW5mb3MiLCJtYXAiLCJwcm9wTmFtZSIsIl9wcm9wZXJ0eSIsImtleSIsInByb3BlcnR5VHlwZUNvbmZpZyIsImRhdGFUeXBlIiwidHlwZUNvbmZpZyIsIlR5cGVNYXAiLCJnZXRUeXBlQ29uZmlnIiwiZm9ybWF0T3B0aW9ucyIsImNvbnN0cmFpbnRzIiwidHlwZUluc3RhbmNlIiwiZmlsdGVyIiwiaXRlbSIsInNpemUiLCJUYWJsZVV0aWwiLCJjYWxjQ29sdW1uV2lkdGgiLCJsYWJlbCIsIkxvZyIsImVycm9yIiwicGFyc2VGbG9hdCIsInJlcGxhY2UiLCJnZXRXaWR0aEZvckRhdGFGaWVsZEZvckFubm90YXRpb24iLCJzaG93RGF0YUZpZWxkc0xhYmVsIiwib1RhcmdldGVkUHJvcGVydHkiLCJpc0Fubm90YXRpb25PZlR5cGUiLCJUYXJnZXQiLCIkdGFyZ2V0IiwiblByb3BlcnR5V2lkdGgiLCJmTGFiZWxXaWR0aCIsIlZpc3VhbGl6YXRpb24iLCJuYlN0YXJzIiwiVGFyZ2V0VmFsdWUiLCJwYXJzZUludCIsInNMYWJlbCIsIkxhYmVsIiwidG9TdHJpbmciLCJTaXplSGVscGVyIiwiZ2V0QnV0dG9uV2lkdGgiLCJpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiIsImZuIiwibGFiZWxXaWR0aCIsInByb3BlcnR5V2lkdGgiLCJnZXRXaWR0aEZvckRhdGFGaWVsZCIsImRhdGFNb2RlbE9iamVjdFBhdGgiLCJWYWx1ZSIsIm9UZXh0QXJyYW5nZW1lbnRUYXJnZXQiLCJhbm5vdGF0aW9ucyIsIkNvbW1vbiIsIlRleHQiLCJkaXNwbGF5TW9kZSIsImdldERpc3BsYXlNb2RlIiwidGFyZ2V0RW50aXR5VHlwZSIsIiRUeXBlIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUYWJsZVNpemVIZWxwZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSwgU2VydmljZU9iamVjdCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBDb252ZXJ0ZWRNZXRhZGF0YSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy9FZG1cIjtcbmltcG9ydCB0eXBlIHsgQ29udGFjdFR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW11bmljYXRpb25cIjtcbmltcG9ydCB7IENvbW11bmljYXRpb25Bbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL0NvbW11bmljYXRpb25cIjtcbmltcG9ydCB0eXBlIHtcblx0RGF0YUZpZWxkLFxuXHREYXRhRmllbGRBYnN0cmFjdFR5cGVzLFxuXHREYXRhRmllbGRGb3JBY3Rpb24sXG5cdERhdGFGaWVsZEZvckFubm90YXRpb24sXG5cdERhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbixcblx0RGF0YVBvaW50VHlwZVxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UeXBlcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IFNpemVIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU2l6ZUhlbHBlclwiO1xuaW1wb3J0IHsgaXNBbm5vdGF0aW9uT2ZUeXBlLCBpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGdldERpc3BsYXlNb2RlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGlzcGxheU1vZGVGb3JtYXR0ZXJcIjtcbmltcG9ydCB0eXBlIHsgRW5oYW5jZWRGRVByb3BlcnR5SW5mbyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL1RhYmxlQVBJXCI7XG5pbXBvcnQgVGFibGVVdGlsIGZyb20gXCJzYXAvbS90YWJsZS9VdGlsXCI7XG5pbXBvcnQgdHlwZSBUeXBlQ29uZmlnIGZyb20gXCJzYXAvdWkvbWRjL1R5cGVDb25maWdcIjtcbmltcG9ydCBUeXBlTWFwIGZyb20gXCJzYXAvdWkvbWRjL29kYXRhL3Y0L1R5cGVNYXBcIjtcbmNvbnN0IFRhYmxlU2l6ZUhlbHBlciA9IHtcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBjYWxjdWxhdGUgdGhlIHdpZHRoIG9mIHRoZSBNRENDb2x1bW4uXG5cdCAqIEBwYXJhbSBkYXRhRmllbGQgVGhlIFByb3BlcnR5IG9yIFByb3BlcnR5SW5mbyBPYmplY3QgZm9yIHdoaWNoIHRoZSB3aWR0aCB3aWxsIGJlIGNhbGN1bGF0ZWQuXG5cdCAqIEBwYXJhbSBwcm9wZXJ0aWVzIEFuIGFycmF5IGNvbnRhaW5pbmcgYWxsIHByb3BlcnR5IGRlZmluaXRpb25zIChvcHRpb25hbClcblx0ICogQHBhcmFtIGNvbnZlcnRlZE1ldGFEYXRhXG5cdCAqIEBwYXJhbSB3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlciBJbmRpY2F0ZXMgaWYgdGhlIGxhYmVsIHNob3VsZCBiZSBhIHBhcnQgb2YgdGhlIHdpZHRoIGNhbGN1bGF0aW9uXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLlRhYmxlU2l6ZUhlbHBlclxuXHQgKiBAcmV0dXJucyBUaGUgd2lkdGggb2YgdGhlIGNvbHVtbi5cblx0ICovXG5cdGdldE1EQ0NvbHVtbldpZHRoRnJvbURhdGFGaWVsZDogZnVuY3Rpb24gKFxuXHRcdGRhdGFGaWVsZDogRGF0YUZpZWxkIHwgUHJvcGVydHkgfCB1bmRlZmluZWQsXG5cdFx0cHJvcGVydGllczogRW5oYW5jZWRGRVByb3BlcnR5SW5mb1tdLFxuXHRcdGNvbnZlcnRlZE1ldGFEYXRhOiBDb252ZXJ0ZWRNZXRhZGF0YSxcblx0XHR3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlciA9IGZhbHNlXG5cdCk6IG51bWJlciB7XG5cdFx0Y29uc3QgcHJvcGVydHkgPSBwcm9wZXJ0aWVzLmZpbmQoXG5cdFx0XHQocHJvcCkgPT5cblx0XHRcdFx0cHJvcC5hbm5vdGF0aW9uUGF0aCAmJlxuXHRcdFx0XHRjb252ZXJ0ZWRNZXRhRGF0YS5yZXNvbHZlUGF0aDxTZXJ2aWNlT2JqZWN0Pihwcm9wLmFubm90YXRpb25QYXRoKT8udGFyZ2V0Py5mdWxseVF1YWxpZmllZE5hbWUgPT09XG5cdFx0XHRcdFx0ZGF0YUZpZWxkPy5mdWxseVF1YWxpZmllZE5hbWVcblx0XHQpO1xuXHRcdHJldHVybiBwcm9wZXJ0eSA/IHRoaXMuZ2V0TURDQ29sdW1uV2lkdGhGcm9tUHJvcGVydHkocHJvcGVydHksIHByb3BlcnRpZXMsIHdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyKSA6IDA7XG5cdH0sXG5cdC8qKlxuXHQgKiAgTWV0aG9kIHRvIGNhbGN1bGF0ZSB0aGUgd2lkdGggb2YgdGhlIE1EQ0NvbHVtbi5cblx0ICogQHBhcmFtIHByb3BlcnR5IFRoZSBQcm9wZXJ0eUluZm8gb2JqZWN0IGZvciB3aGljaCB0aGUgd2lkdGggaXMgY2FsY3VsYXRlZFxuXHQgKiBAcGFyYW0gcHJvcGVydGllcyAgQW4gYXJyYXkgY29udGFpbmluZyBhbGwgcHJvcGVydHkgZGVmaW5pdGlvbnMgKG9wdGlvbmFsKVxuXHQgKiBAcGFyYW0gd2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXIgSW5kaWNhdGVzIGlmIHRoZSBsYWJlbCBpcyBwYXJ0IG9mIHRoZSB3aWR0aCBjYWxjdWxhdGlvblxuXHQgKiBAcGFyYW0gaXNTb3J0YWJsZUNvbHVtbiBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyBzb3J0YWJsZVxuXHQgKiBAcGFyYW0gaXNDb2x1bW5SZXF1aXJlZCBJbmRpY2F0ZXMgaWYgdGhlIGNvbHVtbiBpcyByZXF1aXJlZFxuXHQgKiBAcmV0dXJucyBUaGUgd2lkdGggb2YgdGhlIGNvbHVtbi5cblx0ICovXG5cdGdldE1EQ0NvbHVtbldpZHRoRnJvbVByb3BlcnR5OiBmdW5jdGlvbiAoXG5cdFx0cHJvcGVydHk6IEVuaGFuY2VkRkVQcm9wZXJ0eUluZm8sXG5cdFx0cHJvcGVydGllczogRW5oYW5jZWRGRVByb3BlcnR5SW5mb1tdLFxuXHRcdHdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyID0gZmFsc2UsXG5cdFx0aXNTb3J0YWJsZUNvbHVtbiA9IGZhbHNlLFxuXHRcdGlzQ29sdW1uUmVxdWlyZWQgPSBmYWxzZVxuXHQpOiBudW1iZXIge1xuXHRcdGNvbnN0IG1XaWR0aENhbGN1bGF0aW9uID0gT2JqZWN0LmFzc2lnbihcblx0XHRcdHtcblx0XHRcdFx0aGVhZGVyR2FwOiB3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlciAmJiBpc1NvcnRhYmxlQ29sdW1uLFxuXHRcdFx0XHRnYXA6IDAsXG5cdFx0XHRcdHRydW5jYXRlTGFiZWw6ICF3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlcixcblx0XHRcdFx0ZXhjbHVkZVByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHRyZXF1aXJlZDogaXNDb2x1bW5SZXF1aXJlZFxuXHRcdFx0fSxcblx0XHRcdHByb3BlcnR5LnZpc3VhbFNldHRpbmdzPy53aWR0aENhbGN1bGF0aW9uXG5cdFx0KTtcblx0XHRsZXQgdHlwZXM7XG5cdFx0aWYgKHByb3BlcnR5LnByb3BlcnR5SW5mb3M/Lmxlbmd0aCkge1xuXHRcdFx0dHlwZXMgPSBwcm9wZXJ0eS5wcm9wZXJ0eUluZm9zXG5cdFx0XHRcdC5tYXAoKHByb3BOYW1lKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgcHJvcCA9IHByb3BlcnRpZXMuZmluZCgoX3Byb3BlcnR5KSA9PiBfcHJvcGVydHkua2V5ID09PSBwcm9wTmFtZSk7XG5cdFx0XHRcdFx0Ly9hZGQgdGhlIHR5cGVDb25maWcgdG8gdGhlIHByb3BlcnRpZXMgYXMgaXQncyBub3QgYXZhaWxhYmxlIGluIHRoZSB0YWJsZSB2YWx1ZSBoZWxwXG5cdFx0XHRcdFx0Y29uc3QgcHJvcGVydHlUeXBlQ29uZmlnID1cblx0XHRcdFx0XHRcdHByb3AgJiYgcHJvcC5kYXRhVHlwZSAmJiAhcHJvcC50eXBlQ29uZmlnXG5cdFx0XHRcdFx0XHRcdD8gVHlwZU1hcC5nZXRUeXBlQ29uZmlnKHByb3AuZGF0YVR5cGUsIHByb3AuZm9ybWF0T3B0aW9ucywgcHJvcC5jb25zdHJhaW50cylcblx0XHRcdFx0XHRcdFx0OiBudWxsO1xuXHRcdFx0XHRcdHJldHVybiBwcm9wZXJ0eVR5cGVDb25maWcgPyBwcm9wZXJ0eVR5cGVDb25maWcudHlwZUluc3RhbmNlIDogcHJvcD8udHlwZUNvbmZpZz8udHlwZUluc3RhbmNlO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZmlsdGVyKChpdGVtKSA9PiBpdGVtKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bGV0IHByb3BlcnR5VHlwZUNvbmZpZzogVHlwZUNvbmZpZyB8IG51bGwgPSBudWxsO1xuXHRcdFx0Ly9hZGQgdGhlIHR5cGVDb25maWcgdG8gdGhlIHByb3BlcnRpZXMgYXMgaXQncyBub3QgYXZhaWxhYmxlIGluIHRoZSB0YWJsZSB2YWx1ZSBoZWxwXG5cdFx0XHRpZiAocHJvcGVydHkuZGF0YVR5cGUgJiYgIXByb3BlcnR5LnR5cGVDb25maWcpIHtcblx0XHRcdFx0cHJvcGVydHlUeXBlQ29uZmlnID0gVHlwZU1hcC5nZXRUeXBlQ29uZmlnKHByb3BlcnR5LmRhdGFUeXBlLCBwcm9wZXJ0eS5mb3JtYXRPcHRpb25zLCBwcm9wZXJ0eS5jb25zdHJhaW50cyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAocHJvcGVydHkudHlwZUNvbmZpZz8udHlwZUluc3RhbmNlIHx8IHByb3BlcnR5VHlwZUNvbmZpZykge1xuXHRcdFx0XHR0eXBlcyA9IHByb3BlcnR5VHlwZUNvbmZpZyA/IFtwcm9wZXJ0eVR5cGVDb25maWcudHlwZUluc3RhbmNlXSA6IFtwcm9wZXJ0eS50eXBlQ29uZmlnPy50eXBlSW5zdGFuY2VdO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRjb25zdCBzaXplID0gdHlwZXMgPyBUYWJsZVV0aWwuY2FsY0NvbHVtbldpZHRoKHR5cGVzLCBwcm9wZXJ0eS5sYWJlbCwgbVdpZHRoQ2FsY3VsYXRpb24pIDogbnVsbDtcblx0XHRpZiAoIXNpemUpIHtcblx0XHRcdExvZy5lcnJvcihgQ2Fubm90IGNvbXB1dGUgdGhlIGNvbHVtbiB3aWR0aCBmb3IgcHJvcGVydHk6ICR7cHJvcGVydHkua2V5fWApO1xuXHRcdH1cblx0XHRyZXR1cm4gc2l6ZSA/IHBhcnNlRmxvYXQoc2l6ZS5yZXBsYWNlKFwiUmVtXCIsIFwiXCIpKSA6IDA7XG5cdH0sXG5cdC8qKlxuXHQgKiBNZXRob2QgdG8gY2FsY3VsYXRlIHRoZSAgd2lkdGggb2YgYSBEYXRhRmllbGRBbm5vdGF0aW9uIG9iamVjdCBjb250YWluZWQgaW4gYSBmaWVsZEdyb3VwLlxuXHQgKiBAcGFyYW0gZGF0YUZpZWxkIERhdGFGaWVsZEFubm90YXRpb24gb2JqZWN0LlxuXHQgKiBAcGFyYW0gd2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXIgSW5kaWNhdGVzIGlmIHRoZSBjb2x1bW4gaGVhZGVyIHNob3VsZCBiZSBhIHBhcnQgb2YgdGhlIHdpZHRoIGNhbGN1bGF0aW9uLlxuXHQgKiBAcGFyYW0gcHJvcGVydGllcyBBcnJheSBjb250YWluaW5nIGFsbCBQcm9wZXJ0eUluZm8gb2JqZWN0cy5cblx0ICogQHBhcmFtIGNvbnZlcnRlZE1ldGFEYXRhXG5cdCAqIEBwYXJhbSBzaG93RGF0YUZpZWxkc0xhYmVsIExhYmVsIGlzIGRpc3BsYXllZCBpbnNpZGUgdGhlIGZpZWxkXG5cdCAqIEBwcml2YXRlXG5cdCAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLlRhYmxlU2l6ZUhlbHBlclxuXHQgKiBAcmV0dXJucyBPYmplY3QgY29udGFpbmluZyB0aGUgd2lkdGggb2YgdGhlIGxhYmVsIGFuZCB0aGUgd2lkdGggb2YgdGhlIHByb3BlcnR5LlxuXHQgKi9cblx0Z2V0V2lkdGhGb3JEYXRhRmllbGRGb3JBbm5vdGF0aW9uOiBmdW5jdGlvbiAoXG5cdFx0ZGF0YUZpZWxkOiBEYXRhRmllbGRGb3JBbm5vdGF0aW9uIHwgRGF0YUZpZWxkRm9yQWN0aW9uIHwgRGF0YUZpZWxkRm9ySW50ZW50QmFzZWROYXZpZ2F0aW9uIHwgdW5kZWZpbmVkLFxuXHRcdHdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyPzogYm9vbGVhbixcblx0XHRwcm9wZXJ0aWVzPzogRW5oYW5jZWRGRVByb3BlcnR5SW5mb1tdLFxuXHRcdGNvbnZlcnRlZE1ldGFEYXRhPzogQ29udmVydGVkTWV0YWRhdGEsXG5cdFx0c2hvd0RhdGFGaWVsZHNMYWJlbCA9IGZhbHNlXG5cdCk6IHsgbGFiZWxXaWR0aDogbnVtYmVyOyBwcm9wZXJ0eVdpZHRoOiBudW1iZXIgfSB7XG5cdFx0Y29uc3Qgb1RhcmdldGVkUHJvcGVydHkgPSBpc0Fubm90YXRpb25PZlR5cGU8RGF0YUZpZWxkRm9yQW5ub3RhdGlvbj4oZGF0YUZpZWxkLCBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBbm5vdGF0aW9uKVxuXHRcdFx0PyAoZGF0YUZpZWxkPy5UYXJnZXQ/LiR0YXJnZXQgYXMgRGF0YVBvaW50VHlwZSB8IENvbnRhY3RUeXBlIHwgdW5kZWZpbmVkKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdFx0bGV0IG5Qcm9wZXJ0eVdpZHRoID0gMCxcblx0XHRcdGZMYWJlbFdpZHRoID0gMDtcblx0XHRpZiAoaXNBbm5vdGF0aW9uT2ZUeXBlPERhdGFQb2ludFR5cGU+KG9UYXJnZXRlZFByb3BlcnR5LCBVSUFubm90YXRpb25UeXBlcy5EYXRhUG9pbnRUeXBlKSAmJiBvVGFyZ2V0ZWRQcm9wZXJ0eT8uVmlzdWFsaXphdGlvbikge1xuXHRcdFx0c3dpdGNoIChvVGFyZ2V0ZWRQcm9wZXJ0eS5WaXN1YWxpemF0aW9uKSB7XG5cdFx0XHRcdGNhc2UgXCJVSS5WaXN1YWxpemF0aW9uVHlwZS9SYXRpbmdcIjpcblx0XHRcdFx0XHRjb25zdCBuYlN0YXJzID0gb1RhcmdldGVkUHJvcGVydHkuVGFyZ2V0VmFsdWU7XG5cdFx0XHRcdFx0blByb3BlcnR5V2lkdGggPSBwYXJzZUludChuYlN0YXJzLCAxMCkgKiAxLjM3NTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcIlVJLlZpc3VhbGl6YXRpb25UeXBlL1Byb2dyZXNzXCI6XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0blByb3BlcnR5V2lkdGggPSA1O1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgc0xhYmVsID0gb1RhcmdldGVkUHJvcGVydHkgPyAob1RhcmdldGVkUHJvcGVydHkgYXMgeyBsYWJlbD86IHN0cmluZyB9KS5sYWJlbCA6IGRhdGFGaWVsZD8uTGFiZWw/LnRvU3RyaW5nKCkgfHwgXCJcIjtcblx0XHRcdGZMYWJlbFdpZHRoID0gc2hvd0RhdGFGaWVsZHNMYWJlbCAmJiBzTGFiZWwgPyBTaXplSGVscGVyLmdldEJ1dHRvbldpZHRoKHNMYWJlbCkgOiAwO1xuXHRcdH0gZWxzZSBpZiAoXG5cdFx0XHRjb252ZXJ0ZWRNZXRhRGF0YSAmJlxuXHRcdFx0cHJvcGVydGllcyAmJlxuXHRcdFx0aXNBbm5vdGF0aW9uT2ZUeXBlPENvbnRhY3RUeXBlPihvVGFyZ2V0ZWRQcm9wZXJ0eSwgQ29tbXVuaWNhdGlvbkFubm90YXRpb25UeXBlcy5Db250YWN0VHlwZSkgJiZcblx0XHRcdGlzUGF0aEFubm90YXRpb25FeHByZXNzaW9uKG9UYXJnZXRlZFByb3BlcnR5LmZuKVxuXHRcdCkge1xuXHRcdFx0blByb3BlcnR5V2lkdGggPSB0aGlzLmdldE1EQ0NvbHVtbldpZHRoRnJvbURhdGFGaWVsZChcblx0XHRcdFx0b1RhcmdldGVkUHJvcGVydHkuZm4uJHRhcmdldCxcblx0XHRcdFx0cHJvcGVydGllcyxcblx0XHRcdFx0Y29udmVydGVkTWV0YURhdGEsXG5cdFx0XHRcdHdpZHRoSW5jbHVkaW5nQ29sdW1uSGVhZGVyXG5cdFx0XHQpO1xuXHRcdH1cblx0XHRyZXR1cm4geyBsYWJlbFdpZHRoOiBmTGFiZWxXaWR0aCwgcHJvcGVydHlXaWR0aDogblByb3BlcnR5V2lkdGggfTtcblx0fSxcblx0LyoqXG5cdCAqIE1ldGhvZCB0byBjYWxjdWxhdGUgdGhlIHdpZHRoIG9mIGEgRGF0YUZpZWxkIG9iamVjdC5cblx0ICogQHBhcmFtIGRhdGFGaWVsZCBEYXRhRmllbGRBbm5vdGF0aW9uIG9iamVjdC5cblx0ICogQHBhcmFtIHNob3dEYXRhRmllbGRzTGFiZWwgTGFiZWwgaXMgZGlzcGxheWVkIGluc2lkZSB0aGUgZmllbGQuXG5cdCAqIEBwYXJhbSBwcm9wZXJ0aWVzIEFycmF5IGNvbnRhaW5pbmcgYWxsIFByb3BlcnR5SW5mbyBvYmplY3RzLlxuXHQgKiBAcGFyYW0gY29udmVydGVkTWV0YURhdGEgQ29udGV4dCBPYmplY3Qgb2YgdGhlIHBhcmVudCBwcm9wZXJ0eS5cblx0ICogQHByaXZhdGVcblx0ICogQGFsaWFzIHNhcC5mZS5tYWNyb3MuVGFibGVTaXplSGVscGVyXG5cdCAqIEByZXR1cm5zIHtvYmplY3R9IE9iamVjdCBjb250YWluaW5nIHRoZSB3aWR0aCBvZiB0aGUgbGFiZWwgYW5kIHRoZSB3aWR0aCBvZiB0aGUgcHJvcGVydHkuXG5cdCAqL1xuXHRnZXRXaWR0aEZvckRhdGFGaWVsZDogZnVuY3Rpb24gKFxuXHRcdGRhdGFGaWVsZDogRGF0YUZpZWxkLFxuXHRcdHByb3BlcnRpZXM6IEVuaGFuY2VkRkVQcm9wZXJ0eUluZm9bXSxcblx0XHRjb252ZXJ0ZWRNZXRhRGF0YTogQ29udmVydGVkTWV0YWRhdGEsXG5cdFx0d2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXI6IGJvb2xlYW4sXG5cdFx0ZGF0YU1vZGVsT2JqZWN0UGF0aDogRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eSB8IERhdGFGaWVsZEFic3RyYWN0VHlwZXMgfCBEYXRhUG9pbnRUeXBlPixcblx0XHRzaG93RGF0YUZpZWxkc0xhYmVsID0gZmFsc2Vcblx0KTogeyBsYWJlbFdpZHRoOiBudW1iZXI7IHByb3BlcnR5V2lkdGg6IG51bWJlciB9IHtcblx0XHRjb25zdCBvVGFyZ2V0ZWRQcm9wZXJ0eSA9IGRhdGFGaWVsZC5WYWx1ZT8uJHRhcmdldCxcblx0XHRcdG9UZXh0QXJyYW5nZW1lbnRUYXJnZXQgPSBvVGFyZ2V0ZWRQcm9wZXJ0eT8uYW5ub3RhdGlvbnM/LkNvbW1vbj8uVGV4dCxcblx0XHRcdGRpc3BsYXlNb2RlID0gZ2V0RGlzcGxheU1vZGUoZGF0YUZpZWxkLlZhbHVlPy4kdGFyZ2V0LCBkYXRhTW9kZWxPYmplY3RQYXRoLnRhcmdldEVudGl0eVR5cGUpO1xuXHRcdGxldCBuUHJvcGVydHlXaWR0aCA9IDAsXG5cdFx0XHRmTGFiZWxXaWR0aCA9IDA7XG5cdFx0aWYgKG9UYXJnZXRlZFByb3BlcnR5KSB7XG5cdFx0XHRzd2l0Y2ggKGRpc3BsYXlNb2RlKSB7XG5cdFx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblwiOlxuXHRcdFx0XHRcdG5Qcm9wZXJ0eVdpZHRoID1cblx0XHRcdFx0XHRcdHRoaXMuZ2V0TURDQ29sdW1uV2lkdGhGcm9tRGF0YUZpZWxkKFxuXHRcdFx0XHRcdFx0XHRvVGV4dEFycmFuZ2VtZW50VGFyZ2V0LiR0YXJnZXQsXG5cdFx0XHRcdFx0XHRcdHByb3BlcnRpZXMsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlZE1ldGFEYXRhLFxuXHRcdFx0XHRcdFx0XHR3aWR0aEluY2x1ZGluZ0NvbHVtbkhlYWRlclxuXHRcdFx0XHRcdFx0KSAtIDE7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJEZXNjcmlwdGlvblZhbHVlXCI6XG5cdFx0XHRcdGNhc2UgXCJWYWx1ZURlc2NyaXB0aW9uXCI6XG5cdFx0XHRcdGNhc2UgXCJWYWx1ZVwiOlxuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdG5Qcm9wZXJ0eVdpZHRoID1cblx0XHRcdFx0XHRcdHRoaXMuZ2V0TURDQ29sdW1uV2lkdGhGcm9tRGF0YUZpZWxkKG9UYXJnZXRlZFByb3BlcnR5LCBwcm9wZXJ0aWVzLCBjb252ZXJ0ZWRNZXRhRGF0YSwgd2lkdGhJbmNsdWRpbmdDb2x1bW5IZWFkZXIpIC1cblx0XHRcdFx0XHRcdDE7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBzTGFiZWwgPSBkYXRhRmllbGQuTGFiZWwgPyBkYXRhRmllbGQuTGFiZWwgOiBvVGFyZ2V0ZWRQcm9wZXJ0eS5sYWJlbDtcblx0XHRcdGZMYWJlbFdpZHRoID0gc2hvd0RhdGFGaWVsZHNMYWJlbCAmJiBzTGFiZWwgPyBTaXplSGVscGVyLmdldEJ1dHRvbldpZHRoKHNMYWJlbCkgOiAwO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRMb2cuZXJyb3IoYENhbm5vdCBjb21wdXRlIHdpZHRoIGZvciB0eXBlIG9iamVjdDogJHtkYXRhRmllbGQuJFR5cGV9YCk7XG5cdFx0fVxuXHRcdHJldHVybiB7IGxhYmVsV2lkdGg6IGZMYWJlbFdpZHRoLCBwcm9wZXJ0eVdpZHRoOiBuUHJvcGVydHlXaWR0aCB9O1xuXHR9XG59O1xuZXhwb3J0IGRlZmF1bHQgVGFibGVTaXplSGVscGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0VBc0JBLE1BQU1BLGVBQWUsR0FBRztJQUN2QjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDQyw4QkFBOEIsRUFBRSxTQUFBQSxDQUMvQkMsU0FBMkMsRUFDM0NDLFVBQW9DLEVBQ3BDQyxpQkFBb0MsRUFFM0I7TUFBQSxJQURUQywwQkFBMEIsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsS0FBSztNQUVsQyxNQUFNRyxRQUFRLEdBQUdOLFVBQVUsQ0FBQ08sSUFBSSxDQUM5QkMsSUFBSSxJQUNKQSxJQUFJLENBQUNDLGNBQWMsSUFDbkJSLGlCQUFpQixDQUFDUyxXQUFXLENBQWdCRixJQUFJLENBQUNDLGNBQWMsQ0FBQyxFQUFFRSxNQUFNLEVBQUVDLGtCQUFrQixLQUM1RmIsU0FBUyxFQUFFYSxrQkFDZCxDQUFDO01BQ0QsT0FBT04sUUFBUSxHQUFHLElBQUksQ0FBQ08sNkJBQTZCLENBQUNQLFFBQVEsRUFBRU4sVUFBVSxFQUFFRSwwQkFBMEIsQ0FBQyxHQUFHLENBQUM7SUFDM0csQ0FBQztJQUNEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDVyw2QkFBNkIsRUFBRSxTQUFBQSxDQUM5QlAsUUFBZ0MsRUFDaENOLFVBQW9DLEVBSTNCO01BQUEsSUFIVEUsMEJBQTBCLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7TUFBQSxJQUNsQ1csZ0JBQWdCLEdBQUFYLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEtBQUs7TUFBQSxJQUN4QlksZ0JBQWdCLEdBQUFaLFNBQUEsQ0FB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
|
|
@@ -4,6 +4,7 @@ import type { ContactType } from "@sap-ux/vocabularies-types/vocabularies/Commun
|
|
|
4
4
|
import { CommunicationAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/Communication";
|
|
5
5
|
import type {
|
|
6
6
|
DataField,
|
|
7
|
+
DataFieldAbstractTypes,
|
|
7
8
|
DataFieldForAction,
|
|
8
9
|
DataFieldForAnnotation,
|
|
9
10
|
DataFieldForIntentBasedNavigation,
|
|
@@ -13,12 +14,12 @@ import { UIAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
|
13
14
|
import Log from "sap/base/Log";
|
|
14
15
|
import SizeHelper from "sap/fe/core/helpers/SizeHelper";
|
|
15
16
|
import { isAnnotationOfType, isPathAnnotationExpression } from "sap/fe/core/helpers/TypeGuards";
|
|
17
|
+
import type { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
16
18
|
import { getDisplayMode } from "sap/fe/core/templating/DisplayModeFormatter";
|
|
17
19
|
import type { EnhancedFEPropertyInfo } from "sap/fe/macros/table/TableAPI";
|
|
18
20
|
import TableUtil from "sap/m/table/Util";
|
|
19
21
|
import type TypeConfig from "sap/ui/mdc/TypeConfig";
|
|
20
22
|
import TypeMap from "sap/ui/mdc/odata/v4/TypeMap";
|
|
21
|
-
|
|
22
23
|
const TableSizeHelper = {
|
|
23
24
|
/**
|
|
24
25
|
* Method to calculate the width of the MDCColumn.
|
|
@@ -44,7 +45,6 @@ const TableSizeHelper = {
|
|
|
44
45
|
);
|
|
45
46
|
return property ? this.getMDCColumnWidthFromProperty(property, properties, widthIncludingColumnHeader) : 0;
|
|
46
47
|
},
|
|
47
|
-
|
|
48
48
|
/**
|
|
49
49
|
* Method to calculate the width of the MDCColumn.
|
|
50
50
|
* @param property The PropertyInfo object for which the width is calculated
|
|
@@ -71,7 +71,6 @@ const TableSizeHelper = {
|
|
|
71
71
|
},
|
|
72
72
|
property.visualSettings?.widthCalculation
|
|
73
73
|
);
|
|
74
|
-
|
|
75
74
|
let types;
|
|
76
75
|
if (property.propertyInfos?.length) {
|
|
77
76
|
types = property.propertyInfos
|
|
@@ -101,7 +100,6 @@ const TableSizeHelper = {
|
|
|
101
100
|
}
|
|
102
101
|
return size ? parseFloat(size.replace("Rem", "")) : 0;
|
|
103
102
|
},
|
|
104
|
-
|
|
105
103
|
/**
|
|
106
104
|
* Method to calculate the width of a DataFieldAnnotation object contained in a fieldGroup.
|
|
107
105
|
* @param dataField DataFieldAnnotation object.
|
|
@@ -152,7 +150,6 @@ const TableSizeHelper = {
|
|
|
152
150
|
}
|
|
153
151
|
return { labelWidth: fLabelWidth, propertyWidth: nPropertyWidth };
|
|
154
152
|
},
|
|
155
|
-
|
|
156
153
|
/**
|
|
157
154
|
* Method to calculate the width of a DataField object.
|
|
158
155
|
* @param dataField DataFieldAnnotation object.
|
|
@@ -163,18 +160,17 @@ const TableSizeHelper = {
|
|
|
163
160
|
* @alias sap.fe.macros.TableSizeHelper
|
|
164
161
|
* @returns {object} Object containing the width of the label and the width of the property.
|
|
165
162
|
*/
|
|
166
|
-
|
|
167
163
|
getWidthForDataField: function (
|
|
168
164
|
dataField: DataField,
|
|
169
|
-
showDataFieldsLabel: boolean,
|
|
170
165
|
properties: EnhancedFEPropertyInfo[],
|
|
171
166
|
convertedMetaData: ConvertedMetadata,
|
|
172
|
-
widthIncludingColumnHeader: boolean
|
|
167
|
+
widthIncludingColumnHeader: boolean,
|
|
168
|
+
dataModelObjectPath: DataModelObjectPath<Property | DataFieldAbstractTypes | DataPointType>,
|
|
169
|
+
showDataFieldsLabel = false
|
|
173
170
|
): { labelWidth: number; propertyWidth: number } {
|
|
174
171
|
const oTargetedProperty = dataField.Value?.$target,
|
|
175
172
|
oTextArrangementTarget = oTargetedProperty?.annotations?.Common?.Text,
|
|
176
|
-
displayMode = getDisplayMode(dataField.Value?.$target);
|
|
177
|
-
|
|
173
|
+
displayMode = getDisplayMode(dataField.Value?.$target, dataModelObjectPath.targetEntityType);
|
|
178
174
|
let nPropertyWidth = 0,
|
|
179
175
|
fLabelWidth = 0;
|
|
180
176
|
if (oTargetedProperty) {
|
|
@@ -204,5 +200,4 @@ const TableSizeHelper = {
|
|
|
204
200
|
return { labelWidth: fLabelWidth, propertyWidth: nPropertyWidth };
|
|
205
201
|
}
|
|
206
202
|
};
|
|
207
|
-
|
|
208
203
|
export default TableSizeHelper;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/DelegateUtil", "sap/fe/macros/filter/FilterUtils", "sap/ui/core/format/NumberFormat", "sap/ui/model/Filter", "../CollectionBindingInfo"], function (CommonUtils, DelegateUtil, FilterUtils, NumberFormat, Filter, CollectionBindingInfoAPI) {
|
|
5
|
+
sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/DelegateUtil", "sap/fe/macros/filter/FilterUtils", "sap/ui/core/format/NumberFormat", "sap/ui/mdc/odata/v4/TableDelegate", "sap/ui/model/Filter", "../CollectionBindingInfo"], function (CommonUtils, DelegateUtil, FilterUtils, NumberFormat, TableDelegateBase, Filter, CollectionBindingInfoAPI) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function getHiddenFilters(oTable) {
|
|
@@ -44,7 +44,13 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/DelegateUtil", "sap/fe/
|
|
|
44
44
|
const oDataModel = table.getModel();
|
|
45
45
|
const tableAPI = table.getParent();
|
|
46
46
|
const filterInfo = tableUtils.getFilterInfo(table);
|
|
47
|
-
|
|
47
|
+
let filters = (Array.isArray(params.additionalFilters) ? params.additionalFilters : []).concat(filterInfo.filters).concat(tableUtils.getP13nFilters(table));
|
|
48
|
+
if (table.getDataStateIndicator()?.isFiltering()) {
|
|
49
|
+
// Include filters on messageStrip
|
|
50
|
+
const bindingInfoBase = {};
|
|
51
|
+
TableDelegateBase.updateBindingInfo.apply(table.getControlDelegate(), [table, bindingInfoBase]);
|
|
52
|
+
filters = filters.concat(bindingInfoBase.filters || []);
|
|
53
|
+
}
|
|
48
54
|
const bindingInfo = {
|
|
49
55
|
path: filterInfo.bindingPath ? filterInfo.bindingPath : tableAPI.getRowCollectionPath(),
|
|
50
56
|
filters: new Filter({
|
|
@@ -321,4 +327,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/macros/DelegateUtil", "sap/fe/
|
|
|
321
327
|
};
|
|
322
328
|
return tableUtils;
|
|
323
329
|
}, false);
|
|
324
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRIaWRkZW5GaWx0ZXJzIiwib1RhYmxlIiwiYUZpbHRlcnMiLCJoaWRkZW5GaWx0ZXJzIiwiZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsInBhdGhzIiwiZm9yRWFjaCIsIm1QYXRoIiwib1N2RmlsdGVycyIsIkNvbW1vblV0aWxzIiwiZ2V0RmlsdGVyc0Zyb21Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJjb25jYXQiLCJnZXRFeHRlcm5hbEZpbHRlcnMiLCJ0YWJsZSIsImZpbHRlcnMiLCJxdWlja0ZpbHRlciIsImdldFF1aWNrRmlsdGVyIiwiZ2V0U2VsZWN0ZWRLZXkiLCJnZXRMaXN0QmluZGluZ0ZvckNvdW50IiwicGFnZUJpbmRpbmdDb250ZXh0IiwicGFyYW1zIiwib0RhdGFNb2RlbCIsImdldE1vZGVsIiwidGFibGVBUEkiLCJnZXRQYXJlbnQiLCJmaWx0ZXJJbmZvIiwidGFibGVVdGlscyIsImdldEZpbHRlckluZm8iLCJhZGRpdGlvbmFsRmlsdGVycyIsImdldFAxM25GaWx0ZXJzIiwiYmluZGluZ0luZm8iLCJwYXRoIiwiYmluZGluZ1BhdGgiLCJnZXRSb3dDb2xsZWN0aW9uUGF0aCIsIkZpbHRlciIsImFuZCIsImZpcmVFdmVudCIsImNvbGxlY3Rpb25CaW5kaW5nSW5mbyIsIkNvbGxlY3Rpb25CaW5kaW5nSW5mb0FQSSIsInF1aWNrRmlsdGVyS2V5IiwiaXRlbUtleSIsImxpc3RCaW5kaW5nUGF0aCIsInN0YXJ0c1dpdGgiLCJnZXRQYXRoIiwibGlzdEJpbmRpbmciLCJiaW5kTGlzdCIsImdldEJpbmRpbmdDb250ZXh0Iiwic3RyaW5nRmlsdGVycyIsImZldGNoRmlsdGVyIiwiZ2V0Q29udGV4dCIsImNvdW50QmluZGluZyIsImJpbmRQcm9wZXJ0eSIsIiQkZ3JvdXBJZCIsImJhdGNoR3JvdXBJZCIsIiRmaWx0ZXIiLCIkc2VhcmNoIiwic2VhcmNoIiwibm9ybWFsaXplU2VhcmNoVGVybSIsInVuZGVmaW5lZCIsInByb21pc2VWYWx1ZSIsInJlcXVlc3RWYWx1ZSIsInN1Ym1pdEJhdGNoIiwidmFsdWUiLCJkZXN0cm95IiwiZ2V0Q291bnRGb3JtYXR0ZWQiLCJpQ291bnQiLCJvQ291bnRGb3JtYXR0ZXIiLCJOdW1iZXJGb3JtYXQiLCJnZXRJbnRlZ2VySW5zdGFuY2UiLCJncm91cGluZ0VuYWJsZWQiLCJmb3JtYXQiLCJpZ25vcmVQcm9wZXJ0aWVzIiwib1RhYmxlRGVmaW5pdGlvbiIsImdldFRhYmxlRGVmaW5pdGlvbiIsImFJZ25vcmVQcm9wZXJ0aWVzIiwiZW5hYmxlQW5hbHl0aWNzIiwiZW5hYmxlQmFzaWNTZWFyY2giLCJjb250cm9sIiwidHlwZSIsIkZpbHRlclV0aWxzIiwiZ2V0RmlsdGVyIiwiaWdub3JlZFByb3BlcnRpZXMiLCJ0YXJnZXRDb250cm9sIiwib0NvbnRyb2wiLCJwMTNuTW9kZSIsImdldFAxM25Nb2RlIiwicDEzblByb3BlcnRpZXMiLCJpbmNsdWRlcyIsImlzQSIsImdldEVuaGFuY2VkRmV0Y2hlZFByb3BlcnR5SW5mb3MiLCJmaWx0ZXIiLCJwcm9wZXJ0eSIsImZpbHRlcmFibGUiLCJEZWxlZ2F0ZVV0aWwiLCJnZXRDdXN0b21EYXRhIiwib0NvbnRyb2xQcm9wZXJ0eSIsInByb3BlcnRpZXNNZXRhZGF0YSIsImdldEFsbEZpbHRlckluZm8iLCJvSUZpbHRlckluZm8iLCJmaW5kVmFsdWVzRm9yS2V5UmVjdXJzaXZlbHkiLCJvYmoiLCJrZXkiLCJsaXN0IiwicHVzaCIsImNoaWxkcmVuIiwiT2JqZWN0Iiwia2V5cyIsImNoaWxkIiwiZmluZFZhbHVlcyIsImlzRmlsdGVyRWxpZ2libGVGb3JPcHRpbWlzdGljQmF0Y2giLCJtZGNUYWJsZSIsImZpbHRlckJhciIsImZpbHRlcnNGcm9tVGFibGUiLCJmaWx0ZXJzQ29uZGl0aW9ucyIsImdldENvbmRpdGlvbnMiLCJmaWx0ZXJzQ29uZGl0aW9uc1BhdGhzIiwidGFibGVSb3dCaW5kaW5nc0luZm9QYXRoIiwibWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiZmlsdGVyUHJvcGVydGllc0FzUG90ZW50aWFsbHlTZW5zaXRpdmVEYXRhT3JEYXRlVHlwZSIsImZpbHRlcnNQYXRoc0Zyb21UYWJsZSIsImdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSIsImZpbHRlcnNQYXRoc0Zyb21GaWx0ZXJCYXIiLCJnZXRGaWx0ZXJzUGF0aHNGcm9tRmlsdGVyQmFyIiwiZWRtRGF0ZVR5cGVzIiwiYWxsRmlsdGVyc1BhdGhzIiwicG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9uIiwiZ2V0T2JqZWN0IiwiZmlsdGVyc0Fubm90YXRpb25zUGF0aHMiLCJmaWx0ZXJQYXRoIiwiZ2V0UmVmZXJlbmNlUGF0aHNGb3JGaWx0ZXJzIiwiZ2V0RmlsdGVycyIsImZpbHRlclJlc3VsdCIsImxlbmd0aCIsImkiLCJsZWZ0IiwicmlnaHQiLCJ3aGVuQm91bmQiLCJfZ2V0T3JDcmVhdGVCb3VuZFByb21pc2VJbmZvIiwicHJvbWlzZSIsIm9uVGFibGVCb3VuZCIsIm9Cb3VuZFByb21pc2VJbmZvIiwicmVzb2x2ZSIsImZuUmVzb2x2ZSIsIlByb21pc2UiLCJpc0JvdW5kIiwidXBkYXRlRmlsdGVyc0ZvckV4dGVybmFsSUQiLCJlbnRpdHlUeXBlUGF0aCIsImNvbmRpdGlvbiIsIm5lc3RlZEZpbHRlcnMiLCJleHRlcm5hbElkUHJvcFBhdGgiLCJzUGF0aCIsIiRQYXRoIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5SW5mbyB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0xpc3RSZXBvcnQvRmlsdGVyQmFyXCI7XG5pbXBvcnQgRGVsZWdhdGVVdGlsIGZyb20gXCJzYXAvZmUvbWFjcm9zL0RlbGVnYXRlVXRpbFwiO1xuaW1wb3J0IHR5cGUgeyBJRmlsdGVyQ29udHJvbCB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IEZpbHRlclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJVdGlsc1wiO1xuaW1wb3J0IHR5cGUgUXVpY2tGaWx0ZXJTZWxlY3RvciBmcm9tIFwic2FwL2ZlL21hY3Jvcy90YWJsZS9RdWlja0ZpbHRlclNlbGVjdG9yXCI7XG5pbXBvcnQgdHlwZSBUYWJsZUFQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy90YWJsZS9UYWJsZUFQSVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IE51bWJlckZvcm1hdCBmcm9tIFwic2FwL3VpL2NvcmUvZm9ybWF0L051bWJlckZvcm1hdFwiO1xuaW1wb3J0IHR5cGUgTURDQ2hhcnQgZnJvbSBcInNhcC91aS9tZGMvQ2hhcnRcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IE1EQ1RhYmxlUHJvcGVydHlJbmZvIGFzIFRhYmxlUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIHsgQ29uZGl0aW9uT2JqZWN0IH0gZnJvbSBcInNhcC91aS9tZGMvY29uZGl0aW9uL0NvbmRpdGlvblwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCBGaWx0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IENvbGxlY3Rpb25CaW5kaW5nSW5mb0FQSSBmcm9tIFwiLi4vQ29sbGVjdGlvbkJpbmRpbmdJbmZvXCI7XG5cbnR5cGUgRmlsdGVySW5mbyA9IHtcblx0ZmlsdGVyczogRmlsdGVyW107XG5cdHNlYXJjaDogc3RyaW5nO1xuXHRiaW5kaW5nUGF0aDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgSW50ZXJuYWxCaW5kaW5nSW5mbyA9IHtcblx0cGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdGZpbHRlcnM6IEZpbHRlcltdO1xuXHRzZWFyY2g/OiBzdHJpbmcgfCBudWxsO1xuXHRiaW5kaW5nUGF0aD86IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIGdldEhpZGRlbkZpbHRlcnMob1RhYmxlOiBDb250cm9sKTogRmlsdGVyW10ge1xuXHRsZXQgYUZpbHRlcnM6IEZpbHRlcltdID0gW107XG5cdGNvbnN0IGhpZGRlbkZpbHRlcnMgPSBvVGFibGUuZGF0YShcImhpZGRlbkZpbHRlcnNcIik7XG5cdGlmIChoaWRkZW5GaWx0ZXJzICYmIEFycmF5LmlzQXJyYXkoaGlkZGVuRmlsdGVycy5wYXRocykpIHtcblx0XHRoaWRkZW5GaWx0ZXJzLnBhdGhzLmZvckVhY2goZnVuY3Rpb24gKG1QYXRoOiB7IGFubm90YXRpb25QYXRoOiBzdHJpbmcgfSkge1xuXHRcdFx0Y29uc3Qgb1N2RmlsdGVycyA9IENvbW1vblV0aWxzLmdldEZpbHRlcnNGcm9tQW5ub3RhdGlvbihvVGFibGUsIG1QYXRoLmFubm90YXRpb25QYXRoKTtcblx0XHRcdGFGaWx0ZXJzID0gYUZpbHRlcnMuY29uY2F0KG9TdkZpbHRlcnMpO1xuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBhRmlsdGVycztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGV4dGVybmFsIGZpbHRlcnMgY29uZmlndXJlZCBvbiB0aGUgdGFibGUuXG4gKiBAcGFyYW0gdGFibGUgVGhlIHRhYmxlXG4gKiBAcmV0dXJucyAgVGhlIGZpbHRlcnNcbiAqL1xuZnVuY3Rpb24gZ2V0RXh0ZXJuYWxGaWx0ZXJzKHRhYmxlOiBUYWJsZSk6IEZpbHRlcltdIHtcblx0bGV0IGZpbHRlcnM6IEZpbHRlcltdID0gZ2V0SGlkZGVuRmlsdGVycyh0YWJsZSk7XG5cdGNvbnN0IHF1aWNrRmlsdGVyID0gdGFibGUuZ2V0UXVpY2tGaWx0ZXIoKSBhcyBRdWlja0ZpbHRlclNlbGVjdG9yO1xuXHRpZiAocXVpY2tGaWx0ZXIpIHtcblx0XHRmaWx0ZXJzID0gZmlsdGVycy5jb25jYXQoQ29tbW9uVXRpbHMuZ2V0RmlsdGVyc0Zyb21Bbm5vdGF0aW9uKHRhYmxlLCBxdWlja0ZpbHRlci5nZXRTZWxlY3RlZEtleSgpKSk7XG5cdH1cblx0cmV0dXJuIGZpbHRlcnM7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjb3VudCBvZiB0aGUgT0RhdGEgbGlzdCBiaW5kaW5nLlxuICogQHBhcmFtIHRhYmxlIFRoZSB0YWJsZSB1c2VkIHRvIGdldCB0aGUgaW5pdGlhbCBPRGF0YSBsaXN0IGJpbmRpbmdcbiAqIEBwYXJhbSBwYWdlQmluZGluZ0NvbnRleHQgVGhlIGJpbmRpbmcgY29udGV4dCBvZiB0aGUgcGFnZVxuICogQHBhcmFtIHBhcmFtcyBDb250YWlucyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSBwYXJhbXMuYmF0Y2hHcm91cElkIFRoZSBncm91cElkIG9mIHRoZSBiYXRjaCByZXF1ZXN0XG4gKiBAcGFyYW0gcGFyYW1zLmFkZGl0aW9uYWxGaWx0ZXJzIFRoZSBhZGRpdGlvbmFsIGZpbHRlcnMgdG8gYXBwbHkgdG8gdGhlIG9yaWdpbmFsIE9EYXRhIGxpc3QgYmluZGluZ1xuICogQHJldHVybnMgVGhlIGNvdW50XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldExpc3RCaW5kaW5nRm9yQ291bnQoXG5cdHRhYmxlOiBUYWJsZSxcblx0cGFnZUJpbmRpbmdDb250ZXh0OiBDb250ZXh0IHwgbnVsbCB8IHVuZGVmaW5lZCxcblx0cGFyYW1zOiB7IGJhdGNoR3JvdXBJZD86IHN0cmluZzsgYWRkaXRpb25hbEZpbHRlcnM/OiBGaWx0ZXJbXTsgaXRlbUtleT86IHN0cmluZyB9XG4pOiBQcm9taXNlPG51bWJlcj4ge1xuXHRjb25zdCBvRGF0YU1vZGVsID0gdGFibGUuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsO1xuXHRjb25zdCB0YWJsZUFQSSA9IHRhYmxlLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJO1xuXHRjb25zdCBmaWx0ZXJJbmZvID0gdGFibGVVdGlscy5nZXRGaWx0ZXJJbmZvKHRhYmxlKTtcblx0Y29uc3QgZmlsdGVycyA9IChBcnJheS5pc0FycmF5KHBhcmFtcy5hZGRpdGlvbmFsRmlsdGVycykgPyBwYXJhbXMuYWRkaXRpb25hbEZpbHRlcnMgOiBbXSlcblx0XHQuY29uY2F0KGZpbHRlckluZm8uZmlsdGVycylcblx0XHQuY29uY2F0KHRhYmxlVXRpbHMuZ2V0UDEzbkZpbHRlcnModGFibGUpKTtcblx0Y29uc3QgYmluZGluZ0luZm8gPSB7XG5cdFx0cGF0aDogZmlsdGVySW5mby5iaW5kaW5nUGF0aCA/IGZpbHRlckluZm8uYmluZGluZ1BhdGggOiB0YWJsZUFQSS5nZXRSb3dDb2xsZWN0aW9uUGF0aCgpLFxuXHRcdGZpbHRlcnM6IG5ldyBGaWx0ZXIoe1xuXHRcdFx0ZmlsdGVyczogZmlsdGVycyxcblx0XHRcdGFuZDogdHJ1ZVxuXHRcdH0pXG5cdH07XG5cdHRhYmxlXG5cdFx0LmdldFBhcmVudCgpXG5cdFx0Py5maXJlRXZlbnQoXCJiZWZvcmVSZWJpbmRUYWJsZVwiLCB7XG5cdFx0XHRjb2xsZWN0aW9uQmluZGluZ0luZm86IG5ldyBDb2xsZWN0aW9uQmluZGluZ0luZm9BUEkoYmluZGluZ0luZm8pLFxuXHRcdFx0cXVpY2tGaWx0ZXJLZXk6IHBhcmFtcy5pdGVtS2V5XG5cdFx0fSk7XG5cblx0Ly8gTmVlZCB0byBwYXNzIGJ5IGEgdGVtcG9yYXJ5IExpc3RCaW5kaW5nIGluIG9yZGVyIHRvIGdldCAkZmlsdGVyIHF1ZXJ5IG9wdGlvbiAoYXMgc3RyaW5nKSB0aGFua3MgdG8gZmV0Y2hGaWx0ZXIgb2YgT2RhdGFMaXN0QmluZGluZ1xuXHRjb25zdCBsaXN0QmluZGluZ1BhdGggPVxuXHRcdHBhZ2VCaW5kaW5nQ29udGV4dCAmJiAhYmluZGluZ0luZm8ucGF0aC5zdGFydHNXaXRoKFwiL1wiKSA/IGAke3BhZ2VCaW5kaW5nQ29udGV4dC5nZXRQYXRoKCl9LyR7YmluZGluZ0luZm8ucGF0aH1gIDogYmluZGluZ0luZm8ucGF0aDtcblx0Y29uc3QgbGlzdEJpbmRpbmcgPSBvRGF0YU1vZGVsLmJpbmRMaXN0KGxpc3RCaW5kaW5nUGF0aCwgdGFibGUuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0LCBbXSwgYmluZGluZ0luZm8uZmlsdGVycyk7XG5cdGNvbnN0IHN0cmluZ0ZpbHRlcnM6IHN0cmluZ1tdID0gYXdhaXQgKGxpc3RCaW5kaW5nIGFzIE9EYXRhTGlzdEJpbmRpbmcgJiB7IGZldGNoRmlsdGVyOiBGdW5jdGlvbiB9KS5mZXRjaEZpbHRlcihcblx0XHRsaXN0QmluZGluZy5nZXRDb250ZXh0KClcblx0KTtcblx0Y29uc3QgY291bnRCaW5kaW5nID0gb0RhdGFNb2RlbC5iaW5kUHJvcGVydHkoYCR7bGlzdEJpbmRpbmcuZ2V0UGF0aCgpfS8kY291bnRgLCBsaXN0QmluZGluZy5nZXRDb250ZXh0KCksIHtcblx0XHQkJGdyb3VwSWQ6IHBhcmFtcy5iYXRjaEdyb3VwSWQgPz8gXCIkYXV0b1wiLFxuXHRcdCRmaWx0ZXI6IHN0cmluZ0ZpbHRlcnNbMF0sXG5cdFx0JHNlYXJjaDogZmlsdGVySW5mby5zZWFyY2ggPyBDb21tb25VdGlscy5ub3JtYWxpemVTZWFyY2hUZXJtKGZpbHRlckluZm8uc2VhcmNoKSA6IHVuZGVmaW5lZFxuXHR9KTtcblx0Y29uc3QgcHJvbWlzZVZhbHVlID0gY291bnRCaW5kaW5nLnJlcXVlc3RWYWx1ZSgpO1xuXHRpZiAocGFyYW1zLmJhdGNoR3JvdXBJZCAmJiBwYXJhbXMuYmF0Y2hHcm91cElkICE9PSBcIiRhdXRvXCIpIHtcblx0XHRvRGF0YU1vZGVsLnN1Ym1pdEJhdGNoKHBhcmFtcy5iYXRjaEdyb3VwSWQpO1xuXHR9XG5cdGNvbnN0IHZhbHVlID0gYXdhaXQgcHJvbWlzZVZhbHVlO1xuXHRjb3VudEJpbmRpbmcuZGVzdHJveSgpO1xuXHRsaXN0QmluZGluZy5kZXN0cm95KCk7XG5cdHJldHVybiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGdldENvdW50Rm9ybWF0dGVkKGlDb3VudDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgb0NvdW50Rm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSh7IGdyb3VwaW5nRW5hYmxlZDogdHJ1ZSB9KTtcblx0cmV0dXJuIG9Db3VudEZvcm1hdHRlci5mb3JtYXQoaUNvdW50KTtcbn1cbmZ1bmN0aW9uIGdldEZpbHRlckluZm8ob1RhYmxlOiBUYWJsZSwgaWdub3JlUHJvcGVydGllcz86IHN0cmluZ1tdKTogSW50ZXJuYWxCaW5kaW5nSW5mbyB7XG5cdGNvbnN0IG9UYWJsZURlZmluaXRpb24gPSAob1RhYmxlLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJKS5nZXRUYWJsZURlZmluaXRpb24oKTtcblx0bGV0IGFJZ25vcmVQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IGlnbm9yZVByb3BlcnRpZXMgfHwgW107XG5cblx0aWYgKG9UYWJsZURlZmluaXRpb24uZW5hYmxlQW5hbHl0aWNzKSB7XG5cdFx0aWYgKCFvVGFibGVEZWZpbml0aW9uLmVuYWJsZUJhc2ljU2VhcmNoKSB7XG5cdFx0XHQvLyBTZWFyY2ggaXNuJ3QgYWxsb3cgYXMgYSAkYXBwbHkgdHJhbnNmb3JtYXRpb24gZm9yIHRoaXMgdGFibGVcblx0XHRcdGFJZ25vcmVQcm9wZXJ0aWVzID0gYUlnbm9yZVByb3BlcnRpZXMuY29uY2F0KFtcInNlYXJjaFwiXSk7XG5cdFx0fVxuXHRcdGFJZ25vcmVQcm9wZXJ0aWVzID0gYUlnbm9yZVByb3BlcnRpZXMuY29uY2F0KFtcIiRlZGl0U3RhdGVcIl0pO1xuXHR9IGVsc2UgaWYgKG9UYWJsZURlZmluaXRpb24uY29udHJvbC50eXBlID09PSBcIlRyZWVUYWJsZVwiKSB7XG5cdFx0YUlnbm9yZVByb3BlcnRpZXMgPSBhSWdub3JlUHJvcGVydGllcy5jb25jYXQoW1wiJGVkaXRTdGF0ZVwiXSk7XG5cdH1cblx0cmV0dXJuIEZpbHRlclV0aWxzLmdldEZpbHRlckluZm8ob1RhYmxlLmdldEZpbHRlcigpLCB7XG5cdFx0aWdub3JlZFByb3BlcnRpZXM6IGFJZ25vcmVQcm9wZXJ0aWVzLFxuXHRcdHRhcmdldENvbnRyb2w6IG9UYWJsZVxuXHR9KTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYWxsIGZpbHRlcnMgY29uZmlndXJlZCBpbiB0aGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZyBvZiB0aGUgdGFibGUgb3IgY2hhcnQuXG4gKiBAcGFyYW0gb0NvbnRyb2wgVGFibGUgb3IgQ2hhcnQgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEZpbHRlcnMgY29uZmlndXJlZCBpbiB0aGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZyBvZiB0aGUgdGFibGUgb3IgY2hhcnRcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGdldFAxM25GaWx0ZXJzKG9Db250cm9sOiBUYWJsZSB8IE1EQ0NoYXJ0KTogRmlsdGVyW10ge1xuXHRjb25zdCBwMTNuTW9kZSA9IG9Db250cm9sLmdldFAxM25Nb2RlKCk7XG5cdGxldCBwMTNuUHJvcGVydGllczogVGFibGVQcm9wZXJ0eUluZm9bXSB8IFByb3BlcnR5SW5mb1tdIHwgdW5kZWZpbmVkO1xuXHRpZiAocDEzbk1vZGUgJiYgcDEzbk1vZGUuaW5jbHVkZXMoXCJGaWx0ZXJcIikpIHtcblx0XHRpZiAob0NvbnRyb2wuaXNBPFRhYmxlPihcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdGNvbnN0IHRhYmxlQVBJID0gb0NvbnRyb2wuZ2V0UGFyZW50KCkgYXMgVGFibGVBUEk7XG5cdFx0XHRwMTNuUHJvcGVydGllcyA9IHRhYmxlQVBJLmdldEVuaGFuY2VkRmV0Y2hlZFByb3BlcnR5SW5mb3MoKS5maWx0ZXIoZnVuY3Rpb24gKHByb3BlcnR5KSB7XG5cdFx0XHRcdHJldHVybiBwcm9wZXJ0eT8uZmlsdGVyYWJsZSAhPT0gZmFsc2U7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cDEzblByb3BlcnRpZXMgPSAoRGVsZWdhdGVVdGlsLmdldEN1c3RvbURhdGE8UHJvcGVydHlJbmZvW10+KG9Db250cm9sLCBcInNhcF9mZV9Db250cm9sRGVsZWdhdGVfcHJvcGVydHlJbmZvTWFwXCIpIHx8IFtdKS5maWx0ZXIoXG5cdFx0XHRcdGZ1bmN0aW9uIChvQ29udHJvbFByb3BlcnR5OiBQcm9wZXJ0eUluZm8pIHtcblx0XHRcdFx0XHRyZXR1cm4gb0NvbnRyb2xQcm9wZXJ0eSAmJiAhKG9Db250cm9sUHJvcGVydHkuZmlsdGVyYWJsZSA9PT0gZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdH1cblx0XHRjb25zdCBmaWx0ZXJJbmZvID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVySW5mbyhvQ29udHJvbCBhcyB1bmtub3duIGFzIElGaWx0ZXJDb250cm9sLCB7XG5cdFx0XHRwcm9wZXJ0aWVzTWV0YWRhdGE6IHAxM25Qcm9wZXJ0aWVzIGFzIFByb3BlcnR5SW5mb1tdXG5cdFx0fSk7XG5cdFx0aWYgKGZpbHRlckluZm8gJiYgZmlsdGVySW5mby5maWx0ZXJzKSB7XG5cdFx0XHRyZXR1cm4gZmlsdGVySW5mby5maWx0ZXJzO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIGdldEFsbEZpbHRlckluZm8ob1RhYmxlOiBUYWJsZSwgaWdub3JlUHJvcGVydGllcz86IHN0cmluZ1tdKTogSW50ZXJuYWxCaW5kaW5nSW5mbyB7XG5cdGNvbnN0IG9JRmlsdGVySW5mbyA9IHRhYmxlVXRpbHMuZ2V0RmlsdGVySW5mbyhvVGFibGUsIGlnbm9yZVByb3BlcnRpZXMpO1xuXHRyZXR1cm4ge1xuXHRcdGZpbHRlcnM6IG9JRmlsdGVySW5mby5maWx0ZXJzLmNvbmNhdChnZXRFeHRlcm5hbEZpbHRlcnMob1RhYmxlKSwgdGFibGVVdGlscy5nZXRQMTNuRmlsdGVycyhvVGFibGUpKSxcblx0XHRzZWFyY2g6IG9JRmlsdGVySW5mby5zZWFyY2gsXG5cdFx0YmluZGluZ1BhdGg6IG9JRmlsdGVySW5mby5iaW5kaW5nUGF0aFxuXHR9O1xufVxuXG4vKipcbiAqIEZpbmQgYSB2YWx1ZSBpbiBhbiBvYmplY3QuXG4gKiBAcGFyYW0gb2JqIFRoZSBvYmplY3QgdG8gbG9vayBpbnRvXG4gKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoXG4gKiBAcGFyYW0gbGlzdCBBbiBhcnJheSB0byByZXR1cm4gaWYgb2JqIGlzIHVuZGVmaW5lZFxuICogQHJldHVybnMgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBrZXlzIGNvbnRlbnRcbiAqL1xuZnVuY3Rpb24gZmluZFZhbHVlc0ZvcktleVJlY3Vyc2l2ZWx5KG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogc3RyaW5nLCBsaXN0OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcblx0aWYgKG9ialtrZXldKSB7XG5cdFx0bGlzdC5wdXNoKG9ialtrZXldIGFzIHN0cmluZyk7XG5cdH1cblx0Y29uc3QgY2hpbGRyZW4gPSBPYmplY3Qua2V5cyhvYmopO1xuXHRmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG5cdFx0aWYgKHR5cGVvZiBvYmpbY2hpbGRdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRsaXN0ID0gbGlzdC5jb25jYXQoZmluZFZhbHVlc0ZvcktleVJlY3Vyc2l2ZWx5KG9ialtjaGlsZF0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleSwgW10pKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGxpc3Q7XG59XG5cbi8qKlxuICogRmluZCBhIHZhbHVlIGludG8gYW4gb2JqZWN0LlxuICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGxvb2sgaW50b1xuICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaFxuICogQHJldHVybnMgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBrZXlzIGNvbnRlbnRcbiAqL1xuZnVuY3Rpb24gZmluZFZhbHVlcyhvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZyk6IHN0cmluZ1tdIHtcblx0cmV0dXJuIGZpbmRWYWx1ZXNGb3JLZXlSZWN1cnNpdmVseShvYmosIGtleSwgW10pO1xufVxuXG4vKipcbiAqIENoZWNrIGFsbCBmaWx0ZXIgY29uZGl0aW9ucyBmb3IgZGF0ZSB0eXBlcyBvciBzZW5zaXRpdmUgZGF0YS5cbiAqIEBwYXJhbSBtZGNUYWJsZSBUYWJsZSBvciBDaGFydCBpbnN0YW5jZVxuICogQHBhcmFtIGZpbHRlckJhciBGaWx0ZXJCYXJcbiAqIEByZXR1cm5zIFRydWUgaWYgb25lIGZpbHRlciBoYXMgYSBkYXRlIHR5cGUgb3IgYSBzZW5zaXRpdmUgZGF0YVxuICovXG5mdW5jdGlvbiBpc0ZpbHRlckVsaWdpYmxlRm9yT3B0aW1pc3RpY0JhdGNoKG1kY1RhYmxlOiBUYWJsZSwgZmlsdGVyQmFyOiBGaWx0ZXJCYXIgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0aWYgKCFmaWx0ZXJCYXIpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Y29uc3QgZmlsdGVyc0Zyb21UYWJsZSA9IHRhYmxlVXRpbHMuZ2V0QWxsRmlsdGVySW5mbyhtZGNUYWJsZSkgYXMgdW5rbm93biBhcyBGaWx0ZXJJbmZvO1xuXHRjb25zdCBmaWx0ZXJzQ29uZGl0aW9ucyA9IGZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdGNvbnN0IGZpbHRlcnNDb25kaXRpb25zUGF0aHMgPSBPYmplY3Qua2V5cyhmaWx0ZXJzQ29uZGl0aW9ucyk7XG5cdGNvbnN0IHRhYmxlUm93QmluZGluZ3NJbmZvUGF0aCA9IG1kY1RhYmxlLmRhdGEoXCJtZXRhUGF0aFwiKTtcblx0Y29uc3QgbWV0YU1vZGVsID0gbWRjVGFibGUuZ2V0TW9kZWwoKT8uZ2V0TWV0YU1vZGVsKCk7XG5cdGxldCBmaWx0ZXJQcm9wZXJ0aWVzQXNQb3RlbnRpYWxseVNlbnNpdGl2ZURhdGFPckRhdGVUeXBlID0gZmFsc2U7XG5cdGNvbnN0IGZpbHRlcnNQYXRoc0Zyb21UYWJsZSA9IGdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSh0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGgsIGZpbHRlcnNGcm9tVGFibGUpO1xuXHRjb25zdCBmaWx0ZXJzUGF0aHNGcm9tRmlsdGVyQmFyID0gZ2V0RmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhcih0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGgsIGZpbHRlcnNDb25kaXRpb25zUGF0aHMpO1xuXHRjb25zdCBlZG1EYXRlVHlwZXMgPSBbXCJFZG0uRGF0ZVwiLCBcIkVkbS5EYXRlVGltZU9mZnNldFwiLCBcIkVkbS5UaW1lT2ZEYXlcIl07XG5cdGNvbnN0IGFsbEZpbHRlcnNQYXRocyA9IGZpbHRlcnNQYXRoc0Zyb21GaWx0ZXJCYXIuY29uY2F0KGZpbHRlcnNQYXRoc0Zyb21UYWJsZSk7XG5cdGZvciAoY29uc3QgcG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9uIG9mIGFsbEZpbHRlcnNQYXRocykge1xuXHRcdGlmIChcblx0XHRcdG1ldGFNb2RlbD8uZ2V0T2JqZWN0KGAke3BvdGVudGlhbGx5U2Vuc2l0aXZlQW5ub3RhdGlvbn1AY29tLnNhcC52b2NhYnVsYXJpZXMuUGVyc29uYWxEYXRhLnYxLklzUG90ZW50aWFsbHlTZW5zaXRpdmVgKSB8fFxuXHRcdFx0bWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7cG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9ufUBjb20uc2FwLnZvY2FidWxhcmllcy5QZXJzb25hbERhdGEudjEuSXNQb3RlbnRpYWxseVBlcnNvbmFsYClcblx0XHQpIHtcblx0XHRcdGZpbHRlclByb3BlcnRpZXNBc1BvdGVudGlhbGx5U2Vuc2l0aXZlRGF0YU9yRGF0ZVR5cGUgPSB0cnVlO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGlmIChlZG1EYXRlVHlwZXMuaW5jbHVkZXMobWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7cG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9ufS8kVHlwZWApKSkge1xuXHRcdFx0ZmlsdGVyUHJvcGVydGllc0FzUG90ZW50aWFsbHlTZW5zaXRpdmVEYXRhT3JEYXRlVHlwZSA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZpbHRlclByb3BlcnRpZXNBc1BvdGVudGlhbGx5U2Vuc2l0aXZlRGF0YU9yRGF0ZVR5cGU7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYW5ub3RhdGlvbiBwYXRocyBvZiBhbGwgZmlsdGVycyBvZiB0aGUgRmlsdGVyIEJhci5cbiAqIEBwYXJhbSB0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGggVGhlIHRhYmxlIG1ldGFQYXRoXG4gKiBAcGFyYW0gZmlsdGVyc0NvbmRpdGlvbnNQYXRocyBUaGUgcGF0aHMgb2YgYWxsIGZpbHRlcnMgY29uZGl0aW9uc1xuICogQHJldHVybnMgQW4gYXJyYXkgb2YgcGF0aHMgb2YgYWxsIGZpbHRlcnNcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhcih0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGg6IHN0cmluZywgZmlsdGVyc0NvbmRpdGlvbnNQYXRoczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG5cdGNvbnN0IGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXHRmb3IgKGNvbnN0IGZpbHRlclBhdGggb2YgZmlsdGVyc0NvbmRpdGlvbnNQYXRocykge1xuXHRcdGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzLnB1c2goYCR7dGFibGVSb3dCaW5kaW5nc0luZm9QYXRofS8ke2ZpbHRlclBhdGh9YCk7XG5cdH1cblx0cmV0dXJuIGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBhdGhzIG9mIGFsbCBmaWx0ZXJzIGNvbmRpdGlvbnMuXG4gKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgdG8gZ2V0IHRoZSBwYXRoc1xuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgcGF0aHMgY29uZGl0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRSZWZlcmVuY2VQYXRoc0ZvckZpbHRlcnMoZmlsdGVyOiBGaWx0ZXIpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG5cdGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXIuZ2V0RmlsdGVycygpO1xuXHRsZXQgZmlsdGVyUmVzdWx0ID0ge307XG5cdC8vIGZpbmQgYWxsIGZpbHRlcnMgaW4gbXVsdGkgZmlsdGVyc1xuXHRpZiAoZmlsdGVycykge1xuXHRcdGZpbHRlclJlc3VsdCA9IGdldFJlZmVyZW5jZVBhdGhzRm9yRmlsdGVycyhmaWx0ZXJzW2ZpbHRlcnMubGVuZ3RoIC0gMV0pO1xuXHRcdGZvciAobGV0IGkgPSBmaWx0ZXJzLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHRmaWx0ZXJSZXN1bHQgPSB7XG5cdFx0XHRcdGxlZnQ6IGdldFJlZmVyZW5jZVBhdGhzRm9yRmlsdGVycyhmaWx0ZXJzW2ldKSxcblx0XHRcdFx0cmlnaHQ6IGZpbHRlclJlc3VsdFxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhdGg6IGZpbHRlci5nZXRQYXRoKClcblx0XHR9O1xuXHR9XG5cdHJldHVybiBmaWx0ZXJSZXN1bHQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYW5ub3RhdGlvbiBwYXRocyBvZiBhbGwgdGFibGUgZmlsdGVycy5cbiAqIEBwYXJhbSB0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGggVGhlIHRhYmxlIG1ldGFQYXRoXG4gKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVycyB0byBjaGVjayBmb3IgcGF0aHNcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHBhdGhzIG9mIGFsbCBmaWx0ZXJzXG4gKi9cbmZ1bmN0aW9uIGdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSh0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGg6IHN0cmluZywgZmlsdGVyczogRmlsdGVySW5mbyk6IHN0cmluZ1tdIHtcblx0bGV0IHBhdGhzOiBzdHJpbmdbXTtcblx0Y29uc3QgZmlsdGVyc0Fubm90YXRpb25zUGF0aHM6IHN0cmluZ1tdID0gW107XG5cdGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMuZmlsdGVycykge1xuXHRcdHBhdGhzID0gZmluZFZhbHVlcyhnZXRSZWZlcmVuY2VQYXRoc0ZvckZpbHRlcnMoZmlsdGVyKSwgXCJwYXRoXCIpO1xuXHRcdGZvciAoY29uc3QgZmlsdGVyUGF0aCBvZiBwYXRocykge1xuXHRcdFx0ZmlsdGVyc0Fubm90YXRpb25zUGF0aHMucHVzaChgJHt0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGh9LyR7ZmlsdGVyUGF0aH1gKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgdGFibGUgaXRzZWxmIHdoZW4gdGhlIHRhYmxlIHdhcyBib3VuZC5cbiAqIEBwYXJhbSBvVGFibGUgVGhlIHRhYmxlIHRvIGNoZWNrIGZvciBiaW5kaW5nXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCB3aWxsIGJlIHJlc29sdmVkIHdoZW4gdGFibGUgaXMgYm91bmRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gd2hlbkJvdW5kKG9UYWJsZTogVGFibGUpOiBQcm9taXNlPFRhYmxlPiB7XG5cdHJldHVybiBfZ2V0T3JDcmVhdGVCb3VuZFByb21pc2VJbmZvKG9UYWJsZSkucHJvbWlzZTtcbn1cblxuLyoqXG4gKiBJZiBub3QgeWV0IGhhcHBlbmVkLCBpdCByZXNvbHZlcyB0aGUgdGFibGUgYm91bmQgcHJvbWlzZS5cbiAqIEBwYXJhbSBvVGFibGUgVGhlIHRhYmxlIHRoYXQgd2FzIGJvdW5kXG4gKi9cbmZ1bmN0aW9uIG9uVGFibGVCb3VuZChvVGFibGU6IFRhYmxlKTogdm9pZCB7XG5cdGNvbnN0IG9Cb3VuZFByb21pc2VJbmZvID0gX2dldE9yQ3JlYXRlQm91bmRQcm9taXNlSW5mbyhvVGFibGUpO1xuXHRpZiAob0JvdW5kUHJvbWlzZUluZm8ucmVzb2x2ZSkge1xuXHRcdG9Cb3VuZFByb21pc2VJbmZvLnJlc29sdmUob1RhYmxlKTtcblx0XHRvVGFibGUuZGF0YShcImJvdW5kUHJvbWlzZVJlc29sdmVcIiwgbnVsbCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gX2dldE9yQ3JlYXRlQm91bmRQcm9taXNlSW5mbyhvVGFibGU6IFRhYmxlKTogeyBwcm9taXNlOiBQcm9taXNlPFRhYmxlPjsgcmVzb2x2ZTogRnVuY3Rpb24gfSB7XG5cdGlmICghb1RhYmxlLmRhdGEoXCJib3VuZFByb21pc2VcIikpIHtcblx0XHRsZXQgZm5SZXNvbHZlITogRnVuY3Rpb247XG5cdFx0b1RhYmxlLmRhdGEoXG5cdFx0XHRcImJvdW5kUHJvbWlzZVwiLFxuXHRcdFx0bmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcblx0XHRcdFx0Zm5SZXNvbHZlID0gcmVzb2x2ZTtcblx0XHRcdH0pXG5cdFx0KTtcblx0XHRpZiAoKG9UYWJsZSBhcyB1bmtub3duIGFzIHsgaXNCb3VuZD86ICgpID0+IGJvb2xlYW4gfSkuaXNCb3VuZD8uKCkpIHtcblx0XHRcdGZuUmVzb2x2ZShvVGFibGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvVGFibGUuZGF0YShcImJvdW5kUHJvbWlzZVJlc29sdmVcIiwgZm5SZXNvbHZlKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHsgcHJvbWlzZTogb1RhYmxlLmRhdGEoXCJib3VuZFByb21pc2VcIiksIHJlc29sdmU6IG9UYWJsZS5kYXRhKFwiYm91bmRQcm9taXNlUmVzb2x2ZVwiKSB9O1xufVxuXG5mdW5jdGlvbiB1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRChtZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsLCBmaWx0ZXJzOiBDb25kaXRpb25PYmplY3RbXSwgZW50aXR5VHlwZVBhdGg6IHN0cmluZyk6IHZvaWQge1xuXHRmaWx0ZXJzPy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcblx0XHRjb25zdCBuZXN0ZWRGaWx0ZXJzID0gY29uZGl0aW9uLmdldEZpbHRlcnMoKTtcblxuXHRcdGlmIChuZXN0ZWRGaWx0ZXJzKSB7XG5cdFx0XHR1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRChtZXRhTW9kZWwsIG5lc3RlZEZpbHRlcnMsIGVudGl0eVR5cGVQYXRoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgZXh0ZXJuYWxJZFByb3BQYXRoID0gbWV0YU1vZGVsLmdldE9iamVjdChlbnRpdHlUeXBlUGF0aCArIGNvbmRpdGlvbi5zUGF0aCArIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5FeHRlcm5hbElEXCIpXG5cdFx0XHRcdD8uJFBhdGg7XG5cdFx0XHRpZiAoZXh0ZXJuYWxJZFByb3BQYXRoKSB7XG5cdFx0XHRcdGNvbmRpdGlvbi5zUGF0aCA9IGV4dGVybmFsSWRQcm9wUGF0aDtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xufVxuXG5jb25zdCB0YWJsZVV0aWxzID0ge1xuXHRnZXRDb3VudEZvcm1hdHRlZDogZ2V0Q291bnRGb3JtYXR0ZWQsXG5cdGdldEhpZGRlbkZpbHRlcnM6IGdldEhpZGRlbkZpbHRlcnMsXG5cdGdldExpc3RCaW5kaW5nRm9yQ291bnQ6IGdldExpc3RCaW5kaW5nRm9yQ291bnQsXG5cdGdldEZpbHRlckluZm86IGdldEZpbHRlckluZm8sXG5cdGdldFAxM25GaWx0ZXJzOiBnZXRQMTNuRmlsdGVycyxcblx0Z2V0QWxsRmlsdGVySW5mbzogZ2V0QWxsRmlsdGVySW5mbyxcblx0aXNGaWx0ZXJFbGlnaWJsZUZvck9wdGltaXN0aWNCYXRjaDogaXNGaWx0ZXJFbGlnaWJsZUZvck9wdGltaXN0aWNCYXRjaCxcblx0d2hlbkJvdW5kOiB3aGVuQm91bmQsXG5cdG9uVGFibGVCb3VuZDogb25UYWJsZUJvdW5kLFxuXHR1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRDogdXBkYXRlRmlsdGVyc0ZvckV4dGVybmFsSURcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHRhYmxlVXRpbHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFrQ0EsU0FBU0EsZ0JBQWdCQSxDQUFDQyxNQUFlLEVBQVk7SUFDcEQsSUFBSUMsUUFBa0IsR0FBRyxFQUFFO0lBQzNCLE1BQU1DLGFBQWEsR0FBR0YsTUFBTSxDQUFDRyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2xELElBQUlELGFBQWEsSUFBSUUsS0FBSyxDQUFDQyxPQUFPLENBQUNILGFBQWEsQ0FBQ0ksS0FBSyxDQUFDLEVBQUU7TUFDeERKLGFBQWEsQ0FBQ0ksS0FBSyxDQUFDQyxPQUFPLENBQUMsVUFBVUMsS0FBaUMsRUFBRTtRQUN4RSxNQUFNQyxVQUFVLEdBQUdDLFdBQVcsQ0FBQ0Msd0JBQXdCLENBQUNYLE1BQU0sRUFBRVEsS0FBSyxDQUFDSSxjQUFjLENBQUM7UUFDckZYLFFBQVEsR0FBR0EsUUFBUSxDQUFDWSxNQUFNLENBQUNKLFVBQVUsQ0FBQztNQUN2QyxDQUFDLENBQUM7SUFDSDtJQUNBLE9BQU9SLFFBQVE7RUFDaEI7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNBLFNBQVNhLGtCQUFrQkEsQ0FBQ0MsS0FBWSxFQUFZO0lBQ25ELElBQUlDLE9BQWlCLEdBQUdqQixnQkFBZ0IsQ0FBQ2dCLEtBQUssQ0FBQztJQUMvQyxNQUFNRSxXQUFXLEdBQUdGLEtBQUssQ0FBQ0csY0FBYyxDQUFDLENBQXdCO0lBQ2pFLElBQUlELFdBQVcsRUFBRTtNQUNoQkQsT0FBTyxHQUFHQSxPQUFPLENBQUNILE1BQU0sQ0FBQ0gs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
|
|
330
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZXRIaWRkZW5GaWx0ZXJzIiwib1RhYmxlIiwiYUZpbHRlcnMiLCJoaWRkZW5GaWx0ZXJzIiwiZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsInBhdGhzIiwiZm9yRWFjaCIsIm1QYXRoIiwib1N2RmlsdGVycyIsIkNvbW1vblV0aWxzIiwiZ2V0RmlsdGVyc0Zyb21Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJjb25jYXQiLCJnZXRFeHRlcm5hbEZpbHRlcnMiLCJ0YWJsZSIsImZpbHRlcnMiLCJxdWlja0ZpbHRlciIsImdldFF1aWNrRmlsdGVyIiwiZ2V0U2VsZWN0ZWRLZXkiLCJnZXRMaXN0QmluZGluZ0ZvckNvdW50IiwicGFnZUJpbmRpbmdDb250ZXh0IiwicGFyYW1zIiwib0RhdGFNb2RlbCIsImdldE1vZGVsIiwidGFibGVBUEkiLCJnZXRQYXJlbnQiLCJmaWx0ZXJJbmZvIiwidGFibGVVdGlscyIsImdldEZpbHRlckluZm8iLCJhZGRpdGlvbmFsRmlsdGVycyIsImdldFAxM25GaWx0ZXJzIiwiZ2V0RGF0YVN0YXRlSW5kaWNhdG9yIiwiaXNGaWx0ZXJpbmciLCJiaW5kaW5nSW5mb0Jhc2UiLCJUYWJsZURlbGVnYXRlQmFzZSIsInVwZGF0ZUJpbmRpbmdJbmZvIiwiYXBwbHkiLCJnZXRDb250cm9sRGVsZWdhdGUiLCJiaW5kaW5nSW5mbyIsInBhdGgiLCJiaW5kaW5nUGF0aCIsImdldFJvd0NvbGxlY3Rpb25QYXRoIiwiRmlsdGVyIiwiYW5kIiwiZmlyZUV2ZW50IiwiY29sbGVjdGlvbkJpbmRpbmdJbmZvIiwiQ29sbGVjdGlvbkJpbmRpbmdJbmZvQVBJIiwicXVpY2tGaWx0ZXJLZXkiLCJpdGVtS2V5IiwibGlzdEJpbmRpbmdQYXRoIiwic3RhcnRzV2l0aCIsImdldFBhdGgiLCJsaXN0QmluZGluZyIsImJpbmRMaXN0IiwiZ2V0QmluZGluZ0NvbnRleHQiLCJzdHJpbmdGaWx0ZXJzIiwiZmV0Y2hGaWx0ZXIiLCJnZXRDb250ZXh0IiwiY291bnRCaW5kaW5nIiwiYmluZFByb3BlcnR5IiwiJCRncm91cElkIiwiYmF0Y2hHcm91cElkIiwiJGZpbHRlciIsIiRzZWFyY2giLCJzZWFyY2giLCJub3JtYWxpemVTZWFyY2hUZXJtIiwidW5kZWZpbmVkIiwicHJvbWlzZVZhbHVlIiwicmVxdWVzdFZhbHVlIiwic3VibWl0QmF0Y2giLCJ2YWx1ZSIsImRlc3Ryb3kiLCJnZXRDb3VudEZvcm1hdHRlZCIsImlDb3VudCIsIm9Db3VudEZvcm1hdHRlciIsIk51bWJlckZvcm1hdCIsImdldEludGVnZXJJbnN0YW5jZSIsImdyb3VwaW5nRW5hYmxlZCIsImZvcm1hdCIsImlnbm9yZVByb3BlcnRpZXMiLCJvVGFibGVEZWZpbml0aW9uIiwiZ2V0VGFibGVEZWZpbml0aW9uIiwiYUlnbm9yZVByb3BlcnRpZXMiLCJlbmFibGVBbmFseXRpY3MiLCJlbmFibGVCYXNpY1NlYXJjaCIsImNvbnRyb2wiLCJ0eXBlIiwiRmlsdGVyVXRpbHMiLCJnZXRGaWx0ZXIiLCJpZ25vcmVkUHJvcGVydGllcyIsInRhcmdldENvbnRyb2wiLCJvQ29udHJvbCIsInAxM25Nb2RlIiwiZ2V0UDEzbk1vZGUiLCJwMTNuUHJvcGVydGllcyIsImluY2x1ZGVzIiwiaXNBIiwiZ2V0RW5oYW5jZWRGZXRjaGVkUHJvcGVydHlJbmZvcyIsImZpbHRlciIsInByb3BlcnR5IiwiZmlsdGVyYWJsZSIsIkRlbGVnYXRlVXRpbCIsImdldEN1c3RvbURhdGEiLCJvQ29udHJvbFByb3BlcnR5IiwicHJvcGVydGllc01ldGFkYXRhIiwiZ2V0QWxsRmlsdGVySW5mbyIsIm9JRmlsdGVySW5mbyIsImZpbmRWYWx1ZXNGb3JLZXlSZWN1cnNpdmVseSIsIm9iaiIsImtleSIsImxpc3QiLCJwdXNoIiwiY2hpbGRyZW4iLCJPYmplY3QiLCJrZXlzIiwiY2hpbGQiLCJmaW5kVmFsdWVzIiwiaXNGaWx0ZXJFbGlnaWJsZUZvck9wdGltaXN0aWNCYXRjaCIsIm1kY1RhYmxlIiwiZmlsdGVyQmFyIiwiZmlsdGVyc0Zyb21UYWJsZSIsImZpbHRlcnNDb25kaXRpb25zIiwiZ2V0Q29uZGl0aW9ucyIsImZpbHRlcnNDb25kaXRpb25zUGF0aHMiLCJ0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGgiLCJtZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJmaWx0ZXJQcm9wZXJ0aWVzQXNQb3RlbnRpYWxseVNlbnNpdGl2ZURhdGFPckRhdGVUeXBlIiwiZmlsdGVyc1BhdGhzRnJvbVRhYmxlIiwiZ2V0RmlsdGVyc1BhdGhzRnJvbVRhYmxlIiwiZmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhciIsImdldEZpbHRlcnNQYXRoc0Zyb21GaWx0ZXJCYXIiLCJlZG1EYXRlVHlwZXMiLCJhbGxGaWx0ZXJzUGF0aHMiLCJwb3RlbnRpYWxseVNlbnNpdGl2ZUFubm90YXRpb24iLCJnZXRPYmplY3QiLCJmaWx0ZXJzQW5ub3RhdGlvbnNQYXRocyIsImZpbHRlclBhdGgiLCJnZXRSZWZlcmVuY2VQYXRoc0ZvckZpbHRlcnMiLCJnZXRGaWx0ZXJzIiwiZmlsdGVyUmVzdWx0IiwibGVuZ3RoIiwiaSIsImxlZnQiLCJyaWdodCIsIndoZW5Cb3VuZCIsIl9nZXRPckNyZWF0ZUJvdW5kUHJvbWlzZUluZm8iLCJwcm9taXNlIiwib25UYWJsZUJvdW5kIiwib0JvdW5kUHJvbWlzZUluZm8iLCJyZXNvbHZlIiwiZm5SZXNvbHZlIiwiUHJvbWlzZSIsImlzQm91bmQiLCJ1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRCIsImVudGl0eVR5cGVQYXRoIiwiY29uZGl0aW9uIiwibmVzdGVkRmlsdGVycyIsImV4dGVybmFsSWRQcm9wUGF0aCIsInNQYXRoIiwiJFBhdGgiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvTGlzdFJlcG9ydC9GaWx0ZXJCYXJcIjtcbmltcG9ydCBEZWxlZ2F0ZVV0aWwgZnJvbSBcInNhcC9mZS9tYWNyb3MvRGVsZWdhdGVVdGlsXCI7XG5pbXBvcnQgdHlwZSB7IElGaWx0ZXJDb250cm9sIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgRmlsdGVyVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgdHlwZSBRdWlja0ZpbHRlclNlbGVjdG9yIGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL1F1aWNrRmlsdGVyU2VsZWN0b3JcIjtcbmltcG9ydCB0eXBlIFRhYmxlQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL3RhYmxlL1RhYmxlQVBJXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgTnVtYmVyRm9ybWF0IGZyb20gXCJzYXAvdWkvY29yZS9mb3JtYXQvTnVtYmVyRm9ybWF0XCI7XG5pbXBvcnQgdHlwZSBNRENDaGFydCBmcm9tIFwic2FwL3VpL21kYy9DaGFydFwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIHsgTURDVGFibGVQcm9wZXJ0eUluZm8gYXMgVGFibGVQcm9wZXJ0eUluZm8gfSBmcm9tIFwic2FwL3VpL21kYy9UYWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBDb25kaXRpb25PYmplY3QgfSBmcm9tIFwic2FwL3VpL21kYy9jb25kaXRpb24vQ29uZGl0aW9uXCI7XG5pbXBvcnQgVGFibGVEZWxlZ2F0ZUJhc2UgZnJvbSBcInNhcC91aS9tZGMvb2RhdGEvdjQvVGFibGVEZWxlZ2F0ZVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL0NvbnRleHRcIjtcbmltcG9ydCBGaWx0ZXIgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJcIjtcbmltcG9ydCB0eXBlIE9EYXRhTGlzdEJpbmRpbmcgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YUxpc3RCaW5kaW5nXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuaW1wb3J0IENvbGxlY3Rpb25CaW5kaW5nSW5mb0FQSSwgeyB0eXBlIFNlcmlhbGl6ZWRDb2xsZWN0aW9uQmluZGluZ0luZm8gfSBmcm9tIFwiLi4vQ29sbGVjdGlvbkJpbmRpbmdJbmZvXCI7XG5cbnR5cGUgRmlsdGVySW5mbyA9IHtcblx0ZmlsdGVyczogRmlsdGVyW107XG5cdHNlYXJjaDogc3RyaW5nO1xuXHRiaW5kaW5nUGF0aDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgSW50ZXJuYWxCaW5kaW5nSW5mbyA9IHtcblx0cGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cdGZpbHRlcnM6IEZpbHRlcltdO1xuXHRzZWFyY2g/OiBzdHJpbmcgfCBudWxsO1xuXHRiaW5kaW5nUGF0aD86IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIGdldEhpZGRlbkZpbHRlcnMob1RhYmxlOiBDb250cm9sKTogRmlsdGVyW10ge1xuXHRsZXQgYUZpbHRlcnM6IEZpbHRlcltdID0gW107XG5cdGNvbnN0IGhpZGRlbkZpbHRlcnMgPSBvVGFibGUuZGF0YShcImhpZGRlbkZpbHRlcnNcIik7XG5cdGlmIChoaWRkZW5GaWx0ZXJzICYmIEFycmF5LmlzQXJyYXkoaGlkZGVuRmlsdGVycy5wYXRocykpIHtcblx0XHRoaWRkZW5GaWx0ZXJzLnBhdGhzLmZvckVhY2goZnVuY3Rpb24gKG1QYXRoOiB7IGFubm90YXRpb25QYXRoOiBzdHJpbmcgfSkge1xuXHRcdFx0Y29uc3Qgb1N2RmlsdGVycyA9IENvbW1vblV0aWxzLmdldEZpbHRlcnNGcm9tQW5ub3RhdGlvbihvVGFibGUsIG1QYXRoLmFubm90YXRpb25QYXRoKTtcblx0XHRcdGFGaWx0ZXJzID0gYUZpbHRlcnMuY29uY2F0KG9TdkZpbHRlcnMpO1xuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBhRmlsdGVycztcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGV4dGVybmFsIGZpbHRlcnMgY29uZmlndXJlZCBvbiB0aGUgdGFibGUuXG4gKiBAcGFyYW0gdGFibGUgVGhlIHRhYmxlXG4gKiBAcmV0dXJucyAgVGhlIGZpbHRlcnNcbiAqL1xuZnVuY3Rpb24gZ2V0RXh0ZXJuYWxGaWx0ZXJzKHRhYmxlOiBUYWJsZSk6IEZpbHRlcltdIHtcblx0bGV0IGZpbHRlcnM6IEZpbHRlcltdID0gZ2V0SGlkZGVuRmlsdGVycyh0YWJsZSk7XG5cdGNvbnN0IHF1aWNrRmlsdGVyID0gdGFibGUuZ2V0UXVpY2tGaWx0ZXIoKSBhcyBRdWlja0ZpbHRlclNlbGVjdG9yO1xuXHRpZiAocXVpY2tGaWx0ZXIpIHtcblx0XHRmaWx0ZXJzID0gZmlsdGVycy5jb25jYXQoQ29tbW9uVXRpbHMuZ2V0RmlsdGVyc0Zyb21Bbm5vdGF0aW9uKHRhYmxlLCBxdWlja0ZpbHRlci5nZXRTZWxlY3RlZEtleSgpKSk7XG5cdH1cblx0cmV0dXJuIGZpbHRlcnM7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjb3VudCBvZiB0aGUgT0RhdGEgbGlzdCBiaW5kaW5nLlxuICogQHBhcmFtIHRhYmxlIFRoZSB0YWJsZSB1c2VkIHRvIGdldCB0aGUgaW5pdGlhbCBPRGF0YSBsaXN0IGJpbmRpbmdcbiAqIEBwYXJhbSBwYWdlQmluZGluZ0NvbnRleHQgVGhlIGJpbmRpbmcgY29udGV4dCBvZiB0aGUgcGFnZVxuICogQHBhcmFtIHBhcmFtcyBDb250YWlucyB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSBwYXJhbXMuYmF0Y2hHcm91cElkIFRoZSBncm91cElkIG9mIHRoZSBiYXRjaCByZXF1ZXN0XG4gKiBAcGFyYW0gcGFyYW1zLmFkZGl0aW9uYWxGaWx0ZXJzIFRoZSBhZGRpdGlvbmFsIGZpbHRlcnMgdG8gYXBwbHkgdG8gdGhlIG9yaWdpbmFsIE9EYXRhIGxpc3QgYmluZGluZ1xuICogQHJldHVybnMgVGhlIGNvdW50XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGdldExpc3RCaW5kaW5nRm9yQ291bnQoXG5cdHRhYmxlOiBUYWJsZSxcblx0cGFnZUJpbmRpbmdDb250ZXh0OiBDb250ZXh0IHwgbnVsbCB8IHVuZGVmaW5lZCxcblx0cGFyYW1zOiB7IGJhdGNoR3JvdXBJZD86IHN0cmluZzsgYWRkaXRpb25hbEZpbHRlcnM/OiBGaWx0ZXJbXTsgaXRlbUtleT86IHN0cmluZyB9XG4pOiBQcm9taXNlPG51bWJlcj4ge1xuXHRjb25zdCBvRGF0YU1vZGVsID0gdGFibGUuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsO1xuXHRjb25zdCB0YWJsZUFQSSA9IHRhYmxlLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJO1xuXHRjb25zdCBmaWx0ZXJJbmZvID0gdGFibGVVdGlscy5nZXRGaWx0ZXJJbmZvKHRhYmxlKTtcblx0bGV0IGZpbHRlcnMgPSAoQXJyYXkuaXNBcnJheShwYXJhbXMuYWRkaXRpb25hbEZpbHRlcnMpID8gcGFyYW1zLmFkZGl0aW9uYWxGaWx0ZXJzIDogW10pXG5cdFx0LmNvbmNhdChmaWx0ZXJJbmZvLmZpbHRlcnMpXG5cdFx0LmNvbmNhdCh0YWJsZVV0aWxzLmdldFAxM25GaWx0ZXJzKHRhYmxlKSk7XG5cblx0aWYgKHRhYmxlLmdldERhdGFTdGF0ZUluZGljYXRvcigpPy5pc0ZpbHRlcmluZygpKSB7XG5cdFx0Ly8gSW5jbHVkZSBmaWx0ZXJzIG9uIG1lc3NhZ2VTdHJpcFxuXHRcdGNvbnN0IGJpbmRpbmdJbmZvQmFzZTogU2VyaWFsaXplZENvbGxlY3Rpb25CaW5kaW5nSW5mbyA9IHt9O1xuXHRcdFRhYmxlRGVsZWdhdGVCYXNlLnVwZGF0ZUJpbmRpbmdJbmZvLmFwcGx5KHRhYmxlLmdldENvbnRyb2xEZWxlZ2F0ZSgpLCBbdGFibGUsIGJpbmRpbmdJbmZvQmFzZV0pO1xuXHRcdGZpbHRlcnMgPSBmaWx0ZXJzLmNvbmNhdChiaW5kaW5nSW5mb0Jhc2UuZmlsdGVycyB8fCBbXSk7XG5cdH1cblx0Y29uc3QgYmluZGluZ0luZm8gPSB7XG5cdFx0cGF0aDogZmlsdGVySW5mby5iaW5kaW5nUGF0aCA/IGZpbHRlckluZm8uYmluZGluZ1BhdGggOiB0YWJsZUFQSS5nZXRSb3dDb2xsZWN0aW9uUGF0aCgpLFxuXHRcdGZpbHRlcnM6IG5ldyBGaWx0ZXIoe1xuXHRcdFx0ZmlsdGVyczogZmlsdGVycyxcblx0XHRcdGFuZDogdHJ1ZVxuXHRcdH0pXG5cdH07XG5cdHRhYmxlLmdldFBhcmVudCgpPy5maXJlRXZlbnQoXCJiZWZvcmVSZWJpbmRUYWJsZVwiLCB7XG5cdFx0Y29sbGVjdGlvbkJpbmRpbmdJbmZvOiBuZXcgQ29sbGVjdGlvbkJpbmRpbmdJbmZvQVBJKGJpbmRpbmdJbmZvKSxcblx0XHRxdWlja0ZpbHRlcktleTogcGFyYW1zLml0ZW1LZXlcblx0fSk7XG5cblx0Ly8gTmVlZCB0byBwYXNzIGJ5IGEgdGVtcG9yYXJ5IExpc3RCaW5kaW5nIGluIG9yZGVyIHRvIGdldCAkZmlsdGVyIHF1ZXJ5IG9wdGlvbiAoYXMgc3RyaW5nKSB0aGFua3MgdG8gZmV0Y2hGaWx0ZXIgb2YgT2RhdGFMaXN0QmluZGluZ1xuXHRjb25zdCBsaXN0QmluZGluZ1BhdGggPVxuXHRcdHBhZ2VCaW5kaW5nQ29udGV4dCAmJiAhYmluZGluZ0luZm8ucGF0aC5zdGFydHNXaXRoKFwiL1wiKSA/IGAke3BhZ2VCaW5kaW5nQ29udGV4dC5nZXRQYXRoKCl9LyR7YmluZGluZ0luZm8ucGF0aH1gIDogYmluZGluZ0luZm8ucGF0aDtcblx0Y29uc3QgbGlzdEJpbmRpbmcgPSBvRGF0YU1vZGVsLmJpbmRMaXN0KGxpc3RCaW5kaW5nUGF0aCwgdGFibGUuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0LCBbXSwgYmluZGluZ0luZm8uZmlsdGVycyk7XG5cdGNvbnN0IHN0cmluZ0ZpbHRlcnM6IHN0cmluZ1tdID0gYXdhaXQgKGxpc3RCaW5kaW5nIGFzIE9EYXRhTGlzdEJpbmRpbmcgJiB7IGZldGNoRmlsdGVyOiBGdW5jdGlvbiB9KS5mZXRjaEZpbHRlcihcblx0XHRsaXN0QmluZGluZy5nZXRDb250ZXh0KClcblx0KTtcblx0Y29uc3QgY291bnRCaW5kaW5nID0gb0RhdGFNb2RlbC5iaW5kUHJvcGVydHkoYCR7bGlzdEJpbmRpbmcuZ2V0UGF0aCgpfS8kY291bnRgLCBsaXN0QmluZGluZy5nZXRDb250ZXh0KCksIHtcblx0XHQkJGdyb3VwSWQ6IHBhcmFtcy5iYXRjaEdyb3VwSWQgPz8gXCIkYXV0b1wiLFxuXHRcdCRmaWx0ZXI6IHN0cmluZ0ZpbHRlcnNbMF0sXG5cdFx0JHNlYXJjaDogZmlsdGVySW5mby5zZWFyY2ggPyBDb21tb25VdGlscy5ub3JtYWxpemVTZWFyY2hUZXJtKGZpbHRlckluZm8uc2VhcmNoKSA6IHVuZGVmaW5lZFxuXHR9KTtcblx0Y29uc3QgcHJvbWlzZVZhbHVlID0gY291bnRCaW5kaW5nLnJlcXVlc3RWYWx1ZSgpO1xuXHRpZiAocGFyYW1zLmJhdGNoR3JvdXBJZCAmJiBwYXJhbXMuYmF0Y2hHcm91cElkICE9PSBcIiRhdXRvXCIpIHtcblx0XHRvRGF0YU1vZGVsLnN1Ym1pdEJhdGNoKHBhcmFtcy5iYXRjaEdyb3VwSWQpO1xuXHR9XG5cdGNvbnN0IHZhbHVlID0gYXdhaXQgcHJvbWlzZVZhbHVlO1xuXHRjb3VudEJpbmRpbmcuZGVzdHJveSgpO1xuXHRsaXN0QmluZGluZy5kZXN0cm95KCk7XG5cdHJldHVybiB2YWx1ZTtcbn1cbmZ1bmN0aW9uIGdldENvdW50Rm9ybWF0dGVkKGlDb3VudDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcblx0Y29uc3Qgb0NvdW50Rm9ybWF0dGVyID0gTnVtYmVyRm9ybWF0LmdldEludGVnZXJJbnN0YW5jZSh7IGdyb3VwaW5nRW5hYmxlZDogdHJ1ZSB9KTtcblx0cmV0dXJuIG9Db3VudEZvcm1hdHRlci5mb3JtYXQoaUNvdW50KTtcbn1cbmZ1bmN0aW9uIGdldEZpbHRlckluZm8ob1RhYmxlOiBUYWJsZSwgaWdub3JlUHJvcGVydGllcz86IHN0cmluZ1tdKTogSW50ZXJuYWxCaW5kaW5nSW5mbyB7XG5cdGNvbnN0IG9UYWJsZURlZmluaXRpb24gPSAob1RhYmxlLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJKS5nZXRUYWJsZURlZmluaXRpb24oKTtcblx0bGV0IGFJZ25vcmVQcm9wZXJ0aWVzOiBzdHJpbmdbXSA9IGlnbm9yZVByb3BlcnRpZXMgfHwgW107XG5cblx0aWYgKG9UYWJsZURlZmluaXRpb24uZW5hYmxlQW5hbHl0aWNzKSB7XG5cdFx0aWYgKCFvVGFibGVEZWZpbml0aW9uLmVuYWJsZUJhc2ljU2VhcmNoKSB7XG5cdFx0XHQvLyBTZWFyY2ggaXNuJ3QgYWxsb3cgYXMgYSAkYXBwbHkgdHJhbnNmb3JtYXRpb24gZm9yIHRoaXMgdGFibGVcblx0XHRcdGFJZ25vcmVQcm9wZXJ0aWVzID0gYUlnbm9yZVByb3BlcnRpZXMuY29uY2F0KFtcInNlYXJjaFwiXSk7XG5cdFx0fVxuXHRcdGFJZ25vcmVQcm9wZXJ0aWVzID0gYUlnbm9yZVByb3BlcnRpZXMuY29uY2F0KFtcIiRlZGl0U3RhdGVcIl0pO1xuXHR9IGVsc2UgaWYgKG9UYWJsZURlZmluaXRpb24uY29udHJvbC50eXBlID09PSBcIlRyZWVUYWJsZVwiKSB7XG5cdFx0YUlnbm9yZVByb3BlcnRpZXMgPSBhSWdub3JlUHJvcGVydGllcy5jb25jYXQoW1wiJGVkaXRTdGF0ZVwiXSk7XG5cdH1cblx0cmV0dXJuIEZpbHRlclV0aWxzLmdldEZpbHRlckluZm8ob1RhYmxlLmdldEZpbHRlcigpLCB7XG5cdFx0aWdub3JlZFByb3BlcnRpZXM6IGFJZ25vcmVQcm9wZXJ0aWVzLFxuXHRcdHRhcmdldENvbnRyb2w6IG9UYWJsZVxuXHR9KTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYWxsIGZpbHRlcnMgY29uZmlndXJlZCBpbiB0aGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZyBvZiB0aGUgdGFibGUgb3IgY2hhcnQuXG4gKiBAcGFyYW0gb0NvbnRyb2wgVGFibGUgb3IgQ2hhcnQgaW5zdGFuY2VcbiAqIEByZXR1cm5zIEZpbHRlcnMgY29uZmlndXJlZCBpbiB0aGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZyBvZiB0aGUgdGFibGUgb3IgY2hhcnRcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIGdldFAxM25GaWx0ZXJzKG9Db250cm9sOiBUYWJsZSB8IE1EQ0NoYXJ0KTogRmlsdGVyW10ge1xuXHRjb25zdCBwMTNuTW9kZSA9IG9Db250cm9sLmdldFAxM25Nb2RlKCk7XG5cdGxldCBwMTNuUHJvcGVydGllczogVGFibGVQcm9wZXJ0eUluZm9bXSB8IFByb3BlcnR5SW5mb1tdIHwgdW5kZWZpbmVkO1xuXHRpZiAocDEzbk1vZGUgJiYgcDEzbk1vZGUuaW5jbHVkZXMoXCJGaWx0ZXJcIikpIHtcblx0XHRpZiAob0NvbnRyb2wuaXNBPFRhYmxlPihcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdGNvbnN0IHRhYmxlQVBJID0gb0NvbnRyb2wuZ2V0UGFyZW50KCkgYXMgVGFibGVBUEk7XG5cdFx0XHRwMTNuUHJvcGVydGllcyA9IHRhYmxlQVBJLmdldEVuaGFuY2VkRmV0Y2hlZFByb3BlcnR5SW5mb3MoKS5maWx0ZXIoZnVuY3Rpb24gKHByb3BlcnR5KSB7XG5cdFx0XHRcdHJldHVybiBwcm9wZXJ0eT8uZmlsdGVyYWJsZSAhPT0gZmFsc2U7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cDEzblByb3BlcnRpZXMgPSAoRGVsZWdhdGVVdGlsLmdldEN1c3RvbURhdGE8UHJvcGVydHlJbmZvW10+KG9Db250cm9sLCBcInNhcF9mZV9Db250cm9sRGVsZWdhdGVfcHJvcGVydHlJbmZvTWFwXCIpIHx8IFtdKS5maWx0ZXIoXG5cdFx0XHRcdGZ1bmN0aW9uIChvQ29udHJvbFByb3BlcnR5OiBQcm9wZXJ0eUluZm8pIHtcblx0XHRcdFx0XHRyZXR1cm4gb0NvbnRyb2xQcm9wZXJ0eSAmJiAhKG9Db250cm9sUHJvcGVydHkuZmlsdGVyYWJsZSA9PT0gZmFsc2UpO1xuXHRcdFx0XHR9XG5cdFx0XHQpO1xuXHRcdH1cblx0XHRjb25zdCBmaWx0ZXJJbmZvID0gRmlsdGVyVXRpbHMuZ2V0RmlsdGVySW5mbyhvQ29udHJvbCBhcyB1bmtub3duIGFzIElGaWx0ZXJDb250cm9sLCB7XG5cdFx0XHRwcm9wZXJ0aWVzTWV0YWRhdGE6IHAxM25Qcm9wZXJ0aWVzIGFzIFByb3BlcnR5SW5mb1tdXG5cdFx0fSk7XG5cdFx0aWYgKGZpbHRlckluZm8gJiYgZmlsdGVySW5mby5maWx0ZXJzKSB7XG5cdFx0XHRyZXR1cm4gZmlsdGVySW5mby5maWx0ZXJzO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIGdldEFsbEZpbHRlckluZm8ob1RhYmxlOiBUYWJsZSwgaWdub3JlUHJvcGVydGllcz86IHN0cmluZ1tdKTogSW50ZXJuYWxCaW5kaW5nSW5mbyB7XG5cdGNvbnN0IG9JRmlsdGVySW5mbyA9IHRhYmxlVXRpbHMuZ2V0RmlsdGVySW5mbyhvVGFibGUsIGlnbm9yZVByb3BlcnRpZXMpO1xuXHRyZXR1cm4ge1xuXHRcdGZpbHRlcnM6IG9JRmlsdGVySW5mby5maWx0ZXJzLmNvbmNhdChnZXRFeHRlcm5hbEZpbHRlcnMob1RhYmxlKSwgdGFibGVVdGlscy5nZXRQMTNuRmlsdGVycyhvVGFibGUpKSxcblx0XHRzZWFyY2g6IG9JRmlsdGVySW5mby5zZWFyY2gsXG5cdFx0YmluZGluZ1BhdGg6IG9JRmlsdGVySW5mby5iaW5kaW5nUGF0aFxuXHR9O1xufVxuXG4vKipcbiAqIEZpbmQgYSB2YWx1ZSBpbiBhbiBvYmplY3QuXG4gKiBAcGFyYW0gb2JqIFRoZSBvYmplY3QgdG8gbG9vayBpbnRvXG4gKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoXG4gKiBAcGFyYW0gbGlzdCBBbiBhcnJheSB0byByZXR1cm4gaWYgb2JqIGlzIHVuZGVmaW5lZFxuICogQHJldHVybnMgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBrZXlzIGNvbnRlbnRcbiAqL1xuZnVuY3Rpb24gZmluZFZhbHVlc0ZvcktleVJlY3Vyc2l2ZWx5KG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleTogc3RyaW5nLCBsaXN0OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcblx0aWYgKG9ialtrZXldKSB7XG5cdFx0bGlzdC5wdXNoKG9ialtrZXldIGFzIHN0cmluZyk7XG5cdH1cblx0Y29uc3QgY2hpbGRyZW4gPSBPYmplY3Qua2V5cyhvYmopO1xuXHRmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuKSB7XG5cdFx0aWYgKHR5cGVvZiBvYmpbY2hpbGRdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRsaXN0ID0gbGlzdC5jb25jYXQoZmluZFZhbHVlc0ZvcktleVJlY3Vyc2l2ZWx5KG9ialtjaGlsZF0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGtleSwgW10pKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGxpc3Q7XG59XG5cbi8qKlxuICogRmluZCBhIHZhbHVlIGludG8gYW4gb2JqZWN0LlxuICogQHBhcmFtIG9iaiBUaGUgb2JqZWN0IHRvIGxvb2sgaW50b1xuICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaFxuICogQHJldHVybnMgUmV0dXJuIGFuIGFycmF5IG9mIGFsbCBrZXlzIGNvbnRlbnRcbiAqL1xuZnVuY3Rpb24gZmluZFZhbHVlcyhvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBrZXk6IHN0cmluZyk6IHN0cmluZ1tdIHtcblx0cmV0dXJuIGZpbmRWYWx1ZXNGb3JLZXlSZWN1cnNpdmVseShvYmosIGtleSwgW10pO1xufVxuXG4vKipcbiAqIENoZWNrIGFsbCBmaWx0ZXIgY29uZGl0aW9ucyBmb3IgZGF0ZSB0eXBlcyBvciBzZW5zaXRpdmUgZGF0YS5cbiAqIEBwYXJhbSBtZGNUYWJsZSBUYWJsZSBvciBDaGFydCBpbnN0YW5jZVxuICogQHBhcmFtIGZpbHRlckJhciBGaWx0ZXJCYXJcbiAqIEByZXR1cm5zIFRydWUgaWYgb25lIGZpbHRlciBoYXMgYSBkYXRlIHR5cGUgb3IgYSBzZW5zaXRpdmUgZGF0YVxuICovXG5mdW5jdGlvbiBpc0ZpbHRlckVsaWdpYmxlRm9yT3B0aW1pc3RpY0JhdGNoKG1kY1RhYmxlOiBUYWJsZSwgZmlsdGVyQmFyOiBGaWx0ZXJCYXIgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcblx0aWYgKCFmaWx0ZXJCYXIpIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblx0Y29uc3QgZmlsdGVyc0Zyb21UYWJsZSA9IHRhYmxlVXRpbHMuZ2V0QWxsRmlsdGVySW5mbyhtZGNUYWJsZSkgYXMgdW5rbm93biBhcyBGaWx0ZXJJbmZvO1xuXHRjb25zdCBmaWx0ZXJzQ29uZGl0aW9ucyA9IGZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdGNvbnN0IGZpbHRlcnNDb25kaXRpb25zUGF0aHMgPSBPYmplY3Qua2V5cyhmaWx0ZXJzQ29uZGl0aW9ucyk7XG5cdGNvbnN0IHRhYmxlUm93QmluZGluZ3NJbmZvUGF0aCA9IG1kY1RhYmxlLmRhdGEoXCJtZXRhUGF0aFwiKTtcblx0Y29uc3QgbWV0YU1vZGVsID0gbWRjVGFibGUuZ2V0TW9kZWwoKT8uZ2V0TWV0YU1vZGVsKCk7XG5cdGxldCBmaWx0ZXJQcm9wZXJ0aWVzQXNQb3RlbnRpYWxseVNlbnNpdGl2ZURhdGFPckRhdGVUeXBlID0gZmFsc2U7XG5cdGNvbnN0IGZpbHRlcnNQYXRoc0Zyb21UYWJsZSA9IGdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSh0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGgsIGZpbHRlcnNGcm9tVGFibGUpO1xuXHRjb25zdCBmaWx0ZXJzUGF0aHNGcm9tRmlsdGVyQmFyID0gZ2V0RmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhcih0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGgsIGZpbHRlcnNDb25kaXRpb25zUGF0aHMpO1xuXHRjb25zdCBlZG1EYXRlVHlwZXMgPSBbXCJFZG0uRGF0ZVwiLCBcIkVkbS5EYXRlVGltZU9mZnNldFwiLCBcIkVkbS5UaW1lT2ZEYXlcIl07XG5cdGNvbnN0IGFsbEZpbHRlcnNQYXRocyA9IGZpbHRlcnNQYXRoc0Zyb21GaWx0ZXJCYXIuY29uY2F0KGZpbHRlcnNQYXRoc0Zyb21UYWJsZSk7XG5cdGZvciAoY29uc3QgcG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9uIG9mIGFsbEZpbHRlcnNQYXRocykge1xuXHRcdGlmIChcblx0XHRcdG1ldGFNb2RlbD8uZ2V0T2JqZWN0KGAke3BvdGVudGlhbGx5U2Vuc2l0aXZlQW5ub3RhdGlvbn1AY29tLnNhcC52b2NhYnVsYXJpZXMuUGVyc29uYWxEYXRhLnYxLklzUG90ZW50aWFsbHlTZW5zaXRpdmVgKSB8fFxuXHRcdFx0bWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7cG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9ufUBjb20uc2FwLnZvY2FidWxhcmllcy5QZXJzb25hbERhdGEudjEuSXNQb3RlbnRpYWxseVBlcnNvbmFsYClcblx0XHQpIHtcblx0XHRcdGZpbHRlclByb3BlcnRpZXNBc1BvdGVudGlhbGx5U2Vuc2l0aXZlRGF0YU9yRGF0ZVR5cGUgPSB0cnVlO1xuXHRcdFx0YnJlYWs7XG5cdFx0fVxuXHRcdGlmIChlZG1EYXRlVHlwZXMuaW5jbHVkZXMobWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7cG90ZW50aWFsbHlTZW5zaXRpdmVBbm5vdGF0aW9ufS8kVHlwZWApKSkge1xuXHRcdFx0ZmlsdGVyUHJvcGVydGllc0FzUG90ZW50aWFsbHlTZW5zaXRpdmVEYXRhT3JEYXRlVHlwZSA9IHRydWU7XG5cdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZpbHRlclByb3BlcnRpZXNBc1BvdGVudGlhbGx5U2Vuc2l0aXZlRGF0YU9yRGF0ZVR5cGU7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYW5ub3RhdGlvbiBwYXRocyBvZiBhbGwgZmlsdGVycyBvZiB0aGUgRmlsdGVyIEJhci5cbiAqIEBwYXJhbSB0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGggVGhlIHRhYmxlIG1ldGFQYXRoXG4gKiBAcGFyYW0gZmlsdGVyc0NvbmRpdGlvbnNQYXRocyBUaGUgcGF0aHMgb2YgYWxsIGZpbHRlcnMgY29uZGl0aW9uc1xuICogQHJldHVybnMgQW4gYXJyYXkgb2YgcGF0aHMgb2YgYWxsIGZpbHRlcnNcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyc1BhdGhzRnJvbUZpbHRlckJhcih0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGg6IHN0cmluZywgZmlsdGVyc0NvbmRpdGlvbnNQYXRoczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG5cdGNvbnN0IGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzOiBzdHJpbmdbXSA9IFtdO1xuXHRmb3IgKGNvbnN0IGZpbHRlclBhdGggb2YgZmlsdGVyc0NvbmRpdGlvbnNQYXRocykge1xuXHRcdGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzLnB1c2goYCR7dGFibGVSb3dCaW5kaW5nc0luZm9QYXRofS8ke2ZpbHRlclBhdGh9YCk7XG5cdH1cblx0cmV0dXJuIGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBhdGhzIG9mIGFsbCBmaWx0ZXJzIGNvbmRpdGlvbnMuXG4gKiBAcGFyYW0gZmlsdGVyIFRoZSBmaWx0ZXIgdG8gZ2V0IHRoZSBwYXRoc1xuICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgcGF0aHMgY29uZGl0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRSZWZlcmVuY2VQYXRoc0ZvckZpbHRlcnMoZmlsdGVyOiBGaWx0ZXIpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG5cdGNvbnN0IGZpbHRlcnMgPSBmaWx0ZXIuZ2V0RmlsdGVycygpO1xuXHRsZXQgZmlsdGVyUmVzdWx0ID0ge307XG5cdC8vIGZpbmQgYWxsIGZpbHRlcnMgaW4gbXVsdGkgZmlsdGVyc1xuXHRpZiAoZmlsdGVycykge1xuXHRcdGZpbHRlclJlc3VsdCA9IGdldFJlZmVyZW5jZVBhdGhzRm9yRmlsdGVycyhmaWx0ZXJzW2ZpbHRlcnMubGVuZ3RoIC0gMV0pO1xuXHRcdGZvciAobGV0IGkgPSBmaWx0ZXJzLmxlbmd0aCAtIDI7IGkgPj0gMDsgaS0tKSB7XG5cdFx0XHRmaWx0ZXJSZXN1bHQgPSB7XG5cdFx0XHRcdGxlZnQ6IGdldFJlZmVyZW5jZVBhdGhzRm9yRmlsdGVycyhmaWx0ZXJzW2ldKSxcblx0XHRcdFx0cmlnaHQ6IGZpbHRlclJlc3VsdFxuXHRcdFx0fTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBhdGg6IGZpbHRlci5nZXRQYXRoKClcblx0XHR9O1xuXHR9XG5cdHJldHVybiBmaWx0ZXJSZXN1bHQ7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYW5ub3RhdGlvbiBwYXRocyBvZiBhbGwgdGFibGUgZmlsdGVycy5cbiAqIEBwYXJhbSB0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGggVGhlIHRhYmxlIG1ldGFQYXRoXG4gKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVycyB0byBjaGVjayBmb3IgcGF0aHNcbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHBhdGhzIG9mIGFsbCBmaWx0ZXJzXG4gKi9cbmZ1bmN0aW9uIGdldEZpbHRlcnNQYXRoc0Zyb21UYWJsZSh0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGg6IHN0cmluZywgZmlsdGVyczogRmlsdGVySW5mbyk6IHN0cmluZ1tdIHtcblx0bGV0IHBhdGhzOiBzdHJpbmdbXTtcblx0Y29uc3QgZmlsdGVyc0Fubm90YXRpb25zUGF0aHM6IHN0cmluZ1tdID0gW107XG5cdGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMuZmlsdGVycykge1xuXHRcdHBhdGhzID0gZmluZFZhbHVlcyhnZXRSZWZlcmVuY2VQYXRoc0ZvckZpbHRlcnMoZmlsdGVyKSwgXCJwYXRoXCIpO1xuXHRcdGZvciAoY29uc3QgZmlsdGVyUGF0aCBvZiBwYXRocykge1xuXHRcdFx0ZmlsdGVyc0Fubm90YXRpb25zUGF0aHMucHVzaChgJHt0YWJsZVJvd0JpbmRpbmdzSW5mb1BhdGh9LyR7ZmlsdGVyUGF0aH1gKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGZpbHRlcnNBbm5vdGF0aW9uc1BhdGhzO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBwcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2l0aCB0aGUgdGFibGUgaXRzZWxmIHdoZW4gdGhlIHRhYmxlIHdhcyBib3VuZC5cbiAqIEBwYXJhbSBvVGFibGUgVGhlIHRhYmxlIHRvIGNoZWNrIGZvciBiaW5kaW5nXG4gKiBAcmV0dXJucyBBIFByb21pc2UgdGhhdCB3aWxsIGJlIHJlc29sdmVkIHdoZW4gdGFibGUgaXMgYm91bmRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gd2hlbkJvdW5kKG9UYWJsZTogVGFibGUpOiBQcm9taXNlPFRhYmxlPiB7XG5cdHJldHVybiBfZ2V0T3JDcmVhdGVCb3VuZFByb21pc2VJbmZvKG9UYWJsZSkucHJvbWlzZTtcbn1cblxuLyoqXG4gKiBJZiBub3QgeWV0IGhhcHBlbmVkLCBpdCByZXNvbHZlcyB0aGUgdGFibGUgYm91bmQgcHJvbWlzZS5cbiAqIEBwYXJhbSBvVGFibGUgVGhlIHRhYmxlIHRoYXQgd2FzIGJvdW5kXG4gKi9cbmZ1bmN0aW9uIG9uVGFibGVCb3VuZChvVGFibGU6IFRhYmxlKTogdm9pZCB7XG5cdGNvbnN0IG9Cb3VuZFByb21pc2VJbmZvID0gX2dldE9yQ3JlYXRlQm91bmRQcm9taXNlSW5mbyhvVGFibGUpO1xuXHRpZiAob0JvdW5kUHJvbWlzZUluZm8ucmVzb2x2ZSkge1xuXHRcdG9Cb3VuZFByb21pc2VJbmZvLnJlc29sdmUob1RhYmxlKTtcblx0XHRvVGFibGUuZGF0YShcImJvdW5kUHJvbWlzZVJlc29sdmVcIiwgbnVsbCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gX2dldE9yQ3JlYXRlQm91bmRQcm9taXNlSW5mbyhvVGFibGU6IFRhYmxlKTogeyBwcm9taXNlOiBQcm9taXNlPFRhYmxlPjsgcmVzb2x2ZTogRnVuY3Rpb24gfSB7XG5cdGlmICghb1RhYmxlLmRhdGEoXCJib3VuZFByb21pc2VcIikpIHtcblx0XHRsZXQgZm5SZXNvbHZlITogRnVuY3Rpb247XG5cdFx0b1RhYmxlLmRhdGEoXG5cdFx0XHRcImJvdW5kUHJvbWlzZVwiLFxuXHRcdFx0bmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUpIHtcblx0XHRcdFx0Zm5SZXNvbHZlID0gcmVzb2x2ZTtcblx0XHRcdH0pXG5cdFx0KTtcblx0XHRpZiAoKG9UYWJsZSBhcyB1bmtub3duIGFzIHsgaXNCb3VuZD86ICgpID0+IGJvb2xlYW4gfSkuaXNCb3VuZD8uKCkpIHtcblx0XHRcdGZuUmVzb2x2ZShvVGFibGUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvVGFibGUuZGF0YShcImJvdW5kUHJvbWlzZVJlc29sdmVcIiwgZm5SZXNvbHZlKTtcblx0XHR9XG5cdH1cblx0cmV0dXJuIHsgcHJvbWlzZTogb1RhYmxlLmRhdGEoXCJib3VuZFByb21pc2VcIiksIHJlc29sdmU6IG9UYWJsZS5kYXRhKFwiYm91bmRQcm9taXNlUmVzb2x2ZVwiKSB9O1xufVxuXG5mdW5jdGlvbiB1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRChtZXRhTW9kZWw6IE9EYXRhTWV0YU1vZGVsLCBmaWx0ZXJzOiBDb25kaXRpb25PYmplY3RbXSwgZW50aXR5VHlwZVBhdGg6IHN0cmluZyk6IHZvaWQge1xuXHRmaWx0ZXJzPy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcblx0XHRjb25zdCBuZXN0ZWRGaWx0ZXJzID0gY29uZGl0aW9uLmdldEZpbHRlcnMoKTtcblxuXHRcdGlmIChuZXN0ZWRGaWx0ZXJzKSB7XG5cdFx0XHR1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRChtZXRhTW9kZWwsIG5lc3RlZEZpbHRlcnMsIGVudGl0eVR5cGVQYXRoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgZXh0ZXJuYWxJZFByb3BQYXRoID0gbWV0YU1vZGVsLmdldE9iamVjdChlbnRpdHlUeXBlUGF0aCArIGNvbmRpdGlvbi5zUGF0aCArIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5FeHRlcm5hbElEXCIpXG5cdFx0XHRcdD8uJFBhdGg7XG5cdFx0XHRpZiAoZXh0ZXJuYWxJZFByb3BQYXRoKSB7XG5cdFx0XHRcdGNvbmRpdGlvbi5zUGF0aCA9IGV4dGVybmFsSWRQcm9wUGF0aDtcblx0XHRcdH1cblx0XHR9XG5cdH0pO1xufVxuXG5jb25zdCB0YWJsZVV0aWxzID0ge1xuXHRnZXRDb3VudEZvcm1hdHRlZDogZ2V0Q291bnRGb3JtYXR0ZWQsXG5cdGdldEhpZGRlbkZpbHRlcnM6IGdldEhpZGRlbkZpbHRlcnMsXG5cdGdldExpc3RCaW5kaW5nRm9yQ291bnQ6IGdldExpc3RCaW5kaW5nRm9yQ291bnQsXG5cdGdldEZpbHRlckluZm86IGdldEZpbHRlckluZm8sXG5cdGdldFAxM25GaWx0ZXJzOiBnZXRQMTNuRmlsdGVycyxcblx0Z2V0QWxsRmlsdGVySW5mbzogZ2V0QWxsRmlsdGVySW5mbyxcblx0aXNGaWx0ZXJFbGlnaWJsZUZvck9wdGltaXN0aWNCYXRjaDogaXNGaWx0ZXJFbGlnaWJsZUZvck9wdGltaXN0aWNCYXRjaCxcblx0d2hlbkJvdW5kOiB3aGVuQm91bmQsXG5cdG9uVGFibGVCb3VuZDogb25UYWJsZUJvdW5kLFxuXHR1cGRhdGVGaWx0ZXJzRm9yRXh0ZXJuYWxJRDogdXBkYXRlRmlsdGVyc0ZvckV4dGVybmFsSURcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHRhYmxlVXRpbHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUFtQ0EsU0FBU0EsZ0JBQWdCQSxDQUFDQyxNQUFlLEVBQVk7SUFDcEQsSUFBSUMsUUFBa0IsR0FBRyxFQUFFO0lBQzNCLE1BQU1DLGFBQWEsR0FBR0YsTUFB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
|
|
@@ -12,12 +12,13 @@ import type FilterBar from "sap/ui/mdc/FilterBar";
|
|
|
12
12
|
import type Table from "sap/ui/mdc/Table";
|
|
13
13
|
import type { MDCTablePropertyInfo as TablePropertyInfo } from "sap/ui/mdc/Table";
|
|
14
14
|
import type { ConditionObject } from "sap/ui/mdc/condition/Condition";
|
|
15
|
+
import TableDelegateBase from "sap/ui/mdc/odata/v4/TableDelegate";
|
|
15
16
|
import type Context from "sap/ui/model/Context";
|
|
16
17
|
import Filter from "sap/ui/model/Filter";
|
|
17
18
|
import type ODataListBinding from "sap/ui/model/odata/v4/ODataListBinding";
|
|
18
19
|
import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
19
20
|
import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
20
|
-
import CollectionBindingInfoAPI from "../CollectionBindingInfo";
|
|
21
|
+
import CollectionBindingInfoAPI, { type SerializedCollectionBindingInfo } from "../CollectionBindingInfo";
|
|
21
22
|
|
|
22
23
|
type FilterInfo = {
|
|
23
24
|
filters: Filter[];
|
|
@@ -75,9 +76,16 @@ async function getListBindingForCount(
|
|
|
75
76
|
const oDataModel = table.getModel() as ODataModel;
|
|
76
77
|
const tableAPI = table.getParent() as TableAPI;
|
|
77
78
|
const filterInfo = tableUtils.getFilterInfo(table);
|
|
78
|
-
|
|
79
|
+
let filters = (Array.isArray(params.additionalFilters) ? params.additionalFilters : [])
|
|
79
80
|
.concat(filterInfo.filters)
|
|
80
81
|
.concat(tableUtils.getP13nFilters(table));
|
|
82
|
+
|
|
83
|
+
if (table.getDataStateIndicator()?.isFiltering()) {
|
|
84
|
+
// Include filters on messageStrip
|
|
85
|
+
const bindingInfoBase: SerializedCollectionBindingInfo = {};
|
|
86
|
+
TableDelegateBase.updateBindingInfo.apply(table.getControlDelegate(), [table, bindingInfoBase]);
|
|
87
|
+
filters = filters.concat(bindingInfoBase.filters || []);
|
|
88
|
+
}
|
|
81
89
|
const bindingInfo = {
|
|
82
90
|
path: filterInfo.bindingPath ? filterInfo.bindingPath : tableAPI.getRowCollectionPath(),
|
|
83
91
|
filters: new Filter({
|
|
@@ -85,12 +93,10 @@ async function getListBindingForCount(
|
|
|
85
93
|
and: true
|
|
86
94
|
})
|
|
87
95
|
};
|
|
88
|
-
table
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
quickFilterKey: params.itemKey
|
|
93
|
-
});
|
|
96
|
+
table.getParent()?.fireEvent("beforeRebindTable", {
|
|
97
|
+
collectionBindingInfo: new CollectionBindingInfoAPI(bindingInfo),
|
|
98
|
+
quickFilterKey: params.itemKey
|
|
99
|
+
});
|
|
94
100
|
|
|
95
101
|
// Need to pass by a temporary ListBinding in order to get $filter query option (as string) thanks to fetchFilter of OdataListBinding
|
|
96
102
|
const listBindingPath =
|