@sap/open.fe 1.96.0 → 1.97.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/packages/sap.fe.common/src/sap/fe/common/.library +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/.theming +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +57 -42
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +2 -2
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +4 -4
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/library.js +1 -1
- package/packages/sap.fe.common/src/sap/fe/common/manifest.json +3 -3
- package/packages/sap.fe.common/src/sap/fe/common/resources.json +4 -4
- package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.library +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/.theming +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +59 -274
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +52 -64
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +18 -22
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +80 -4
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +42 -23
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +36 -21
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +9 -3
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +20 -50
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +222 -102
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +33 -6
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +109 -111
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d-dbg.js +8 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar.d.ts +0 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +2 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +4 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +10 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +9 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +67 -40
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +6 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +6 -3
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +57 -18
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +51 -13
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +130 -19
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +139 -18
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +9 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +4 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +18 -7
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +17 -12
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +2 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +27 -4
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
- package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +2 -2
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper-dbg.js +211 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes-dbg.js +32 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +51 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +10 -9
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +232 -228
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +4 -4
- package/packages/sap.fe.core/src/sap/fe/core/library.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/manifest.json +10 -10
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +15 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +19 -9
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +11 -1
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/resources.json +200 -121
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +30 -19
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +80 -7
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +1 -1
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +42 -2
- package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +4 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +2 -2
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +13 -10
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +7 -4
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +1 -2
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/CommonUtils.spec.js +119 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +285 -4
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.js +121 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/MessageHandler.spec.ts +79 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.js +147 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/ViewState.spec.ts +96 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +51 -18
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +109 -17
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/MetaModelConverter.spec.ts.snap +66 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelper.cds +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/EntitySetHelperMainEntitySortableFalse.cds +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +8 -8
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.js +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/TableFormatters.spec.ts +38 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.js +483 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelper.spec.ts +376 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.js +101 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlRefreshStrategyTests.ts +105 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.js +103 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/ControlsForRefreshTests.ts +106 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.js +118 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/RefreshStrategyForIntentTests.ts +118 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.js +101 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/KeepAliveHelperTestData/StoreStrategyTests.ts +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/helpers/ModelHelper.spec.js +118 -1
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/RoutingServiceFactory.spec.js +70 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.js +89 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/EntitySetHelper.spec.ts +73 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +4 -2
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/.library +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/.theming +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +15 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +9 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +30 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +3 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +3 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +17 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +1 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +6 -15
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +14 -12
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +2 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +12 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +15 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +10 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +81 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +13 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +5 -5
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +1 -7
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +5 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime-dbg.js +46 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/formcontainer/FormContainerRuntime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +17 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +26 -16
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +1 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +4 -13
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +10 -10
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +5 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +72 -8
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +12 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +93 -91
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +4 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/library.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +9 -9
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +3 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +3 -3
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +2 -2
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +21 -11
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +2 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +149 -110
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +3 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +70 -29
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +53 -36
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +1 -1
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +3 -4
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +2 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.js +844 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartDelegate.spec.ts +833 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.js +495 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartHelper.spec.ts +440 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.js +469 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ChartUtils.spec.ts +448 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.js +94 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CommonUtils.spec.ts +70 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +12 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +11 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DelegateUtil.spec.js +61 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.js +46 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldHelper.spec.ts +30 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +13 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +11 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.js +66 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FormElement.spec.ts +35 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +48 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +56 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.js +68 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableFieldLabel.spec.ts +65 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ChartDelegate.spec.ts.snap +82 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/DatapointMacro.spec.ts.snap +23 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldHelper.spec.ts.snap +47 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FieldMacroDataFieldTypes.spec.ts.snap +52 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FormElement.spec.ts.snap +25 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +0 -3
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/SimpleFieldMacro.spec.ts.snap +69 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/TableFieldLabel.spec.ts.snap +451 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldHelper.xml +68 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +13 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/TableFieldLabel.cds +152 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.js +116 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldRuntime.spec.ts +115 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.js +86 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/FormElement.spec.ts +54 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/form/__snapshots__/FormElement.spec.ts.snap +33 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.js +154 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/Actions.spec.ts +128 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.js +7 -2
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/TableDelegate.spec.ts +23 -12
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/table/delegates/__snapshots__/TableDelegate.spec.ts.snap +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +0 -5
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +1 -1
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +108 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +2 -2
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +1 -1
- package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +3 -3
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +2 -2
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +4 -4
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +3 -3
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +3 -3
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +1 -1
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +1 -1
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -1
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.library +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/.theming +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +91 -60
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +31 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +5 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +18 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +114 -85
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +8 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +2 -2
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +23 -3
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +15 -15
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +6 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +6 -4
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +26 -16
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +5 -5
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +63 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +54 -32
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +24 -21
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +2 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +2 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +8 -9
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +23 -30
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +4 -4
- package/packages/sap.fe.templates/src/sap/fe/templates/library.js +1 -1
- package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +13 -13
- package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +51 -60
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.js +95 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/HeaderFacet.spec.ts +66 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.js +134 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/ObjectPageHeaderForm.spec.ts +94 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/HeaderFacet.spec.ts.snap +61 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/jest/ObjectPage/view/fragments/__snapshots__/ObjectPageHeaderForm.spec.ts.snap +53 -0
- package/packages/sap.fe.test/src/sap/fe/test/.library +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/.theming +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +0 -6
- package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +14 -3
- package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +85 -8
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +54 -2
- package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +0 -11
- package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +0 -38
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +0 -12
- package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper-dbg.js +22 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/UI5MockHelper.ts +14 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +21 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +9 -5
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +18 -5
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +25 -5
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +9 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +38 -4
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +33 -4
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +23 -16
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/library.js +1 -1
- package/packages/sap.fe.test/src/sap/fe/test/manifest.json +3 -3
- package/packages/sap.fe.test/src/sap/fe/test/resources.json +36 -34
- package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -1
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -1
- package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.96.json +0 -49
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.96.json +0 -189
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldRuntime.qunit.js +0 -73
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.96.json +0 -160
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/relnote/changes-1.96.json +0 -17
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +0 -26
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +0 -6
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.96.json +0 -153
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../helpers/Key", "sap/fe/core/converters/annotations/DataField", "sap/fe/core/templating/DataModelPathHelper", "../../../helpers/StableIdHelper"], function (ConfigurableObject, ID, Key, DataField, DataModelPathHelper, StableIdHelper) {
|
|
5
|
+
sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../helpers/Key", "../../ManifestSettings", "sap/fe/core/converters/annotations/DataField", "sap/fe/core/templating/DataModelPathHelper", "../../../helpers/StableIdHelper"], function (ConfigurableObject, ID, Key, ManifestSettings, DataField, DataModelPathHelper, StableIdHelper) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
var _exports = {};
|
|
@@ -10,7 +10,9 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
10
10
|
var getTargetObjectPath = DataModelPathHelper.getTargetObjectPath;
|
|
11
11
|
var getTargetEntitySetPath = DataModelPathHelper.getTargetEntitySetPath;
|
|
12
12
|
var getSemanticObjectPath = DataField.getSemanticObjectPath;
|
|
13
|
+
var ActionType = ManifestSettings.ActionType;
|
|
13
14
|
var KeyHelper = Key.KeyHelper;
|
|
15
|
+
var FormStandardActionButtonID = ID.FormStandardActionButtonID;
|
|
14
16
|
var FormID = ID.FormID;
|
|
15
17
|
var Placement = ConfigurableObject.Placement;
|
|
16
18
|
var insertCustomElements = ConfigurableObject.insertCustomElements;
|
|
@@ -41,35 +43,51 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
41
43
|
};
|
|
42
44
|
}
|
|
43
45
|
|
|
46
|
+
function isFieldPartOfPreview(field, formPartOfPreview) {
|
|
47
|
+
var _field$annotations, _field$annotations$UI, _field$annotations2, _field$annotations2$U;
|
|
48
|
+
|
|
49
|
+
// Both each form and field can have the PartOfPreview annotation. Only if the form is not hidden (not partOfPreview) we allow toggling on field level
|
|
50
|
+
return formPartOfPreview === false || ((_field$annotations = field.annotations) === null || _field$annotations === void 0 ? void 0 : (_field$annotations$UI = _field$annotations.UI) === null || _field$annotations$UI === void 0 ? void 0 : _field$annotations$UI.PartOfPreview) === undefined || ((_field$annotations2 = field.annotations) === null || _field$annotations2 === void 0 ? void 0 : (_field$annotations2$U = _field$annotations2.UI) === null || _field$annotations2$U === void 0 ? void 0 : _field$annotations2$U.PartOfPreview) === true;
|
|
51
|
+
}
|
|
52
|
+
|
|
44
53
|
function getFormElementsFromAnnotations(facetDefinition, converterContext) {
|
|
45
54
|
var formElements = [];
|
|
46
55
|
var resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
|
|
47
56
|
var formAnnotation = resolvedTarget.annotation;
|
|
48
57
|
converterContext = resolvedTarget.converterContext;
|
|
49
58
|
|
|
50
|
-
function getDataFieldsFromAnnotations(field) {
|
|
51
|
-
var _field$
|
|
59
|
+
function getDataFieldsFromAnnotations(field, formPartOfPreview) {
|
|
60
|
+
var _field$annotations3, _field$annotations3$U, _field$annotations3$U2;
|
|
52
61
|
|
|
53
62
|
var semanticObjectAnnotationPath = getSemanticObjectPath(converterContext, field);
|
|
54
63
|
|
|
55
|
-
if (field.$Type !== "com.sap.vocabularies.UI.v1.DataFieldForAction" && field.$Type !== "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation" && ((_field$
|
|
64
|
+
if (field.$Type !== "com.sap.vocabularies.UI.v1.DataFieldForAction" && field.$Type !== "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation" && ((_field$annotations3 = field.annotations) === null || _field$annotations3 === void 0 ? void 0 : (_field$annotations3$U = _field$annotations3.UI) === null || _field$annotations3$U === void 0 ? void 0 : (_field$annotations3$U2 = _field$annotations3$U.Hidden) === null || _field$annotations3$U2 === void 0 ? void 0 : _field$annotations3$U2.valueOf()) !== true) {
|
|
56
65
|
formElements.push({
|
|
57
66
|
key: KeyHelper.generateKeyFromDataField(field),
|
|
58
67
|
type: FormElementType.Annotation,
|
|
59
68
|
annotationPath: converterContext.getEntitySetBasedAnnotationPath(field.fullyQualifiedName) + "/",
|
|
60
69
|
semanticObjectPath: semanticObjectAnnotationPath,
|
|
61
|
-
formatOptions: getDefaultFormatOptionsForForm()
|
|
70
|
+
formatOptions: getDefaultFormatOptionsForForm(),
|
|
71
|
+
isPartOfPreview: isFieldPartOfPreview(field, formPartOfPreview)
|
|
62
72
|
});
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
|
|
66
76
|
switch (formAnnotation === null || formAnnotation === void 0 ? void 0 : formAnnotation.term) {
|
|
67
77
|
case "com.sap.vocabularies.UI.v1.FieldGroup":
|
|
68
|
-
formAnnotation.Data.forEach(
|
|
78
|
+
formAnnotation.Data.forEach(function (field) {
|
|
79
|
+
var _facetDefinition$anno, _facetDefinition$anno2;
|
|
80
|
+
|
|
81
|
+
return getDataFieldsFromAnnotations(field, (_facetDefinition$anno = facetDefinition.annotations) === null || _facetDefinition$anno === void 0 ? void 0 : (_facetDefinition$anno2 = _facetDefinition$anno.UI) === null || _facetDefinition$anno2 === void 0 ? void 0 : _facetDefinition$anno2.PartOfPreview);
|
|
82
|
+
});
|
|
69
83
|
break;
|
|
70
84
|
|
|
71
85
|
case "com.sap.vocabularies.UI.v1.Identification":
|
|
72
|
-
formAnnotation.forEach(
|
|
86
|
+
formAnnotation.forEach(function (field) {
|
|
87
|
+
var _facetDefinition$anno3, _facetDefinition$anno4;
|
|
88
|
+
|
|
89
|
+
return getDataFieldsFromAnnotations(field, (_facetDefinition$anno3 = facetDefinition.annotations) === null || _facetDefinition$anno3 === void 0 ? void 0 : (_facetDefinition$anno4 = _facetDefinition$anno3.UI) === null || _facetDefinition$anno4 === void 0 ? void 0 : _facetDefinition$anno4.PartOfPreview);
|
|
90
|
+
});
|
|
73
91
|
break;
|
|
74
92
|
|
|
75
93
|
case "com.sap.vocabularies.UI.v1.DataPoint":
|
|
@@ -124,9 +142,13 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
124
142
|
_exports.getFormElementsFromManifest = getFormElementsFromManifest;
|
|
125
143
|
|
|
126
144
|
function getFormContainer(facetDefinition, converterContext, actions) {
|
|
127
|
-
var _resolvedTarget$conve;
|
|
145
|
+
var _resolvedTarget$conve, _facetDefinition$anno5, _facetDefinition$anno6;
|
|
128
146
|
|
|
129
147
|
//TODO form container id
|
|
148
|
+
var sFormContainerId = generate([{
|
|
149
|
+
Facet: facetDefinition
|
|
150
|
+
}]);
|
|
151
|
+
var sAnnotationPath = "/" + facetDefinition.fullyQualifiedName;
|
|
130
152
|
var resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
|
|
131
153
|
var sEntitySetPath; // resolvedTarget doesn't have a entitySet in case Containments and Paramterized services.
|
|
132
154
|
|
|
@@ -136,6 +158,9 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
136
158
|
sEntitySetPath = getTargetObjectPath(resolvedTarget.converterContext.getDataModelObjectPath(), false);
|
|
137
159
|
}
|
|
138
160
|
|
|
161
|
+
var aFormElements = insertCustomElements(getFormElementsFromAnnotations(facetDefinition, converterContext), getFormElementsFromManifest(facetDefinition, converterContext), {
|
|
162
|
+
formatOptions: "overwrite"
|
|
163
|
+
});
|
|
139
164
|
actions = actions !== undefined ? actions.filter(function (action) {
|
|
140
165
|
return action.facetName == facetDefinition.fullyQualifiedName;
|
|
141
166
|
}) : [];
|
|
@@ -144,14 +169,28 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
144
169
|
actions = undefined;
|
|
145
170
|
}
|
|
146
171
|
|
|
172
|
+
var oActionShowDetails = {
|
|
173
|
+
id: FormStandardActionButtonID(sFormContainerId, "ShowHideDetails"),
|
|
174
|
+
key: "StandardAction::ShowHideDetails",
|
|
175
|
+
text: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_SHOW_FORM_CONTAINER_DETAILS}",
|
|
176
|
+
type: ActionType.ShowFormDetails,
|
|
177
|
+
press: "FormContainerRuntime.toggleDetails"
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
if (((_facetDefinition$anno5 = facetDefinition.annotations) === null || _facetDefinition$anno5 === void 0 ? void 0 : (_facetDefinition$anno6 = _facetDefinition$anno5.UI) === null || _facetDefinition$anno6 === void 0 ? void 0 : _facetDefinition$anno6.PartOfPreview) !== false && aFormElements.some(function (oFormElement) {
|
|
181
|
+
return oFormElement.isPartOfPreview === false;
|
|
182
|
+
})) {
|
|
183
|
+
if (actions !== undefined) {
|
|
184
|
+
actions.push(oActionShowDetails);
|
|
185
|
+
} else {
|
|
186
|
+
actions = [oActionShowDetails];
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
147
190
|
return {
|
|
148
|
-
id:
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
formElements: insertCustomElements(getFormElementsFromAnnotations(facetDefinition, converterContext), getFormElementsFromManifest(facetDefinition, converterContext), {
|
|
152
|
-
formatOptions: "overwrite"
|
|
153
|
-
}),
|
|
154
|
-
annotationPath: "/" + facetDefinition.fullyQualifiedName,
|
|
191
|
+
id: sFormContainerId,
|
|
192
|
+
formElements: aFormElements,
|
|
193
|
+
annotationPath: sAnnotationPath,
|
|
155
194
|
entitySet: sEntitySetPath,
|
|
156
195
|
actions: actions
|
|
157
196
|
};
|
|
@@ -182,7 +221,7 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
182
221
|
_exports.isReferenceFacet = isReferenceFacet;
|
|
183
222
|
|
|
184
223
|
function createFormDefinition(facetDefinition, converterContext, actions) {
|
|
185
|
-
var _facetDefinition$
|
|
224
|
+
var _facetDefinition$anno7, _facetDefinition$anno8, _facetDefinition$anno9;
|
|
186
225
|
|
|
187
226
|
switch (facetDefinition.$Type) {
|
|
188
227
|
case "com.sap.vocabularies.UI.v1.CollectionFacet":
|
|
@@ -207,7 +246,7 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
207
246
|
Facet: facetDefinition
|
|
208
247
|
}),
|
|
209
248
|
useFormContainerLabels: false,
|
|
210
|
-
hasFacetsNotPartOfPreview: ((_facetDefinition$
|
|
249
|
+
hasFacetsNotPartOfPreview: ((_facetDefinition$anno7 = facetDefinition.annotations) === null || _facetDefinition$anno7 === void 0 ? void 0 : (_facetDefinition$anno8 = _facetDefinition$anno7.UI) === null || _facetDefinition$anno8 === void 0 ? void 0 : (_facetDefinition$anno9 = _facetDefinition$anno8.PartOfPreview) === null || _facetDefinition$anno9 === void 0 ? void 0 : _facetDefinition$anno9.valueOf()) === false,
|
|
211
250
|
formContainers: [getFormContainer(facetDefinition, converterContext, actions)]
|
|
212
251
|
};
|
|
213
252
|
return formDefinition;
|
|
@@ -220,4 +259,4 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
220
259
|
_exports.createFormDefinition = createFormDefinition;
|
|
221
260
|
return _exports;
|
|
222
261
|
}, false);
|
|
223
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm0udHMiXSwibmFtZXMiOlsiRm9ybUVsZW1lbnRUeXBlIiwiZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtIiwidGV4dExpbmVzRWRpdCIsImdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyIsImZhY2V0RGVmaW5pdGlvbiIsImNvbnZlcnRlckNvbnRleHQiLCJmb3JtRWxlbWVudHMiLCJyZXNvbHZlZFRhcmdldCIsImdldEVudGl0eVR5cGVBbm5vdGF0aW9uIiwiVGFyZ2V0IiwidmFsdWUiLCJmb3JtQW5ub3RhdGlvbiIsImFubm90YXRpb24iLCJnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zIiwiZmllbGQiLCJzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoIiwiZ2V0U2VtYW50aWNPYmplY3RQYXRoIiwiJFR5cGUiLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsInB1c2giLCJrZXkiLCJLZXlIZWxwZXIiLCJnZW5lcmF0ZUtleUZyb21EYXRhRmllbGQiLCJ0eXBlIiwiQW5ub3RhdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInNlbWFudGljT2JqZWN0UGF0aCIsImZvcm1hdE9wdGlvbnMiLCJ0ZXJtIiwiRGF0YSIsImZvckVhY2giLCJxdWFsaWZpZXIiLCJnZXRGb3JtRWxlbWVudHNGcm9tTWFuaWZlc3QiLCJtYW5pZmVzdFdyYXBwZXIiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJtYW5pZmVzdEZvcm1Db250YWluZXIiLCJnZXRGb3JtQ29udGFpbmVyIiwiZmllbGRzIiwiT2JqZWN0Iiwia2V5cyIsImZpZWxkSWQiLCJpZCIsIkRlZmF1bHQiLCJ0ZW1wbGF0ZSIsImxhYmVsIiwicG9zaXRpb24iLCJwbGFjZW1lbnQiLCJQbGFjZW1lbnQiLCJBZnRlciIsImFjdGlvbnMiLCJzRW50aXR5U2V0UGF0aCIsImdldEVudGl0eVNldCIsImdldFRhcmdldEVudGl0eVNldFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0T2JqZWN0IiwiY29udGFpbnNUYXJnZXQiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwidW5kZWZpbmVkIiwiZmlsdGVyIiwiYWN0aW9uIiwiZmFjZXROYW1lIiwibGVuZ3RoIiwiZ2VuZXJhdGUiLCJGYWNldCIsImluc2VydEN1c3RvbUVsZW1lbnRzIiwiZW50aXR5U2V0IiwiZ2V0Rm9ybUNvbnRhaW5lcnNGb3JDb2xsZWN0aW9uIiwiZm9ybUNvbnRhaW5lcnMiLCJGYWNldHMiLCJmYWNldCIsImlzUmVmZXJlbmNlRmFjZXQiLCJjcmVhdGVGb3JtRGVmaW5pdGlvbiIsImZvcm1Db2xsZWN0aW9uRGVmaW5pdGlvbiIsIkZvcm1JRCIsInVzZUZvcm1Db250YWluZXJMYWJlbHMiLCJoYXNGYWNldHNOb3RQYXJ0T2ZQcmV2aWV3Iiwic29tZSIsImNoaWxkRmFjZXQiLCJQYXJ0T2ZQcmV2aWV3IiwiZm9ybURlZmluaXRpb24iLCJFcnJvciJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUEyQllBLGU7O2FBQUFBLGU7QUFBQUEsSUFBQUEsZTtBQUFBQSxJQUFBQSxlO0tBQUFBLGUsS0FBQUEsZTs7OztBQXFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBU0MsOEJBQVQsR0FBNkQ7QUFDNUQsV0FBTztBQUNOQyxNQUFBQSxhQUFhLEVBQUU7QUFEVCxLQUFQO0FBR0E7O0FBRUQsV0FBU0MsOEJBQVQsQ0FBd0NDLGVBQXhDLEVBQThFQyxnQkFBOUUsRUFBMkk7QUFDMUksUUFBTUMsWUFBcUMsR0FBRyxFQUE5QztBQUNBLFFBQU1DLGNBQWMsR0FBR0YsZ0JBQWdCLENBQUNHLHVCQUFqQixDQUF5Q0osZUFBZSxDQUFDSyxNQUFoQixDQUF1QkMsS0FBaEUsQ0FBdkI7QUFDQSxRQUFNQyxjQUEyRSxHQUFHSixjQUFjLENBQUNLLFVBQW5HO0FBR0FQLElB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QUNDLFlBQU1PLGNBQWMsR0FBRztBQUN0QnRDLFVBQUFBLEVBQUUsRUFBRWdDLE1BQU0sQ0FBQztBQUFFVixZQUFBQSxLQUFLLEVBQUVoRTtBQUFULFdBQUQsQ0FEWTtBQUV0QjJFLFVBQUFBLHNCQUFzQixFQUFFLEtBRkY7QUFHdEJDLFVBQUFBLHlCQUF5QixFQUFFLDBCQUFBNUUsZUFBZSxDQUFDYyxXQUFoQiwwR0FBNkJDLEVBQTdCLDRHQUFpQ2dFLGFBQWpDLGtGQUFnRDlELE9BQWhELFFBQThELEtBSG5FO0FBSXRCbUQsVUFBQUEsY0FBYyxFQUFFLENBQUMvQixnQkFBZ0IsQ0FBQ3JDLGVBQUQsRUFBa0JDLGdCQUFsQixFQUFvQ2lELE9BQXBDLENBQWpCO0FBSk0sU0FBdkI7QUFNQSxlQUFPOEIsY0FBUDs7QUFDRDtBQUNDLGNBQU0sSUFBSUMsS0FBSixDQUFVLCtDQUFWLENBQU47QUFyQkY7QUF1QkEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFubm90YXRpb25UZXJtLFxuXHRDb2xsZWN0aW9uRmFjZXRUeXBlcyxcblx0Q29tbXVuaWNhdGlvbkFubm90YXRpb25UZXJtcyxcblx0RGF0YUZpZWxkQWJzdHJhY3RUeXBlcyxcblx0RmFjZXRUeXBlcyxcblx0RmllbGRHcm91cCxcblx0SWRlbnRpZmljYXRpb24sXG5cdFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdFVJQW5ub3RhdGlvblRlcm1zLFxuXHRVSUFubm90YXRpb25UeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IEJpbmRpbmdFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IENvbmZpZ3VyYWJsZU9iamVjdCwgQ3VzdG9tRWxlbWVudCwgaW5zZXJ0Q3VzdG9tRWxlbWVudHMsIFBsYWNlbWVudCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgRm9ybUlEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0tleVwiO1xuaW1wb3J0IHsgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiwgRm9ybWF0T3B0aW9uc1R5cGUgfSBmcm9tIFwiLi4vLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgZ2V0U2VtYW50aWNPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvYW5ub3RhdGlvbnMvRGF0YUZpZWxkXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwiLi4vLi4vLi4vaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uLy4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IEJhc2VBY3Rpb24sIENvbnZlcnRlckFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcblxuZXhwb3J0IHR5cGUgRm9ybURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGJvb2xlYW47XG5cdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZW51bSBGb3JtRWxlbWVudFR5cGUge1xuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdEFubm90YXRpb24gPSBcIkFubm90YXRpb25cIlxufVxuXG5leHBvcnQgdHlwZSBCYXNlRm9ybUVsZW1lbnQgPSBDb25maWd1cmFibGVPYmplY3QgJiB7XG5cdGlkPzogc3RyaW5nO1xuXHR0eXBlOiBGb3JtRWxlbWVudFR5cGU7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHR2aXNpYmxlPzogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj47XG5cdGZvcm1hdE9wdGlvbnM/OiBGb3JtYXRPcHRpb25zVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIEFubm90YXRpb25Gb3JtRWxlbWVudCA9IEJhc2VGb3JtRWxlbWVudCAmIHtcblx0aWRQcmVmaXg/OiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoPzogc3RyaW5nO1xuXHRpc1ZhbHVlTXVsdGlsaW5lVGV4dD86IGJvb2xlYW47XG5cdHNlbWFudGljT2JqZWN0UGF0aD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUZvcm1FbGVtZW50ID0gQ3VzdG9tRWxlbWVudDxcblx0QmFzZUZvcm1FbGVtZW50ICYge1xuXHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5EZWZhdWx0O1xuXHRcdHRlbXBsYXRlOiBzdHJpbmc7XG5cdH1cbj47XG5cbmV4cG9ydCB0eXBlIEZvcm1FbGVtZW50ID0gQ3VzdG9tRm9ybUVsZW1lbnQgfCBBbm5vdGF0aW9uRm9ybUVsZW1lbnQ7XG5cbnR5cGUgRm9ybUNvbnRhaW5lciA9IHtcblx0aWQ/OiBzdHJpbmc7XG5cdGZvcm1FbGVtZW50czogRm9ybUVsZW1lbnRbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRhY3Rpb25zPzogQ29udmVydGVyQWN0aW9uW10gfCBCYXNlQWN0aW9uW107XG59O1xuXG4vKipcbiAqIFJldHVybnMgZGVmYXVsdCBmb3JtYXQgb3B0aW9ucyBmb3IgdGV4dCBmaWVsZHMgb24gYSBmb3JtLlxuICpcbiAqIEByZXR1cm5zIHtGb3JtYXRPcHRpb25zVHlwZX0gQ29sbGVjdGlvbiBvZiBmb3JtYXQgb3B0aW9ucyB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpOiBGb3JtYXRPcHRpb25zVHlwZSB7XG5cdHJldHVybiB7XG5cdFx0dGV4dExpbmVzRWRpdDogNFxuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtRWxlbWVudHNGcm9tQW5ub3RhdGlvbnMoZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10ge1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IEFubm90YXRpb25Gb3JtRWxlbWVudFtdID0gW107XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgZm9ybUFubm90YXRpb246IEFubm90YXRpb25UZXJtPElkZW50aWZpY2F0aW9uPiB8IEFubm90YXRpb25UZXJtPEZpZWxkR3JvdXA+ID0gcmVzb2x2ZWRUYXJnZXQuYW5ub3RhdGlvbiBhc1xuXHRcdHwgQW5ub3RhdGlvblRlcm08SWRlbnRpZmljYXRpb24+XG5cdFx0fCBBbm5vdGF0aW9uVGVybTxGaWVsZEdyb3VwPjtcblx0Y29udmVydGVyQ29udGV4dCA9IHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQ7XG5cblx0ZnVuY3Rpb24gZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyhmaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcykge1xuXHRcdGNvbnN0IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGggPSBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgZmllbGQpO1xuXHRcdGlmIChcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24gJiZcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gJiZcblx0XHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWVcblx0XHQpIHtcblx0XHRcdGZvcm1FbGVtZW50cy5wdXNoKHtcblx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGZpZWxkKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiLFxuXHRcdFx0XHRzZW1hbnRpY09iamVjdFBhdGg6IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRzd2l0Y2ggKGZvcm1Bbm5vdGF0aW9uPy50ZXJtKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5GaWVsZEdyb3VwOlxuXHRcdFx0KGZvcm1Bbm5vdGF0aW9uIGFzIEFubm90YXRpb25UZXJtPEZpZWxkR3JvdXA+KS5EYXRhLmZvckVhY2goZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLklkZW50aWZpY2F0aW9uOlxuXHRcdFx0KGZvcm1Bbm5vdGF0aW9uIGFzIEFubm90YXRpb25UZXJtPElkZW50aWZpY2F0aW9uPikuZm9yRWFjaChnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRGF0YVBvaW50OlxuXHRcdFx0Zm9ybUVsZW1lbnRzLnB1c2goe1xuXHRcdFx0XHQvLyBrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZm9ybUFubm90YXRpb24pLFxuXHRcdFx0XHRrZXk6IFwiRGF0YVBvaW50OjpcIiArIChmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwiKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZm9ybUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQ29tbXVuaWNhdGlvbkFubm90YXRpb25UZXJtcy5Db250YWN0OlxuXHRcdFx0Zm9ybUVsZW1lbnRzLnB1c2goe1xuXHRcdFx0XHQvLyBrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZm9ybUFubm90YXRpb24pLFxuXHRcdFx0XHRrZXk6IFwiQ29udGFjdDo6XCIgKyAoZm9ybUFubm90YXRpb24ucXVhbGlmaWVyID8gZm9ybUFubm90YXRpb24ucXVhbGlmaWVyIDogXCJcIiksXG5cdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZvcm1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSkgKyBcIi9cIlxuXHRcdFx0fSk7XG5cdFx0XHRicmVhaztcblx0XHRkZWZhdWx0OlxuXHRcdFx0YnJlYWs7XG5cdH1cblx0cmV0dXJuIGZvcm1FbGVtZW50cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdChcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21Gb3JtRWxlbWVudD4ge1xuXHRjb25zdCBtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCBtYW5pZmVzdEZvcm1Db250YWluZXI6IEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb24gPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Rm9ybUNvbnRhaW5lcihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgZm9ybUVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21Gb3JtRWxlbWVudD4gPSB7fTtcblx0aWYgKG1hbmlmZXN0Rm9ybUNvbnRhaW5lcj8uZmllbGRzKSB7XG5cdFx0T2JqZWN0LmtleXMobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpLmZvckVhY2goZmllbGRJZCA9PiB7XG5cdFx0XHRmb3JtRWxlbWVudHNbZmllbGRJZF0gPSB7XG5cdFx0XHRcdGtleTogZmllbGRJZCxcblx0XHRcdFx0aWQ6IFwiQ3VzdG9tRm9ybUVsZW1lbnQ6OlwiICsgZmllbGRJZCxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQsXG5cdFx0XHRcdHRlbXBsYXRlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnRlbXBsYXRlLFxuXHRcdFx0XHRsYWJlbDogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5sYWJlbCxcblx0XHRcdFx0cG9zaXRpb246IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0ucG9zaXRpb24gfHwge1xuXHRcdFx0XHRcdHBsYWNlbWVudDogUGxhY2VtZW50LkFmdGVyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IHtcblx0XHRcdFx0XHQuLi5nZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKSxcblx0XHRcdFx0XHQuLi5tYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUNvbnRhaW5lcihcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW10gfCBDb252ZXJ0ZXJBY3Rpb25bXSB8IHVuZGVmaW5lZFxuKTogRm9ybUNvbnRhaW5lciB7XG5cdC8vVE9ETyBmb3JtIGNvbnRhaW5lciBpZFxuXHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oZmFjZXREZWZpbml0aW9uLlRhcmdldC52YWx1ZSk7XG5cdGxldCBzRW50aXR5U2V0UGF0aCE6IHN0cmluZztcblx0Ly8gcmVzb2x2ZWRUYXJnZXQgZG9lc24ndCBoYXZlIGEgZW50aXR5U2V0IGluIGNhc2UgQ29udGFpbm1lbnRzIGFuZCBQYXJhbXRlcml6ZWQgc2VydmljZXMuXG5cdGlmIChcblx0XHRyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpICYmXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAhPT0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKVxuXHQpIHtcblx0XHRzRW50aXR5U2V0UGF0aCA9IGdldFRhcmdldEVudGl0eVNldFBhdGgocmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCkpO1xuXHR9IGVsc2UgaWYgKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnRhcmdldE9iamVjdD8uY29udGFpbnNUYXJnZXQgPT09IHRydWUpIHtcblx0XHRzRW50aXR5U2V0UGF0aCA9IGdldFRhcmdldE9iamVjdFBhdGgocmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksIGZhbHNlKTtcblx0fVxuXHRhY3Rpb25zID0gYWN0aW9ucyAhPT0gdW5kZWZpbmVkID8gYWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IGFjdGlvbi5mYWNldE5hbWUgPT0gZmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSkgOiBbXTtcblx0aWYgKGFjdGlvbnMubGVuZ3RoID09PSAwKSB7XG5cdFx0YWN0aW9ucyA9IHVuZGVmaW5lZDtcblx0fVxuXHRyZXR1cm4ge1xuXHRcdGlkOiBnZW5lcmF0ZShbeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH1dKSxcblx0XHRmb3JtRWxlbWVudHM6IGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0XHRnZXRGb3JtRWxlbWVudHNGcm9tTWFuaWZlc3QoZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdHsgZm9ybWF0T3B0aW9uczogXCJvdmVyd3JpdGVcIiB9XG5cdFx0KSxcblx0XHRhbm5vdGF0aW9uUGF0aDogXCIvXCIgKyBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdGVudGl0eVNldDogc0VudGl0eVNldFBhdGgsXG5cdFx0YWN0aW9uczogYWN0aW9uc1xuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogQ29sbGVjdGlvbkZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtQ29udGFpbmVyW10ge1xuXHRjb25zdCBmb3JtQ29udGFpbmVyczogRm9ybUNvbnRhaW5lcltdID0gW107XG5cdC8vVE9ETyBjb2xsIGZhY2V0IGluc2lkZSBjb2xsIGZhY2V0P1xuXHRmYWNldERlZmluaXRpb24uRmFjZXRzPy5mb3JFYWNoKGZhY2V0ID0+IHtcblx0XHQvLyBJZ25vcmUgbGV2ZWwgMyBjb2xsZWN0aW9uIGZhY2V0XG5cdFx0aWYgKGZhY2V0LiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Zm9ybUNvbnRhaW5lcnMucHVzaChnZXRGb3JtQ29udGFpbmVyKGZhY2V0IGFzIFJlZmVyZW5jZUZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQsIGFjdGlvbnMpKTtcblx0fSk7XG5cdHJldHVybiBmb3JtQ29udGFpbmVycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVmZXJlbmNlRmFjZXQoZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzKTogZmFjZXREZWZpbml0aW9uIGlzIFJlZmVyZW5jZUZhY2V0VHlwZXMge1xuXHRyZXR1cm4gZmFjZXREZWZpbml0aW9uLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1EZWZpbml0aW9uKFxuXHRmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtRGVmaW5pdGlvbiB7XG5cdHN3aXRjaCAoZmFjZXREZWZpbml0aW9uLiRUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQ6XG5cdFx0XHQvLyBLZWVwIG9ubHkgdmFsaWQgY2hpbGRyZW5cblx0XHRcdGNvbnN0IGZvcm1Db2xsZWN0aW9uRGVmaW5pdGlvbiA9IHtcblx0XHRcdFx0aWQ6IEZvcm1JRCh7IEZhY2V0OiBmYWNldERlZmluaXRpb24gfSksXG5cdFx0XHRcdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IHRydWUsXG5cdFx0XHRcdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGZhY2V0RGVmaW5pdGlvbi5GYWNldHMuc29tZShcblx0XHRcdFx0XHRjaGlsZEZhY2V0ID0+IGNoaWxkRmFjZXQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3Py52YWx1ZU9mKCkgPT09IGZhbHNlXG5cdFx0XHRcdCksXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0LCBhY3Rpb25zKVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtQ29sbGVjdGlvbkRlZmluaXRpb247XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldDpcblx0XHRcdGNvbnN0IGZvcm1EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRpZDogRm9ybUlEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9KSxcblx0XHRcdFx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogZmFsc2UsXG5cdFx0XHRcdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXc/LnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBbZ2V0Rm9ybUNvbnRhaW5lcihmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQsIGFjdGlvbnMpXVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtRGVmaW5pdGlvbjtcblx0XHRkZWZhdWx0OlxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNyZWF0ZSBmb3JtIGJhc2VkIG9uIFJlZmVyZW5jZVVSTEZhY2V0XCIpO1xuXHR9XG59XG4iXX0=
|
|
262
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm0udHMiXSwibmFtZXMiOlsiRm9ybUVsZW1lbnRUeXBlIiwiZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtIiwidGV4dExpbmVzRWRpdCIsImlzRmllbGRQYXJ0T2ZQcmV2aWV3IiwiZmllbGQiLCJmb3JtUGFydE9mUHJldmlldyIsImFubm90YXRpb25zIiwiVUkiLCJQYXJ0T2ZQcmV2aWV3IiwidW5kZWZpbmVkIiwiZ2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zIiwiZmFjZXREZWZpbml0aW9uIiwiY29udmVydGVyQ29udGV4dCIsImZvcm1FbGVtZW50cyIsInJlc29sdmVkVGFyZ2V0IiwiZ2V0RW50aXR5VHlwZUFubm90YXRpb24iLCJUYXJnZXQiLCJ2YWx1ZSIsImZvcm1Bbm5vdGF0aW9uIiwiYW5ub3RhdGlvbiIsImdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMiLCJzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoIiwiZ2V0U2VtYW50aWNPYmplY3RQYXRoIiwiJFR5cGUiLCJIaWRkZW4iLCJ2YWx1ZU9mIiwicHVzaCIsImtleSIsIktleUhlbHBlciIsImdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZCIsInR5cGUiLCJBbm5vdGF0aW9uIiwiYW5ub3RhdGlvblBhdGgiLCJnZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoIiwiZnVsbHlRdWFsaWZpZWROYW1lIiwic2VtYW50aWNPYmplY3RQYXRoIiwiZm9ybWF0T3B0aW9ucyIsImlzUGFydE9mUHJldmlldyIsInRlcm0iLCJEYXRhIiwiZm9yRWFjaCIsInF1YWxpZmllciIsImdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdCIsIm1hbmlmZXN0V3JhcHBlciIsImdldE1hbmlmZXN0V3JhcHBlciIsIm1hbmlmZXN0Rm9ybUNvbnRhaW5lciIsImdldEZvcm1Db250YWluZXIiLCJmaWVsZHMiLCJPYmplY3QiLCJrZXlzIiwiZmllbGRJZCIsImlkIiwiRGVmYXVsdCIsInRlbXBsYXRlIiwibGFiZWwiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwiYWN0aW9ucyIsInNGb3JtQ29udGFpbmVySWQiLCJnZW5lcmF0ZSIsIkZhY2V0Iiwic0Fubm90YXRpb25QYXRoIiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXQiLCJnZXRUYXJnZXRFbnRpdHlTZXRQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldE9iamVjdCIsImNvbnRhaW5zVGFyZ2V0IiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImFGb3JtRWxlbWVudHMiLCJpbnNlcnRDdXN0b21FbGVtZW50cyIsImZpbHRlciIsImFjdGlvbiIsImZhY2V0TmFtZSIsImxlbmd0aCIsIm9BY3Rpb25TaG93RGV0YWlscyIsIkZvcm1TdGFuZGFyZEFjdGlvbkJ1dHRvbklEIiwidGV4dCIsIkFjdGlvblR5cGUiLCJTaG93Rm9ybURldGFpbHMiLCJwcmVzcyIsInNvbWUiLCJvRm9ybUVsZW1lbnQiLCJlbnRpdHlTZXQiLCJnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24iLCJmb3JtQ29udGFpbmVycyIsIkZhY2V0cyIsImZhY2V0IiwiaXNSZWZlcmVuY2VGYWNldCIsImNyZWF0ZUZvcm1EZWZpbml0aW9uIiwiZm9ybUNvbGxlY3Rpb25EZWZpbml0aW9uIiwiRm9ybUlEIiwidXNlRm9ybUNvbnRhaW5lckxhYmVscyIsImhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXciLCJjaGlsZEZhY2V0IiwiZm9ybURlZmluaXRpb24iLCJFcnJvciJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQTRCWUEsZTs7YUFBQUEsZTtBQUFBQSxJQUFBQSxlO0FBQUFBLElBQUFBLGU7S0FBQUEsZSxLQUFBQSxlOzs7O0FBc0NaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFTQyw4QkFBVCxHQUE2RDtBQUM1RCxXQUFPO0FBQ05DLE1BQUFBLGFBQWEsRUFBRTtB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LEtBQUosQ0FBVSwrQ0FBVixDQUFOO0FBckJGO0FBdUJBIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRBbm5vdGF0aW9uVGVybSxcblx0Q29sbGVjdGlvbkZhY2V0VHlwZXMsXG5cdENvbW11bmljYXRpb25Bbm5vdGF0aW9uVGVybXMsXG5cdERhdGFGaWVsZEFic3RyYWN0VHlwZXMsXG5cdEZhY2V0VHlwZXMsXG5cdEZpZWxkR3JvdXAsXG5cdElkZW50aWZpY2F0aW9uLFxuXHRQYXJ0T2ZQcmV2aWV3LFxuXHRSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRVSUFubm90YXRpb25UZXJtcyxcblx0VUlBbm5vdGF0aW9uVHlwZXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBCaW5kaW5nRXhwcmVzc2lvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0JpbmRpbmdFeHByZXNzaW9uXCI7XG5pbXBvcnQgeyBDb25maWd1cmFibGVPYmplY3QsIEN1c3RvbUVsZW1lbnQsIGluc2VydEN1c3RvbUVsZW1lbnRzLCBQbGFjZW1lbnQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9Db25maWd1cmFibGVPYmplY3RcIjtcbmltcG9ydCB7IEZvcm1JRCwgRm9ybVN0YW5kYXJkQWN0aW9uQnV0dG9uSUQgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9JRFwiO1xuaW1wb3J0IHsgS2V5SGVscGVyIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvS2V5XCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlLCBGb3JtYXRPcHRpb25zVHlwZSwgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5pbXBvcnQgeyBnZXRTZW1hbnRpY09iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9hbm5vdGF0aW9ucy9EYXRhRmllbGRcIjtcbmltcG9ydCB7IGdldFRhcmdldEVudGl0eVNldFBhdGgsIGdldFRhcmdldE9iamVjdFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL1N0YWJsZUlkSGVscGVyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgQmFzZUFjdGlvbiwgQ29udmVydGVyQWN0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL0FjdGlvblwiO1xuXG5leHBvcnQgdHlwZSBGb3JtRGVmaW5pdGlvbiA9IHtcblx0aWQ6IHN0cmluZztcblx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogYm9vbGVhbjtcblx0aGFzRmFjZXRzTm90UGFydE9mUHJldmlldzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBlbnVtIEZvcm1FbGVtZW50VHlwZSB7XG5cdERlZmF1bHQgPSBcIkRlZmF1bHRcIixcblx0QW5ub3RhdGlvbiA9IFwiQW5ub3RhdGlvblwiXG59XG5cbmV4cG9ydCB0eXBlIEJhc2VGb3JtRWxlbWVudCA9IENvbmZpZ3VyYWJsZU9iamVjdCAmIHtcblx0aWQ/OiBzdHJpbmc7XG5cdHR5cGU6IEZvcm1FbGVtZW50VHlwZTtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPjtcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvbkZvcm1FbGVtZW50ID0gQmFzZUZvcm1FbGVtZW50ICYge1xuXHRpZFByZWZpeD86IHN0cmluZztcblx0YW5ub3RhdGlvblBhdGg/OiBzdHJpbmc7XG5cdGlzVmFsdWVNdWx0aWxpbmVUZXh0PzogYm9vbGVhbjtcblx0c2VtYW50aWNPYmplY3RQYXRoPzogc3RyaW5nO1xuXHRpc1BhcnRPZlByZXZpZXc/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tRm9ybUVsZW1lbnQgPSBDdXN0b21FbGVtZW50PFxuXHRCYXNlRm9ybUVsZW1lbnQgJiB7XG5cdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQ7XG5cdFx0dGVtcGxhdGU6IHN0cmluZztcblx0fVxuPjtcblxuZXhwb3J0IHR5cGUgRm9ybUVsZW1lbnQgPSBDdXN0b21Gb3JtRWxlbWVudCB8IEFubm90YXRpb25Gb3JtRWxlbWVudDtcblxudHlwZSBGb3JtQ29udGFpbmVyID0ge1xuXHRpZD86IHN0cmluZztcblx0Zm9ybUVsZW1lbnRzOiBGb3JtRWxlbWVudFtdO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRlbnRpdHlTZXQ/OiBzdHJpbmc7XG5cdGFjdGlvbnM/OiBDb252ZXJ0ZXJBY3Rpb25bXSB8IEJhc2VBY3Rpb25bXTtcbn07XG5cbi8qKlxuICogUmV0dXJucyBkZWZhdWx0IGZvcm1hdCBvcHRpb25zIGZvciB0ZXh0IGZpZWxkcyBvbiBhIGZvcm0uXG4gKlxuICogQHJldHVybnMge0Zvcm1hdE9wdGlvbnNUeXBlfSBDb2xsZWN0aW9uIG9mIGZvcm1hdCBvcHRpb25zIHdpdGggZGVmYXVsdCB2YWx1ZXNcbiAqL1xuZnVuY3Rpb24gZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtKCk6IEZvcm1hdE9wdGlvbnNUeXBlIHtcblx0cmV0dXJuIHtcblx0XHR0ZXh0TGluZXNFZGl0OiA0XG5cdH07XG59XG5cbmZ1bmN0aW9uIGlzRmllbGRQYXJ0T2ZQcmV2aWV3KGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBmb3JtUGFydE9mUHJldmlldzogUGFydE9mUHJldmlldyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuXHQvLyBCb3RoIGVhY2ggZm9ybSBhbmQgZmllbGQgY2FuIGhhdmUgdGhlIFBhcnRPZlByZXZpZXcgYW5ub3RhdGlvbi4gT25seSBpZiB0aGUgZm9ybSBpcyBub3QgaGlkZGVuIChub3QgcGFydE9mUHJldmlldykgd2UgYWxsb3cgdG9nZ2xpbmcgb24gZmllbGQgbGV2ZWxcblx0cmV0dXJuIChcblx0XHRmb3JtUGFydE9mUHJldmlldyA9PT0gZmFsc2UgfHwgZmllbGQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3ID09PSB1bmRlZmluZWQgfHwgZmllbGQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3ID09PSB0cnVlXG5cdCk7XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyhmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBBbm5vdGF0aW9uRm9ybUVsZW1lbnRbXSB7XG5cdGNvbnN0IGZvcm1FbGVtZW50czogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10gPSBbXTtcblx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtQW5ub3RhdGlvbjogQW5ub3RhdGlvblRlcm08SWRlbnRpZmljYXRpb24+IHwgQW5ub3RhdGlvblRlcm08RmllbGRHcm91cD4gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzXG5cdFx0fCBBbm5vdGF0aW9uVGVybTxJZGVudGlmaWNhdGlvbj5cblx0XHR8IEFubm90YXRpb25UZXJtPEZpZWxkR3JvdXA+O1xuXHRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblxuXHRmdW5jdGlvbiBnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzLCBmb3JtUGFydE9mUHJldmlldzogUGFydE9mUHJldmlldyB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGggPSBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgZmllbGQpO1xuXHRcdGlmIChcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24gJiZcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gJiZcblx0XHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWVcblx0XHQpIHtcblx0XHRcdGZvcm1FbGVtZW50cy5wdXNoKHtcblx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGZpZWxkKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiLFxuXHRcdFx0XHRzZW1hbnRpY09iamVjdFBhdGg6IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpLFxuXHRcdFx0XHRpc1BhcnRPZlByZXZpZXc6IGlzRmllbGRQYXJ0T2ZQcmV2aWV3KGZpZWxkLCBmb3JtUGFydE9mUHJldmlldylcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHN3aXRjaCAoZm9ybUFubm90YXRpb24/LnRlcm0pIHtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkZpZWxkR3JvdXA6XG5cdFx0XHQoZm9ybUFubm90YXRpb24gYXMgQW5ub3RhdGlvblRlcm08RmllbGRHcm91cD4pLkRhdGEuZm9yRWFjaChmaWVsZCA9PlxuXHRcdFx0XHRnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKGZpZWxkLCBmYWNldERlZmluaXRpb24uYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3KVxuXHRcdFx0KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuSWRlbnRpZmljYXRpb246XG5cdFx0XHQoZm9ybUFubm90YXRpb24gYXMgQW5ub3RhdGlvblRlcm08SWRlbnRpZmljYXRpb24+KS5mb3JFYWNoKGZpZWxkID0+XG5cdFx0XHRcdGdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMoZmllbGQsIGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXcpXG5cdFx0XHQpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogXCJEYXRhUG9pbnQ6OlwiICsgKGZvcm1Bbm5vdGF0aW9uLnF1YWxpZmllciA/IGZvcm1Bbm5vdGF0aW9uLnF1YWxpZmllciA6IFwiXCIpLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmb3JtQW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpICsgXCIvXCJcblx0XHRcdH0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zLkNvbnRhY3Q6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogXCJDb250YWN0OjpcIiArIChmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwiKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZm9ybUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRicmVhaztcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KFxuXHRmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdGNvbnN0IG1hbmlmZXN0Rm9ybUNvbnRhaW5lcjogRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IG1hbmlmZXN0V3JhcHBlci5nZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiA9IHt9O1xuXHRpZiAobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpIHtcblx0XHRPYmplY3Qua2V5cyhtYW5pZmVzdEZvcm1Db250YWluZXI/LmZpZWxkcykuZm9yRWFjaChmaWVsZElkID0+IHtcblx0XHRcdGZvcm1FbGVtZW50c1tmaWVsZElkXSA9IHtcblx0XHRcdFx0a2V5OiBmaWVsZElkLFxuXHRcdFx0XHRpZDogXCJDdXN0b21Gb3JtRWxlbWVudDo6XCIgKyBmaWVsZElkLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuRGVmYXVsdCxcblx0XHRcdFx0dGVtcGxhdGU6IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0udGVtcGxhdGUsXG5cdFx0XHRcdGxhYmVsOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmxhYmVsLFxuXHRcdFx0XHRwb3NpdGlvbjogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5wb3NpdGlvbiB8fCB7XG5cdFx0XHRcdFx0cGxhY2VtZW50OiBQbGFjZW1lbnQuQWZ0ZXJcblx0XHRcdFx0fSxcblx0XHRcdFx0Zm9ybWF0T3B0aW9uczoge1xuXHRcdFx0XHRcdC4uLmdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpLFxuXHRcdFx0XHRcdC4uLm1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0uZm9ybWF0T3B0aW9uc1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBmb3JtRWxlbWVudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyKFxuXHRmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdIHwgdW5kZWZpbmVkXG4pOiBGb3JtQ29udGFpbmVyIHtcblx0Ly9UT0RPIGZvcm0gY29udGFpbmVyIGlkXG5cdGNvbnN0IHNGb3JtQ29udGFpbmVySWQgPSBnZW5lcmF0ZShbeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH1dKTtcblx0Y29uc3Qgc0Fubm90YXRpb25QYXRoID0gXCIvXCIgKyBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oZmFjZXREZWZpbml0aW9uLlRhcmdldC52YWx1ZSk7XG5cdGxldCBzRW50aXR5U2V0UGF0aCE6IHN0cmluZztcblx0Ly8gcmVzb2x2ZWRUYXJnZXQgZG9lc24ndCBoYXZlIGEgZW50aXR5U2V0IGluIGNhc2UgQ29udGFpbm1lbnRzIGFuZCBQYXJhbXRlcml6ZWQgc2VydmljZXMuXG5cdGlmIChcblx0XHRyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpICYmXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAhPT0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKVxuXHQpIHtcblx0XHRzRW50aXR5U2V0UGF0aCA9IGdldFRhcmdldEVudGl0eVNldFBhdGgocmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCkpO1xuXHR9IGVsc2UgaWYgKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnRhcmdldE9iamVjdD8uY29udGFpbnNUYXJnZXQgPT09IHRydWUpIHtcblx0XHRzRW50aXR5U2V0UGF0aCA9IGdldFRhcmdldE9iamVjdFBhdGgocmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksIGZhbHNlKTtcblx0fVxuXHRjb25zdCBhRm9ybUVsZW1lbnRzID0gaW5zZXJ0Q3VzdG9tRWxlbWVudHMoXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0eyBmb3JtYXRPcHRpb25zOiBcIm92ZXJ3cml0ZVwiIH1cblx0KTtcblxuXHRhY3Rpb25zID0gYWN0aW9ucyAhPT0gdW5kZWZpbmVkID8gYWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IGFjdGlvbi5mYWNldE5hbWUgPT0gZmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSkgOiBbXTtcblx0aWYgKGFjdGlvbnMubGVuZ3RoID09PSAwKSB7XG5cdFx0YWN0aW9ucyA9IHVuZGVmaW5lZDtcblx0fVxuXG5cdGNvbnN0IG9BY3Rpb25TaG93RGV0YWlsczogQmFzZUFjdGlvbiA9IHtcblx0XHRpZDogRm9ybVN0YW5kYXJkQWN0aW9uQnV0dG9uSUQoc0Zvcm1Db250YWluZXJJZCwgXCJTaG93SGlkZURldGFpbHNcIiksXG5cdFx0a2V5OiBcIlN0YW5kYXJkQWN0aW9uOjpTaG93SGlkZURldGFpbHNcIixcblx0XHR0ZXh0OiBcIntzYXAuZmUuaTE4bj5UX0NPTU1PTl9PQkpFQ1RfUEFHRV9TSE9XX0ZPUk1fQ09OVEFJTkVSX0RFVEFJTFN9XCIsXG5cdFx0dHlwZTogQWN0aW9uVHlwZS5TaG93Rm9ybURldGFpbHMsXG5cdFx0cHJlc3M6IFwiRm9ybUNvbnRhaW5lclJ1bnRpbWUudG9nZ2xlRGV0YWlsc1wiXG5cdH07XG5cblx0aWYgKFxuXHRcdGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXcgIT09IGZhbHNlICYmXG5cdFx0YUZvcm1FbGVtZW50cy5zb21lKG9Gb3JtRWxlbWVudCA9PiBvRm9ybUVsZW1lbnQuaXNQYXJ0T2ZQcmV2aWV3ID09PSBmYWxzZSlcblx0KSB7XG5cdFx0aWYgKGFjdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0YWN0aW9ucy5wdXNoKG9BY3Rpb25TaG93RGV0YWlscyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFjdGlvbnMgPSBbb0FjdGlvblNob3dEZXRhaWxzXTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4ge1xuXHRcdGlkOiBzRm9ybUNvbnRhaW5lcklkLFxuXHRcdGZvcm1FbGVtZW50czogYUZvcm1FbGVtZW50cyxcblx0XHRhbm5vdGF0aW9uUGF0aDogc0Fubm90YXRpb25QYXRoLFxuXHRcdGVudGl0eVNldDogc0VudGl0eVNldFBhdGgsXG5cdFx0YWN0aW9uczogYWN0aW9uc1xuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogQ29sbGVjdGlvbkZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtQ29udGFpbmVyW10ge1xuXHRjb25zdCBmb3JtQ29udGFpbmVyczogRm9ybUNvbnRhaW5lcltdID0gW107XG5cdC8vVE9ETyBjb2xsIGZhY2V0IGluc2lkZSBjb2xsIGZhY2V0P1xuXHRmYWNldERlZmluaXRpb24uRmFjZXRzPy5mb3JFYWNoKGZhY2V0ID0+IHtcblx0XHQvLyBJZ25vcmUgbGV2ZWwgMyBjb2xsZWN0aW9uIGZhY2V0XG5cdFx0aWYgKGZhY2V0LiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Zm9ybUNvbnRhaW5lcnMucHVzaChnZXRGb3JtQ29udGFpbmVyKGZhY2V0IGFzIFJlZmVyZW5jZUZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQsIGFjdGlvbnMpKTtcblx0fSk7XG5cdHJldHVybiBmb3JtQ29udGFpbmVycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVmZXJlbmNlRmFjZXQoZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzKTogZmFjZXREZWZpbml0aW9uIGlzIFJlZmVyZW5jZUZhY2V0VHlwZXMge1xuXHRyZXR1cm4gZmFjZXREZWZpbml0aW9uLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1EZWZpbml0aW9uKFxuXHRmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtRGVmaW5pdGlvbiB7XG5cdHN3aXRjaCAoZmFjZXREZWZpbml0aW9uLiRUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQ6XG5cdFx0XHQvLyBLZWVwIG9ubHkgdmFsaWQgY2hpbGRyZW5cblx0XHRcdGNvbnN0IGZvcm1Db2xsZWN0aW9uRGVmaW5pdGlvbiA9IHtcblx0XHRcdFx0aWQ6IEZvcm1JRCh7IEZhY2V0OiBmYWNldERlZmluaXRpb24gfSksXG5cdFx0XHRcdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IHRydWUsXG5cdFx0XHRcdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGZhY2V0RGVmaW5pdGlvbi5GYWNldHMuc29tZShcblx0XHRcdFx0XHRjaGlsZEZhY2V0ID0+IGNoaWxkRmFjZXQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3Py52YWx1ZU9mKCkgPT09IGZhbHNlXG5cdFx0XHRcdCksXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0LCBhY3Rpb25zKVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtQ29sbGVjdGlvbkRlZmluaXRpb247XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldDpcblx0XHRcdGNvbnN0IGZvcm1EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRpZDogRm9ybUlEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9KSxcblx0XHRcdFx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogZmFsc2UsXG5cdFx0XHRcdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXc/LnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBbZ2V0Rm9ybUNvbnRhaW5lcihmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQsIGFjdGlvbnMpXVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtRGVmaW5pdGlvbjtcblx0XHRkZWZhdWx0OlxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNyZWF0ZSBmb3JtIGJhc2VkIG9uIFJlZmVyZW5jZVVSTEZhY2V0XCIpO1xuXHR9XG59XG4iXX0=
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["../../helpers/ConfigurableObject","../../helpers/ID","../../helpers/Key","sap/fe/core/converters/annotations/DataField","sap/fe/core/templating/DataModelPathHelper","../../../helpers/StableIdHelper"],function(C,I,K,D,a,S){"use strict";var _={};var g=S.generate;var b=a.getTargetObjectPath;var c=a.getTargetEntitySetPath;var d=D.getSemanticObjectPath;var e=K.KeyHelper;var F=I.FormID;var P=C.Placement;var
|
|
5
|
+
sap.ui.define(["../../helpers/ConfigurableObject","../../helpers/ID","../../helpers/Key","../../ManifestSettings","sap/fe/core/converters/annotations/DataField","sap/fe/core/templating/DataModelPathHelper","../../../helpers/StableIdHelper"],function(C,I,K,M,D,a,S){"use strict";var _={};var g=S.generate;var b=a.getTargetObjectPath;var c=a.getTargetEntitySetPath;var d=D.getSemanticObjectPath;var A=M.ActionType;var e=K.KeyHelper;var F=I.FormStandardActionButtonID;var f=I.FormID;var P=C.Placement;var h=C.insertCustomElements;function o(i,v){var w=Object.keys(i);if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(i);if(v){x=x.filter(function(y){return Object.getOwnPropertyDescriptor(i,y).enumerable;});}w.push.apply(w,x);}return w;}function j(v){for(var i=1;i<arguments.length;i++){var w=arguments[i]!=null?arguments[i]:{};if(i%2){o(Object(w),true).forEach(function(x){k(v,x,w[x]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(v,Object.getOwnPropertyDescriptors(w));}else{o(Object(w)).forEach(function(x){Object.defineProperty(v,x,Object.getOwnPropertyDescriptor(w,x));});}}return v;}function k(i,v,w){if(v in i){Object.defineProperty(i,v,{value:w,enumerable:true,configurable:true,writable:true});}else{i[v]=w;}return i;}var l;(function(l){l["Default"]="Default";l["Annotation"]="Annotation";})(l||(l={}));_.FormElementType=l;function m(){return{textLinesEdit:4};}function n(i,v){var w,x,y,z;return v===false||((w=i.annotations)===null||w===void 0?void 0:(x=w.UI)===null||x===void 0?void 0:x.PartOfPreview)===undefined||((y=i.annotations)===null||y===void 0?void 0:(z=y.UI)===null||z===void 0?void 0:z.PartOfPreview)===true;}function p(i,v){var w=[];var x=v.getEntityTypeAnnotation(i.Target.value);var y=x.annotation;v=x.converterContext;function z(B,E){var G,H,J;var L=d(v,B);if(B.$Type!=="com.sap.vocabularies.UI.v1.DataFieldForAction"&&B.$Type!=="com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation"&&((G=B.annotations)===null||G===void 0?void 0:(H=G.UI)===null||H===void 0?void 0:(J=H.Hidden)===null||J===void 0?void 0:J.valueOf())!==true){w.push({key:e.generateKeyFromDataField(B),type:l.Annotation,annotationPath:v.getEntitySetBasedAnnotationPath(B.fullyQualifiedName)+"/",semanticObjectPath:L,formatOptions:m(),isPartOfPreview:n(B,E)});}}switch(y===null||y===void 0?void 0:y.term){case"com.sap.vocabularies.UI.v1.FieldGroup":y.Data.forEach(function(B){var E,G;return z(B,(E=i.annotations)===null||E===void 0?void 0:(G=E.UI)===null||G===void 0?void 0:G.PartOfPreview);});break;case"com.sap.vocabularies.UI.v1.Identification":y.forEach(function(B){var E,G;return z(B,(E=i.annotations)===null||E===void 0?void 0:(G=E.UI)===null||G===void 0?void 0:G.PartOfPreview);});break;case"com.sap.vocabularies.UI.v1.DataPoint":w.push({key:"DataPoint::"+(y.qualifier?y.qualifier:""),type:l.Annotation,annotationPath:v.getEntitySetBasedAnnotationPath(y.fullyQualifiedName)+"/"});break;case"com.sap.vocabularies.Communication.v1.Contact":w.push({key:"Contact::"+(y.qualifier?y.qualifier:""),type:l.Annotation,annotationPath:v.getEntitySetBasedAnnotationPath(y.fullyQualifiedName)+"/"});break;default:break;}return w;}function q(i,v){var w=v.getManifestWrapper();var x=w.getFormContainer(i.Target.value);var y={};if(x!==null&&x!==void 0&&x.fields){Object.keys(x===null||x===void 0?void 0:x.fields).forEach(function(z){y[z]={key:z,id:"CustomFormElement::"+z,type:l.Default,template:x.fields[z].template,label:x.fields[z].label,position:x.fields[z].position||{placement:P.After},formatOptions:j(j({},m()),x.fields[z].formatOptions)};});}return y;}_.getFormElementsFromManifest=q;function r(i,v,w){var x,y,z;var B=g([{Facet:i}]);var E="/"+i.fullyQualifiedName;var G=v.getEntityTypeAnnotation(i.Target.value);var H;if(G.converterContext.getEntitySet()&&G.converterContext.getEntitySet()!==v.getEntitySet()){H=c(G.converterContext.getDataModelObjectPath());}else if(((x=G.converterContext.getDataModelObjectPath().targetObject)===null||x===void 0?void 0:x.containsTarget)===true){H=b(G.converterContext.getDataModelObjectPath(),false);}var J=h(p(i,v),q(i,v),{formatOptions:"overwrite"});w=w!==undefined?w.filter(function(N){return N.facetName==i.fullyQualifiedName;}):[];if(w.length===0){w=undefined;}var L={id:F(B,"ShowHideDetails"),key:"StandardAction::ShowHideDetails",text:"{sap.fe.i18n>T_COMMON_OBJECT_PAGE_SHOW_FORM_CONTAINER_DETAILS}",type:A.ShowFormDetails,press:"FormContainerRuntime.toggleDetails"};if(((y=i.annotations)===null||y===void 0?void 0:(z=y.UI)===null||z===void 0?void 0:z.PartOfPreview)!==false&&J.some(function(N){return N.isPartOfPreview===false;})){if(w!==undefined){w.push(L);}else{w=[L];}}return{id:B,formElements:J,annotationPath:E,entitySet:H,actions:w};}_.getFormContainer=r;function s(i,v,w){var x;var y=[];(x=i.Facets)===null||x===void 0?void 0:x.forEach(function(z){if(z.$Type==="com.sap.vocabularies.UI.v1.CollectionFacet"){return;}y.push(r(z,v,w));});return y;}function t(i){return i.$Type==="com.sap.vocabularies.UI.v1.ReferenceFacet";}_.isReferenceFacet=t;function u(i,v,w){var x,y,z;switch(i.$Type){case"com.sap.vocabularies.UI.v1.CollectionFacet":var B={id:f({Facet:i}),useFormContainerLabels:true,hasFacetsNotPartOfPreview:i.Facets.some(function(G){var H,J,L;return((H=G.annotations)===null||H===void 0?void 0:(J=H.UI)===null||J===void 0?void 0:(L=J.PartOfPreview)===null||L===void 0?void 0:L.valueOf())===false;}),formContainers:s(i,v,w)};return B;case"com.sap.vocabularies.UI.v1.ReferenceFacet":var E={id:f({Facet:i}),useFormContainerLabels:false,hasFacetsNotPartOfPreview:((x=i.annotations)===null||x===void 0?void 0:(y=x.UI)===null||y===void 0?void 0:(z=y.PartOfPreview)===null||z===void 0?void 0:z.valueOf())===false,formContainers:[r(i,v,w)]};return E;default:throw new Error("Cannot create form based on ReferenceURLFacet");}}_.createFormDefinition=u;return _;},false);
|
|
@@ -6,15 +6,16 @@ import {
|
|
|
6
6
|
FacetTypes,
|
|
7
7
|
FieldGroup,
|
|
8
8
|
Identification,
|
|
9
|
+
PartOfPreview,
|
|
9
10
|
ReferenceFacetTypes,
|
|
10
11
|
UIAnnotationTerms,
|
|
11
12
|
UIAnnotationTypes
|
|
12
13
|
} from "@sap-ux/vocabularies-types";
|
|
13
14
|
import { BindingExpression } from "sap/fe/core/helpers/BindingExpression";
|
|
14
15
|
import { ConfigurableObject, CustomElement, insertCustomElements, Placement } from "../../helpers/ConfigurableObject";
|
|
15
|
-
import { FormID } from "../../helpers/ID";
|
|
16
|
+
import { FormID, FormStandardActionButtonID } from "../../helpers/ID";
|
|
16
17
|
import { KeyHelper } from "../../helpers/Key";
|
|
17
|
-
import {
|
|
18
|
+
import { ActionType, FormatOptionsType, FormManifestConfiguration } from "../../ManifestSettings";
|
|
18
19
|
import { getSemanticObjectPath } from "sap/fe/core/converters/annotations/DataField";
|
|
19
20
|
import { getTargetEntitySetPath, getTargetObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
20
21
|
import { generate } from "../../../helpers/StableIdHelper";
|
|
@@ -45,6 +46,7 @@ export type AnnotationFormElement = BaseFormElement & {
|
|
|
45
46
|
annotationPath?: string;
|
|
46
47
|
isValueMultilineText?: boolean;
|
|
47
48
|
semanticObjectPath?: string;
|
|
49
|
+
isPartOfPreview?: boolean;
|
|
48
50
|
};
|
|
49
51
|
|
|
50
52
|
export type CustomFormElement = CustomElement<
|
|
@@ -75,6 +77,13 @@ function getDefaultFormatOptionsForForm(): FormatOptionsType {
|
|
|
75
77
|
};
|
|
76
78
|
}
|
|
77
79
|
|
|
80
|
+
function isFieldPartOfPreview(field: DataFieldAbstractTypes, formPartOfPreview: PartOfPreview | undefined): boolean {
|
|
81
|
+
// Both each form and field can have the PartOfPreview annotation. Only if the form is not hidden (not partOfPreview) we allow toggling on field level
|
|
82
|
+
return (
|
|
83
|
+
formPartOfPreview === false || field.annotations?.UI?.PartOfPreview === undefined || field.annotations?.UI?.PartOfPreview === true
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
78
87
|
function getFormElementsFromAnnotations(facetDefinition: ReferenceFacetTypes, converterContext: ConverterContext): AnnotationFormElement[] {
|
|
79
88
|
const formElements: AnnotationFormElement[] = [];
|
|
80
89
|
const resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
|
|
@@ -83,7 +92,7 @@ function getFormElementsFromAnnotations(facetDefinition: ReferenceFacetTypes, co
|
|
|
83
92
|
| AnnotationTerm<FieldGroup>;
|
|
84
93
|
converterContext = resolvedTarget.converterContext;
|
|
85
94
|
|
|
86
|
-
function getDataFieldsFromAnnotations(field: DataFieldAbstractTypes) {
|
|
95
|
+
function getDataFieldsFromAnnotations(field: DataFieldAbstractTypes, formPartOfPreview: PartOfPreview | undefined) {
|
|
87
96
|
const semanticObjectAnnotationPath = getSemanticObjectPath(converterContext, field);
|
|
88
97
|
if (
|
|
89
98
|
field.$Type !== UIAnnotationTypes.DataFieldForAction &&
|
|
@@ -95,17 +104,22 @@ function getFormElementsFromAnnotations(facetDefinition: ReferenceFacetTypes, co
|
|
|
95
104
|
type: FormElementType.Annotation,
|
|
96
105
|
annotationPath: converterContext.getEntitySetBasedAnnotationPath(field.fullyQualifiedName) + "/",
|
|
97
106
|
semanticObjectPath: semanticObjectAnnotationPath,
|
|
98
|
-
formatOptions: getDefaultFormatOptionsForForm()
|
|
107
|
+
formatOptions: getDefaultFormatOptionsForForm(),
|
|
108
|
+
isPartOfPreview: isFieldPartOfPreview(field, formPartOfPreview)
|
|
99
109
|
});
|
|
100
110
|
}
|
|
101
111
|
}
|
|
102
112
|
|
|
103
113
|
switch (formAnnotation?.term) {
|
|
104
114
|
case UIAnnotationTerms.FieldGroup:
|
|
105
|
-
(formAnnotation as AnnotationTerm<FieldGroup>).Data.forEach(
|
|
115
|
+
(formAnnotation as AnnotationTerm<FieldGroup>).Data.forEach(field =>
|
|
116
|
+
getDataFieldsFromAnnotations(field, facetDefinition.annotations?.UI?.PartOfPreview)
|
|
117
|
+
);
|
|
106
118
|
break;
|
|
107
119
|
case UIAnnotationTerms.Identification:
|
|
108
|
-
(formAnnotation as AnnotationTerm<Identification>).forEach(
|
|
120
|
+
(formAnnotation as AnnotationTerm<Identification>).forEach(field =>
|
|
121
|
+
getDataFieldsFromAnnotations(field, facetDefinition.annotations?.UI?.PartOfPreview)
|
|
122
|
+
);
|
|
109
123
|
break;
|
|
110
124
|
case UIAnnotationTerms.DataPoint:
|
|
111
125
|
formElements.push({
|
|
@@ -163,6 +177,8 @@ export function getFormContainer(
|
|
|
163
177
|
actions: BaseAction[] | ConverterAction[] | undefined
|
|
164
178
|
): FormContainer {
|
|
165
179
|
//TODO form container id
|
|
180
|
+
const sFormContainerId = generate([{ Facet: facetDefinition }]);
|
|
181
|
+
const sAnnotationPath = "/" + facetDefinition.fullyQualifiedName;
|
|
166
182
|
const resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
|
|
167
183
|
let sEntitySetPath!: string;
|
|
168
184
|
// resolvedTarget doesn't have a entitySet in case Containments and Paramterized services.
|
|
@@ -174,18 +190,40 @@ export function getFormContainer(
|
|
|
174
190
|
} else if (resolvedTarget.converterContext.getDataModelObjectPath().targetObject?.containsTarget === true) {
|
|
175
191
|
sEntitySetPath = getTargetObjectPath(resolvedTarget.converterContext.getDataModelObjectPath(), false);
|
|
176
192
|
}
|
|
193
|
+
const aFormElements = insertCustomElements(
|
|
194
|
+
getFormElementsFromAnnotations(facetDefinition, converterContext),
|
|
195
|
+
getFormElementsFromManifest(facetDefinition, converterContext),
|
|
196
|
+
{ formatOptions: "overwrite" }
|
|
197
|
+
);
|
|
198
|
+
|
|
177
199
|
actions = actions !== undefined ? actions.filter(action => action.facetName == facetDefinition.fullyQualifiedName) : [];
|
|
178
200
|
if (actions.length === 0) {
|
|
179
201
|
actions = undefined;
|
|
180
202
|
}
|
|
203
|
+
|
|
204
|
+
const oActionShowDetails: BaseAction = {
|
|
205
|
+
id: FormStandardActionButtonID(sFormContainerId, "ShowHideDetails"),
|
|
206
|
+
key: "StandardAction::ShowHideDetails",
|
|
207
|
+
text: "{sap.fe.i18n>T_COMMON_OBJECT_PAGE_SHOW_FORM_CONTAINER_DETAILS}",
|
|
208
|
+
type: ActionType.ShowFormDetails,
|
|
209
|
+
press: "FormContainerRuntime.toggleDetails"
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
if (
|
|
213
|
+
facetDefinition.annotations?.UI?.PartOfPreview !== false &&
|
|
214
|
+
aFormElements.some(oFormElement => oFormElement.isPartOfPreview === false)
|
|
215
|
+
) {
|
|
216
|
+
if (actions !== undefined) {
|
|
217
|
+
actions.push(oActionShowDetails);
|
|
218
|
+
} else {
|
|
219
|
+
actions = [oActionShowDetails];
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
181
223
|
return {
|
|
182
|
-
id:
|
|
183
|
-
formElements:
|
|
184
|
-
|
|
185
|
-
getFormElementsFromManifest(facetDefinition, converterContext),
|
|
186
|
-
{ formatOptions: "overwrite" }
|
|
187
|
-
),
|
|
188
|
-
annotationPath: "/" + facetDefinition.fullyQualifiedName,
|
|
224
|
+
id: sFormContainerId,
|
|
225
|
+
formElements: aFormElements,
|
|
226
|
+
annotationPath: sAnnotationPath,
|
|
189
227
|
entitySet: sEntitySetPath,
|
|
190
228
|
actions: actions
|
|
191
229
|
};
|