@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
|
@@ -1020,7 +1020,8 @@ const ValueListHelper = {
|
|
|
1020
1020
|
const propertyPath = `/${annotationValueListType.CollectionPath}/${parameter.ValueListProperty}`,
|
|
1021
1021
|
property = metaModelVH.getObject(propertyPath),
|
|
1022
1022
|
propertyAnnotations = payload?.externalIdPath
|
|
1023
|
-
? ((metaModelVH.getObject(`/${payload?.externalIdPath}@`) ||
|
|
1023
|
+
? ((metaModelVH.getObject(`/${annotationValueListType.CollectionPath}/${payload?.externalIdPath.split("/").pop()}@`) ||
|
|
1024
|
+
{}) as AnnotationsForProperty)
|
|
1024
1025
|
: ((metaModelVH.getObject(`${propertyPath}@`) || {}) as AnnotationsForProperty),
|
|
1025
1026
|
localDataPropertyPath = parameter.LocalDataProperty?.$PropertyPath || "";
|
|
1026
1027
|
|
|
@@ -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/base/Log", "sap/f/library", "sap/fe/controls/library", "sap/fe/core/AppComponent", "sap/fe/core/library", "sap/fe/macros/coreUI/factory", "sap/fe/macros/filter/FilterOperatorUtils", "sap/fe/macros/filter/type/MultiValue", "sap/fe/macros/filter/type/Range", "sap/fe/macros/formatters/TableFormatter", "sap/fe/macros/macroLibrary", "sap/ui/base/DataType", "sap/ui/core/CustomData", "sap/ui/core/Fragment", "sap/ui/core/Lib", "sap/ui/core/XMLTemplateProcessor", "sap/ui/core/library", "sap/ui/core/util/XMLPreprocessor", "sap/ui/mdc/field/ConditionsType", "sap/ui/mdc/library", "sap/ui/unified/library"], function (Log, _library, _library2, AppComponent, _library3, _factory, FilterOperatorUtils, _MultiValue, _Range, _TableFormatter, _macroLibrary, DataType, CustomData, Fragment, Library, _XMLTemplateProcessor, _library4, XMLPreprocessor, _ConditionsType, _library5, _library6) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/f/library", "sap/fe/controls/library", "sap/fe/core/AppComponent", "sap/fe/core/library", "sap/fe/macros/coreUI/factory", "sap/fe/macros/filter/FilterOperatorUtils", "sap/fe/macros/filter/type/MultiValue", "sap/fe/macros/filter/type/Range", "sap/fe/macros/formatters/TableFormatter", "sap/fe/macros/formatters/VisualFilterFormatter", "sap/fe/macros/internal/valuehelp/AdditionalValueFormatter", "sap/fe/macros/macroLibrary", "sap/ui/base/DataType", "sap/ui/core/CustomData", "sap/ui/core/Fragment", "sap/ui/core/Lib", "sap/ui/core/XMLTemplateProcessor", "sap/ui/core/library", "sap/ui/core/util/XMLPreprocessor", "sap/ui/mdc/field/ConditionsType", "sap/ui/mdc/library", "sap/ui/unified/library", "sap/fe/base/jsx-runtime/jsx"], function (Log, _library, _library2, AppComponent, _library3, _factory, FilterOperatorUtils, _MultiValue, _Range, _TableFormatter, _VisualFilterFormatter, _AdditionalValueFormatter, _macroLibrary, DataType, CustomData, Fragment, Library, _XMLTemplateProcessor, _library4, XMLPreprocessor, _ConditionsType, _library5, _library6, _jsx) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
@@ -24,7 +24,7 @@ sap.ui.define(["sap/base/Log", "sap/f/library", "sap/fe/controls/library", "sap/
|
|
|
24
24
|
controls: [],
|
|
25
25
|
elements: [],
|
|
26
26
|
// eslint-disable-next-line no-template-curly-in-string
|
|
27
|
-
version: "1.
|
|
27
|
+
version: "1.143.0",
|
|
28
28
|
noLibraryCSS: true,
|
|
29
29
|
extensions: {
|
|
30
30
|
flChangeHandlers: {
|
|
@@ -88,10 +88,9 @@ sap.ui.define(["sap/base/Log", "sap/f/library", "sap/fe/controls/library", "sap/
|
|
|
88
88
|
delete childCustomData[customDataKey];
|
|
89
89
|
continue;
|
|
90
90
|
}
|
|
91
|
-
result.addCustomData(
|
|
92
|
-
key: customDataKey,
|
|
91
|
+
result.addCustomData(_jsx(CustomData, {
|
|
93
92
|
value: childCustomData[customDataKey]
|
|
94
|
-
}));
|
|
93
|
+
}, customDataKey));
|
|
95
94
|
}
|
|
96
95
|
}
|
|
97
96
|
return result;
|
|
@@ -150,4 +149,4 @@ sap.ui.define(["sap/base/Log", "sap/f/library", "sap/fe/controls/library", "sap/
|
|
|
150
149
|
XMLPreprocessor.plugIn(rewriteNodes("sap.fe.macros", "macros:formatOptions", "sap.fe.macros.field", "macroField:FieldFormatOptions"), "sap.m", "formatOptions");
|
|
151
150
|
return thisLib;
|
|
152
151
|
}, false);
|
|
153
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYWNyb3NOYW1lc3BhY2UiLCJfZXhwb3J0cyIsInRoaXNMaWIiLCJMaWJyYXJ5IiwiaW5pdCIsIm5hbWUiLCJhcGlWZXJzaW9uIiwiZGVwZW5kZW5jaWVzIiwidHlwZXMiLCJpbnRlcmZhY2VzIiwiY29udHJvbHMiLCJlbGVtZW50cyIsInZlcnNpb24iLCJub0xpYnJhcnlDU1MiLCJleHRlbnNpb25zIiwiZmxDaGFuZ2VIYW5kbGVycyIsIk5hdmlnYXRpb25UeXBlIiwiRGF0YVR5cGUiLCJyZWdpc3RlckVudW0iLCJGcmFnbWVudCIsInJlZ2lzdGVyVHlwZSIsImxvYWQiLCJnZXRUeXBlIiwibVNldHRpbmdzIiwiY3VycmVudENvbnRyb2xsZXIiLCJjb250YWluaW5nVmlldyIsImdldENvbnRyb2xsZXIiLCJ0YXJnZXRDb250cm9sbGVyRXh0ZW5zaW9uIiwiaXNBIiwiZ2V0RXh0ZW5zaW9uQVBJIiwiaWQiLCJvQ29udHJvbGxlciIsImNoaWxkQ3VzdG9tRGF0YSIsInVuZGVmaW5lZCIsImNvbnRleHRQYXRoIiwiX2ZuU2V0dGluZ3NQcmVwcm9jZXNzb3IiLCJjb250cm9sU2V0dGluZ3MiLCJnZXRNZXRhZGF0YSIsImhhc1Byb3BlcnR5IiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJyZXN1bHQiLCJhcHBseSIsImN1c3RvbURhdGFLZXkiLCJhZGRDdXN0b21EYXRhIiwiQ3VzdG9tRGF0YSIsImtleSIsInZhbHVlIiwiX2xlbjIiLCJfa2V5MiIsInRoZW4iLCJBcHBDb21wb25lbnQiLCJyZWdpc3Rlckluc3RhbmNlRGVwZW5kZW50UHJvY2Vzc0ZvclN0YXJ0VXAiLCJGaWx0ZXJPcGVyYXRvclV0aWxzIiwicHJvY2Vzc0N1c3RvbUZpbHRlck9wZXJhdG9ycyIsImNhdGNoIiwiZXJyb3IiLCJMb2ciLCJyZXdyaXRlTm9kZXMiLCJwYXJlbnROYW1lc3BhY2UiLCJwYXJlbnROYW1lIiwiY2hpbGROYW1lc3BhY2UiLCJjaGlsZE5hbWUiLCJvTm9kZSIsIl9vVmlzaXRvciIsImhhc0NoaWxkTm9kZXMiLCJhdHRyaWJ1dGVzIiwidmlzaXRDaGlsZE5vZGVzIiwibmV3Tm9kZSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudE5TIiwibmV3UGFyZW50IiwiYXR0cmlidXRlTmFtZXMiLCJnZXRBdHRyaWJ1dGVOYW1lcyIsImF0dHJpYnV0ZU5hbWUiLCJzZXRBdHRyaWJ1dGUiLCJnZXRBdHRyaWJ1dGUiLCJhcHBlbmRDaGlsZCIsInJlcGxhY2VXaXRoIiwiWE1MUHJlcHJvY2Vzc29yIiwicGx1Z0luIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJsaWJyYXJ5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IFwic2FwL2YvbGlicmFyeVwiO1xuaW1wb3J0IFwic2FwL2ZlL2NvbnRyb2xzL2xpYnJhcnlcIjtcbmltcG9ydCBBcHBDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL0FwcENvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB0eXBlIFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9QYWdlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgeyBJVmlzaXRvckNhbGxiYWNrIH0gZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL3RlbXBsYXRpbmcvQnVpbGRpbmdCbG9ja1RlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgXCJzYXAvZmUvbWFjcm9zL2NvcmVVSS9mYWN0b3J5XCI7XG5pbXBvcnQgRmlsdGVyT3BlcmF0b3JVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyT3BlcmF0b3JVdGlsc1wiO1xuaW1wb3J0IFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvdHlwZS9NdWx0aVZhbHVlXCI7XG5pbXBvcnQgXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci90eXBlL1JhbmdlXCI7XG5pbXBvcnQgXCJzYXAvZmUvbWFjcm9zL2Zvcm1hdHRlcnMvVGFibGVGb3JtYXR0ZXJcIjtcbmltcG9ydCBcInNhcC9mZS9tYWNyb3MvbWFjcm9MaWJyYXJ5XCI7XG5pbXBvcnQgRGF0YVR5cGUgZnJvbSBcInNhcC91aS9iYXNlL0RhdGFUeXBlXCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvY29yZS9Db250cm9sXCI7XG5pbXBvcnQgQ3VzdG9tRGF0YSBmcm9tIFwic2FwL3VpL2NvcmUvQ3VzdG9tRGF0YVwiO1xuaW1wb3J0IEZyYWdtZW50IGZyb20gXCJzYXAvdWkvY29yZS9GcmFnbWVudFwiO1xuaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IFwic2FwL3VpL2NvcmUvWE1MVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBcInNhcC91aS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgWE1MUHJlcHJvY2Vzc29yIGZyb20gXCJzYXAvdWkvY29yZS91dGlsL1hNTFByZXByb2Nlc3NvclwiO1xuaW1wb3J0IFwic2FwL3VpL21kYy9maWVsZC9Db25kaXRpb25zVHlwZVwiO1xuaW1wb3J0IFwic2FwL3VpL21kYy9saWJyYXJ5XCI7XG5pbXBvcnQgXCJzYXAvdWkvdW5pZmllZC9saWJyYXJ5XCI7XG5cbi8qKlxuICogTGlicmFyeSBjb250YWluaW5nIHRoZSBidWlsZGluZyBibG9ja3MgZm9yIFNBUCBGaW9yaSBlbGVtZW50cy5cbiAqIEBuYW1lc3BhY2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IG1hY3Jvc05hbWVzcGFjZSA9IFwic2FwLmZlLm1hY3Jvc1wiO1xuXG4vLyBsaWJyYXJ5IGRlcGVuZGVuY2llc1xuY29uc3QgdGhpc0xpYiA9IExpYnJhcnkuaW5pdCh7XG5cdG5hbWU6IFwic2FwLmZlLm1hY3Jvc1wiLFxuXHRhcGlWZXJzaW9uOiAyLFxuXHRkZXBlbmRlbmNpZXM6IFtcInNhcC51aS5jb3JlXCIsIFwic2FwLnVpLm1kY1wiLCBcInNhcC51aS51bmlmaWVkXCIsIFwic2FwLmZlLmNvcmVcIiwgXCJzYXAuZmUubmF2aWdhdGlvblwiLCBcInNhcC5mZS5jb250cm9sc1wiLCBcInNhcC5tXCIsIFwic2FwLmZcIl0sXG5cdHR5cGVzOiBbXCJzYXAuZmUubWFjcm9zLk5hdmlnYXRpb25UeXBlXCJdLFxuXHRpbnRlcmZhY2VzOiBbXSxcblx0Y29udHJvbHM6IFtdLFxuXHRlbGVtZW50czogW10sXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmdcblx0dmVyc2lvbjogXCIke3ZlcnNpb259XCIsXG5cdG5vTGlicmFyeUNTUzogdHJ1ZSxcblx0ZXh0ZW5zaW9uczoge1xuXHRcdGZsQ2hhbmdlSGFuZGxlcnM6IHtcblx0XHRcdFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5GaWx0ZXJCYXJcIjogXCJzYXAvdWkvbWRjL2ZsZXhpYmlsaXR5L0ZpbHRlckJhclwiLFxuXHRcdFx0XCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLlNlY3Rpb25cIjogXCJzYXAvdXhhcC9mbGV4aWJpbGl0eS9PYmplY3RQYWdlU2VjdGlvblwiLFxuXHRcdFx0XCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLnNlY3Rpb24uU3ViU2VjdGlvblwiOiBcInNhcC91eGFwL2ZsZXhpYmlsaXR5L09iamVjdFBhZ2VTdWJTZWN0aW9uXCJcblx0XHR9XG5cdH1cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbn0pIGFzIGFueTtcblxuZXhwb3J0IGVudW0gTmF2aWdhdGlvblR5cGUge1xuXHQvKipcblx0ICogRm9yIEV4dGVybmFsIE5hdmlnYXRpb25cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0RXh0ZXJuYWwgPSBcIkV4dGVybmFsXCIsXG5cblx0LyoqXG5cdCAqIEZvciBJbi1QYWdlIE5hdmlnYXRpb25cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0SW5QYWdlID0gXCJJblBhZ2VcIixcblxuXHQvKipcblx0ICogRm9yIE5vIE5hdmlnYXRpb25cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Tm9uZSA9IFwiTm9uZVwiXG59XG5cbnRoaXNMaWIuTmF2aWdhdGlvblR5cGUgPSBOYXZpZ2F0aW9uVHlwZTtcbkRhdGFUeXBlLnJlZ2lzdGVyRW51bShcInNhcC5mZS5tYWNyb3MuTmF2aWdhdGlvblR5cGVcIiwgdGhpc0xpYi5OYXZpZ2F0aW9uVHlwZSk7XG5GcmFnbWVudC5yZWdpc3RlclR5cGUoXCJDVVNUT01cIiwge1xuXHRsb2FkOiAoRnJhZ21lbnQgYXMgeyBnZXRUeXBlPzogRnVuY3Rpb24gfSkuZ2V0VHlwZT8uKFwiWE1MXCIpLmxvYWQsXG5cdGluaXQ6IGFzeW5jIGZ1bmN0aW9uIChcblx0XHRtU2V0dGluZ3M6IHsgY29udGFpbmluZ1ZpZXc6IFZpZXc7IGlkOiBzdHJpbmc7IGNoaWxkQ3VzdG9tRGF0YTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHVuZGVmaW5lZDsgY29udGV4dFBhdGg/OiBzdHJpbmcgfSxcblx0XHQuLi5hcmdzOiB1bmtub3duW11cblx0KSB7XG5cdFx0Y29uc3QgY3VycmVudENvbnRyb2xsZXIgPSBtU2V0dGluZ3MuY29udGFpbmluZ1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIFBhZ2VDb250cm9sbGVyO1xuXHRcdGxldCB0YXJnZXRDb250cm9sbGVyRXh0ZW5zaW9uOiBQYWdlQ29udHJvbGxlciB8IEV4dGVuc2lvbkFQSSA9IGN1cnJlbnRDb250cm9sbGVyO1xuXHRcdGlmIChjdXJyZW50Q29udHJvbGxlciAmJiAhY3VycmVudENvbnRyb2xsZXIuaXNBPEV4dGVuc2lvbkFQST4oXCJzYXAuZmUuY29yZS5FeHRlbnNpb25BUElcIikpIHtcblx0XHRcdHRhcmdldENvbnRyb2xsZXJFeHRlbnNpb24gPSBjdXJyZW50Q29udHJvbGxlci5nZXRFeHRlbnNpb25BUEkobVNldHRpbmdzLmlkKTtcblx0XHR9XG5cdFx0bVNldHRpbmdzLmNvbnRhaW5pbmdWaWV3ID0ge1xuXHRcdFx0b0NvbnRyb2xsZXI6IHRhcmdldENvbnRyb2xsZXJFeHRlbnNpb25cblx0XHR9IGFzIHVua25vd24gYXMgVmlldztcblx0XHRjb25zdCBjaGlsZEN1c3RvbURhdGEgPSBtU2V0dGluZ3MuY2hpbGRDdXN0b21EYXRhID8/IHVuZGVmaW5lZDtcblx0XHRjb25zdCBjb250ZXh0UGF0aCA9IG1TZXR0aW5ncy5jb250ZXh0UGF0aDtcblx0XHRkZWxldGUgbVNldHRpbmdzLmNoaWxkQ3VzdG9tRGF0YTtcblx0XHRkZWxldGUgbVNldHRpbmdzLmNvbnRleHRQYXRoO1xuXHRcdCh0aGlzIGFzIHsgX2ZuU2V0dGluZ3NQcmVwcm9jZXNzb3I/OiBGdW5jdGlvbiB9KS5fZm5TZXR0aW5nc1ByZXByb2Nlc3NvciA9IGZ1bmN0aW9uIChcblx0XHRcdHRoaXM6IENvbnRyb2wsXG5cdFx0XHRjb250cm9sU2V0dGluZ3M6IHtcblx0XHRcdFx0Y29udGV4dFBhdGg6IHVua25vd247XG5cdFx0XHR9XG5cdFx0KTogdW5rbm93biB7XG5cdFx0XHRpZiAodGhpcy5nZXRNZXRhZGF0YSgpLmhhc1Byb3BlcnR5KFwiY29udGV4dFBhdGhcIikpIHtcblx0XHRcdFx0Y29udHJvbFNldHRpbmdzLmNvbnRleHRQYXRoID8/PSBjb250ZXh0UGF0aDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGNvbnRyb2xTZXR0aW5ncztcblx0XHR9O1xuXHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IChGcmFnbWVudCBhcyB1bmtub3duIGFzIHsgZ2V0VHlwZTogRnVuY3Rpb24gfSkuZ2V0VHlwZShcIlhNTFwiKS5pbml0LmFwcGx5KHRoaXMsIFttU2V0dGluZ3MsIGFyZ3NdKTtcblx0XHRpZiAoY2hpbGRDdXN0b21EYXRhICYmIHJlc3VsdD8uaXNBKFwic2FwLnVpLmNvcmUuQ29udHJvbFwiKSkge1xuXHRcdFx0Zm9yIChjb25zdCBjdXN0b21EYXRhS2V5IGluIGNoaWxkQ3VzdG9tRGF0YSkge1xuXHRcdFx0XHQvLyBVSTUgYWRkcyAnYmluZGluZ1N0cmluZycgd2hlbiBpdHMgYW4gYWRhcHRhdGlvbiBwcm9qZWN0IChTTk9XOiBESU5DMDE0MzUxNSksIHdoaWNoIHJlc3VsdHMgaW4gZXJyb3JzIGxhdGVyXG5cdFx0XHRcdGlmIChjdXN0b21EYXRhS2V5ID09PSBcImJpbmRpbmdTdHJpbmdcIikge1xuXHRcdFx0XHRcdGRlbGV0ZSBjaGlsZEN1c3RvbURhdGFbY3VzdG9tRGF0YUtleV07XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0KHJlc3VsdCBhcyBDb250cm9sKS5hZGRDdXN0b21EYXRhKG5ldyBDdXN0b21EYXRhKHsga2V5OiBjdXN0b21EYXRhS2V5LCB2YWx1ZTogY2hpbGRDdXN0b21EYXRhW2N1c3RvbURhdGFLZXldIH0pKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG59KTtcblxuRnJhZ21lbnQucmVnaXN0ZXJUeXBlKFwiU0NPUEVERkVGUkFHTUVOVFwiLCB7XG5cdGxvYWQ6IChGcmFnbWVudCBhcyB7IGdldFR5cGU/OiBGdW5jdGlvbiB9KS5nZXRUeXBlPy4oXCJYTUxcIikubG9hZCxcblx0aW5pdDogZnVuY3Rpb24gKFxuXHRcdG1TZXR0aW5nczogeyBjb250YWluaW5nVmlldzogVmlldzsgaWQ6IHN0cmluZzsgY2hpbGRDdXN0b21EYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkOyBjb250ZXh0UGF0aD86IHN0cmluZyB9LFxuXHRcdC4uLmFyZ3M6IHVua25vd25bXVxuXHQpIHtcblx0XHRjb25zdCBjb250ZXh0UGF0aCA9IG1TZXR0aW5ncy5jb250ZXh0UGF0aDtcblx0XHRkZWxldGUgbVNldHRpbmdzLmNvbnRleHRQYXRoO1xuXHRcdCh0aGlzIGFzIHsgX2ZuU2V0dGluZ3NQcmVwcm9jZXNzb3I/OiBGdW5jdGlvbiB9KS5fZm5TZXR0aW5nc1ByZXByb2Nlc3NvciA9IGZ1bmN0aW9uIChcblx0XHRcdHRoaXM6IENvbnRyb2wsXG5cdFx0XHRjb250cm9sU2V0dGluZ3M6IHtcblx0XHRcdFx0Y29udGV4dFBhdGg6IHVua25vd247XG5cdFx0XHR9XG5cdFx0KTogdW5rbm93biB7XG5cdFx0XHRpZiAodGhpcy5nZXRNZXRhZGF0YSgpLmhhc1Byb3BlcnR5KFwiY29udGV4dFBhdGhcIikpIHtcblx0XHRcdFx0Y29udHJvbFNldHRpbmdzLmNvbnRleHRQYXRoID8/PSBjb250ZXh0UGF0aDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGNvbnRyb2xTZXR0aW5ncztcblx0XHR9O1xuXHRcdHJldHVybiAoRnJhZ21lbnQgYXMgdW5rbm93biBhcyB7IGdldFR5cGU6IEZ1bmN0aW9uIH0pLmdldFR5cGUoXCJYTUxcIikuaW5pdC5hcHBseSh0aGlzLCBbbVNldHRpbmdzLCBhcmdzXSk7XG5cdH1cbn0pO1xuXG5MaWJyYXJ5LmxvYWQoeyBuYW1lOiBcInNhcC5mZS5tYWNyb3NcIiB9KVxuXHQudGhlbigoKSA9PiB7XG5cdFx0QXBwQ29tcG9uZW50LnJlZ2lzdGVySW5zdGFuY2VEZXBlbmRlbnRQcm9jZXNzRm9yU3RhcnRVcChGaWx0ZXJPcGVyYXRvclV0aWxzLnByb2Nlc3NDdXN0b21GaWx0ZXJPcGVyYXRvcnMpO1xuXHRcdHJldHVybjtcblx0fSlcblx0LmNhdGNoKChlcnJvcjogdW5rbm93bikgPT4ge1xuXHRcdExvZy5lcnJvcihgRXJyb3IgbG9hZGluZyAnc2FwLmZlLm1hY3Jvc2AsIGVycm9yIGFzIEVycm9yIHwgc3RyaW5nKTtcblx0fSk7XG5cbmNvbnN0IHJld3JpdGVOb2RlcyA9IGZ1bmN0aW9uIChwYXJlbnROYW1lc3BhY2U6IHN0cmluZywgcGFyZW50TmFtZTogc3RyaW5nLCBjaGlsZE5hbWVzcGFjZTogc3RyaW5nLCBjaGlsZE5hbWU6IHN0cmluZyk6IEZ1bmN0aW9uIHtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG5cdHJldHVybiBhc3luYyAob05vZGU6IEVsZW1lbnQsIF9vVmlzaXRvcjogSVZpc2l0b3JDYWxsYmFjayk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRcdGlmIChvTm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgb05vZGUuYXR0cmlidXRlcy5sZW5ndGggPT09IDApIHtcblx0XHRcdGF3YWl0IF9vVmlzaXRvci52aXNpdENoaWxkTm9kZXMob05vZGUpO1xuXHRcdFx0cmV0dXJuOyAvLyBJbiBjYXNlIGEgbm9kZSBoYXMgY2hpbGRyZW4gYW5kIG5vIGF0dHJpYnV0ZSBpdCdzIGFscmVhZHkgZm9ybWF0dGVkIHByb3Blcmx5XG5cdFx0fVxuXHRcdGNvbnN0IG5ld05vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoY2hpbGROYW1lc3BhY2UsIGNoaWxkTmFtZSk7XG5cdFx0Y29uc3QgbmV3UGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHBhcmVudE5hbWVzcGFjZSwgcGFyZW50TmFtZSk7XG5cdFx0Y29uc3QgYXR0cmlidXRlTmFtZXMgPSBvTm9kZS5nZXRBdHRyaWJ1dGVOYW1lcygpO1xuXHRcdGlmIChhdHRyaWJ1dGVOYW1lcy5sZW5ndGggPiAwKSB7XG5cdFx0XHQvLyBPbmx5IGNvbnNpZGVyIGNhc2Ugd2hlcmUgd2UgaGF2ZSBhdHRyaWJ1dGVzLCBtZWFuaW5nIHRoZSBvbGQgc3ludGF4XG5cdFx0XHRmb3IgKGNvbnN0IGF0dHJpYnV0ZU5hbWUgb2YgYXR0cmlidXRlTmFtZXMpIHtcblx0XHRcdFx0bmV3Tm9kZS5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgb05vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpISk7XG5cdFx0XHR9XG5cdFx0XHRuZXdQYXJlbnQuYXBwZW5kQ2hpbGQobmV3Tm9kZSk7XG5cdFx0fVxuXHRcdGF3YWl0IF9vVmlzaXRvci52aXNpdENoaWxkTm9kZXMobmV3UGFyZW50KTtcblx0XHRvTm9kZS5yZXBsYWNlV2l0aChuZXdQYXJlbnQpO1xuXHR9O1xufTtcblxuLy8gUmV3cml0ZSB0aGUgb2xkIHNoYXJlT3B0aW9ucyB0byB0aGUgbmV3IG9uZVxuWE1MUHJlcHJvY2Vzc29yLnBsdWdJbihcblx0cmV3cml0ZU5vZGVzKFwic2FwLmZlLm1hY3Jvc1wiLCBcIm1hY3JvczpzaGFyZU9wdGlvbnNcIiwgXCJzYXAuZmUubWFjcm9zLnNoYXJlXCIsIFwibWFjcm9TaGFyZTpTaGFyZU9wdGlvbnNcIiksXG5cdFwic2FwLmZlLm1hY3Jvc1wiLFxuXHRcInNoYXJlT3B0aW9uc1wiXG4pO1xuXG5YTUxQcmVwcm9jZXNzb3IucGx1Z0luKFxuXHRyZXdyaXRlTm9kZXMoXCJzYXAuZmUubWFjcm9zXCIsIFwibWFjcm9zOmZvcm1hdE9wdGlvbnNcIiwgXCJzYXAuZmUubWFjcm9zLmZpZWxkXCIsIFwibWFjcm9GaWVsZDpGaWVsZEZvcm1hdE9wdGlvbnNcIiksXG5cdFwic2FwLmZlLm1hY3Jvc1wiLFxuXHRcImZvcm1hdE9wdGlvbnNcIlxuKTtcblxuWE1MUHJlcHJvY2Vzc29yLnBsdWdJbihcblx0cmV3cml0ZU5vZGVzKFwic2FwLmZlLm1hY3Jvc1wiLCBcIm1hY3Jvczpmb3JtYXRPcHRpb25zXCIsIFwic2FwLmZlLm1hY3Jvcy5maWVsZFwiLCBcIm1hY3JvRmllbGQ6RmllbGRGb3JtYXRPcHRpb25zXCIpLFxuXHRcInNhcC5tXCIsXG5cdFwiZm9ybWF0T3B0aW9uc1wiXG4pO1xuXG5leHBvcnQgZGVmYXVsdCB0aGlzTGliO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztFQTJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sTUFBTUEsZUFBZSxHQUFHLGVBQWU7O0VBRTlDO0VBQUFDLFFBQUEsQ0FBQUQsZUFBQSxHQUFBQSxlQUFBO0VBQ0EsTUFBTUUsT0FBTyxHQUFH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
|
|
152
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYWNyb3NOYW1lc3BhY2UiLCJfZXhwb3J0cyIsInRoaXNMaWIiLCJMaWJyYXJ5IiwiaW5pdCIsIm5hbWUiLCJhcGlWZXJzaW9uIiwiZGVwZW5kZW5jaWVzIiwidHlwZXMiLCJpbnRlcmZhY2VzIiwiY29udHJvbHMiLCJlbGVtZW50cyIsInZlcnNpb24iLCJub0xpYnJhcnlDU1MiLCJleHRlbnNpb25zIiwiZmxDaGFuZ2VIYW5kbGVycyIsIk5hdmlnYXRpb25UeXBlIiwiRGF0YVR5cGUiLCJyZWdpc3RlckVudW0iLCJGcmFnbWVudCIsInJlZ2lzdGVyVHlwZSIsImxvYWQiLCJnZXRUeXBlIiwibVNldHRpbmdzIiwiY3VycmVudENvbnRyb2xsZXIiLCJjb250YWluaW5nVmlldyIsImdldENvbnRyb2xsZXIiLCJ0YXJnZXRDb250cm9sbGVyRXh0ZW5zaW9uIiwiaXNBIiwiZ2V0RXh0ZW5zaW9uQVBJIiwiaWQiLCJvQ29udHJvbGxlciIsImNoaWxkQ3VzdG9tRGF0YSIsInVuZGVmaW5lZCIsImNvbnRleHRQYXRoIiwiX2ZuU2V0dGluZ3NQcmVwcm9jZXNzb3IiLCJjb250cm9sU2V0dGluZ3MiLCJnZXRNZXRhZGF0YSIsImhhc1Byb3BlcnR5IiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJyZXN1bHQiLCJhcHBseSIsImN1c3RvbURhdGFLZXkiLCJhZGRDdXN0b21EYXRhIiwiX2pzeCIsIkN1c3RvbURhdGEiLCJ2YWx1ZSIsIl9sZW4yIiwiX2tleTIiLCJ0aGVuIiwiQXBwQ29tcG9uZW50IiwicmVnaXN0ZXJJbnN0YW5jZURlcGVuZGVudFByb2Nlc3NGb3JTdGFydFVwIiwiRmlsdGVyT3BlcmF0b3JVdGlscyIsInByb2Nlc3NDdXN0b21GaWx0ZXJPcGVyYXRvcnMiLCJjYXRjaCIsImVycm9yIiwiTG9nIiwicmV3cml0ZU5vZGVzIiwicGFyZW50TmFtZXNwYWNlIiwicGFyZW50TmFtZSIsImNoaWxkTmFtZXNwYWNlIiwiY2hpbGROYW1lIiwib05vZGUiLCJfb1Zpc2l0b3IiLCJoYXNDaGlsZE5vZGVzIiwiYXR0cmlidXRlcyIsInZpc2l0Q2hpbGROb2RlcyIsIm5ld05vZGUiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnROUyIsIm5ld1BhcmVudCIsImF0dHJpYnV0ZU5hbWVzIiwiZ2V0QXR0cmlidXRlTmFtZXMiLCJhdHRyaWJ1dGVOYW1lIiwic2V0QXR0cmlidXRlIiwiZ2V0QXR0cmlidXRlIiwiYXBwZW5kQ2hpbGQiLCJyZXBsYWNlV2l0aCIsIlhNTFByZXByb2Nlc3NvciIsInBsdWdJbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsibGlicmFyeS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgXCJzYXAvZi9saWJyYXJ5XCI7XG5pbXBvcnQgXCJzYXAvZmUvY29udHJvbHMvbGlicmFyeVwiO1xuaW1wb3J0IEFwcENvbXBvbmVudCBmcm9tIFwic2FwL2ZlL2NvcmUvQXBwQ29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSBFeHRlbnNpb25BUEkgZnJvbSBcInNhcC9mZS9jb3JlL0V4dGVuc2lvbkFQSVwiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS9jb3JlL1BhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgdHlwZSB7IElWaXNpdG9yQ2FsbGJhY2sgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvdGVtcGxhdGluZy9CdWlsZGluZ0Jsb2NrVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCBcInNhcC9mZS9tYWNyb3MvY29yZVVJL2ZhY3RvcnlcIjtcbmltcG9ydCBGaWx0ZXJPcGVyYXRvclV0aWxzIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci9GaWx0ZXJPcGVyYXRvclV0aWxzXCI7XG5pbXBvcnQgXCJzYXAvZmUvbWFjcm9zL2ZpbHRlci90eXBlL011bHRpVmFsdWVcIjtcbmltcG9ydCBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL3R5cGUvUmFuZ2VcIjtcbmltcG9ydCBcInNhcC9mZS9tYWNyb3MvZm9ybWF0dGVycy9UYWJsZUZvcm1hdHRlclwiO1xuaW1wb3J0IFwic2FwL2ZlL21hY3Jvcy9mb3JtYXR0ZXJzL1Zpc3VhbEZpbHRlckZvcm1hdHRlclwiO1xuaW1wb3J0IFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC92YWx1ZWhlbHAvQWRkaXRpb25hbFZhbHVlRm9ybWF0dGVyXCI7XG5pbXBvcnQgXCJzYXAvZmUvbWFjcm9zL21hY3JvTGlicmFyeVwiO1xuaW1wb3J0IERhdGFUeXBlIGZyb20gXCJzYXAvdWkvYmFzZS9EYXRhVHlwZVwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEN1c3RvbURhdGEgZnJvbSBcInNhcC91aS9jb3JlL0N1c3RvbURhdGFcIjtcbmltcG9ydCBGcmFnbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRnJhZ21lbnRcIjtcbmltcG9ydCBMaWJyYXJ5IGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCBcInNhcC91aS9jb3JlL1hNTFRlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgXCJzYXAvdWkvY29yZS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBWaWV3IGZyb20gXCJzYXAvdWkvY29yZS9tdmMvVmlld1wiO1xuaW1wb3J0IFhNTFByZXByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvdXRpbC9YTUxQcmVwcm9jZXNzb3JcIjtcbmltcG9ydCBcInNhcC91aS9tZGMvZmllbGQvQ29uZGl0aW9uc1R5cGVcIjtcbmltcG9ydCBcInNhcC91aS9tZGMvbGlicmFyeVwiO1xuaW1wb3J0IFwic2FwL3VpL3VuaWZpZWQvbGlicmFyeVwiO1xuXG4vKipcbiAqIExpYnJhcnkgY29udGFpbmluZyB0aGUgYnVpbGRpbmcgYmxvY2tzIGZvciBTQVAgRmlvcmkgZWxlbWVudHMuXG4gKiBAbmFtZXNwYWNlXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBtYWNyb3NOYW1lc3BhY2UgPSBcInNhcC5mZS5tYWNyb3NcIjtcblxuLy8gbGlicmFyeSBkZXBlbmRlbmNpZXNcbmNvbnN0IHRoaXNMaWIgPSBMaWJyYXJ5LmluaXQoe1xuXHRuYW1lOiBcInNhcC5mZS5tYWNyb3NcIixcblx0YXBpVmVyc2lvbjogMixcblx0ZGVwZW5kZW5jaWVzOiBbXCJzYXAudWkuY29yZVwiLCBcInNhcC51aS5tZGNcIiwgXCJzYXAudWkudW5pZmllZFwiLCBcInNhcC5mZS5jb3JlXCIsIFwic2FwLmZlLm5hdmlnYXRpb25cIiwgXCJzYXAuZmUuY29udHJvbHNcIiwgXCJzYXAubVwiLCBcInNhcC5mXCJdLFxuXHR0eXBlczogW1wic2FwLmZlLm1hY3Jvcy5OYXZpZ2F0aW9uVHlwZVwiXSxcblx0aW50ZXJmYWNlczogW10sXG5cdGNvbnRyb2xzOiBbXSxcblx0ZWxlbWVudHM6IFtdLFxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdGVtcGxhdGUtY3VybHktaW4tc3RyaW5nXG5cdHZlcnNpb246IFwiJHt2ZXJzaW9ufVwiLFxuXHRub0xpYnJhcnlDU1M6IHRydWUsXG5cdGV4dGVuc2lvbnM6IHtcblx0XHRmbENoYW5nZUhhbmRsZXJzOiB7XG5cdFx0XHRcInNhcC5mZS5tYWNyb3MuY29udHJvbHMuRmlsdGVyQmFyXCI6IFwic2FwL3VpL21kYy9mbGV4aWJpbGl0eS9GaWx0ZXJCYXJcIixcblx0XHRcdFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5TZWN0aW9uXCI6IFwic2FwL3V4YXAvZmxleGliaWxpdHkvT2JqZWN0UGFnZVNlY3Rpb25cIixcblx0XHRcdFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5zZWN0aW9uLlN1YlNlY3Rpb25cIjogXCJzYXAvdXhhcC9mbGV4aWJpbGl0eS9PYmplY3RQYWdlU3ViU2VjdGlvblwiXG5cdFx0fVxuXHR9XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG59KSBhcyBhbnk7XG5cbmV4cG9ydCBlbnVtIE5hdmlnYXRpb25UeXBlIHtcblx0LyoqXG5cdCAqIEZvciBFeHRlcm5hbCBOYXZpZ2F0aW9uXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEV4dGVybmFsID0gXCJFeHRlcm5hbFwiLFxuXG5cdC8qKlxuXHQgKiBGb3IgSW4tUGFnZSBOYXZpZ2F0aW9uXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEluUGFnZSA9IFwiSW5QYWdlXCIsXG5cblx0LyoqXG5cdCAqIEZvciBObyBOYXZpZ2F0aW9uXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdE5vbmUgPSBcIk5vbmVcIlxufVxuXG50aGlzTGliLk5hdmlnYXRpb25UeXBlID0gTmF2aWdhdGlvblR5cGU7XG5EYXRhVHlwZS5yZWdpc3RlckVudW0oXCJzYXAuZmUubWFjcm9zLk5hdmlnYXRpb25UeXBlXCIsIHRoaXNMaWIuTmF2aWdhdGlvblR5cGUpO1xuRnJhZ21lbnQucmVnaXN0ZXJUeXBlKFwiQ1VTVE9NXCIsIHtcblx0bG9hZDogKEZyYWdtZW50IGFzIHsgZ2V0VHlwZT86IEZ1bmN0aW9uIH0pLmdldFR5cGU/LihcIlhNTFwiKS5sb2FkLFxuXHRpbml0OiBhc3luYyBmdW5jdGlvbiAoXG5cdFx0bVNldHRpbmdzOiB7IGNvbnRhaW5pbmdWaWV3OiBWaWV3OyBpZDogc3RyaW5nOyBjaGlsZEN1c3RvbURhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQ7IGNvbnRleHRQYXRoPzogc3RyaW5nIH0sXG5cdFx0Li4uYXJnczogdW5rbm93bltdXG5cdCkge1xuXHRcdGNvbnN0IGN1cnJlbnRDb250cm9sbGVyID0gbVNldHRpbmdzLmNvbnRhaW5pbmdWaWV3LmdldENvbnRyb2xsZXIoKSBhcyBQYWdlQ29udHJvbGxlcjtcblx0XHRsZXQgdGFyZ2V0Q29udHJvbGxlckV4dGVuc2lvbjogUGFnZUNvbnRyb2xsZXIgfCBFeHRlbnNpb25BUEkgPSBjdXJyZW50Q29udHJvbGxlcjtcblx0XHRpZiAoY3VycmVudENvbnRyb2xsZXIgJiYgIWN1cnJlbnRDb250cm9sbGVyLmlzQTxFeHRlbnNpb25BUEk+KFwic2FwLmZlLmNvcmUuRXh0ZW5zaW9uQVBJXCIpKSB7XG5cdFx0XHR0YXJnZXRDb250cm9sbGVyRXh0ZW5zaW9uID0gY3VycmVudENvbnRyb2xsZXIuZ2V0RXh0ZW5zaW9uQVBJKG1TZXR0aW5ncy5pZCk7XG5cdFx0fVxuXHRcdG1TZXR0aW5ncy5jb250YWluaW5nVmlldyA9IHtcblx0XHRcdG9Db250cm9sbGVyOiB0YXJnZXRDb250cm9sbGVyRXh0ZW5zaW9uXG5cdFx0fSBhcyB1bmtub3duIGFzIFZpZXc7XG5cdFx0Y29uc3QgY2hpbGRDdXN0b21EYXRhID0gbVNldHRpbmdzLmNoaWxkQ3VzdG9tRGF0YSA/PyB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgY29udGV4dFBhdGggPSBtU2V0dGluZ3MuY29udGV4dFBhdGg7XG5cdFx0ZGVsZXRlIG1TZXR0aW5ncy5jaGlsZEN1c3RvbURhdGE7XG5cdFx0ZGVsZXRlIG1TZXR0aW5ncy5jb250ZXh0UGF0aDtcblx0XHQodGhpcyBhcyB7IF9mblNldHRpbmdzUHJlcHJvY2Vzc29yPzogRnVuY3Rpb24gfSkuX2ZuU2V0dGluZ3NQcmVwcm9jZXNzb3IgPSBmdW5jdGlvbiAoXG5cdFx0XHR0aGlzOiBDb250cm9sLFxuXHRcdFx0Y29udHJvbFNldHRpbmdzOiB7XG5cdFx0XHRcdGNvbnRleHRQYXRoOiB1bmtub3duO1xuXHRcdFx0fVxuXHRcdCk6IHVua25vd24ge1xuXHRcdFx0aWYgKHRoaXMuZ2V0TWV0YWRhdGEoKS5oYXNQcm9wZXJ0eShcImNvbnRleHRQYXRoXCIpKSB7XG5cdFx0XHRcdGNvbnRyb2xTZXR0aW5ncy5jb250ZXh0UGF0aCA/Pz0gY29udGV4dFBhdGg7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBjb250cm9sU2V0dGluZ3M7XG5cdFx0fTtcblx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCAoRnJhZ21lbnQgYXMgdW5rbm93biBhcyB7IGdldFR5cGU6IEZ1bmN0aW9uIH0pLmdldFR5cGUoXCJYTUxcIikuaW5pdC5hcHBseSh0aGlzLCBbbVNldHRpbmdzLCBhcmdzXSk7XG5cdFx0aWYgKGNoaWxkQ3VzdG9tRGF0YSAmJiByZXN1bHQ/LmlzQShcInNhcC51aS5jb3JlLkNvbnRyb2xcIikpIHtcblx0XHRcdGZvciAoY29uc3QgY3VzdG9tRGF0YUtleSBpbiBjaGlsZEN1c3RvbURhdGEpIHtcblx0XHRcdFx0Ly8gVUk1IGFkZHMgJ2JpbmRpbmdTdHJpbmcnIHdoZW4gaXRzIGFuIGFkYXB0YXRpb24gcHJvamVjdCAoU05PVzogRElOQzAxNDM1MTUpLCB3aGljaCByZXN1bHRzIGluIGVycm9ycyBsYXRlclxuXHRcdFx0XHRpZiAoY3VzdG9tRGF0YUtleSA9PT0gXCJiaW5kaW5nU3RyaW5nXCIpIHtcblx0XHRcdFx0XHRkZWxldGUgY2hpbGRDdXN0b21EYXRhW2N1c3RvbURhdGFLZXldO1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdChyZXN1bHQgYXMgQ29udHJvbCkuYWRkQ3VzdG9tRGF0YSg8Q3VzdG9tRGF0YSBrZXk9e2N1c3RvbURhdGFLZXl9IHZhbHVlPXtjaGlsZEN1c3RvbURhdGFbY3VzdG9tRGF0YUtleV19IC8+KTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG59KTtcblxuRnJhZ21lbnQucmVnaXN0ZXJUeXBlKFwiU0NPUEVERkVGUkFHTUVOVFwiLCB7XG5cdGxvYWQ6IChGcmFnbWVudCBhcyB7IGdldFR5cGU/OiBGdW5jdGlvbiB9KS5nZXRUeXBlPy4oXCJYTUxcIikubG9hZCxcblx0aW5pdDogZnVuY3Rpb24gKFxuXHRcdG1TZXR0aW5nczogeyBjb250YWluaW5nVmlldzogVmlldzsgaWQ6IHN0cmluZzsgY2hpbGRDdXN0b21EYXRhOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkOyBjb250ZXh0UGF0aD86IHN0cmluZyB9LFxuXHRcdC4uLmFyZ3M6IHVua25vd25bXVxuXHQpIHtcblx0XHRjb25zdCBjb250ZXh0UGF0aCA9IG1TZXR0aW5ncy5jb250ZXh0UGF0aDtcblx0XHRkZWxldGUgbVNldHRpbmdzLmNvbnRleHRQYXRoO1xuXHRcdCh0aGlzIGFzIHsgX2ZuU2V0dGluZ3NQcmVwcm9jZXNzb3I/OiBGdW5jdGlvbiB9KS5fZm5TZXR0aW5nc1ByZXByb2Nlc3NvciA9IGZ1bmN0aW9uIChcblx0XHRcdHRoaXM6IENvbnRyb2wsXG5cdFx0XHRjb250cm9sU2V0dGluZ3M6IHtcblx0XHRcdFx0Y29udGV4dFBhdGg6IHVua25vd247XG5cdFx0XHR9XG5cdFx0KTogdW5rbm93biB7XG5cdFx0XHRpZiAodGhpcy5nZXRNZXRhZGF0YSgpLmhhc1Byb3BlcnR5KFwiY29udGV4dFBhdGhcIikpIHtcblx0XHRcdFx0Y29udHJvbFNldHRpbmdzLmNvbnRleHRQYXRoID8/PSBjb250ZXh0UGF0aDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGNvbnRyb2xTZXR0aW5ncztcblx0XHR9O1xuXHRcdHJldHVybiAoRnJhZ21lbnQgYXMgdW5rbm93biBhcyB7IGdldFR5cGU6IEZ1bmN0aW9uIH0pLmdldFR5cGUoXCJYTUxcIikuaW5pdC5hcHBseSh0aGlzLCBbbVNldHRpbmdzLCBhcmdzXSk7XG5cdH1cbn0pO1xuXG5MaWJyYXJ5LmxvYWQoeyBuYW1lOiBcInNhcC5mZS5tYWNyb3NcIiB9KVxuXHQudGhlbigoKSA9PiB7XG5cdFx0QXBwQ29tcG9uZW50LnJlZ2lzdGVySW5zdGFuY2VEZXBlbmRlbnRQcm9jZXNzRm9yU3RhcnRVcChGaWx0ZXJPcGVyYXRvclV0aWxzLnByb2Nlc3NDdXN0b21GaWx0ZXJPcGVyYXRvcnMpO1xuXHRcdHJldHVybjtcblx0fSlcblx0LmNhdGNoKChlcnJvcjogdW5rbm93bikgPT4ge1xuXHRcdExvZy5lcnJvcihgRXJyb3IgbG9hZGluZyAnc2FwLmZlLm1hY3Jvc2AsIGVycm9yIGFzIEVycm9yIHwgc3RyaW5nKTtcblx0fSk7XG5cbmNvbnN0IHJld3JpdGVOb2RlcyA9IGZ1bmN0aW9uIChwYXJlbnROYW1lc3BhY2U6IHN0cmluZywgcGFyZW50TmFtZTogc3RyaW5nLCBjaGlsZE5hbWVzcGFjZTogc3RyaW5nLCBjaGlsZE5hbWU6IHN0cmluZyk6IEZ1bmN0aW9uIHtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0XG5cdHJldHVybiBhc3luYyAob05vZGU6IEVsZW1lbnQsIF9vVmlzaXRvcjogSVZpc2l0b3JDYWxsYmFjayk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRcdGlmIChvTm9kZS5oYXNDaGlsZE5vZGVzKCkgJiYgb05vZGUuYXR0cmlidXRlcy5sZW5ndGggPT09IDApIHtcblx0XHRcdGF3YWl0IF9vVmlzaXRvci52aXNpdENoaWxkTm9kZXMob05vZGUpO1xuXHRcdFx0cmV0dXJuOyAvLyBJbiBjYXNlIGEgbm9kZSBoYXMgY2hpbGRyZW4gYW5kIG5vIGF0dHJpYnV0ZSBpdCdzIGFscmVhZHkgZm9ybWF0dGVkIHByb3Blcmx5XG5cdFx0fVxuXHRcdGNvbnN0IG5ld05vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoY2hpbGROYW1lc3BhY2UsIGNoaWxkTmFtZSk7XG5cdFx0Y29uc3QgbmV3UGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHBhcmVudE5hbWVzcGFjZSwgcGFyZW50TmFtZSk7XG5cdFx0Y29uc3QgYXR0cmlidXRlTmFtZXMgPSBvTm9kZS5nZXRBdHRyaWJ1dGVOYW1lcygpO1xuXHRcdGlmIChhdHRyaWJ1dGVOYW1lcy5sZW5ndGggPiAwKSB7XG5cdFx0XHQvLyBPbmx5IGNvbnNpZGVyIGNhc2Ugd2hlcmUgd2UgaGF2ZSBhdHRyaWJ1dGVzLCBtZWFuaW5nIHRoZSBvbGQgc3ludGF4XG5cdFx0XHRmb3IgKGNvbnN0IGF0dHJpYnV0ZU5hbWUgb2YgYXR0cmlidXRlTmFtZXMpIHtcblx0XHRcdFx0bmV3Tm9kZS5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSwgb05vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpISk7XG5cdFx0XHR9XG5cdFx0XHRuZXdQYXJlbnQuYXBwZW5kQ2hpbGQobmV3Tm9kZSk7XG5cdFx0fVxuXHRcdGF3YWl0IF9vVmlzaXRvci52aXNpdENoaWxkTm9kZXMobmV3UGFyZW50KTtcblx0XHRvTm9kZS5yZXBsYWNlV2l0aChuZXdQYXJlbnQpO1xuXHR9O1xufTtcblxuLy8gUmV3cml0ZSB0aGUgb2xkIHNoYXJlT3B0aW9ucyB0byB0aGUgbmV3IG9uZVxuWE1MUHJlcHJvY2Vzc29yLnBsdWdJbihcblx0cmV3cml0ZU5vZGVzKFwic2FwLmZlLm1hY3Jvc1wiLCBcIm1hY3JvczpzaGFyZU9wdGlvbnNcIiwgXCJzYXAuZmUubWFjcm9zLnNoYXJlXCIsIFwibWFjcm9TaGFyZTpTaGFyZU9wdGlvbnNcIiksXG5cdFwic2FwLmZlLm1hY3Jvc1wiLFxuXHRcInNoYXJlT3B0aW9uc1wiXG4pO1xuXG5YTUxQcmVwcm9jZXNzb3IucGx1Z0luKFxuXHRyZXdyaXRlTm9kZXMoXCJzYXAuZmUubWFjcm9zXCIsIFwibWFjcm9zOmZvcm1hdE9wdGlvbnNcIiwgXCJzYXAuZmUubWFjcm9zLmZpZWxkXCIsIFwibWFjcm9GaWVsZDpGaWVsZEZvcm1hdE9wdGlvbnNcIiksXG5cdFwic2FwLmZlLm1hY3Jvc1wiLFxuXHRcImZvcm1hdE9wdGlvbnNcIlxuKTtcblxuWE1MUHJlcHJvY2Vzc29yLnBsdWdJbihcblx0cmV3cml0ZU5vZGVzKFwic2FwLmZlLm1hY3Jvc1wiLCBcIm1hY3Jvczpmb3JtYXRPcHRpb25zXCIsIFwic2FwLmZlLm1hY3Jvcy5maWVsZFwiLCBcIm1hY3JvRmllbGQ6RmllbGRGb3JtYXRPcHRpb25zXCIpLFxuXHRcInNhcC5tXCIsXG5cdFwiZm9ybWF0T3B0aW9uc1wiXG4pO1xuXG5leHBvcnQgZGVmYXVsdCB0aGlzTGliO1xuIl0sIm1h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
|
|
@@ -11,6 +11,8 @@ import FilterOperatorUtils from "sap/fe/macros/filter/FilterOperatorUtils";
|
|
|
11
11
|
import "sap/fe/macros/filter/type/MultiValue";
|
|
12
12
|
import "sap/fe/macros/filter/type/Range";
|
|
13
13
|
import "sap/fe/macros/formatters/TableFormatter";
|
|
14
|
+
import "sap/fe/macros/formatters/VisualFilterFormatter";
|
|
15
|
+
import "sap/fe/macros/internal/valuehelp/AdditionalValueFormatter";
|
|
14
16
|
import "sap/fe/macros/macroLibrary";
|
|
15
17
|
import DataType from "sap/ui/base/DataType";
|
|
16
18
|
import type Control from "sap/ui/core/Control";
|
|
@@ -114,7 +116,7 @@ Fragment.registerType("CUSTOM", {
|
|
|
114
116
|
delete childCustomData[customDataKey];
|
|
115
117
|
continue;
|
|
116
118
|
}
|
|
117
|
-
(result as Control).addCustomData(
|
|
119
|
+
(result as Control).addCustomData(<CustomData key={customDataKey} value={childCustomData[customDataKey]} />);
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
122
|
|
|
@@ -99,7 +99,9 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepClone", "sap/fe/core/templatin
|
|
|
99
99
|
* @returns Supported filter fields.
|
|
100
100
|
*/
|
|
101
101
|
async _getSupportedFilterFields(control) {
|
|
102
|
-
if (control.isA("sap.ui.mdc.
|
|
102
|
+
if (control.isA("sap.ui.mdc.Table")) {
|
|
103
|
+
return control.getParent().getEnhancedFetchedPropertyInfos();
|
|
104
|
+
} else if (control.isA("sap.ui.mdc.Filterbar")) {
|
|
103
105
|
await control.waitForInitialization();
|
|
104
106
|
return control.getControlDelegate().fetchFilterProperties(control);
|
|
105
107
|
} else if (control.isA("sap.fe.macros.controls.FilterBar")) {
|
|
@@ -110,7 +112,7 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepClone", "sap/fe/core/templatin
|
|
|
110
112
|
return control.getControlDelegate().fetchProperties(control);
|
|
111
113
|
},
|
|
112
114
|
/**
|
|
113
|
-
* Clears all input values of visible filter fields in the table, chart, or filter bar
|
|
115
|
+
* Clears all input values of visible filter fields in the table, chart, or filter bar.
|
|
114
116
|
* @param controlInstance This can be a filter bar, chart, or table.
|
|
115
117
|
*/
|
|
116
118
|
async clearFilterValues(controlInstance) {
|
|
@@ -183,9 +185,7 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepClone", "sap/fe/core/templatin
|
|
|
183
185
|
propertyInfos.forEach(propertyInfo => {
|
|
184
186
|
if (control.isA("sap.ui.mdc.Table")) {
|
|
185
187
|
propertyInfo["conditionPath"] = propertyInfo.name;
|
|
186
|
-
propertyInfo["annotationPath"] = propertyInfo.metadataPath ? propertyInfo.metadataPath : "";
|
|
187
188
|
propertyInfo["hasValueHelp"] = PropertyHelper.hasValueHelp(control.getPropertyHelper().getProperty(propertyInfo.name));
|
|
188
|
-
propertyInfo["dataType"] = propertyInfo?.typeConfig?.className;
|
|
189
189
|
} else if (control.isA("sap.ui.mdc.Chart")) {
|
|
190
190
|
if (propertyInfo.path) {
|
|
191
191
|
propertyInfo["name"] = propertyInfo.path;
|
|
@@ -203,11 +203,13 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepClone", "sap/fe/core/templatin
|
|
|
203
203
|
* @param controlInstance This could be a table, chart, or filter bar
|
|
204
204
|
* @param selectionVariant The selection variant to apply to the respective mdc controls
|
|
205
205
|
* @param prefillDescriptions Optional. If true, we will use the associated text property values (if they're available in the selectionVariant) to display the filter value descriptions, instead of loading them from the backend
|
|
206
|
+
* @param fromNavigationParameters Optional. If true, the selection variant is assumed to come from navigation parameters. In this case, if the selection variant contains select options for properties that are not present in the filter bar, these select options will be ignored and will not lead to clearing the filter bar.
|
|
206
207
|
* @returns A promise for asynchronous handling
|
|
207
208
|
* @public
|
|
208
209
|
*/
|
|
209
210
|
async setSelectionVariantToMdcControl(controlInstance, selectionVariant) {
|
|
210
211
|
let prefillDescriptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
212
|
+
let fromNavigationParameters = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
211
213
|
try {
|
|
212
214
|
const state = await StateUtil.retrieveExternalState(controlInstance);
|
|
213
215
|
if (!state.filter) {
|
|
@@ -215,6 +217,14 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepClone", "sap/fe/core/templatin
|
|
|
215
217
|
return;
|
|
216
218
|
}
|
|
217
219
|
const conditions = await this.convertSelectionVariantToStateFilters(controlInstance, selectionVariant, prefillDescriptions, controlInstance?.getModel());
|
|
220
|
+
if (fromNavigationParameters && selectionVariant.getSelectOptionsPropertyNames().length > 0 && Object.keys(conditions).length === 0) {
|
|
221
|
+
// If the selection variant has select options but no conditions could be mapped to the filter bar, we return an empty array
|
|
222
|
+
// This is to avoid clearing the filter bar in this case
|
|
223
|
+
// This can happen if the selection variant has only parameters or select options for properties not present in the filter bar
|
|
224
|
+
// In this case, we assume that the selection variant is not meant to clear the filter bar
|
|
225
|
+
// and we do not apply it
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
218
228
|
|
|
219
229
|
// Clear filter of table before applying selection variant
|
|
220
230
|
await this.clearFilterValues(controlInstance?.getParent());
|
|
@@ -257,4 +267,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepClone", "sap/fe/core/templatin
|
|
|
257
267
|
};
|
|
258
268
|
return StateHelper;
|
|
259
269
|
}, false);
|
|
260
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGF0ZUhlbHBlciIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJjb250cm9sIiwiY29udHJvbFN0YXRlIiwiU3RhdGVVdGlsIiwicmV0cmlldmVFeHRlcm5hbFN0YXRlIiwiY29udHJvbE9iamVjdCIsImZpbHRlciIsInBhcmFtZXRlcnMiLCJnZXRQYXJlbnQiLCJpc0EiLCJnZXRQYXJhbWV0ZXJzIiwidW5kZWZpbmVkIiwic2VsZWN0aW9uVmFyaWFudCIsIlN0YXRlRmlsdGVyc1RvU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnRGcm9tQ29uZGl0aW9ucyIsImdldFByb3BlcnR5SGVscGVyIiwiZXh0ZXJuYWxTViIsIlNlbGVjdGlvblZhcmlhbnQiLCJzZWxlY3RPcHRpb25zIiwiX2dldFNlbGVjdE9wdGlvbnMiLCJwcm9wZXJ0eSIsIm1hc3NBZGRTZWxlY3RPcHRpb24iLCJzcGxpdCIsImVycm9yIiwiaWQiLCJnZXRJZCIsIm1lc3NhZ2UiLCJFcnJvciIsIlN0cmluZyIsIkxvZyIsImNvbnZlcnRTZWxlY3Rpb25WYXJpYW50VG9TdGF0ZUZpbHRlcnMiLCJwcmVmaWxsRGVzY3JpcHRpb25zIiwibW9kZWwiLCJwcm9wZXJ0eUluZm9zIiwiX2dldFN1cHBvcnRlZEZpbHRlckZpZWxkcyIsImxlbmd0aCIsImZpbHRlckJhckluZm9Gb3JDb252ZXJzaW9uIiwiX2dldENvbnRyb2xJbmZvRm9yQ29udmVyc2lvbiIsIm1ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImNvcHlvZlByb3BlcnR5SW5mb3MiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJ1cGRhdGVkUHJvcGVydHlJbmZvcyIsIl91cGRhdGVQcm9wZXJ0eUluZm9Ub1N1cHBvcnRTViIsImNvbmRpdGlvbnMiLCJzdlRvU3RhdGVGaWx0ZXJzIiwiZ2V0U3RhdGVGaWx0ZXJzRnJvbVNWIiwiZ2V0TW9kZWwiLCJjb250ZXh0UGF0aCIsImRhdGEiLCJ1c2VTZW1hbnRpY0RhdGVSYW5nZSIsInZpZXdEYXRhSW5zdGFuY2UiLCJ2aWV3RGF0YSIsImdldERhdGEiLCJjb25maWciLCJjb250cm9sQ29uZmlndXJhdGlvbiIsInNlbGVjdGlvbkZpZWxkc0NvbmZpZ3MiLCJmaWx0ZXJGaWVsZHNDb25maWciLCJmaWx0ZXJGaWVsZHMiLCJ3YWl0Rm9ySW5pdGlhbGl6YXRpb24iLCJnZXRDb250cm9sRGVsZWdhdGUiLCJmZXRjaEZpbHRlclByb3BlcnRpZXMiLCJhd2FpdENvbnRyb2xEZWxlZ2F0ZSIsImZldGNoUHJvcGVydGllcyIsImNsZWFyRmlsdGVyVmFsdWVzIiwiY29udHJvbEluc3RhbmNlIiwiX2NsZWFyRmlsdGVyVmFsdWVzV2l0aE9wdGlvbnMiLCJjb250ZW50IiwiZmlyZUV2ZW50Iiwib3B0aW9ucyIsInN0YXRlIiwiZWRpdFN0YXRlUGF0aCIsImN1cnJlbnRFZGl0U3RhdGVDb25kaXRpb24iLCJlZGl0U3RhdGVEZWZhdWx0VmFsdWUiLCJjdXJyZW50RWRpdFN0YXRlSXNEZWZhdWx0Iiwic2hvdWxkQ2xlYXJFZGl0RmlsdGVyIiwiRHJhZnRFZGl0U3RhdGUiLCJBTEwiLCJkZWVwQ2xvbmUiLCJ2YWx1ZXMiLCJPYmplY3QiLCJrZXlzIiwiY2xlYXJFZGl0RmlsdGVyIiwiY29uZGl0aW9uUGF0aCIsImNvbmRpdGlvbiIsImZpbHRlcmVkIiwiYXBwbHlFeHRlcm5hbFN0YXRlIiwiY2xlYW5VcEFsbEZpbHRlckZpZWxkc0luRXJyb3JTdGF0ZSIsImZvckVhY2giLCJwcm9wZXJ0eUluZm8iLCJuYW1lIiwibWV0YWRhdGFQYXRoIiwiUHJvcGVydHlIZWxwZXIiLCJoYXNWYWx1ZUhlbHAiLCJnZXRQcm9wZXJ0eSIsInR5cGVDb25maWciLCJjbGFzc05hbWUiLCJwYXRoIiwiZ2V0UHJvcGVydHlEYXRhTW9kZWwiLCJ0YXJnZXRPYmplY3QiLCJkYXRhVHlwZSIsInNldFNlbGVjdGlvblZhcmlhbnRUb01kY0NvbnRyb2wiLCJhcmd1bWVudHMiLCJzdGF0ZVRvQXBwbHkiLCJnZXRTdGF0ZVRvQXBwbHkiLCJjb252ZXJ0Q29uZGl0aW9uc0ZvckNoYXJ0IiwiZGlmZlN0YXRlIiwiYXBwbHlTdGF0ZVJlc3VsdCIsImVyciIsImFzc2lnbiIsIml0ZW1zIiwicHJvcGVydHlPYmoiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlN0YXRlSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IGRlZXBDbG9uZSBmcm9tIFwic2FwL2Jhc2UvdXRpbC9kZWVwQ2xvbmVcIjtcbmltcG9ydCB0eXBlIHsgVmlld0RhdGEgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgKiBhcyBQcm9wZXJ0eUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IERyYWZ0RWRpdFN0YXRlIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9EcmFmdEVkaXRTdGF0ZVwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL2ZpbHRlckJhci9GaWx0ZXJCYXJBUElcIjtcbmltcG9ydCB0eXBlIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvaW50ZXJuYWwvUHJvcGVydHlJbmZvXCI7XG5pbXBvcnQgdHlwZSB7IENvbnZlcnNpb25JbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvbWRjL2FkYXB0ZXIvU2VsZWN0aW9uVmFyaWFudFRvU3RhdGVGaWx0ZXJzXCI7XG5pbXBvcnQgc3ZUb1N0YXRlRmlsdGVycyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9tZGMvYWRhcHRlci9TZWxlY3Rpb25WYXJpYW50VG9TdGF0ZUZpbHRlcnNcIjtcbmltcG9ydCBTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQgZnJvbSBcInNhcC9mZS9tYWNyb3MvbWRjL2FkYXB0ZXIvU3RhdGVGaWx0ZXJUb1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCB0eXBlIHsgRXh0ZXJuYWxTdGF0ZVR5cGUgfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy92YWx1ZWhlbHAvVmFsdWVIZWxwRGVsZWdhdGVcIjtcbmltcG9ydCBTZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSBDb3JlQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgQ2hhcnQgZnJvbSBcInNhcC91aS9tZGMvQ2hhcnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9tZGMvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IHR5cGUgVGFibGUgZnJvbSBcInNhcC91aS9tZGMvVGFibGVcIjtcbmltcG9ydCB0eXBlIHsgU3RhdGVUb0FwcGx5LCBGaWx0ZXIgYXMgU3RhdGVVdGlsRmlsdGVyIH0gZnJvbSBcInNhcC91aS9tZGMvcDEzbi9TdGF0ZVV0aWxcIjtcbmltcG9ydCBTdGF0ZVV0aWwgZnJvbSBcInNhcC91aS9tZGMvcDEzbi9TdGF0ZVV0aWxcIjtcbmltcG9ydCB0eXBlIE1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvTW9kZWxcIjtcbmltcG9ydCB0eXBlIEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1ldGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTWV0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBDaGFydFR5cGUgZnJvbSBcIi4uLy4uL0NoYXJ0XCI7XG5pbXBvcnQgdHlwZSBNYWNyb0FQSSBmcm9tIFwiLi4vLi4vTWFjcm9BUElcIjtcblxuLyoqXG4gKiBUaGlzIGlzIHRvIGV4dGVuZCBNREMgY29udHJvbCBBUElzIGZvciBmaWx0ZXIsIHRhYmxlLCBjaGFydCBidWlsZGluZyBibG9ja3MuXG4gKiBAcHVibGljXG4gKi9cblxuY29uc3QgU3RhdGVIZWxwZXIgPSB7XG5cdC8qKlxuXHQgKiBHZXRzIHNlbGVjdGlvbiB2YXJpYW50IGZyb20gdGhlIG1kYyBjb250cm9sLlxuXHQgKiBAcGFyYW0gY29udHJvbCBUaGUgY29udHJvbCBmb3Igd2hpY2ggU2VsZWN0aW9uIFZhcmlhbnQgaXMgdG8gYmUgZmV0Y2hlZFxuXHQgKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggcmVzb2x2ZXMgd2l0aCBhIHtAbGluayBzYXAuZmUubmF2aWdhdGlvbi5TZWxlY3Rpb25WYXJpYW50fVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRhc3luYyBnZXRTZWxlY3Rpb25WYXJpYW50KGNvbnRyb2w6IENvcmVDb250cm9sIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxTZWxlY3Rpb25WYXJpYW50PiB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGNvbnRyb2xTdGF0ZSA9IGF3YWl0IFN0YXRlVXRpbC5yZXRyaWV2ZUV4dGVybmFsU3RhdGUoY29udHJvbCBhcyBDb250cm9sKTtcblx0XHRcdGNvbnN0IGNvbnRyb2xPYmplY3QgPSBjb250cm9sU3RhdGUuZmlsdGVyIGFzIFN0YXRlVXRpbEZpbHRlcjtcblx0XHRcdGxldCBwYXJhbWV0ZXJzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCA9IFtdO1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRjb250cm9sPy5nZXRQYXJlbnQoKT8uaXNBKFwic2FwLmZlLm1hY3Jvcy5maWx0ZXJCYXIuRmlsdGVyQmFyQVBJXCIpICYmXG5cdFx0XHRcdChjb250cm9sLmdldFBhcmVudCgpIGFzIEZpbHRlckJhckFQSSkuZ2V0UGFyYW1ldGVycyAhPT0gdW5kZWZpbmVkXG5cdFx0XHQpIHtcblx0XHRcdFx0cGFyYW1ldGVycyA9IChjb250cm9sLmdldFBhcmVudCgpIGFzIEZpbHRlckJhckFQSSkuZ2V0UGFyYW1ldGVycygpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3Qgc2VsZWN0aW9uVmFyaWFudCA9IFN0YXRlRmlsdGVyc1RvU2VsZWN0aW9uVmFyaWFudC5nZXRTZWxlY3Rpb25WYXJpYW50RnJvbUNvbmRpdGlvbnMoXG5cdFx0XHRcdGNvbnRyb2xPYmplY3QsXG5cdFx0XHRcdChjb250cm9sIGFzIENvbnRyb2wpLmdldFByb3BlcnR5SGVscGVyKCksXG5cdFx0XHRcdHBhcmFtZXRlcnNcblx0XHRcdCk7XG5cdFx0XHRpZiAoY29udHJvbD8uaXNBKFwic2FwLnVpLm1kYy5DaGFydFwiKSkge1xuXHRcdFx0XHRjb25zdCBleHRlcm5hbFNWID0gbmV3IFNlbGVjdGlvblZhcmlhbnQoKTtcblx0XHRcdFx0Y29uc3Qgc2VsZWN0T3B0aW9ucyA9IHNlbGVjdGlvblZhcmlhbnQuX2dldFNlbGVjdE9wdGlvbnMoKTtcblx0XHRcdFx0Zm9yIChjb25zdCBwcm9wZXJ0eSBpbiBzZWxlY3RPcHRpb25zKSB7XG5cdFx0XHRcdFx0ZXh0ZXJuYWxTVi5tYXNzQWRkU2VsZWN0T3B0aW9uKHByb3BlcnR5LnNwbGl0KFwiX2ZlX2dyb3VwYWJsZV9cIilbMV0sIHNlbGVjdE9wdGlvbnNbcHJvcGVydHldKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gZXh0ZXJuYWxTVjtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiBzZWxlY3Rpb25WYXJpYW50O1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG5cdFx0XHRjb25zdCBpZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gY29udHJvbD8uZ2V0SWQoKTtcblx0XHRcdGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6IFN0cmluZyhlcnJvcik7XG5cdFx0XHRMb2cuZXJyb3IoYEJ1aWxkaW5nIEJsb2NrICgke2lkfSkgLSBnZXQgc2VsZWN0aW9uIHZhcmlhbnQgZmFpbGVkIDogJHttZXNzYWdlfWApO1xuXHRcdFx0dGhyb3cgRXJyb3IobWVzc2FnZSk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBDb252ZXJ0IHNlbGVjdGlvbiB2YXJpYW50IHRvIGNvbmRpdGlvbnMuXG5cdCAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgY2FuIGJlIGEgdGFibGUsIGNoYXJ0IG9yIGZpbHRlciBiYXJcblx0ICogQHBhcmFtIHNlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IHRvIGFwcGx5IHRvIHRoZSB0YWJsZSBvciBjaGFydCBvciBmaWx0ZXIgYmFyLlxuXHQgKiBAcGFyYW0gcHJlZmlsbERlc2NyaXB0aW9ucyBJZiB0cnVlLCB3ZSB0cnkgdG8gZmluZCB0aGUgYXNzb2NpYXRlZCBUZXh0IHZhbHVlIGZvciBlYWNoIHByb3BlcnR5IGluIHRoZSBzZWxlY3Rpb25WYXJpYW50ICh0byBhdm9pZCBmZXRjaGluZyBpdCBmcm9tIHRoZSBzZXJ2ZXIpXG5cdCAqIEBwYXJhbSBtb2RlbCBUaGUgY29udHJvbCBtb2RlbFxuXHQgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIGNvbmRpdGlvbnNcblx0ICovXG5cdGFzeW5jIGNvbnZlcnRTZWxlY3Rpb25WYXJpYW50VG9TdGF0ZUZpbHRlcnMoXG5cdFx0Y29udHJvbDogQ29udHJvbCxcblx0XHRzZWxlY3Rpb25WYXJpYW50OiBTZWxlY3Rpb25WYXJpYW50LFxuXHRcdHByZWZpbGxEZXNjcmlwdGlvbnM6IGJvb2xlYW4sXG5cdFx0bW9kZWw/OiBNb2RlbFxuXHQpOiBQcm9taXNlPFN0YXRlVXRpbEZpbHRlcj4ge1xuXHRcdC8vIE5vdGU6IFRoaXMgbWV0aG9kIGlzIHByaXZhdGUgYW5kIHJlc3RyaWN0ZWQgdG8gdXNhZ2UgYnkgc2FwLmZlKFZpZXdTdGF0ZSBjb250cm9sbGVyIGV4dGVuc2lvbikgZm9yIGZpbHRlciBiYXIvIGNoYXJ0IC8gdGFibGUgc3RhdGUgc2NlbmFyaW9zLlxuXHRcdGNvbnN0IHByb3BlcnR5SW5mb3MgPSBhd2FpdCB0aGlzLl9nZXRTdXBwb3J0ZWRGaWx0ZXJGaWVsZHMoY29udHJvbCk7XG5cblx0XHRpZiAoIXByb3BlcnR5SW5mb3MubGVuZ3RoKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJObyB2YWxpZCBtZXRhZGF0YSBwcm9wZXJ0aWVzIHByZXNlbnQgZm9yIGZpbHRlciBiYXJcIik7XG5cdFx0fVxuXG5cdFx0Y29uc3QgZmlsdGVyQmFySW5mb0ZvckNvbnZlcnNpb24gPSB0aGlzLl9nZXRDb250cm9sSW5mb0ZvckNvbnZlcnNpb24oY29udHJvbCk7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gbW9kZWw/LmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsO1xuXHRcdGNvbnN0IGNvcHlvZlByb3BlcnR5SW5mb3MgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHByb3BlcnR5SW5mb3MpKTtcblx0XHRjb25zdCB1cGRhdGVkUHJvcGVydHlJbmZvcyA9IHRoaXMuX3VwZGF0ZVByb3BlcnR5SW5mb1RvU3VwcG9ydFNWKGNvbnRyb2wsIGNvcHlvZlByb3BlcnR5SW5mb3MpO1xuXHRcdGNvbnN0IGNvbmRpdGlvbnM6IFN0YXRlVXRpbEZpbHRlciA9IHN2VG9TdGF0ZUZpbHRlcnMuZ2V0U3RhdGVGaWx0ZXJzRnJvbVNWKFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdGZpbHRlckJhckluZm9Gb3JDb252ZXJzaW9uLFxuXHRcdFx0dXBkYXRlZFByb3BlcnR5SW5mb3MgPz8gY29weW9mUHJvcGVydHlJbmZvcyxcblx0XHRcdHByZWZpbGxEZXNjcmlwdGlvbnMsXG5cdFx0XHRtZXRhTW9kZWxcblx0XHQpO1xuXG5cdFx0cmV0dXJuIGNvbmRpdGlvbnM7XG5cdH0sXG5cblx0LyoqXG5cdCAqIEdldCB0aGUgZmlsdGVyIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgdGhlIGNvbnZlcnNpb24gb2Ygc2VsZWN0aW9uIHZhcmlhbnQgdG8gY29uZGl0aW9ucy5cblx0ICogQHBhcmFtIGNvbnRyb2wgVGhpcyBjYW4gYmUgYSB0YWJsZSwgY2hhcnQsIG9yIGZpbHRlcmJhclxuXHQgKiBAcmV0dXJucyBUaGUgY29udHJvbCBpbmZvcm1hdGlvbiAobWV0YU1vZGVsLCBjb250ZXh0UGF0aCwgdXNlIG9mIHNlbWFudGljIGRhdGUgcmFuZ2UsIGFsbCBmaWx0ZXIgZmllbGRzIGNvbmZpZylcblx0ICovXG5cdF9nZXRDb250cm9sSW5mb0ZvckNvbnZlcnNpb24oY29udHJvbDogQ29udHJvbCk6IENvbnZlcnNpb25JbmZvIHtcblx0XHRjb25zdCBtZXRhTW9kZWwgPSBjb250cm9sLmdldE1vZGVsKCk/LmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsLFxuXHRcdFx0Y29udGV4dFBhdGggPSBjb250cm9sLmRhdGEoXCJlbnRpdHlUeXBlXCIpIGFzIHN0cmluZztcblx0XHRpZiAoY29udHJvbC5pc0EoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLkZpbHRlckJhclwiKSkge1xuXHRcdFx0Y29uc3QgdXNlU2VtYW50aWNEYXRlUmFuZ2U6IGJvb2xlYW4gPVxuXHRcdFx0XHRcdGNvbnRyb2wuZGF0YShcInVzZVNlbWFudGljRGF0ZVJhbmdlXCIpID09PSBcInRydWVcIiB8fCBjb250cm9sLmRhdGEoXCJ1c2VTZW1hbnRpY0RhdGVSYW5nZVwiKSA9PT0gdHJ1ZSxcblx0XHRcdFx0dmlld0RhdGFJbnN0YW5jZSA9IGNvbnRyb2wuZ2V0TW9kZWwoXCJ2aWV3RGF0YVwiKSBhcyBKU09OTW9kZWwsXG5cdFx0XHRcdHZpZXdEYXRhID0gdmlld0RhdGFJbnN0YW5jZS5nZXREYXRhKCkgYXMgVmlld0RhdGEsXG5cdFx0XHRcdGNvbmZpZyA9IHZpZXdEYXRhPy5jb250cm9sQ29uZmlndXJhdGlvbixcblx0XHRcdFx0c2VsZWN0aW9uRmllbGRzQ29uZmlncyA9IGNvbmZpZz8uW1wiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLlNlbGVjdGlvbkZpZWxkc1wiXSxcblx0XHRcdFx0ZmlsdGVyRmllbGRzQ29uZmlnID0gc2VsZWN0aW9uRmllbGRzQ29uZmlncz8uZmlsdGVyRmllbGRzO1xuXHRcdFx0cmV0dXJuIHsgbWV0YU1vZGVsLCBjb250ZXh0UGF0aCwgdXNlU2VtYW50aWNEYXRlUmFuZ2UsIGZpbHRlckZpZWxkc0NvbmZpZywgc2VsZWN0aW9uRmllbGRzQ29uZmlncyB9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4geyBtZXRhTW9kZWwsIGNvbnRleHRQYXRoIH07XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBHZXQgc3VwcG9ydGVkIGZpbHRlciBmaWVsZCBwcm9wZXJ0aWVzIGZyb20gdGhlIHRhYmxlLCBjaGFydCwgb3IgZmlsdGVyIGJhci5cblx0ICogQHBhcmFtIGNvbnRyb2wgQ29udHJvbCBjYW4gYmUgYSB0YWJsZSwgY2hhcnQsIG9yIGZpbHRlciBiYXJcblx0ICogQHJldHVybnMgU3VwcG9ydGVkIGZpbHRlciBmaWVsZHMuXG5cdCAqL1xuXHRhc3luYyBfZ2V0U3VwcG9ydGVkRmlsdGVyRmllbGRzKGNvbnRyb2w6IENvbnRyb2wpOiBQcm9taXNlPENvbnRyb2xQcm9wZXJ0eUluZm9bXT4ge1xuXHRcdGlmIChjb250cm9sLmlzQShcInNhcC51aS5tZGMuRmlsdGVyYmFyXCIpKSB7XG5cdFx0XHRhd2FpdCAoY29udHJvbCBhcyBGaWx0ZXJCYXIpLndhaXRGb3JJbml0aWFsaXphdGlvbigpO1xuXHRcdFx0cmV0dXJuIChjb250cm9sIGFzIEZpbHRlckJhcikuZ2V0Q29udHJvbERlbGVnYXRlKCkuZmV0Y2hGaWx0ZXJQcm9wZXJ0aWVzKGNvbnRyb2wpO1xuXHRcdH0gZWxzZSBpZiAoKGNvbnRyb2wgYXMgRmlsdGVyQmFyKS5pc0EoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLkZpbHRlckJhclwiKSkge1xuXHRcdFx0cmV0dXJuIChjb250cm9sIGFzIEZpbHRlckJhcikuZ2V0Q29udHJvbERlbGVnYXRlKCkuZmV0Y2hGaWx0ZXJQcm9wZXJ0aWVzKGNvbnRyb2wpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhd2FpdCAoY29udHJvbCBhcyBUYWJsZSB8IENoYXJ0KS5hd2FpdENvbnRyb2xEZWxlZ2F0ZSgpO1xuXHRcdH1cblx0XHRyZXR1cm4gKGNvbnRyb2wgYXMgVGFibGUgfCBDaGFydCB8IEZpbHRlckJhcikuZ2V0Q29udHJvbERlbGVnYXRlKCkuZmV0Y2hQcm9wZXJ0aWVzKGNvbnRyb2wpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDbGVhcnMgYWxsIGlucHV0IHZhbHVlcyBvZiB2aXNpYmxlIGZpbHRlciBmaWVsZHMgaW4gdGhlIHRhYmxlLCBjaGFydCwgb3IgZmlsdGVyIGJhci4uXG5cdCAqIEBwYXJhbSBjb250cm9sSW5zdGFuY2UgVGhpcyBjYW4gYmUgYSBmaWx0ZXIgYmFyLCBjaGFydCwgb3IgdGFibGUuXG5cdCAqL1xuXHRhc3luYyBjbGVhckZpbHRlclZhbHVlcyhjb250cm9sSW5zdGFuY2U6IE1hY3JvQVBJKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0YXdhaXQgdGhpcy5fY2xlYXJGaWx0ZXJWYWx1ZXNXaXRoT3B0aW9ucyhjb250cm9sSW5zdGFuY2UuY29udGVudCBhcyBDb250cm9sKTtcblx0XHQvLyBBbGxvdyBhcHAgZGV2ZWxvcGVycyB0byB1cGRhdGUgZmlsdGVycyBhZnRlciBjbGVhcmluZ1xuXHRcdGNvbnRyb2xJbnN0YW5jZS5maXJlRXZlbnQoXCJhZnRlckNsZWFyXCIpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDbGVhcnMgYWxsIGlucHV0IHZhbHVlcyBvZiB2aXNpYmxlIGZpbHRlciBmaWVsZHMgaW4gdGhlIHRhYmxlLCBjaGFydCwgb3IgZmlsdGVyIGJhci5cblx0ICogQHBhcmFtIGNvbnRyb2wgVGhpcyBjYW4gYmUgYSB0YWJsZSwgY2hhcnQsIG9yIGZpbHRlciBiYXJcblx0ICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZmlsdGVyaW5nIHRoZSBmaWx0ZXIgYmFyXG5cdCAqIEBwYXJhbSBvcHRpb25zLmNsZWFyRWRpdEZpbHRlciBXaGV0aGVyIHRvIGNsZWFyIHRoZSBlZGl0IGZpbHRlciBvciByZXRhaW4gdGhlIGRlZmF1bHQgdmFsdWUgJ0FsbCdcblx0ICovXG5cdGFzeW5jIF9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zKGNvbnRyb2w6IENvbnRyb2wsIG9wdGlvbnM/OiB7IGNsZWFyRWRpdEZpbHRlcjogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKCFjb250cm9sKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGNvbnN0IHN0YXRlOiBFeHRlcm5hbFN0YXRlVHlwZSA9IGF3YWl0IFN0YXRlVXRpbC5yZXRyaWV2ZUV4dGVybmFsU3RhdGUoY29udHJvbCk7XG5cdFx0bGV0IGVkaXRTdGF0ZVBhdGggPSBcIlwiLFxuXHRcdFx0Y3VycmVudEVkaXRTdGF0ZUNvbmRpdGlvbixcblx0XHRcdGVkaXRTdGF0ZURlZmF1bHRWYWx1ZSxcblx0XHRcdGN1cnJlbnRFZGl0U3RhdGVJc0RlZmF1bHQ6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG5cdFx0XHRzaG91bGRDbGVhckVkaXRGaWx0ZXI6IHVuZGVmaW5lZCB8IGJvb2xlYW47XG5cdFx0aWYgKGNvbnRyb2wuaXNBPEZpbHRlckJhcj4oXCJzYXAudWkubWRjLkZpbHRlckJhclwiKSkge1xuXHRcdFx0ZWRpdFN0YXRlUGF0aCA9IFwiJGVkaXRTdGF0ZVwiO1xuXHRcdFx0ZWRpdFN0YXRlRGVmYXVsdFZhbHVlID0gRHJhZnRFZGl0U3RhdGUuQUxMLmlkO1xuXHRcdFx0Y3VycmVudEVkaXRTdGF0ZUNvbmRpdGlvbiA9IGRlZXBDbG9uZShzdGF0ZS5maWx0ZXJbZWRpdFN0YXRlUGF0aF0/LlswXSk7XG5cdFx0XHRjdXJyZW50RWRpdFN0YXRlSXNEZWZhdWx0ID0gY3VycmVudEVkaXRTdGF0ZUNvbmRpdGlvbj8udmFsdWVzWzBdID09PSBlZGl0U3RhdGVEZWZhdWx0VmFsdWU7XG5cdFx0XHRzaG91bGRDbGVhckVkaXRGaWx0ZXIgPSBvcHRpb25zICYmIE9iamVjdC5rZXlzKG9wdGlvbnMpLmxlbmd0aCA+IDAgJiYgb3B0aW9ucy5jbGVhckVkaXRGaWx0ZXI7XG5cdFx0fVxuXG5cdFx0Ly8gQ2xlYXIgYWxsIGNvbmRpdGlvbnNcblx0XHRmb3IgKGNvbnN0IGNvbmRpdGlvblBhdGggb2YgT2JqZWN0LmtleXMoc3RhdGUuZmlsdGVyKSkge1xuXHRcdFx0aWYgKCFzaG91bGRDbGVhckVkaXRGaWx0ZXIgJiYgY29uZGl0aW9uUGF0aCA9PT0gZWRpdFN0YXRlUGF0aCAmJiBjdXJyZW50RWRpdFN0YXRlSXNEZWZhdWx0KSB7XG5cdFx0XHRcdC8vIERvIG5vdCBjbGVhciBlZGl0IHN0YXRlIGNvbmRpdGlvbiBpZiBpdCBpcyBhbHJlYWR5IFwiQUxMXCJcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cdFx0XHRmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBzdGF0ZS5maWx0ZXJbY29uZGl0aW9uUGF0aF0pIHtcblx0XHRcdFx0Y29uZGl0aW9uLmZpbHRlcmVkID0gZmFsc2U7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUoY29udHJvbCwgeyBmaWx0ZXI6IHN0YXRlLmZpbHRlciB9KTtcblxuXHRcdGlmIChjb250cm9sLmlzQTxGaWx0ZXJCYXI+KFwic2FwLnVpLm1kYy5GaWx0ZXJCYXJcIikpIHtcblx0XHRcdC8vIFNldCBlZGl0IHN0YXRlIHRvICdBTEwnIGlmIGl0IHdhc24ndCBiZWZvcmVcblx0XHRcdGlmICghc2hvdWxkQ2xlYXJFZGl0RmlsdGVyICYmIGN1cnJlbnRFZGl0U3RhdGVDb25kaXRpb24gJiYgIWN1cnJlbnRFZGl0U3RhdGVJc0RlZmF1bHQpIHtcblx0XHRcdFx0Y3VycmVudEVkaXRTdGF0ZUNvbmRpdGlvbi52YWx1ZXMgPSBbZWRpdFN0YXRlRGVmYXVsdFZhbHVlXTtcblx0XHRcdFx0YXdhaXQgU3RhdGVVdGlsLmFwcGx5RXh0ZXJuYWxTdGF0ZShjb250cm9sLCB7IGZpbHRlcjogeyBbZWRpdFN0YXRlUGF0aF06IFtjdXJyZW50RWRpdFN0YXRlQ29uZGl0aW9uXSB9IH0pO1xuXHRcdFx0fVxuXG5cdFx0XHQvL2NsZWFyIGZpbHRlciBmaWVsZHMgaW4gZXJyb3Igc3RhdGVcblx0XHRcdGNvbnRyb2wuY2xlYW5VcEFsbEZpbHRlckZpZWxkc0luRXJyb3JTdGF0ZSgpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogTWV0aG9kIHJldHVybnMgdGhlIGNvcHkgb2YgcHJvcGVydHlJbmZvIGJ5IGFkZGluZyBuZWNlc3NhcnkgZmllbGRzIHNvIHRoYXQgc2VsZWN0aW9uIHZhcmlhbnQgY2FuIGJlIHNldCB0byBhIGNvbnRyb2wgbGlrZSB0YWJsZSBhbmQgY2hhcnQuXG5cdCAqIEBwYXJhbSBjb250cm9sIFRoaXMgY291bGQgYmUgYSB0YWJsZSwgY2hhcnQsIG9yIGZpbHRlciBiYXJcblx0ICogQHBhcmFtIHByb3BlcnR5SW5mb3MgQXJyYXkgb2YgUHJvcGVydHlJbmZvIG9mIHRoZSBjb250cm9sXG5cdCAqIEByZXR1cm5zIFRoZSBkZWVwIGNsb25lIG9mIHByb3BlcnR5SW5mb3Mgd2l0aCBzb21lIGFkZGl0aW9uYWwgZmllbGRzXG5cdCAqL1xuXHRfdXBkYXRlUHJvcGVydHlJbmZvVG9TdXBwb3J0U1YoY29udHJvbDogQ29udHJvbCwgcHJvcGVydHlJbmZvczogQ29udHJvbFByb3BlcnR5SW5mb1tdKTogQ29udHJvbFByb3BlcnR5SW5mb1tdIHtcblx0XHRpZiAoY29udHJvbC5pc0EoXCJzYXAudWkubWRjLkZpbHRlckJhclwiKSkge1xuXHRcdFx0cmV0dXJuIHByb3BlcnR5SW5mb3M7XG5cdFx0fVxuXHRcdHByb3BlcnR5SW5mb3MuZm9yRWFjaCgocHJvcGVydHlJbmZvOiBDb250cm9sUHJvcGVydHlJbmZvKSA9PiB7XG5cdFx0XHRpZiAoKGNvbnRyb2wgYXMgQ29udHJvbCkuaXNBKFwic2FwLnVpLm1kYy5UYWJsZVwiKSkge1xuXHRcdFx0XHRwcm9wZXJ0eUluZm9bXCJjb25kaXRpb25QYXRoXCJdID0gcHJvcGVydHlJbmZvLm5hbWU7XG5cdFx0XHRcdHByb3BlcnR5SW5mb1tcImFubm90YXRpb25QYXRoXCJdID0gcHJvcGVydHlJbmZvLm1ldGFkYXRhUGF0aCA/IHByb3BlcnR5SW5mby5tZXRhZGF0YVBhdGggOiBcIlwiO1xuXHRcdFx0XHRwcm9wZXJ0eUluZm9bXCJoYXNWYWx1ZUhlbHBcIl0gPSBQcm9wZXJ0eUhlbHBlci5oYXNWYWx1ZUhlbHAoXG5cdFx0XHRcdFx0KGNvbnRyb2wgYXMgVGFibGUpLmdldFByb3BlcnR5SGVscGVyKCkuZ2V0UHJvcGVydHkocHJvcGVydHlJbmZvLm5hbWUpXG5cdFx0XHRcdCk7XG5cdFx0XHRcdHByb3BlcnR5SW5mb1tcImRhdGFUeXBlXCJdID0gcHJvcGVydHlJbmZvPy50eXBlQ29uZmlnPy5jbGFzc05hbWUgYXMgc3RyaW5nO1xuXHRcdFx0fSBlbHNlIGlmICgoY29udHJvbCBhcyBDb250cm9sKS5pc0EoXCJzYXAudWkubWRjLkNoYXJ0XCIpKSB7XG5cdFx0XHRcdGlmIChwcm9wZXJ0eUluZm8ucGF0aCkge1xuXHRcdFx0XHRcdHByb3BlcnR5SW5mb1tcIm5hbWVcIl0gPSBwcm9wZXJ0eUluZm8ucGF0aDtcblx0XHRcdFx0XHRwcm9wZXJ0eUluZm9bXCJjb25kaXRpb25QYXRoXCJdID0gcHJvcGVydHlJbmZvLnBhdGg7XG5cdFx0XHRcdFx0Y29uc3QgcHJvcGVydHkgPSAoKGNvbnRyb2wgYXMgQ2hhcnQpLmdldFBhcmVudCgpIGFzIENoYXJ0VHlwZSk/LmdldFByb3BlcnR5RGF0YU1vZGVsKHByb3BlcnR5SW5mby5wYXRoKT8udGFyZ2V0T2JqZWN0O1xuXHRcdFx0XHRcdHByb3BlcnR5SW5mb1tcImhhc1ZhbHVlSGVscFwiXSA9IHByb3BlcnR5ID8gUHJvcGVydHlIZWxwZXIuaGFzVmFsdWVIZWxwKHByb3BlcnR5KSA6IGZhbHNlO1xuXHRcdFx0XHRcdHByb3BlcnR5SW5mb1tcImRhdGFUeXBlXCJdID0gKHByb3BlcnR5SW5mbz8udHlwZUNvbmZpZz8uY2xhc3NOYW1lIGFzIHN0cmluZykgfHwgcHJvcGVydHlJbmZvLmRhdGFUeXBlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHByb3BlcnR5SW5mb3M7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNldHMgc2VsZWN0aW9uIHZhcmlhbnQgdG8gdGhlIHRhYmxlLiBOb3RlOiBzZXRTZWxlY3Rpb25WYXJpYW50IHdpbGwgY2xlYXIgdGhlIGV4aXN0aW5nIGZpbHRlcnMgYW5kIHRoZW4gYXBwbHkgdGhlIFNlbGVjdGlvblZhcmlhbnQgdmFsdWVzLlxuXHQgKiBAcGFyYW0gY29udHJvbEluc3RhbmNlIFRoaXMgY291bGQgYmUgYSB0YWJsZSwgY2hhcnQsIG9yIGZpbHRlciBiYXJcblx0ICogQHBhcmFtIHNlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IHRvIGFwcGx5IHRvIHRoZSByZXNwZWN0aXZlIG1kYyBjb250cm9sc1xuXHQgKiBAcGFyYW0gcHJlZmlsbERlc2NyaXB0aW9ucyBPcHRpb25hbC4gSWYgdHJ1ZSwgd2Ugd2lsbCB1c2UgdGhlIGFzc29jaWF0ZWQgdGV4dCBwcm9wZXJ0eSB2YWx1ZXMgKGlmIHRoZXkncmUgYXZhaWxhYmxlIGluIHRoZSBzZWxlY3Rpb25WYXJpYW50KSB0byBkaXNwbGF5IHRoZSBmaWx0ZXIgdmFsdWUgZGVzY3JpcHRpb25zLCBpbnN0ZWFkIG9mIGxvYWRpbmcgdGhlbSBmcm9tIHRoZSBiYWNrZW5kXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYXN5bmNocm9ub3VzIGhhbmRsaW5nXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFzeW5jIHNldFNlbGVjdGlvblZhcmlhbnRUb01kY0NvbnRyb2woXG5cdFx0Y29udHJvbEluc3RhbmNlOiBDb3JlQ29udHJvbCB8IHVuZGVmaW5lZCxcblx0XHRzZWxlY3Rpb25WYXJpYW50OiBTZWxlY3Rpb25WYXJpYW50LFxuXHRcdHByZWZpbGxEZXNjcmlwdGlvbnMgPSBmYWxzZVxuXHQpOiBQcm9taXNlPHsgZGlmZlN0YXRlOiBFeHRlcm5hbFN0YXRlVHlwZTsgYXBwbHlTdGF0ZVJlc3VsdDogdW5rbm93biB9IHwgdW5kZWZpbmVkPiB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHN0YXRlOiBFeHRlcm5hbFN0YXRlVHlwZSA9IGF3YWl0IFN0YXRlVXRpbC5yZXRyaWV2ZUV4dGVybmFsU3RhdGUoY29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wpO1xuXHRcdFx0aWYgKCFzdGF0ZS5maWx0ZXIpIHtcblx0XHRcdFx0TG9nLmVycm9yKGBGRSA6IHNldFNlbGVjdGlvblZhcmlhbnQgQVBJIGNhbm5vdCBiZSBhcHBsaWVkIG9uIDogJHtjb250cm9sSW5zdGFuY2U/LmdldElkKCl9YCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGNvbnN0IGNvbmRpdGlvbnM6IFN0YXRlVXRpbEZpbHRlciA9IGF3YWl0IHRoaXMuY29udmVydFNlbGVjdGlvblZhcmlhbnRUb1N0YXRlRmlsdGVycyhcblx0XHRcdFx0Y29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wsXG5cdFx0XHRcdHNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRcdHByZWZpbGxEZXNjcmlwdGlvbnMsXG5cdFx0XHRcdGNvbnRyb2xJbnN0YW5jZT8uZ2V0TW9kZWwoKVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gQ2xlYXIgZmlsdGVyIG9mIHRhYmxlIGJlZm9yZSBhcHBseWluZyBzZWxlY3Rpb24gdmFyaWFudFxuXHRcdFx0YXdhaXQgdGhpcy5jbGVhckZpbHRlclZhbHVlcyhjb250cm9sSW5zdGFuY2U/LmdldFBhcmVudCgpIGFzIE1hY3JvQVBJKTtcblxuXHRcdFx0Ly8gU3RhdGUgdG8gYXBwbHlcblx0XHRcdGNvbnN0IHByb3BlcnR5SW5mb3MgPSBhd2FpdCB0aGlzLl9nZXRTdXBwb3J0ZWRGaWx0ZXJGaWVsZHMoY29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wpO1xuXHRcdFx0Y29uc3Qgc3RhdGVUb0FwcGx5ID0gc3ZUb1N0YXRlRmlsdGVycy5nZXRTdGF0ZVRvQXBwbHkocHJvcGVydHlJbmZvcywgY29uZGl0aW9ucyk7XG5cdFx0XHRpZiAoY29udHJvbEluc3RhbmNlPy5pc0EoXCJzYXAudWkubWRjLkNoYXJ0XCIpKSB7XG5cdFx0XHRcdHRoaXMuY29udmVydENvbmRpdGlvbnNGb3JDaGFydChzdGF0ZVRvQXBwbHkpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZGlmZlN0YXRlOiBFeHRlcm5hbFN0YXRlVHlwZSA9IGF3YWl0IFN0YXRlVXRpbC5kaWZmU3RhdGUoY29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wsIHN0YXRlLCBzdGF0ZVRvQXBwbHkpO1xuXHRcdFx0Y29uc3QgYXBwbHlTdGF0ZVJlc3VsdCA9IGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUoY29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wsIHN0YXRlVG9BcHBseSk7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRkaWZmU3RhdGUsXG5cdFx0XHRcdGFwcGx5U3RhdGVSZXN1bHRcblx0XHRcdH07XG5cdFx0fSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG5cdFx0XHRjb25zdCBpZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gY29udHJvbEluc3RhbmNlPy5nZXRJZCgpO1xuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKTtcblx0XHRcdExvZy5lcnJvcihgRkUgOiBCdWlsZGluZ0Jsb2NrICgke2lkfSkgLSBzZXQgc2VsZWN0aW9uIHZhcmlhbnQgZmFpbGVkICA6ICR7bWVzc2FnZX1gKTtcblx0XHRcdHRocm93IEVycm9yKG1lc3NhZ2UpO1xuXHRcdH1cblx0fSxcblx0LyoqXG5cdCAqIENvbnZlcnQgdGhlIGNoYXJ0IHByb3BlcnRpZXMgdG8gaW50ZXJuYWwgcHJvcGVydGllcyBiZWZvcmUgYXBwbHlpbmcgdGhlIGNvbmRpdGlvbnMuXG5cdCAqIEBwYXJhbSBzdGF0ZVRvQXBwbHkgVGhpcyBjb250YWlucyB0aGUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGZpbHRlciBhbmQgY29uZGl0aW9uc1xuXHQgKi9cblx0Y29udmVydENvbmRpdGlvbnNGb3JDaGFydChzdGF0ZVRvQXBwbHk6IFN0YXRlVG9BcHBseSk6IHZvaWQge1xuXHRcdC8vIHJlcGxhY2Uga2V5cyBvZiBmaWx0ZXIgb2JqZWN0IGZyb20gXCJTYWxlc09kZXJcIiB0byBpbnRlcm5hbCBmb3JtYXQgXCJfZmVfZ3JvdXBhYmxlX1NhbGVzT3JkZXJcIlxuXHRcdGZvciAoY29uc3QgcHJvcGVydHkgaW4gc3RhdGVUb0FwcGx5LmZpbHRlcikge1xuXHRcdFx0ZGVsZXRlIE9iamVjdC5hc3NpZ24oc3RhdGVUb0FwcGx5LmZpbHRlciwgeyBbXCJfZmVfZ3JvdXBhYmxlX1wiICsgcHJvcGVydHldOiBzdGF0ZVRvQXBwbHkuZmlsdGVyW3Byb3BlcnR5XSB9KVtwcm9wZXJ0eV07XG5cdFx0fVxuXHRcdC8vIHJlcGxhY2Uga2V5cyBvZiBpdGVtcyBhcnJheSBmcm9tIFwiU2FsZXNPZGVyXCIgdG8gaW50ZXJuYWwgZm9ybWF0IFwiX2ZlX2dyb3VwYWJsZV9TYWxlc09yZGVyXCJcblx0XHRzdGF0ZVRvQXBwbHkuaXRlbXMuZm9yRWFjaCgocHJvcGVydHlPYmo6IHsgbmFtZTogc3RyaW5nIH0pID0+IHtcblx0XHRcdHByb3BlcnR5T2JqLm5hbWUgPSBcIl9mZV9ncm91cGFibGVfXCIgKyBwcm9wZXJ0eU9iai5uYW1lO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQgdHlwZSBDb250cm9sUHJvcGVydHlJbmZvID0gUHJvcGVydHlJbmZvICYge1xuXHRjb25kaXRpb25QYXRoOiBzdHJpbmc7XG5cdGRhdGFUeXBlOiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoPzogc3RyaW5nO1xuXHRtZXRhZGF0YVBhdGg/OiBzdHJpbmc7XG5cdGlzUGFyYW1ldGVyPzogYm9vbGVhbjtcblx0aGlkZGVuRmlsdGVyPzogYm9vbGVhbjtcblx0aGFzVmFsdWVIZWxwPzogYm9vbGVhbjtcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xufTtcblxu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
|
|
270
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGF0ZUhlbHBlciIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJjb250cm9sIiwiY29udHJvbFN0YXRlIiwiU3RhdGVVdGlsIiwicmV0cmlldmVFeHRlcm5hbFN0YXRlIiwiY29udHJvbE9iamVjdCIsImZpbHRlciIsInBhcmFtZXRlcnMiLCJnZXRQYXJlbnQiLCJpc0EiLCJnZXRQYXJhbWV0ZXJzIiwidW5kZWZpbmVkIiwic2VsZWN0aW9uVmFyaWFudCIsIlN0YXRlRmlsdGVyc1RvU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnRGcm9tQ29uZGl0aW9ucyIsImdldFByb3BlcnR5SGVscGVyIiwiZXh0ZXJuYWxTViIsIlNlbGVjdGlvblZhcmlhbnQiLCJzZWxlY3RPcHRpb25zIiwiX2dldFNlbGVjdE9wdGlvbnMiLCJwcm9wZXJ0eSIsIm1hc3NBZGRTZWxlY3RPcHRpb24iLCJzcGxpdCIsImVycm9yIiwiaWQiLCJnZXRJZCIsIm1lc3NhZ2UiLCJFcnJvciIsIlN0cmluZyIsIkxvZyIsImNvbnZlcnRTZWxlY3Rpb25WYXJpYW50VG9TdGF0ZUZpbHRlcnMiLCJwcmVmaWxsRGVzY3JpcHRpb25zIiwibW9kZWwiLCJwcm9wZXJ0eUluZm9zIiwiX2dldFN1cHBvcnRlZEZpbHRlckZpZWxkcyIsImxlbmd0aCIsImZpbHRlckJhckluZm9Gb3JDb252ZXJzaW9uIiwiX2dldENvbnRyb2xJbmZvRm9yQ29udmVyc2lvbiIsIm1ldGFNb2RlbCIsImdldE1ldGFNb2RlbCIsImNvcHlvZlByb3BlcnR5SW5mb3MiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJ1cGRhdGVkUHJvcGVydHlJbmZvcyIsIl91cGRhdGVQcm9wZXJ0eUluZm9Ub1N1cHBvcnRTViIsImNvbmRpdGlvbnMiLCJzdlRvU3RhdGVGaWx0ZXJzIiwiZ2V0U3RhdGVGaWx0ZXJzRnJvbVNWIiwiZ2V0TW9kZWwiLCJjb250ZXh0UGF0aCIsImRhdGEiLCJ1c2VTZW1hbnRpY0RhdGVSYW5nZSIsInZpZXdEYXRhSW5zdGFuY2UiLCJ2aWV3RGF0YSIsImdldERhdGEiLCJjb25maWciLCJjb250cm9sQ29uZmlndXJhdGlvbiIsInNlbGVjdGlvbkZpZWxkc0NvbmZpZ3MiLCJmaWx0ZXJGaWVsZHNDb25maWciLCJmaWx0ZXJGaWVsZHMiLCJnZXRFbmhhbmNlZEZldGNoZWRQcm9wZXJ0eUluZm9zIiwid2FpdEZvckluaXRpYWxpemF0aW9uIiwiZ2V0Q29udHJvbERlbGVnYXRlIiwiZmV0Y2hGaWx0ZXJQcm9wZXJ0aWVzIiwiYXdhaXRDb250cm9sRGVsZWdhdGUiLCJmZXRjaFByb3BlcnRpZXMiLCJjbGVhckZpbHRlclZhbHVlcyIsImNvbnRyb2xJbnN0YW5jZSIsIl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zIiwiY29udGVudCIsImZpcmVFdmVudCIsIm9wdGlvbnMiLCJzdGF0ZSIsImVkaXRTdGF0ZVBhdGgiLCJjdXJyZW50RWRpdFN0YXRlQ29uZGl0aW9uIiwiZWRpdFN0YXRlRGVmYXVsdFZhbHVlIiwiY3VycmVudEVkaXRTdGF0ZUlzRGVmYXVsdCIsInNob3VsZENsZWFyRWRpdEZpbHRlciIsIkRyYWZ0RWRpdFN0YXRlIiwiQUxMIiwiZGVlcENsb25lIiwidmFsdWVzIiwiT2JqZWN0Iiwia2V5cyIsImNsZWFyRWRpdEZpbHRlciIsImNvbmRpdGlvblBhdGgiLCJjb25kaXRpb24iLCJmaWx0ZXJlZCIsImFwcGx5RXh0ZXJuYWxTdGF0ZSIsImNsZWFuVXBBbGxGaWx0ZXJGaWVsZHNJbkVycm9yU3RhdGUiLCJmb3JFYWNoIiwicHJvcGVydHlJbmZvIiwibmFtZSIsIlByb3BlcnR5SGVscGVyIiwiaGFzVmFsdWVIZWxwIiwiZ2V0UHJvcGVydHkiLCJwYXRoIiwiZ2V0UHJvcGVydHlEYXRhTW9kZWwiLCJ0YXJnZXRPYmplY3QiLCJ0eXBlQ29uZmlnIiwiY2xhc3NOYW1lIiwiZGF0YVR5cGUiLCJzZXRTZWxlY3Rpb25WYXJpYW50VG9NZGNDb250cm9sIiwiYXJndW1lbnRzIiwiZnJvbU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwiZ2V0U2VsZWN0T3B0aW9uc1Byb3BlcnR5TmFtZXMiLCJzdGF0ZVRvQXBwbHkiLCJnZXRTdGF0ZVRvQXBwbHkiLCJjb252ZXJ0Q29uZGl0aW9uc0ZvckNoYXJ0IiwiZGlmZlN0YXRlIiwiYXBwbHlTdGF0ZVJlc3VsdCIsImVyciIsImFzc2lnbiIsIml0ZW1zIiwicHJvcGVydHlPYmoiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlN0YXRlSGVscGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IGRlZXBDbG9uZSBmcm9tIFwic2FwL2Jhc2UvdXRpbC9kZWVwQ2xvbmVcIjtcbmltcG9ydCB0eXBlIHsgVmlld0RhdGEgfSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgKiBhcyBQcm9wZXJ0eUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IHR5cGUgVGFibGVBUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvVGFibGVcIjtcbmltcG9ydCBEcmFmdEVkaXRTdGF0ZSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRHJhZnRFZGl0U3RhdGVcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhckFQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXJCYXIvRmlsdGVyQmFyQVBJXCI7XG5pbXBvcnQgdHlwZSB7IFByb3BlcnR5SW5mbyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2ludGVybmFsL1Byb3BlcnR5SW5mb1wiO1xuaW1wb3J0IHR5cGUgeyBDb252ZXJzaW9uSW5mbyB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL21kYy9hZGFwdGVyL1NlbGVjdGlvblZhcmlhbnRUb1N0YXRlRmlsdGVyc1wiO1xuaW1wb3J0IHN2VG9TdGF0ZUZpbHRlcnMgZnJvbSBcInNhcC9mZS9tYWNyb3MvbWRjL2FkYXB0ZXIvU2VsZWN0aW9uVmFyaWFudFRvU3RhdGVGaWx0ZXJzXCI7XG5pbXBvcnQgU3RhdGVGaWx0ZXJzVG9TZWxlY3Rpb25WYXJpYW50IGZyb20gXCJzYXAvZmUvbWFjcm9zL21kYy9hZGFwdGVyL1N0YXRlRmlsdGVyVG9TZWxlY3Rpb25WYXJpYW50XCI7XG5pbXBvcnQgdHlwZSB7IEV4dGVybmFsU3RhdGVUeXBlIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvdmFsdWVoZWxwL1ZhbHVlSGVscERlbGVnYXRlXCI7XG5pbXBvcnQgU2VsZWN0aW9uVmFyaWFudCBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vU2VsZWN0aW9uVmFyaWFudFwiO1xuaW1wb3J0IHR5cGUgQ29yZUNvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIENoYXJ0IGZyb20gXCJzYXAvdWkvbWRjL0NoYXJ0XCI7XG5pbXBvcnQgdHlwZSBDb250cm9sIGZyb20gXCJzYXAvdWkvbWRjL0NvbnRyb2xcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSB7IFN0YXRlVG9BcHBseSwgRmlsdGVyIGFzIFN0YXRlVXRpbEZpbHRlciB9IGZyb20gXCJzYXAvdWkvbWRjL3AxM24vU3RhdGVVdGlsXCI7XG5pbXBvcnQgU3RhdGVVdGlsIGZyb20gXCJzYXAvdWkvbWRjL3AxM24vU3RhdGVVdGlsXCI7XG5pbXBvcnQgdHlwZSBNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL01vZGVsXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ2hhcnRUeXBlIGZyb20gXCIuLi8uLi9DaGFydFwiO1xuaW1wb3J0IHR5cGUgTWFjcm9BUEkgZnJvbSBcIi4uLy4uL01hY3JvQVBJXCI7XG5cbi8qKlxuICogVGhpcyBpcyB0byBleHRlbmQgTURDIGNvbnRyb2wgQVBJcyBmb3IgZmlsdGVyLCB0YWJsZSwgY2hhcnQgYnVpbGRpbmcgYmxvY2tzLlxuICogQHB1YmxpY1xuICovXG5cbmNvbnN0IFN0YXRlSGVscGVyID0ge1xuXHQvKipcblx0ICogR2V0cyBzZWxlY3Rpb24gdmFyaWFudCBmcm9tIHRoZSBtZGMgY29udHJvbC5cblx0ICogQHBhcmFtIGNvbnRyb2wgVGhlIGNvbnRyb2wgZm9yIHdoaWNoIFNlbGVjdGlvbiBWYXJpYW50IGlzIHRvIGJlIGZldGNoZWRcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHdoaWNoIHJlc29sdmVzIHdpdGggYSB7QGxpbmsgc2FwLmZlLm5hdmlnYXRpb24uU2VsZWN0aW9uVmFyaWFudH1cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YXN5bmMgZ2V0U2VsZWN0aW9uVmFyaWFudChjb250cm9sOiBDb3JlQ29udHJvbCB8IHVuZGVmaW5lZCk6IFByb21pc2U8U2VsZWN0aW9uVmFyaWFudD4ge1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBjb250cm9sU3RhdGUgPSBhd2FpdCBTdGF0ZVV0aWwucmV0cmlldmVFeHRlcm5hbFN0YXRlKGNvbnRyb2wgYXMgQ29udHJvbCk7XG5cdFx0XHRjb25zdCBjb250cm9sT2JqZWN0ID0gY29udHJvbFN0YXRlLmZpbHRlciBhcyBTdGF0ZVV0aWxGaWx0ZXI7XG5cdFx0XHRsZXQgcGFyYW1ldGVyczogc3RyaW5nW10gfCB1bmRlZmluZWQgPSBbXTtcblx0XHRcdGlmIChcblx0XHRcdFx0Y29udHJvbD8uZ2V0UGFyZW50KCk/LmlzQShcInNhcC5mZS5tYWNyb3MuZmlsdGVyQmFyLkZpbHRlckJhckFQSVwiKSAmJlxuXHRcdFx0XHQoY29udHJvbC5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEkpLmdldFBhcmFtZXRlcnMgIT09IHVuZGVmaW5lZFxuXHRcdFx0KSB7XG5cdFx0XHRcdHBhcmFtZXRlcnMgPSAoY29udHJvbC5nZXRQYXJlbnQoKSBhcyBGaWx0ZXJCYXJBUEkpLmdldFBhcmFtZXRlcnMoKTtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHNlbGVjdGlvblZhcmlhbnQgPSBTdGF0ZUZpbHRlcnNUb1NlbGVjdGlvblZhcmlhbnQuZ2V0U2VsZWN0aW9uVmFyaWFudEZyb21Db25kaXRpb25zKFxuXHRcdFx0XHRjb250cm9sT2JqZWN0LFxuXHRcdFx0XHQoY29udHJvbCBhcyBDb250cm9sKS5nZXRQcm9wZXJ0eUhlbHBlcigpLFxuXHRcdFx0XHRwYXJhbWV0ZXJzXG5cdFx0XHQpO1xuXHRcdFx0aWYgKGNvbnRyb2w/LmlzQShcInNhcC51aS5tZGMuQ2hhcnRcIikpIHtcblx0XHRcdFx0Y29uc3QgZXh0ZXJuYWxTViA9IG5ldyBTZWxlY3Rpb25WYXJpYW50KCk7XG5cdFx0XHRcdGNvbnN0IHNlbGVjdE9wdGlvbnMgPSBzZWxlY3Rpb25WYXJpYW50Ll9nZXRTZWxlY3RPcHRpb25zKCk7XG5cdFx0XHRcdGZvciAoY29uc3QgcHJvcGVydHkgaW4gc2VsZWN0T3B0aW9ucykge1xuXHRcdFx0XHRcdGV4dGVybmFsU1YubWFzc0FkZFNlbGVjdE9wdGlvbihwcm9wZXJ0eS5zcGxpdChcIl9mZV9ncm91cGFibGVfXCIpWzFdLCBzZWxlY3RPcHRpb25zW3Byb3BlcnR5XSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGV4dGVybmFsU1Y7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gc2VsZWN0aW9uVmFyaWFudDtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuXHRcdFx0Y29uc3QgaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGNvbnRyb2w/LmdldElkKCk7XG5cdFx0XHRjb25zdCBtZXNzYWdlID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiBTdHJpbmcoZXJyb3IpO1xuXHRcdFx0TG9nLmVycm9yKGBCdWlsZGluZyBCbG9jayAoJHtpZH0pIC0gZ2V0IHNlbGVjdGlvbiB2YXJpYW50IGZhaWxlZCA6ICR7bWVzc2FnZX1gKTtcblx0XHRcdHRocm93IEVycm9yKG1lc3NhZ2UpO1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogQ29udmVydCBzZWxlY3Rpb24gdmFyaWFudCB0byBjb25kaXRpb25zLlxuXHQgKiBAcGFyYW0gY29udHJvbCBDb250cm9sIGNhbiBiZSBhIHRhYmxlLCBjaGFydCBvciBmaWx0ZXIgYmFyXG5cdCAqIEBwYXJhbSBzZWxlY3Rpb25WYXJpYW50IFRoZSBzZWxlY3Rpb24gdmFyaWFudCB0byBhcHBseSB0byB0aGUgdGFibGUgb3IgY2hhcnQgb3IgZmlsdGVyIGJhci5cblx0ICogQHBhcmFtIHByZWZpbGxEZXNjcmlwdGlvbnMgSWYgdHJ1ZSwgd2UgdHJ5IHRvIGZpbmQgdGhlIGFzc29jaWF0ZWQgVGV4dCB2YWx1ZSBmb3IgZWFjaCBwcm9wZXJ0eSBpbiB0aGUgc2VsZWN0aW9uVmFyaWFudCAodG8gYXZvaWQgZmV0Y2hpbmcgaXQgZnJvbSB0aGUgc2VydmVyKVxuXHQgKiBAcGFyYW0gbW9kZWwgVGhlIGNvbnRyb2wgbW9kZWxcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0byBjb25kaXRpb25zXG5cdCAqL1xuXHRhc3luYyBjb252ZXJ0U2VsZWN0aW9uVmFyaWFudFRvU3RhdGVGaWx0ZXJzKFxuXHRcdGNvbnRyb2w6IENvbnRyb2wsXG5cdFx0c2VsZWN0aW9uVmFyaWFudDogU2VsZWN0aW9uVmFyaWFudCxcblx0XHRwcmVmaWxsRGVzY3JpcHRpb25zOiBib29sZWFuLFxuXHRcdG1vZGVsPzogTW9kZWxcblx0KTogUHJvbWlzZTxTdGF0ZVV0aWxGaWx0ZXI+IHtcblx0XHQvLyBOb3RlOiBUaGlzIG1ldGhvZCBpcyBwcml2YXRlIGFuZCByZXN0cmljdGVkIHRvIHVzYWdlIGJ5IHNhcC5mZShWaWV3U3RhdGUgY29udHJvbGxlciBleHRlbnNpb24pIGZvciBmaWx0ZXIgYmFyLyBjaGFydCAvIHRhYmxlIHN0YXRlIHNjZW5hcmlvcy5cblx0XHRjb25zdCBwcm9wZXJ0eUluZm9zID0gYXdhaXQgdGhpcy5fZ2V0U3VwcG9ydGVkRmlsdGVyRmllbGRzKGNvbnRyb2wpO1xuXG5cdFx0aWYgKCFwcm9wZXJ0eUluZm9zLmxlbmd0aCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiTm8gdmFsaWQgbWV0YWRhdGEgcHJvcGVydGllcyBwcmVzZW50IGZvciBmaWx0ZXIgYmFyXCIpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGZpbHRlckJhckluZm9Gb3JDb252ZXJzaW9uID0gdGhpcy5fZ2V0Q29udHJvbEluZm9Gb3JDb252ZXJzaW9uKGNvbnRyb2wpO1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IG1vZGVsPy5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbDtcblx0XHRjb25zdCBjb3B5b2ZQcm9wZXJ0eUluZm9zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwcm9wZXJ0eUluZm9zKSk7XG5cdFx0Y29uc3QgdXBkYXRlZFByb3BlcnR5SW5mb3MgPSB0aGlzLl91cGRhdGVQcm9wZXJ0eUluZm9Ub1N1cHBvcnRTVihjb250cm9sLCBjb3B5b2ZQcm9wZXJ0eUluZm9zKTtcblx0XHRjb25zdCBjb25kaXRpb25zOiBTdGF0ZVV0aWxGaWx0ZXIgPSBzdlRvU3RhdGVGaWx0ZXJzLmdldFN0YXRlRmlsdGVyc0Zyb21TVihcblx0XHRcdHNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRmaWx0ZXJCYXJJbmZvRm9yQ29udmVyc2lvbixcblx0XHRcdHVwZGF0ZWRQcm9wZXJ0eUluZm9zID8/IGNvcHlvZlByb3BlcnR5SW5mb3MsXG5cdFx0XHRwcmVmaWxsRGVzY3JpcHRpb25zLFxuXHRcdFx0bWV0YU1vZGVsXG5cdFx0KTtcblxuXHRcdHJldHVybiBjb25kaXRpb25zO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGZpbHRlciBpbmZvcm1hdGlvbiBuZWVkZWQgZm9yIHRoZSBjb252ZXJzaW9uIG9mIHNlbGVjdGlvbiB2YXJpYW50IHRvIGNvbmRpdGlvbnMuXG5cdCAqIEBwYXJhbSBjb250cm9sIFRoaXMgY2FuIGJlIGEgdGFibGUsIGNoYXJ0LCBvciBmaWx0ZXJiYXJcblx0ICogQHJldHVybnMgVGhlIGNvbnRyb2wgaW5mb3JtYXRpb24gKG1ldGFNb2RlbCwgY29udGV4dFBhdGgsIHVzZSBvZiBzZW1hbnRpYyBkYXRlIHJhbmdlLCBhbGwgZmlsdGVyIGZpZWxkcyBjb25maWcpXG5cdCAqL1xuXHRfZ2V0Q29udHJvbEluZm9Gb3JDb252ZXJzaW9uKGNvbnRyb2w6IENvbnRyb2wpOiBDb252ZXJzaW9uSW5mbyB7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gY29udHJvbC5nZXRNb2RlbCgpPy5nZXRNZXRhTW9kZWwoKSBhcyBPRGF0YU1ldGFNb2RlbCxcblx0XHRcdGNvbnRleHRQYXRoID0gY29udHJvbC5kYXRhKFwiZW50aXR5VHlwZVwiKSBhcyBzdHJpbmc7XG5cdFx0aWYgKGNvbnRyb2wuaXNBKFwic2FwLmZlLm1hY3Jvcy5jb250cm9scy5GaWx0ZXJCYXJcIikpIHtcblx0XHRcdGNvbnN0IHVzZVNlbWFudGljRGF0ZVJhbmdlOiBib29sZWFuID1cblx0XHRcdFx0XHRjb250cm9sLmRhdGEoXCJ1c2VTZW1hbnRpY0RhdGVSYW5nZVwiKSA9PT0gXCJ0cnVlXCIgfHwgY29udHJvbC5kYXRhKFwidXNlU2VtYW50aWNEYXRlUmFuZ2VcIikgPT09IHRydWUsXG5cdFx0XHRcdHZpZXdEYXRhSW5zdGFuY2UgPSBjb250cm9sLmdldE1vZGVsKFwidmlld0RhdGFcIikgYXMgSlNPTk1vZGVsLFxuXHRcdFx0XHR2aWV3RGF0YSA9IHZpZXdEYXRhSW5zdGFuY2UuZ2V0RGF0YSgpIGFzIFZpZXdEYXRhLFxuXHRcdFx0XHRjb25maWcgPSB2aWV3RGF0YT8uY29udHJvbENvbmZpZ3VyYXRpb24sXG5cdFx0XHRcdHNlbGVjdGlvbkZpZWxkc0NvbmZpZ3MgPSBjb25maWc/LltcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5TZWxlY3Rpb25GaWVsZHNcIl0sXG5cdFx0XHRcdGZpbHRlckZpZWxkc0NvbmZpZyA9IHNlbGVjdGlvbkZpZWxkc0NvbmZpZ3M/LmZpbHRlckZpZWxkcztcblx0XHRcdHJldHVybiB7IG1ldGFNb2RlbCwgY29udGV4dFBhdGgsIHVzZVNlbWFudGljRGF0ZVJhbmdlLCBmaWx0ZXJGaWVsZHNDb25maWcsIHNlbGVjdGlvbkZpZWxkc0NvbmZpZ3MgfTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHsgbWV0YU1vZGVsLCBjb250ZXh0UGF0aCB9O1xuXHRcdH1cblx0fSxcblxuXHQvKipcblx0ICogR2V0IHN1cHBvcnRlZCBmaWx0ZXIgZmllbGQgcHJvcGVydGllcyBmcm9tIHRoZSB0YWJsZSwgY2hhcnQsIG9yIGZpbHRlciBiYXIuXG5cdCAqIEBwYXJhbSBjb250cm9sIENvbnRyb2wgY2FuIGJlIGEgdGFibGUsIGNoYXJ0LCBvciBmaWx0ZXIgYmFyXG5cdCAqIEByZXR1cm5zIFN1cHBvcnRlZCBmaWx0ZXIgZmllbGRzLlxuXHQgKi9cblx0YXN5bmMgX2dldFN1cHBvcnRlZEZpbHRlckZpZWxkcyhjb250cm9sOiBDb250cm9sKTogUHJvbWlzZTxDb250cm9sUHJvcGVydHlJbmZvW10+IHtcblx0XHRpZiAoKGNvbnRyb2wgYXMgVGFibGUpLmlzQShcInNhcC51aS5tZGMuVGFibGVcIikpIHtcblx0XHRcdHJldHVybiAoKGNvbnRyb2wgYXMgVGFibGUpLmdldFBhcmVudCgpIGFzIFRhYmxlQVBJKS5nZXRFbmhhbmNlZEZldGNoZWRQcm9wZXJ0eUluZm9zKCkgYXMgdW5rbm93biBhcyBDb250cm9sUHJvcGVydHlJbmZvW107XG5cdFx0fSBlbHNlIGlmIChjb250cm9sLmlzQShcInNhcC51aS5tZGMuRmlsdGVyYmFyXCIpKSB7XG5cdFx0XHRhd2FpdCAoY29udHJvbCBhcyBGaWx0ZXJCYXIpLndhaXRGb3JJbml0aWFsaXphdGlvbigpO1xuXHRcdFx0cmV0dXJuIChjb250cm9sIGFzIEZpbHRlckJhcikuZ2V0Q29udHJvbERlbGVnYXRlKCkuZmV0Y2hGaWx0ZXJQcm9wZXJ0aWVzKGNvbnRyb2wpO1xuXHRcdH0gZWxzZSBpZiAoKGNvbnRyb2wgYXMgRmlsdGVyQmFyKS5pc0EoXCJzYXAuZmUubWFjcm9zLmNvbnRyb2xzLkZpbHRlckJhclwiKSkge1xuXHRcdFx0cmV0dXJuIChjb250cm9sIGFzIEZpbHRlckJhcikuZ2V0Q29udHJvbERlbGVnYXRlKCkuZmV0Y2hGaWx0ZXJQcm9wZXJ0aWVzKGNvbnRyb2wpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRhd2FpdCAoY29udHJvbCBhcyBUYWJsZSB8IENoYXJ0KS5hd2FpdENvbnRyb2xEZWxlZ2F0ZSgpO1xuXHRcdH1cblx0XHRyZXR1cm4gKGNvbnRyb2wgYXMgVGFibGUgfCBDaGFydCB8IEZpbHRlckJhcikuZ2V0Q29udHJvbERlbGVnYXRlKCkuZmV0Y2hQcm9wZXJ0aWVzKGNvbnRyb2wpO1xuXHR9LFxuXG5cdC8qKlxuXHQgKiBDbGVhcnMgYWxsIGlucHV0IHZhbHVlcyBvZiB2aXNpYmxlIGZpbHRlciBmaWVsZHMgaW4gdGhlIHRhYmxlLCBjaGFydCwgb3IgZmlsdGVyIGJhci5cblx0ICogQHBhcmFtIGNvbnRyb2xJbnN0YW5jZSBUaGlzIGNhbiBiZSBhIGZpbHRlciBiYXIsIGNoYXJ0LCBvciB0YWJsZS5cblx0ICovXG5cdGFzeW5jIGNsZWFyRmlsdGVyVmFsdWVzKGNvbnRyb2xJbnN0YW5jZTogTWFjcm9BUEkpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRhd2FpdCB0aGlzLl9jbGVhckZpbHRlclZhbHVlc1dpdGhPcHRpb25zKGNvbnRyb2xJbnN0YW5jZS5jb250ZW50IGFzIENvbnRyb2wpO1xuXHRcdC8vIEFsbG93IGFwcCBkZXZlbG9wZXJzIHRvIHVwZGF0ZSBmaWx0ZXJzIGFmdGVyIGNsZWFyaW5nXG5cdFx0Y29udHJvbEluc3RhbmNlLmZpcmVFdmVudChcImFmdGVyQ2xlYXJcIik7XG5cdH0sXG5cblx0LyoqXG5cdCAqIENsZWFycyBhbGwgaW5wdXQgdmFsdWVzIG9mIHZpc2libGUgZmlsdGVyIGZpZWxkcyBpbiB0aGUgdGFibGUsIGNoYXJ0LCBvciBmaWx0ZXIgYmFyLlxuXHQgKiBAcGFyYW0gY29udHJvbCBUaGlzIGNhbiBiZSBhIHRhYmxlLCBjaGFydCwgb3IgZmlsdGVyIGJhclxuXHQgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciBmaWx0ZXJpbmcgdGhlIGZpbHRlciBiYXJcblx0ICogQHBhcmFtIG9wdGlvbnMuY2xlYXJFZGl0RmlsdGVyIFdoZXRoZXIgdG8gY2xlYXIgdGhlIGVkaXQgZmlsdGVyIG9yIHJldGFpbiB0aGUgZGVmYXVsdCB2YWx1ZSAnQWxsJ1xuXHQgKi9cblx0YXN5bmMgX2NsZWFyRmlsdGVyVmFsdWVzV2l0aE9wdGlvbnMoY29udHJvbDogQ29udHJvbCwgb3B0aW9ucz86IHsgY2xlYXJFZGl0RmlsdGVyOiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRpZiAoIWNvbnRyb2wpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y29uc3Qgc3RhdGU6IEV4dGVybmFsU3RhdGVUeXBlID0gYXdhaXQgU3RhdGVVdGlsLnJldHJpZXZlRXh0ZXJuYWxTdGF0ZShjb250cm9sKTtcblx0XHRsZXQgZWRpdFN0YXRlUGF0aCA9IFwiXCIsXG5cdFx0XHRjdXJyZW50RWRpdFN0YXRlQ29uZGl0aW9uLFxuXHRcdFx0ZWRpdFN0YXRlRGVmYXVsdFZhbHVlLFxuXHRcdFx0Y3VycmVudEVkaXRTdGF0ZUlzRGVmYXVsdDogYm9vbGVhbiB8IHVuZGVmaW5lZCxcblx0XHRcdHNob3VsZENsZWFyRWRpdEZpbHRlcjogdW5kZWZpbmVkIHwgYm9vbGVhbjtcblx0XHRpZiAoY29udHJvbC5pc0E8RmlsdGVyQmFyPihcInNhcC51aS5tZGMuRmlsdGVyQmFyXCIpKSB7XG5cdFx0XHRlZGl0U3RhdGVQYXRoID0gXCIkZWRpdFN0YXRlXCI7XG5cdFx0XHRlZGl0U3RhdGVEZWZhdWx0VmFsdWUgPSBEcmFmdEVkaXRTdGF0ZS5BTEwuaWQ7XG5cdFx0XHRjdXJyZW50RWRpdFN0YXRlQ29uZGl0aW9uID0gZGVlcENsb25lKHN0YXRlLmZpbHRlcltlZGl0U3RhdGVQYXRoXT8uWzBdKTtcblx0XHRcdGN1cnJlbnRFZGl0U3RhdGVJc0RlZmF1bHQgPSBjdXJyZW50RWRpdFN0YXRlQ29uZGl0aW9uPy52YWx1ZXNbMF0gPT09IGVkaXRTdGF0ZURlZmF1bHRWYWx1ZTtcblx0XHRcdHNob3VsZENsZWFyRWRpdEZpbHRlciA9IG9wdGlvbnMgJiYgT2JqZWN0LmtleXMob3B0aW9ucykubGVuZ3RoID4gMCAmJiBvcHRpb25zLmNsZWFyRWRpdEZpbHRlcjtcblx0XHR9XG5cblx0XHQvLyBDbGVhciBhbGwgY29uZGl0aW9uc1xuXHRcdGZvciAoY29uc3QgY29uZGl0aW9uUGF0aCBvZiBPYmplY3Qua2V5cyhzdGF0ZS5maWx0ZXIpKSB7XG5cdFx0XHRpZiAoIXNob3VsZENsZWFyRWRpdEZpbHRlciAmJiBjb25kaXRpb25QYXRoID09PSBlZGl0U3RhdGVQYXRoICYmIGN1cnJlbnRFZGl0U3RhdGVJc0RlZmF1bHQpIHtcblx0XHRcdFx0Ly8gRG8gbm90IGNsZWFyIGVkaXQgc3RhdGUgY29uZGl0aW9uIGlmIGl0IGlzIGFscmVhZHkgXCJBTExcIlxuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblx0XHRcdGZvciAoY29uc3QgY29uZGl0aW9uIG9mIHN0YXRlLmZpbHRlcltjb25kaXRpb25QYXRoXSkge1xuXHRcdFx0XHRjb25kaXRpb24uZmlsdGVyZWQgPSBmYWxzZTtcblx0XHRcdH1cblx0XHR9XG5cdFx0YXdhaXQgU3RhdGVVdGlsLmFwcGx5RXh0ZXJuYWxTdGF0ZShjb250cm9sLCB7IGZpbHRlcjogc3RhdGUuZmlsdGVyIH0pO1xuXG5cdFx0aWYgKGNvbnRyb2wuaXNBPEZpbHRlckJhcj4oXCJzYXAudWkubWRjLkZpbHRlckJhclwiKSkge1xuXHRcdFx0Ly8gU2V0IGVkaXQgc3RhdGUgdG8gJ0FMTCcgaWYgaXQgd2Fzbid0IGJlZm9yZVxuXHRcdFx0aWYgKCFzaG91bGRDbGVhckVkaXRGaWx0ZXIgJiYgY3VycmVudEVkaXRTdGF0ZUNvbmRpdGlvbiAmJiAhY3VycmVudEVkaXRTdGF0ZUlzRGVmYXVsdCkge1xuXHRcdFx0XHRjdXJyZW50RWRpdFN0YXRlQ29uZGl0aW9uLnZhbHVlcyA9IFtlZGl0U3RhdGVEZWZhdWx0VmFsdWVdO1xuXHRcdFx0XHRhd2FpdCBTdGF0ZVV0aWwuYXBwbHlFeHRlcm5hbFN0YXRlKGNvbnRyb2wsIHsgZmlsdGVyOiB7IFtlZGl0U3RhdGVQYXRoXTogW2N1cnJlbnRFZGl0U3RhdGVDb25kaXRpb25dIH0gfSk7XG5cdFx0XHR9XG5cblx0XHRcdC8vY2xlYXIgZmlsdGVyIGZpZWxkcyBpbiBlcnJvciBzdGF0ZVxuXHRcdFx0Y29udHJvbC5jbGVhblVwQWxsRmlsdGVyRmllbGRzSW5FcnJvclN0YXRlKCk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qKlxuXHQgKiBNZXRob2QgcmV0dXJucyB0aGUgY29weSBvZiBwcm9wZXJ0eUluZm8gYnkgYWRkaW5nIG5lY2Vzc2FyeSBmaWVsZHMgc28gdGhhdCBzZWxlY3Rpb24gdmFyaWFudCBjYW4gYmUgc2V0IHRvIGEgY29udHJvbCBsaWtlIHRhYmxlIGFuZCBjaGFydC5cblx0ICogQHBhcmFtIGNvbnRyb2wgVGhpcyBjb3VsZCBiZSBhIHRhYmxlLCBjaGFydCwgb3IgZmlsdGVyIGJhclxuXHQgKiBAcGFyYW0gcHJvcGVydHlJbmZvcyBBcnJheSBvZiBQcm9wZXJ0eUluZm8gb2YgdGhlIGNvbnRyb2xcblx0ICogQHJldHVybnMgVGhlIGRlZXAgY2xvbmUgb2YgcHJvcGVydHlJbmZvcyB3aXRoIHNvbWUgYWRkaXRpb25hbCBmaWVsZHNcblx0ICovXG5cdF91cGRhdGVQcm9wZXJ0eUluZm9Ub1N1cHBvcnRTVihjb250cm9sOiBDb250cm9sLCBwcm9wZXJ0eUluZm9zOiBDb250cm9sUHJvcGVydHlJbmZvW10pOiBDb250cm9sUHJvcGVydHlJbmZvW10ge1xuXHRcdGlmIChjb250cm9sLmlzQShcInNhcC51aS5tZGMuRmlsdGVyQmFyXCIpKSB7XG5cdFx0XHRyZXR1cm4gcHJvcGVydHlJbmZvcztcblx0XHR9XG5cdFx0cHJvcGVydHlJbmZvcy5mb3JFYWNoKChwcm9wZXJ0eUluZm86IENvbnRyb2xQcm9wZXJ0eUluZm8pID0+IHtcblx0XHRcdGlmICgoY29udHJvbCBhcyBDb250cm9sKS5pc0EoXCJzYXAudWkubWRjLlRhYmxlXCIpKSB7XG5cdFx0XHRcdHByb3BlcnR5SW5mb1tcImNvbmRpdGlvblBhdGhcIl0gPSBwcm9wZXJ0eUluZm8ubmFtZTtcblx0XHRcdFx0cHJvcGVydHlJbmZvW1wiaGFzVmFsdWVIZWxwXCJdID0gUHJvcGVydHlIZWxwZXIuaGFzVmFsdWVIZWxwKFxuXHRcdFx0XHRcdChjb250cm9sIGFzIFRhYmxlKS5nZXRQcm9wZXJ0eUhlbHBlcigpLmdldFByb3BlcnR5KHByb3BlcnR5SW5mby5uYW1lKVxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIGlmICgoY29udHJvbCBhcyBDb250cm9sKS5pc0EoXCJzYXAudWkubWRjLkNoYXJ0XCIpKSB7XG5cdFx0XHRcdGlmIChwcm9wZXJ0eUluZm8ucGF0aCkge1xuXHRcdFx0XHRcdHByb3BlcnR5SW5mb1tcIm5hbWVcIl0gPSBwcm9wZXJ0eUluZm8ucGF0aDtcblx0XHRcdFx0XHRwcm9wZXJ0eUluZm9bXCJjb25kaXRpb25QYXRoXCJdID0gcHJvcGVydHlJbmZvLnBhdGg7XG5cdFx0XHRcdFx0Y29uc3QgcHJvcGVydHkgPSAoKGNvbnRyb2wgYXMgQ2hhcnQpLmdldFBhcmVudCgpIGFzIENoYXJ0VHlwZSk/LmdldFByb3BlcnR5RGF0YU1vZGVsKHByb3BlcnR5SW5mby5wYXRoKT8udGFyZ2V0T2JqZWN0O1xuXHRcdFx0XHRcdHByb3BlcnR5SW5mb1tcImhhc1ZhbHVlSGVscFwiXSA9IHByb3BlcnR5ID8gUHJvcGVydHlIZWxwZXIuaGFzVmFsdWVIZWxwKHByb3BlcnR5KSA6IGZhbHNlO1xuXHRcdFx0XHRcdHByb3BlcnR5SW5mb1tcImRhdGFUeXBlXCJdID0gKHByb3BlcnR5SW5mbz8udHlwZUNvbmZpZz8uY2xhc3NOYW1lIGFzIHN0cmluZykgfHwgcHJvcGVydHlJbmZvLmRhdGFUeXBlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHByb3BlcnR5SW5mb3M7XG5cdH0sXG5cblx0LyoqXG5cdCAqIFNldHMgc2VsZWN0aW9uIHZhcmlhbnQgdG8gdGhlIHRhYmxlLiBOb3RlOiBzZXRTZWxlY3Rpb25WYXJpYW50IHdpbGwgY2xlYXIgdGhlIGV4aXN0aW5nIGZpbHRlcnMgYW5kIHRoZW4gYXBwbHkgdGhlIFNlbGVjdGlvblZhcmlhbnQgdmFsdWVzLlxuXHQgKiBAcGFyYW0gY29udHJvbEluc3RhbmNlIFRoaXMgY291bGQgYmUgYSB0YWJsZSwgY2hhcnQsIG9yIGZpbHRlciBiYXJcblx0ICogQHBhcmFtIHNlbGVjdGlvblZhcmlhbnQgVGhlIHNlbGVjdGlvbiB2YXJpYW50IHRvIGFwcGx5IHRvIHRoZSByZXNwZWN0aXZlIG1kYyBjb250cm9sc1xuXHQgKiBAcGFyYW0gcHJlZmlsbERlc2NyaXB0aW9ucyBPcHRpb25hbC4gSWYgdHJ1ZSwgd2Ugd2lsbCB1c2UgdGhlIGFzc29jaWF0ZWQgdGV4dCBwcm9wZXJ0eSB2YWx1ZXMgKGlmIHRoZXkncmUgYXZhaWxhYmxlIGluIHRoZSBzZWxlY3Rpb25WYXJpYW50KSB0byBkaXNwbGF5IHRoZSBmaWx0ZXIgdmFsdWUgZGVzY3JpcHRpb25zLCBpbnN0ZWFkIG9mIGxvYWRpbmcgdGhlbSBmcm9tIHRoZSBiYWNrZW5kXG5cdCAqIEBwYXJhbSBmcm9tTmF2aWdhdGlvblBhcmFtZXRlcnMgT3B0aW9uYWwuIElmIHRydWUsIHRoZSBzZWxlY3Rpb24gdmFyaWFudCBpcyBhc3N1bWVkIHRvIGNvbWUgZnJvbSBuYXZpZ2F0aW9uIHBhcmFtZXRlcnMuIEluIHRoaXMgY2FzZSwgaWYgdGhlIHNlbGVjdGlvbiB2YXJpYW50IGNvbnRhaW5zIHNlbGVjdCBvcHRpb25zIGZvciBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBwcmVzZW50IGluIHRoZSBmaWx0ZXIgYmFyLCB0aGVzZSBzZWxlY3Qgb3B0aW9ucyB3aWxsIGJlIGlnbm9yZWQgYW5kIHdpbGwgbm90IGxlYWQgdG8gY2xlYXJpbmcgdGhlIGZpbHRlciBiYXIuXG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYXN5bmNocm9ub3VzIGhhbmRsaW5nXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFzeW5jIHNldFNlbGVjdGlvblZhcmlhbnRUb01kY0NvbnRyb2woXG5cdFx0Y29udHJvbEluc3RhbmNlOiBDb3JlQ29udHJvbCB8IHVuZGVmaW5lZCxcblx0XHRzZWxlY3Rpb25WYXJpYW50OiBTZWxlY3Rpb25WYXJpYW50LFxuXHRcdHByZWZpbGxEZXNjcmlwdGlvbnMgPSBmYWxzZSxcblx0XHRmcm9tTmF2aWdhdGlvblBhcmFtZXRlcnMgPSBmYWxzZVxuXHQpOiBQcm9taXNlPHsgZGlmZlN0YXRlOiBFeHRlcm5hbFN0YXRlVHlwZTsgYXBwbHlTdGF0ZVJlc3VsdDogdW5rbm93biB9IHwgdW5kZWZpbmVkPiB7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHN0YXRlOiBFeHRlcm5hbFN0YXRlVHlwZSA9IGF3YWl0IFN0YXRlVXRpbC5yZXRyaWV2ZUV4dGVybmFsU3RhdGUoY29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wpO1xuXHRcdFx0aWYgKCFzdGF0ZS5maWx0ZXIpIHtcblx0XHRcdFx0TG9nLmVycm9yKGBGRSA6IHNldFNlbGVjdGlvblZhcmlhbnQgQVBJIGNhbm5vdCBiZSBhcHBsaWVkIG9uIDogJHtjb250cm9sSW5zdGFuY2U/LmdldElkKCl9YCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdGNvbnN0IGNvbmRpdGlvbnM6IFN0YXRlVXRpbEZpbHRlciA9IGF3YWl0IHRoaXMuY29udmVydFNlbGVjdGlvblZhcmlhbnRUb1N0YXRlRmlsdGVycyhcblx0XHRcdFx0Y29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wsXG5cdFx0XHRcdHNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRcdHByZWZpbGxEZXNjcmlwdGlvbnMsXG5cdFx0XHRcdGNvbnRyb2xJbnN0YW5jZT8uZ2V0TW9kZWwoKVxuXHRcdFx0KTtcblxuXHRcdFx0aWYgKFxuXHRcdFx0XHRmcm9tTmF2aWdhdGlvblBhcmFtZXRlcnMgJiZcblx0XHRcdFx0c2VsZWN0aW9uVmFyaWFudC5nZXRTZWxlY3RPcHRpb25zUHJvcGVydHlOYW1lcygpLmxlbmd0aCA+IDAgJiZcblx0XHRcdFx0T2JqZWN0LmtleXMoY29uZGl0aW9ucykubGVuZ3RoID09PSAwXG5cdFx0XHQpIHtcblx0XHRcdFx0Ly8gSWYgdGhlIHNlbGVjdGlvbiB2YXJpYW50IGhhcyBzZWxlY3Qgb3B0aW9ucyBidXQgbm8gY29uZGl0aW9ucyBjb3VsZCBiZSBtYXBwZWQgdG8gdGhlIGZpbHRlciBiYXIsIHdlIHJldHVybiBhbiBlbXB0eSBhcnJheVxuXHRcdFx0XHQvLyBUaGlzIGlzIHRvIGF2b2lkIGNsZWFyaW5nIHRoZSBmaWx0ZXIgYmFyIGluIHRoaXMgY2FzZVxuXHRcdFx0XHQvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHNlbGVjdGlvbiB2YXJpYW50IGhhcyBvbmx5IHBhcmFtZXRlcnMgb3Igc2VsZWN0IG9wdGlvbnMgZm9yIHByb3BlcnRpZXMgbm90IHByZXNlbnQgaW4gdGhlIGZpbHRlciBiYXJcblx0XHRcdFx0Ly8gSW4gdGhpcyBjYXNlLCB3ZSBhc3N1bWUgdGhhdCB0aGUgc2VsZWN0aW9uIHZhcmlhbnQgaXMgbm90IG1lYW50IHRvIGNsZWFyIHRoZSBmaWx0ZXIgYmFyXG5cdFx0XHRcdC8vIGFuZCB3ZSBkbyBub3QgYXBwbHkgaXRcblx0XHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ2xlYXIgZmlsdGVyIG9mIHRhYmxlIGJlZm9yZSBhcHBseWluZyBzZWxlY3Rpb24gdmFyaWFudFxuXHRcdFx0YXdhaXQgdGhpcy5jbGVhckZpbHRlclZhbHVlcyhjb250cm9sSW5zdGFuY2U/LmdldFBhcmVudCgpIGFzIE1hY3JvQVBJKTtcblxuXHRcdFx0Ly8gU3RhdGUgdG8gYXBwbHlcblx0XHRcdGNvbnN0IHByb3BlcnR5SW5mb3MgPSBhd2FpdCB0aGlzLl9nZXRTdXBwb3J0ZWRGaWx0ZXJGaWVsZHMoY29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wpO1xuXHRcdFx0Y29uc3Qgc3RhdGVUb0FwcGx5ID0gc3ZUb1N0YXRlRmlsdGVycy5nZXRTdGF0ZVRvQXBwbHkocHJvcGVydHlJbmZvcywgY29uZGl0aW9ucyk7XG5cdFx0XHRpZiAoY29udHJvbEluc3RhbmNlPy5pc0EoXCJzYXAudWkubWRjLkNoYXJ0XCIpKSB7XG5cdFx0XHRcdHRoaXMuY29udmVydENvbmRpdGlvbnNGb3JDaGFydChzdGF0ZVRvQXBwbHkpO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgZGlmZlN0YXRlOiBFeHRlcm5hbFN0YXRlVHlwZSA9IGF3YWl0IFN0YXRlVXRpbC5kaWZmU3RhdGUoY29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wsIHN0YXRlLCBzdGF0ZVRvQXBwbHkpO1xuXHRcdFx0Y29uc3QgYXBwbHlTdGF0ZVJlc3VsdCA9IGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUoY29udHJvbEluc3RhbmNlIGFzIENvbnRyb2wsIHN0YXRlVG9BcHBseSk7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRkaWZmU3RhdGUsXG5cdFx0XHRcdGFwcGx5U3RhdGVSZXN1bHRcblx0XHRcdH07XG5cdFx0fSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG5cdFx0XHRjb25zdCBpZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gY29udHJvbEluc3RhbmNlPy5nZXRJZCgpO1xuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKTtcblx0XHRcdExvZy5lcnJvcihgRkUgOiBCdWlsZGluZ0Jsb2NrICgke2lkfSkgLSBzZXQgc2VsZWN0aW9uIHZhcmlhbnQgZmFpbGVkICA6ICR7bWVzc2FnZX1gKTtcblx0XHRcdHRocm93IEVycm9yKG1lc3NhZ2UpO1xuXHRcdH1cblx0fSxcblx0LyoqXG5cdCAqIENvbnZlcnQgdGhlIGNoYXJ0IHByb3BlcnRpZXMgdG8gaW50ZXJuYWwgcHJvcGVydGllcyBiZWZvcmUgYXBwbHlpbmcgdGhlIGNvbmRpdGlvbnMuXG5cdCAqIEBwYXJhbSBzdGF0ZVRvQXBwbHkgVGhpcyBjb250YWlucyB0aGUgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGZpbHRlciBhbmQgY29uZGl0aW9uc1xuXHQgKi9cblx0Y29udmVydENvbmRpdGlvbnNGb3JDaGFydChzdGF0ZVRvQXBwbHk6IFN0YXRlVG9BcHBseSk6IHZvaWQge1xuXHRcdC8vIHJlcGxhY2Uga2V5cyBvZiBmaWx0ZXIgb2JqZWN0IGZyb20gXCJTYWxlc09kZXJcIiB0byBpbnRlcm5hbCBmb3JtYXQgXCJfZmVfZ3JvdXBhYmxlX1NhbGVzT3JkZXJcIlxuXHRcdGZvciAoY29uc3QgcHJvcGVydHkgaW4gc3RhdGVUb0FwcGx5LmZpbHRlcikge1xuXHRcdFx0ZGVsZXRlIE9iamVjdC5hc3NpZ24oc3RhdGVUb0FwcGx5LmZpbHRlciwgeyBbXCJfZmVfZ3JvdXBhYmxlX1wiICsgcHJvcGVydHldOiBzdGF0ZVRvQXBwbHkuZmlsdGVyW3Byb3BlcnR5XSB9KVtwcm9wZXJ0eV07XG5cdFx0fVxuXHRcdC8vIHJlcGxhY2Uga2V5cyBvZiBpdGVtcyBhcnJheSBmcm9tIFwiU2FsZXNPZGVyXCIgdG8gaW50ZXJuYWwgZm9ybWF0IFwiX2ZlX2dyb3VwYWJsZV9TYWxlc09yZGVyXCJcblx0XHRzdGF0ZVRvQXBwbHkuaXRlbXMuZm9yRWFjaCgocHJvcGVydHlPYmo6IHsgbmFtZTogc3RyaW5nIH0pID0+IHtcblx0XHRcdHByb3BlcnR5T2JqLm5hbWUgPSBcIl9mZV9ncm91cGFibGVfXCIgKyBwcm9wZXJ0eU9iai5uYW1lO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQgdHlwZSBDb250cm9sUHJvcGVydHlJbmZvID0gUHJvcGVydHlJbmZvICYge1xuXHRjb25kaXRpb25QYXRoOiBzdHJpbmc7XG5cdGRhdGFUeXBlOiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoPzogc3RyaW5nO1xuXHRtZXRhZGF0YVBhdGg/OiBzdHJpbmc7XG5cdGlzUGFyYW1ldGVyPzogYm9vbGVhbjtcblx0aGlkZGVuRmlsdGVyPzogYm9vbGVhbjtcblx0aGFzVmFsdWVIZWxwPzogYm9vbGVhbjtcblx0cmVxdWlyZWQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU3RhdGVIZWxwZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7RUEwQkE7QUFDQTtBQUNBO0FBQ0E7O0VBRUEsTUFBTUEsV0FBVyxHQUFHO0lBQ25CO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtJQUNDLE1BQU1DLG1CQUFtQkEsQ0FBQ0MsT0FBZ0MsRUFBNkI7TUFDdEYsSUFBSTtRQUNILE1BQU1DLFlBQVksR0FBRyxNQUFNQyxTQUFTLENBQUNDLHFCQUFxQixDQUFDSCxPQUFrQixDQUFDO1FBQzlFLE1BQU1JLGFBQWEsR0FBR0gsWUFBWSxDQUFDSSxNQUF5QjtRQUM1RCxJQUFJQyxVQUFnQyxHQUFHLEVBQUU7UUFDekMsSUFDQ04sT0FBTyxFQUFFTyxTQUFTLENBQUMsQ0FBQyxFQUFFQyxHQUFHLENBQUMsc0NBQXNDLENBQUMsSUFDaEVSLE9BQU8sQ0FBQ08sU0FBUyxDQUFDLENBQUMsQ0FBa0JFLGFBQWEsS0FBS0MsU0FBUyxFQUNoRTtVQUNESixVQUFVLEdBQUlOLE9BQU8sQ0FBQ08sU0FBUyxDQUFDLENBQUMsQ0FBa0JFLGFBQWEsQ0FBQyxDQUFDO1FBQ25FO1FBQ0EsTUFBTUUsZ0JBQWdCLEdBQUdDLDhCQUE4QixDQUFDQyxpQ0FBaUMsQ0FDeEZULGFBQWEsRUFDWkosT0FBTyxDQUFhYyxpQkFBaUIsQ0FBQyxDQUFDLEVBQ3hDUixVQUNELENBQUM7UUFDRCxJ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
|
|
@@ -2,6 +2,7 @@ import Log from "sap/base/Log";
|
|
|
2
2
|
import deepClone from "sap/base/util/deepClone";
|
|
3
3
|
import type { ViewData } from "sap/fe/core/services/TemplatedViewServiceFactory";
|
|
4
4
|
import * as PropertyHelper from "sap/fe/core/templating/PropertyHelper";
|
|
5
|
+
import type TableAPI from "sap/fe/macros/Table";
|
|
5
6
|
import DraftEditState from "sap/fe/macros/filterBar/DraftEditState";
|
|
6
7
|
import type FilterBarAPI from "sap/fe/macros/filterBar/FilterBarAPI";
|
|
7
8
|
import type { PropertyInfo } from "sap/fe/macros/internal/PropertyInfo";
|
|
@@ -133,7 +134,9 @@ const StateHelper = {
|
|
|
133
134
|
* @returns Supported filter fields.
|
|
134
135
|
*/
|
|
135
136
|
async _getSupportedFilterFields(control: Control): Promise<ControlPropertyInfo[]> {
|
|
136
|
-
if (control.isA("sap.ui.mdc.
|
|
137
|
+
if ((control as Table).isA("sap.ui.mdc.Table")) {
|
|
138
|
+
return ((control as Table).getParent() as TableAPI).getEnhancedFetchedPropertyInfos() as unknown as ControlPropertyInfo[];
|
|
139
|
+
} else if (control.isA("sap.ui.mdc.Filterbar")) {
|
|
137
140
|
await (control as FilterBar).waitForInitialization();
|
|
138
141
|
return (control as FilterBar).getControlDelegate().fetchFilterProperties(control);
|
|
139
142
|
} else if ((control as FilterBar).isA("sap.fe.macros.controls.FilterBar")) {
|
|
@@ -145,7 +148,7 @@ const StateHelper = {
|
|
|
145
148
|
},
|
|
146
149
|
|
|
147
150
|
/**
|
|
148
|
-
* Clears all input values of visible filter fields in the table, chart, or filter bar
|
|
151
|
+
* Clears all input values of visible filter fields in the table, chart, or filter bar.
|
|
149
152
|
* @param controlInstance This can be a filter bar, chart, or table.
|
|
150
153
|
*/
|
|
151
154
|
async clearFilterValues(controlInstance: MacroAPI): Promise<void> {
|
|
@@ -215,11 +218,9 @@ const StateHelper = {
|
|
|
215
218
|
propertyInfos.forEach((propertyInfo: ControlPropertyInfo) => {
|
|
216
219
|
if ((control as Control).isA("sap.ui.mdc.Table")) {
|
|
217
220
|
propertyInfo["conditionPath"] = propertyInfo.name;
|
|
218
|
-
propertyInfo["annotationPath"] = propertyInfo.metadataPath ? propertyInfo.metadataPath : "";
|
|
219
221
|
propertyInfo["hasValueHelp"] = PropertyHelper.hasValueHelp(
|
|
220
222
|
(control as Table).getPropertyHelper().getProperty(propertyInfo.name)
|
|
221
223
|
);
|
|
222
|
-
propertyInfo["dataType"] = propertyInfo?.typeConfig?.className as string;
|
|
223
224
|
} else if ((control as Control).isA("sap.ui.mdc.Chart")) {
|
|
224
225
|
if (propertyInfo.path) {
|
|
225
226
|
propertyInfo["name"] = propertyInfo.path;
|
|
@@ -238,13 +239,15 @@ const StateHelper = {
|
|
|
238
239
|
* @param controlInstance This could be a table, chart, or filter bar
|
|
239
240
|
* @param selectionVariant The selection variant to apply to the respective mdc controls
|
|
240
241
|
* @param prefillDescriptions Optional. If true, we will use the associated text property values (if they're available in the selectionVariant) to display the filter value descriptions, instead of loading them from the backend
|
|
242
|
+
* @param fromNavigationParameters Optional. If true, the selection variant is assumed to come from navigation parameters. In this case, if the selection variant contains select options for properties that are not present in the filter bar, these select options will be ignored and will not lead to clearing the filter bar.
|
|
241
243
|
* @returns A promise for asynchronous handling
|
|
242
244
|
* @public
|
|
243
245
|
*/
|
|
244
246
|
async setSelectionVariantToMdcControl(
|
|
245
247
|
controlInstance: CoreControl | undefined,
|
|
246
248
|
selectionVariant: SelectionVariant,
|
|
247
|
-
prefillDescriptions = false
|
|
249
|
+
prefillDescriptions = false,
|
|
250
|
+
fromNavigationParameters = false
|
|
248
251
|
): Promise<{ diffState: ExternalStateType; applyStateResult: unknown } | undefined> {
|
|
249
252
|
try {
|
|
250
253
|
const state: ExternalStateType = await StateUtil.retrieveExternalState(controlInstance as Control);
|
|
@@ -259,6 +262,19 @@ const StateHelper = {
|
|
|
259
262
|
controlInstance?.getModel()
|
|
260
263
|
);
|
|
261
264
|
|
|
265
|
+
if (
|
|
266
|
+
fromNavigationParameters &&
|
|
267
|
+
selectionVariant.getSelectOptionsPropertyNames().length > 0 &&
|
|
268
|
+
Object.keys(conditions).length === 0
|
|
269
|
+
) {
|
|
270
|
+
// If the selection variant has select options but no conditions could be mapped to the filter bar, we return an empty array
|
|
271
|
+
// This is to avoid clearing the filter bar in this case
|
|
272
|
+
// This can happen if the selection variant has only parameters or select options for properties not present in the filter bar
|
|
273
|
+
// In this case, we assume that the selection variant is not meant to clear the filter bar
|
|
274
|
+
// and we do not apply it
|
|
275
|
+
return undefined;
|
|
276
|
+
}
|
|
277
|
+
|
|
262
278
|
// Clear filter of table before applying selection variant
|
|
263
279
|
await this.clearFilterValues(controlInstance?.getParent() as MacroAPI);
|
|
264
280
|
|
|
@@ -45,6 +45,12 @@ M_FULL_SCREEN=Enable Full Screen
|
|
|
45
45
|
# XTIT,30
|
|
46
46
|
FILTERBAR_EDITING_STATUS=Editing Status
|
|
47
47
|
|
|
48
|
+
# XMSG,70: Valuestate text for filled filterfield having associated currency and no value in it.
|
|
49
|
+
FILTERFIELD_VALUE_NO_UOM=To filter for {0}, select a value for {1}.
|
|
50
|
+
|
|
51
|
+
# XMSG,70: Associated currency has multiple values.
|
|
52
|
+
FILTERFIELD_VALUE_UOM_MULTIPLE=Select a single value for {0}.
|
|
53
|
+
|
|
48
54
|
# XFLD: Label for Search Field
|
|
49
55
|
M_CONDITIONFIELDHELP_PERIOD=Time Period
|
|
50
56
|
|
|
@@ -203,7 +209,7 @@ C_OBJECT_PAGE_MASS_EDIT_SUCCESS_TOAST=Your changes have been saved.
|
|
|
203
209
|
C_MASS_EDIT_CHANGES_WITH_ERROR={0} of {1} objects updated.
|
|
204
210
|
|
|
205
211
|
# YMSG,100: Used in the Toast message box for mass edit with no change
|
|
206
|
-
C_MASS_EDIT_NO_CHANGE=You haven'
|
|
212
|
+
C_MASS_EDIT_NO_CHANGE=You haven't made any changes.
|
|
207
213
|
|
|
208
214
|
# XTIT,50: Title of the mass edit design dialog
|
|
209
215
|
C_MASS_EDIT_DESIGN_DIALOG_TITLE=View Settings
|
|
@@ -211,6 +217,8 @@ C_MASS_EDIT_DESIGN_DIALOG_TITLE=View Settings
|
|
|
211
217
|
# XBUT,30: Text for the mass edit configuration.
|
|
212
218
|
C_MASS_EDIT_DESIGN_CONFIGURATION=Configuration
|
|
213
219
|
|
|
220
|
+
# XTIT: The tooltip for the Close button of the DraftIndicator popup
|
|
221
|
+
C_DRAFTINDICATOR_CLOSE_BUTTON=Close
|
|
214
222
|
|
|
215
223
|
# ------------Keyboard shortcut tooltips-----------------
|
|
216
224
|
|
|
@@ -227,10 +235,10 @@ M_KEYBOARD_SHORTCUT_DELETE_ROW_WIN=CTRL+D
|
|
|
227
235
|
M_KEYBOARD_SHORTCUT_DELETE_ROW_MAC=CMD+D
|
|
228
236
|
|
|
229
237
|
# XMSG,100: No Data Text when filters applied for the charts in multiview mode
|
|
230
|
-
M_TABLE_AND_CHART_NO_DATA_TEXT_MULTI_VIEW=Try
|
|
238
|
+
M_TABLE_AND_CHART_NO_DATA_TEXT_MULTI_VIEW=Try changing the view or filter criteria.
|
|
231
239
|
|
|
232
240
|
# XMSG,100: IllustratedMessage description when no filters are applied for the table and charts in the Object Page
|
|
233
|
-
M_TABLE_AND_CHART_NO_FILTERS_NO_DATA_TEXT=When there are, you'll
|
|
241
|
+
M_TABLE_AND_CHART_NO_FILTERS_NO_DATA_TEXT=When there are, you'll see them here.
|
|
234
242
|
|
|
235
243
|
# XMSG,100: Text when annotation not found
|
|
236
244
|
M_CHART_NO_ANNOTATION_SET_TEXT=No Chart annotation found
|
|
@@ -428,7 +436,7 @@ M_CARD_FAILURE_TABLE_REASON_UNSUPPORTED_COLUMNS=At least one text-based column w
|
|
|
428
436
|
M_CARD_CREATION_FAILURE_CHART_REASON_DATE_RANGE_FILTERS=Card creation isn't possible. Please retry after ensuring no relative date filters (like "Yesterday") are used.
|
|
429
437
|
|
|
430
438
|
# XMSG,300: Error message to indicate to end user that row level navigation would be disabled for apps where external navigation is configured
|
|
431
|
-
M_ROW_LEVEL_NAVIGATION_DISABLED_MSG_REASON_EXTERNAL_NAVIGATION_CONFIGURED=Direct navigation to the object details isn'
|
|
439
|
+
M_ROW_LEVEL_NAVIGATION_DISABLED_MSG_REASON_EXTERNAL_NAVIGATION_CONFIGURED=Direct navigation to the object details isn't possible from this insights card.
|
|
432
440
|
|
|
433
441
|
# ----------------Contact quick view --------------------------------
|
|
434
442
|
|
|
@@ -472,7 +480,7 @@ M_PASTE=Paste
|
|
|
472
480
|
|
|
473
481
|
M_TABLEDROP_FAILED=You can''t move this node.\n\
|
|
474
482
|
{0}
|
|
475
|
-
M_TABLE_DROP_NOT_ALLOWED=You can'
|
|
483
|
+
M_TABLE_DROP_NOT_ALLOWED=You can't move this node here.
|
|
476
484
|
|
|
477
485
|
# ------------Collapse and Expand texts for the TreeTable context menu------------
|
|
478
486
|
M_TABLE_CONTEXTMENU_COLLAPSE=Collapse entire node
|
|
@@ -49,7 +49,12 @@ M_COMMON_TABLE_FULLSCREEN_CLOSE=\u0625\u063A\u0644\u0627\u0642
|
|
|
49
49
|
|
|
50
50
|
M_COMMON_TABLE_CONTEXT_MENU_OPEN_IN_NEW_TAB=\u0641\u062A\u062D \u0641\u064A \u0639\u0644\u0627\u0645\u0629 \u062A\u0628\u0648\u064A\u0628 \u0623\u0648 \u0646\u0627\u0641\u0630\u0629 \u062C\u062F\u064A\u062F\u0629
|
|
51
51
|
|
|
52
|
-
T_TABLE_NAVIGATION_TOO_MANY_ITEMS_SELECTED=\
|
|
52
|
+
T_TABLE_NAVIGATION_TOO_MANY_ITEMS_SELECTED=\u0644\u0642\u062F \u062A\u062C\u0627\u0648\u0632\u062A \u0639\u062F\u062F \u0627\u0644\u0643\u0627\u0626\u0646\u0627\u062A \u0627\u0644\u062A\u064A \u064A\u0645\u0643\u0646 \u0641\u062A\u062D\u0647\u0627 \u0641\u064A \u0627\u0644\u0648\u0642\u062A \u0646\u0641\u0633\u0647 (\u0627\u0644\u062D\u062F \u0627\u0644\u0623\u0642\u0635\u0649\: {0}).
|
|
53
|
+
|
|
54
|
+
T_TABLE_NAVIGATION_NOT_ALL_ITEMS_NAVIGABLE_SINGULAR=\u0644\u0627 \u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u0627\u0646\u062A\u0642\u0627\u0644 \u0625\u0644\u0649 \u062C\u0645\u064A\u0639 \u0627\u0644\u0643\u0627\u0626\u0646\u0627\u062A \u0627\u0644\u0645\u062D\u062F\u062F\u0629.\n\u0627\u0644\u0645\u062D\u062F\u062F\: {0}.\n\u0627\u0644\u0645\u062A\u0648\u0641\u0631\: {1} (\u0627\u0644\u062D\u062F\: {2}).\n\u0647\u0644 \u0645\u0627 \u0632\u0644\u062A \u062A\u0631\u064A\u062F \u0641\u062A\u062D \u0627\u0644\u0643\u0627\u0626\u0646 \u0627\u0644\u0645\u062A\u0648\u0641\u0631\u061F
|
|
55
|
+
|
|
56
|
+
T_TABLE_NAVIGATION_NOT_ALL_ITEMS_NAVIGABLE_PLURAL=\u0644\u0627 \u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u0627\u0646\u062A\u0642\u0627\u0644 \u0625\u0644\u0649 \u062C\u0645\u064A\u0639 \u0627\u0644\u0643\u0627\u0626\u0646\u0627\u062A \u0627\u0644\u0645\u062D\u062F\u062F\u0629.\n\u0627\u0644\u0645\u062D\u062F\u062F\: {0}.\n\u0627\u0644\u0645\u062A\u0648\u0641\u0631\: {1} (\u0627\u0644\u062D\u062F\: {2}).\n\u0647\u0644 \u0645\u0627 \u0632\u0644\u062A \u062A\u0631\u064A\u062F \u0641\u062A\u062D \u0627\u0644\u0643\u0627\u0626\u0646\u0627\u062A \u0627\u0644\u0645\u062A\u0648\u0641\u0631\u0629\u061F
|
|
57
|
+
|
|
53
58
|
|
|
54
59
|
M_COMMON_TABLE_CONTEXT_MENU_SHARE_TO_COLLABORATION_MANAGER=\u0645\u0634\u0627\u0631\u0643\u0629 \u0645\u0639 SAP Collaboration Manager
|
|
55
60
|
|
|
@@ -131,6 +136,7 @@ C_MASS_EDIT_DESIGN_DIALOG_TITLE=\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u062
|
|
|
131
136
|
|
|
132
137
|
C_MASS_EDIT_DESIGN_CONFIGURATION=\u0627\u0644\u062A\u0643\u0648\u064A\u0646
|
|
133
138
|
|
|
139
|
+
C_DRAFTINDICATOR_CLOSE_BUTTON=\u0625\u063A\u0644\u0627\u0642
|
|
134
140
|
|
|
135
141
|
|
|
136
142
|
M_KEYBOARD_SHORTCUT_CREATE_WIN=CTRL+Enter
|
|
@@ -141,9 +147,9 @@ M_KEYBOARD_SHORTCUT_DELETE_ROW_WIN=CTRL+D
|
|
|
141
147
|
|
|
142
148
|
M_KEYBOARD_SHORTCUT_DELETE_ROW_MAC=CMD+D
|
|
143
149
|
|
|
144
|
-
M_TABLE_AND_CHART_NO_DATA_TEXT_MULTI_VIEW=\u062D\u0627\u0648\u0644 \u062A\
|
|
150
|
+
M_TABLE_AND_CHART_NO_DATA_TEXT_MULTI_VIEW=\u062D\u0627\u0648\u0644 \u062A\u063A\u064A\u064A\u0631 \u0645\u0639\u0627\u064A\u064A\u0631 \u0627\u0644\u062A\u0635\u0641\u064A\u0629 \u0623\u0648 \u0627\u0644\u0639\u0631\u0636.
|
|
145
151
|
|
|
146
|
-
M_TABLE_AND_CHART_NO_FILTERS_NO_DATA_TEXT=\
|
|
152
|
+
M_TABLE_AND_CHART_NO_FILTERS_NO_DATA_TEXT=\u0628\u0645\u062C\u0631\u062F \u0623\u0646 \u062A\u062A\u0648\u0641\u0631\u060C \u0633\u062A\u0638\u0647\u0631 \u0647\u0646\u0627.
|
|
147
153
|
|
|
148
154
|
M_CHART_NO_ANNOTATION_SET_TEXT=\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0639\u062B\u0648\u0631 \u0639\u0644\u0649 \u062A\u0639\u0644\u064A\u0642 \u062A\u0648\u0636\u064A\u062D\u064A \u0644\u0644\u0645\u062E\u0637\u0637
|
|
149
155
|
|
|
@@ -573,3 +579,6 @@ T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
|
573
579
|
T_APP_HOME=\u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0631\u0626\u064A\u0633\u064A\u0629
|
|
574
580
|
|
|
575
581
|
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=\u0627\u0644\u0645\u062D\u062A\u0648\u0649 \u063A\u064A\u0631 \u0645\u062A\u0648\u0641\u0631 \u0644\u0644\u0635\u0642 \u0628\u0639\u062F. \u062A\u062D\u0642\u0642 \u0645\u0645\u0627 \u0625\u0630\u0627 \u0643\u0627\u0646 \u0627\u0644\u0648\u0636\u0639 \u0627\u0644\u0623\u0635\u0644\u064A \u0645\u0648\u0633\u0639\u064B\u0627 \u0648\u0645\u0631\u0626\u064A\u064B\u0627.
|
|
582
|
+
|
|
583
|
+
T_RADIOBUTTONS_BOOLEAN_YES=\u0646\u0639\u0645
|
|
584
|
+
T_RADIOBUTTONS_BOOLEAN_NO=\u0644\u0627
|
|
@@ -49,7 +49,12 @@ M_COMMON_TABLE_FULLSCREEN_CLOSE=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D
|
|
|
49
49
|
|
|
50
50
|
M_COMMON_TABLE_CONTEXT_MENU_OPEN_IN_NEW_TAB=\u041E\u0442\u0432\u0430\u0440\u044F\u043D\u0435 \u0432 \u043D\u043E\u0432 \u0442\u0430\u0431 \u0438\u043B\u0438 \u043F\u0440\u043E\u0437\u043E\u0440\u0435\u0446
|
|
51
51
|
|
|
52
|
-
T_TABLE_NAVIGATION_TOO_MANY_ITEMS_SELECTED=\
|
|
52
|
+
T_TABLE_NAVIGATION_TOO_MANY_ITEMS_SELECTED=\u041D\u0430\u0434\u0432\u0438\u0448\u0438\u0445\u0442\u0435 \u0431\u0440\u043E\u044F \u043E\u0431\u0435\u043A\u0442\u0438, \u043A\u043E\u0438\u0442\u043E \u043C\u043E\u0436\u0435 \u0434\u0430 \u0431\u044A\u0434\u0430\u0442 \u043E\u0442\u0432\u043E\u0440\u0435\u043D\u0438 \u0435\u0434\u043D\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E (\u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C\: {0}).
|
|
53
|
+
|
|
54
|
+
T_TABLE_NAVIGATION_NOT_ALL_ITEMS_NAVIGABLE_SINGULAR=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u043D\u0430\u0432\u0438\u0433\u0438\u0440\u0430\u0442\u0435 \u043C\u0435\u0436\u0434\u0443 \u0432\u0441\u0438\u0447\u043A\u0438 \u0438\u0437\u0431\u0440\u0430\u043D\u0438 \u043E\u0431\u0435\u043A\u0442\u0438.\n\u0418\u0437\u0431\u0440\u0430\u043D\u0438\: {0}.\n\u041D\u0430\u043B\u0438\u0447\u043D\u0438\: {1} (\u043B\u0438\u043C\u0438\u0442\: {2}).\n\u0412\u0441\u0435 \u043E\u0449\u0435 \u043B\u0438 \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u043E\u0442\u0432\u043E\u0440\u0438\u0442\u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u0438\u044F \u043E\u0431\u0435\u043A\u0442?
|
|
55
|
+
|
|
56
|
+
T_TABLE_NAVIGATION_NOT_ALL_ITEMS_NAVIGABLE_PLURAL=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u043D\u0430\u0432\u0438\u0433\u0438\u0440\u0430\u0442\u0435 \u043C\u0435\u0436\u0434\u0443 \u0432\u0441\u0438\u0447\u043A\u0438 \u0438\u0437\u0431\u0440\u0430\u043D\u0438 \u043E\u0431\u0435\u043A\u0442\u0438.\n\u0418\u0437\u0431\u0440\u0430\u043D\u0438\: {0}.\n\u041D\u0430\u043B\u0438\u0447\u043D\u0438\: {1} (\u043B\u0438\u043C\u0438\u0442\: {2}).\n\u0412\u0441\u0435 \u043E\u0449\u0435 \u043B\u0438 \u0438\u0441\u043A\u0430\u0442\u0435 \u0434\u0430 \u043E\u0442\u0432\u043E\u0440\u0438\u0442\u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u0438\u0442\u0435 \u043E\u0431\u0435\u043A\u0442\u0438?
|
|
57
|
+
|
|
53
58
|
|
|
54
59
|
M_COMMON_TABLE_CONTEXT_MENU_SHARE_TO_COLLABORATION_MANAGER=\u0421\u043F\u043E\u0434\u0435\u043B\u044F\u043D\u0435 \u0432 SAP Collaboration Manager
|
|
55
60
|
|
|
@@ -131,6 +136,7 @@ C_MASS_EDIT_DESIGN_DIALOG_TITLE=\u041F\u0440\u0435\u0433\u043B\u0435\u0434 \u043
|
|
|
131
136
|
|
|
132
137
|
C_MASS_EDIT_DESIGN_CONFIGURATION=\u041A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F
|
|
133
138
|
|
|
139
|
+
C_DRAFTINDICATOR_CLOSE_BUTTON=\u0417\u0430\u0442\u0432\u0430\u0440\u044F\u043D\u0435
|
|
134
140
|
|
|
135
141
|
|
|
136
142
|
M_KEYBOARD_SHORTCUT_CREATE_WIN=CTRL+Enter
|
|
@@ -141,9 +147,9 @@ M_KEYBOARD_SHORTCUT_DELETE_ROW_WIN=CTRL+D
|
|
|
141
147
|
|
|
142
148
|
M_KEYBOARD_SHORTCUT_DELETE_ROW_MAC=CMD+D
|
|
143
149
|
|
|
144
|
-
M_TABLE_AND_CHART_NO_DATA_TEXT_MULTI_VIEW=\u041E\u043F\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430 \
|
|
150
|
+
M_TABLE_AND_CHART_NO_DATA_TEXT_MULTI_VIEW=\u041E\u043F\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430 \u043F\u0440\u043E\u043C\u0435\u043D\u0438\u0442\u0435 \u0438\u0437\u0433\u043B\u0435\u0434\u0430 \u0438\u043B\u0438 \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438\u0442\u0435 \u0437\u0430 \u0444\u0438\u043B\u0442\u0440\u0438\u0440\u0430\u043D\u0435.
|
|
145
151
|
|
|
146
|
-
M_TABLE_AND_CHART_NO_FILTERS_NO_DATA_TEXT=\u041A\u043E\u0433\u0430\u0442\u043E \u0438\u043C\u0430, \u0449\u0435 \u0433\u0438 \
|
|
152
|
+
M_TABLE_AND_CHART_NO_FILTERS_NO_DATA_TEXT=\u041A\u043E\u0433\u0430\u0442\u043E \u0438\u043C\u0430, \u0449\u0435 \u0433\u0438 \u0432\u0438\u0434\u0438\u0442\u0435 \u0442\u0443\u043A.
|
|
147
153
|
|
|
148
154
|
M_CHART_NO_ANNOTATION_SET_TEXT=\u041D\u044F\u043C\u0430 \u043D\u0430\u043C\u0435\u0440\u0435\u043D\u0430 \u0430\u043D\u043E\u0442\u0430\u0446\u0438\u044F \u043D\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u0430
|
|
149
155
|
|
|
@@ -302,7 +308,7 @@ M_CUTCOPY_READY=\u0420\u0435\u0434\u044A\u0442 \u0435 \u0433\u043E\u0442\u043E\u
|
|
|
302
308
|
M_PASTE=\u041F\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435
|
|
303
309
|
|
|
304
310
|
M_TABLEDROP_FAILED=\u041D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0442\u043E\u0437\u0438 \u0432\u044A\u0437\u0435\u043B. {0}
|
|
305
|
-
M_TABLE_DROP_NOT_ALLOWED=\u041D\u0435 \u043C\u043E\u0436\u0435 \u0434\u0430 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0442\u043E\u0437\u0438 \u0432\u044A\u0437\u0435\u043B \u0442\u0443\u043A.
|
|
311
|
+
M_TABLE_DROP_NOT_ALLOWED=\u041D\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u0434\u0430 \u043F\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0442\u043E\u0437\u0438 \u0432\u044A\u0437\u0435\u043B \u0442\u0443\u043A.
|
|
306
312
|
|
|
307
313
|
M_TABLE_CONTEXTMENU_COLLAPSE=\u0421\u0432\u0438\u0432\u0430\u043D\u0435 \u043D\u0430 \u0446\u0435\u043B\u0438\u044F \u0432\u044A\u0437\u0435\u043B
|
|
308
314
|
M_TABLE_CONTEXTMENU_EXPAND=\u0420\u0430\u0437\u0433\u044A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0446\u0435\u043B\u0438\u044F \u0432\u044A\u0437\u0435\u043B
|
|
@@ -573,3 +579,6 @@ T_BREADCRUMBS_TITLE_LONG_TEMPLATE={0}\: {1}
|
|
|
573
579
|
T_APP_HOME=Home
|
|
574
580
|
|
|
575
581
|
M_PASTABLE_CONTEXTS_NOT_AVAILABLE=\u0421\u044A\u0434\u044A\u0440\u0436\u0430\u043D\u0438\u0435\u0442\u043E \u0432\u0435\u0447\u0435 \u043D\u0435 \u0435 \u043D\u0430\u043B\u0438\u0447\u043D\u043E \u0437\u0430 \u0432\u043C\u044A\u043A\u0432\u0430\u043D\u0435. \u041F\u0440\u043E\u0432\u0435\u0440\u0435\u0442\u0435 \u0434\u0430\u043B\u0438 \u043E\u0440\u0438\u0433\u0438\u043D\u0430\u043B\u043D\u043E\u0442\u043E \u043F\u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435 \u0435 \u0440\u0430\u0437\u0433\u044A\u0440\u043D\u0430\u0442\u043E \u0438 \u0432\u0438\u0434\u0438\u043C\u043E.
|
|
582
|
+
|
|
583
|
+
T_RADIOBUTTONS_BOOLEAN_YES=\u0414\u0430
|
|
584
|
+
T_RADIOBUTTONS_BOOLEAN_NO=\u041D\u0435
|