@sapui5/sap.fe.core 1.108.2 → 1.110.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/package.json +11 -9
- package/src/.eslintrc +7 -0
- package/src/sap/fe/core/.library +39 -37
- package/src/sap/fe/core/.supportrc +3 -3
- package/src/sap/fe/core/ActionRuntime.js +72 -27
- package/src/sap/fe/core/ActionRuntime.ts +104 -21
- package/src/sap/fe/core/AppComponent.js +102 -120
- package/src/sap/fe/core/AppComponent.ts +148 -45
- package/src/sap/fe/core/AppStateHandler.js +105 -91
- package/src/sap/fe/core/AppStateHandler.ts +85 -23
- package/src/sap/fe/core/BaseController.js +5 -20
- package/src/sap/fe/core/BaseController.ts +11 -2
- package/src/sap/fe/core/CommonUtils.js +770 -1079
- package/src/sap/fe/core/CommonUtils.ts +750 -491
- package/src/sap/fe/core/ExtensionAPI.js +69 -96
- package/src/sap/fe/core/ExtensionAPI.ts +15 -17
- package/src/sap/fe/core/PageController.js +21 -46
- package/src/sap/fe/core/PageController.ts +11 -2
- package/src/sap/fe/core/TemplateComponent.js +6 -51
- package/src/sap/fe/core/TemplateComponent.ts +27 -16
- package/src/sap/fe/core/TemplateModel.js +18 -24
- package/src/sap/fe/core/TemplateModel.ts +25 -6
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +8 -23
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +5 -4
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +146 -180
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +144 -57
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +43 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +11 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +436 -556
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +288 -157
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +215 -202
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +93 -51
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +11 -26
- package/src/sap/fe/core/controllerextensions/EditFlow.js +407 -596
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +163 -56
- package/src/sap/fe/core/controllerextensions/Feedback.js +70 -0
- package/src/sap/fe/core/controllerextensions/Feedback.ts +64 -0
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +12 -23
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -1
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +127 -182
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +65 -32
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +96 -198
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +4 -5
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +134 -291
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +21 -12
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +111 -214
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +44 -44
- package/src/sap/fe/core/controllerextensions/MassEdit.js +24 -44
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +3 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +39 -52
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +26 -7
- package/src/sap/fe/core/controllerextensions/PageReady.js +81 -119
- package/src/sap/fe/core/controllerextensions/PageReady.ts +36 -15
- package/src/sap/fe/core/controllerextensions/Paginator.js +16 -51
- package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -3
- package/src/sap/fe/core/controllerextensions/Placeholder.js +7 -33
- package/src/sap/fe/core/controllerextensions/Routing.js +24 -32
- package/src/sap/fe/core/controllerextensions/Routing.ts +6 -1
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +53 -98
- package/src/sap/fe/core/controllerextensions/Share.ts +6 -3
- package/src/sap/fe/core/controllerextensions/SideEffects.js +103 -174
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +37 -22
- package/src/sap/fe/core/controllerextensions/ViewState.js +341 -276
- package/src/sap/fe/core/controllerextensions/ViewState.ts +236 -84
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +6 -22
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -2
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +66 -88
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +64 -17
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +28 -34
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +22 -1
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +69 -65
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +31 -12
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +15 -13
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +273 -906
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +142 -420
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +49 -115
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +12 -7
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +70 -89
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +313 -320
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +582 -683
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +507 -386
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +111 -102
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +102 -79
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +689 -154
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +866 -31
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +24 -101
- package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +5 -5
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +91 -217
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +3 -20
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +1 -0
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +46 -46
- package/src/sap/fe/core/controls/Any.js +1 -1
- package/src/sap/fe/core/controls/AnyElement.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js +4 -26
- package/src/sap/fe/core/controls/ConditionalWrapper.js +16 -33
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +16 -2
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +41 -94
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +1 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +5 -34
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +5 -7
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +7 -7
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +56 -58
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +53 -33
- package/src/sap/fe/core/controls/FieldWrapper.js +6 -49
- package/src/sap/fe/core/controls/FileWrapper.js +51 -136
- package/src/sap/fe/core/controls/FileWrapper.ts +25 -29
- package/src/sap/fe/core/controls/FilterBar.js +19 -54
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -22
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -5
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +2 -2
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +24 -46
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +14 -41
- package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +4 -4
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +26 -67
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -20
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +12 -48
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +17 -46
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -3
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +1 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +6 -78
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +4 -4
- package/src/sap/fe/core/converters/ConverterContext.js +44 -98
- package/src/sap/fe/core/converters/ConverterContext.ts +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -20
- package/src/sap/fe/core/converters/ManifestSettings.ts +16 -9
- package/src/sap/fe/core/converters/ManifestWrapper.js +97 -158
- package/src/sap/fe/core/converters/ManifestWrapper.ts +4 -0
- package/src/sap/fe/core/converters/MetaModelConverter.js +28 -167
- package/src/sap/fe/core/converters/MetaModelConverter.ts +9 -3
- package/src/sap/fe/core/converters/TemplateConverter.js +10 -22
- package/src/sap/fe/core/converters/TemplateConverter.ts +10 -7
- package/src/sap/fe/core/converters/annotations/DataField.js +88 -132
- package/src/sap/fe/core/converters/annotations/DataField.ts +90 -38
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +57 -379
- package/src/sap/fe/core/converters/controls/Common/Action.js +45 -115
- package/src/sap/fe/core/converters/controls/Common/Action.ts +17 -5
- package/src/sap/fe/core/converters/controls/Common/Chart.js +20 -73
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +21 -14
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -9
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +40 -94
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +44 -31
- package/src/sap/fe/core/converters/controls/Common/Form.js +26 -63
- package/src/sap/fe/core/converters/controls/Common/Form.ts +24 -10
- package/src/sap/fe/core/converters/controls/Common/KPI.js +13 -63
- package/src/sap/fe/core/converters/controls/Common/Table.js +368 -707
- package/src/sap/fe/core/converters/controls/Common/Table.ts +308 -197
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +54 -109
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +15 -9
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +69 -210
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +23 -16
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +12 -80
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +3 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -19
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +45 -136
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +10 -10
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +82 -173
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +48 -22
- package/src/sap/fe/core/converters/helpers/Aggregation.js +24 -66
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +3 -7
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +9 -19
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +0 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +20 -48
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +5 -1
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +12 -51
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +13 -11
- package/src/sap/fe/core/converters/helpers/ID.js +3 -17
- package/src/sap/fe/core/converters/helpers/ID.ts +2 -3
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -6
- package/src/sap/fe/core/converters/helpers/Key.js +10 -19
- package/src/sap/fe/core/converters/helpers/Key.ts +3 -3
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +2 -20
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +2 -37
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +126 -131
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +112 -31
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +67 -131
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +58 -27
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +106 -183
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +73 -104
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +74 -67
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +77 -69
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +20 -29
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +21 -0
- package/src/sap/fe/core/formatters/FPMFormatter.js +3 -7
- package/src/sap/fe/core/formatters/KPIFormatter.js +5 -13
- package/src/sap/fe/core/formatters/StandardFormatter.js +3 -18
- package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -2
- package/src/sap/fe/core/formatters/TableFormatter.js +87 -53
- package/src/sap/fe/core/formatters/TableFormatter.ts +96 -9
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -4
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -37
- package/src/sap/fe/core/fpm/Component.js +2 -17
- package/src/sap/fe/core/helpers/AnnotationEnum.js +10 -20
- package/src/sap/fe/core/helpers/AnnotationEnum.ts +6 -6
- package/src/sap/fe/core/helpers/AppStartupHelper.js +16 -52
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
- package/src/sap/fe/core/helpers/BindingToolkit.js +106 -364
- package/src/sap/fe/core/helpers/BindingToolkit.ts +30 -7
- package/src/sap/fe/core/helpers/ClassSupport.js +16 -97
- package/src/sap/fe/core/helpers/ClassSupport.ts +7 -4
- package/src/sap/fe/core/helpers/DeleteHelper.js +621 -0
- package/src/sap/fe/core/helpers/DeleteHelper.ts +796 -0
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -12
- package/src/sap/fe/core/helpers/EditState.js +2 -5
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -10
- package/src/sap/fe/core/helpers/FPMHelper.js +3 -8
- package/src/sap/fe/core/helpers/FPMHelper.ts +2 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +8 -38
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -5
- package/src/sap/fe/core/helpers/LoaderUtils.js +1 -7
- package/src/sap/fe/core/helpers/MassEditHelper.js +177 -289
- package/src/sap/fe/core/helpers/MassEditHelper.ts +124 -91
- package/src/sap/fe/core/helpers/MessageStrip.js +12 -28
- package/src/sap/fe/core/helpers/MessageStrip.ts +7 -7
- package/src/sap/fe/core/helpers/ModelHelper.js +62 -103
- package/src/sap/fe/core/helpers/ModelHelper.ts +58 -20
- package/src/sap/fe/core/helpers/PasteHelper.js +28 -51
- package/src/sap/fe/core/helpers/PasteHelper.ts +10 -9
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +112 -136
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +111 -111
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +5 -11
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +26 -32
- package/src/sap/fe/core/helpers/StableIdHelper.js +166 -218
- package/src/sap/fe/core/helpers/StableIdHelper.ts +175 -191
- package/src/sap/fe/core/helpers/Synchronization.js +1 -8
- package/src/sap/fe/core/helpers/ToES6Promise.js +1 -4
- package/src/sap/fe/core/helpers/TypeGuards.js +22 -0
- package/src/sap/fe/core/helpers/TypeGuards.ts +9 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +1 -3
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -23
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -23
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +2 -1
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +4 -16
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +2 -5
- package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +4 -27
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
- package/src/sap/fe/core/library.js +9 -48
- package/src/sap/fe/core/library.support.js +3 -2
- package/src/sap/fe/core/library.support.ts +3 -1
- package/src/sap/fe/core/library.ts +3 -8
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +74 -39
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +71 -26
- package/src/sap/fe/core/messagebundle.properties +113 -67
- package/src/sap/fe/core/messagebundle_ar.properties +20 -3
- package/src/sap/fe/core/messagebundle_bg.properties +22 -5
- package/src/sap/fe/core/messagebundle_ca.properties +21 -4
- package/src/sap/fe/core/messagebundle_cs.properties +21 -4
- package/src/sap/fe/core/messagebundle_cy.properties +22 -5
- package/src/sap/fe/core/messagebundle_da.properties +20 -3
- package/src/sap/fe/core/messagebundle_de.properties +38 -21
- package/src/sap/fe/core/messagebundle_el.properties +20 -3
- package/src/sap/fe/core/messagebundle_en.properties +38 -21
- package/src/sap/fe/core/messagebundle_en_GB.properties +20 -3
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -28
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +41 -24
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +42 -29
- package/src/sap/fe/core/messagebundle_es.properties +40 -23
- package/src/sap/fe/core/messagebundle_es_MX.properties +20 -3
- package/src/sap/fe/core/messagebundle_et.properties +20 -3
- package/src/sap/fe/core/messagebundle_fi.properties +20 -3
- package/src/sap/fe/core/messagebundle_fr.properties +21 -4
- package/src/sap/fe/core/messagebundle_fr_CA.properties +22 -5
- package/src/sap/fe/core/messagebundle_hi.properties +20 -3
- package/src/sap/fe/core/messagebundle_hr.properties +22 -5
- package/src/sap/fe/core/messagebundle_hu.properties +20 -3
- package/src/sap/fe/core/messagebundle_id.properties +20 -3
- package/src/sap/fe/core/messagebundle_it.properties +23 -6
- package/src/sap/fe/core/messagebundle_iw.properties +20 -3
- package/src/sap/fe/core/messagebundle_ja.properties +22 -5
- package/src/sap/fe/core/messagebundle_kk.properties +21 -4
- package/src/sap/fe/core/messagebundle_ko.properties +20 -3
- package/src/sap/fe/core/messagebundle_lt.properties +20 -3
- package/src/sap/fe/core/messagebundle_lv.properties +20 -3
- package/src/sap/fe/core/messagebundle_ms.properties +20 -3
- package/src/sap/fe/core/messagebundle_nl.properties +20 -3
- package/src/sap/fe/core/messagebundle_no.properties +20 -3
- package/src/sap/fe/core/messagebundle_pl.properties +21 -4
- package/src/sap/fe/core/messagebundle_pt.properties +20 -3
- package/src/sap/fe/core/messagebundle_pt_PT.properties +20 -3
- package/src/sap/fe/core/messagebundle_ro.properties +20 -3
- package/src/sap/fe/core/messagebundle_ru.properties +20 -3
- package/src/sap/fe/core/messagebundle_sh.properties +20 -3
- package/src/sap/fe/core/messagebundle_sk.properties +20 -3
- package/src/sap/fe/core/messagebundle_sl.properties +26 -9
- package/src/sap/fe/core/messagebundle_sv.properties +20 -3
- package/src/sap/fe/core/messagebundle_th.properties +21 -4
- package/src/sap/fe/core/messagebundle_tr.properties +20 -3
- package/src/sap/fe/core/messagebundle_uk.properties +23 -6
- package/src/sap/fe/core/messagebundle_vi.properties +20 -3
- package/src/sap/fe/core/messagebundle_zh_CN.properties +20 -3
- package/src/sap/fe/core/messagebundle_zh_TW.properties +20 -3
- package/src/sap/fe/core/operationsHelper.js +74 -101
- package/src/sap/fe/core/operationsHelper.ts +113 -44
- package/src/sap/fe/core/rootView/Fcl.controller.js +151 -228
- package/src/sap/fe/core/rootView/Fcl.controller.ts +90 -15
- package/src/sap/fe/core/rootView/Fcl.view.xml +1 -8
- package/src/sap/fe/core/rootView/NavContainer.controller.js +41 -78
- package/src/sap/fe/core/rootView/NavContainer.controller.ts +32 -38
- package/src/sap/fe/core/rootView/RootViewBaseController.js +110 -181
- package/src/sap/fe/core/rootView/RootViewBaseController.ts +37 -17
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -18
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +13 -52
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -22
- package/src/sap/fe/core/services/NavigationServiceFactory.js +45 -87
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +17 -10
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -28
- package/src/sap/fe/core/services/RoutingServiceFactory.js +92 -250
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +8 -12
- package/src/sap/fe/core/services/ShellServicesFactory.js +122 -251
- package/src/sap/fe/core/services/ShellServicesFactory.ts +19 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +188 -273
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +143 -154
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +37 -135
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +59 -94
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -16
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
- package/src/sap/fe/core/support/AnnotationIssue.support.js +6 -9
- package/src/sap/fe/core/support/AnnotationIssue.support.ts +4 -4
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +6 -9
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.ts +3 -3
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +6 -9
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +3 -3
- package/src/sap/fe/core/support/CommonHelper.js +7 -16
- package/src/sap/fe/core/support/Diagnostics.js +1 -10
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +6 -9
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +3 -3
- package/src/sap/fe/core/templating/CommonFormatters.js +1 -15
- package/src/sap/fe/core/templating/CriticalityFormatters.js +4 -20
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -20
- package/src/sap/fe/core/templating/DataModelPathHelper.js +49 -121
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +41 -31
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +8 -15
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +7 -7
- package/src/sap/fe/core/templating/EntitySetHelper.js +6 -31
- package/src/sap/fe/core/templating/FieldControlHelper.js +4 -21
- package/src/sap/fe/core/templating/FieldControlHelper.ts +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js +40 -111
- package/src/sap/fe/core/templating/FilterHelper.ts +20 -16
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -19
- package/src/sap/fe/core/templating/FilterTemplating.ts +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -34
- package/src/sap/fe/core/templating/PropertyHelper.js +120 -163
- package/src/sap/fe/core/templating/PropertyHelper.ts +69 -33
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +46 -0
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +34 -0
- package/src/sap/fe/core/templating/UIFormatters.js +40 -180
- package/src/sap/fe/core/templating/UIFormatters.ts +37 -43
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -14
- package/src/sap/fe/core/type/Email.js +1 -10
- package/src/sap/fe/core/type/TypeUtil.js +1 -11
- package/ui5.yaml +0 -1
- package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +0 -35
- package/src/sap/fe/core/helpers/LRMessageStrip.js +0 -234
- package/src/sap/fe/core/helpers/LRMessageStrip.ts +0 -216
|
@@ -11,14 +11,11 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
11
11
|
} catch (e) {
|
|
12
12
|
return recover(e);
|
|
13
13
|
}
|
|
14
|
-
|
|
15
14
|
if (result && result.then) {
|
|
16
15
|
return result.then(void 0, recover);
|
|
17
16
|
}
|
|
18
|
-
|
|
19
17
|
return result;
|
|
20
18
|
}
|
|
21
|
-
|
|
22
19
|
var DataQueryWatcher = /*#__PURE__*/function () {
|
|
23
20
|
function DataQueryWatcher(_oEventProvider, _fnOnFinished) {
|
|
24
21
|
this._aBindingRegistrations = [];
|
|
@@ -28,124 +25,98 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
28
25
|
this._aMDCCharts = [];
|
|
29
26
|
this._oEventProvider = _oEventProvider;
|
|
30
27
|
this._fnOnFinished = _fnOnFinished;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
}
|
|
29
|
+
// Accessors
|
|
34
30
|
var _proto = DataQueryWatcher.prototype;
|
|
35
|
-
|
|
36
31
|
_proto.isSearchPending = function isSearchPending() {
|
|
37
32
|
return this._isSearchPending;
|
|
38
33
|
};
|
|
39
|
-
|
|
40
34
|
_proto.isDataReceived = function isDataReceived() {
|
|
41
35
|
return this._isDataReceived;
|
|
42
36
|
};
|
|
43
|
-
|
|
44
37
|
_proto.resetDataReceived = function resetDataReceived() {
|
|
45
38
|
this._isDataReceived = undefined;
|
|
46
39
|
}
|
|
47
40
|
/**
|
|
48
41
|
* Reset the state: unsubscribe to all data events and remove all registered objects.
|
|
49
|
-
|
|
50
|
-
;
|
|
51
|
-
|
|
42
|
+
*/;
|
|
52
43
|
_proto.reset = function reset() {
|
|
53
44
|
var _this = this;
|
|
54
|
-
|
|
55
45
|
// Remove all remaining callbacks
|
|
56
46
|
this._aBindingRegistrations.forEach(function (reg) {
|
|
57
47
|
reg.binding.detachEvent("dataRequested", _this.onDataRequested, _this);
|
|
58
48
|
reg.binding.detachEvent("dataReceived", _this.onDataReceived, _this);
|
|
59
49
|
});
|
|
60
|
-
|
|
61
50
|
this._aOtherEventSources.forEach(function (oElement) {
|
|
62
51
|
oElement.detachEvent("search", _this.onSearch, _this);
|
|
63
52
|
oElement.detachEvent("bindingUpdated", _this.register, _this);
|
|
64
53
|
});
|
|
65
|
-
|
|
66
54
|
this._aBindingRegistrations = [];
|
|
67
55
|
this._aOtherEventSources = [];
|
|
68
56
|
this._aMDCTables = [];
|
|
69
57
|
this._aMDCCharts = [];
|
|
70
58
|
this._isSearchPending = false;
|
|
71
59
|
this._isDataReceived = undefined;
|
|
72
|
-
}
|
|
60
|
+
}
|
|
61
|
+
// //////////////////////////////////////////////////
|
|
73
62
|
// Callback when data is received on a binding.
|
|
74
63
|
;
|
|
75
|
-
|
|
76
64
|
_proto.onDataReceived = function onDataReceived(oEvent, params) {
|
|
77
65
|
// Look for the corresponding binding registration
|
|
78
66
|
var binding = oEvent.getSource();
|
|
79
|
-
|
|
80
67
|
var bindingRegistration = this._aBindingRegistrations.find(function (reg) {
|
|
81
68
|
return reg.binding === binding;
|
|
82
69
|
});
|
|
83
|
-
|
|
84
70
|
if (!bindingRegistration) {
|
|
85
71
|
Log.error("PageReady - data received on an unregistered binding");
|
|
86
72
|
return;
|
|
87
73
|
}
|
|
88
|
-
|
|
89
74
|
switch (binding.getGroupId()) {
|
|
90
75
|
case "$auto.Workers":
|
|
91
76
|
this._oEventProvider.fireEvent("workersBatchReceived");
|
|
92
|
-
|
|
93
77
|
break;
|
|
94
|
-
|
|
95
78
|
case "$auto.Heroes":
|
|
96
79
|
this._oEventProvider.fireEvent("heroesBatchReceived");
|
|
97
|
-
|
|
98
80
|
break;
|
|
99
|
-
|
|
100
81
|
default:
|
|
101
82
|
}
|
|
102
|
-
|
|
103
83
|
bindingRegistration.receivedCount++;
|
|
104
|
-
|
|
105
84
|
if (bindingRegistration.receivedCount < bindingRegistration.requestedCount) {
|
|
106
85
|
// There are other request pending --> resubscribe to wait until they return
|
|
107
86
|
binding.attachEventOnce("dataReceived", {
|
|
108
87
|
triggeredBySearch: params.triggeredBySearch
|
|
109
88
|
}, this.onDataReceived, this);
|
|
110
89
|
return;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
|
|
90
|
+
}
|
|
91
|
+
// Check if at least one binding has requested data, and all bindings that have requested data have received it
|
|
114
92
|
var bAllDone = this._aBindingRegistrations.some(function (reg) {
|
|
115
93
|
return reg.requestedCount !== 0;
|
|
116
94
|
}) && this._aBindingRegistrations.every(function (reg) {
|
|
117
95
|
return reg.requestedCount === 0 || reg.receivedCount >= reg.requestedCount;
|
|
118
96
|
});
|
|
119
|
-
|
|
120
97
|
if (params.triggeredBySearch || bindingRegistration.receivedCount >= bindingRegistration.requestedCount) {
|
|
121
98
|
this._isSearchPending = false;
|
|
122
99
|
}
|
|
123
|
-
|
|
124
100
|
if (bAllDone) {
|
|
125
101
|
this._isDataReceived = true;
|
|
126
|
-
|
|
127
102
|
this._fnOnFinished();
|
|
128
103
|
}
|
|
129
|
-
}
|
|
104
|
+
}
|
|
105
|
+
// //////////////////////////////////////////////////
|
|
130
106
|
// Callback when data is requested on a binding.
|
|
131
107
|
;
|
|
132
|
-
|
|
133
108
|
_proto.onDataRequested = function onDataRequested(oEvent, params) {
|
|
134
109
|
// Look for the corresponding binding registration
|
|
135
110
|
var binding = oEvent.getSource();
|
|
136
|
-
|
|
137
111
|
var bindingRegistration = this._aBindingRegistrations.find(function (reg) {
|
|
138
112
|
return reg.binding === binding;
|
|
139
113
|
});
|
|
140
|
-
|
|
141
114
|
if (!bindingRegistration) {
|
|
142
115
|
Log.error("PageReady - data requested on an unregistered binding");
|
|
143
116
|
return;
|
|
144
117
|
}
|
|
145
|
-
|
|
146
118
|
bindingRegistration.requestedCount++;
|
|
147
119
|
this._isDataReceived = false;
|
|
148
|
-
|
|
149
120
|
if (bindingRegistration.requestedCount - bindingRegistration.receivedCount === 1) {
|
|
150
121
|
// Listen to dataReceived only if there's no other request pending
|
|
151
122
|
// Otherwise the 'dataReceived' handler would be called several times when the first query returns
|
|
@@ -155,29 +126,23 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
155
126
|
triggeredBySearch: params.triggeredBySearch
|
|
156
127
|
}, this.onDataReceived, this);
|
|
157
128
|
}
|
|
158
|
-
}
|
|
129
|
+
}
|
|
130
|
+
// //////////////////////////////////////////////////
|
|
159
131
|
// Callback when a search is triggered from a filterbar
|
|
160
132
|
;
|
|
161
|
-
|
|
162
133
|
_proto.onSearch = function onSearch(oEvent) {
|
|
163
134
|
var _this3 = this;
|
|
164
|
-
|
|
165
135
|
var _this2 = this;
|
|
166
|
-
|
|
167
136
|
var aMDCTableLinkedToFilterBar = this._aMDCTables.filter(function (oTable) {
|
|
168
137
|
var _oTable$getParent;
|
|
169
|
-
|
|
170
138
|
return oEvent.getSource().sId === oTable.getFilter() && oTable.getVisible() && !((_oTable$getParent = oTable.getParent()) !== null && _oTable$getParent !== void 0 && _oTable$getParent.getProperty("bindingSuspended"));
|
|
171
139
|
});
|
|
172
|
-
|
|
173
140
|
var aMDCChartsLinkedToFilterBar = this._aMDCCharts.filter(function (oChart) {
|
|
174
141
|
return oEvent.getSource().sId === oChart.getFilter() && oChart.getVisible();
|
|
175
142
|
});
|
|
176
|
-
|
|
177
143
|
if (aMDCTableLinkedToFilterBar.length > 0 || aMDCChartsLinkedToFilterBar.length > 0) {
|
|
178
144
|
this._isSearchPending = true;
|
|
179
145
|
}
|
|
180
|
-
|
|
181
146
|
aMDCTableLinkedToFilterBar.forEach(function (oTable) {
|
|
182
147
|
_this2.registerTable(oTable, true);
|
|
183
148
|
});
|
|
@@ -187,66 +152,55 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
187
152
|
function _temp2() {
|
|
188
153
|
_this3.registerChart(oChart, true);
|
|
189
154
|
}
|
|
190
|
-
|
|
191
155
|
var _temp = function () {
|
|
192
156
|
if (oChart.innerChartBoundPromise) {
|
|
193
157
|
return Promise.resolve(oChart.innerChartBoundPromise).then(function () {});
|
|
194
158
|
}
|
|
195
159
|
}();
|
|
196
|
-
|
|
197
160
|
return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
|
|
198
161
|
}, function (oError) {
|
|
199
162
|
Log.error("Cannot find a inner bound chart", oError);
|
|
200
163
|
});
|
|
201
|
-
|
|
202
164
|
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
|
|
203
165
|
} catch (e) {
|
|
204
166
|
return Promise.reject(e);
|
|
205
167
|
}
|
|
206
168
|
});
|
|
207
|
-
}
|
|
169
|
+
}
|
|
170
|
+
// //////////////////////////////////////////////////
|
|
208
171
|
// Register a binding (with an optional table/chart)
|
|
209
172
|
// and attach callbacks on dateRequested/dataReceived events
|
|
210
173
|
;
|
|
211
|
-
|
|
212
174
|
_proto.register = function register(_event, data) {
|
|
213
175
|
var _data$table, _data$chart;
|
|
214
|
-
|
|
215
176
|
var binding = data.binding || ((_data$table = data.table) === null || _data$table === void 0 ? void 0 : _data$table.getRowBinding()) || ((_data$chart = data.chart) === null || _data$chart === void 0 ? void 0 : _data$chart.getControlDelegate().getInnerChart(data.chart).getBinding("data"));
|
|
216
177
|
var boundControl = data.table || data.chart;
|
|
217
|
-
|
|
218
178
|
if (!binding) {
|
|
219
179
|
return;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
|
|
180
|
+
}
|
|
181
|
+
// Check if the binding is already registered
|
|
223
182
|
var bindingRegistration = this._aBindingRegistrations.find(function (reg) {
|
|
224
183
|
return reg.binding === binding;
|
|
225
184
|
});
|
|
226
|
-
|
|
227
185
|
if (bindingRegistration) {
|
|
228
186
|
if (boundControl) {
|
|
229
187
|
// The binding was already registerd without boundControl information --> update boundControl
|
|
230
188
|
bindingRegistration.boundControl = boundControl;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
|
|
189
|
+
}
|
|
190
|
+
// This binding has already requested data, but we're registering it again (on search) --> attach to dataRequested again
|
|
234
191
|
if (bindingRegistration.requestedCount > 0) {
|
|
235
192
|
binding.detachEvent("dataRequested", this.onDataRequested, this);
|
|
236
193
|
binding.attachEventOnce("dataRequested", {
|
|
237
194
|
triggeredBySearch: data.triggeredBySearch
|
|
238
195
|
}, this.onDataRequested, this);
|
|
239
196
|
}
|
|
240
|
-
|
|
241
197
|
return;
|
|
242
198
|
}
|
|
243
|
-
|
|
244
199
|
if (boundControl) {
|
|
245
200
|
// Check if there's a different binding registered for the bound control
|
|
246
201
|
bindingRegistration = this._aBindingRegistrations.find(function (reg) {
|
|
247
202
|
return reg.boundControl === boundControl;
|
|
248
203
|
});
|
|
249
|
-
|
|
250
204
|
if (bindingRegistration && bindingRegistration.binding !== binding) {
|
|
251
205
|
// The control had a different binding. This can happen in case of MDC charts who recreated their binding after search
|
|
252
206
|
// The previous binding is destroyed, we can replace it with the new and reset counters
|
|
@@ -255,7 +209,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
255
209
|
bindingRegistration.receivedCount = 0;
|
|
256
210
|
}
|
|
257
211
|
}
|
|
258
|
-
|
|
259
212
|
if (!bindingRegistration) {
|
|
260
213
|
bindingRegistration = {
|
|
261
214
|
binding: binding,
|
|
@@ -263,10 +216,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
263
216
|
requestedCount: 0,
|
|
264
217
|
receivedCount: 0
|
|
265
218
|
};
|
|
266
|
-
|
|
267
219
|
this._aBindingRegistrations.push(bindingRegistration);
|
|
268
220
|
}
|
|
269
|
-
|
|
270
221
|
binding.detachEvent("dataRequested", this.onDataRequested, this);
|
|
271
222
|
binding.attachEventOnce("dataRequested", {
|
|
272
223
|
triggeredBySearch: data.triggeredBySearch
|
|
@@ -276,9 +227,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
276
227
|
* Registers a binding for watching its data events (dataRequested and dataReceived).
|
|
277
228
|
*
|
|
278
229
|
* @param binding The binding
|
|
279
|
-
|
|
280
|
-
;
|
|
281
|
-
|
|
230
|
+
*/;
|
|
282
231
|
_proto.registerBinding = function registerBinding(binding) {
|
|
283
232
|
this.register(null, {
|
|
284
233
|
binding: binding,
|
|
@@ -290,31 +239,24 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
290
239
|
*
|
|
291
240
|
* @param table The table
|
|
292
241
|
* @param triggeredBySearch True if this registration is triggered by a filterBar search
|
|
293
|
-
|
|
294
|
-
;
|
|
295
|
-
|
|
242
|
+
*/;
|
|
296
243
|
_proto.registerTable = function registerTable(table) {
|
|
297
244
|
var triggeredBySearch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
298
|
-
|
|
299
245
|
if (this._aMDCTables.indexOf(table) < 0) {
|
|
300
246
|
this._aMDCTables.push(table);
|
|
301
247
|
}
|
|
302
|
-
|
|
303
248
|
var oRowBinding = table.getRowBinding();
|
|
304
|
-
|
|
305
249
|
if (oRowBinding) {
|
|
306
250
|
this.register(null, {
|
|
307
251
|
table: table,
|
|
308
252
|
triggeredBySearch: triggeredBySearch
|
|
309
253
|
});
|
|
310
254
|
}
|
|
311
|
-
|
|
312
255
|
if (this._aOtherEventSources.indexOf(table) === -1) {
|
|
313
256
|
table.attachEvent("bindingUpdated", {
|
|
314
257
|
table: table,
|
|
315
258
|
triggeredBySearch: triggeredBySearch
|
|
316
259
|
}, this.register, this);
|
|
317
|
-
|
|
318
260
|
this._aOtherEventSources.push(table);
|
|
319
261
|
}
|
|
320
262
|
}
|
|
@@ -323,32 +265,25 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
323
265
|
*
|
|
324
266
|
* @param chart The chart
|
|
325
267
|
* @param triggeredBySearch True if this registration is triggered by a filterBar search
|
|
326
|
-
|
|
327
|
-
;
|
|
328
|
-
|
|
268
|
+
*/;
|
|
329
269
|
_proto.registerChart = function registerChart(chart) {
|
|
330
270
|
var triggeredBySearch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
331
|
-
|
|
332
271
|
if (this._aMDCCharts.indexOf(chart) < 0) {
|
|
333
272
|
this._aMDCCharts.push(chart);
|
|
334
273
|
}
|
|
335
|
-
|
|
336
274
|
var oInnerChart = chart.getControlDelegate().getInnerChart(chart);
|
|
337
275
|
var binding = oInnerChart === null || oInnerChart === void 0 ? void 0 : oInnerChart.getBinding("data");
|
|
338
|
-
|
|
339
276
|
if (binding) {
|
|
340
277
|
this.register(null, {
|
|
341
278
|
chart: chart,
|
|
342
279
|
triggeredBySearch: triggeredBySearch
|
|
343
280
|
});
|
|
344
281
|
}
|
|
345
|
-
|
|
346
282
|
if (this._aOtherEventSources.indexOf(chart) === -1) {
|
|
347
283
|
chart.attachEvent("bindingUpdated", {
|
|
348
284
|
chart: chart,
|
|
349
285
|
triggeredBySearch: triggeredBySearch
|
|
350
286
|
}, this.register, this);
|
|
351
|
-
|
|
352
287
|
this._aOtherEventSources.push(chart);
|
|
353
288
|
}
|
|
354
289
|
}
|
|
@@ -356,43 +291,35 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
356
291
|
* Registers an MDCTable or MDCChart for watching the data events on its inner data binding (dataRequested and dataReceived).
|
|
357
292
|
*
|
|
358
293
|
* @param element The table or chart
|
|
359
|
-
|
|
360
|
-
;
|
|
361
|
-
|
|
294
|
+
*/;
|
|
362
295
|
_proto.registerTableOrChart = function registerTableOrChart(element) {
|
|
363
296
|
try {
|
|
364
297
|
var _this5 = this;
|
|
365
|
-
|
|
366
298
|
if (!element.isA("sap.ui.mdc.Table") && !element.isA("sap.ui.mdc.Chart")) {
|
|
367
299
|
return Promise.resolve();
|
|
368
300
|
}
|
|
369
|
-
|
|
370
301
|
var _temp8 = _catch(function () {
|
|
371
302
|
return Promise.resolve(element.initialized()).then(function () {
|
|
372
303
|
var _temp6 = function () {
|
|
373
304
|
if (element.isA("sap.ui.mdc.Table")) {
|
|
374
|
-
_this5.registerTable(element);
|
|
305
|
+
_this5.registerTable(element);
|
|
306
|
+
//If the autoBindOnInit is enabled, the table will be rebound
|
|
375
307
|
//Then we need to wait for this rebind to occur to ensure the pageReady will also wait for the data to be received
|
|
376
|
-
|
|
377
|
-
|
|
378
308
|
var _temp9 = function () {
|
|
379
309
|
if (element.getAutoBindOnInit() && element.getDomRef()) {
|
|
380
310
|
return Promise.resolve(Utils.whenBound(element)).then(function () {});
|
|
381
311
|
}
|
|
382
312
|
}();
|
|
383
|
-
|
|
384
313
|
if (_temp9 && _temp9.then) return _temp9.then(function () {});
|
|
385
314
|
} else {
|
|
386
315
|
_this5.registerChart(element);
|
|
387
316
|
}
|
|
388
317
|
}();
|
|
389
|
-
|
|
390
318
|
if (_temp6 && _temp6.then) return _temp6.then(function () {});
|
|
391
319
|
}); // access binding only after table/chart is bound
|
|
392
320
|
}, function (oError) {
|
|
393
321
|
Log.error("PageReady - Cannot register a table or a chart", oError);
|
|
394
322
|
});
|
|
395
|
-
|
|
396
323
|
return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(function () {}) : void 0);
|
|
397
324
|
} catch (e) {
|
|
398
325
|
return Promise.reject(e);
|
|
@@ -404,16 +331,12 @@ sap.ui.define(["sap/base/Log", "sap/fe/macros/table/Utils"], function (Log, Util
|
|
|
404
331
|
* @param filterBar The filter bar
|
|
405
332
|
*/
|
|
406
333
|
;
|
|
407
|
-
|
|
408
334
|
_proto.registerFilterBar = function registerFilterBar(filterBar) {
|
|
409
335
|
filterBar.attachEvent("search", this.onSearch, this);
|
|
410
|
-
|
|
411
336
|
this._aOtherEventSources.push(filterBar);
|
|
412
337
|
};
|
|
413
|
-
|
|
414
338
|
return DataQueryWatcher;
|
|
415
339
|
}();
|
|
416
|
-
|
|
417
340
|
return DataQueryWatcher;
|
|
418
341
|
}, false);
|
|
419
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwiRGF0YVF1ZXJ5V2F0Y2hlciIsIl9vRXZlbnRQcm92aWRlciIsIl9mbk9uRmluaXNoZWQiLCJfYUJpbmRpbmdSZWdpc3RyYXRpb25zIiwiX2FPdGhlckV2ZW50U291cmNlcyIsIl9pc1NlYXJjaFBlbmRpbmciLCJfYU1EQ1RhYmxlcyIsIl9hTURDQ2hhcnRzIiwiaXNTZWFyY2hQZW5kaW5nIiwiaXNEYXRhUmVjZWl2ZWQiLCJfaXNEYXRhUmVjZWl2ZWQiLCJyZXNldERhdGFSZWNlaXZlZCIsInVuZGVmaW5lZCIsInJlc2V0IiwiZm9yRWFjaCIsInJlZyIsImJpbmRpbmciLCJkZXRhY2hFdmVudCIsIm9uRGF0YVJlcXVlc3RlZCIsIm9uRGF0YVJlY2VpdmVkIiwib0VsZW1lbnQiLCJvblNlYXJjaCIsInJlZ2lzdGVyIiwib0V2ZW50IiwicGFyYW1zIiwiZ2V0U291cmNlIiwiYmluZGluZ1JlZ2lzdHJhdGlvbiIsImZpbmQiLCJMb2ciLCJlcnJvciIsImdldEdyb3VwSWQiLCJmaXJlRXZlbnQiLCJyZWNlaXZlZENvdW50IiwicmVxdWVzdGVkQ291bnQiLCJhdHRhY2hFdmVudE9uY2UiLCJ0cmlnZ2VyZWRCeVNlYXJjaCIsImJBbGxEb25lIiwic29tZSIsImV2ZXJ5IiwiYU1EQ1RhYmxlTGlua2VkVG9GaWx0ZXJCYXIiLCJmaWx0ZXIiLCJvVGFibGUiLCJzSWQiLCJnZXRGaWx0ZXIiLCJnZXRWaXNpYmxlIiwiZ2V0UGFyZW50IiwiZ2V0UHJvcGVydHkiLCJhTURDQ2hhcnRzTGlua2VkVG9GaWx0ZXJCYXIiLCJvQ2hhcnQiLCJsZW5ndGgiLCJyZWdpc3RlclRhYmxlIiwicmVnaXN0ZXJDaGFydCIsImlubmVyQ2hhcnRCb3VuZFByb21pc2UiLCJvRXJyb3IiLCJfZXZlbnQiLCJkYXRhIiwidGFibGUiLCJnZXRSb3dCaW5kaW5nIiwiY2hhcnQiLCJnZXRDb250cm9sRGVsZWdhdGUiLCJnZXRJbm5lckNoYXJ0IiwiZ2V0QmluZGluZyIsImJvdW5kQ29udHJvbCIsInB1c2giLCJyZWdpc3RlckJpbmRpbmciLCJpbmRleE9mIiwib1Jvd0JpbmRpbmciLCJhdHRhY2hFdmVudCIsIm9Jbm5lckNoYXJ0IiwicmVnaXN0ZXJUYWJsZU9yQ2hhcnQiLCJlbGVtZW50IiwiaXNBIiwiaW5pdGlhbGl6ZWQiLCJnZXRBdXRvQmluZE9uSW5pdCIsImdldERvbVJlZiIsIlV0aWxzIiwid2hlbkJvdW5kIiwicmVnaXN0ZXJGaWx0ZXJCYXIiLCJmaWx0ZXJCYXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFRdWVyeVdhdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVXRpbHNcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgRXZlbnRQcm92aWRlciBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRQcm92aWRlclwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgQ2hhcnQgZnJvbSBcInNhcC91aS9tZGMvQ2hhcnRcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSBCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvQmluZGluZ1wiO1xuXG5jbGFzcyBEYXRhUXVlcnlXYXRjaGVyIHtcblx0cHJvdGVjdGVkIF9hQmluZGluZ1JlZ2lzdHJhdGlvbnM6IHsgYmluZGluZzogQmluZGluZzsgYm91bmRDb250cm9sPzogQ29udHJvbDsgcmVxdWVzdGVkQ291bnQ6IG51bWJlcjsgcmVjZWl2ZWRDb3VudDogbnVtYmVyIH1bXSA9IFtdO1xuXHRwcm90ZWN0ZWQgX2FPdGhlckV2ZW50U291cmNlczogRXZlbnRQcm92aWRlcltdID0gW107XG5cdHByb3RlY3RlZCBfaXNTZWFyY2hQZW5kaW5nID0gZmFsc2U7XG5cdHByb3RlY3RlZCBfaXNEYXRhUmVjZWl2ZWQ/OiBib29sZWFuO1xuXHRwcm90ZWN0ZWQgX2FNRENUYWJsZXM6IFRhYmxlW10gPSBbXTtcblx0cHJvdGVjdGVkIF9hTURDQ2hhcnRzOiBDaGFydFtdID0gW107XG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX29FdmVudFByb3ZpZGVyOiBFdmVudFByb3ZpZGVyLCBwcm90ZWN0ZWQgX2ZuT25GaW5pc2hlZDogKCkgPT4gdm9pZCkge31cblx0Ly8gQWNjZXNzb3JzXG5cdHB1YmxpYyBpc1NlYXJjaFBlbmRpbmcoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2lzU2VhcmNoUGVuZGluZztcblx0fVxuXHRwdWJsaWMgaXNEYXRhUmVjZWl2ZWQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2lzRGF0YVJlY2VpdmVkO1xuXHR9XG5cdHB1YmxpYyByZXNldERhdGFSZWNlaXZlZCgpIHtcblx0XHR0aGlzLl9pc0RhdGFSZWNlaXZlZCA9IHVuZGVmaW5lZDtcblx0fVxuXHQvKipcblx0ICogUmVzZXQgdGhlIHN0YXRlOiB1bnN1YnNjcmliZSB0byBhbGwgZGF0YSBldmVudHMgYW5kIHJlbW92ZSBhbGwgcmVnaXN0ZXJlZCBvYmplY3RzLlxuXHQgKi9cblx0cHVibGljIHJlc2V0KCk6IHZvaWQge1xuXHRcdC8vIFJlbW92ZSBhbGwgcmVtYWluaW5nIGNhbGxiYWNrc1xuXHRcdHRoaXMuX2FCaW5kaW5nUmVnaXN0cmF0aW9ucy5mb3JFYWNoKChyZWcpID0+IHtcblx0XHRcdHJlZy5iaW5kaW5nLmRldGFjaEV2ZW50KFwiZGF0YVJlcXVlc3RlZFwiLCB0aGlzLm9uRGF0YVJlcXVlc3RlZCwgdGhpcyk7XG5cdFx0XHRyZWcuYmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uRGF0YVJlY2VpdmVkLCB0aGlzKTtcblx0XHR9KTtcblx0XHR0aGlzLl9hT3RoZXJFdmVudFNvdXJjZXMuZm9yRWFjaCgob0VsZW1lbnQ6IGFueSkgPT4ge1xuXHRcdFx0b0VsZW1lbnQuZGV0YWNoRXZlbnQoXCJzZWFyY2hcIiwgdGhpcy5vblNlYXJjaCwgdGhpcyk7XG5cdFx0XHRvRWxlbWVudC5kZXRhY2hFdmVudChcImJpbmRpbmdVcGRhdGVkXCIsIHRoaXMucmVnaXN0ZXIsIHRoaXMpO1xuXHRcdH0pO1xuXHRcdHRoaXMuX2FCaW5kaW5nUmVnaXN0cmF0aW9ucyA9IFtdO1xuXHRcdHRoaXMuX2FPdGhlckV2ZW50U291cmNlcyA9IFtdO1xuXHRcdHRoaXMuX2FNRENUYWJsZXMgPSBbXTtcblx0XHR0aGlzLl9hTURDQ2hhcnRzID0gW107XG5cdFx0dGhpcy5faXNTZWFyY2hQZW5kaW5nID0gZmFsc2U7XG5cdFx0dGhpcy5faXNEYXRhUmVjZWl2ZWQgPSB1bmRlZmluZWQ7XG5cdH1cblx0Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblx0Ly8gQ2FsbGJhY2sgd2hlbiBkYXRhIGlzIHJlY2VpdmVkIG9uIGEgYmluZGluZy5cblx0cHJvdGVjdGVkIG9uRGF0YVJlY2VpdmVkKG9FdmVudDogRXZlbnQsIHBhcmFtczogeyB0cmlnZ2VyZWRCeVNlYXJjaDogYm9vbGVhbiB9KTogdm9pZCB7XG5cdFx0Ly8gTG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgYmluZGluZyByZWdpc3RyYXRpb25cblx0XHRjb25zdCBiaW5kaW5nID0gb0V2ZW50LmdldFNvdXJjZSgpIGFzIEJpbmRpbmc7XG5cdFx0Y29uc3QgYmluZGluZ1JlZ2lzdHJhdGlvbiA9IHRoaXMuX2FCaW5kaW5nUmVnaXN0cmF0aW9ucy5maW5kKChyZWcpID0+IHtcblx0XHRcdHJldHVybiByZWcuYmluZGluZyA9PT0gYmluZGluZztcblx0XHR9KTtcblx0XHRpZiAoIWJpbmRpbmdSZWdpc3RyYXRpb24pIHtcblx0XHRcdExvZy5lcnJvcihcIlBhZ2VSZWFkeSAtIGRhdGEgcmVjZWl2ZWQgb24gYW4gdW5yZWdpc3RlcmVkIGJpbmRpbmdcIik7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHN3aXRjaCAoKGJpbmRpbmcgYXMgYW55KS5nZXRHcm91cElkKCkpIHtcblx0XHRcdGNhc2UgXCIkYXV0by5Xb3JrZXJzXCI6XG5cdFx0XHRcdHRoaXMuX29FdmVudFByb3ZpZGVyLmZpcmVFdmVudChcIndvcmtlcnNCYXRjaFJlY2VpdmVkXCIpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCIkYXV0by5IZXJvZXNcIjpcblx0XHRcdFx0dGhpcy5fb0V2ZW50UHJvdmlkZXIuZmlyZUV2ZW50KFwiaGVyb2VzQmF0Y2hSZWNlaXZlZFwiKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdH1cblx0XHRiaW5kaW5nUmVnaXN0cmF0aW9uLnJlY2VpdmVkQ291bnQrKztcblx0XHRpZiAoYmluZGluZ1JlZ2lzdHJhdGlvbi5yZWNlaXZlZENvdW50IDwgYmluZGluZ1JlZ2lzdHJhdGlvbi5yZXF1ZXN0ZWRDb3VudCkge1xuXHRcdFx0Ly8gVGhlcmUgYXJlIG90aGVyIHJlcXVlc3QgcGVuZGluZyAtLT4gcmVzdWJzY3JpYmUgdG8gd2FpdCB1bnRpbCB0aGV5IHJldHVyblxuXHRcdFx0YmluZGluZy5hdHRhY2hFdmVudE9uY2UoXCJkYXRhUmVjZWl2ZWRcIiwgeyB0cmlnZ2VyZWRCeVNlYXJjaDogcGFyYW1zLnRyaWdnZXJlZEJ5U2VhcmNoIH0sIHRoaXMub25EYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHQvLyBDaGVjayBpZiBhdCBsZWFzdCBvbmUgYmluZGluZyBoYXMgcmVxdWVzdGVkIGRhdGEsIGFuZCBhbGwgYmluZGluZ3MgdGhhdCBoYXZlIHJlcXVlc3RlZCBkYXRhIGhhdmUgcmVjZWl2ZWQgaXRcblx0XHRjb25zdCBiQWxsRG9uZSA9XG5cdFx0XHR0aGlzLl9hQmluZGluZ1JlZ2lzdHJhdGlvbnMuc29tZSgocmVnKSA9PiB7XG5cdFx0XHRcdHJldHVybiByZWcucmVxdWVzdGVkQ291bnQgIT09IDA7XG5cdFx0XHR9KSAmJlxuXHRcdFx0dGhpcy5fYUJpbmRpbmdSZWdpc3RyYXRpb25zLmV2ZXJ5KChyZWcpID0+IHtcblx0XHRcdFx0cmV0dXJuIHJlZy5yZXF1ZXN0ZWRDb3VudCA9PT0gMCB8fCByZWcucmVjZWl2ZWRDb3VudCA+PSByZWcucmVxdWVzdGVkQ291bnQ7XG5cdFx0XHR9KTtcblx0XHRpZiAocGFyYW1zLnRyaWdnZXJlZEJ5U2VhcmNoIHx8IGJpbmRpbmdSZWdpc3RyYXRpb24ucmVjZWl2ZWRDb3VudCA+PSBiaW5kaW5nUmVnaXN0cmF0aW9uLnJlcXVlc3RlZENvdW50KSB7XG5cdFx0XHR0aGlzLl9pc1NlYXJjaFBlbmRpbmcgPSBmYWxzZTtcblx0XHR9XG5cdFx0aWYgKGJBbGxEb25lKSB7XG5cdFx0XHR0aGlzLl9pc0RhdGFSZWNlaXZlZCA9IHRydWU7XG5cdFx0XHR0aGlzLl9mbk9uRmluaXNoZWQoKTtcblx0XHR9XG5cdH1cblx0Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblx0Ly8gQ2FsbGJhY2sgd2hlbiBkYXRhIGlzIHJlcXVlc3RlZCBvbiBhIGJpbmRpbmcuXG5cdHByb3RlY3RlZCBvbkRhdGFSZXF1ZXN0ZWQob0V2ZW50OiBFdmVudCwgcGFyYW1zOiB7IHRyaWdnZXJlZEJ5U2VhcmNoOiBib29sZWFuIH0pOiB2b2lkIHtcblx0XHQvLyBMb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBiaW5kaW5nIHJlZ2lzdHJhdGlvblxuXHRcdGNvbnN0IGJpbmRpbmcgPSBvRXZlbnQuZ2V0U291cmNlKCkgYXMgQmluZGluZztcblx0XHRjb25zdCBiaW5kaW5nUmVnaXN0cmF0aW9uID0gdGhpcy5fYUJpbmRpbmdSZWdpc3RyYXRpb25zLmZpbmQoKHJlZykgPT4ge1xuXHRcdFx0cmV0dXJuIHJlZy5iaW5kaW5nID09PSBiaW5kaW5nO1xuXHRcdH0pO1xuXHRcdGlmICghYmluZGluZ1JlZ2lzdHJhdGlvbikge1xuXHRcdFx0TG9nLmVycm9yKFwiUGFnZVJlYWR5IC0gZGF0YSByZXF1ZXN0ZWQgb24gYW4gdW5yZWdpc3RlcmVkIGJpbmRpbmdcIik7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGJpbmRpbmdSZWdpc3RyYXRpb24ucmVxdWVzdGVkQ291bnQrKztcblx0XHR0aGlzLl9pc0RhdGFSZWNlaXZlZCA9IGZhbHNlO1xuXHRcdGlmIChiaW5kaW5nUmVnaXN0cmF0aW9uLnJlcXVlc3RlZENvdW50IC0gYmluZGluZ1JlZ2lzdHJhdGlvbi5yZWNlaXZlZENvdW50ID09PSAxKSB7XG5cdFx0XHQvLyBMaXN0ZW4gdG8gZGF0YVJlY2VpdmVkIG9ubHkgaWYgdGhlcmUncyBubyBvdGhlciByZXF1ZXN0IHBlbmRpbmdcblx0XHRcdC8vIE90aGVyd2lzZSB0aGUgJ2RhdGFSZWNlaXZlZCcgaGFuZGxlciB3b3VsZCBiZSBjYWxsZWQgc2V2ZXJhbCB0aW1lcyB3aGVuIHRoZSBmaXJzdCBxdWVyeSByZXR1cm5zXG5cdFx0XHQvLyBhbmQgd2Ugd291bGRuJ3Qgd2FpdCBmb3IgYWxsIHF1ZXJpZXMgdG8gYmUgZmluaXNoZWRcblx0XHRcdC8vICh3ZSB3aWxsIHJlc3Vic2NyaWJlIHRvIHRoZSBkYXRhUmVjZWl2ZWQgZXZlbnQgaW4gb25EYXRhUmVjZWl2ZWQgaWYgbmVjZXNzYXJ5KVxuXHRcdFx0YmluZGluZy5hdHRhY2hFdmVudE9uY2UoXCJkYXRhUmVjZWl2ZWRcIiwgeyB0cmlnZ2VyZWRCeVNlYXJjaDogcGFyYW1zLnRyaWdnZXJlZEJ5U2VhcmNoIH0sIHRoaXMub25EYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdH1cblx0fVxuXHQvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXHQvLyBDYWxsYmFjayB3aGVuIGEgc2VhcmNoIGlzIHRyaWdnZXJlZCBmcm9tIGEgZmlsdGVyYmFyXG5cdHByb3RlY3RlZCBvblNlYXJjaChvRXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgYU1EQ1RhYmxlTGlua2VkVG9GaWx0ZXJCYXIgPSB0aGlzLl9hTURDVGFibGVzLmZpbHRlcigob1RhYmxlKSA9PiB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQob0V2ZW50LmdldFNvdXJjZSgpIGFzIGFueSkuc0lkID09PSBvVGFibGUuZ2V0RmlsdGVyKCkgJiZcblx0XHRcdFx0b1RhYmxlLmdldFZpc2libGUoKSAmJlxuXHRcdFx0XHQhb1RhYmxlLmdldFBhcmVudCgpPy5nZXRQcm9wZXJ0eShcImJpbmRpbmdTdXNwZW5kZWRcIilcblx0XHRcdCk7XG5cdFx0fSk7XG5cdFx0Y29uc3QgYU1EQ0NoYXJ0c0xpbmtlZFRvRmlsdGVyQmFyID0gdGhpcy5fYU1EQ0NoYXJ0cy5maWx0ZXIoKG9DaGFydCkgPT4ge1xuXHRcdFx0cmV0dXJuIChvRXZlbnQuZ2V0U291cmNlKCkgYXMgYW55KS5zSWQgPT09IG9DaGFydC5nZXRGaWx0ZXIoKSAmJiBvQ2hhcnQuZ2V0VmlzaWJsZSgpO1xuXHRcdH0pO1xuXHRcdGlmIChhTURDVGFibGVMaW5rZWRUb0ZpbHRlckJhci5sZW5ndGggPiAwIHx8IGFNRENDaGFydHNMaW5rZWRUb0ZpbHRlckJhci5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aGlzLl9pc1NlYXJjaFBlbmRpbmcgPSB0cnVlO1xuXHRcdH1cblx0XHRhTURDVGFibGVMaW5rZWRUb0ZpbHRlckJhci5mb3JFYWNoKChvVGFibGUpID0+IHtcblx0XHRcdHRoaXMucmVnaXN0ZXJUYWJsZShvVGFibGUsIHRydWUpO1xuXHRcdH0pO1xuXHRcdGFNRENDaGFydHNMaW5rZWRUb0ZpbHRlckJhci5mb3JFYWNoKGFzeW5jIChvQ2hhcnQ6IGFueSkgPT4ge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0aWYgKG9DaGFydC5pbm5lckNoYXJ0Qm91bmRQcm9taXNlKSB7XG5cdFx0XHRcdFx0YXdhaXQgb0NoYXJ0LmlubmVyQ2hhcnRCb3VuZFByb21pc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5yZWdpc3RlckNoYXJ0KG9DaGFydCwgdHJ1ZSk7XG5cdFx0XHR9IGNhdGNoIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgZmluZCBhIGlubmVyIGJvdW5kIGNoYXJ0XCIsIG9FcnJvcik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblx0Ly8gUmVnaXN0ZXIgYSBiaW5kaW5nICh3aXRoIGFuIG9wdGlvbmFsIHRhYmxlL2NoYXJ0KVxuXHQvLyBhbmQgYXR0YWNoIGNhbGxiYWNrcyBvbiBkYXRlUmVxdWVzdGVkL2RhdGFSZWNlaXZlZCBldmVudHNcblx0cHVibGljIHJlZ2lzdGVyKF9ldmVudDogRXZlbnQgfCBudWxsLCBkYXRhOiB7IGJpbmRpbmc/OiBCaW5kaW5nOyB0YWJsZT86IFRhYmxlOyBjaGFydD86IENoYXJ0OyB0cmlnZ2VyZWRCeVNlYXJjaDogYm9vbGVhbiB9KTogdm9pZCB7XG5cdFx0Y29uc3QgYmluZGluZzogQmluZGluZyB8IHVuZGVmaW5lZCA9XG5cdFx0XHRkYXRhLmJpbmRpbmcgfHxcblx0XHRcdGRhdGEudGFibGU/LmdldFJvd0JpbmRpbmcoKSB8fFxuXHRcdFx0KGRhdGEuY2hhcnQgYXMgYW55KT8uZ2V0Q29udHJvbERlbGVnYXRlKCkuZ2V0SW5uZXJDaGFydChkYXRhLmNoYXJ0KS5nZXRCaW5kaW5nKFwiZGF0YVwiKTtcblx0XHRjb25zdCBib3VuZENvbnRyb2wgPSAoZGF0YS50YWJsZSB8fCBkYXRhLmNoYXJ0KSBhcyBDb250cm9sIHwgdW5kZWZpbmVkO1xuXHRcdGlmICghYmluZGluZykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHQvLyBDaGVjayBpZiB0aGUgYmluZGluZyBpcyBhbHJlYWR5IHJlZ2lzdGVyZWRcblx0XHRsZXQgYmluZGluZ1JlZ2lzdHJhdGlvbiA9IHRoaXMuX2FCaW5kaW5nUmVnaXN0cmF0aW9ucy5maW5kKChyZWcpID0+IHtcblx0XHRcdHJldHVybiByZWcuYmluZGluZyA9PT0gYmluZGluZztcblx0XHR9KTtcblx0XHRpZiAoYmluZGluZ1JlZ2lzdHJhdGlvbikge1xuXHRcdFx0aWYgKGJvdW5kQ29udHJvbCkge1xuXHRcdFx0XHQvLyBUaGUgYmluZGluZyB3YXMgYWxyZWFkeSByZWdpc3RlcmQgd2l0aG91dCBib3VuZENvbnRyb2wgaW5mb3JtYXRpb24gLS0+IHVwZGF0ZSBib3VuZENvbnRyb2xcblx0XHRcdFx0YmluZGluZ1JlZ2lzdHJhdGlvbi5ib3VuZENvbnRyb2wgPSBib3VuZENvbnRyb2w7XG5cdFx0XHR9XG5cdFx0XHQvLyBUaGlzIGJpbmRpbmcgaGFzIGFscmVhZHkgcmVxdWVzdGVkIGRhdGEsIGJ1dCB3ZSdyZSByZWdpc3RlcmluZyBpdCBhZ2FpbiAob24gc2VhcmNoKSAtLT4gYXR0YWNoIHRvIGRhdGFSZXF1ZXN0ZWQgYWdhaW5cblx0XHRcdGlmIChiaW5kaW5nUmVnaXN0cmF0aW9uLnJlcXVlc3RlZENvdW50ID4gMCkge1xuXHRcdFx0XHRiaW5kaW5nLmRldGFjaEV2ZW50KFwiZGF0YVJlcXVlc3RlZFwiLCB0aGlzLm9uRGF0YVJlcXVlc3RlZCwgdGhpcyk7XG5cdFx0XHRcdGJpbmRpbmcuYXR0YWNoRXZlbnRPbmNlKFwiZGF0YVJlcXVlc3RlZFwiLCB7IHRyaWdnZXJlZEJ5U2VhcmNoOiBkYXRhLnRyaWdnZXJlZEJ5U2VhcmNoIH0sIHRoaXMub25EYXRhUmVxdWVzdGVkLCB0aGlzKTtcblx0XHRcdH1cblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKGJvdW5kQ29udHJvbCkge1xuXHRcdFx0Ly8gQ2hlY2sgaWYgdGhlcmUncyBhIGRpZmZlcmVudCBiaW5kaW5nIHJlZ2lzdGVyZWQgZm9yIHRoZSBib3VuZCBjb250cm9sXG5cdFx0XHRiaW5kaW5nUmVnaXN0cmF0aW9uID0gdGhpcy5fYUJpbmRpbmdSZWdpc3RyYXRpb25zLmZpbmQoKHJlZykgPT4ge1xuXHRcdFx0XHRyZXR1cm4gcmVnLmJvdW5kQ29udHJvbCA9PT0gYm91bmRDb250cm9sO1xuXHRcdFx0fSk7XG5cdFx0XHRpZiAoYmluZGluZ1JlZ2lzdHJhdGlvbiAmJiBiaW5kaW5nUmVnaXN0cmF0aW9uLmJpbmRpbmcgIT09IGJpbmRpbmcpIHtcblx0XHRcdFx0Ly8gVGhlIGNvbnRyb2wgaGFkIGEgZGlmZmVyZW50IGJpbmRpbmcuIFRoaXMgY2FuIGhhcHBlbiBpbiBjYXNlIG9mIE1EQyBjaGFydHMgd2hvIHJlY3JlYXRlZCB0aGVpciBiaW5kaW5nIGFmdGVyIHNlYXJjaFxuXHRcdFx0XHQvLyBUaGUgcHJldmlvdXMgYmluZGluZyBpcyBkZXN0cm95ZWQsIHdlIGNhbiByZXBsYWNlIGl0IHdpdGggdGhlIG5ldyBhbmQgcmVzZXQgY291bnRlcnNcblx0XHRcdFx0YmluZGluZ1JlZ2lzdHJhdGlvbi5iaW5kaW5nID0gYmluZGluZztcblx0XHRcdFx0YmluZGluZ1JlZ2lzdHJhdGlvbi5yZXF1ZXN0ZWRDb3VudCA9IDA7XG5cdFx0XHRcdGJpbmRpbmdSZWdpc3RyYXRpb24ucmVjZWl2ZWRDb3VudCA9IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICghYmluZGluZ1JlZ2lzdHJhdGlvbikge1xuXHRcdFx0YmluZGluZ1JlZ2lzdHJhdGlvbiA9IHtcblx0XHRcdFx0YmluZGluZzogYmluZGluZyxcblx0XHRcdFx0Ym91bmRDb250cm9sOiBib3VuZENvbnRyb2wsXG5cdFx0XHRcdHJlcXVlc3RlZENvdW50OiAwLFxuXHRcdFx0XHRyZWNlaXZlZENvdW50OiAwXG5cdFx0XHR9O1xuXHRcdFx0dGhpcy5fYUJpbmRpbmdSZWdpc3RyYXRpb25zLnB1c2goYmluZGluZ1JlZ2lzdHJhdGlvbik7XG5cdFx0fVxuXHRcdGJpbmRpbmcuZGV0YWNoRXZlbnQoXCJkYXRhUmVxdWVzdGVkXCIsIHRoaXMub25EYXRhUmVxdWVzdGVkLCB0aGlzKTtcblx0XHRiaW5kaW5nLmF0dGFjaEV2ZW50T25jZShcImRhdGFSZXF1ZXN0ZWRcIiwgeyB0cmlnZ2VyZWRCeVNlYXJjaDogZGF0YS50cmlnZ2VyZWRCeVNlYXJjaCB9LCB0aGlzLm9uRGF0YVJlcXVlc3RlZCwgdGhpcyk7XG5cdH1cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhIGJpbmRpbmcgZm9yIHdhdGNoaW5nIGl0cyBkYXRhIGV2ZW50cyAoZGF0YVJlcXVlc3RlZCBhbmQgZGF0YVJlY2VpdmVkKS5cblx0ICpcblx0ICogQHBhcmFtIGJpbmRpbmcgVGhlIGJpbmRpbmdcblx0ICovXG5cdHB1YmxpYyByZWdpc3RlckJpbmRpbmcoYmluZGluZzogQmluZGluZykge1xuXHRcdHRoaXMucmVnaXN0ZXIobnVsbCwgeyBiaW5kaW5nLCB0cmlnZ2VyZWRCeVNlYXJjaDogZmFsc2UgfSk7XG5cdH1cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhbiBNRENUYWJsZSBmb3Igd2F0Y2hpbmcgdGhlIGRhdGEgZXZlbnRzIG9uIGl0cyByb3cgYmluZGluZyAoZGF0YVJlcXVlc3RlZCBhbmQgZGF0YVJlY2VpdmVkKS5cblx0ICpcblx0ICogQHBhcmFtIHRhYmxlIFRoZSB0YWJsZVxuXHQgKiBAcGFyYW0gdHJpZ2dlcmVkQnlTZWFyY2ggVHJ1ZSBpZiB0aGlzIHJlZ2lzdHJhdGlvbiBpcyB0cmlnZ2VyZWQgYnkgYSBmaWx0ZXJCYXIgc2VhcmNoXG5cdCAqL1xuXHRwcm90ZWN0ZWQgcmVnaXN0ZXJUYWJsZSh0YWJsZTogVGFibGUsIHRyaWdnZXJlZEJ5U2VhcmNoID0gZmFsc2UpIHtcblx0XHRpZiAodGhpcy5fYU1EQ1RhYmxlcy5pbmRleE9mKHRhYmxlKSA8IDApIHtcblx0XHRcdHRoaXMuX2FNRENUYWJsZXMucHVzaCh0YWJsZSk7XG5cdFx0fVxuXHRcdGNvbnN0IG9Sb3dCaW5kaW5nID0gdGFibGUuZ2V0Um93QmluZGluZygpO1xuXHRcdGlmIChvUm93QmluZGluZykge1xuXHRcdFx0dGhpcy5yZWdpc3RlcihudWxsLCB7IHRhYmxlLCB0cmlnZ2VyZWRCeVNlYXJjaCB9KTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuX2FPdGhlckV2ZW50U291cmNlcy5pbmRleE9mKHRhYmxlKSA9PT0gLTEpIHtcblx0XHRcdHRhYmxlLmF0dGFjaEV2ZW50KFwiYmluZGluZ1VwZGF0ZWRcIiwgeyB0YWJsZSwgdHJpZ2dlcmVkQnlTZWFyY2ggfSwgdGhpcy5yZWdpc3RlciwgdGhpcyk7XG5cdFx0XHR0aGlzLl9hT3RoZXJFdmVudFNvdXJjZXMucHVzaCh0YWJsZSk7XG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBSZWdpc3RlcnMgYW4gTURDQ2hhcnQgZm9yIHdhdGNoaW5nIHRoZSBkYXRhIGV2ZW50cyBvbiBpdHMgaW5uZXIgZGF0YSBiaW5kaW5nIChkYXRhUmVxdWVzdGVkIGFuZCBkYXRhUmVjZWl2ZWQpLlxuXHQgKlxuXHQgKiBAcGFyYW0gY2hhcnQgVGhlIGNoYXJ0XG5cdCAqIEBwYXJhbSB0cmlnZ2VyZWRCeVNlYXJjaCBUcnVlIGlmIHRoaXMgcmVnaXN0cmF0aW9uIGlzIHRyaWdnZXJlZCBieSBhIGZpbHRlckJhciBzZWFyY2hcblx0ICovXG5cdHByb3RlY3RlZCByZWdpc3RlckNoYXJ0KGNoYXJ0OiBDaGFydCwgdHJpZ2dlcmVkQnlTZWFyY2ggPSBmYWxzZSkge1xuXHRcdGlmICh0aGlzLl9hTURDQ2hhcnRzLmluZGV4T2YoY2hhcnQpIDwgMCkge1xuXHRcdFx0dGhpcy5fYU1EQ0NoYXJ0cy5wdXNoKGNoYXJ0KTtcblx0XHR9XG5cdFx0Y29uc3Qgb0lubmVyQ2hhcnQgPSAoY2hhcnQgYXMgYW55KS5nZXRDb250cm9sRGVsZWdhdGUoKS5nZXRJbm5lckNoYXJ0KGNoYXJ0KTtcblx0XHRjb25zdCBiaW5kaW5nID0gb0lubmVyQ2hhcnQ/LmdldEJpbmRpbmcoXCJkYXRhXCIpO1xuXHRcdGlmIChiaW5kaW5nKSB7XG5cdFx0XHR0aGlzLnJlZ2lzdGVyKG51bGwsIHsgY2hhcnQsIHRyaWdnZXJlZEJ5U2VhcmNoIH0pO1xuXHRcdH1cblx0XHRpZiAodGhpcy5fYU90aGVyRXZlbnRTb3VyY2VzLmluZGV4T2YoY2hhcnQpID09PSAtMSkge1xuXHRcdFx0Y2hhcnQuYXR0YWNoRXZlbnQoXCJiaW5kaW5nVXBkYXRlZFwiLCB7IGNoYXJ0LCB0cmlnZ2VyZWRCeVNlYXJjaCB9LCB0aGlzLnJlZ2lzdGVyLCB0aGlzKTtcblx0XHRcdHRoaXMuX2FPdGhlckV2ZW50U291cmNlcy5wdXNoKGNoYXJ0KTtcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhbiBNRENUYWJsZSBvciBNRENDaGFydCBmb3Igd2F0Y2hpbmcgdGhlIGRhdGEgZXZlbnRzIG9uIGl0cyBpbm5lciBkYXRhIGJpbmRpbmcgKGRhdGFSZXF1ZXN0ZWQgYW5kIGRhdGFSZWNlaXZlZCkuXG5cdCAqXG5cdCAqIEBwYXJhbSBlbGVtZW50ICBUaGUgdGFibGUgb3IgY2hhcnRcblx0ICovXG5cdHB1YmxpYyBhc3luYyByZWdpc3RlclRhYmxlT3JDaGFydChlbGVtZW50OiBUYWJsZSB8IENoYXJ0KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKCFlbGVtZW50LmlzQShcInNhcC51aS5tZGMuVGFibGVcIikgJiYgIWVsZW1lbnQuaXNBKFwic2FwLnVpLm1kYy5DaGFydFwiKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgZWxlbWVudC5pbml0aWFsaXplZCgpOyAvLyBhY2Nlc3MgYmluZGluZyBvbmx5IGFmdGVyIHRhYmxlL2NoYXJ0IGlzIGJvdW5kXG5cdFx0XHRpZiAoZWxlbWVudC5pc0EoXCJzYXAudWkubWRjLlRhYmxlXCIpKSB7XG5cdFx0XHRcdHRoaXMucmVnaXN0ZXJUYWJsZShlbGVtZW50IGFzIFRhYmxlKTtcblx0XHRcdFx0Ly9JZiB0aGUgYXV0b0JpbmRPbkluaXQgaXMgZW5hYmxlZCwgdGhlIHRhYmxlIHdpbGwgYmUgcmVib3VuZFxuXHRcdFx0XHQvL1RoZW4gd2UgbmVlZCB0byB3YWl0IGZvciB0aGlzIHJlYmluZCB0byBvY2N1ciB0byBlbnN1cmUgdGhlIHBhZ2VSZWFkeSB3aWxsIGFsc28gd2FpdCBmb3IgdGhlIGRhdGEgdG8gYmUgcmVjZWl2ZWRcblx0XHRcdFx0aWYgKGVsZW1lbnQuZ2V0QXV0b0JpbmRPbkluaXQoKSAmJiBlbGVtZW50LmdldERvbVJlZigpKSB7XG5cdFx0XHRcdFx0YXdhaXQgVXRpbHMud2hlbkJvdW5kKGVsZW1lbnQgYXMgVGFibGUpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnJlZ2lzdGVyQ2hhcnQoZWxlbWVudCBhcyBDaGFydCk7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAob0Vycm9yOiBhbnkpIHtcblx0XHRcdExvZy5lcnJvcihcIlBhZ2VSZWFkeSAtIENhbm5vdCByZWdpc3RlciBhIHRhYmxlIG9yIGEgY2hhcnRcIiwgb0Vycm9yKTtcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhbiBNRENGaWx0ZXJCYXIgZm9yIHdhdGNoaW5nIGl0cyBzZWFyY2ggZXZlbnQuXG5cdCAqXG5cdCAqIEBwYXJhbSBmaWx0ZXJCYXIgVGhlIGZpbHRlciBiYXJcblx0ICovXG5cdHB1YmxpYyByZWdpc3RlckZpbHRlckJhcihmaWx0ZXJCYXI6IEZpbHRlckJhcikge1xuXHRcdGZpbHRlckJhci5hdHRhY2hFdmVudChcInNlYXJjaFwiLCB0aGlzLm9uU2VhcmNoLCB0aGlzKTtcblx0XHR0aGlzLl9hT3RoZXJFdmVudFNvdXJjZXMucHVzaChmaWx0ZXJCYXIpO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBEYXRhUXVlcnlXYXRjaGVyO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBa2pCTyxnQkFBZ0JBLElBQWhCLEVBQXNCQyxPQUF0QixFQUErQjtJQUNyQyxJQUFJO01BQ0gsSUFBSUMsTUFBTSxHQUFHRixJQUFJLEVBQWpCO0lBQ0EsQ0FGRCxDQUVFLE9BQU1HLENBQU4sRUFBUztNQUNWLE9B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
|
|
342
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJib2R5IiwicmVjb3ZlciIsInJlc3VsdCIsImUiLCJ0aGVuIiwiRGF0YVF1ZXJ5V2F0Y2hlciIsIl9vRXZlbnRQcm92aWRlciIsIl9mbk9uRmluaXNoZWQiLCJfYUJpbmRpbmdSZWdpc3RyYXRpb25zIiwiX2FPdGhlckV2ZW50U291cmNlcyIsIl9pc1NlYXJjaFBlbmRpbmciLCJfYU1EQ1RhYmxlcyIsIl9hTURDQ2hhcnRzIiwiaXNTZWFyY2hQZW5kaW5nIiwiaXNEYXRhUmVjZWl2ZWQiLCJfaXNEYXRhUmVjZWl2ZWQiLCJyZXNldERhdGFSZWNlaXZlZCIsInVuZGVmaW5lZCIsInJlc2V0IiwiZm9yRWFjaCIsInJlZyIsImJpbmRpbmciLCJkZXRhY2hFdmVudCIsIm9uRGF0YVJlcXVlc3RlZCIsIm9uRGF0YVJlY2VpdmVkIiwib0VsZW1lbnQiLCJvblNlYXJjaCIsInJlZ2lzdGVyIiwib0V2ZW50IiwicGFyYW1zIiwiZ2V0U291cmNlIiwiYmluZGluZ1JlZ2lzdHJhdGlvbiIsImZpbmQiLCJMb2ciLCJlcnJvciIsImdldEdyb3VwSWQiLCJmaXJlRXZlbnQiLCJyZWNlaXZlZENvdW50IiwicmVxdWVzdGVkQ291bnQiLCJhdHRhY2hFdmVudE9uY2UiLCJ0cmlnZ2VyZWRCeVNlYXJjaCIsImJBbGxEb25lIiwic29tZSIsImV2ZXJ5IiwiYU1EQ1RhYmxlTGlua2VkVG9GaWx0ZXJCYXIiLCJmaWx0ZXIiLCJvVGFibGUiLCJzSWQiLCJnZXRGaWx0ZXIiLCJnZXRWaXNpYmxlIiwiZ2V0UGFyZW50IiwiZ2V0UHJvcGVydHkiLCJhTURDQ2hhcnRzTGlua2VkVG9GaWx0ZXJCYXIiLCJvQ2hhcnQiLCJsZW5ndGgiLCJyZWdpc3RlclRhYmxlIiwicmVnaXN0ZXJDaGFydCIsImlubmVyQ2hhcnRCb3VuZFByb21pc2UiLCJvRXJyb3IiLCJfZXZlbnQiLCJkYXRhIiwidGFibGUiLCJnZXRSb3dCaW5kaW5nIiwiY2hhcnQiLCJnZXRDb250cm9sRGVsZWdhdGUiLCJnZXRJbm5lckNoYXJ0IiwiZ2V0QmluZGluZyIsImJvdW5kQ29udHJvbCIsInB1c2giLCJyZWdpc3RlckJpbmRpbmciLCJpbmRleE9mIiwib1Jvd0JpbmRpbmciLCJhdHRhY2hFdmVudCIsIm9Jbm5lckNoYXJ0IiwicmVnaXN0ZXJUYWJsZU9yQ2hhcnQiLCJlbGVtZW50IiwiaXNBIiwiaW5pdGlhbGl6ZWQiLCJnZXRBdXRvQmluZE9uSW5pdCIsImdldERvbVJlZiIsIlV0aWxzIiwid2hlbkJvdW5kIiwicmVnaXN0ZXJGaWx0ZXJCYXIiLCJmaWx0ZXJCYXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkRhdGFRdWVyeVdhdGNoZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvdGFibGUvVXRpbHNcIjtcbmltcG9ydCB0eXBlIEV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgRXZlbnRQcm92aWRlciBmcm9tIFwic2FwL3VpL2Jhc2UvRXZlbnRQcm92aWRlclwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgQ2hhcnQgZnJvbSBcInNhcC91aS9tZGMvQ2hhcnRcIjtcbmltcG9ydCB0eXBlIEZpbHRlckJhciBmcm9tIFwic2FwL3VpL21kYy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB0eXBlIFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5pbXBvcnQgdHlwZSBCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvQmluZGluZ1wiO1xuXG5jbGFzcyBEYXRhUXVlcnlXYXRjaGVyIHtcblx0cHJvdGVjdGVkIF9hQmluZGluZ1JlZ2lzdHJhdGlvbnM6IHsgYmluZGluZzogQmluZGluZzsgYm91bmRDb250cm9sPzogQ29udHJvbDsgcmVxdWVzdGVkQ291bnQ6IG51bWJlcjsgcmVjZWl2ZWRDb3VudDogbnVtYmVyIH1bXSA9IFtdO1xuXHRwcm90ZWN0ZWQgX2FPdGhlckV2ZW50U291cmNlczogRXZlbnRQcm92aWRlcltdID0gW107XG5cdHByb3RlY3RlZCBfaXNTZWFyY2hQZW5kaW5nID0gZmFsc2U7XG5cdHByb3RlY3RlZCBfaXNEYXRhUmVjZWl2ZWQ/OiBib29sZWFuO1xuXHRwcm90ZWN0ZWQgX2FNRENUYWJsZXM6IFRhYmxlW10gPSBbXTtcblx0cHJvdGVjdGVkIF9hTURDQ2hhcnRzOiBDaGFydFtdID0gW107XG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX29FdmVudFByb3ZpZGVyOiBFdmVudFByb3ZpZGVyLCBwcm90ZWN0ZWQgX2ZuT25GaW5pc2hlZDogKCkgPT4gdm9pZCkge31cblx0Ly8gQWNjZXNzb3JzXG5cdHB1YmxpYyBpc1NlYXJjaFBlbmRpbmcoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2lzU2VhcmNoUGVuZGluZztcblx0fVxuXHRwdWJsaWMgaXNEYXRhUmVjZWl2ZWQoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2lzRGF0YVJlY2VpdmVkO1xuXHR9XG5cdHB1YmxpYyByZXNldERhdGFSZWNlaXZlZCgpIHtcblx0XHR0aGlzLl9pc0RhdGFSZWNlaXZlZCA9IHVuZGVmaW5lZDtcblx0fVxuXHQvKipcblx0ICogUmVzZXQgdGhlIHN0YXRlOiB1bnN1YnNjcmliZSB0byBhbGwgZGF0YSBldmVudHMgYW5kIHJlbW92ZSBhbGwgcmVnaXN0ZXJlZCBvYmplY3RzLlxuXHQgKi9cblx0cHVibGljIHJlc2V0KCk6IHZvaWQge1xuXHRcdC8vIFJlbW92ZSBhbGwgcmVtYWluaW5nIGNhbGxiYWNrc1xuXHRcdHRoaXMuX2FCaW5kaW5nUmVnaXN0cmF0aW9ucy5mb3JFYWNoKChyZWcpID0+IHtcblx0XHRcdHJlZy5iaW5kaW5nLmRldGFjaEV2ZW50KFwiZGF0YVJlcXVlc3RlZFwiLCB0aGlzLm9uRGF0YVJlcXVlc3RlZCwgdGhpcyk7XG5cdFx0XHRyZWcuYmluZGluZy5kZXRhY2hFdmVudChcImRhdGFSZWNlaXZlZFwiLCB0aGlzLm9uRGF0YVJlY2VpdmVkLCB0aGlzKTtcblx0XHR9KTtcblx0XHR0aGlzLl9hT3RoZXJFdmVudFNvdXJjZXMuZm9yRWFjaCgob0VsZW1lbnQ6IGFueSkgPT4ge1xuXHRcdFx0b0VsZW1lbnQuZGV0YWNoRXZlbnQoXCJzZWFyY2hcIiwgdGhpcy5vblNlYXJjaCwgdGhpcyk7XG5cdFx0XHRvRWxlbWVudC5kZXRhY2hFdmVudChcImJpbmRpbmdVcGRhdGVkXCIsIHRoaXMucmVnaXN0ZXIsIHRoaXMpO1xuXHRcdH0pO1xuXHRcdHRoaXMuX2FCaW5kaW5nUmVnaXN0cmF0aW9ucyA9IFtdO1xuXHRcdHRoaXMuX2FPdGhlckV2ZW50U291cmNlcyA9IFtdO1xuXHRcdHRoaXMuX2FNRENUYWJsZXMgPSBbXTtcblx0XHR0aGlzLl9hTURDQ2hhcnRzID0gW107XG5cdFx0dGhpcy5faXNTZWFyY2hQZW5kaW5nID0gZmFsc2U7XG5cdFx0dGhpcy5faXNEYXRhUmVjZWl2ZWQgPSB1bmRlZmluZWQ7XG5cdH1cblx0Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblx0Ly8gQ2FsbGJhY2sgd2hlbiBkYXRhIGlzIHJlY2VpdmVkIG9uIGEgYmluZGluZy5cblx0cHJvdGVjdGVkIG9uRGF0YVJlY2VpdmVkKG9FdmVudDogRXZlbnQsIHBhcmFtczogeyB0cmlnZ2VyZWRCeVNlYXJjaDogYm9vbGVhbiB9KTogdm9pZCB7XG5cdFx0Ly8gTG9vayBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgYmluZGluZyByZWdpc3RyYXRpb25cblx0XHRjb25zdCBiaW5kaW5nID0gb0V2ZW50LmdldFNvdXJjZSgpIGFzIEJpbmRpbmc7XG5cdFx0Y29uc3QgYmluZGluZ1JlZ2lzdHJhdGlvbiA9IHRoaXMuX2FCaW5kaW5nUmVnaXN0cmF0aW9ucy5maW5kKChyZWcpID0+IHtcblx0XHRcdHJldHVybiByZWcuYmluZGluZyA9PT0gYmluZGluZztcblx0XHR9KTtcblx0XHRpZiAoIWJpbmRpbmdSZWdpc3RyYXRpb24pIHtcblx0XHRcdExvZy5lcnJvcihcIlBhZ2VSZWFkeSAtIGRhdGEgcmVjZWl2ZWQgb24gYW4gdW5yZWdpc3RlcmVkIGJpbmRpbmdcIik7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHN3aXRjaCAoKGJpbmRpbmcgYXMgYW55KS5nZXRHcm91cElkKCkpIHtcblx0XHRcdGNhc2UgXCIkYXV0by5Xb3JrZXJzXCI6XG5cdFx0XHRcdHRoaXMuX29FdmVudFByb3ZpZGVyLmZpcmVFdmVudChcIndvcmtlcnNCYXRjaFJlY2VpdmVkXCIpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgXCIkYXV0by5IZXJvZXNcIjpcblx0XHRcdFx0dGhpcy5fb0V2ZW50UHJvdmlkZXIuZmlyZUV2ZW50KFwiaGVyb2VzQmF0Y2hSZWNlaXZlZFwiKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdH1cblx0XHRiaW5kaW5nUmVnaXN0cmF0aW9uLnJlY2VpdmVkQ291bnQrKztcblx0XHRpZiAoYmluZGluZ1JlZ2lzdHJhdGlvbi5yZWNlaXZlZENvdW50IDwgYmluZGluZ1JlZ2lzdHJhdGlvbi5yZXF1ZXN0ZWRDb3VudCkge1xuXHRcdFx0Ly8gVGhlcmUgYXJlIG90aGVyIHJlcXVlc3QgcGVuZGluZyAtLT4gcmVzdWJzY3JpYmUgdG8gd2FpdCB1bnRpbCB0aGV5IHJldHVyblxuXHRcdFx0YmluZGluZy5hdHRhY2hFdmVudE9uY2UoXCJkYXRhUmVjZWl2ZWRcIiwgeyB0cmlnZ2VyZWRCeVNlYXJjaDogcGFyYW1zLnRyaWdnZXJlZEJ5U2VhcmNoIH0sIHRoaXMub25EYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHQvLyBDaGVjayBpZiBhdCBsZWFzdCBvbmUgYmluZGluZyBoYXMgcmVxdWVzdGVkIGRhdGEsIGFuZCBhbGwgYmluZGluZ3MgdGhhdCBoYXZlIHJlcXVlc3RlZCBkYXRhIGhhdmUgcmVjZWl2ZWQgaXRcblx0XHRjb25zdCBiQWxsRG9uZSA9XG5cdFx0XHR0aGlzLl9hQmluZGluZ1JlZ2lzdHJhdGlvbnMuc29tZSgocmVnKSA9PiB7XG5cdFx0XHRcdHJldHVybiByZWcucmVxdWVzdGVkQ291bnQgIT09IDA7XG5cdFx0XHR9KSAmJlxuXHRcdFx0dGhpcy5fYUJpbmRpbmdSZWdpc3RyYXRpb25zLmV2ZXJ5KChyZWcpID0+IHtcblx0XHRcdFx0cmV0dXJuIHJlZy5yZXF1ZXN0ZWRDb3VudCA9PT0gMCB8fCByZWcucmVjZWl2ZWRDb3VudCA+PSByZWcucmVxdWVzdGVkQ291bnQ7XG5cdFx0XHR9KTtcblx0XHRpZiAocGFyYW1zLnRyaWdnZXJlZEJ5U2VhcmNoIHx8IGJpbmRpbmdSZWdpc3RyYXRpb24ucmVjZWl2ZWRDb3VudCA+PSBiaW5kaW5nUmVnaXN0cmF0aW9uLnJlcXVlc3RlZENvdW50KSB7XG5cdFx0XHR0aGlzLl9pc1NlYXJjaFBlbmRpbmcgPSBmYWxzZTtcblx0XHR9XG5cdFx0aWYgKGJBbGxEb25lKSB7XG5cdFx0XHR0aGlzLl9pc0RhdGFSZWNlaXZlZCA9IHRydWU7XG5cdFx0XHR0aGlzLl9mbk9uRmluaXNoZWQoKTtcblx0XHR9XG5cdH1cblx0Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblx0Ly8gQ2FsbGJhY2sgd2hlbiBkYXRhIGlzIHJlcXVlc3RlZCBvbiBhIGJpbmRpbmcuXG5cdHByb3RlY3RlZCBvbkRhdGFSZXF1ZXN0ZWQob0V2ZW50OiBFdmVudCwgcGFyYW1zOiB7IHRyaWdnZXJlZEJ5U2VhcmNoOiBib29sZWFuIH0pOiB2b2lkIHtcblx0XHQvLyBMb29rIGZvciB0aGUgY29ycmVzcG9uZGluZyBiaW5kaW5nIHJlZ2lzdHJhdGlvblxuXHRcdGNvbnN0IGJpbmRpbmcgPSBvRXZlbnQuZ2V0U291cmNlKCkgYXMgQmluZGluZztcblx0XHRjb25zdCBiaW5kaW5nUmVnaXN0cmF0aW9uID0gdGhpcy5fYUJpbmRpbmdSZWdpc3RyYXRpb25zLmZpbmQoKHJlZykgPT4ge1xuXHRcdFx0cmV0dXJuIHJlZy5iaW5kaW5nID09PSBiaW5kaW5nO1xuXHRcdH0pO1xuXHRcdGlmICghYmluZGluZ1JlZ2lzdHJhdGlvbikge1xuXHRcdFx0TG9nLmVycm9yKFwiUGFnZVJlYWR5IC0gZGF0YSByZXF1ZXN0ZWQgb24gYW4gdW5yZWdpc3RlcmVkIGJpbmRpbmdcIik7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGJpbmRpbmdSZWdpc3RyYXRpb24ucmVxdWVzdGVkQ291bnQrKztcblx0XHR0aGlzLl9pc0RhdGFSZWNlaXZlZCA9IGZhbHNlO1xuXHRcdGlmIChiaW5kaW5nUmVnaXN0cmF0aW9uLnJlcXVlc3RlZENvdW50IC0gYmluZGluZ1JlZ2lzdHJhdGlvbi5yZWNlaXZlZENvdW50ID09PSAxKSB7XG5cdFx0XHQvLyBMaXN0ZW4gdG8gZGF0YVJlY2VpdmVkIG9ubHkgaWYgdGhlcmUncyBubyBvdGhlciByZXF1ZXN0IHBlbmRpbmdcblx0XHRcdC8vIE90aGVyd2lzZSB0aGUgJ2RhdGFSZWNlaXZlZCcgaGFuZGxlciB3b3VsZCBiZSBjYWxsZWQgc2V2ZXJhbCB0aW1lcyB3aGVuIHRoZSBmaXJzdCBxdWVyeSByZXR1cm5zXG5cdFx0XHQvLyBhbmQgd2Ugd291bGRuJ3Qgd2FpdCBmb3IgYWxsIHF1ZXJpZXMgdG8gYmUgZmluaXNoZWRcblx0XHRcdC8vICh3ZSB3aWxsIHJlc3Vic2NyaWJlIHRvIHRoZSBkYXRhUmVjZWl2ZWQgZXZlbnQgaW4gb25EYXRhUmVjZWl2ZWQgaWYgbmVjZXNzYXJ5KVxuXHRcdFx0YmluZGluZy5hdHRhY2hFdmVudE9uY2UoXCJkYXRhUmVjZWl2ZWRcIiwgeyB0cmlnZ2VyZWRCeVNlYXJjaDogcGFyYW1zLnRyaWdnZXJlZEJ5U2VhcmNoIH0sIHRoaXMub25EYXRhUmVjZWl2ZWQsIHRoaXMpO1xuXHRcdH1cblx0fVxuXHQvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXHQvLyBDYWxsYmFjayB3aGVuIGEgc2VhcmNoIGlzIHRyaWdnZXJlZCBmcm9tIGEgZmlsdGVyYmFyXG5cdHByb3RlY3RlZCBvblNlYXJjaChvRXZlbnQ6IEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgYU1EQ1RhYmxlTGlua2VkVG9GaWx0ZXJCYXIgPSB0aGlzLl9hTURDVGFibGVzLmZpbHRlcigob1RhYmxlKSA9PiB7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHQob0V2ZW50LmdldFNvdXJjZSgpIGFzIGFueSkuc0lkID09PSBvVGFibGUuZ2V0RmlsdGVyKCkgJiZcblx0XHRcdFx0b1RhYmxlLmdldFZpc2libGUoKSAmJlxuXHRcdFx0XHQhb1RhYmxlLmdldFBhcmVudCgpPy5nZXRQcm9wZXJ0eShcImJpbmRpbmdTdXNwZW5kZWRcIilcblx0XHRcdCk7XG5cdFx0fSk7XG5cdFx0Y29uc3QgYU1EQ0NoYXJ0c0xpbmtlZFRvRmlsdGVyQmFyID0gdGhpcy5fYU1EQ0NoYXJ0cy5maWx0ZXIoKG9DaGFydCkgPT4ge1xuXHRcdFx0cmV0dXJuIChvRXZlbnQuZ2V0U291cmNlKCkgYXMgYW55KS5zSWQgPT09IG9DaGFydC5nZXRGaWx0ZXIoKSAmJiBvQ2hhcnQuZ2V0VmlzaWJsZSgpO1xuXHRcdH0pO1xuXHRcdGlmIChhTURDVGFibGVMaW5rZWRUb0ZpbHRlckJhci5sZW5ndGggPiAwIHx8IGFNRENDaGFydHNMaW5rZWRUb0ZpbHRlckJhci5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aGlzLl9pc1NlYXJjaFBlbmRpbmcgPSB0cnVlO1xuXHRcdH1cblx0XHRhTURDVGFibGVMaW5rZWRUb0ZpbHRlckJhci5mb3JFYWNoKChvVGFibGUpID0+IHtcblx0XHRcdHRoaXMucmVnaXN0ZXJUYWJsZShvVGFibGUsIHRydWUpO1xuXHRcdH0pO1xuXHRcdGFNRENDaGFydHNMaW5rZWRUb0ZpbHRlckJhci5mb3JFYWNoKGFzeW5jIChvQ2hhcnQ6IGFueSkgPT4ge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0aWYgKG9DaGFydC5pbm5lckNoYXJ0Qm91bmRQcm9taXNlKSB7XG5cdFx0XHRcdFx0YXdhaXQgb0NoYXJ0LmlubmVyQ2hhcnRCb3VuZFByb21pc2U7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5yZWdpc3RlckNoYXJ0KG9DaGFydCwgdHJ1ZSk7XG5cdFx0XHR9IGNhdGNoIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJDYW5ub3QgZmluZCBhIGlubmVyIGJvdW5kIGNoYXJ0XCIsIG9FcnJvcik7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0Ly8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblx0Ly8gUmVnaXN0ZXIgYSBiaW5kaW5nICh3aXRoIGFuIG9wdGlvbmFsIHRhYmxlL2NoYXJ0KVxuXHQvLyBhbmQgYXR0YWNoIGNhbGxiYWNrcyBvbiBkYXRlUmVxdWVzdGVkL2RhdGFSZWNlaXZlZCBldmVudHNcblx0cHVibGljIHJlZ2lzdGVyKF9ldmVudDogRXZlbnQgfCBudWxsLCBkYXRhOiB7IGJpbmRpbmc/OiBCaW5kaW5nOyB0YWJsZT86IFRhYmxlOyBjaGFydD86IENoYXJ0OyB0cmlnZ2VyZWRCeVNlYXJjaDogYm9vbGVhbiB9KTogdm9pZCB7XG5cdFx0Y29uc3QgYmluZGluZzogQmluZGluZyB8IHVuZGVmaW5lZCA9XG5cdFx0XHRkYXRhLmJpbmRpbmcgfHxcblx0XHRcdGRhdGEudGFibGU/LmdldFJvd0JpbmRpbmcoKSB8fFxuXHRcdFx0KGRhdGEuY2hhcnQgYXMgYW55KT8uZ2V0Q29udHJvbERlbGVnYXRlKCkuZ2V0SW5uZXJDaGFydChkYXRhLmNoYXJ0KS5nZXRCaW5kaW5nKFwiZGF0YVwiKTtcblx0XHRjb25zdCBib3VuZENvbnRyb2wgPSAoZGF0YS50YWJsZSB8fCBkYXRhLmNoYXJ0KSBhcyBDb250cm9sIHwgdW5kZWZpbmVkO1xuXHRcdGlmICghYmluZGluZykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHQvLyBDaGVjayBpZiB0aGUgYmluZGluZyBpcyBhbHJlYWR5IHJlZ2lzdGVyZWRcblx0XHRsZXQgYmluZGluZ1JlZ2lzdHJhdGlvbiA9IHRoaXMuX2FCaW5kaW5nUmVnaXN0cmF0aW9ucy5maW5kKChyZWcpID0+IHtcblx0XHRcdHJldHVybiByZWcuYmluZGluZyA9PT0gYmluZGluZztcblx0XHR9KTtcblx0XHRpZiAoYmluZGluZ1JlZ2lzdHJhdGlvbikge1xuXHRcdFx0aWYgKGJvdW5kQ29udHJvbCkge1xuXHRcdFx0XHQvLyBUaGUgYmluZGluZyB3YXMgYWxyZWFkeSByZWdpc3RlcmQgd2l0aG91dCBib3VuZENvbnRyb2wgaW5mb3JtYXRpb24gLS0+IHVwZGF0ZSBib3VuZENvbnRyb2xcblx0XHRcdFx0YmluZGluZ1JlZ2lzdHJhdGlvbi5ib3VuZENvbnRyb2wgPSBib3VuZENvbnRyb2w7XG5cdFx0XHR9XG5cdFx0XHQvLyBUaGlzIGJpbmRpbmcgaGFzIGFscmVhZHkgcmVxdWVzdGVkIGRhdGEsIGJ1dCB3ZSdyZSByZWdpc3RlcmluZyBpdCBhZ2FpbiAob24gc2VhcmNoKSAtLT4gYXR0YWNoIHRvIGRhdGFSZXF1ZXN0ZWQgYWdhaW5cblx0XHRcdGlmIChiaW5kaW5nUmVnaXN0cmF0aW9uLnJlcXVlc3RlZENvdW50ID4gMCkge1xuXHRcdFx0XHRiaW5kaW5nLmRldGFjaEV2ZW50KFwiZGF0YVJlcXVlc3RlZFwiLCB0aGlzLm9uRGF0YVJlcXVlc3RlZCwgdGhpcyk7XG5cdFx0XHRcdGJpbmRpbmcuYXR0YWNoRXZlbnRPbmNlKFwiZGF0YVJlcXVlc3RlZFwiLCB7IHRyaWdnZXJlZEJ5U2VhcmNoOiBkYXRhLnRyaWdnZXJlZEJ5U2VhcmNoIH0sIHRoaXMub25EYXRhUmVxdWVzdGVkLCB0aGlzKTtcblx0XHRcdH1cblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKGJvdW5kQ29udHJvbCkge1xuXHRcdFx0Ly8gQ2hlY2sgaWYgdGhlcmUncyBhIGRpZmZlcmVudCBiaW5kaW5nIHJlZ2lzdGVyZWQgZm9yIHRoZSBib3VuZCBjb250cm9sXG5cdFx0XHRiaW5kaW5nUmVnaXN0cmF0aW9uID0gdGhpcy5fYUJpbmRpbmdSZWdpc3RyYXRpb25zLmZpbmQoKHJlZykgPT4ge1xuXHRcdFx0XHRyZXR1cm4gcmVnLmJvdW5kQ29udHJvbCA9PT0gYm91bmRDb250cm9sO1xuXHRcdFx0fSk7XG5cdFx0XHRpZiAoYmluZGluZ1JlZ2lzdHJhdGlvbiAmJiBiaW5kaW5nUmVnaXN0cmF0aW9uLmJpbmRpbmcgIT09IGJpbmRpbmcpIHtcblx0XHRcdFx0Ly8gVGhlIGNvbnRyb2wgaGFkIGEgZGlmZmVyZW50IGJpbmRpbmcuIFRoaXMgY2FuIGhhcHBlbiBpbiBjYXNlIG9mIE1EQyBjaGFydHMgd2hvIHJlY3JlYXRlZCB0aGVpciBiaW5kaW5nIGFmdGVyIHNlYXJjaFxuXHRcdFx0XHQvLyBUaGUgcHJldmlvdXMgYmluZGluZyBpcyBkZXN0cm95ZWQsIHdlIGNhbiByZXBsYWNlIGl0IHdpdGggdGhlIG5ldyBhbmQgcmVzZXQgY291bnRlcnNcblx0XHRcdFx0YmluZGluZ1JlZ2lzdHJhdGlvbi5iaW5kaW5nID0gYmluZGluZztcblx0XHRcdFx0YmluZGluZ1JlZ2lzdHJhdGlvbi5yZXF1ZXN0ZWRDb3VudCA9IDA7XG5cdFx0XHRcdGJpbmRpbmdSZWdpc3RyYXRpb24ucmVjZWl2ZWRDb3VudCA9IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmICghYmluZGluZ1JlZ2lzdHJhdGlvbikge1xuXHRcdFx0YmluZGluZ1JlZ2lzdHJhdGlvbiA9IHtcblx0XHRcdFx0YmluZGluZzogYmluZGluZyxcblx0XHRcdFx0Ym91bmRDb250cm9sOiBib3VuZENvbnRyb2wsXG5cdFx0XHRcdHJlcXVlc3RlZENvdW50OiAwLFxuXHRcdFx0XHRyZWNlaXZlZENvdW50OiAwXG5cdFx0XHR9O1xuXHRcdFx0dGhpcy5fYUJpbmRpbmdSZWdpc3RyYXRpb25zLnB1c2goYmluZGluZ1JlZ2lzdHJhdGlvbik7XG5cdFx0fVxuXHRcdGJpbmRpbmcuZGV0YWNoRXZlbnQoXCJkYXRhUmVxdWVzdGVkXCIsIHRoaXMub25EYXRhUmVxdWVzdGVkLCB0aGlzKTtcblx0XHRiaW5kaW5nLmF0dGFjaEV2ZW50T25jZShcImRhdGFSZXF1ZXN0ZWRcIiwgeyB0cmlnZ2VyZWRCeVNlYXJjaDogZGF0YS50cmlnZ2VyZWRCeVNlYXJjaCB9LCB0aGlzLm9uRGF0YVJlcXVlc3RlZCwgdGhpcyk7XG5cdH1cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhIGJpbmRpbmcgZm9yIHdhdGNoaW5nIGl0cyBkYXRhIGV2ZW50cyAoZGF0YVJlcXVlc3RlZCBhbmQgZGF0YVJlY2VpdmVkKS5cblx0ICpcblx0ICogQHBhcmFtIGJpbmRpbmcgVGhlIGJpbmRpbmdcblx0ICovXG5cdHB1YmxpYyByZWdpc3RlckJpbmRpbmcoYmluZGluZzogQmluZGluZykge1xuXHRcdHRoaXMucmVnaXN0ZXIobnVsbCwgeyBiaW5kaW5nLCB0cmlnZ2VyZWRCeVNlYXJjaDogZmFsc2UgfSk7XG5cdH1cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhbiBNRENUYWJsZSBmb3Igd2F0Y2hpbmcgdGhlIGRhdGEgZXZlbnRzIG9uIGl0cyByb3cgYmluZGluZyAoZGF0YVJlcXVlc3RlZCBhbmQgZGF0YVJlY2VpdmVkKS5cblx0ICpcblx0ICogQHBhcmFtIHRhYmxlIFRoZSB0YWJsZVxuXHQgKiBAcGFyYW0gdHJpZ2dlcmVkQnlTZWFyY2ggVHJ1ZSBpZiB0aGlzIHJlZ2lzdHJhdGlvbiBpcyB0cmlnZ2VyZWQgYnkgYSBmaWx0ZXJCYXIgc2VhcmNoXG5cdCAqL1xuXHRwcm90ZWN0ZWQgcmVnaXN0ZXJUYWJsZSh0YWJsZTogVGFibGUsIHRyaWdnZXJlZEJ5U2VhcmNoID0gZmFsc2UpIHtcblx0XHRpZiAodGhpcy5fYU1EQ1RhYmxlcy5pbmRleE9mKHRhYmxlKSA8IDApIHtcblx0XHRcdHRoaXMuX2FNRENUYWJsZXMucHVzaCh0YWJsZSk7XG5cdFx0fVxuXHRcdGNvbnN0IG9Sb3dCaW5kaW5nID0gdGFibGUuZ2V0Um93QmluZGluZygpO1xuXHRcdGlmIChvUm93QmluZGluZykge1xuXHRcdFx0dGhpcy5yZWdpc3RlcihudWxsLCB7IHRhYmxlLCB0cmlnZ2VyZWRCeVNlYXJjaCB9KTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuX2FPdGhlckV2ZW50U291cmNlcy5pbmRleE9mKHRhYmxlKSA9PT0gLTEpIHtcblx0XHRcdHRhYmxlLmF0dGFjaEV2ZW50KFwiYmluZGluZ1VwZGF0ZWRcIiwgeyB0YWJsZSwgdHJpZ2dlcmVkQnlTZWFyY2ggfSwgdGhpcy5yZWdpc3RlciwgdGhpcyk7XG5cdFx0XHR0aGlzLl9hT3RoZXJFdmVudFNvdXJjZXMucHVzaCh0YWJsZSk7XG5cdFx0fVxuXHR9XG5cdC8qKlxuXHQgKiBSZWdpc3RlcnMgYW4gTURDQ2hhcnQgZm9yIHdhdGNoaW5nIHRoZSBkYXRhIGV2ZW50cyBvbiBpdHMgaW5uZXIgZGF0YSBiaW5kaW5nIChkYXRhUmVxdWVzdGVkIGFuZCBkYXRhUmVjZWl2ZWQpLlxuXHQgKlxuXHQgKiBAcGFyYW0gY2hhcnQgVGhlIGNoYXJ0XG5cdCAqIEBwYXJhbSB0cmlnZ2VyZWRCeVNlYXJjaCBUcnVlIGlmIHRoaXMgcmVnaXN0cmF0aW9uIGlzIHRyaWdnZXJlZCBieSBhIGZpbHRlckJhciBzZWFyY2hcblx0ICovXG5cdHByb3RlY3RlZCByZWdpc3RlckNoYXJ0KGNoYXJ0OiBDaGFydCwgdHJpZ2dlcmVkQnlTZWFyY2ggPSBmYWxzZSkge1xuXHRcdGlmICh0aGlzLl9hTURDQ2hhcnRzLmluZGV4T2YoY2hhcnQpIDwgMCkge1xuXHRcdFx0dGhpcy5fYU1EQ0NoYXJ0cy5wdXNoKGNoYXJ0KTtcblx0XHR9XG5cdFx0Y29uc3Qgb0lubmVyQ2hhcnQgPSAoY2hhcnQgYXMgYW55KS5nZXRDb250cm9sRGVsZWdhdGUoKS5nZXRJbm5lckNoYXJ0KGNoYXJ0KTtcblx0XHRjb25zdCBiaW5kaW5nID0gb0lubmVyQ2hhcnQ/LmdldEJpbmRpbmcoXCJkYXRhXCIpO1xuXHRcdGlmIChiaW5kaW5nKSB7XG5cdFx0XHR0aGlzLnJlZ2lzdGVyKG51bGwsIHsgY2hhcnQsIHRyaWdnZXJlZEJ5U2VhcmNoIH0pO1xuXHRcdH1cblx0XHRpZiAodGhpcy5fYU90aGVyRXZlbnRTb3VyY2VzLmluZGV4T2YoY2hhcnQpID09PSAtMSkge1xuXHRcdFx0Y2hhcnQuYXR0YWNoRXZlbnQoXCJiaW5kaW5nVXBkYXRlZFwiLCB7IGNoYXJ0LCB0cmlnZ2VyZWRCeVNlYXJjaCB9LCB0aGlzLnJlZ2lzdGVyLCB0aGlzKTtcblx0XHRcdHRoaXMuX2FPdGhlckV2ZW50U291cmNlcy5wdXNoKGNoYXJ0KTtcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhbiBNRENUYWJsZSBvciBNRENDaGFydCBmb3Igd2F0Y2hpbmcgdGhlIGRhdGEgZXZlbnRzIG9uIGl0cyBpbm5lciBkYXRhIGJpbmRpbmcgKGRhdGFSZXF1ZXN0ZWQgYW5kIGRhdGFSZWNlaXZlZCkuXG5cdCAqXG5cdCAqIEBwYXJhbSBlbGVtZW50ICBUaGUgdGFibGUgb3IgY2hhcnRcblx0ICovXG5cdHB1YmxpYyBhc3luYyByZWdpc3RlclRhYmxlT3JDaGFydChlbGVtZW50OiBUYWJsZSB8IENoYXJ0KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKCFlbGVtZW50LmlzQTxUYWJsZT4oXCJzYXAudWkubWRjLlRhYmxlXCIpICYmICFlbGVtZW50LmlzQTxDaGFydD4oXCJzYXAudWkubWRjLkNoYXJ0XCIpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRyeSB7XG5cdFx0XHRhd2FpdCBlbGVtZW50LmluaXRpYWxpemVkKCk7IC8vIGFjY2VzcyBiaW5kaW5nIG9ubHkgYWZ0ZXIgdGFibGUvY2hhcnQgaXMgYm91bmRcblx0XHRcdGlmIChlbGVtZW50LmlzQTxUYWJsZT4oXCJzYXAudWkubWRjLlRhYmxlXCIpKSB7XG5cdFx0XHRcdHRoaXMucmVnaXN0ZXJUYWJsZShlbGVtZW50KTtcblx0XHRcdFx0Ly9JZiB0aGUgYXV0b0JpbmRPbkluaXQgaXMgZW5hYmxlZCwgdGhlIHRhYmxlIHdpbGwgYmUgcmVib3VuZFxuXHRcdFx0XHQvL1RoZW4gd2UgbmVlZCB0byB3YWl0IGZvciB0aGlzIHJlYmluZCB0byBvY2N1ciB0byBlbnN1cmUgdGhlIHBhZ2VSZWFkeSB3aWxsIGFsc28gd2FpdCBmb3IgdGhlIGRhdGEgdG8gYmUgcmVjZWl2ZWRcblx0XHRcdFx0aWYgKGVsZW1lbnQuZ2V0QXV0b0JpbmRPbkluaXQoKSAmJiBlbGVtZW50LmdldERvbVJlZigpKSB7XG5cdFx0XHRcdFx0YXdhaXQgVXRpbHMud2hlbkJvdW5kKGVsZW1lbnQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnJlZ2lzdGVyQ2hhcnQoZWxlbWVudCk7XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAob0Vycm9yOiBhbnkpIHtcblx0XHRcdExvZy5lcnJvcihcIlBhZ2VSZWFkeSAtIENhbm5vdCByZWdpc3RlciBhIHRhYmxlIG9yIGEgY2hhcnRcIiwgb0Vycm9yKTtcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIFJlZ2lzdGVycyBhbiBNRENGaWx0ZXJCYXIgZm9yIHdhdGNoaW5nIGl0cyBzZWFyY2ggZXZlbnQuXG5cdCAqXG5cdCAqIEBwYXJhbSBmaWx0ZXJCYXIgVGhlIGZpbHRlciBiYXJcblx0ICovXG5cdHB1YmxpYyByZWdpc3RlckZpbHRlckJhcihmaWx0ZXJCYXI6IEZpbHRlckJhcikge1xuXHRcdGZpbHRlckJhci5hdHRhY2hFdmVudChcInNlYXJjaFwiLCB0aGlzLm9uU2VhcmNoLCB0aGlzKTtcblx0XHR0aGlzLl9hT3RoZXJFdmVudFNvdXJjZXMucHVzaChmaWx0ZXJCYXIpO1xuXHR9XG59XG5leHBvcnQgZGVmYXVsdCBEYXRhUXVlcnlXYXRjaGVyO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7O0VBa2pCTyxnQkFBZ0JBLElBQUksRUFBRUMsT0FBTyxFQUFFO0lBQ3JDLElBQUk7TUFDSCxJQUFJQyxNQUFNLEdBQUdGLElBQUksRUFBRTtJQUNwQixDQUFDLENBQUMsT0FBTUcsQ0FBQyxFQUFFO01BQ1YsT0FBT0YsT0FBTyxD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
|
|
@@ -247,20 +247,20 @@ class DataQueryWatcher {
|
|
|
247
247
|
* @param element The table or chart
|
|
248
248
|
*/
|
|
249
249
|
public async registerTableOrChart(element: Table | Chart): Promise<void> {
|
|
250
|
-
if (!element.isA("sap.ui.mdc.Table") && !element.isA("sap.ui.mdc.Chart")) {
|
|
250
|
+
if (!element.isA<Table>("sap.ui.mdc.Table") && !element.isA<Chart>("sap.ui.mdc.Chart")) {
|
|
251
251
|
return;
|
|
252
252
|
}
|
|
253
253
|
try {
|
|
254
254
|
await element.initialized(); // access binding only after table/chart is bound
|
|
255
|
-
if (element.isA("sap.ui.mdc.Table")) {
|
|
256
|
-
this.registerTable(element
|
|
255
|
+
if (element.isA<Table>("sap.ui.mdc.Table")) {
|
|
256
|
+
this.registerTable(element);
|
|
257
257
|
//If the autoBindOnInit is enabled, the table will be rebound
|
|
258
258
|
//Then we need to wait for this rebind to occur to ensure the pageReady will also wait for the data to be received
|
|
259
259
|
if (element.getAutoBindOnInit() && element.getDomRef()) {
|
|
260
|
-
await Utils.whenBound(element
|
|
260
|
+
await Utils.whenBound(element);
|
|
261
261
|
}
|
|
262
262
|
} else {
|
|
263
|
-
this.registerChart(element
|
|
263
|
+
this.registerChart(element);
|
|
264
264
|
}
|
|
265
265
|
} catch (oError: any) {
|
|
266
266
|
Log.error("PageReady - Cannot register a table or a chart", oError);
|