@sap/open.fe 1.94.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/LICENSE.txt +23 -0
- package/README.md +10 -0
- package/package.json +21 -0
- package/packages/sap.fe.common/src/sap/fe/common/.library +36 -0
- package/packages/sap.fe.common/src/sap/fe/common/.theming +6 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton-dbg.js +1378 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessageButton.js +6 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessageFilter-dbg.js +36 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessageFilter.js +6 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessagePopover-dbg.js +56 -0
- package/packages/sap.fe.common/src/sap/fe/common/MessagePopover.js +6 -0
- package/packages/sap.fe.common/src/sap/fe/common/library-dbg.js +41 -0
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js +18 -0
- package/packages/sap.fe.common/src/sap/fe/common/library-h2-preload.js.map +9 -0
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js +68 -0
- package/packages/sap.fe.common/src/sap/fe/common/library-preload.js.map +9 -0
- package/packages/sap.fe.common/src/sap/fe/common/library.js +6 -0
- package/packages/sap.fe.common/src/sap/fe/common/manifest.json +40 -0
- package/packages/sap.fe.common/src/sap/fe/common/resources.json +186 -0
- package/packages/sap.fe.common/test/sap/fe/common/designtime/api.json +1 -0
- package/packages/sap.fe.common/test/sap/fe/common/designtime/apiref/api.json +1 -0
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jsmeta.json +1 -0
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.jstemplates.json +1 -0
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmlmeta.json +1 -0
- package/packages/sap.fe.common/test/sap/fe/common/designtime/codeassistance/Library.xmltemplates.json +1 -0
- package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.91.json +23 -0
- package/packages/sap.fe.common/test/sap/fe/common/relnotes/changes-1.94.json +23 -0
- package/packages/sap.fe.core/src/sap/fe/core/.library +60 -0
- package/packages/sap.fe.core/src/sap/fe/core/.supportrc +4 -0
- package/packages/sap.fe.core/src/sap/fe/core/.theming +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper-dbg.js +409 -0
- package/packages/sap.fe.core/src/sap/fe/core/AnnotationHelper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/AppComponent-dbg.js +433 -0
- package/packages/sap.fe.core/src/sap/fe/core/AppComponent.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler-dbg.js +184 -0
- package/packages/sap.fe.core/src/sap/fe/core/AppStateHandler.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/BaseController-dbg.js +65 -0
- package/packages/sap.fe.core/src/sap/fe/core/BaseController.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/BusyLocker-dbg.js +112 -0
- package/packages/sap.fe.core/src/sap/fe/core/BusyLocker.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils-dbg.js +2246 -0
- package/packages/sap.fe.core/src/sap/fe/core/CommonUtils.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI-dbg.js +269 -0
- package/packages/sap.fe.core/src/sap/fe/core/ExtensionAPI.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/PageController-dbg.js +120 -0
- package/packages/sap.fe.core/src/sap/fe/core/PageController.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy-dbg.js +822 -0
- package/packages/sap.fe.core/src/sap/fe/core/RouterProxy.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization-dbg.js +38 -0
- package/packages/sap.fe.core/src/sap/fe/core/Synchronization.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent-dbg.js +152 -0
- package/packages/sap.fe.core/src/sap/fe/core/TemplateComponent.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel-dbg.js +57 -0
- package/packages/sap.fe.core/src/sap/fe/core/TemplateModel.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper-dbg.js +1584 -0
- package/packages/sap.fe.core/src/sap/fe/core/TransactionHelper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft-dbg.js +584 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/draft.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling-dbg.js +439 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/messageHandling.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft-dbg.js +23 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/nonDraft.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations-dbg.js +1174 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/operations.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky-dbg.js +121 -0
- package/packages/sap.fe.core/src/sap/fe/core/actions/sticky.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata-dbg.js +75 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +1667 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/EditFlow.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +57 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow-dbg.js +501 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalEditFlow.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +707 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +989 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/InternalRouting.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement-dbg.js +417 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/KPIManagement.ts +399 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler-dbg.js +116 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/MessageHandler.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady-dbg.js +403 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/PageReady.ts +350 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator-dbg.js +135 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Paginator.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder-dbg.js +287 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Placeholder.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing-dbg.js +109 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Routing.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener-dbg.js +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/RoutingListener.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share-dbg.js +258 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/Share.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects-dbg.js +711 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/SideEffects.ts +692 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState-dbg.js +615 -0
- package/packages/sap.fe.core/src/sap/fe/core/controllerextensions/ViewState.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +76 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/ActionPartial.fragment.xml +91 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution-dbg.js +71 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/CommandExecution.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper-dbg.js +82 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/ConditionalWrapper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage-dbg.js +127 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/CustomQuickViewPage.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +12 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler-dbg.js +122 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper-dbg.js +150 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FieldWrapper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar-dbg.js +162 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FilterBar.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper-dbg.js +47 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/FormElementWrapper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +61 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +122 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/FilterContainer.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter-dbg.js +209 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilter.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer-dbg.js +148 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils-dbg.js +319 -0
- package/packages/sap.fe.core/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext-dbg.js +500 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ConverterContext.ts +460 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings-dbg.js +90 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestSettings.ts +431 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper-dbg.js +404 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/ManifestWrapper.ts +322 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter-dbg.js +1294 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/MetaModelConverter.ts +1172 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter-dbg.js +100 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/TemplateConverter.ts +126 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField-dbg.js +335 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/annotations/DataField.ts +306 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter-dbg.js +1692 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/common/AnnotationConverter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action-dbg.js +349 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Action.ts +353 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart-dbg.js +206 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Chart.ts +202 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Criticality-dbg.js +50 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Criticality.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Criticality.ts +33 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +276 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +296 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form-dbg.js +222 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Form.ts +241 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI-dbg.js +181 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/KPI.ts +220 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table-dbg.js +2100 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/Common/Table.ts +2446 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +499 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +545 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters-dbg.js +335 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +316 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet-dbg.js +495 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +502 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection-dbg.js +674 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +711 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation-dbg.js +204 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Aggregation.ts +176 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper-dbg.js +96 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/BindingHelper.ts +76 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject-dbg.js +217 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +211 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID-dbg.js +90 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/ID.ts +45 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager-dbg.js +61 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/IssueManager.ts +41 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key-dbg.js +86 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/Key.ts +49 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/SelectionVariantHelper-dbg.js +93 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +92 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/FormMenuActions-dbg.js +164 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/FormMenuActions.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +160 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction-dbg.js +427 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +414 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter-dbg.js +552 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ListReportConverter.ts +601 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter-dbg.js +320 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +314 -0
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent-dbg.designtime.js +93 -0
- package/packages/sap.fe.core/src/sap/fe/core/designtime/AppComponent.designtime.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js +8 -0
- package/packages/sap.fe.core/src/sap/fe/core/designtime/library-preload.designtime.js.map +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter-dbg.js +77 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/CriticalityFormatter.ts +58 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter-dbg.js +51 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/FPMFormatter.ts +41 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter-dbg.js +103 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/KPIFormatter.ts +88 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter-dbg.js +100 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatter.ts +80 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatterTypes-dbg.js +23 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatterTypes.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/TableFormatterTypes.ts +7 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter-dbg.js +162 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/formatters/ValueFormatter.ts +130 -0
- package/packages/sap.fe.core/src/sap/fe/core/fpm/Component-dbg.js +58 -0
- package/packages/sap.fe.core/src/sap/fe/core/fpm/Component.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/fpm/manifest.json +64 -0
- package/packages/sap.fe.core/src/sap/fe/core/fpm/resources.json +18 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AnnotationEnum-dbg.js +49 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AnnotationEnum.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/AnnotationEnum.ts +18 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression-dbg.js +1667 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/BindingExpression.ts +1765 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport-dbg.js +314 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ClassSupport.ts +232 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper-dbg.js +62 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState-dbg.js +92 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/EditState.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper-dbg.js +53 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ExcelFormatHelper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper-dbg.js +64 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/FPMHelper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper-dbg.js +150 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/ModelHelper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper-dbg.js +130 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/PasteHelper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators-dbg.js +327 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticDateOperators.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper-dbg.js +78 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/SemanticKeyHelper.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper-dbg.js +267 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.js +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/helpers/StableIdHelper.ts +228 -0
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx-dbg.js +75 -0
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsx.ts +83 -0
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsxs-dbg.js +10 -0
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsxs.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/jsx-runtime/jsxs.ts +3 -0
- package/packages/sap.fe.core/src/sap/fe/core/library-dbg.js +429 -0
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js +123 -0
- package/packages/sap.fe.core/src/sap/fe/core/library-h2-preload.js.map +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js +1201 -0
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.js.map +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js +148 -0
- package/packages/sap.fe.core/src/sap/fe/core/library-preload.support.js.map +9 -0
- package/packages/sap.fe.core/src/sap/fe/core/library.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/library.support.js +32 -0
- package/packages/sap.fe.core/src/sap/fe/core/manifest.json +121 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle.properties +417 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ar.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_bg.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ca.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cs.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_cy.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_da.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_de.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_el.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_GB.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_sappsd.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saprigi.properties +275 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_en_US_saptrc.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_es_MX.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_et.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fi.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_fr_CA.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hi.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hr.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_hu.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_id.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_it.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_iw.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ja.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_kk.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ko.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lt.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_lv.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ms.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_nl.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_no.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pl.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_pt_PT.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ro.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_ru.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sh.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sk.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sl.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_sv.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_th.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_tr.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_uk.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_vi.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_CN.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/messagebundle_zh_TW.properties +273 -0
- package/packages/sap.fe.core/src/sap/fe/core/resources.json +4087 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory-dbg.js +106 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +58 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory-dbg.js +205 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/CacheHandlerServiceFactory.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory-dbg.js +128 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/EnvironmentServiceFactory.ts +71 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +303 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/NavigationServiceFactory.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory-dbg.js +84 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/ResourceModelServiceFactory.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory-dbg.js +1099 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/RoutingServiceFactory.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory-dbg.js +819 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/ShellServicesFactory.ts +720 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory-dbg.js +731 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/SideEffectsServiceFactory.ts +668 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory-dbg.js +471 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/TemplatedViewServiceFactory.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage-dbg.controller.js +12 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +6 -0
- package/packages/sap.fe.core/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +8 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.js +38 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/AnnotationIssue.support.ts +20 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetMissingID.support.js +38 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetMissingID.support.ts +18 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +38 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +18 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper-dbg.js +71 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/CommonHelper.ts +67 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics-dbg.js +73 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/support/Diagnostics.ts +66 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/CriticalityFormatters-dbg.js +156 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/CriticalityFormatters.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/CriticalityFormatters.ts +226 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataFieldFormatters-dbg.js +77 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataFieldFormatters.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataFieldFormatters.ts +54 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +444 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/DataModelPathHelper.ts +428 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper-dbg.js +33 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/EntitySetHelper.ts +13 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper-dbg.js +89 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/FieldControlHelper.ts +53 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper-dbg.js +331 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterHelper.ts +310 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterTemplating-dbg.js +66 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterTemplating.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/FilterTemplating.ts +39 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyFormatters-dbg.js +126 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyFormatters.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyFormatters.ts +86 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper-dbg.js +303 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/PropertyHelper.ts +209 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters-dbg.js +525 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/templating/UIFormatters.ts +489 -0
- package/packages/sap.fe.core/src/sap/fe/core/type/Email-dbg.js +20 -0
- package/packages/sap.fe.core/src/sap/fe/core/type/Email.js +5 -0
- package/packages/sap.fe.core/src/sap/fe/core/type/Email.ts +18 -0
- package/packages/sap.fe.core/test/sap/fe/core/designtime/api.json +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/designtime/apiref/api.json +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jsmeta.json +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.jstemplates.json +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmlmeta.json +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/designtime/codeassistance/Library.xmltemplates.json +1 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/Component.js +56 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/App.controller.js +252 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/BaseController.js +46 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/ControllerExtensions.controller.js +380 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/CustomElements.controller.js +380 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/MacrosPage.controller.js +382 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/Overview.controller.js +99 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controller/Topic.controller.js +71 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/controls/FileEditor.js +401 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/FileEditor.css +8 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/codesample.css +172 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/markdown-styles.css +3 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/style.css +48 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/css/topic.css +176 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/index.html +62 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/manifest.json +132 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/ControllerExtensionNavigationModel.js +174 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/CustomElementNavigationModel.js +327 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/ExploreSettingsModel.js +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/MacroNavigationModel.js +709 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/model/OverviewNavigationModel.js +15 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/scripts/boot.js +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/service-worker.js +100 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/.gitignore.tmpl +0 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/.npmrc.tmpl +0 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/README.md +43 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/package.json +31 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/ui5-local.yaml +25 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/ui5.yaml +25 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/Component.js +9 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/i18n/i18n.properties +9 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/index.html +28 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/template/webapp/manifest.json +165 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/Component.js +31 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/localService/Incidents.json +56 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/localService/service.cds +32 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/manifest.json +109 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/myViewTest.controller.js +6 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FCL/FclNavigationButtons/myViewTest.view.xml +30 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/FclNavigationButtons.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.html +24 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/buildingBlockOverview.md +23 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/ChartDefault.view.xml +21 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/RootEntity.json +252 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/localService/service.cds +122 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartDefault/manifest.json +69 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/ChartQualifier.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/ChartQualifier.view.xml +20 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/RootEntity.json +252 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/localService/service.cds +122 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartQualifier/manifest.json +69 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/ChartSelectionMode.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/ChartSelectionMode.view.xml +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/RootEntity.json +277 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/localService/service.cds +122 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chart/chartSelectionMode/manifest.json +69 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartDefault.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartQualifier.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/chartSelectionMode.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/Component.js +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/FieldDisplay.view.xml +64 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/ChildEntity.json +14 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/FieldDisplay.cds +94 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/RootEntity.json +23 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/localService/ValueHelpEntity.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldDisplay/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/FieldEdit.controller.js +10 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/FieldEdit.view.xml +101 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/ChildEntity.json +14 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/FieldControlValueHelpEntity.json +14 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/FieldEdit.cds +77 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/RootEntity.json +14 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/localService/localAnnotations.xml +38 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEdit/manifest.json +75 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/FieldEvents.controller.js +23 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/FieldEvents.view.xml +20 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/localService/Entities.json +6 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/localService/service.cds +6 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldEvents/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.controller.js +10 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/FieldFormatOptions.view.xml +132 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Currencies.json +29 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Currencies_texts.json +38 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/FieldFormatOptions.cds +58 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Languages.json +17 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/Languages_texts.json +38 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/RootEntity.json +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/localService/UnitOfMeasure.json +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldFormatOptions/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/FieldNavProp.controller.js +10 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/FieldNavProp.view.xml +114 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/FieldNavProp.cds +161 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/NavProp1.json +25 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/NavProp2.json +7 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/RootEntity.json +14 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/localService/ValueHelpEntity.json +14 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/field/fieldNavProp/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldDisplay.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldEdit.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldEvents.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldFormatOptions.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/fieldNavProp.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.controller.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/FilterBarDefault.view.xml +58 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/RootEntity.json +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/ValueHelpEntity.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/localService/service.cds +96 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBar/filterBarDefault/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/filterBarDefault.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/FormElementCustomField.view.xml +49 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/localService/FormElementCustomField.cds +19 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/localService/RootEntity.json +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementCustomField/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/Component.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/FormElementLabel.view.xml +32 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/localService/FormElementLabel.cds +19 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/localService/RootEntity.json +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElement/formElementLabel/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElementCustomField.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/formElementLabel.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/i18n/i18n.properties +19 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartDefault.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartDynamicSize.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartHideOnNoData.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microChartShowOnlyChart.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/MicroChartDefault.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/MicroChartDefault.view.xml +83 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/RootEntity.json +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/localService/service.cds +308 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDefault/manifest.json +69 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/MicroChartDynamicSize.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/MicroChartDynamicSize.view.xml +93 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/RootEntity.json +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/localService/service.cds +308 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartDynamicSize/manifest.json +69 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/MicroChartHideOnNoData.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/MicroChartHideOnNoData.view.xml +91 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/RootEntity.json +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/localService/service.cds +308 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartHideOnNoData/manifest.json +69 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/MicroChartShowOnlyChart.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/MicroChartShowOnlyChart.view.xml +93 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/ChildEntity.json +686 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/CreditLimitDetails.json +154 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/RootEntity.json +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/localService/service.cds +308 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/microchart/microChartShowOnlyChart/manifest.json +69 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/PaginatorDefault.controller.js +27 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/PaginatorDefault.view.xml +45 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/localService/RootEntity.json +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/localService/ValueHelpEntity.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/localService/service.cds +90 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginator/paginatorDefault/manifest.json +79 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/paginatorDefault.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/Component.js +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/Share.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/Share.view.xml +23 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/localService/RootEntity.json +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/localService/Share.cds +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/share/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/shareDefault.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Component.js +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.controller.js +32 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/Page.view.xml +32 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/RootEntity.json +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/localService/service.cds +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableCustoms/manifest.json +78 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/TableDefault.controller.js +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/TableDefault.view.xml +10 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/localService/RootEntity.json +102 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/localService/ValueHelpEntity.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/localService/service.cds +90 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableDefault/manifest.json +79 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.controller.js +19 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/TableEdit.view.xml +31 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/RootEntity.json +78 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/ValueHelpCurrencyEntity.json +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/ValueHelpEntity.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/localService/service.cds +119 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/table/tableEdit/manifest.json +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableCustoms.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableDefault.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/buildingBlocks/tableEdit.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/OPExtend.controller.js +41 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/RootEntity.json +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/localService/service.cds +52 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility/manifest.json +76 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/basicExtensibility.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/controllerExtensionsOverview.html +24 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/controllerExtensionsOverview.md +18 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/IntentBasedNavigation.controller.js +21 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/IntentBasedNavigation.view.xml +23 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/localService/RootEntity.json +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/localService/service.cds +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation/manifest.json +76 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/intentBasedNavigation.html +70 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/extendLR.controller.js +63 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/extendOP.controller.js +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/localService/RootEntity.json +18 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/localService/service.cds +64 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility/manifest.json +103 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/routingExtensibility.html +70 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/Share.controller.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/Share.view.xml +21 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/ShareExtend.js +15 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/localService/RootEntity.json +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/localService/service.cds +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/share/manifest.json +68 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/shareExtensibility.html +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/CustomSection.fragment.xml +15 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/OPExtend.controller.js +57 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/localService/RootEntity.json +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/localService/service.cds +40 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState/manifest.json +86 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/controllerExtensions/viewState.html +70 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/CustomAction.js +41 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/extendOP.controller.js +9 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/localService/ChildEntity.json +22 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/localService/RootEntity.json +10 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/localService/service.cds +73 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customAction/customActionContent/manifest.json +133 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customActionContent.html +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumn.js +25 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnAdaptation.fragment.xml +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/CustomColumnButton.fragment.xml +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/ChildEntity.json +26 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/RootEntity.json +9 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/localService/service.cds +55 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumn/customColumnContent/manifest.json +98 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customColumnContent.html +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customElementsOverview.html +24 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customElementsOverview.md +21 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/CustomFilter.js +28 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/CustomRatingFilter.fragment.xml +8 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/CustomRatingFilterOperator.fragment.xml +17 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/localService/RootEntity.json +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/localService/service.cds +75 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilter/customFilterContent/manifest.json +87 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customFilterContent.html +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetColumnChart.fragment.xml +19 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetDataPoint.fragment.xml +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/CustomHeaderFacetMicroChartAndFormElement.fragment.xml +42 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/RootEntity.json +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/localService/service.cds +54 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacet/customHeaderFacetContent/manifest.json +127 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customHeaderFacetContent.html +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomDetailPage.controller.js +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomDetailPage.view.xml +64 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomPage.controller.js +10 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/CustomPage.view.xml +39 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/ChildEntity.json +23 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/RootEntity.json +41 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/ValueHelpCurrencyEntity.json +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/ValueHelpEntity.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/resources/275081.jpg +0 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/resources/275472.jpg +0 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/localService/service.cds +144 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPage/customPageContent/manifest.json +119 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customPageContent.html +70 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/Component.js +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSection.fragment.xml +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionFormElementAndTable.fragment.xml +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionNavigation.fragment.xml +44 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/CustomSectionNavigation.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/extendOP.controller.js +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/ChildEntity.json +82 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/RootEntity.json +9 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/ValueHelpCurrencyEntity.json +5 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/ValueHelpEntity.js +11 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/localService/service.cds +177 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSection/customSectionContent/manifest.json +129 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customSectionContent.html +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/Component.js +35 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/CustomButton.js +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/CustomViewWithButton.fragment.xml +12 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/CustomViewWithTable.fragment.xml +46 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/LRExtend.controller.js +31 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/localService/RootEntity.json +37 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/localService/service.cds +70 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLR/customViewInLRContent/manifest.json +100 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/customViewInLRContent.html +36 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/customElements/i18n/i18n.properties +61 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/overview/introduction.html +24 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/topics/overview/introduction.md +6 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/util/FileUtils.js +124 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/App.view.xml +60 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/ControllerExtensions.view.xml +97 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/CustomElements.view.xml +97 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/MacrosPage.view.xml +97 -0
- package/packages/sap.fe.core/test/sap/fe/core/fpmExplorer/view/Overview.view.xml +13 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.js +140 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression-AnnotationExpression.spec.ts +142 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.js +504 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/BindingExpression.spec.ts +751 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.js +74 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/TemplateConverter.spec.ts +75 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/BindingExpression-AnnotationExpression.spec.ts.snap +7 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/__snapshots__/TemplateConverter.spec.ts.snap +17450 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.js +582 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/KPIManagement.spec.ts +515 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.js +636 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/controllerextensions/SideEffects.spec.ts +547 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.js +60 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ConverterContext.spec.ts +57 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.js +436 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/HeaderFacet.spec.ts +469 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPITag.spec.js +346 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/KPITag.spec.ts +357 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.js +255 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ListReportConverter.spec.ts +254 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.js +67 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/MetaModelConverter.spec.ts +43 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.js +577 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/ObjectPageConverter.spec.ts +593 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.js +1206 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/Table.spec.ts +1361 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/converters/__snapshots__/Table.spec.ts.snap +21 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/AnalyticalService.cds +16 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/BindingExpression-AnnotationExpression.xml +248 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/ConverterContext.cds +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/HeaderFacets.cds +199 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/KPI.cds +320 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/KPINone.cds +78 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/ListReportConverter.cds +164 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/MetaModelConverter.cds +43 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/MetaModelConverterBoundAction.cds +31 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/ObjectPageConverter.cds +161 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/PropertyHelper.cds +14 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/SideEffects.cds +285 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/Table.cds +98 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableGetSelectionMode.cds +242 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionNoOperationAvailable.cds +22 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionOperationAvailableFalse.cds +25 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/TableNewActionOperationAvailableTrue.cds +24 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/data/salesOrderMetadata.xml +4824 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.js +54 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/formatters/ValueFormatters.spec.ts +70 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.js +607 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/services/SideEffectsService.spec.ts +540 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.js +62 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/templating/PropertyHelper.spec.ts +45 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/type/Email.spec.js +34 -0
- package/packages/sap.fe.core/test/sap/fe/core/jest/type/Email.spec.ts +21 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/TemplatingExpressions.qunit.js +1328 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.js +18 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/generalTests.json +233 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/apps/index.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/common/testHelper.js +81 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/common/utility.js +28 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/ExcelFormatHelper.qunit.js +19 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/SemanticDateOperators.qunit.js +253 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/SemanticKeyHelper.qunit.js +211 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/helpers/StableIdHelper.qunit.js +301 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/services/CacheHandlerTest.qunit.js +924 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/test/iteloMetadata.js +2752 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/test/musicDraftMetadata.js +2301 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/test/simpleMetadata.js +1186 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/test/techServiceMetadata.js +3993 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/testsuite.qunit.html +14 -0
- package/packages/sap.fe.core/test/sap/fe/core/qunit/testsuite.qunit.js +33 -0
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.91.json +96 -0
- package/packages/sap.fe.core/test/sap/fe/core/relnotes/changes-1.94.json +40 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/.library +54 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/.theming +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.fragment.xml +171 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata-dbg.js +200 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Chart.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate-dbg.js +530 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ChartDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper-dbg.js +1256 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/CommonHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Contact-dbg.designtime.js +93 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Contact.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Contact.fragment.xml +38 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Contact.metadata-dbg.js +91 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Contact.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ContactHelper-dbg.js +96 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ContactHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil-dbg.js +286 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/DelegateUtil.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.fragment.xml +37 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.metadata-dbg.js +91 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicator.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicatorRuntime-dbg.js +138 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/DraftIndicatorRuntime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.fragment.xml +37 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata-dbg.js +144 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Field.metadata.ts +136 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI-dbg.js +234 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldAPI.ts +177 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate-dbg.js +55 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FieldValueHelpDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar-dbg.designtime.js +83 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.fragment.xml +109 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata-dbg.js +243 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBar.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI-dbg.js +130 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarAPI.ts +62 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate-dbg.js +568 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper-dbg.js +48 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterBarHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterField-dbg.designtime.js +339 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.fragment.xml +57 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.metadata-dbg.js +130 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FilterField.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.fragment.xml +24 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.metadata-dbg.js +68 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FlexibleColumnLayoutActions.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Form-dbg.designtime.js +188 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.fragment.xml +94 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata-dbg.js +209 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Form.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer-dbg.designtime.js +42 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.fragment.xml +196 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata-dbg.js +132 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormContainer.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.fragment.xml +25 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.metadata-dbg.js +123 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.metadata.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormElement.metadata.ts +113 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/FormWrapper.fragment.xml +26 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.fragment.xml +33 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.metadata-dbg.js +103 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.metadata.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/KPITag.metadata.ts +106 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI-dbg.js +197 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroAPI.ts +120 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata-dbg.js +92 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroMetadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroRuntime-dbg.js +33 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroRuntime.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroRuntime.ts +12 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroTemplating-dbg.js +22 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroTemplating.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MacroTemplating.ts +9 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart-dbg.designtime.js +361 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.fragment.xml +36 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.metadata-dbg.js +149 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/MicroChart.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ODataMetaModelUtil-dbg.js +600 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ODataMetaModelUtil.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Paginator.fragment.xml +32 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Paginator.metadata-dbg.js +61 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Paginator.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil-dbg.js +615 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/PhantomUtil.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm-dbg.designtime.js +215 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.fragment.xml +66 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata-dbg.js +84 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/QuickViewForm.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ResourceModel-dbg.js +56 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ResourceModel.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Share.fragment.xml +21 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata-dbg.js +90 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Share.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper-dbg.js +41 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/SizeHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.fragment.xml +236 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata-dbg.js +489 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/Table.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI-dbg.js +469 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/TableAPI.ts +487 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/TraceInfo-dbg.js +462 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/TraceInfo.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ValueHelp.metadata-dbg.js +135 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/ValueHelp.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/VisualFilter.fragment.xml +87 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/VisualFilter.metadata-dbg.js +217 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/VisualFilter.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper-dbg.js +468 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartRuntime-dbg.js +118 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartRuntime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils-dbg.js +221 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/chart/ChartUtils.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/designtime/library-preload.designtime.js +17 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/designtime/library-preload.designtime.js.map +9 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/DraftPopOverAdminData.fragment.xml +53 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper-dbg.js +1670 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime-dbg.js +400 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldRuntime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating-dbg.js +538 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/FieldTemplating.ts +541 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkContactContent.fragment.xml +95 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate-dbg.js +1136 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForContact.fragment.xml +26 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForDataField.fragment.xml +95 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkForEntity.fragment.xml +76 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/field/QuickViewLinkWithFacets.fragment.xml +40 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/CustomFilter.fragment.xml +38 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState-dbg.js +179 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.fragment.xml +36 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/DraftEditState.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper-dbg.js +149 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldTemplating-dbg.js +23 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldTemplating.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterFieldTemplating.ts +11 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils-dbg.js +363 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/FilterUtils.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue-dbg.js +53 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/MultiValue.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range-dbg.js +38 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Range.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value-dbg.js +219 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/filter/type/Value.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/flexibility/FormDelegate-dbg.js +152 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/flexibility/FormDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/flexibility/ValueHelpWrapper.fragment.xml +3 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/form/AddressSection.fragment.xml +35 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/form/DataFieldCollection.fragment.xml +44 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/form/FormElement.fragment.xml +42 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper-dbg.js +118 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/form/FormHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFormElement.fragment.xml +10 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFragment.fragment.xml +13 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFragment.metadata-dbg.js +73 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomFragment.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomHeaderFieldElement.fragment.xml +17 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomSection.fragment.xml +13 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomSection.metadata-dbg.js +82 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/CustomSection.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/fpm-dbg.js +15 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/fpm/fpm.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.fragment.xml +33 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata-dbg.js +167 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/CollectionField.metadata.ts +179 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.fragment.xml +123 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata-dbg.js +162 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/DataPoint.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field-dbg.designtime.js +811 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.fragment.xml +20 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata-dbg.js +534 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/Field.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate-dbg.js +76 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/ConnectedDataField.fragment.xml +39 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldContent.fragment.xml +94 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/FieldStructure.fragment.xml +55 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/AmountWithCurrency.fragment.xml +41 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Avatar.fragment.xml +57 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Button.fragment.xml +56 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Contact.fragment.xml +38 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/DataPoint.fragment.xml +45 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ExpandableText.fragment.xml +18 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/File.fragment.xml +31 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LabelSemanticKey.fragment.xml +65 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Link.fragment.xml +30 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWithQuickViewForm.fragment.xml +45 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/LinkWrapper.fragment.xml +56 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectIdentifier.fragment.xml +37 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/ObjectStatus.fragment.xml +16 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/SemanticKeyWithDraftIndicator.fragment.xml +35 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/displayStyle/Text.fragment.xml +33 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/CheckBox.fragment.xml +28 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DatePicker.fragment.xml +32 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/DateTimePicker.fragment.xml +33 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/File.fragment.xml +55 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/Input.fragment.xml +33 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithUnit.fragment.xml +77 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/InputWithValueHelp.fragment.xml +73 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/RatingIndicator.fragment.xml +23 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TextArea.fragment.xml +34 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/field/editStyle/TimePicker.fragment.xml +33 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/form/FormTemplating-dbg.js +65 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/form/FormTemplating.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/form/FormTemplating.ts +40 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating-dbg.js +244 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +229 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate-dbg.js +215 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp-dbg.designtime.js +466 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelp.fragment.xml +23 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpContent.fragment.xml +62 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating-dbg.js +155 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.js +5 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueHelpTemplating.ts +133 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +57 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListFilterBar.fragment.xml +20 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper-dbg.js +1286 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListTable.fragment.xml +67 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/internal/valuehelp/ValueListTableColumnHeader.fragment.xml +25 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/library-dbg.js +144 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js +190 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/library-h2-preload.js.map +9 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js +696 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/library-preload.js.map +9 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/library.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary-dbg.js +126 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/macroLibrary.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/manifest.json +115 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditDialog.fragment.xml +106 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler-dbg.js +708 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditHandler.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime-dbg.js +115 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/massedit/MassEditRuntime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle.properties +215 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ar.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_bg.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ca.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cs.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_cy.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_da.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_de.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_el.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_GB.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_sappsd.properties +129 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +129 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_en_US_saptrc.properties +129 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_es_MX.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_et.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fi.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_fr_CA.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hi.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hr.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_hu.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_id.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_it.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_iw.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ja.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_kk.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ko.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lt.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_lv.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ms.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_nl.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_no.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pl.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_pt_PT.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ro.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_ru.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sh.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sk.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sl.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_sv.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_th.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_tr.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_uk.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_vi.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_CN.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/messagebundle_zh_TW.properties +140 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartContainer-dbg.js +620 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartContainer.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper-dbg.js +491 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/MicroChartHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/AreaMicroChart.fragment.xml +180 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/BulletMicroChart.fragment.xml +111 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/ColumnMicroChart.fragment.xml +99 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/ComparisonMicroChart.fragment.xml +64 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/HarveyBallMicroChart.fragment.xml +64 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/LineMicroChart.fragment.xml +67 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartContent.fragment.xml +41 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/MicroChartTitle.fragment.xml +52 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/RadialMicroChart.fragment.xml +58 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/microchart/fragments/StackedBarMicroChart.fragment.xml +54 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/resources.json +4885 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/share/ShareSheet.fragment.xml +26 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Actions.fragment.xml +215 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/BasicSearch-dbg.js +73 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/BasicSearch.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Column.fragment.xml +27 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnContent.fragment.xml +133 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ColumnProperty.fragment.xml +43 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Columns.fragment.xml +37 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/CreationRow.fragment.xml +33 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/CustomColumn.fragment.xml +16 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer-dbg.js +298 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/QuickFilterContainer.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableFullScreenUtil-dbg.js +194 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableFullScreenUtil.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper-dbg.js +1399 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime-dbg.js +231 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/TableRuntime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils-dbg.js +468 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/Utils.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/ValueHelp.fragment.xml +34 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegate-dbg.js +32 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin-dbg.js +100 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalALPTableDelegate-dbg.js +36 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalALPTableDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalTableDelegate-dbg.js +147 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/AnalyticalTableDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate-dbg.js +818 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/table/delegates/TableDelegate.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar-dbg.designtime.js +83 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.designtime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.fragment.xml +115 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata-dbg.js +204 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper-dbg.js +476 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime-dbg.js +286 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/fragments/InteractiveBarChart.fragment.xml +70 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +69 -0
- package/packages/sap.fe.macros/src/sap/fe/macros/visualfilters/fragments/InteractiveLineChart.fragment.xml +70 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/api.json +1001 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/apiref/api.json +1 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jsmeta.json +1 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.jstemplates.json +1 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmlmeta.json +1 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/designtime/codeassistance/Library.xmltemplates.json +1 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.js +64 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/CollectionField.spec.ts +67 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.js +326 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/DatapointMacro.spec.ts +349 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.js +127 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroDataFieldTypes.spec.ts +127 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.js +184 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithSemanticKey.spec.ts +263 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithValueHelp.spec.js +63 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FieldMacroWithValueHelp.spec.ts +72 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.js +32 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/FilterField.spec.ts +28 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.js +39 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MacroComponent.spec.ts +26 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.js +53 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/MicroChart.spec.ts +54 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.js +142 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/PhantomUtil.spec.ts +178 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.js +401 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/QuickViewForm.spec.ts +662 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.js +571 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/SimpleFieldMacro.spec.ts +778 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.js +712 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/TableAPI.spec.ts +800 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.js +192 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/ValueHelpMacro.spec.ts +194 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/FilterField.spec.ts.snap +37 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/MacroComponent.spec.ts.snap +7 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/PhantomUtil.spec.ts.snap +184 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/QuickViewForm.spec.ts.snap +820 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/__snapshots__/ValueHelpMacro.spec.ts.snap +279 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/addTemplatingTest.md +51 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/AdminDataPopOver.cds +8 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/CollectionField.cds +48 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroDataFieldTypes.cds +295 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroWithSemanticKey.cds +62 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FieldMacroWithValueHelp.cds +131 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/FilterFieldMacro.cds +124 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/MicroChart.cds +47 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/PhantomUtil.cds +20 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/QuickViewForm.cds +248 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/Table.cds +113 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/ValueHelpMacro.cds +163 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/data/simpleFieldMacro.cds +129 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.cds +115 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.js +180 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/FieldTemplating.spec.ts +215 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/field/__snapshots__/FieldTemplating.spec.ts.snap +160 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestFragment.xml +15 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/fragments/MyTestFragmentRepeat.xml +27 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/TestTSX.spec.tsx +49 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/jest/tsx/__snapshots__/TestTSX.spec.tsx.snap +33 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/common/testHelper.js +24 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/index.json +154 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/AnalyticalTableDelegate.qunit.js +158 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ChartDelegate.qunit.js +275 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ChartHelper.qunit.js +601 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ChartHelperTemplate.qunit.js +67 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/CommonHelper.qunit.js +1607 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelper.qunit.js +2478 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FieldHelperTemplate.qunit.js +383 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterBarDelegate.qunit.js +89 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterBarHelper.qunit.js +223 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FilterFieldHelper.qunit.js +712 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormContainerTemplating.qunit.js +245 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormElementTemplating.qunit.js +83 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormHelper.qunit.js +209 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplating.qunit.js +577 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/FormTemplatingTs.qunit.js +271 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/InteractiveChartHelper.qunit.js +1227 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MacroMetadata.qunit.js +123 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartContainer.qunit.js +1637 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartHelper.qunit.js +619 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/MicroChartHelperForTemplate.qunit.js +360 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/PhantomUtil.qunit.js +307 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/QuickViewLinkDelegate.qunit.js +81 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableDelegate.qunit.js +734 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelper.qunit.js +2630 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableHelperTemplate.qunit.js +201 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/TableRuntime.qunit.js +861 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueHelpTemplating.qunit.js +176 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/ValueListHelper.qunit.js +1133 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/chartMetadata/metadata.xml +461 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/flexibility/FormDelegate.qunit.js +408 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacro.fragment.xml +9 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/FilterFieldMacroMissingID.fragment.xml +9 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/fragments/TableMacro.fragment.xml +22 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/macros/metadata/simpleMetadata.js +1415 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/teststarter.qunit.html +13 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/testsuite.qunit.html +14 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/qunit/testsuite.qunit.js +41 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.91.json +76 -0
- package/packages/sap.fe.macros/test/sap/fe/macros/relnotes/changes-1.94.json +29 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.library +36 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/.theming +6 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/NavError-dbg.js +49 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/NavError.js +6 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler-dbg.js +2215 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/NavigationHandler.js +6 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/PresentationVariant-dbg.js +347 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/PresentationVariant.js +6 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/SelectionVariant-dbg.js +774 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/SelectionVariant.js +6 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-dbg.js +170 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js +19 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-h2-preload.js.map +9 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js +129 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library-preload.js.map +9 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/library.js +6 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/manifest.json +44 -0
- package/packages/sap.fe.navigation/src/sap/fe/navigation/resources.json +215 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/api.json +1 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/apiref/api.json +1 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.jsmeta.json +1 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.jstemplates.json +1 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmlmeta.json +1 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/designtime/codeassistance/Library.xmltemplates.json +1 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/index.json +17 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/CrossAppNavigationServiceMock.js +110 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/NavigationHandlerTest.qunit.js +8625 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/PresentationVariantTest.qunit.js +179 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/navigation/SelectionVariantTest.qunit.js +1366 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/teststarter.qunit.html +13 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/testsuite.qunit.html +14 -0
- package/packages/sap.fe.navigation/test/sap/fe/navigation/qunit/testsuite.qunit.js +41 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.library +35 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/.theming +5 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/controller/Placeholder-dbg.controller.js +60 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/controller/Placeholder.controller.js +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-dbg.js +41 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js +20 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-h2-preload.js.map +9 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js +21 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library-preload.js.map +9 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/library.js +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/manifest.json +49 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/resources.json +725 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/.theming +5 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/Placeholder.less +504 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.less +4 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/css_variables.source.less +1439 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library-RTL.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library-parameters.json +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library.less +511 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library.source.less +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library_skeleton-RTL.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/library_skeleton.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/base/resources.json +70 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/.theming +27 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.css +4 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.less +1497 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/css_variables.source.less +1487 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library-RTL.css +4 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library-parameters.json +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library.css +4 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library.less +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library.source.less +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library_skeleton-RTL.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/library_skeleton.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize/resources.json +64 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/.theming +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.less +1463 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/css_variables.source.less +1453 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library-RTL.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library-parameters.json +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library.less +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library.source.less +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library_skeleton-RTL.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/library_skeleton.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcb/resources.json +64 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/.theming +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.less +1463 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/css_variables.source.less +1453 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library-RTL.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library-parameters.json +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library.less +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library.source.less +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library_skeleton-RTL.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/library_skeleton.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_hcw/resources.json +64 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/.theming +26 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.css +4 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.less +1497 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/css_variables.source.less +1487 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library-RTL.css +4 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library-parameters.json +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library.css +4 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library.less +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library.source.less +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library_skeleton-RTL.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/library_skeleton.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_belize_plus/resources.json +64 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/.theming +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.less +1468 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/css_variables.source.less +1458 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library-RTL.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library-parameters.json +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library.less +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library.source.less +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library_skeleton-RTL.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/library_skeleton.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3/resources.json +64 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/.theming +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.less +1468 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/css_variables.source.less +1458 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library-RTL.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library-parameters.json +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library.less +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library.source.less +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library_skeleton-RTL.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/library_skeleton.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_dark/resources.json +64 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/.theming +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.less +1464 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/css_variables.source.less +1454 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library-RTL.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library-parameters.json +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library.less +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library.source.less +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library_skeleton-RTL.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/library_skeleton.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcb/resources.json +64 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/.theming +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.less +1464 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/css_variables.source.less +1454 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library-RTL.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library-parameters.json +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library.css +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library.less +6 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library.source.less +3 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library_skeleton-RTL.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/library_skeleton.css +1 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/themes/sap_fiori_3_hcw/resources.json +64 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.fragment.html +10 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderALP.view.xml +11 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderLR.fragment.html +8 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderLR.view.xml +11 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOP.fragment.html +8 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOP.view.xml +11 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.fragment.html +8 -0
- package/packages/sap.fe.placeholder/src/sap/fe/placeholder/view/PlaceholderOVP.view.xml +11 -0
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/api.json +1 -0
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/apiref/api.json +1 -0
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.jsmeta.json +1 -0
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.jstemplates.json +1 -0
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.xmlmeta.json +1 -0
- package/packages/sap.fe.placeholder/test/sap/fe/placeholder/designtime/codeassistance/Library.xmltemplates.json +1 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/.library +74 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/.theming +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/Component-dbg.js +15 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/Component.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate-dbg.js +37 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/manifest.json +27 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/AnalyticalListPage/resources.json +27 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent-dbg.js +121 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListComponent.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component-dbg.js +42 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/Component.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +95 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ExtensionAPI.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReport.view.xml +199 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +954 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/ListReportController.controller.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/manifest.json +28 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation-dbg.js +52 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share-dbg.js +124 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/Share.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +264 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/overrides/ViewState.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/resources.json +79 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/CollectionVisualization.fragment.xml +32 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/CustomView.fragment.xml +10 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.xml +49 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper-dbg.js +457 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/AnnotationHelper.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component-dbg.js +139 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/Component.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +130 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +184 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +1460 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +90 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableHBox.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableVBox-dbg.js +27 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/StashableVBox.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock-dbg.js +57 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox-dbg.designtime.js +19 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/FlexBox.designtime.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableHBox-dbg.designtime.js +51 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableVBox-dbg.designtime.js +38 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility-dbg.js +19 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableHBox.flexibility.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility-dbg.js +15 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/flexibility/StashableVBox.flexibility.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/manifest.json +122 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation-dbg.js +55 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/InternalRouting-dbg.js +20 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/MessageHandler-dbg.js +20 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Routing-dbg.js +21 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Routing.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share-dbg.js +303 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/Share.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState-dbg.js +45 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/resources.json +282 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating-dbg.js +117 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.js +5 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/templating/ObjectPageTemplating.ts +124 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +183 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +160 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +117 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FormActionButtons.fragment.xml +79 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/FormActions.fragment.xml +24 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderContent.fragment.xml +54 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPoint.fragment.xml +26 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderDataPointTitle.fragment.xml +69 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +90 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacetCustomContainer.fragment.xml +41 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/HeaderImage.fragment.xml +24 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +20 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +72 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/RelatedApps.fragment.xml +22 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +71 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +175 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionCustomSection.fragment.xml +18 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +18 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +18 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SectionPresentationVisualization.fragment.xml +17 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/SideContentCustomContainer.fragment.xml +19 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/ObjectPage/view/fragments/TitleAndSubtitle.fragment.xml +24 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl-dbg.controller.js +816 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer-dbg.controller.js +176 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController-dbg.js +441 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/overrides/EditFlow-dbg.js +18 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/Fcl.view.xml +15 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/NavContainer.view.xml +9 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/PlaceholderLR.view.xml +617 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/RootContainer/view/PlaceholderOP.view.xml +588 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/Chart.fragment.xml +20 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover-dbg.js +26 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/OverflowToolbarButtonHover.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/Paginator-dbg.js +174 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/Paginator.control.xml +24 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/Paginator.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/controls/Table.fragment.xml +23 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js +10 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/designtime/library-preload.designtime.js.map +9 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/library-dbg.js +72 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js +77 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/library-h2-preload.js.map +9 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js +154 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/library-preload.js.map +9 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/library.js +6 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/manifest.json +136 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle.properties +210 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ar.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_bg.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ca.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cs.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_cy.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_da.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_de.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_el.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_GB.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_es_MX.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_et.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fi.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_fr_CA.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hi.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hr.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_hu.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_id.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_it.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_iw.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ja.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_kk.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ko.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lt.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_lv.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ms.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_nl.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_no.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pl.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_pt_PT.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ro.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_ru.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sh.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sk.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sl.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_sv.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_th.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_tr.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_uk.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_vi.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_CN.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/messagebundle_zh_TW.properties +135 -0
- package/packages/sap.fe.templates/src/sap/fe/templates/resources.json +2103 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/Component.js +9 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/WEB-INF/web.xml +120 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/annotations/annotations.xml +43 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/i18n/i18n.properties +13 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/manifest.json +176 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/test/manifestCreateDialogWithFCL.json +87 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/test/testFLP.html +71 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/apps/itelo/webapp/test/testFLPService.html +82 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/flpSandbox.html +24 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/flpSandbox.js +225 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/mockServer.js +780 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/demokit/mockServerHelper.js +195 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/api.json +1 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/apiref/api.json +1 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jsmeta.json +1 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.jstemplates.json +1 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmlmeta.json +1 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/designtime/codeassistance/Library.xmltemplates.json +1 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/qunit/common/testHelper.js +80 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/qunit/common/utility.js +28 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/qunit/testsuite.qunit.html +14 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/qunit/testsuite.qunit.js +33 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.91.json +134 -0
- package/packages/sap.fe.templates/test/sap/fe/templates/relnotes/changes-1.94.json +34 -0
- package/packages/sap.fe.test/src/sap/fe/test/.library +30 -0
- package/packages/sap.fe.test/src/sap/fe/test/.theming +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/BaseActions-dbg.js +107 -0
- package/packages/sap.fe.test/src/sap/fe/test/BaseActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/BaseArrangements-dbg.js +199 -0
- package/packages/sap.fe.test/src/sap/fe/test/BaseArrangements.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/BaseAssertions-dbg.js +56 -0
- package/packages/sap.fe.test/src/sap/fe/test/BaseAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/ConfirmDialog-dbg.js +72 -0
- package/packages/sap.fe.test/src/sap/fe/test/ConfirmDialog.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/FCLView-dbg.js +86 -0
- package/packages/sap.fe.test/src/sap/fe/test/FCLView.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/Flexibility-dbg.js +743 -0
- package/packages/sap.fe.test/src/sap/fe/test/Flexibility.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/FlexibleColumnLayout-dbg.js +149 -0
- package/packages/sap.fe.test/src/sap/fe/test/FlexibleColumnLayout.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper-dbg.js +284 -0
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.js +5 -0
- package/packages/sap.fe.test/src/sap/fe/test/JestTemplatingHelper.ts +242 -0
- package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner-dbg.js +314 -0
- package/packages/sap.fe.test/src/sap/fe/test/JourneyRunner.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/ListReport-dbg.js +525 -0
- package/packages/sap.fe.test/src/sap/fe/test/ListReport.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/LocationUtil-dbg.js +54 -0
- package/packages/sap.fe.test/src/sap/fe/test/LocationUtil.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage-dbg.js +857 -0
- package/packages/sap.fe.test/src/sap/fe/test/ObjectPage.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/Shell-dbg.js +226 -0
- package/packages/sap.fe.test/src/sap/fe/test/Shell.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/Stubs-dbg.js +97 -0
- package/packages/sap.fe.test/src/sap/fe/test/Stubs.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/TemplatePage-dbg.js +447 -0
- package/packages/sap.fe.test/src/sap/fe/test/TemplatePage.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils-dbg.js +243 -0
- package/packages/sap.fe.test/src/sap/fe/test/TemplatingTestUtils.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/Utils-dbg.js +301 -0
- package/packages/sap.fe.test/src/sap/fe/test/Utils.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/APIHelper-dbg.js +117 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/APIHelper.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI-dbg.js +285 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/BaseAPI.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/ChartActions-dbg.js +131 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/ChartActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions-dbg.js +114 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/ChartAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI-dbg.js +93 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAPI.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions-dbg.js +101 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions-dbg.js +123 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions-dbg.js +44 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions-dbg.js +55 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogCreateAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions-dbg.js +59 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions-dbg.js +87 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogMessageAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogType-dbg.js +76 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogType.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions-dbg.js +317 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions-dbg.js +263 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/DialogValueHelpAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/EditState-dbg.js +67 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/EditState.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI-dbg.js +197 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAPI.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions-dbg.js +310 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAssertions-dbg.js +413 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FilterBarAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterAPI-dbg.js +37 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterAPI.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsBase-dbg.js +47 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsBase.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsOP-dbg.js +83 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterActionsOP.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsBase-dbg.js +66 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsBase.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsOP-dbg.js +98 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FooterAssertionsOP.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAPI-dbg.js +82 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAPI.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FormActions-dbg.js +180 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FormActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions-dbg.js +182 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/FormAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAPI-dbg.js +152 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAPI.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActions-dbg.js +232 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActionsLR-dbg.js +94 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderActionsLR.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertions-dbg.js +495 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertionsLR-dbg.js +110 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderAssertionsLR.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderLR-dbg.js +74 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/HeaderLR.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/TableAPI-dbg.js +452 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/TableAPI.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/TableActions-dbg.js +958 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/TableActions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions-dbg.js +697 -0
- package/packages/sap.fe.test/src/sap/fe/test/api/TableAssertions.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/DialogBuilder-dbg.js +118 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/DialogBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/FEBuilder-dbg.js +428 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/FEBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder-dbg.js +56 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/KPIBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MacroFieldBuilder-dbg.js +174 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MacroFieldBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFieldBuilder-dbg.js +254 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFieldBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterBarBuilder-dbg.js +112 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterBarBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterFieldBuilder-dbg.js +54 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcFilterFieldBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder-dbg.js +1069 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/MdcTableBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/OverflowToolbarBuilder-dbg.js +89 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/OverflowToolbarBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/VMBuilder-dbg.js +268 -0
- package/packages/sap.fe.test/src/sap/fe/test/builder/VMBuilder.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/internal/FEArrangements-dbg.js +66 -0
- package/packages/sap.fe.test/src/sap/fe/test/internal/FEArrangements.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner-dbg.js +55 -0
- package/packages/sap.fe.test/src/sap/fe/test/internal/FEJourneyRunner.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/library-dbg.js +37 -0
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js +78 -0
- package/packages/sap.fe.test/src/sap/fe/test/library-h2-preload.js.map +9 -0
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js +587 -0
- package/packages/sap.fe.test/src/sap/fe/test/library-preload.js.map +9 -0
- package/packages/sap.fe.test/src/sap/fe/test/library.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/manifest.json +39 -0
- package/packages/sap.fe.test/src/sap/fe/test/massEdit-dbg.js +99 -0
- package/packages/sap.fe.test/src/sap/fe/test/massEdit.js +6 -0
- package/packages/sap.fe.test/src/sap/fe/test/resources.json +1972 -0
- package/packages/sap.fe.test/test/sap/fe/test/designtime/api.json +1 -0
- package/packages/sap.fe.test/test/sap/fe/test/designtime/apiref/api.json +1 -0
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jsmeta.json +1 -0
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.jstemplates.json +1 -0
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmlmeta.json +1 -0
- package/packages/sap.fe.test/test/sap/fe/test/designtime/codeassistance/Library.xmltemplates.json +1 -0
- package/packages/sap.fe.test/test/sap/fe/test/mockserver/MockServer.js +134870 -0
- package/src/LICENSE.txt +23 -0
- package/ui5.yaml +66 -0
|
@@ -0,0 +1,1294 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/converters/common/AnnotationConverter"], function (AnnotationConverter) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _exports = {};
|
|
9
|
+
|
|
10
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function () {}; return { s: F, n: function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (e) { throw e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function () { it = it.call(o); }, n: function () { var step = it.next(); normalCompletion = step.done; return step; }, e: function (e) { didErr = true; err = e; }, f: function () { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
11
|
+
|
|
12
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
|
|
14
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
15
|
+
|
|
16
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
+
|
|
18
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
19
|
+
|
|
20
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
21
|
+
|
|
22
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
23
|
+
|
|
24
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
|
+
|
|
26
|
+
var VOCABULARY_ALIAS = {
|
|
27
|
+
"Org.OData.Capabilities.V1": "Capabilities",
|
|
28
|
+
"Org.OData.Core.V1": "Core",
|
|
29
|
+
"Org.OData.Measures.V1": "Measures",
|
|
30
|
+
"com.sap.vocabularies.Common.v1": "Common",
|
|
31
|
+
"com.sap.vocabularies.UI.v1": "UI",
|
|
32
|
+
"com.sap.vocabularies.Session.v1": "Session",
|
|
33
|
+
"com.sap.vocabularies.Analytics.v1": "Analytics",
|
|
34
|
+
"com.sap.vocabularies.PersonalData.v1": "PersonalData",
|
|
35
|
+
"com.sap.vocabularies.Communication.v1": "Communication"
|
|
36
|
+
};
|
|
37
|
+
var DefaultEnvironmentCapabilities = {
|
|
38
|
+
Chart: true,
|
|
39
|
+
MicroChart: true,
|
|
40
|
+
UShell: true,
|
|
41
|
+
IntentBasedNavigation: true
|
|
42
|
+
};
|
|
43
|
+
_exports.DefaultEnvironmentCapabilities = DefaultEnvironmentCapabilities;
|
|
44
|
+
var MetaModelConverter = {
|
|
45
|
+
parsePropertyValue: function (annotationObject, propertyKey, currentTarget, annotationsLists, oCapabilities) {
|
|
46
|
+
var _this = this;
|
|
47
|
+
|
|
48
|
+
var value;
|
|
49
|
+
var currentPropertyTarget = currentTarget + "/" + propertyKey;
|
|
50
|
+
|
|
51
|
+
if (annotationObject === null) {
|
|
52
|
+
value = {
|
|
53
|
+
type: "Null",
|
|
54
|
+
Null: null
|
|
55
|
+
};
|
|
56
|
+
} else if (typeof annotationObject === "string") {
|
|
57
|
+
value = {
|
|
58
|
+
type: "String",
|
|
59
|
+
String: annotationObject
|
|
60
|
+
};
|
|
61
|
+
} else if (typeof annotationObject === "boolean") {
|
|
62
|
+
value = {
|
|
63
|
+
type: "Bool",
|
|
64
|
+
Bool: annotationObject
|
|
65
|
+
};
|
|
66
|
+
} else if (typeof annotationObject === "number") {
|
|
67
|
+
value = {
|
|
68
|
+
type: "Int",
|
|
69
|
+
Int: annotationObject
|
|
70
|
+
};
|
|
71
|
+
} else if (Array.isArray(annotationObject)) {
|
|
72
|
+
value = {
|
|
73
|
+
type: "Collection",
|
|
74
|
+
Collection: annotationObject.map(function (subAnnotationObject, subAnnotationObjectIndex) {
|
|
75
|
+
return _this.parseAnnotationObject(subAnnotationObject, currentPropertyTarget + "/" + subAnnotationObjectIndex, annotationsLists, oCapabilities);
|
|
76
|
+
})
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
if (annotationObject.length > 0) {
|
|
80
|
+
if (annotationObject[0].hasOwnProperty("$PropertyPath")) {
|
|
81
|
+
value.Collection.type = "PropertyPath";
|
|
82
|
+
} else if (annotationObject[0].hasOwnProperty("$Path")) {
|
|
83
|
+
value.Collection.type = "Path";
|
|
84
|
+
} else if (annotationObject[0].hasOwnProperty("$NavigationPropertyPath")) {
|
|
85
|
+
value.Collection.type = "NavigationPropertyPath";
|
|
86
|
+
} else if (annotationObject[0].hasOwnProperty("$AnnotationPath")) {
|
|
87
|
+
value.Collection.type = "AnnotationPath";
|
|
88
|
+
} else if (annotationObject[0].hasOwnProperty("$Type")) {
|
|
89
|
+
value.Collection.type = "Record";
|
|
90
|
+
} else if (annotationObject[0].hasOwnProperty("$If")) {
|
|
91
|
+
value.Collection.type = "If";
|
|
92
|
+
} else if (annotationObject[0].hasOwnProperty("$Or")) {
|
|
93
|
+
value.Collection.type = "Or";
|
|
94
|
+
} else if (annotationObject[0].hasOwnProperty("$And")) {
|
|
95
|
+
value.Collection.type = "And";
|
|
96
|
+
} else if (annotationObject[0].hasOwnProperty("$Eq")) {
|
|
97
|
+
value.Collection.type = "Eq";
|
|
98
|
+
} else if (annotationObject[0].hasOwnProperty("$Ne")) {
|
|
99
|
+
value.Collection.type = "Ne";
|
|
100
|
+
} else if (annotationObject[0].hasOwnProperty("$Not")) {
|
|
101
|
+
value.Collection.type = "Not";
|
|
102
|
+
} else if (annotationObject[0].hasOwnProperty("$Gt")) {
|
|
103
|
+
value.Collection.type = "Gt";
|
|
104
|
+
} else if (annotationObject[0].hasOwnProperty("$Ge")) {
|
|
105
|
+
value.Collection.type = "Ge";
|
|
106
|
+
} else if (annotationObject[0].hasOwnProperty("$Lt")) {
|
|
107
|
+
value.Collection.type = "Lt";
|
|
108
|
+
} else if (annotationObject[0].hasOwnProperty("$Le")) {
|
|
109
|
+
value.Collection.type = "Le";
|
|
110
|
+
} else if (annotationObject[0].hasOwnProperty("$Apply")) {
|
|
111
|
+
value.Collection.type = "Apply";
|
|
112
|
+
} else if (typeof annotationObject[0] === "object") {
|
|
113
|
+
// $Type is optional...
|
|
114
|
+
value.Collection.type = "Record";
|
|
115
|
+
} else {
|
|
116
|
+
value.Collection.type = "String";
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
} else if (annotationObject.$Path !== undefined) {
|
|
120
|
+
value = {
|
|
121
|
+
type: "Path",
|
|
122
|
+
Path: annotationObject.$Path
|
|
123
|
+
};
|
|
124
|
+
} else if (annotationObject.$Decimal !== undefined) {
|
|
125
|
+
value = {
|
|
126
|
+
type: "Decimal",
|
|
127
|
+
Decimal: parseFloat(annotationObject.$Decimal)
|
|
128
|
+
};
|
|
129
|
+
} else if (annotationObject.$PropertyPath !== undefined) {
|
|
130
|
+
value = {
|
|
131
|
+
type: "PropertyPath",
|
|
132
|
+
PropertyPath: annotationObject.$PropertyPath
|
|
133
|
+
};
|
|
134
|
+
} else if (annotationObject.$NavigationPropertyPath !== undefined) {
|
|
135
|
+
value = {
|
|
136
|
+
type: "NavigationPropertyPath",
|
|
137
|
+
NavigationPropertyPath: annotationObject.$NavigationPropertyPath
|
|
138
|
+
};
|
|
139
|
+
} else if (annotationObject.$If !== undefined) {
|
|
140
|
+
value = {
|
|
141
|
+
type: "If",
|
|
142
|
+
If: annotationObject.$If
|
|
143
|
+
};
|
|
144
|
+
} else if (annotationObject.$And !== undefined) {
|
|
145
|
+
value = {
|
|
146
|
+
type: "And",
|
|
147
|
+
And: annotationObject.$And
|
|
148
|
+
};
|
|
149
|
+
} else if (annotationObject.$Or !== undefined) {
|
|
150
|
+
value = {
|
|
151
|
+
type: "Or",
|
|
152
|
+
Or: annotationObject.$Or
|
|
153
|
+
};
|
|
154
|
+
} else if (annotationObject.$Not !== undefined) {
|
|
155
|
+
value = {
|
|
156
|
+
type: "Not",
|
|
157
|
+
Not: annotationObject.$Not
|
|
158
|
+
};
|
|
159
|
+
} else if (annotationObject.$Eq !== undefined) {
|
|
160
|
+
value = {
|
|
161
|
+
type: "Eq",
|
|
162
|
+
Eq: annotationObject.$Eq
|
|
163
|
+
};
|
|
164
|
+
} else if (annotationObject.$Ne !== undefined) {
|
|
165
|
+
value = {
|
|
166
|
+
type: "Ne",
|
|
167
|
+
Ne: annotationObject.$Ne
|
|
168
|
+
};
|
|
169
|
+
} else if (annotationObject.$Gt !== undefined) {
|
|
170
|
+
value = {
|
|
171
|
+
type: "Gt",
|
|
172
|
+
Gt: annotationObject.$Gt
|
|
173
|
+
};
|
|
174
|
+
} else if (annotationObject.$Ge !== undefined) {
|
|
175
|
+
value = {
|
|
176
|
+
type: "Ge",
|
|
177
|
+
Ge: annotationObject.$Ge
|
|
178
|
+
};
|
|
179
|
+
} else if (annotationObject.$Lt !== undefined) {
|
|
180
|
+
value = {
|
|
181
|
+
type: "Lt",
|
|
182
|
+
Lt: annotationObject.$Lt
|
|
183
|
+
};
|
|
184
|
+
} else if (annotationObject.$Le !== undefined) {
|
|
185
|
+
value = {
|
|
186
|
+
type: "Le",
|
|
187
|
+
Le: annotationObject.$Le
|
|
188
|
+
};
|
|
189
|
+
} else if (annotationObject.$Apply !== undefined) {
|
|
190
|
+
value = {
|
|
191
|
+
type: "Apply",
|
|
192
|
+
Apply: annotationObject.$Apply,
|
|
193
|
+
Function: annotationObject.$Function
|
|
194
|
+
};
|
|
195
|
+
} else if (annotationObject.$AnnotationPath !== undefined) {
|
|
196
|
+
value = {
|
|
197
|
+
type: "AnnotationPath",
|
|
198
|
+
AnnotationPath: annotationObject.$AnnotationPath
|
|
199
|
+
};
|
|
200
|
+
} else if (annotationObject.$EnumMember !== undefined) {
|
|
201
|
+
value = {
|
|
202
|
+
type: "EnumMember",
|
|
203
|
+
EnumMember: this.mapNameToAlias(annotationObject.$EnumMember.split("/")[0]) + "/" + annotationObject.$EnumMember.split("/")[1]
|
|
204
|
+
};
|
|
205
|
+
} else if (annotationObject.$Type) {
|
|
206
|
+
value = {
|
|
207
|
+
type: "Record",
|
|
208
|
+
Record: this.parseAnnotationObject(annotationObject, currentTarget, annotationsLists, oCapabilities)
|
|
209
|
+
};
|
|
210
|
+
} else {
|
|
211
|
+
value = {
|
|
212
|
+
type: "Record",
|
|
213
|
+
Record: this.parseAnnotationObject(annotationObject, currentTarget, annotationsLists, oCapabilities)
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return {
|
|
218
|
+
name: propertyKey,
|
|
219
|
+
value: value
|
|
220
|
+
};
|
|
221
|
+
},
|
|
222
|
+
mapNameToAlias: function (annotationName) {
|
|
223
|
+
var _annotationName$split = annotationName.split("@"),
|
|
224
|
+
_annotationName$split2 = _slicedToArray(_annotationName$split, 2),
|
|
225
|
+
pathPart = _annotationName$split2[0],
|
|
226
|
+
annoPart = _annotationName$split2[1];
|
|
227
|
+
|
|
228
|
+
if (!annoPart) {
|
|
229
|
+
annoPart = pathPart;
|
|
230
|
+
pathPart = "";
|
|
231
|
+
} else {
|
|
232
|
+
pathPart += "@";
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
var lastDot = annoPart.lastIndexOf(".");
|
|
236
|
+
return pathPart + VOCABULARY_ALIAS[annoPart.substr(0, lastDot)] + "." + annoPart.substr(lastDot + 1);
|
|
237
|
+
},
|
|
238
|
+
parseAnnotationObject: function (annotationObject, currentObjectTarget, annotationsLists, oCapabilities) {
|
|
239
|
+
var _this2 = this;
|
|
240
|
+
|
|
241
|
+
var parsedAnnotationObject = {};
|
|
242
|
+
|
|
243
|
+
if (annotationObject === null) {
|
|
244
|
+
parsedAnnotationObject = {
|
|
245
|
+
type: "Null",
|
|
246
|
+
Null: null
|
|
247
|
+
};
|
|
248
|
+
} else if (typeof annotationObject === "string") {
|
|
249
|
+
parsedAnnotationObject = {
|
|
250
|
+
type: "String",
|
|
251
|
+
String: annotationObject
|
|
252
|
+
};
|
|
253
|
+
} else if (typeof annotationObject === "boolean") {
|
|
254
|
+
parsedAnnotationObject = {
|
|
255
|
+
type: "Bool",
|
|
256
|
+
Bool: annotationObject
|
|
257
|
+
};
|
|
258
|
+
} else if (typeof annotationObject === "number") {
|
|
259
|
+
parsedAnnotationObject = {
|
|
260
|
+
type: "Int",
|
|
261
|
+
Int: annotationObject
|
|
262
|
+
};
|
|
263
|
+
} else if (annotationObject.$AnnotationPath !== undefined) {
|
|
264
|
+
parsedAnnotationObject = {
|
|
265
|
+
type: "AnnotationPath",
|
|
266
|
+
AnnotationPath: annotationObject.$AnnotationPath
|
|
267
|
+
};
|
|
268
|
+
} else if (annotationObject.$Path !== undefined) {
|
|
269
|
+
parsedAnnotationObject = {
|
|
270
|
+
type: "Path",
|
|
271
|
+
Path: annotationObject.$Path
|
|
272
|
+
};
|
|
273
|
+
} else if (annotationObject.$Decimal !== undefined) {
|
|
274
|
+
parsedAnnotationObject = {
|
|
275
|
+
type: "Decimal",
|
|
276
|
+
Decimal: parseFloat(annotationObject.$Decimal)
|
|
277
|
+
};
|
|
278
|
+
} else if (annotationObject.$PropertyPath !== undefined) {
|
|
279
|
+
parsedAnnotationObject = {
|
|
280
|
+
type: "PropertyPath",
|
|
281
|
+
PropertyPath: annotationObject.$PropertyPath
|
|
282
|
+
};
|
|
283
|
+
} else if (annotationObject.$If !== undefined) {
|
|
284
|
+
parsedAnnotationObject = {
|
|
285
|
+
type: "If",
|
|
286
|
+
If: annotationObject.$If
|
|
287
|
+
};
|
|
288
|
+
} else if (annotationObject.$And !== undefined) {
|
|
289
|
+
parsedAnnotationObject = {
|
|
290
|
+
type: "And",
|
|
291
|
+
And: annotationObject.$And
|
|
292
|
+
};
|
|
293
|
+
} else if (annotationObject.$Or !== undefined) {
|
|
294
|
+
parsedAnnotationObject = {
|
|
295
|
+
type: "Or",
|
|
296
|
+
Or: annotationObject.$Or
|
|
297
|
+
};
|
|
298
|
+
} else if (annotationObject.$Not !== undefined) {
|
|
299
|
+
parsedAnnotationObject = {
|
|
300
|
+
type: "Not",
|
|
301
|
+
Not: annotationObject.$Not
|
|
302
|
+
};
|
|
303
|
+
} else if (annotationObject.$Eq !== undefined) {
|
|
304
|
+
parsedAnnotationObject = {
|
|
305
|
+
type: "Eq",
|
|
306
|
+
Eq: annotationObject.$Eq
|
|
307
|
+
};
|
|
308
|
+
} else if (annotationObject.$Ne !== undefined) {
|
|
309
|
+
parsedAnnotationObject = {
|
|
310
|
+
type: "Ne",
|
|
311
|
+
Ne: annotationObject.$Ne
|
|
312
|
+
};
|
|
313
|
+
} else if (annotationObject.$Gt !== undefined) {
|
|
314
|
+
parsedAnnotationObject = {
|
|
315
|
+
type: "Gt",
|
|
316
|
+
Gt: annotationObject.$Gt
|
|
317
|
+
};
|
|
318
|
+
} else if (annotationObject.$Ge !== undefined) {
|
|
319
|
+
parsedAnnotationObject = {
|
|
320
|
+
type: "Ge",
|
|
321
|
+
Ge: annotationObject.$Ge
|
|
322
|
+
};
|
|
323
|
+
} else if (annotationObject.$Lt !== undefined) {
|
|
324
|
+
parsedAnnotationObject = {
|
|
325
|
+
type: "Lt",
|
|
326
|
+
Lt: annotationObject.$Lt
|
|
327
|
+
};
|
|
328
|
+
} else if (annotationObject.$Le !== undefined) {
|
|
329
|
+
parsedAnnotationObject = {
|
|
330
|
+
type: "Le",
|
|
331
|
+
Le: annotationObject.$Le
|
|
332
|
+
};
|
|
333
|
+
} else if (annotationObject.$Apply !== undefined) {
|
|
334
|
+
parsedAnnotationObject = {
|
|
335
|
+
type: "Apply",
|
|
336
|
+
Apply: annotationObject.$Apply,
|
|
337
|
+
Function: annotationObject.$Function
|
|
338
|
+
};
|
|
339
|
+
} else if (annotationObject.$NavigationPropertyPath !== undefined) {
|
|
340
|
+
parsedAnnotationObject = {
|
|
341
|
+
type: "NavigationPropertyPath",
|
|
342
|
+
NavigationPropertyPath: annotationObject.$NavigationPropertyPath
|
|
343
|
+
};
|
|
344
|
+
} else if (annotationObject.$EnumMember !== undefined) {
|
|
345
|
+
parsedAnnotationObject = {
|
|
346
|
+
type: "EnumMember",
|
|
347
|
+
EnumMember: this.mapNameToAlias(annotationObject.$EnumMember.split("/")[0]) + "/" + annotationObject.$EnumMember.split("/")[1]
|
|
348
|
+
};
|
|
349
|
+
} else if (Array.isArray(annotationObject)) {
|
|
350
|
+
var parsedAnnotationCollection = parsedAnnotationObject;
|
|
351
|
+
parsedAnnotationCollection.collection = annotationObject.map(function (subAnnotationObject, subAnnotationIndex) {
|
|
352
|
+
return _this2.parseAnnotationObject(subAnnotationObject, currentObjectTarget + "/" + subAnnotationIndex, annotationsLists, oCapabilities);
|
|
353
|
+
});
|
|
354
|
+
|
|
355
|
+
if (annotationObject.length > 0) {
|
|
356
|
+
if (annotationObject[0].hasOwnProperty("$PropertyPath")) {
|
|
357
|
+
parsedAnnotationCollection.collection.type = "PropertyPath";
|
|
358
|
+
} else if (annotationObject[0].hasOwnProperty("$Path")) {
|
|
359
|
+
parsedAnnotationCollection.collection.type = "Path";
|
|
360
|
+
} else if (annotationObject[0].hasOwnProperty("$NavigationPropertyPath")) {
|
|
361
|
+
parsedAnnotationCollection.collection.type = "NavigationPropertyPath";
|
|
362
|
+
} else if (annotationObject[0].hasOwnProperty("$AnnotationPath")) {
|
|
363
|
+
parsedAnnotationCollection.collection.type = "AnnotationPath";
|
|
364
|
+
} else if (annotationObject[0].hasOwnProperty("$Type")) {
|
|
365
|
+
parsedAnnotationCollection.collection.type = "Record";
|
|
366
|
+
} else if (annotationObject[0].hasOwnProperty("$If")) {
|
|
367
|
+
parsedAnnotationCollection.collection.type = "If";
|
|
368
|
+
} else if (annotationObject[0].hasOwnProperty("$And")) {
|
|
369
|
+
parsedAnnotationCollection.collection.type = "And";
|
|
370
|
+
} else if (annotationObject[0].hasOwnProperty("$Or")) {
|
|
371
|
+
parsedAnnotationCollection.collection.type = "Or";
|
|
372
|
+
} else if (annotationObject[0].hasOwnProperty("$Eq")) {
|
|
373
|
+
parsedAnnotationCollection.collection.type = "Eq";
|
|
374
|
+
} else if (annotationObject[0].hasOwnProperty("$Ne")) {
|
|
375
|
+
parsedAnnotationCollection.collection.type = "Ne";
|
|
376
|
+
} else if (annotationObject[0].hasOwnProperty("$Not")) {
|
|
377
|
+
parsedAnnotationCollection.collection.type = "Not";
|
|
378
|
+
} else if (annotationObject[0].hasOwnProperty("$Gt")) {
|
|
379
|
+
parsedAnnotationCollection.collection.type = "Gt";
|
|
380
|
+
} else if (annotationObject[0].hasOwnProperty("$Ge")) {
|
|
381
|
+
parsedAnnotationCollection.collection.type = "Ge";
|
|
382
|
+
} else if (annotationObject[0].hasOwnProperty("$Lt")) {
|
|
383
|
+
parsedAnnotationCollection.collection.type = "Lt";
|
|
384
|
+
} else if (annotationObject[0].hasOwnProperty("$Le")) {
|
|
385
|
+
parsedAnnotationCollection.collection.type = "Le";
|
|
386
|
+
} else if (annotationObject[0].hasOwnProperty("$Apply")) {
|
|
387
|
+
parsedAnnotationCollection.collection.type = "Apply";
|
|
388
|
+
} else if (typeof annotationObject[0] === "object") {
|
|
389
|
+
parsedAnnotationCollection.collection.type = "Record";
|
|
390
|
+
} else {
|
|
391
|
+
parsedAnnotationCollection.collection.type = "String";
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
} else {
|
|
395
|
+
if (annotationObject.$Type) {
|
|
396
|
+
var typeValue = annotationObject.$Type;
|
|
397
|
+
parsedAnnotationObject.type = typeValue; //`${typeAlias}.${typeTerm}`;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
var propertyValues = [];
|
|
401
|
+
Object.keys(annotationObject).forEach(function (propertyKey) {
|
|
402
|
+
if (propertyKey !== "$Type" && propertyKey !== "$If" && propertyKey !== "$Apply" && propertyKey !== "$And" && propertyKey !== "$Or" && propertyKey !== "$Ne" && propertyKey !== "$Gt" && propertyKey !== "$Ge" && propertyKey !== "$Lt" && propertyKey !== "$Le" && propertyKey !== "$Not" && propertyKey !== "$Eq" && !propertyKey.startsWith("@")) {
|
|
403
|
+
propertyValues.push(_this2.parsePropertyValue(annotationObject[propertyKey], propertyKey, currentObjectTarget, annotationsLists, oCapabilities));
|
|
404
|
+
} else if (propertyKey.startsWith("@")) {
|
|
405
|
+
// Annotation of annotation
|
|
406
|
+
_this2.createAnnotationLists(_defineProperty({}, propertyKey, annotationObject[propertyKey]), currentObjectTarget, annotationsLists, oCapabilities);
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
parsedAnnotationObject.propertyValues = propertyValues;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
return parsedAnnotationObject;
|
|
413
|
+
},
|
|
414
|
+
getOrCreateAnnotationList: function (target, annotationsLists) {
|
|
415
|
+
var potentialTarget = annotationsLists.find(function (annotationList) {
|
|
416
|
+
return annotationList.target === target;
|
|
417
|
+
});
|
|
418
|
+
|
|
419
|
+
if (!potentialTarget) {
|
|
420
|
+
potentialTarget = {
|
|
421
|
+
target: target,
|
|
422
|
+
annotations: []
|
|
423
|
+
};
|
|
424
|
+
annotationsLists.push(potentialTarget);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
return potentialTarget;
|
|
428
|
+
},
|
|
429
|
+
createAnnotationLists: function (annotationObjects, annotationTarget, annotationLists, oCapabilities) {
|
|
430
|
+
var _this3 = this;
|
|
431
|
+
|
|
432
|
+
var outAnnotationObject = this.getOrCreateAnnotationList(annotationTarget, annotationLists);
|
|
433
|
+
|
|
434
|
+
if (!oCapabilities.MicroChart) {
|
|
435
|
+
delete annotationObjects["@com.sap.vocabularies.UI.v1.Chart"];
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
function removeChartAnnotations(annotationObject) {
|
|
439
|
+
return annotationObject.filter(function (oRecord) {
|
|
440
|
+
if (oRecord.Target && oRecord.Target.$AnnotationPath) {
|
|
441
|
+
return oRecord.Target.$AnnotationPath.indexOf("@com.sap.vocabularies.UI.v1.Chart") === -1;
|
|
442
|
+
} else {
|
|
443
|
+
return true;
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
function removeIBNAnnotations(annotationObject) {
|
|
449
|
+
return annotationObject.filter(function (oRecord) {
|
|
450
|
+
return oRecord.$Type !== "com.sap.vocabularies.UI.v1.DataFieldForIntentBasedNavigation";
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
function handlePresentationVariant(annotationObject) {
|
|
455
|
+
return annotationObject.filter(function (oRecord) {
|
|
456
|
+
return oRecord.$AnnotationPath !== "@com.sap.vocabularies.UI.v1.Chart";
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
Object.keys(annotationObjects).forEach(function (annotationKey) {
|
|
461
|
+
var annotationObject = annotationObjects[annotationKey];
|
|
462
|
+
|
|
463
|
+
switch (annotationKey) {
|
|
464
|
+
case "@com.sap.vocabularies.UI.v1.HeaderFacets":
|
|
465
|
+
if (!oCapabilities.MicroChart) {
|
|
466
|
+
annotationObject = removeChartAnnotations(annotationObject);
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
break;
|
|
470
|
+
|
|
471
|
+
case "@com.sap.vocabularies.UI.v1.Identification":
|
|
472
|
+
if (!oCapabilities.IntentBasedNavigation) {
|
|
473
|
+
annotationObject = removeIBNAnnotations(annotationObject);
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
break;
|
|
477
|
+
|
|
478
|
+
case "@com.sap.vocabularies.UI.v1.LineItem":
|
|
479
|
+
if (!oCapabilities.IntentBasedNavigation) {
|
|
480
|
+
annotationObject = removeIBNAnnotations(annotationObject);
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
if (!oCapabilities.MicroChart) {
|
|
484
|
+
annotationObject = removeChartAnnotations(annotationObject);
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
break;
|
|
488
|
+
|
|
489
|
+
case "@com.sap.vocabularies.UI.v1.FieldGroup":
|
|
490
|
+
if (!oCapabilities.IntentBasedNavigation) {
|
|
491
|
+
annotationObject.Data = removeIBNAnnotations(annotationObject.Data);
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
if (!oCapabilities.MicroChart) {
|
|
495
|
+
annotationObject.Data = removeChartAnnotations(annotationObject.Data);
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
break;
|
|
499
|
+
|
|
500
|
+
case "@com.sap.vocabularies.UI.v1.PresentationVariant":
|
|
501
|
+
if (!oCapabilities.Chart && annotationObject.Visualizations) {
|
|
502
|
+
annotationObject.Visualizations = handlePresentationVariant(annotationObject.Visualizations);
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
break;
|
|
506
|
+
|
|
507
|
+
default:
|
|
508
|
+
break;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
annotationObjects[annotationKey] = annotationObject;
|
|
512
|
+
var currentOutAnnotationObject = outAnnotationObject; // Check for annotation of annotation
|
|
513
|
+
|
|
514
|
+
var annotationOfAnnotationSplit = annotationKey.split("@");
|
|
515
|
+
|
|
516
|
+
if (annotationOfAnnotationSplit.length > 2) {
|
|
517
|
+
currentOutAnnotationObject = _this3.getOrCreateAnnotationList(annotationTarget + "@" + annotationOfAnnotationSplit[1], annotationLists);
|
|
518
|
+
annotationKey = annotationOfAnnotationSplit[2];
|
|
519
|
+
} else {
|
|
520
|
+
annotationKey = annotationOfAnnotationSplit[1];
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
var annotationQualifierSplit = annotationKey.split("#");
|
|
524
|
+
var qualifier = annotationQualifierSplit[1];
|
|
525
|
+
annotationKey = annotationQualifierSplit[0];
|
|
526
|
+
var parsedAnnotationObject = {
|
|
527
|
+
term: "".concat(annotationKey),
|
|
528
|
+
qualifier: qualifier
|
|
529
|
+
};
|
|
530
|
+
var currentAnnotationTarget = annotationTarget + "@" + parsedAnnotationObject.term;
|
|
531
|
+
|
|
532
|
+
if (qualifier) {
|
|
533
|
+
currentAnnotationTarget += "#" + qualifier;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
var isCollection = false;
|
|
537
|
+
|
|
538
|
+
if (annotationObject === null) {
|
|
539
|
+
parsedAnnotationObject.value = {
|
|
540
|
+
type: "Bool",
|
|
541
|
+
Bool: annotationObject
|
|
542
|
+
};
|
|
543
|
+
} else if (typeof annotationObject === "string") {
|
|
544
|
+
parsedAnnotationObject.value = {
|
|
545
|
+
type: "String",
|
|
546
|
+
String: annotationObject
|
|
547
|
+
};
|
|
548
|
+
} else if (typeof annotationObject === "boolean") {
|
|
549
|
+
parsedAnnotationObject.value = {
|
|
550
|
+
type: "Bool",
|
|
551
|
+
Bool: annotationObject
|
|
552
|
+
};
|
|
553
|
+
} else if (typeof annotationObject === "number") {
|
|
554
|
+
parsedAnnotationObject.value = {
|
|
555
|
+
type: "Int",
|
|
556
|
+
Int: annotationObject
|
|
557
|
+
};
|
|
558
|
+
} else if (annotationObject.$If !== undefined) {
|
|
559
|
+
parsedAnnotationObject.value = {
|
|
560
|
+
type: "If",
|
|
561
|
+
If: annotationObject.$If
|
|
562
|
+
};
|
|
563
|
+
} else if (annotationObject.$And !== undefined) {
|
|
564
|
+
parsedAnnotationObject.value = {
|
|
565
|
+
type: "And",
|
|
566
|
+
And: annotationObject.$And
|
|
567
|
+
};
|
|
568
|
+
} else if (annotationObject.$Or !== undefined) {
|
|
569
|
+
parsedAnnotationObject.value = {
|
|
570
|
+
type: "Or",
|
|
571
|
+
Or: annotationObject.$Or
|
|
572
|
+
};
|
|
573
|
+
} else if (annotationObject.$Not !== undefined) {
|
|
574
|
+
parsedAnnotationObject.value = {
|
|
575
|
+
type: "Not",
|
|
576
|
+
Not: annotationObject.$Not
|
|
577
|
+
};
|
|
578
|
+
} else if (annotationObject.$Eq !== undefined) {
|
|
579
|
+
parsedAnnotationObject.value = {
|
|
580
|
+
type: "Eq",
|
|
581
|
+
Eq: annotationObject.$Eq
|
|
582
|
+
};
|
|
583
|
+
} else if (annotationObject.$Ne !== undefined) {
|
|
584
|
+
parsedAnnotationObject.value = {
|
|
585
|
+
type: "Ne",
|
|
586
|
+
Ne: annotationObject.$Ne
|
|
587
|
+
};
|
|
588
|
+
} else if (annotationObject.$Gt !== undefined) {
|
|
589
|
+
parsedAnnotationObject.value = {
|
|
590
|
+
type: "Gt",
|
|
591
|
+
Gt: annotationObject.$Gt
|
|
592
|
+
};
|
|
593
|
+
} else if (annotationObject.$Ge !== undefined) {
|
|
594
|
+
parsedAnnotationObject.value = {
|
|
595
|
+
type: "Ge",
|
|
596
|
+
Ge: annotationObject.$Ge
|
|
597
|
+
};
|
|
598
|
+
} else if (annotationObject.$Lt !== undefined) {
|
|
599
|
+
parsedAnnotationObject.value = {
|
|
600
|
+
type: "Lt",
|
|
601
|
+
Lt: annotationObject.$Lt
|
|
602
|
+
};
|
|
603
|
+
} else if (annotationObject.$Le !== undefined) {
|
|
604
|
+
parsedAnnotationObject.value = {
|
|
605
|
+
type: "Le",
|
|
606
|
+
Le: annotationObject.$Le
|
|
607
|
+
};
|
|
608
|
+
} else if (annotationObject.$Apply !== undefined) {
|
|
609
|
+
parsedAnnotationObject.value = {
|
|
610
|
+
type: "Apply",
|
|
611
|
+
Apply: annotationObject.$Apply,
|
|
612
|
+
Function: annotationObject.$Function
|
|
613
|
+
};
|
|
614
|
+
} else if (annotationObject.$Path !== undefined) {
|
|
615
|
+
parsedAnnotationObject.value = {
|
|
616
|
+
type: "Path",
|
|
617
|
+
Path: annotationObject.$Path
|
|
618
|
+
};
|
|
619
|
+
} else if (annotationObject.$AnnotationPath !== undefined) {
|
|
620
|
+
parsedAnnotationObject.value = {
|
|
621
|
+
type: "AnnotationPath",
|
|
622
|
+
AnnotationPath: annotationObject.$AnnotationPath
|
|
623
|
+
};
|
|
624
|
+
} else if (annotationObject.$Decimal !== undefined) {
|
|
625
|
+
parsedAnnotationObject.value = {
|
|
626
|
+
type: "Decimal",
|
|
627
|
+
Decimal: parseFloat(annotationObject.$Decimal)
|
|
628
|
+
};
|
|
629
|
+
} else if (annotationObject.$EnumMember !== undefined) {
|
|
630
|
+
parsedAnnotationObject.value = {
|
|
631
|
+
type: "EnumMember",
|
|
632
|
+
EnumMember: _this3.mapNameToAlias(annotationObject.$EnumMember.split("/")[0]) + "/" + annotationObject.$EnumMember.split("/")[1]
|
|
633
|
+
};
|
|
634
|
+
} else if (Array.isArray(annotationObject)) {
|
|
635
|
+
isCollection = true;
|
|
636
|
+
parsedAnnotationObject.collection = annotationObject.map(function (subAnnotationObject, subAnnotationIndex) {
|
|
637
|
+
return _this3.parseAnnotationObject(subAnnotationObject, currentAnnotationTarget + "/" + subAnnotationIndex, annotationLists, oCapabilities);
|
|
638
|
+
});
|
|
639
|
+
|
|
640
|
+
if (annotationObject.length > 0) {
|
|
641
|
+
if (annotationObject[0].hasOwnProperty("$PropertyPath")) {
|
|
642
|
+
parsedAnnotationObject.collection.type = "PropertyPath";
|
|
643
|
+
} else if (annotationObject[0].hasOwnProperty("$Path")) {
|
|
644
|
+
parsedAnnotationObject.collection.type = "Path";
|
|
645
|
+
} else if (annotationObject[0].hasOwnProperty("$NavigationPropertyPath")) {
|
|
646
|
+
parsedAnnotationObject.collection.type = "NavigationPropertyPath";
|
|
647
|
+
} else if (annotationObject[0].hasOwnProperty("$AnnotationPath")) {
|
|
648
|
+
parsedAnnotationObject.collection.type = "AnnotationPath";
|
|
649
|
+
} else if (annotationObject[0].hasOwnProperty("$Type")) {
|
|
650
|
+
parsedAnnotationObject.collection.type = "Record";
|
|
651
|
+
} else if (annotationObject[0].hasOwnProperty("$If")) {
|
|
652
|
+
parsedAnnotationObject.collection.type = "If";
|
|
653
|
+
} else if (annotationObject[0].hasOwnProperty("$Or")) {
|
|
654
|
+
parsedAnnotationObject.collection.type = "Or";
|
|
655
|
+
} else if (annotationObject[0].hasOwnProperty("$Eq")) {
|
|
656
|
+
parsedAnnotationObject.collection.type = "Eq";
|
|
657
|
+
} else if (annotationObject[0].hasOwnProperty("$Ne")) {
|
|
658
|
+
parsedAnnotationObject.collection.type = "Ne";
|
|
659
|
+
} else if (annotationObject[0].hasOwnProperty("$Not")) {
|
|
660
|
+
parsedAnnotationObject.collection.type = "Not";
|
|
661
|
+
} else if (annotationObject[0].hasOwnProperty("$Gt")) {
|
|
662
|
+
parsedAnnotationObject.collection.type = "Gt";
|
|
663
|
+
} else if (annotationObject[0].hasOwnProperty("$Ge")) {
|
|
664
|
+
parsedAnnotationObject.collection.type = "Ge";
|
|
665
|
+
} else if (annotationObject[0].hasOwnProperty("$Lt")) {
|
|
666
|
+
parsedAnnotationObject.collection.type = "Lt";
|
|
667
|
+
} else if (annotationObject[0].hasOwnProperty("$Le")) {
|
|
668
|
+
parsedAnnotationObject.collection.type = "Le";
|
|
669
|
+
} else if (annotationObject[0].hasOwnProperty("$And")) {
|
|
670
|
+
parsedAnnotationObject.collection.type = "And";
|
|
671
|
+
} else if (annotationObject[0].hasOwnProperty("$Apply")) {
|
|
672
|
+
parsedAnnotationObject.collection.type = "Apply";
|
|
673
|
+
} else if (typeof annotationObject[0] === "object") {
|
|
674
|
+
parsedAnnotationObject.collection.type = "Record";
|
|
675
|
+
} else {
|
|
676
|
+
parsedAnnotationObject.collection.type = "String";
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
} else {
|
|
680
|
+
var record = {
|
|
681
|
+
propertyValues: []
|
|
682
|
+
};
|
|
683
|
+
|
|
684
|
+
if (annotationObject.$Type) {
|
|
685
|
+
var typeValue = annotationObject.$Type;
|
|
686
|
+
record.type = "".concat(typeValue);
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
var propertyValues = [];
|
|
690
|
+
Object.keys(annotationObject).forEach(function (propertyKey) {
|
|
691
|
+
if (propertyKey !== "$Type" && !propertyKey.startsWith("@")) {
|
|
692
|
+
propertyValues.push(_this3.parsePropertyValue(annotationObject[propertyKey], propertyKey, currentAnnotationTarget, annotationLists, oCapabilities));
|
|
693
|
+
} else if (propertyKey.startsWith("@")) {
|
|
694
|
+
// Annotation of record
|
|
695
|
+
_this3.createAnnotationLists(_defineProperty({}, propertyKey, annotationObject[propertyKey]), currentAnnotationTarget, annotationLists, oCapabilities);
|
|
696
|
+
}
|
|
697
|
+
});
|
|
698
|
+
record.propertyValues = propertyValues;
|
|
699
|
+
parsedAnnotationObject.record = record;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
parsedAnnotationObject.isCollection = isCollection;
|
|
703
|
+
currentOutAnnotationObject.annotations.push(parsedAnnotationObject);
|
|
704
|
+
});
|
|
705
|
+
},
|
|
706
|
+
parseProperty: function (oMetaModel, entityTypeObject, propertyName, annotationLists, oCapabilities) {
|
|
707
|
+
var propertyAnnotation = oMetaModel.getObject("/".concat(entityTypeObject.fullyQualifiedName, "/").concat(propertyName, "@"));
|
|
708
|
+
var propertyDefinition = oMetaModel.getObject("/".concat(entityTypeObject.fullyQualifiedName, "/").concat(propertyName));
|
|
709
|
+
var propertyObject = {
|
|
710
|
+
_type: "Property",
|
|
711
|
+
name: propertyName,
|
|
712
|
+
fullyQualifiedName: "".concat(entityTypeObject.fullyQualifiedName, "/").concat(propertyName),
|
|
713
|
+
type: propertyDefinition.$Type,
|
|
714
|
+
maxLength: propertyDefinition.$MaxLength,
|
|
715
|
+
precision: propertyDefinition.$Precision,
|
|
716
|
+
scale: propertyDefinition.$Scale,
|
|
717
|
+
nullable: propertyDefinition.$Nullable
|
|
718
|
+
};
|
|
719
|
+
this.createAnnotationLists(propertyAnnotation, propertyObject.fullyQualifiedName, annotationLists, oCapabilities);
|
|
720
|
+
return propertyObject;
|
|
721
|
+
},
|
|
722
|
+
parseNavigationProperty: function (oMetaModel, entityTypeObject, navPropertyName, annotationLists, oCapabilities) {
|
|
723
|
+
var navPropertyAnnotation = oMetaModel.getObject("/".concat(entityTypeObject.fullyQualifiedName, "/").concat(navPropertyName, "@"));
|
|
724
|
+
var navPropertyDefinition = oMetaModel.getObject("/".concat(entityTypeObject.fullyQualifiedName, "/").concat(navPropertyName));
|
|
725
|
+
var referentialConstraint = [];
|
|
726
|
+
|
|
727
|
+
if (navPropertyDefinition.$ReferentialConstraint) {
|
|
728
|
+
referentialConstraint = Object.keys(navPropertyDefinition.$ReferentialConstraint).map(function (sourcePropertyName) {
|
|
729
|
+
return {
|
|
730
|
+
sourceTypeName: entityTypeObject.name,
|
|
731
|
+
sourceProperty: sourcePropertyName,
|
|
732
|
+
targetTypeName: navPropertyDefinition.$Type,
|
|
733
|
+
targetProperty: navPropertyDefinition.$ReferentialConstraint[sourcePropertyName]
|
|
734
|
+
};
|
|
735
|
+
});
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
var navigationProperty = {
|
|
739
|
+
_type: "NavigationProperty",
|
|
740
|
+
name: navPropertyName,
|
|
741
|
+
fullyQualifiedName: "".concat(entityTypeObject.fullyQualifiedName, "/").concat(navPropertyName),
|
|
742
|
+
partner: navPropertyDefinition.$Partner,
|
|
743
|
+
isCollection: navPropertyDefinition.$isCollection ? navPropertyDefinition.$isCollection : false,
|
|
744
|
+
containsTarget: navPropertyDefinition.$ContainsTarget,
|
|
745
|
+
targetTypeName: navPropertyDefinition.$Type,
|
|
746
|
+
referentialConstraint: referentialConstraint
|
|
747
|
+
};
|
|
748
|
+
this.createAnnotationLists(navPropertyAnnotation, navigationProperty.fullyQualifiedName, annotationLists, oCapabilities);
|
|
749
|
+
return navigationProperty;
|
|
750
|
+
},
|
|
751
|
+
parseEntitySet: function (oMetaModel, entitySetName, annotationLists, entityContainerName, oCapabilities) {
|
|
752
|
+
var entitySetDefinition = oMetaModel.getObject("/".concat(entitySetName));
|
|
753
|
+
var entitySetAnnotation = oMetaModel.getObject("/".concat(entitySetName, "@"));
|
|
754
|
+
var entitySetObject = {
|
|
755
|
+
_type: "EntitySet",
|
|
756
|
+
name: entitySetName,
|
|
757
|
+
navigationPropertyBinding: {},
|
|
758
|
+
entityTypeName: entitySetDefinition.$Type,
|
|
759
|
+
fullyQualifiedName: "".concat(entityContainerName, "/").concat(entitySetName)
|
|
760
|
+
};
|
|
761
|
+
this.createAnnotationLists(entitySetAnnotation, entitySetObject.fullyQualifiedName, annotationLists, oCapabilities);
|
|
762
|
+
return entitySetObject;
|
|
763
|
+
},
|
|
764
|
+
parseSingleton: function (oMetaModel, singletonName, annotationLists, entityContainerName, oCapabilities) {
|
|
765
|
+
var singletonDefinition = oMetaModel.getObject("/".concat(singletonName));
|
|
766
|
+
var singletonAnnotation = oMetaModel.getObject("/".concat(singletonName, "@"));
|
|
767
|
+
var singletonObject = {
|
|
768
|
+
_type: "Singleton",
|
|
769
|
+
name: singletonName,
|
|
770
|
+
navigationPropertyBinding: {},
|
|
771
|
+
typeName: singletonDefinition.$Type,
|
|
772
|
+
fullyQualifiedName: "".concat(entityContainerName, "/").concat(singletonName),
|
|
773
|
+
nullable: true
|
|
774
|
+
};
|
|
775
|
+
this.createAnnotationLists(singletonAnnotation, singletonObject.fullyQualifiedName, annotationLists, oCapabilities);
|
|
776
|
+
return singletonObject;
|
|
777
|
+
},
|
|
778
|
+
parseEntityType: function (oMetaModel, entityTypeName, annotationLists, namespace, oCapabilities) {
|
|
779
|
+
var _this4 = this;
|
|
780
|
+
|
|
781
|
+
var entityTypeAnnotation = oMetaModel.getObject("/".concat(entityTypeName, "@"));
|
|
782
|
+
var entityTypeDefinition = oMetaModel.getObject("/".concat(entityTypeName));
|
|
783
|
+
var entityKeys = getEntityKeys(entityTypeDefinition);
|
|
784
|
+
|
|
785
|
+
function getEntityKeys(entityTypeDefinition) {
|
|
786
|
+
if (!entityTypeDefinition.$Key && entityTypeDefinition.$BaseType) {
|
|
787
|
+
return getEntityKeys(oMetaModel.getObject("/".concat(entityTypeDefinition.$BaseType)));
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
return entityTypeDefinition.$Key || []; //handling of entity types without key as well as basetype
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
var entityTypeObject = {
|
|
794
|
+
_type: "EntityType",
|
|
795
|
+
name: entityTypeName.replace(namespace + ".", ""),
|
|
796
|
+
fullyQualifiedName: entityTypeName,
|
|
797
|
+
keys: [],
|
|
798
|
+
entityProperties: [],
|
|
799
|
+
navigationProperties: []
|
|
800
|
+
};
|
|
801
|
+
this.createAnnotationLists(entityTypeAnnotation, entityTypeObject.fullyQualifiedName, annotationLists, oCapabilities);
|
|
802
|
+
var entityProperties = Object.keys(entityTypeDefinition).filter(function (propertyNameOrNot) {
|
|
803
|
+
if (propertyNameOrNot != "$Key" && propertyNameOrNot != "$kind") {
|
|
804
|
+
return entityTypeDefinition[propertyNameOrNot].$kind === "Property";
|
|
805
|
+
}
|
|
806
|
+
}).map(function (propertyName) {
|
|
807
|
+
return _this4.parseProperty(oMetaModel, entityTypeObject, propertyName, annotationLists, oCapabilities);
|
|
808
|
+
});
|
|
809
|
+
var navigationProperties = Object.keys(entityTypeDefinition).filter(function (propertyNameOrNot) {
|
|
810
|
+
if (propertyNameOrNot != "$Key" && propertyNameOrNot != "$kind") {
|
|
811
|
+
return entityTypeDefinition[propertyNameOrNot].$kind === "NavigationProperty";
|
|
812
|
+
}
|
|
813
|
+
}).map(function (navPropertyName) {
|
|
814
|
+
return _this4.parseNavigationProperty(oMetaModel, entityTypeObject, navPropertyName, annotationLists, oCapabilities);
|
|
815
|
+
});
|
|
816
|
+
entityTypeObject.keys = entityKeys.map(function (entityKey) {
|
|
817
|
+
return entityProperties.find(function (property) {
|
|
818
|
+
return property.name === entityKey;
|
|
819
|
+
});
|
|
820
|
+
}).filter(function (property) {
|
|
821
|
+
return property !== undefined;
|
|
822
|
+
});
|
|
823
|
+
entityTypeObject.entityProperties = entityProperties;
|
|
824
|
+
entityTypeObject.navigationProperties = navigationProperties;
|
|
825
|
+
return entityTypeObject;
|
|
826
|
+
},
|
|
827
|
+
parseComplexType: function (oMetaModel, complexTypeName, annotationLists, namespace, oCapabilities) {
|
|
828
|
+
var _this5 = this;
|
|
829
|
+
|
|
830
|
+
var complexTypeAnnotation = oMetaModel.getObject("/".concat(complexTypeName, "@"));
|
|
831
|
+
var complexTypeDefinition = oMetaModel.getObject("/".concat(complexTypeName));
|
|
832
|
+
var complexTypeObject = {
|
|
833
|
+
_type: "ComplexType",
|
|
834
|
+
name: complexTypeName.replace(namespace + ".", ""),
|
|
835
|
+
fullyQualifiedName: complexTypeName,
|
|
836
|
+
properties: [],
|
|
837
|
+
navigationProperties: []
|
|
838
|
+
};
|
|
839
|
+
this.createAnnotationLists(complexTypeAnnotation, complexTypeObject.fullyQualifiedName, annotationLists, oCapabilities);
|
|
840
|
+
var complexTypeProperties = Object.keys(complexTypeDefinition).filter(function (propertyNameOrNot) {
|
|
841
|
+
if (propertyNameOrNot != "$Key" && propertyNameOrNot != "$kind") {
|
|
842
|
+
return complexTypeDefinition[propertyNameOrNot].$kind === "Property";
|
|
843
|
+
}
|
|
844
|
+
}).map(function (propertyName) {
|
|
845
|
+
return _this5.parseProperty(oMetaModel, complexTypeObject, propertyName, annotationLists, oCapabilities);
|
|
846
|
+
});
|
|
847
|
+
complexTypeObject.properties = complexTypeProperties;
|
|
848
|
+
var complexTypeNavigationProperties = Object.keys(complexTypeDefinition).filter(function (propertyNameOrNot) {
|
|
849
|
+
if (propertyNameOrNot != "$Key" && propertyNameOrNot != "$kind") {
|
|
850
|
+
return complexTypeDefinition[propertyNameOrNot].$kind === "NavigationProperty";
|
|
851
|
+
}
|
|
852
|
+
}).map(function (navPropertyName) {
|
|
853
|
+
return _this5.parseNavigationProperty(oMetaModel, complexTypeObject, navPropertyName, annotationLists, oCapabilities);
|
|
854
|
+
});
|
|
855
|
+
complexTypeObject.navigationProperties = complexTypeNavigationProperties;
|
|
856
|
+
return complexTypeObject;
|
|
857
|
+
},
|
|
858
|
+
parseAction: function (actionName, actionRawData, namespace, entityContainerName) {
|
|
859
|
+
var actionEntityType = "";
|
|
860
|
+
var actionFQN = "".concat(actionName);
|
|
861
|
+
var actionShortName = actionName.substr(namespace.length + 1);
|
|
862
|
+
|
|
863
|
+
if (actionRawData.$IsBound) {
|
|
864
|
+
var bindingParameter = actionRawData.$Parameter[0];
|
|
865
|
+
actionEntityType = bindingParameter.$Type;
|
|
866
|
+
|
|
867
|
+
if (bindingParameter.$isCollection === true) {
|
|
868
|
+
actionFQN = "".concat(actionName, "(Collection(").concat(actionEntityType, "))");
|
|
869
|
+
} else {
|
|
870
|
+
actionFQN = "".concat(actionName, "(").concat(actionEntityType, ")");
|
|
871
|
+
}
|
|
872
|
+
} else {
|
|
873
|
+
actionFQN = "".concat(entityContainerName, "/").concat(actionShortName);
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
var parameters = actionRawData.$Parameter || [];
|
|
877
|
+
return {
|
|
878
|
+
_type: "Action",
|
|
879
|
+
name: actionShortName,
|
|
880
|
+
fullyQualifiedName: actionFQN,
|
|
881
|
+
isBound: actionRawData.$IsBound,
|
|
882
|
+
sourceType: actionEntityType,
|
|
883
|
+
returnType: actionRawData.$ReturnType ? actionRawData.$ReturnType.$Type : "",
|
|
884
|
+
parameters: parameters.map(function (param) {
|
|
885
|
+
return {
|
|
886
|
+
_type: "ActionParameter",
|
|
887
|
+
isEntitySet: param.$Type === actionRawData.$EntitySetPath,
|
|
888
|
+
fullyQualifiedName: "".concat(actionFQN, "/").concat(param.$Name),
|
|
889
|
+
type: param.$Type // TODO missing properties ?
|
|
890
|
+
|
|
891
|
+
};
|
|
892
|
+
})
|
|
893
|
+
};
|
|
894
|
+
},
|
|
895
|
+
parseEntityTypes: function (oMetaModel, oInCapabilities) {
|
|
896
|
+
var _this6 = this;
|
|
897
|
+
|
|
898
|
+
var oCapabilities;
|
|
899
|
+
|
|
900
|
+
if (!oInCapabilities) {
|
|
901
|
+
oCapabilities = DefaultEnvironmentCapabilities;
|
|
902
|
+
} else {
|
|
903
|
+
oCapabilities = oInCapabilities;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
var oMetaModelData = oMetaModel.getObject("/$");
|
|
907
|
+
var oEntitySets = oMetaModel.getObject("/");
|
|
908
|
+
var annotationLists = [];
|
|
909
|
+
var entityTypes = [];
|
|
910
|
+
var entitySets = [];
|
|
911
|
+
var singletons = [];
|
|
912
|
+
var complexTypes = [];
|
|
913
|
+
var entityContainerName = oMetaModelData.$EntityContainer;
|
|
914
|
+
var namespace = "";
|
|
915
|
+
var schemaKeys = Object.keys(oMetaModelData).filter(function (metamodelKey) {
|
|
916
|
+
return oMetaModelData[metamodelKey].$kind === "Schema";
|
|
917
|
+
});
|
|
918
|
+
|
|
919
|
+
if (schemaKeys && schemaKeys.length > 0) {
|
|
920
|
+
namespace = schemaKeys[0].substr(0, schemaKeys[0].length - 1);
|
|
921
|
+
} else if (entityTypes && entityTypes.length) {
|
|
922
|
+
namespace = entityTypes[0].fullyQualifiedName.replace(entityTypes[0].name, "");
|
|
923
|
+
namespace = namespace.substr(0, namespace.length - 1);
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
Object.keys(oMetaModelData).filter(function (entityTypeName) {
|
|
927
|
+
return entityTypeName !== "$kind" && oMetaModelData[entityTypeName].$kind === "EntityType";
|
|
928
|
+
}).forEach(function (entityTypeName) {
|
|
929
|
+
var entityType = _this6.parseEntityType(oMetaModel, entityTypeName, annotationLists, namespace, oCapabilities);
|
|
930
|
+
|
|
931
|
+
entityType.entityProperties.forEach(function (entityProperty) {
|
|
932
|
+
if (!oMetaModelData.$Annotations[entityProperty.fullyQualifiedName]) {
|
|
933
|
+
oMetaModelData.$Annotations[entityProperty.fullyQualifiedName] = {};
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
if (!oMetaModelData.$Annotations[entityProperty.fullyQualifiedName]["@com.sap.vocabularies.UI.v1.DataFieldDefault"]) {
|
|
937
|
+
oMetaModelData.$Annotations[entityProperty.fullyQualifiedName]["@com.sap.vocabularies.UI.v1.DataFieldDefault"] = {
|
|
938
|
+
$Type: "com.sap.vocabularies.UI.v1.DataField",
|
|
939
|
+
Value: {
|
|
940
|
+
$Path: entityProperty.name
|
|
941
|
+
}
|
|
942
|
+
};
|
|
943
|
+
|
|
944
|
+
_this6.createAnnotationLists({
|
|
945
|
+
"@com.sap.vocabularies.UI.v1.DataFieldDefault": oMetaModelData.$Annotations[entityProperty.fullyQualifiedName]["@com.sap.vocabularies.UI.v1.DataFieldDefault"]
|
|
946
|
+
}, entityProperty.fullyQualifiedName, annotationLists, oCapabilities);
|
|
947
|
+
}
|
|
948
|
+
});
|
|
949
|
+
entityTypes.push(entityType);
|
|
950
|
+
});
|
|
951
|
+
Object.keys(oEntitySets).filter(function (entitySetName) {
|
|
952
|
+
return entitySetName !== "$kind" && oEntitySets[entitySetName].$kind === "EntitySet";
|
|
953
|
+
}).forEach(function (entitySetName) {
|
|
954
|
+
var entitySet = _this6.parseEntitySet(oMetaModel, entitySetName, annotationLists, entityContainerName, oCapabilities);
|
|
955
|
+
|
|
956
|
+
entitySets.push(entitySet);
|
|
957
|
+
});
|
|
958
|
+
Object.keys(oEntitySets).filter(function (singletonName) {
|
|
959
|
+
return singletonName !== "$kind" && oEntitySets[singletonName].$kind === "Singleton";
|
|
960
|
+
}).forEach(function (singletonName) {
|
|
961
|
+
var singleton = _this6.parseSingleton(oMetaModel, singletonName, annotationLists, entityContainerName, oCapabilities);
|
|
962
|
+
|
|
963
|
+
singletons.push(singleton);
|
|
964
|
+
});
|
|
965
|
+
Object.keys(oMetaModelData).filter(function (complexTypeName) {
|
|
966
|
+
return complexTypeName !== "$kind" && oMetaModelData[complexTypeName].$kind === "ComplexType";
|
|
967
|
+
}).forEach(function (complexTypeName) {
|
|
968
|
+
var complexType = _this6.parseComplexType(oMetaModel, complexTypeName, annotationLists, namespace, oCapabilities);
|
|
969
|
+
|
|
970
|
+
complexTypes.push(complexType);
|
|
971
|
+
});
|
|
972
|
+
var oEntityContainerName = Object.keys(oMetaModelData).find(function (entityContainerName) {
|
|
973
|
+
return entityContainerName !== "$kind" && oMetaModelData[entityContainerName].$kind === "EntityContainer";
|
|
974
|
+
});
|
|
975
|
+
var entityContainer = {};
|
|
976
|
+
|
|
977
|
+
if (oEntityContainerName) {
|
|
978
|
+
entityContainer = {
|
|
979
|
+
name: oEntityContainerName.replace(namespace + ".", ""),
|
|
980
|
+
fullyQualifiedName: oEntityContainerName
|
|
981
|
+
};
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
entitySets.forEach(function (entitySet) {
|
|
985
|
+
var navPropertyBindings = oMetaModelData[entityContainerName][entitySet.name].$NavigationPropertyBinding;
|
|
986
|
+
|
|
987
|
+
if (navPropertyBindings) {
|
|
988
|
+
Object.keys(navPropertyBindings).forEach(function (navPropName) {
|
|
989
|
+
var targetEntitySet = entitySets.find(function (entitySetName) {
|
|
990
|
+
return entitySetName.name === navPropertyBindings[navPropName];
|
|
991
|
+
});
|
|
992
|
+
|
|
993
|
+
if (targetEntitySet) {
|
|
994
|
+
entitySet.navigationPropertyBinding[navPropName] = targetEntitySet;
|
|
995
|
+
}
|
|
996
|
+
});
|
|
997
|
+
}
|
|
998
|
+
});
|
|
999
|
+
var actions = Object.keys(oMetaModelData).filter(function (key) {
|
|
1000
|
+
return Array.isArray(oMetaModelData[key]) && oMetaModelData[key].length > 0 && oMetaModelData[key][0].$kind === "Action";
|
|
1001
|
+
}).reduce(function (outActions, actionName) {
|
|
1002
|
+
var actions = oMetaModelData[actionName];
|
|
1003
|
+
actions.forEach(function (action) {
|
|
1004
|
+
outActions.push(_this6.parseAction(actionName, action, namespace, entityContainerName));
|
|
1005
|
+
});
|
|
1006
|
+
return outActions;
|
|
1007
|
+
}, []); // FIXME Crappy code to deal with annotations for functions
|
|
1008
|
+
|
|
1009
|
+
var annotations = oMetaModelData.$Annotations;
|
|
1010
|
+
var actionAnnotations = Object.keys(annotations).filter(function (target) {
|
|
1011
|
+
return target.indexOf("(") !== -1;
|
|
1012
|
+
});
|
|
1013
|
+
actionAnnotations.forEach(function (target) {
|
|
1014
|
+
_this6.createAnnotationLists(oMetaModelData.$Annotations[target], target, annotationLists, oCapabilities);
|
|
1015
|
+
});
|
|
1016
|
+
var actionsNameWithoutOverload = actions.map(function (action) {
|
|
1017
|
+
return action.fullyQualifiedName.split("(")[0];
|
|
1018
|
+
});
|
|
1019
|
+
actionsNameWithoutOverload.forEach(function (actionName) {
|
|
1020
|
+
if (annotations.hasOwnProperty(actionName)) {
|
|
1021
|
+
_this6.createAnnotationLists(oMetaModelData.$Annotations[actionName], actionName, annotationLists, oCapabilities);
|
|
1022
|
+
}
|
|
1023
|
+
});
|
|
1024
|
+
var entityContainerAnnotations = annotations[entityContainerName]; // Retrieve Entity Container annotations
|
|
1025
|
+
|
|
1026
|
+
if (entityContainerAnnotations) {
|
|
1027
|
+
this.createAnnotationLists(entityContainerAnnotations, entityContainerName, annotationLists, oCapabilities);
|
|
1028
|
+
} // Sort by target length
|
|
1029
|
+
|
|
1030
|
+
|
|
1031
|
+
annotationLists = annotationLists.sort(function (a, b) {
|
|
1032
|
+
return a.target.length >= b.target.length ? 1 : -1;
|
|
1033
|
+
});
|
|
1034
|
+
var references = [];
|
|
1035
|
+
return {
|
|
1036
|
+
identification: "metamodelResult",
|
|
1037
|
+
version: "4.0",
|
|
1038
|
+
schema: {
|
|
1039
|
+
entityContainer: entityContainer,
|
|
1040
|
+
entitySets: entitySets,
|
|
1041
|
+
entityTypes: entityTypes,
|
|
1042
|
+
complexTypes: complexTypes,
|
|
1043
|
+
singletons: singletons,
|
|
1044
|
+
associations: [],
|
|
1045
|
+
actions: actions,
|
|
1046
|
+
namespace: namespace,
|
|
1047
|
+
annotations: {
|
|
1048
|
+
"metamodelResult": annotationLists
|
|
1049
|
+
}
|
|
1050
|
+
},
|
|
1051
|
+
references: references
|
|
1052
|
+
};
|
|
1053
|
+
}
|
|
1054
|
+
};
|
|
1055
|
+
var mMetaModelMap = {};
|
|
1056
|
+
/**
|
|
1057
|
+
* Convert the ODataMetaModel into another format that allow for easy manipulation of the annotations.
|
|
1058
|
+
*
|
|
1059
|
+
* @param {ODataMetaModel} oMetaModel The current oDataMetaModel
|
|
1060
|
+
* @param oCapabilities The current capabilities
|
|
1061
|
+
* @returns {ConverterOutput} An object containing object like annotation
|
|
1062
|
+
*/
|
|
1063
|
+
|
|
1064
|
+
function convertTypes(oMetaModel, oCapabilities) {
|
|
1065
|
+
var sMetaModelId = oMetaModel.id;
|
|
1066
|
+
|
|
1067
|
+
if (!mMetaModelMap.hasOwnProperty(sMetaModelId)) {
|
|
1068
|
+
var parsedOutput = MetaModelConverter.parseEntityTypes(oMetaModel, oCapabilities);
|
|
1069
|
+
mMetaModelMap[sMetaModelId] = AnnotationConverter.convertTypes(parsedOutput);
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
return mMetaModelMap[sMetaModelId];
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
_exports.convertTypes = convertTypes;
|
|
1076
|
+
|
|
1077
|
+
function deleteModelCacheData(oMetaModel) {
|
|
1078
|
+
delete mMetaModelMap[oMetaModel.id];
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
_exports.deleteModelCacheData = deleteModelCacheData;
|
|
1082
|
+
|
|
1083
|
+
function convertMetaModelContext(oMetaModelContext) {
|
|
1084
|
+
var bIncludeVisitedObjects = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
1085
|
+
var oConverterOutput = convertTypes(oMetaModelContext.getModel());
|
|
1086
|
+
var sPath = oMetaModelContext.getPath();
|
|
1087
|
+
var aPathSplit = sPath.split("/");
|
|
1088
|
+
var targetEntitySet = oConverterOutput.entitySets.find(function (entitySet) {
|
|
1089
|
+
return entitySet.name === aPathSplit[1];
|
|
1090
|
+
});
|
|
1091
|
+
var relativePath = aPathSplit.slice(2).join("/");
|
|
1092
|
+
var localObjects = [targetEntitySet];
|
|
1093
|
+
|
|
1094
|
+
while (relativePath && relativePath.length > 0 && relativePath.startsWith("$NavigationPropertyBinding")) {
|
|
1095
|
+
var _sNavPropToCheck;
|
|
1096
|
+
|
|
1097
|
+
var relativeSplit = relativePath.split("/");
|
|
1098
|
+
var idx = 0;
|
|
1099
|
+
var currentEntitySet = void 0,
|
|
1100
|
+
sNavPropToCheck = void 0;
|
|
1101
|
+
relativeSplit = relativeSplit.slice(1); // Removing "$NavigationPropertyBinding"
|
|
1102
|
+
|
|
1103
|
+
while (!currentEntitySet && relativeSplit.length > idx && relativeSplit[idx] !== "$NavigationPropertyBinding") {
|
|
1104
|
+
// Finding the correct entitySet for the navigaiton property binding example: "Set/_SalesOrder"
|
|
1105
|
+
sNavPropToCheck = relativeSplit.slice(0, idx + 1).join("/");
|
|
1106
|
+
currentEntitySet = targetEntitySet && targetEntitySet.navigationPropertyBinding[sNavPropToCheck];
|
|
1107
|
+
idx++;
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
if (!currentEntitySet) {
|
|
1111
|
+
// Fall back to Single nav prop if entitySet is not found.
|
|
1112
|
+
sNavPropToCheck = relativeSplit[0];
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
var aNavProps = ((_sNavPropToCheck = sNavPropToCheck) === null || _sNavPropToCheck === void 0 ? void 0 : _sNavPropToCheck.split("/")) || [];
|
|
1116
|
+
var targetEntityType = targetEntitySet && targetEntitySet.entityType;
|
|
1117
|
+
|
|
1118
|
+
var _iterator = _createForOfIteratorHelper(aNavProps),
|
|
1119
|
+
_step;
|
|
1120
|
+
|
|
1121
|
+
try {
|
|
1122
|
+
var _loop = function () {
|
|
1123
|
+
var sNavProp = _step.value;
|
|
1124
|
+
// Pushing all nav props to the visited objects. example: "Set", "_SalesOrder" for "Set/_SalesOrder"(in NavigationPropertyBinding)
|
|
1125
|
+
var targetNavProp = targetEntityType && targetEntityType.navigationProperties.find(function (navProp) {
|
|
1126
|
+
return navProp.name === sNavProp;
|
|
1127
|
+
});
|
|
1128
|
+
|
|
1129
|
+
if (targetNavProp) {
|
|
1130
|
+
localObjects.push(targetNavProp);
|
|
1131
|
+
targetEntityType = targetNavProp.targetType;
|
|
1132
|
+
} else {
|
|
1133
|
+
return "break";
|
|
1134
|
+
}
|
|
1135
|
+
};
|
|
1136
|
+
|
|
1137
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1138
|
+
var _ret = _loop();
|
|
1139
|
+
|
|
1140
|
+
if (_ret === "break") break;
|
|
1141
|
+
}
|
|
1142
|
+
} catch (err) {
|
|
1143
|
+
_iterator.e(err);
|
|
1144
|
+
} finally {
|
|
1145
|
+
_iterator.f();
|
|
1146
|
+
}
|
|
1147
|
+
|
|
1148
|
+
targetEntitySet = targetEntitySet && currentEntitySet || targetEntitySet && targetEntitySet.navigationPropertyBinding[relativeSplit[0]];
|
|
1149
|
+
|
|
1150
|
+
if (targetEntitySet) {
|
|
1151
|
+
// Pushing the target entitySet to visited objects
|
|
1152
|
+
localObjects.push(targetEntitySet);
|
|
1153
|
+
} // Re-calculating the relative path
|
|
1154
|
+
|
|
1155
|
+
|
|
1156
|
+
relativePath = relativeSplit.slice(aNavProps.length || 1).join("/");
|
|
1157
|
+
}
|
|
1158
|
+
|
|
1159
|
+
if (relativePath.startsWith("$Type")) {
|
|
1160
|
+
// We're anyway going to look on the entityType...
|
|
1161
|
+
relativePath = aPathSplit.slice(3).join("/");
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
if (targetEntitySet && relativePath.length) {
|
|
1165
|
+
var oTarget = targetEntitySet.entityType.resolvePath(relativePath, bIncludeVisitedObjects);
|
|
1166
|
+
|
|
1167
|
+
if (oTarget) {
|
|
1168
|
+
if (bIncludeVisitedObjects) {
|
|
1169
|
+
oTarget.visitedObjects = localObjects.concat(oTarget.visitedObjects);
|
|
1170
|
+
}
|
|
1171
|
+
} else if (targetEntitySet.entityType && targetEntitySet.entityType.actions) {
|
|
1172
|
+
// if target is an action or an action parameter
|
|
1173
|
+
var actions = targetEntitySet.entityType && targetEntitySet.entityType.actions;
|
|
1174
|
+
|
|
1175
|
+
var _relativeSplit = relativePath.split("/");
|
|
1176
|
+
|
|
1177
|
+
if (actions[_relativeSplit[0]]) {
|
|
1178
|
+
var action = actions[_relativeSplit[0]];
|
|
1179
|
+
|
|
1180
|
+
if (_relativeSplit[1] && action.parameters) {
|
|
1181
|
+
var parameterName = _relativeSplit[1];
|
|
1182
|
+
var targetParameter = action.parameters.find(function (parameter) {
|
|
1183
|
+
return parameter.fullyQualifiedName.endsWith("/" + parameterName);
|
|
1184
|
+
});
|
|
1185
|
+
return targetParameter;
|
|
1186
|
+
} else if (relativePath.length === 1) {
|
|
1187
|
+
return action;
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
return oTarget;
|
|
1193
|
+
} else {
|
|
1194
|
+
if (bIncludeVisitedObjects) {
|
|
1195
|
+
return {
|
|
1196
|
+
target: targetEntitySet,
|
|
1197
|
+
visitedObjects: localObjects
|
|
1198
|
+
};
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
return targetEntitySet;
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1204
|
+
|
|
1205
|
+
_exports.convertMetaModelContext = convertMetaModelContext;
|
|
1206
|
+
|
|
1207
|
+
function getInvolvedDataModelObjects(oMetaModelContext, oEntitySetMetaModelContext) {
|
|
1208
|
+
var metaModelContext = convertMetaModelContext(oMetaModelContext, true);
|
|
1209
|
+
var targetEntitySetLocation;
|
|
1210
|
+
|
|
1211
|
+
if (oEntitySetMetaModelContext && oEntitySetMetaModelContext.getPath() !== "/") {
|
|
1212
|
+
targetEntitySetLocation = getInvolvedDataModelObjects(oEntitySetMetaModelContext);
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
return getInvolvedDataModelObjectFromPath(metaModelContext, targetEntitySetLocation);
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
_exports.getInvolvedDataModelObjects = getInvolvedDataModelObjects;
|
|
1219
|
+
|
|
1220
|
+
function getInvolvedDataModelObjectFromPath(metaModelContext, targetEntitySetLocation) {
|
|
1221
|
+
var dataModelObjects = metaModelContext.visitedObjects.filter(function (visitedObject) {
|
|
1222
|
+
return visitedObject && visitedObject.hasOwnProperty("_type") && visitedObject._type !== "EntityType";
|
|
1223
|
+
});
|
|
1224
|
+
|
|
1225
|
+
if (metaModelContext.target && metaModelContext.target.hasOwnProperty("_type") && metaModelContext.target._type !== "EntityType") {
|
|
1226
|
+
dataModelObjects.push(metaModelContext.target);
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
var navigationProperties = [];
|
|
1230
|
+
var rootEntitySet = dataModelObjects[0]; // currentEntitySet can be undefined.
|
|
1231
|
+
|
|
1232
|
+
var currentEntitySet = rootEntitySet;
|
|
1233
|
+
var currentEntityType = rootEntitySet.entityType;
|
|
1234
|
+
var i = 1;
|
|
1235
|
+
var currentObject;
|
|
1236
|
+
var navigatedPaths = [];
|
|
1237
|
+
|
|
1238
|
+
while (i < dataModelObjects.length) {
|
|
1239
|
+
currentObject = dataModelObjects[i++];
|
|
1240
|
+
|
|
1241
|
+
if (currentObject._type === "NavigationProperty") {
|
|
1242
|
+
navigatedPaths.push(currentObject.name);
|
|
1243
|
+
navigationProperties.push(currentObject);
|
|
1244
|
+
currentEntityType = currentObject.targetType;
|
|
1245
|
+
|
|
1246
|
+
if (currentEntitySet && currentEntitySet.navigationPropertyBinding.hasOwnProperty(navigatedPaths.join("/"))) {
|
|
1247
|
+
currentEntitySet = currentEntitySet.navigationPropertyBinding[currentObject.name];
|
|
1248
|
+
navigatedPaths = [];
|
|
1249
|
+
} else {
|
|
1250
|
+
currentEntitySet = undefined;
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
if (currentObject._type === "EntitySet") {
|
|
1255
|
+
currentEntitySet = currentObject;
|
|
1256
|
+
currentEntityType = currentEntitySet.entityType;
|
|
1257
|
+
}
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
if (targetEntitySetLocation && targetEntitySetLocation.startingEntitySet !== rootEntitySet) {
|
|
1261
|
+
// In case the entityset is not starting from the same location it may mean that we are doing too much work earlier for some reason
|
|
1262
|
+
// As such we need to redefine the context source for the targetEntitySetLocation
|
|
1263
|
+
var startingIndex = dataModelObjects.indexOf(targetEntitySetLocation.startingEntitySet);
|
|
1264
|
+
|
|
1265
|
+
if (startingIndex !== -1) {
|
|
1266
|
+
// If it's not found I don't know what we can do (probably nothing)
|
|
1267
|
+
var requiredDataModelObjects = dataModelObjects.slice(0, startingIndex);
|
|
1268
|
+
targetEntitySetLocation.startingEntitySet = rootEntitySet;
|
|
1269
|
+
targetEntitySetLocation.navigationProperties = requiredDataModelObjects.filter(function (object) {
|
|
1270
|
+
return object._type === "NavigationProperty";
|
|
1271
|
+
}).concat(targetEntitySetLocation.navigationProperties);
|
|
1272
|
+
}
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
var outDataModelPath = {
|
|
1276
|
+
startingEntitySet: rootEntitySet,
|
|
1277
|
+
targetEntitySet: currentEntitySet,
|
|
1278
|
+
targetEntityType: currentEntityType,
|
|
1279
|
+
targetObject: metaModelContext.target,
|
|
1280
|
+
navigationProperties: navigationProperties,
|
|
1281
|
+
contextLocation: targetEntitySetLocation
|
|
1282
|
+
};
|
|
1283
|
+
|
|
1284
|
+
if (!outDataModelPath.contextLocation) {
|
|
1285
|
+
outDataModelPath.contextLocation = outDataModelPath;
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
return outDataModelPath;
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1291
|
+
_exports.getInvolvedDataModelObjectFromPath = getInvolvedDataModelObjectFromPath;
|
|
1292
|
+
return _exports;
|
|
1293
|
+
}, false);
|
|
1294
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk1ldGFNb2RlbENvbnZlcnRlci50cyJdLCJuYW1lcyI6WyJWT0NBQlVMQVJZX0FMSUFTIiwiRGVmYXVsdEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiQ2hhcnQiLCJNaWNyb0NoYXJ0IiwiVVNoZWxsIiwiSW50ZW50QmFzZWROYXZpZ2F0aW9uIiwiTWV0YU1vZGVsQ29udmVydGVyIiwicGFyc2VQcm9wZXJ0eVZhbHVlIiwiYW5ub3RhdGlvbk9iamVjdCIsInByb3BlcnR5S2V5IiwiY3VycmVudFRhcmdldCIsImFubm90YXRpb25zTGlzdHMiLCJvQ2FwYWJpbGl0aWVzIiwidmFsdWUiLCJjdXJyZW50UHJvcGVydHlUYXJnZXQiLCJ0eXBlIiwiTnVsbCIsIlN0cmluZyIsIkJvb2wiLCJJbnQiLCJBcnJheSIsImlzQXJyYXkiLCJDb2xsZWN0aW9uIiwibWFwIiwic3ViQW5ub3RhdGlvbk9iamVjdCIsInN1YkFubm90YXRpb25PYmplY3RJbmRleCIsInBhcnNlQW5ub3RhdGlvbk9iamVjdCIsImxlbmd0aCIsImhhc093blByb3BlcnR5IiwiJFBhdGgiLCJ1bmRlZmluZWQiLCJQYXRoIiwiJERlY2ltYWwiLCJEZWNpbWFsIiwicGFyc2VGbG9hdCIsIiRQcm9wZXJ0eVBhdGgiLCJQcm9wZXJ0eVBhdGgiLCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aCIsIk5hdmlnYXRpb25Qcm9wZXJ0eVBhdGgiLCIkSWYiLCJJZiIsIiRBbmQiLCJBbmQiLCIkT3IiLCJPciIsIiROb3QiLCJOb3QiLCIkRXEiLCJFcSIsIiROZSIsIk5lIiwiJEd0IiwiR3QiLCIkR2UiLCJHZSIsIiRMdCIsIkx0IiwiJExlIiwiTGUiLCIkQXBwbHkiLCJBcHBseSIsIkZ1bmN0aW9uIiwiJEZ1bmN0aW9uIiwiJEFubm90YXRpb25QYXRoIiwiQW5ub3RhdGlvblBhdGgiLCIkRW51bU1lbWJlciIsIkVudW1NZW1iZXIiLCJtYXBOYW1lVG9BbGlhcyIsInNwbGl0IiwiJFR5cGUiLCJSZWNvcmQiLCJuYW1lIiwiYW5ub3RhdGlvbk5hbWUiLCJwYXRoUGFydCIsImFubm9QYXJ0IiwibGFzdERvdCIsImxhc3RJbmRleE9mIiwic3Vic3RyIiwiY3VycmVudE9iamVjdFRhcmdldCIsInBhcnNlZEFubm90YXRpb25PYmplY3QiLCJwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbiIsImNvbGxlY3Rpb24iLCJzdWJBbm5vdGF0aW9uSW5kZXgiLCJ0eXBlVmFsdWUiLCJwcm9wZXJ0eVZhbHVlcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwic3RhcnRzV2l0aCIsInB1c2giLCJjcmVhdGVBbm5vdGF0aW9uTGlzdHMiLCJnZXRPckNyZWF0ZUFubm90YXRpb25MaXN0IiwidGFyZ2V0IiwicG90ZW50aWFsVGFyZ2V0IiwiZmluZCIsImFubm90YXRpb25MaXN0IiwiYW5ub3RhdGlvbnMiLCJhbm5vdGF0aW9uT2JqZWN0cyIsImFubm90YXRpb25UYXJnZXQiLCJhbm5vdGF0aW9uTGlzdHMiLCJvdXRBbm5vdGF0aW9uT2JqZWN0IiwicmVtb3ZlQ2hhcnRBbm5vdGF0aW9ucyIsImZpbHRlciIsIm9SZWNvcmQiLCJUYXJnZXQiLCJpbmRleE9mIiwicmVtb3ZlSUJOQW5ub3RhdGlvbnMiLCJoYW5kbGVQcmVzZW50YXRpb25WYXJpYW50IiwiYW5ub3RhdGlvbktleSIsIkRhdGEiLCJWaXN1YWxpemF0aW9ucyIsImN1cnJlbnRPdXRBbm5vdGF0aW9uT2JqZWN0IiwiYW5ub3RhdGlvbk9mQW5ub3RhdGlvblNwbGl0IiwiYW5ub3RhdGlvblF1YWxpZmllclNwbGl0IiwicXVhbGlmaWVyIiwidGVybSIsImN1cnJlbnRBbm5vdGF0aW9uVGFyZ2V0IiwiaXNDb2xsZWN0aW9uIiwicmVjb3JkIiwicGFyc2VQcm9wZXJ0eSIsIm9NZXRhTW9kZWwiLCJlbnRpdHlUeXBlT2JqZWN0IiwicHJvcGVydHlOYW1lIiwicHJvcGVydHlBbm5vdGF0aW9uIiwiZ2V0T2JqZWN0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwicHJvcGVydHlEZWZpbml0aW9uIiwicHJvcGVydHlPYmplY3QiLCJfdHlwZSIsIm1heExlbmd0aCIsIiRNYXhMZW5ndGgiLCJwcmVjaXNpb24iLCIkUHJlY2lzaW9uIiwic2NhbGUiLCIkU2NhbGUiLCJudWxsYWJsZSIsIiROdWxsYWJsZSIsInBhcnNlTmF2aWdhdGlvblByb3BlcnR5IiwibmF2UHJvcGVydHlOYW1lIiwibmF2UHJvcGVydHlBbm5vdGF0aW9uIiwibmF2UHJvcGVydHlEZWZpbml0aW9uIiwicmVmZXJlbnRpYWxDb25zdHJhaW50IiwiJFJlZmVyZW50aWFsQ29uc3RyYWludCIsInNvdXJjZVByb3BlcnR5TmFtZSIsInNvdXJjZVR5cGVOYW1lIiwic291cmNlUHJvcGVydHkiLCJ0YXJnZXRUeXBlTmFtZSIsInRhcmdldFByb3BlcnR5IiwibmF2aWdhdGlvblByb3BlcnR5IiwicGFydG5lciIsIiRQYXJ0bmVyIiwiJGlzQ29sbGVjdGlvbiIsImNvbnRhaW5zVGFyZ2V0IiwiJENvbnRhaW5zVGFyZ2V0IiwicGFyc2VFbnRpdHlTZXQiLCJlbnRpdHlTZXROYW1lIiwiZW50aXR5Q29udGFpbmVyTmFtZSIsImVudGl0eVNldERlZmluaXRpb24iLCJlbnRpdHlTZXRBbm5vdGF0aW9uIiwiZW50aXR5U2V0T2JqZWN0IiwibmF2aWdhdGlvblByb3BlcnR5QmluZGluZyIsImVudGl0eVR5cGVOYW1lIiwicGFyc2VTaW5nbGV0b24iLCJzaW5nbGV0b25OYW1lIiwic2luZ2xldG9uRGVmaW5pdGlvbiIsInNpbmdsZXRvbkFubm90YXRpb24iLCJzaW5nbGV0b25PYmplY3QiLCJ0eXBlTmFtZSIsInBhcnNlRW50aXR5VHlwZSIsIm5hbWVzcGFjZSIsImVudGl0eVR5cGVBbm5vdGF0aW9uIiwiZW50aXR5VHlwZURlZmluaXRpb24iLCJlbnRpdHlLZXlzIiwiZ2V0RW50aXR5S2V5cyIsIiRLZXkiLCIkQmFzZVR5cGUiLCJyZXBsYWNlIiwiZW50aXR5UHJvcGVydGllcyIsIm5hdmlnYXRpb25Qcm9wZXJ0aWVzIiwicHJvcGVydHlOYW1lT3JOb3QiLCIka2luZCIsImVudGl0eUtleSIsInByb3BlcnR5IiwicGFyc2VDb21wbGV4VHlwZSIsImNvbXBsZXhUeXBlTmFtZSIsImNvbXBsZXhUeXBlQW5ub3RhdGlvbiIsImNvbXBsZXhUeXBlRGVmaW5pdGlvbiIsImNvbXBsZXhUeXBlT2JqZWN0IiwicHJvcGVydGllcyIsImNvbXBsZXhUeXBlUHJvcGVydGllcyIsImNvbXBsZXhUeXBlTmF2aWdhdGlvblByb3BlcnRpZXMiLCJwYXJzZUFjdGlvbiIsImFjdGlvbk5hbWUiLCJhY3Rpb25SYXdEYXRhIiwiYWN0aW9uRW50aXR5VHlwZSIsImFjdGlvbkZRTiIsImFjdGlvblNob3J0TmFtZSIsIiRJc0JvdW5kIiwiYmluZGluZ1BhcmFtZXRlciIsIiRQYXJhbWV0ZXIiLCJwYXJhbWV0ZXJzIiwiaXNCb3VuZCIsInNvdXJjZVR5cGUiLCJyZXR1cm5UeXBlIiwiJFJldHVyblR5cGUiLCJwYXJhbSIsImlzRW50aXR5U2V0IiwiJEVudGl0eVNldFBhdGgiLCIkTmFtZSIsInBhcnNlRW50aXR5VHlwZXMiLCJvSW5DYXBhYmlsaXRpZXMiLCJvTWV0YU1vZGVsRGF0YSIsIm9FbnRpdHlTZXRzIiwiZW50aXR5VHlwZXMiLCJlbnRpdHlTZXRzIiwic2luZ2xldG9ucyIsImNvbXBsZXhUeXBlcyIsIiRFbnRpdHlDb250YWluZXIiLCJzY2hlbWFLZXlzIiwibWV0YW1vZGVsS2V5IiwiZW50aXR5VHlwZSIsImVudGl0eVByb3BlcnR5IiwiJEFubm90YXRpb25zIiwiVmFsdWUiLCJlbnRpdHlTZXQiLCJzaW5nbGV0b24iLCJjb21wbGV4VHlwZSIsIm9FbnRpdHlDb250YWluZXJOYW1lIiwiZW50aXR5Q29udGFpbmVyIiwibmF2UHJvcGVydHlCaW5kaW5ncyIsIiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nIiwibmF2UHJvcE5hbWUiLCJ0YXJnZXRFbnRpdHlTZXQiLCJhY3Rpb25zIiwia2V5IiwicmVkdWNlIiwib3V0QWN0aW9ucyIsImFjdGlvbiIsImFjdGlvbkFubm90YXRpb25zIiwiYWN0aW9uc05hbWVXaXRob3V0T3ZlcmxvYWQiLCJlbnRpdHlDb250YWluZXJBbm5vdGF0aW9ucyIsInNvcnQiLCJhIiwiYiIsInJlZmVyZW5jZXMiLCJpZGVudGlmaWNhdGlvbiIsInZlcnNpb24iLCJzY2hlbWEiLCJhc3NvY2lhdGlvbnMiLCJtTWV0YU1vZGVsTWFwIiwiY29udmVydFR5cGVzIiwic01ldGFNb2RlbElkIiwiaWQiLCJwYXJzZWRPdXRwdXQiLCJBbm5vdGF0aW9uQ29udmVydGVyIiwiZGVsZXRlTW9kZWxDYWNoZURhdGEiLCJjb252ZXJ0TWV0YU1vZGVsQ29udGV4dCIsIm9NZXRhTW9kZWxDb250ZXh0IiwiYkluY2x1ZGVWaXNpdGVkT2JqZWN0cyIsIm9Db252ZXJ0ZXJPdXRwdXQiLCJnZXRNb2RlbCIsInNQYXRoIiwiZ2V0UGF0aCIsImFQYXRoU3BsaXQiLCJyZWxhdGl2ZVBhdGgiLCJzbGljZSIsImpvaW4iLCJsb2NhbE9iamVjdHMiLCJyZWxhdGl2ZVNwbGl0IiwiaWR4IiwiY3VycmVudEVudGl0eVNldCIsInNOYXZQcm9wVG9DaGVjayIsImFOYXZQcm9wcyIsInRhcmdldEVudGl0eVR5cGUiLCJzTmF2UHJvcCIsInRhcmdldE5hdlByb3AiLCJuYXZQcm9wIiwidGFyZ2V0VHlwZSIsIm9UYXJnZXQiLCJyZXNvbHZlUGF0aCIsInZpc2l0ZWRPYmplY3RzIiwiY29uY2F0IiwicGFyYW1ldGVyTmFtZSIsInRhcmdldFBhcmFtZXRlciIsInBhcmFtZXRlciIsImVuZHNXaXRoIiwiZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzIiwib0VudGl0eVNldE1ldGFNb2RlbENvbnRleHQiLCJtZXRhTW9kZWxDb250ZXh0IiwidGFyZ2V0RW50aXR5U2V0TG9jYXRpb24iLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdEZyb21QYXRoIiwiZGF0YU1vZGVsT2JqZWN0cyIsInZpc2l0ZWRPYmplY3QiLCJyb290RW50aXR5U2V0IiwiY3VycmVudEVudGl0eVR5cGUiLCJpIiwiY3VycmVudE9iamVjdCIsIm5hdmlnYXRlZFBhdGhzIiwic3RhcnRpbmdFbnRpdHlTZXQiLCJzdGFydGluZ0luZGV4IiwicmVxdWlyZWREYXRhTW9kZWxPYmplY3RzIiwib2JqZWN0Iiwib3V0RGF0YU1vZGVsUGF0aCIsInRhcmdldE9iamVjdCIsImNvbnRleHRMb2NhdGlvbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVCQSxNQUFNQSxnQkFBcUIsR0FBRztBQUM3QixpQ0FBNkIsY0FEQTtBQUU3Qix5QkFBcUIsTUFGUTtBQUc3Qiw2QkFBeUIsVUFISTtBQUk3QixzQ0FBa0MsUUFKTDtBQUs3QixrQ0FBOEIsSUFMRDtBQU03Qix1Q0FBbUMsU0FOTjtBQU83Qix5Q0FBcUMsV0FQUjtBQVE3Qiw0Q0FBd0MsY0FSWDtBQVM3Qiw2Q0FBeUM7QUFUWixHQUE5QjtBQW1CTyxNQUFNQyw4QkFBOEIsR0FBRztBQUM3Q0MsSUFBQUEsS0FBSyxFQUFFLElBRHNDO0FBRTdDQyxJQUFBQSxVQUFVLEVBQUUsSUFGaUM7QUFHN0NDLElBQUFBLE1BQU0sRUFBRSxJQUhxQztBQUk3Q0MsSUFBQUEscUJBQXFCLEVBQUU7QUFKc0IsR0FBdkM7O0FBeUJQLE1BQU1DLGtCQUFrQixHQUFHO0FBQzFCQyxJQUFBQSxrQkFEMEIsWUFFekJDLGdCQUZ5QixFQUd6QkMsV0FIeUIsRUFJekJDLGFBSnlCLEVBS3pCQyxnQkFMeUIsRUFNekJDLGFBTnlCLEVBT25CO0FBQUE7O0FBQ04sVUFBSUMsS0FBSjtBQUNBLFVBQU1DLHFCQUE2QixHQUFHSixhQUFhLEdBQUcsR0FBaEIsR0FBc0JELFdBQTVEOztBQUNBLFVBQUlELGdCQUFnQixLQUFLLElBQXpCLEVBQStCO0FBQzlCSyxRQUFBQSxLQUFLLEdBQUc7QUFBRUUsVUFBQUEsSUFBSSxFQUFFLE1BQVI7QUFBZ0JDLFVBQUFBLElBQUksRUFBRTtBQUF0QixTQUFSO0FBQ0EsT0FGRCxNQUVPLElBQUksT0FBT1IsZ0JBQVAsS0FBNEIsUUFBaEMs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QUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsTUFBbkMsQ0FBSixFQUFnRDtBQUNyRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxLQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFBQUEsS0FBSyxDQUFDUyxVQUFQLENBQTBCUCxJQUExQixHQUFpQyxJQUFqQztBQUNBLFdBRk0sTUFFQSxJQUFJUCxnQkFBZ0IsQ0FBQyxDQUFELENBQWhCLENBQW9Cb0IsY0FBcEIsQ0FBbUMsS0FBbkMsQ0FBSixFQUErQztBQUNwRGYsWUFB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LCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFubm90YXRpb24sIEFubm90YXRpb25MaXN0LCBBbm5vdGF0aW9uUmVjb3JkLCBFeHByZXNzaW9uLCBQYXJzZXJPdXRwdXQgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbi8vIFRoaXMgZmlsZSBpcyByZXRyaWV2ZWQgZnJvbSBAc2FwLXV4L2Fubm90YXRpb24tY29udmVydGVyLCBzaGFyZWQgY29kZSB3aXRoIHRvb2wgc3VpdGVcbmltcG9ydCB7IEFubm90YXRpb25Db252ZXJ0ZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9jb21tb25cIjtcbmltcG9ydCB7IE9EYXRhTWV0YU1vZGVsIH0gZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NFwiO1xuaW1wb3J0IHtcblx0Q29udmVydGVyT3V0cHV0LFxuXHRFbnRpdHlTZXQgYXMgX0VudGl0eVNldCxcblx0RW50aXR5VHlwZSBhcyBfRW50aXR5VHlwZSxcblx0TmF2aWdhdGlvblByb3BlcnR5IGFzIF9OYXZpZ2F0aW9uUHJvcGVydHlcbn0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7XG5cdEVudGl0eVR5cGUsXG5cdEVudGl0eVNldCxcblx0UHJvcGVydHksXG5cdENvbXBsZXhUeXBlLFxuXHRSZWZlcmVudGlhbENvbnN0cmFpbnQsXG5cdFY0TmF2aWdhdGlvblByb3BlcnR5LFxuXHRBY3Rpb24sXG5cdFJlZmVyZW5jZSxcblx0RW50aXR5Q29udGFpbmVyLFxuXHRTaW5nbGV0b25cbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL2Rpc3QvUGFyc2VyXCI7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcInNhcC91aS9tb2RlbFwiO1xuaW1wb3J0IHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcblxuY29uc3QgVk9DQUJVTEFSWV9BTElBUzogYW55ID0ge1xuXHRcIk9yZy5PRGF0YS5DYXBhYmlsaXRpZXMuVjFcIjogXCJDYXBhYmlsaXRpZXNcIixcblx0XCJPcmcuT0RhdGEuQ29yZS5WMVwiOiBcIkNvcmVcIixcblx0XCJPcmcuT0RhdGEuTWVhc3VyZXMuVjFcIjogXCJNZWFzdXJlc1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MVwiOiBcIkNvbW1vblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxXCI6IFwiVUlcIixcblx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5TZXNzaW9uLnYxXCI6IFwiU2Vzc2lvblwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkFuYWx5dGljcy52MVwiOiBcIkFuYWx5dGljc1wiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlBlcnNvbmFsRGF0YS52MVwiOiBcIlBlcnNvbmFsRGF0YVwiLFxuXHRcImNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW11bmljYXRpb24udjFcIjogXCJDb21tdW5pY2F0aW9uXCJcbn07XG5cbmV4cG9ydCB0eXBlIEVudmlyb25tZW50Q2FwYWJpbGl0aWVzID0ge1xuXHRDaGFydDogYm9vbGVhbjtcblx0TWljcm9DaGFydDogYm9vbGVhbjtcblx0VVNoZWxsOiBib29sZWFuO1xuXHRJbnRlbnRCYXNlZE5hdmlnYXRpb246IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEVudmlyb25tZW50Q2FwYWJpbGl0aWVzID0ge1xuXHRDaGFydDogdHJ1ZSxcblx0TWljcm9DaGFydDogdHJ1ZSxcblx0VVNoZWxsOiB0cnVlLFxuXHRJbnRlbnRCYXNlZE5hdmlnYXRpb246IHRydWVcbn07XG5cbnR5cGUgTWV0YU1vZGVsQWN0aW9uID0ge1xuXHQka2luZDogXCJBY3Rpb25cIjtcblx0JElzQm91bmQ6IGJvb2xlYW47XG5cdCRFbnRpdHlTZXRQYXRoOiBzdHJpbmc7XG5cdCRQYXJhbWV0ZXI6IHtcblx0XHQkVHlwZTogc3RyaW5nO1xuXHRcdCROYW1lOiBzdHJpbmc7XG5cdFx0JE51bGxhYmxlPzogYm9vbGVhbjtcblx0XHQkTWF4TGVuZ3RoPzogbnVtYmVyO1xuXHRcdCRQcmVjaXNpb24/OiBudW1iZXI7XG5cdFx0JFNjYWxlPzogbnVtYmVyO1xuXHRcdCRpc0NvbGxlY3Rpb24/OiBib29sZWFuO1xuXHR9W107XG5cdCRSZXR1cm5UeXBlOiB7XG5cdFx0JFR5cGU6IHN0cmluZztcblx0fTtcbn07XG5cbmNvbnN0IE1ldGFNb2RlbENvbnZlcnRlciA9IHtcblx0cGFyc2VQcm9wZXJ0eVZhbHVlKFxuXHRcdGFubm90YXRpb25PYmplY3Q6IGFueSxcblx0XHRwcm9wZXJ0eUtleTogc3RyaW5nLFxuXHRcdGN1cnJlbnRUYXJnZXQ6IHN0cmluZyxcblx0XHRhbm5vdGF0aW9uc0xpc3RzOiBhbnlbXSxcblx0XHRvQ2FwYWJpbGl0aWVzOiBFbnZpcm9ubWVudENhcGFiaWxpdGllc1xuXHQpOiBhbnkge1xuXHRcdGxldCB2YWx1ZTtcblx0XHRjb25zdCBjdXJyZW50UHJvcGVydHlUYXJnZXQ6IHN0cmluZyA9IGN1cnJlbnRUYXJnZXQgKyBcIi9cIiArIHByb3BlcnR5S2V5O1xuXHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0ID09PSBudWxsKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJOdWxsXCIsIE51bGw6IG51bGwgfTtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhbm5vdGF0aW9uT2JqZWN0ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJTdHJpbmdcIiwgU3RyaW5nOiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkJvb2xcIiwgQm9vbDogYW5ub3RhdGlvbk9iamVjdCB9O1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIGFubm90YXRpb25PYmplY3QgPT09IFwibnVtYmVyXCIpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkludFwiLCBJbnQ6IGFubm90YXRpb25PYmplY3QgfTtcblx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYW5ub3RhdGlvbk9iamVjdCkpIHtcblx0XHRcdHZhbHVlID0ge1xuXHRcdFx0XHR0eXBlOiBcIkNvbGxlY3Rpb25cIixcblx0XHRcdFx0Q29sbGVjdGlvbjogYW5ub3RhdGlvbk9iamVjdC5tYXAoKHN1YkFubm90YXRpb25PYmplY3QsIHN1YkFubm90YXRpb25PYmplY3RJbmRleCkgPT5cblx0XHRcdFx0XHR0aGlzLnBhcnNlQW5ub3RhdGlvbk9iamVjdChcblx0XHRcdFx0XHRcdHN1YkFubm90YXRpb25PYmplY3QsXG5cdFx0XHRcdFx0XHRjdXJyZW50UHJvcGVydHlUYXJnZXQgKyBcIi9cIiArIHN1YkFubm90YXRpb25PYmplY3RJbmRleCxcblx0XHRcdFx0XHRcdGFubm90YXRpb25zTGlzdHMsXG5cdFx0XHRcdFx0XHRvQ2FwYWJpbGl0aWVzXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHR9O1xuXHRcdFx0aWYgKGFubm90YXRpb25PYmplY3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRQcm9wZXJ0eVBhdGhcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkUGF0aFwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiUGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkQW5ub3RhdGlvblBhdGhcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkFubm90YXRpb25QYXRoXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRUeXBlXCIpKSB7XG5cdFx0XHRcdFx0KHZhbHVlLkNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJElmXCIpKSB7XG5cdFx0XHRcdFx0KHZhbHVlLkNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJJZlwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkT3JcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIk9yXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRBbmRcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkFuZFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkRXFcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkVxXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiROZVwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmVcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJE5vdFwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTm90XCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRHdFwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiR3RcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEdlXCIpKSB7XG5cdFx0XHRcdFx0KHZhbHVlLkNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJHZVwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTHRcIikpIHtcblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkx0XCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRMZVwiKSkge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTGVcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEFwcGx5XCIpKSB7XG5cdFx0XHRcdFx0KHZhbHVlLkNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBcHBseVwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhbm5vdGF0aW9uT2JqZWN0WzBdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdFx0Ly8gJFR5cGUgaXMgb3B0aW9uYWwuLi5cblx0XHRcdFx0XHQodmFsdWUuQ29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlJlY29yZFwiO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdCh2YWx1ZS5Db2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiU3RyaW5nXCI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJFBhdGggIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dmFsdWUgPSB7IHR5cGU6IFwiUGF0aFwiLCBQYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiRQYXRoIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiREZWNpbWFsICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkRlY2ltYWxcIiwgRGVjaW1hbDogcGFyc2VGbG9hdChhbm5vdGF0aW9uT2JqZWN0LiREZWNpbWFsKSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kUHJvcGVydHlQYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIlByb3BlcnR5UGF0aFwiLCBQcm9wZXJ0eVBhdGg6IGFubm90YXRpb25PYmplY3QuJFByb3BlcnR5UGF0aCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTmF2aWdhdGlvblByb3BlcnR5UGF0aCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHtcblx0XHRcdFx0dHlwZTogXCJOYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCIsXG5cdFx0XHRcdE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IGFubm90YXRpb25PYmplY3QuJE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGhcblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRJZiAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJJZlwiLCBJZjogYW5ub3RhdGlvbk9iamVjdC4kSWYgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEFuZCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJBbmRcIiwgQW5kOiBhbm5vdGF0aW9uT2JqZWN0LiRBbmQgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJE9yICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIk9yXCIsIE9yOiBhbm5vdGF0aW9uT2JqZWN0LiRPciB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTm90ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIk5vdFwiLCBOb3Q6IGFubm90YXRpb25PYmplY3QuJE5vdCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kRXEgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dmFsdWUgPSB7IHR5cGU6IFwiRXFcIiwgRXE6IGFubm90YXRpb25PYmplY3QuJEVxIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiROZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJOZVwiLCBOZTogYW5ub3RhdGlvbk9iamVjdC4kTmUgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEd0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkd0XCIsIEd0OiBhbm5vdGF0aW9uT2JqZWN0LiRHdCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kR2UgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dmFsdWUgPSB7IHR5cGU6IFwiR2VcIiwgR2U6IGFubm90YXRpb25PYmplY3QuJEdlIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRMdCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHsgdHlwZTogXCJMdFwiLCBMdDogYW5ub3RhdGlvbk9iamVjdC4kTHQgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJExlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkxlXCIsIExlOiBhbm5vdGF0aW9uT2JqZWN0LiRMZSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kQXBwbHkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0dmFsdWUgPSB7IHR5cGU6IFwiQXBwbHlcIiwgQXBwbHk6IGFubm90YXRpb25PYmplY3QuJEFwcGx5LCBGdW5jdGlvbjogYW5ub3RhdGlvbk9iamVjdC4kRnVuY3Rpb24gfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEFubm90YXRpb25QYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHZhbHVlID0geyB0eXBlOiBcIkFubm90YXRpb25QYXRoXCIsIEFubm90YXRpb25QYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiRBbm5vdGF0aW9uUGF0aCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kRW51bU1lbWJlciAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHR2YWx1ZSA9IHtcblx0XHRcdFx0dHlwZTogXCJFbnVtTWVtYmVyXCIsXG5cdFx0XHRcdEVudW1NZW1iZXI6XG5cdFx0XHRcdFx0dGhpcy5tYXBOYW1lVG9BbGlhcyhhbm5vdGF0aW9uT2JqZWN0LiRFbnVtTWVtYmVyLnNwbGl0KFwiL1wiKVswXSkgKyBcIi9cIiArIGFubm90YXRpb25PYmplY3QuJEVudW1NZW1iZXIuc3BsaXQoXCIvXCIpWzFdXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kVHlwZSkge1xuXHRcdFx0dmFsdWUgPSB7XG5cdFx0XHRcdHR5cGU6IFwiUmVjb3JkXCIsXG5cdFx0XHRcdFJlY29yZDogdGhpcy5wYXJzZUFubm90YXRpb25PYmplY3QoYW5ub3RhdGlvbk9iamVjdCwgY3VycmVudFRhcmdldCwgYW5ub3RhdGlvbnNMaXN0cywgb0NhcGFiaWxpdGllcylcblx0XHRcdH07XG5cdFx0fSBlbHNlIHtcblx0XHRcdHZhbHVlID0ge1xuXHRcdFx0XHR0eXBlOiBcIlJlY29yZFwiLFxuXHRcdFx0XHRSZWNvcmQ6IHRoaXMucGFyc2VBbm5vdGF0aW9uT2JqZWN0KGFubm90YXRpb25PYmplY3QsIGN1cnJlbnRUYXJnZXQsIGFubm90YXRpb25zTGlzdHMsIG9DYXBhYmlsaXRpZXMpXG5cdFx0XHR9O1xuXHRcdH1cblxuXHRcdHJldHVybiB7XG5cdFx0XHRuYW1lOiBwcm9wZXJ0eUtleSxcblx0XHRcdHZhbHVlXG5cdFx0fTtcblx0fSxcblx0bWFwTmFtZVRvQWxpYXMoYW5ub3RhdGlvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0bGV0IFtwYXRoUGFydCwgYW5ub1BhcnRdID0gYW5ub3RhdGlvbk5hbWUuc3BsaXQoXCJAXCIpO1xuXHRcdGlmICghYW5ub1BhcnQpIHtcblx0XHRcdGFubm9QYXJ0ID0gcGF0aFBhcnQ7XG5cdFx0XHRwYXRoUGFydCA9IFwiXCI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHBhdGhQYXJ0ICs9IFwiQFwiO1xuXHRcdH1cblx0XHRjb25zdCBsYXN0RG90ID0gYW5ub1BhcnQubGFzdEluZGV4T2YoXCIuXCIpO1xuXHRcdHJldHVybiBwYXRoUGFydCArIFZPQ0FCVUxBUllfQUxJQVNbYW5ub1BhcnQuc3Vic3RyKDAsIGxhc3REb3QpXSArIFwiLlwiICsgYW5ub1BhcnQuc3Vic3RyKGxhc3REb3QgKyAxKTtcblx0fSxcblx0cGFyc2VBbm5vdGF0aW9uT2JqZWN0KFxuXHRcdGFubm90YXRpb25PYmplY3Q6IGFueSxcblx0XHRjdXJyZW50T2JqZWN0VGFyZ2V0OiBzdHJpbmcsXG5cdFx0YW5ub3RhdGlvbnNMaXN0czogYW55W10sXG5cdFx0b0NhcGFiaWxpdGllczogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNcblx0KTogRXhwcmVzc2lvbiB8IEFubm90YXRpb25SZWNvcmQgfCBBbm5vdGF0aW9uIHtcblx0XHRsZXQgcGFyc2VkQW5ub3RhdGlvbk9iamVjdDogYW55ID0ge307XG5cdFx0aWYgKGFubm90YXRpb25PYmplY3QgPT09IG51bGwpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiTnVsbFwiLCBOdWxsOiBudWxsIH07XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdCA9IHsgdHlwZTogXCJTdHJpbmdcIiwgU3RyaW5nOiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiQm9vbFwiLCBCb29sOiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJudW1iZXJcIikge1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdCA9IHsgdHlwZTogXCJJbnRcIiwgSW50OiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRBbm5vdGF0aW9uUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkFubm90YXRpb25QYXRoXCIsIEFubm90YXRpb25QYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiRBbm5vdGF0aW9uUGF0aCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIlBhdGhcIiwgUGF0aDogYW5ub3RhdGlvbk9iamVjdC4kUGF0aCB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kRGVjaW1hbCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkRlY2ltYWxcIiwgRGVjaW1hbDogcGFyc2VGbG9hdChhbm5vdGF0aW9uT2JqZWN0LiREZWNpbWFsKSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kUHJvcGVydHlQYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiUHJvcGVydHlQYXRoXCIsIFByb3BlcnR5UGF0aDogYW5ub3RhdGlvbk9iamVjdC4kUHJvcGVydHlQYXRoIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRJZiAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIklmXCIsIElmOiBhbm5vdGF0aW9uT2JqZWN0LiRJZiB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kQW5kICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiQW5kXCIsIEFuZDogYW5ub3RhdGlvbk9iamVjdC4kQW5kIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRPciAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIk9yXCIsIE9yOiBhbm5vdGF0aW9uT2JqZWN0LiRPciB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTm90ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiTm90XCIsIE5vdDogYW5ub3RhdGlvbk9iamVjdC4kTm90IH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRFcSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkVxXCIsIEVxOiBhbm5vdGF0aW9uT2JqZWN0LiRFcSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTmUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdCA9IHsgdHlwZTogXCJOZVwiLCBOZTogYW5ub3RhdGlvbk9iamVjdC4kTmUgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEd0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiR3RcIiwgR3Q6IGFubm90YXRpb25PYmplY3QuJEd0IH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRHZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkdlXCIsIEdlOiBhbm5vdGF0aW9uT2JqZWN0LiRHZSB9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdCA9IHsgdHlwZTogXCJMdFwiLCBMdDogYW5ub3RhdGlvbk9iamVjdC4kTHQgfTtcblx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJExlICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7IHR5cGU6IFwiTGVcIiwgTGU6IGFubm90YXRpb25PYmplY3QuJExlIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRBcHBseSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0geyB0eXBlOiBcIkFwcGx5XCIsIEFwcGx5OiBhbm5vdGF0aW9uT2JqZWN0LiRBcHBseSwgRnVuY3Rpb246IGFubm90YXRpb25PYmplY3QuJEZ1bmN0aW9uIH07XG5cdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QgPSB7XG5cdFx0XHRcdHR5cGU6IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiLFxuXHRcdFx0XHROYXZpZ2F0aW9uUHJvcGVydHlQYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kRW51bU1lbWJlciAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0ID0ge1xuXHRcdFx0XHR0eXBlOiBcIkVudW1NZW1iZXJcIixcblx0XHRcdFx0RW51bU1lbWJlcjpcblx0XHRcdFx0XHR0aGlzLm1hcE5hbWVUb0FsaWFzKGFubm90YXRpb25PYmplY3QuJEVudW1NZW1iZXIuc3BsaXQoXCIvXCIpWzBdKSArIFwiL1wiICsgYW5ub3RhdGlvbk9iamVjdC4kRW51bU1lbWJlci5zcGxpdChcIi9cIilbMV1cblx0XHRcdH07XG5cdFx0fSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGFubm90YXRpb25PYmplY3QpKSB7XG5cdFx0XHRjb25zdCBwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbiA9IHBhcnNlZEFubm90YXRpb25PYmplY3QgYXMgYW55O1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiA9IGFubm90YXRpb25PYmplY3QubWFwKChzdWJBbm5vdGF0aW9uT2JqZWN0LCBzdWJBbm5vdGF0aW9uSW5kZXgpID0+XG5cdFx0XHRcdHRoaXMucGFyc2VBbm5vdGF0aW9uT2JqZWN0KFxuXHRcdFx0XHRcdHN1YkFubm90YXRpb25PYmplY3QsXG5cdFx0XHRcdFx0Y3VycmVudE9iamVjdFRhcmdldCArIFwiL1wiICsgc3ViQW5ub3RhdGlvbkluZGV4LFxuXHRcdFx0XHRcdGFubm90YXRpb25zTGlzdHMsXG5cdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHRcdFx0aWYgKGFubm90YXRpb25PYmplY3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRQcm9wZXJ0eVBhdGhcIikpIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkUGF0aFwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiUGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkQW5ub3RhdGlvblBhdGhcIikpIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkFubm90YXRpb25QYXRoXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRUeXBlXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJElmXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJJZlwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkQW5kXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBbmRcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJE9yXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJPclwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkRXFcIikpIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkVxXCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiROZVwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmVcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJE5vdFwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTm90XCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRHdFwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiR3RcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEdlXCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJHZVwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTHRcIikpIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkx0XCI7XG5cdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRMZVwiKSkge1xuXHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uQ29sbGVjdGlvbi5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTGVcIjtcblx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEFwcGx5XCIpKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBcHBseVwiO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhbm5vdGF0aW9uT2JqZWN0WzBdID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25Db2xsZWN0aW9uLmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbkNvbGxlY3Rpb24uY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlN0cmluZ1wiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0LiRUeXBlKSB7XG5cdFx0XHRcdGNvbnN0IHR5cGVWYWx1ZSA9IGFubm90YXRpb25PYmplY3QuJFR5cGU7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudHlwZSA9IHR5cGVWYWx1ZTsgLy9gJHt0eXBlQWxpYXN9LiR7dHlwZVRlcm19YDtcblx0XHRcdH1cblx0XHRcdGNvbnN0IHByb3BlcnR5VmFsdWVzOiBhbnkgPSBbXTtcblx0XHRcdE9iamVjdC5rZXlzKGFubm90YXRpb25PYmplY3QpLmZvckVhY2gocHJvcGVydHlLZXkgPT4ge1xuXHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0cHJvcGVydHlLZXkgIT09IFwiJFR5cGVcIiAmJlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5ICE9PSBcIiRJZlwiICYmXG5cdFx0XHRcdFx0cHJvcGVydHlLZXkgIT09IFwiJEFwcGx5XCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkQW5kXCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkT3JcIiAmJlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5ICE9PSBcIiROZVwiICYmXG5cdFx0XHRcdFx0cHJvcGVydHlLZXkgIT09IFwiJEd0XCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkR2VcIiAmJlxuXHRcdFx0XHRcdHByb3BlcnR5S2V5ICE9PSBcIiRMdFwiICYmXG5cdFx0XHRcdFx0cHJvcGVydHlLZXkgIT09IFwiJExlXCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkTm90XCIgJiZcblx0XHRcdFx0XHRwcm9wZXJ0eUtleSAhPT0gXCIkRXFcIiAmJlxuXHRcdFx0XHRcdCFwcm9wZXJ0eUtleS5zdGFydHNXaXRoKFwiQFwiKVxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlcy5wdXNoKFxuXHRcdFx0XHRcdFx0dGhpcy5wYXJzZVByb3BlcnR5VmFsdWUoXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25PYmplY3RbcHJvcGVydHlLZXldLFxuXHRcdFx0XHRcdFx0XHRwcm9wZXJ0eUtleSxcblx0XHRcdFx0XHRcdFx0Y3VycmVudE9iamVjdFRhcmdldCxcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvbnNMaXN0cyxcblx0XHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0gZWxzZSBpZiAocHJvcGVydHlLZXkuc3RhcnRzV2l0aChcIkBcIikpIHtcblx0XHRcdFx0XHQvLyBBbm5vdGF0aW9uIG9mIGFubm90YXRpb25cblx0XHRcdFx0XHR0aGlzLmNyZWF0ZUFubm90YXRpb25MaXN0cyhcblx0XHRcdFx0XHRcdHsgW3Byb3BlcnR5S2V5XTogYW5ub3RhdGlvbk9iamVjdFtwcm9wZXJ0eUtleV0gfSxcblx0XHRcdFx0XHRcdGN1cnJlbnRPYmplY3RUYXJnZXQsXG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uc0xpc3RzLFxuXHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC5wcm9wZXJ0eVZhbHVlcyA9IHByb3BlcnR5VmFsdWVzO1xuXHRcdH1cblx0XHRyZXR1cm4gcGFyc2VkQW5ub3RhdGlvbk9iamVjdDtcblx0fSxcblx0Z2V0T3JDcmVhdGVBbm5vdGF0aW9uTGlzdCh0YXJnZXQ6IHN0cmluZywgYW5ub3RhdGlvbnNMaXN0czogQW5ub3RhdGlvbkxpc3RbXSk6IEFubm90YXRpb25MaXN0IHtcblx0XHRsZXQgcG90ZW50aWFsVGFyZ2V0ID0gYW5ub3RhdGlvbnNMaXN0cy5maW5kKGFubm90YXRpb25MaXN0ID0+IGFubm90YXRpb25MaXN0LnRhcmdldCA9PT0gdGFyZ2V0KTtcblx0XHRpZiAoIXBvdGVudGlhbFRhcmdldCkge1xuXHRcdFx0cG90ZW50aWFsVGFyZ2V0ID0ge1xuXHRcdFx0XHR0YXJnZXQ6IHRhcmdldCxcblx0XHRcdFx0YW5ub3RhdGlvbnM6IFtdXG5cdFx0XHR9O1xuXHRcdFx0YW5ub3RhdGlvbnNMaXN0cy5wdXNoKHBvdGVudGlhbFRhcmdldCk7XG5cdFx0fVxuXHRcdHJldHVybiBwb3RlbnRpYWxUYXJnZXQ7XG5cdH0sXG5cblx0Y3JlYXRlQW5ub3RhdGlvbkxpc3RzKFxuXHRcdGFubm90YXRpb25PYmplY3RzOiBhbnksXG5cdFx0YW5ub3RhdGlvblRhcmdldDogc3RyaW5nLFxuXHRcdGFubm90YXRpb25MaXN0czogYW55W10sXG5cdFx0b0NhcGFiaWxpdGllczogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNcblx0KSB7XG5cdFx0Y29uc3Qgb3V0QW5ub3RhdGlvbk9iamVjdCA9IHRoaXMuZ2V0T3JDcmVhdGVBbm5vdGF0aW9uTGlzdChhbm5vdGF0aW9uVGFyZ2V0LCBhbm5vdGF0aW9uTGlzdHMpO1xuXHRcdGlmICghb0NhcGFiaWxpdGllcy5NaWNyb0NoYXJ0KSB7XG5cdFx0XHRkZWxldGUgYW5ub3RhdGlvbk9iamVjdHNbXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIl07XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gcmVtb3ZlQ2hhcnRBbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0OiBhbnkpIHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0LmZpbHRlcigob1JlY29yZDogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChvUmVjb3JkLlRhcmdldCAmJiBvUmVjb3JkLlRhcmdldC4kQW5ub3RhdGlvblBhdGgpIHtcblx0XHRcdFx0XHRyZXR1cm4gb1JlY29yZC5UYXJnZXQuJEFubm90YXRpb25QYXRoLmluZGV4T2YoXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIikgPT09IC0xO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiByZW1vdmVJQk5Bbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0OiBhbnkpIHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0LmZpbHRlcigob1JlY29yZDogYW55KSA9PiB7XG5cdFx0XHRcdHJldHVybiBvUmVjb3JkLiRUeXBlICE9PSBcImNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvblwiO1xuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gaGFuZGxlUHJlc2VudGF0aW9uVmFyaWFudChhbm5vdGF0aW9uT2JqZWN0OiBhbnkpIHtcblx0XHRcdHJldHVybiBhbm5vdGF0aW9uT2JqZWN0LmZpbHRlcigob1JlY29yZDogYW55KSA9PiB7XG5cdFx0XHRcdHJldHVybiBvUmVjb3JkLiRBbm5vdGF0aW9uUGF0aCAhPT0gXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuQ2hhcnRcIjtcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdE9iamVjdC5rZXlzKGFubm90YXRpb25PYmplY3RzKS5mb3JFYWNoKGFubm90YXRpb25LZXkgPT4ge1xuXHRcdFx0bGV0IGFubm90YXRpb25PYmplY3QgPSBhbm5vdGF0aW9uT2JqZWN0c1thbm5vdGF0aW9uS2V5XTtcblx0XHRcdHN3aXRjaCAoYW5ub3RhdGlvbktleSkge1xuXHRcdFx0XHRjYXNlIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkhlYWRlckZhY2V0c1wiOlxuXHRcdFx0XHRcdGlmICghb0NhcGFiaWxpdGllcy5NaWNyb0NoYXJ0KSB7XG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uT2JqZWN0ID0gcmVtb3ZlQ2hhcnRBbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuSWRlbnRpZmljYXRpb25cIjpcblx0XHRcdFx0XHRpZiAoIW9DYXBhYmlsaXRpZXMuSW50ZW50QmFzZWROYXZpZ2F0aW9uKSB7XG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uT2JqZWN0ID0gcmVtb3ZlSUJOQW5ub3RhdGlvbnMoYW5ub3RhdGlvbk9iamVjdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkxpbmVJdGVtXCI6XG5cdFx0XHRcdFx0aWYgKCFvQ2FwYWJpbGl0aWVzLkludGVudEJhc2VkTmF2aWdhdGlvbikge1xuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbk9iamVjdCA9IHJlbW92ZUlCTkFubm90YXRpb25zKGFubm90YXRpb25PYmplY3QpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIW9DYXBhYmlsaXRpZXMuTWljcm9DaGFydCkge1xuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbk9iamVjdCA9IHJlbW92ZUNoYXJ0QW5ub3RhdGlvbnMoYW5ub3RhdGlvbk9iamVjdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZpZWxkR3JvdXBcIjpcblx0XHRcdFx0XHRpZiAoIW9DYXBhYmlsaXRpZXMuSW50ZW50QmFzZWROYXZpZ2F0aW9uKSB7XG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uT2JqZWN0LkRhdGEgPSByZW1vdmVJQk5Bbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0LkRhdGEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIW9DYXBhYmlsaXRpZXMuTWljcm9DaGFydCkge1xuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbk9iamVjdC5EYXRhID0gcmVtb3ZlQ2hhcnRBbm5vdGF0aW9ucyhhbm5vdGF0aW9uT2JqZWN0LkRhdGEpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5QcmVzZW50YXRpb25WYXJpYW50XCI6XG5cdFx0XHRcdFx0aWYgKCFvQ2FwYWJpbGl0aWVzLkNoYXJ0ICYmIGFubm90YXRpb25PYmplY3QuVmlzdWFsaXphdGlvbnMpIHtcblx0XHRcdFx0XHRcdGFubm90YXRpb25PYmplY3QuVmlzdWFsaXphdGlvbnMgPSBoYW5kbGVQcmVzZW50YXRpb25WYXJpYW50KGFubm90YXRpb25PYmplY3QuVmlzdWFsaXphdGlvbnMpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGFubm90YXRpb25PYmplY3RzW2Fubm90YXRpb25LZXldID0gYW5ub3RhdGlvbk9iamVjdDtcblx0XHRcdGxldCBjdXJyZW50T3V0QW5ub3RhdGlvbk9iamVjdCA9IG91dEFubm90YXRpb25PYmplY3Q7XG5cblx0XHRcdC8vIENoZWNrIGZvciBhbm5vdGF0aW9uIG9mIGFubm90YXRpb25cblx0XHRcdGNvbnN0IGFubm90YXRpb25PZkFubm90YXRpb25TcGxpdCA9IGFubm90YXRpb25LZXkuc3BsaXQoXCJAXCIpO1xuXHRcdFx0aWYgKGFubm90YXRpb25PZkFubm90YXRpb25TcGxpdC5sZW5ndGggPiAyKSB7XG5cdFx0XHRcdGN1cnJlbnRPdXRBbm5vdGF0aW9uT2JqZWN0ID0gdGhpcy5nZXRPckNyZWF0ZUFubm90YXRpb25MaXN0KFxuXHRcdFx0XHRcdGFubm90YXRpb25UYXJnZXQgKyBcIkBcIiArIGFubm90YXRpb25PZkFubm90YXRpb25TcGxpdFsxXSxcblx0XHRcdFx0XHRhbm5vdGF0aW9uTGlzdHNcblx0XHRcdFx0KTtcblx0XHRcdFx0YW5ub3RhdGlvbktleSA9IGFubm90YXRpb25PZkFubm90YXRpb25TcGxpdFsyXTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFubm90YXRpb25LZXkgPSBhbm5vdGF0aW9uT2ZBbm5vdGF0aW9uU3BsaXRbMV07XG5cdFx0XHR9XG5cblx0XHRcdGNvbnN0IGFubm90YXRpb25RdWFsaWZpZXJTcGxpdCA9IGFubm90YXRpb25LZXkuc3BsaXQoXCIjXCIpO1xuXHRcdFx0Y29uc3QgcXVhbGlmaWVyID0gYW5ub3RhdGlvblF1YWxpZmllclNwbGl0WzFdO1xuXHRcdFx0YW5ub3RhdGlvbktleSA9IGFubm90YXRpb25RdWFsaWZpZXJTcGxpdFswXTtcblxuXHRcdFx0Y29uc3QgcGFyc2VkQW5ub3RhdGlvbk9iamVjdDogYW55ID0ge1xuXHRcdFx0XHR0ZXJtOiBgJHthbm5vdGF0aW9uS2V5fWAsXG5cdFx0XHRcdHF1YWxpZmllcjogcXVhbGlmaWVyXG5cdFx0XHR9O1xuXHRcdFx0bGV0IGN1cnJlbnRBbm5vdGF0aW9uVGFyZ2V0ID0gYW5ub3RhdGlvblRhcmdldCArIFwiQFwiICsgcGFyc2VkQW5ub3RhdGlvbk9iamVjdC50ZXJtO1xuXHRcdFx0aWYgKHF1YWxpZmllcikge1xuXHRcdFx0XHRjdXJyZW50QW5ub3RhdGlvblRhcmdldCArPSBcIiNcIiArIHF1YWxpZmllcjtcblx0XHRcdH1cblx0XHRcdGxldCBpc0NvbGxlY3Rpb24gPSBmYWxzZTtcblx0XHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0ID09PSBudWxsKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiQm9vbFwiLCBCb29sOiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhbm5vdGF0aW9uT2JqZWN0ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiU3RyaW5nXCIsIFN0cmluZzogYW5ub3RhdGlvbk9iamVjdCB9O1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgYW5ub3RhdGlvbk9iamVjdCA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJCb29sXCIsIEJvb2w6IGFubm90YXRpb25PYmplY3QgfTtcblx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGFubm90YXRpb25PYmplY3QgPT09IFwibnVtYmVyXCIpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJJbnRcIiwgSW50OiBhbm5vdGF0aW9uT2JqZWN0IH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJElmICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJJZlwiLCBJZjogYW5ub3RhdGlvbk9iamVjdC4kSWYgfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kQW5kICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJBbmRcIiwgQW5kOiBhbm5vdGF0aW9uT2JqZWN0LiRBbmQgfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kT3IgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIk9yXCIsIE9yOiBhbm5vdGF0aW9uT2JqZWN0LiRPciB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiROb3QgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIk5vdFwiLCBOb3Q6IGFubm90YXRpb25PYmplY3QuJE5vdCB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRFcSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiRXFcIiwgRXE6IGFubm90YXRpb25PYmplY3QuJEVxIH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJE5lICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJOZVwiLCBOZTogYW5ub3RhdGlvbk9iamVjdC4kTmUgfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kR3QgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIkd0XCIsIEd0OiBhbm5vdGF0aW9uT2JqZWN0LiRHdCB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRHZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiR2VcIiwgR2U6IGFubm90YXRpb25PYmplY3QuJEdlIH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEx0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHsgdHlwZTogXCJMdFwiLCBMdDogYW5ub3RhdGlvbk9iamVjdC4kTHQgfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kTGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIkxlXCIsIExlOiBhbm5vdGF0aW9uT2JqZWN0LiRMZSB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRBcHBseSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiQXBwbHlcIiwgQXBwbHk6IGFubm90YXRpb25PYmplY3QuJEFwcGx5LCBGdW5jdGlvbjogYW5ub3RhdGlvbk9iamVjdC4kRnVuY3Rpb24gfTtcblx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdC4kUGF0aCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QudmFsdWUgPSB7IHR5cGU6IFwiUGF0aFwiLCBQYXRoOiBhbm5vdGF0aW9uT2JqZWN0LiRQYXRoIH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJEFubm90YXRpb25QYXRoICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHtcblx0XHRcdFx0XHR0eXBlOiBcIkFubm90YXRpb25QYXRoXCIsXG5cdFx0XHRcdFx0QW5ub3RhdGlvblBhdGg6IGFubm90YXRpb25PYmplY3QuJEFubm90YXRpb25QYXRoXG5cdFx0XHRcdH07XG5cdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3QuJERlY2ltYWwgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnZhbHVlID0geyB0eXBlOiBcIkRlY2ltYWxcIiwgRGVjaW1hbDogcGFyc2VGbG9hdChhbm5vdGF0aW9uT2JqZWN0LiREZWNpbWFsKSB9O1xuXHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0LiRFbnVtTWVtYmVyICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC52YWx1ZSA9IHtcblx0XHRcdFx0XHR0eXBlOiBcIkVudW1NZW1iZXJcIixcblx0XHRcdFx0XHRFbnVtTWVtYmVyOlxuXHRcdFx0XHRcdFx0dGhpcy5tYXBOYW1lVG9BbGlhcyhhbm5vdGF0aW9uT2JqZWN0LiRFbnVtTWVtYmVyLnNwbGl0KFwiL1wiKVswXSkgKyBcIi9cIiArIGFubm90YXRpb25PYmplY3QuJEVudW1NZW1iZXIuc3BsaXQoXCIvXCIpWzFdXG5cdFx0XHRcdH07XG5cdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYW5ub3RhdGlvbk9iamVjdCkpIHtcblx0XHRcdFx0aXNDb2xsZWN0aW9uID0gdHJ1ZTtcblx0XHRcdFx0cGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uID0gYW5ub3RhdGlvbk9iamVjdC5tYXAoKHN1YkFubm90YXRpb25PYmplY3QsIHN1YkFubm90YXRpb25JbmRleCkgPT5cblx0XHRcdFx0XHR0aGlzLnBhcnNlQW5ub3RhdGlvbk9iamVjdChcblx0XHRcdFx0XHRcdHN1YkFubm90YXRpb25PYmplY3QsXG5cdFx0XHRcdFx0XHRjdXJyZW50QW5ub3RhdGlvblRhcmdldCArIFwiL1wiICsgc3ViQW5ub3RhdGlvbkluZGV4LFxuXHRcdFx0XHRcdFx0YW5ub3RhdGlvbkxpc3RzLFxuXHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdFx0aWYgKGFubm90YXRpb25PYmplY3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJFByb3BlcnR5UGF0aFwiKSkge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRQYXRoXCIpKSB7XG5cdFx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiUGF0aFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiROYXZpZ2F0aW9uUHJvcGVydHlQYXRoXCIpKSB7XG5cdFx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTmF2aWdhdGlvblByb3BlcnR5UGF0aFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRBbm5vdGF0aW9uUGF0aFwiKSkge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkFubm90YXRpb25QYXRoXCI7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJFR5cGVcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkSWZcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJJZlwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRPclwiKSkge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIk9yXCI7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEVxXCIpKSB7XG5cdFx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiRXFcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTmVcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJOZVwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiROb3RcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJOb3RcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkR3RcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJHdFwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRHZVwiKSkge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIkdlXCI7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChhbm5vdGF0aW9uT2JqZWN0WzBdLmhhc093blByb3BlcnR5KFwiJEx0XCIpKSB7XG5cdFx0XHRcdFx0XHQocGFyc2VkQW5ub3RhdGlvbk9iamVjdC5jb2xsZWN0aW9uIGFzIGFueSkudHlwZSA9IFwiTHRcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkTGVcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJMZVwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAoYW5ub3RhdGlvbk9iamVjdFswXS5oYXNPd25Qcm9wZXJ0eShcIiRBbmRcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBbmRcIjtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKGFubm90YXRpb25PYmplY3RbMF0uaGFzT3duUHJvcGVydHkoXCIkQXBwbHlcIikpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJBcHBseVwiO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAodHlwZW9mIGFubm90YXRpb25PYmplY3RbMF0gPT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0XHRcdChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LmNvbGxlY3Rpb24gYXMgYW55KS50eXBlID0gXCJSZWNvcmRcIjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0KHBhcnNlZEFubm90YXRpb25PYmplY3QuY29sbGVjdGlvbiBhcyBhbnkpLnR5cGUgPSBcIlN0cmluZ1wiO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29uc3QgcmVjb3JkOiBBbm5vdGF0aW9uUmVjb3JkID0ge1xuXHRcdFx0XHRcdHByb3BlcnR5VmFsdWVzOiBbXVxuXHRcdFx0XHR9O1xuXHRcdFx0XHRpZiAoYW5ub3RhdGlvbk9iamVjdC4kVHlwZSkge1xuXHRcdFx0XHRcdGNvbnN0IHR5cGVWYWx1ZSA9IGFubm90YXRpb25PYmplY3QuJFR5cGU7XG5cdFx0XHRcdFx0cmVjb3JkLnR5cGUgPSBgJHt0eXBlVmFsdWV9YDtcblx0XHRcdFx0fVxuXHRcdFx0XHRjb25zdCBwcm9wZXJ0eVZhbHVlczogYW55W10gPSBbXTtcblx0XHRcdFx0T2JqZWN0LmtleXMoYW5ub3RhdGlvbk9iamVjdCkuZm9yRWFjaChwcm9wZXJ0eUtleSA9PiB7XG5cdFx0XHRcdFx0aWYgKHByb3BlcnR5S2V5ICE9PSBcIiRUeXBlXCIgJiYgIXByb3BlcnR5S2V5LnN0YXJ0c1dpdGgoXCJAXCIpKSB7XG5cdFx0XHRcdFx0XHRwcm9wZXJ0eVZhbHVlcy5wdXNoKFxuXHRcdFx0XHRcdFx0XHR0aGlzLnBhcnNlUHJvcGVydHlWYWx1ZShcblx0XHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uT2JqZWN0W3Byb3BlcnR5S2V5XSxcblx0XHRcdFx0XHRcdFx0XHRwcm9wZXJ0eUtleSxcblx0XHRcdFx0XHRcdFx0XHRjdXJyZW50QW5ub3RhdGlvblRhcmdldCxcblx0XHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uTGlzdHMsXG5cdFx0XHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAocHJvcGVydHlLZXkuc3RhcnRzV2l0aChcIkBcIikpIHtcblx0XHRcdFx0XHRcdC8vIEFubm90YXRpb24gb2YgcmVjb3JkXG5cdFx0XHRcdFx0XHR0aGlzLmNyZWF0ZUFubm90YXRpb25MaXN0cyhcblx0XHRcdFx0XHRcdFx0eyBbcHJvcGVydHlLZXldOiBhbm5vdGF0aW9uT2JqZWN0W3Byb3BlcnR5S2V5XSB9LFxuXHRcdFx0XHRcdFx0XHRjdXJyZW50QW5ub3RhdGlvblRhcmdldCxcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvbkxpc3RzLFxuXHRcdFx0XHRcdFx0XHRvQ2FwYWJpbGl0aWVzXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJlY29yZC5wcm9wZXJ0eVZhbHVlcyA9IHByb3BlcnR5VmFsdWVzO1xuXHRcdFx0XHRwYXJzZWRBbm5vdGF0aW9uT2JqZWN0LnJlY29yZCA9IHJlY29yZDtcblx0XHRcdH1cblx0XHRcdHBhcnNlZEFubm90YXRpb25PYmplY3QuaXNDb2xsZWN0aW9uID0gaXNDb2xsZWN0aW9uO1xuXHRcdFx0Y3VycmVudE91dEFubm90YXRpb25PYmplY3QuYW5ub3RhdGlvbnMucHVzaChwYXJzZWRBbm5vdGF0aW9uT2JqZWN0KTtcblx0XHR9KTtcblx0fSxcblx0cGFyc2VQcm9wZXJ0eShcblx0XHRvTWV0YU1vZGVsOiBhbnksXG5cdFx0ZW50aXR5VHlwZU9iamVjdDogRW50aXR5VHlwZSB8IENvbXBsZXhUeXBlLFxuXHRcdHByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRcdGFubm90YXRpb25MaXN0czogQW5ub3RhdGlvbkxpc3RbXSxcblx0XHRvQ2FwYWJpbGl0aWVzOiBFbnZpcm9ubWVudENhcGFiaWxpdGllc1xuXHQpOiBQcm9wZXJ0eSB7XG5cdFx0Y29uc3QgcHJvcGVydHlBbm5vdGF0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke3Byb3BlcnR5TmFtZX1AYCk7XG5cdFx0Y29uc3QgcHJvcGVydHlEZWZpbml0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke3Byb3BlcnR5TmFtZX1gKTtcblxuXHRcdGNvbnN0IHByb3BlcnR5T2JqZWN0OiBQcm9wZXJ0eSA9IHtcblx0XHRcdF90eXBlOiBcIlByb3BlcnR5XCIsXG5cdFx0XHRuYW1lOiBwcm9wZXJ0eU5hbWUsXG5cdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IGAke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke3Byb3BlcnR5TmFtZX1gLFxuXHRcdFx0dHlwZTogcHJvcGVydHlEZWZpbml0aW9uLiRUeXBlLFxuXHRcdFx0bWF4TGVuZ3RoOiBwcm9wZXJ0eURlZmluaXRpb24uJE1heExlbmd0aCxcblx0XHRcdHByZWNpc2lvbjogcHJvcGVydHlEZWZpbml0aW9uLiRQcmVjaXNpb24sXG5cdFx0XHRzY2FsZTogcHJvcGVydHlEZWZpbml0aW9uLiRTY2FsZSxcblx0XHRcdG51bGxhYmxlOiBwcm9wZXJ0eURlZmluaXRpb24uJE51bGxhYmxlXG5cdFx0fTtcblxuXHRcdHRoaXMuY3JlYXRlQW5ub3RhdGlvbkxpc3RzKHByb3BlcnR5QW5ub3RhdGlvbiwgcHJvcGVydHlPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lLCBhbm5vdGF0aW9uTGlzdHMsIG9DYXBhYmlsaXRpZXMpO1xuXG5cdFx0cmV0dXJuIHByb3BlcnR5T2JqZWN0O1xuXHR9LFxuXHRwYXJzZU5hdmlnYXRpb25Qcm9wZXJ0eShcblx0XHRvTWV0YU1vZGVsOiBhbnksXG5cdFx0ZW50aXR5VHlwZU9iamVjdDogRW50aXR5VHlwZSB8IENvbXBsZXhUeXBlLFxuXHRcdG5hdlByb3BlcnR5TmFtZTogc3RyaW5nLFxuXHRcdGFubm90YXRpb25MaXN0czogQW5ub3RhdGlvbkxpc3RbXSxcblx0XHRvQ2FwYWJpbGl0aWVzOiBFbnZpcm9ubWVudENhcGFiaWxpdGllc1xuXHQpOiBWNE5hdmlnYXRpb25Qcm9wZXJ0eSB7XG5cdFx0Y29uc3QgbmF2UHJvcGVydHlBbm5vdGF0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke25hdlByb3BlcnR5TmFtZX1AYCk7XG5cdFx0Y29uc3QgbmF2UHJvcGVydHlEZWZpbml0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke25hdlByb3BlcnR5TmFtZX1gKTtcblxuXHRcdGxldCByZWZlcmVudGlhbENvbnN0cmFpbnQ6IFJlZmVyZW50aWFsQ29uc3RyYWludFtdID0gW107XG5cdFx0aWYgKG5hdlByb3BlcnR5RGVmaW5pdGlvbi4kUmVmZXJlbnRpYWxDb25zdHJhaW50KSB7XG5cdFx0XHRyZWZlcmVudGlhbENvbnN0cmFpbnQgPSBPYmplY3Qua2V5cyhuYXZQcm9wZXJ0eURlZmluaXRpb24uJFJlZmVyZW50aWFsQ29uc3RyYWludCkubWFwKHNvdXJjZVByb3BlcnR5TmFtZSA9PiB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0c291cmNlVHlwZU5hbWU6IGVudGl0eVR5cGVPYmplY3QubmFtZSxcblx0XHRcdFx0XHRzb3VyY2VQcm9wZXJ0eTogc291cmNlUHJvcGVydHlOYW1lLFxuXHRcdFx0XHRcdHRhcmdldFR5cGVOYW1lOiBuYXZQcm9wZXJ0eURlZmluaXRpb24uJFR5cGUsXG5cdFx0XHRcdFx0dGFyZ2V0UHJvcGVydHk6IG5hdlByb3BlcnR5RGVmaW5pdGlvbi4kUmVmZXJlbnRpYWxDb25zdHJhaW50W3NvdXJjZVByb3BlcnR5TmFtZV1cblx0XHRcdFx0fTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRjb25zdCBuYXZpZ2F0aW9uUHJvcGVydHk6IFY0TmF2aWdhdGlvblByb3BlcnR5ID0ge1xuXHRcdFx0X3R5cGU6IFwiTmF2aWdhdGlvblByb3BlcnR5XCIsXG5cdFx0XHRuYW1lOiBuYXZQcm9wZXJ0eU5hbWUsXG5cdFx0XHRmdWxseVF1YWxpZmllZE5hbWU6IGAke2VudGl0eVR5cGVPYmplY3QuZnVsbHlRdWFsaWZpZWROYW1lfS8ke25hdlByb3BlcnR5TmFtZX1gLFxuXHRcdFx0cGFydG5lcjogbmF2UHJvcGVydHlEZWZpbml0aW9uLiRQYXJ0bmVyLFxuXHRcdFx0aXNDb2xsZWN0aW9uOiBuYXZQcm9wZXJ0eURlZmluaXRpb24uJGlzQ29sbGVjdGlvbiA/IG5hdlByb3BlcnR5RGVmaW5pdGlvbi4kaXNDb2xsZWN0aW9uIDogZmFsc2UsXG5cdFx0XHRjb250YWluc1RhcmdldDogbmF2UHJvcGVydHlEZWZpbml0aW9uLiRDb250YWluc1RhcmdldCxcblx0XHRcdHRhcmdldFR5cGVOYW1lOiBuYXZQcm9wZXJ0eURlZmluaXRpb24uJFR5cGUsXG5cdFx0XHRyZWZlcmVudGlhbENvbnN0cmFpbnRcblx0XHR9O1xuXG5cdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMobmF2UHJvcGVydHlBbm5vdGF0aW9uLCBuYXZpZ2F0aW9uUHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lLCBhbm5vdGF0aW9uTGlzdHMsIG9DYXBhYmlsaXRpZXMpO1xuXG5cdFx0cmV0dXJuIG5hdmlnYXRpb25Qcm9wZXJ0eTtcblx0fSxcblx0cGFyc2VFbnRpdHlTZXQoXG5cdFx0b01ldGFNb2RlbDogYW55LFxuXHRcdGVudGl0eVNldE5hbWU6IHN0cmluZyxcblx0XHRhbm5vdGF0aW9uTGlzdHM6IEFubm90YXRpb25MaXN0W10sXG5cdFx0ZW50aXR5Q29udGFpbmVyTmFtZTogc3RyaW5nLFxuXHRcdG9DYXBhYmlsaXRpZXM6IEVudmlyb25tZW50Q2FwYWJpbGl0aWVzXG5cdCk6IEVudGl0eVNldCB7XG5cdFx0Y29uc3QgZW50aXR5U2V0RGVmaW5pdGlvbiA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHtlbnRpdHlTZXROYW1lfWApO1xuXHRcdGNvbnN0IGVudGl0eVNldEFubm90YXRpb24gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7ZW50aXR5U2V0TmFtZX1AYCk7XG5cdFx0Y29uc3QgZW50aXR5U2V0T2JqZWN0OiBFbnRpdHlTZXQgPSB7XG5cdFx0XHRfdHlwZTogXCJFbnRpdHlTZXRcIixcblx0XHRcdG5hbWU6IGVudGl0eVNldE5hbWUsXG5cdFx0XHRuYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nOiB7fSxcblx0XHRcdGVudGl0eVR5cGVOYW1lOiBlbnRpdHlTZXREZWZpbml0aW9uLiRUeXBlLFxuXHRcdFx0ZnVsbHlRdWFsaWZpZWROYW1lOiBgJHtlbnRpdHlDb250YWluZXJOYW1lfS8ke2VudGl0eVNldE5hbWV9YFxuXHRcdH07XG5cdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMoZW50aXR5U2V0QW5ub3RhdGlvbiwgZW50aXR5U2V0T2JqZWN0LmZ1bGx5UXVhbGlmaWVkTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRyZXR1cm4gZW50aXR5U2V0T2JqZWN0O1xuXHR9LFxuXG5cdHBhcnNlU2luZ2xldG9uKFxuXHRcdG9NZXRhTW9kZWw6IGFueSxcblx0XHRzaW5nbGV0b25OYW1lOiBzdHJpbmcsXG5cdFx0YW5ub3RhdGlvbkxpc3RzOiBBbm5vdGF0aW9uTGlzdFtdLFxuXHRcdGVudGl0eUNvbnRhaW5lck5hbWU6IHN0cmluZyxcblx0XHRvQ2FwYWJpbGl0aWVzOiBFbnZpcm9ubWVudENhcGFiaWxpdGllc1xuXHQpOiBTaW5nbGV0b24ge1xuXHRcdGNvbnN0IHNpbmdsZXRvbkRlZmluaXRpb24gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7c2luZ2xldG9uTmFtZX1gKTtcblx0XHRjb25zdCBzaW5nbGV0b25Bbm5vdGF0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke3NpbmdsZXRvbk5hbWV9QGApO1xuXHRcdGNvbnN0IHNpbmdsZXRvbk9iamVjdDogU2luZ2xldG9uID0ge1xuXHRcdFx0X3R5cGU6IFwiU2luZ2xldG9uXCIsXG5cdFx0XHRuYW1lOiBzaW5nbGV0b25OYW1lLFxuXHRcdFx0bmF2aWdhdGlvblByb3BlcnR5QmluZGluZzoge30sXG5cdFx0XHR0eXBlTmFtZTogc2luZ2xldG9uRGVmaW5pdGlvbi4kVHlwZSxcblx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogYCR7ZW50aXR5Q29udGFpbmVyTmFtZX0vJHtzaW5nbGV0b25OYW1lfWAsXG5cdFx0XHRudWxsYWJsZTogdHJ1ZVxuXHRcdH07XG5cdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMoc2luZ2xldG9uQW5ub3RhdGlvbiwgc2luZ2xldG9uT2JqZWN0LmZ1bGx5UXVhbGlmaWVkTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRyZXR1cm4gc2luZ2xldG9uT2JqZWN0O1xuXHR9LFxuXG5cdHBhcnNlRW50aXR5VHlwZShcblx0XHRvTWV0YU1vZGVsOiBhbnksXG5cdFx0ZW50aXR5VHlwZU5hbWU6IHN0cmluZyxcblx0XHRhbm5vdGF0aW9uTGlzdHM6IEFubm90YXRpb25MaXN0W10sXG5cdFx0bmFtZXNwYWNlOiBzdHJpbmcsXG5cdFx0b0NhcGFiaWxpdGllczogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNcblx0KTogRW50aXR5VHlwZSB7XG5cdFx0Y29uc3QgZW50aXR5VHlwZUFubm90YXRpb24gPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7ZW50aXR5VHlwZU5hbWV9QGApO1xuXHRcdGNvbnN0IGVudGl0eVR5cGVEZWZpbml0aW9uID0gb01ldGFNb2RlbC5nZXRPYmplY3QoYC8ke2VudGl0eVR5cGVOYW1lfWApO1xuXG5cdFx0Y29uc3QgZW50aXR5S2V5czogYW55ID0gZ2V0RW50aXR5S2V5cyhlbnRpdHlUeXBlRGVmaW5pdGlvbik7XG5cblx0XHRmdW5jdGlvbiBnZXRFbnRpdHlLZXlzKGVudGl0eVR5cGVEZWZpbml0aW9uOiBhbnkpOiBhbnkge1xuXHRcdFx0aWYgKCFlbnRpdHlUeXBlRGVmaW5pdGlvbi4kS2V5ICYmIGVudGl0eVR5cGVEZWZpbml0aW9uLiRCYXNlVHlwZSkge1xuXHRcdFx0XHRyZXR1cm4gZ2V0RW50aXR5S2V5cyhvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7ZW50aXR5VHlwZURlZmluaXRpb24uJEJhc2VUeXBlfWApKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBlbnRpdHlUeXBlRGVmaW5pdGlvbi4kS2V5IHx8IFtdOyAvL2hhbmRsaW5nIG9mIGVudGl0eSB0eXBlcyB3aXRob3V0IGtleSBhcyB3ZWxsIGFzIGJhc2V0eXBlXG5cdFx0fVxuXHRcdGNvbnN0IGVudGl0eVR5cGVPYmplY3Q6IEVudGl0eVR5cGUgPSB7XG5cdFx0XHRfdHlwZTogXCJFbnRpdHlUeXBlXCIsXG5cdFx0XHRuYW1lOiBlbnRpdHlUeXBlTmFtZS5yZXBsYWNlKG5hbWVzcGFjZSArIFwiLlwiLCBcIlwiKSxcblx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogZW50aXR5VHlwZU5hbWUsXG5cdFx0XHRrZXlzOiBbXSxcblx0XHRcdGVudGl0eVByb3BlcnRpZXM6IFtdLFxuXHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXM6IFtdXG5cdFx0fTtcblxuXHRcdHRoaXMuY3JlYXRlQW5ub3RhdGlvbkxpc3RzKGVudGl0eVR5cGVBbm5vdGF0aW9uLCBlbnRpdHlUeXBlT2JqZWN0LmZ1bGx5UXVhbGlmaWVkTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRjb25zdCBlbnRpdHlQcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoZW50aXR5VHlwZURlZmluaXRpb24pXG5cdFx0XHQuZmlsdGVyKHByb3BlcnR5TmFtZU9yTm90ID0+IHtcblx0XHRcdFx0aWYgKHByb3BlcnR5TmFtZU9yTm90ICE9IFwiJEtleVwiICYmIHByb3BlcnR5TmFtZU9yTm90ICE9IFwiJGtpbmRcIikge1xuXHRcdFx0XHRcdHJldHVybiBlbnRpdHlUeXBlRGVmaW5pdGlvbltwcm9wZXJ0eU5hbWVPck5vdF0uJGtpbmQgPT09IFwiUHJvcGVydHlcIjtcblx0XHRcdFx0fVxuXHRcdFx0fSlcblx0XHRcdC5tYXAocHJvcGVydHlOYW1lID0+IHtcblx0XHRcdFx0cmV0dXJuIHRoaXMucGFyc2VQcm9wZXJ0eShvTWV0YU1vZGVsLCBlbnRpdHlUeXBlT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHR9KTtcblxuXHRcdGNvbnN0IG5hdmlnYXRpb25Qcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoZW50aXR5VHlwZURlZmluaXRpb24pXG5cdFx0XHQuZmlsdGVyKHByb3BlcnR5TmFtZU9yTm90ID0+IHtcblx0XHRcdFx0aWYgKHByb3BlcnR5TmFtZU9yTm90ICE9IFwiJEtleVwiICYmIHByb3BlcnR5TmFtZU9yTm90ICE9IFwiJGtpbmRcIikge1xuXHRcdFx0XHRcdHJldHVybiBlbnRpdHlUeXBlRGVmaW5pdGlvbltwcm9wZXJ0eU5hbWVPck5vdF0uJGtpbmQgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCI7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQubWFwKG5hdlByb3BlcnR5TmFtZSA9PiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnBhcnNlTmF2aWdhdGlvblByb3BlcnR5KG9NZXRhTW9kZWwsIGVudGl0eVR5cGVPYmplY3QsIG5hdlByb3BlcnR5TmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRcdH0pO1xuXG5cdFx0ZW50aXR5VHlwZU9iamVjdC5rZXlzID0gZW50aXR5S2V5c1xuXHRcdFx0Lm1hcCgoZW50aXR5S2V5OiBzdHJpbmcpID0+IGVudGl0eVByb3BlcnRpZXMuZmluZCgocHJvcGVydHk6IFByb3BlcnR5KSA9PiBwcm9wZXJ0eS5uYW1lID09PSBlbnRpdHlLZXkpKVxuXHRcdFx0LmZpbHRlcigocHJvcGVydHk6IFByb3BlcnR5KSA9PiBwcm9wZXJ0eSAhPT0gdW5kZWZpbmVkKTtcblx0XHRlbnRpdHlUeXBlT2JqZWN0LmVudGl0eVByb3BlcnRpZXMgPSBlbnRpdHlQcm9wZXJ0aWVzO1xuXHRcdGVudGl0eVR5cGVPYmplY3QubmF2aWdhdGlvblByb3BlcnRpZXMgPSBuYXZpZ2F0aW9uUHJvcGVydGllcztcblxuXHRcdHJldHVybiBlbnRpdHlUeXBlT2JqZWN0O1xuXHR9LFxuXHRwYXJzZUNvbXBsZXhUeXBlKFxuXHRcdG9NZXRhTW9kZWw6IGFueSxcblx0XHRjb21wbGV4VHlwZU5hbWU6IHN0cmluZyxcblx0XHRhbm5vdGF0aW9uTGlzdHM6IEFubm90YXRpb25MaXN0W10sXG5cdFx0bmFtZXNwYWNlOiBzdHJpbmcsXG5cdFx0b0NhcGFiaWxpdGllczogRW52aXJvbm1lbnRDYXBhYmlsaXRpZXNcblx0KTogQ29tcGxleFR5cGUge1xuXHRcdGNvbnN0IGNvbXBsZXhUeXBlQW5ub3RhdGlvbiA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHtjb21wbGV4VHlwZU5hbWV9QGApO1xuXHRcdGNvbnN0IGNvbXBsZXhUeXBlRGVmaW5pdGlvbiA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KGAvJHtjb21wbGV4VHlwZU5hbWV9YCk7XG5cdFx0Y29uc3QgY29tcGxleFR5cGVPYmplY3Q6IENvbXBsZXhUeXBlID0ge1xuXHRcdFx0X3R5cGU6IFwiQ29tcGxleFR5cGVcIixcblx0XHRcdG5hbWU6IGNvbXBsZXhUeXBlTmFtZS5yZXBsYWNlKG5hbWVzcGFjZSArIFwiLlwiLCBcIlwiKSxcblx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogY29tcGxleFR5cGVOYW1lLFxuXHRcdFx0cHJvcGVydGllczogW10sXG5cdFx0XHRuYXZpZ2F0aW9uUHJvcGVydGllczogW11cblx0XHR9O1xuXG5cdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMoY29tcGxleFR5cGVBbm5vdGF0aW9uLCBjb21wbGV4VHlwZU9iamVjdC5mdWxseVF1YWxpZmllZE5hbWUsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0Y29uc3QgY29tcGxleFR5cGVQcm9wZXJ0aWVzID0gT2JqZWN0LmtleXMoY29tcGxleFR5cGVEZWZpbml0aW9uKVxuXHRcdFx0LmZpbHRlcihwcm9wZXJ0eU5hbWVPck5vdCA9PiB7XG5cdFx0XHRcdGlmIChwcm9wZXJ0eU5hbWVPck5vdCAhPSBcIiRLZXlcIiAmJiBwcm9wZXJ0eU5hbWVPck5vdCAhPSBcIiRraW5kXCIpIHtcblx0XHRcdFx0XHRyZXR1cm4gY29tcGxleFR5cGVEZWZpbml0aW9uW3Byb3BlcnR5TmFtZU9yTm90XS4ka2luZCA9PT0gXCJQcm9wZXJ0eVwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9KVxuXHRcdFx0Lm1hcChwcm9wZXJ0eU5hbWUgPT4ge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5wYXJzZVByb3BlcnR5KG9NZXRhTW9kZWwsIGNvbXBsZXhUeXBlT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHR9KTtcblxuXHRcdGNvbXBsZXhUeXBlT2JqZWN0LnByb3BlcnRpZXMgPSBjb21wbGV4VHlwZVByb3BlcnRpZXM7XG5cdFx0Y29uc3QgY29tcGxleFR5cGVOYXZpZ2F0aW9uUHJvcGVydGllcyA9IE9iamVjdC5rZXlzKGNvbXBsZXhUeXBlRGVmaW5pdGlvbilcblx0XHRcdC5maWx0ZXIocHJvcGVydHlOYW1lT3JOb3QgPT4ge1xuXHRcdFx0XHRpZiAocHJvcGVydHlOYW1lT3JOb3QgIT0gXCIkS2V5XCIgJiYgcHJvcGVydHlOYW1lT3JOb3QgIT0gXCIka2luZFwiKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGNvbXBsZXhUeXBlRGVmaW5pdGlvbltwcm9wZXJ0eU5hbWVPck5vdF0uJGtpbmQgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCI7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQubWFwKG5hdlByb3BlcnR5TmFtZSA9PiB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnBhcnNlTmF2aWdhdGlvblByb3BlcnR5KG9NZXRhTW9kZWwsIGNvbXBsZXhUeXBlT2JqZWN0LCBuYXZQcm9wZXJ0eU5hbWUsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHR9KTtcblx0XHRjb21wbGV4VHlwZU9iamVjdC5uYXZpZ2F0aW9uUHJvcGVydGllcyA9IGNvbXBsZXhUeXBlTmF2aWdhdGlvblByb3BlcnRpZXM7XG5cdFx0cmV0dXJuIGNvbXBsZXhUeXBlT2JqZWN0O1xuXHR9LFxuXHRwYXJzZUFjdGlvbihhY3Rpb25OYW1lOiBzdHJpbmcsIGFjdGlvblJhd0RhdGE6IE1ldGFNb2RlbEFjdGlvbiwgbmFtZXNwYWNlOiBzdHJpbmcsIGVudGl0eUNvbnRhaW5lck5hbWU6IHN0cmluZyk6IEFjdGlvbiB7XG5cdFx0bGV0IGFjdGlvbkVudGl0eVR5cGU6IHN0cmluZyA9IFwiXCI7XG5cdFx0bGV0IGFjdGlvbkZRTiA9IGAke2FjdGlvbk5hbWV9YDtcblx0XHRjb25zdCBhY3Rpb25TaG9ydE5hbWUgPSBhY3Rpb25OYW1lLnN1YnN0cihuYW1lc3BhY2UubGVuZ3RoICsgMSk7XG5cdFx0aWYgKGFjdGlvblJhd0RhdGEuJElzQm91bmQpIHtcblx0XHRcdGNvbnN0IGJpbmRpbmdQYXJhbWV0ZXIgPSBhY3Rpb25SYXdEYXRhLiRQYXJhbWV0ZXJbMF07XG5cdFx0XHRhY3Rpb25FbnRpdHlUeXBlID0gYmluZGluZ1BhcmFtZXRlci4kVHlwZTtcblx0XHRcdGlmIChiaW5kaW5nUGFyYW1ldGVyLiRpc0NvbGxlY3Rpb24gPT09IHRydWUpIHtcblx0XHRcdFx0YWN0aW9uRlFOID0gYCR7YWN0aW9uTmFtZX0oQ29sbGVjdGlvbigke2FjdGlvbkVudGl0eVR5cGV9KSlgO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YWN0aW9uRlFOID0gYCR7YWN0aW9uTmFtZX0oJHthY3Rpb25FbnRpdHlUeXBlfSlgO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRhY3Rpb25GUU4gPSBgJHtlbnRpdHlDb250YWluZXJOYW1lfS8ke2FjdGlvblNob3J0TmFtZX1gO1xuXHRcdH1cblx0XHRjb25zdCBwYXJhbWV0ZXJzID0gYWN0aW9uUmF3RGF0YS4kUGFyYW1ldGVyIHx8IFtdO1xuXHRcdHJldHVybiB7XG5cdFx0XHRfdHlwZTogXCJBY3Rpb25cIixcblx0XHRcdG5hbWU6IGFjdGlvblNob3J0TmFtZSxcblx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogYWN0aW9uRlFOLFxuXHRcdFx0aXNCb3VuZDogYWN0aW9uUmF3RGF0YS4kSXNCb3VuZCxcblx0XHRcdHNvdXJjZVR5cGU6IGFjdGlvbkVudGl0eVR5cGUsXG5cdFx0XHRyZXR1cm5UeXBlOiBhY3Rpb25SYXdEYXRhLiRSZXR1cm5UeXBlID8gYWN0aW9uUmF3RGF0YS4kUmV0dXJuVHlwZS4kVHlwZSA6IFwiXCIsXG5cdFx0XHRwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzLm1hcChwYXJhbSA9PiB7XG5cdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0X3R5cGU6IFwiQWN0aW9uUGFyYW1ldGVyXCIsXG5cdFx0XHRcdFx0aXNFbnRpdHlTZXQ6IHBhcmFtLiRUeXBlID09PSBhY3Rpb25SYXdEYXRhLiRFbnRpdHlTZXRQYXRoLFxuXHRcdFx0XHRcdGZ1bGx5UXVhbGlmaWVkTmFtZTogYCR7YWN0aW9uRlFOfS8ke3BhcmFtLiROYW1lfWAsXG5cdFx0XHRcdFx0dHlwZTogcGFyYW0uJFR5cGVcblx0XHRcdFx0XHQvLyBUT0RPIG1pc3NpbmcgcHJvcGVydGllcyA/XG5cdFx0XHRcdH07XG5cdFx0XHR9KVxuXHRcdH07XG5cdH0sXG5cdHBhcnNlRW50aXR5VHlwZXMob01ldGFNb2RlbDogYW55LCBvSW5DYXBhYmlsaXRpZXM/OiBFbnZpcm9ubWVudENhcGFiaWxpdGllcyk6IFBhcnNlck91dHB1dCB7XG5cdFx0bGV0IG9DYXBhYmlsaXRpZXM6IEVudmlyb25tZW50Q2FwYWJpbGl0aWVzO1xuXHRcdGlmICghb0luQ2FwYWJpbGl0aWVzKSB7XG5cdFx0XHRvQ2FwYWJpbGl0aWVzID0gRGVmYXVsdEVudmlyb25tZW50Q2FwYWJpbGl0aWVzO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvQ2FwYWJpbGl0aWVzID0gb0luQ2FwYWJpbGl0aWVzO1xuXHRcdH1cblx0XHRjb25zdCBvTWV0YU1vZGVsRGF0YSA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KFwiLyRcIik7XG5cdFx0Y29uc3Qgb0VudGl0eVNldHMgPSBvTWV0YU1vZGVsLmdldE9iamVjdChcIi9cIik7XG5cdFx0bGV0IGFubm90YXRpb25MaXN0czogQW5ub3RhdGlvbkxpc3RbXSA9IFtdO1xuXHRcdGNvbnN0IGVudGl0eVR5cGVzOiBFbnRpdHlUeXBlW10gPSBbXTtcblx0XHRjb25zdCBlbnRpdHlTZXRzOiBFbnRpdHlTZXRbXSA9IFtdO1xuXHRcdGNvbnN0IHNpbmdsZXRvbnM6IFNpbmdsZXRvbltdID0gW107XG5cdFx0Y29uc3QgY29tcGxleFR5cGVzOiBDb21wbGV4VHlwZVtdID0gW107XG5cdFx0Y29uc3QgZW50aXR5Q29udGFpbmVyTmFtZSA9IG9NZXRhTW9kZWxEYXRhLiRFbnRpdHlDb250YWluZXI7XG5cdFx0bGV0IG5hbWVzcGFjZSA9IFwiXCI7XG5cdFx0Y29uc3Qgc2NoZW1hS2V5cyA9IE9iamVjdC5rZXlzKG9NZXRhTW9kZWxEYXRhKS5maWx0ZXIobWV0YW1vZGVsS2V5ID0+IG9NZXRhTW9kZWxEYXRhW21ldGFtb2RlbEtleV0uJGtpbmQgPT09IFwiU2NoZW1hXCIpO1xuXHRcdGlmIChzY2hlbWFLZXlzICYmIHNjaGVtYUtleXMubGVuZ3RoID4gMCkge1xuXHRcdFx0bmFtZXNwYWNlID0gc2NoZW1hS2V5c1swXS5zdWJzdHIoMCwgc2NoZW1hS2V5c1swXS5sZW5ndGggLSAxKTtcblx0XHR9IGVsc2UgaWYgKGVudGl0eVR5cGVzICYmIGVudGl0eVR5cGVzLmxlbmd0aCkge1xuXHRcdFx0bmFtZXNwYWNlID0gZW50aXR5VHlwZXNbMF0uZnVsbHlRdWFsaWZpZWROYW1lLnJlcGxhY2UoZW50aXR5VHlwZXNbMF0ubmFtZSwgXCJcIik7XG5cdFx0XHRuYW1lc3BhY2UgPSBuYW1lc3BhY2Uuc3Vic3RyKDAsIG5hbWVzcGFjZS5sZW5ndGggLSAxKTtcblx0XHR9XG5cdFx0T2JqZWN0LmtleXMob01ldGFNb2RlbERhdGEpXG5cdFx0XHQuZmlsdGVyKGVudGl0eVR5cGVOYW1lID0+IHtcblx0XHRcdFx0cmV0dXJuIGVudGl0eVR5cGVOYW1lICE9PSBcIiRraW5kXCIgJiYgb01ldGFNb2RlbERhdGFbZW50aXR5VHlwZU5hbWVdLiRraW5kID09PSBcIkVudGl0eVR5cGVcIjtcblx0XHRcdH0pXG5cdFx0XHQuZm9yRWFjaChlbnRpdHlUeXBlTmFtZSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVudGl0eVR5cGUgPSB0aGlzLnBhcnNlRW50aXR5VHlwZShvTWV0YU1vZGVsLCBlbnRpdHlUeXBlTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBuYW1lc3BhY2UsIG9DYXBhYmlsaXRpZXMpO1xuXHRcdFx0XHRlbnRpdHlUeXBlLmVudGl0eVByb3BlcnRpZXMuZm9yRWFjaChlbnRpdHlQcm9wZXJ0eSA9PiB7XG5cdFx0XHRcdFx0aWYgKCFvTWV0YU1vZGVsRGF0YS4kQW5ub3RhdGlvbnNbZW50aXR5UHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lXSkge1xuXHRcdFx0XHRcdFx0b01ldGFNb2RlbERhdGEuJEFubm90YXRpb25zW2VudGl0eVByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZV0gPSB7fTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCFvTWV0YU1vZGVsRGF0YS4kQW5ub3RhdGlvbnNbZW50aXR5UHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lXVtcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGREZWZhdWx0XCJdKSB7XG5cdFx0XHRcdFx0XHRvTWV0YU1vZGVsRGF0YS4kQW5ub3RhdGlvbnNbZW50aXR5UHJvcGVydHkuZnVsbHlRdWFsaWZpZWROYW1lXVtcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGREZWZhdWx0XCJdID0ge1xuXHRcdFx0XHRcdFx0XHQkVHlwZTogXCJjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5EYXRhRmllbGRcIixcblx0XHRcdFx0XHRcdFx0VmFsdWU6IHsgJFBhdGg6IGVudGl0eVByb3BlcnR5Lm5hbWUgfVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdHRoaXMuY3JlYXRlQW5ub3RhdGlvbkxpc3RzKFxuXHRcdFx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRcdFx0XCJAY29tLnNhcC52b2NhYnVsYXJpZXMuVUkudjEuRGF0YUZpZWxkRGVmYXVsdFwiOlxuXHRcdFx0XHRcdFx0XHRcdFx0b01ldGFNb2RlbERhdGEuJEFubm90YXRpb25zW2VudGl0eVByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZV1bXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkRhdGFGaWVsZERlZmF1bHRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XVxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRlbnRpdHlQcm9wZXJ0eS5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25MaXN0cyxcblx0XHRcdFx0XHRcdFx0b0NhcGFiaWxpdGllc1xuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRlbnRpdHlUeXBlcy5wdXNoKGVudGl0eVR5cGUpO1xuXHRcdFx0fSk7XG5cdFx0T2JqZWN0LmtleXMob0VudGl0eVNldHMpXG5cdFx0XHQuZmlsdGVyKGVudGl0eVNldE5hbWUgPT4ge1xuXHRcdFx0XHRyZXR1cm4gZW50aXR5U2V0TmFtZSAhPT0gXCIka2luZFwiICYmIG9FbnRpdHlTZXRzW2VudGl0eVNldE5hbWVdLiRraW5kID09PSBcIkVudGl0eVNldFwiO1xuXHRcdFx0fSlcblx0XHRcdC5mb3JFYWNoKGVudGl0eVNldE5hbWUgPT4ge1xuXHRcdFx0XHRjb25zdCBlbnRpdHlTZXQgPSB0aGlzLnBhcnNlRW50aXR5U2V0KG9NZXRhTW9kZWwsIGVudGl0eVNldE5hbWUsIGFubm90YXRpb25MaXN0cywgZW50aXR5Q29udGFpbmVyTmFtZSwgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHRcdGVudGl0eVNldHMucHVzaChlbnRpdHlTZXQpO1xuXHRcdFx0fSk7XG5cdFx0T2JqZWN0LmtleXMob0VudGl0eVNldHMpXG5cdFx0XHQuZmlsdGVyKHNpbmdsZXRvbk5hbWUgPT4ge1xuXHRcdFx0XHRyZXR1cm4gc2luZ2xldG9uTmFtZSAhPT0gXCIka2luZFwiICYmIG9FbnRpdHlTZXRzW3NpbmdsZXRvbk5hbWVdLiRraW5kID09PSBcIlNpbmdsZXRvblwiO1xuXHRcdFx0fSlcblx0XHRcdC5mb3JFYWNoKHNpbmdsZXRvbk5hbWUgPT4ge1xuXHRcdFx0XHRjb25zdCBzaW5nbGV0b24gPSB0aGlzLnBhcnNlU2luZ2xldG9uKG9NZXRhTW9kZWwsIHNpbmdsZXRvbk5hbWUsIGFubm90YXRpb25MaXN0cywgZW50aXR5Q29udGFpbmVyTmFtZSwgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHRcdHNpbmdsZXRvbnMucHVzaChzaW5nbGV0b24pO1xuXHRcdFx0fSk7XG5cdFx0T2JqZWN0LmtleXMob01ldGFNb2RlbERhdGEpXG5cdFx0XHQuZmlsdGVyKGNvbXBsZXhUeXBlTmFtZSA9PiB7XG5cdFx0XHRcdHJldHVybiBjb21wbGV4VHlwZU5hbWUgIT09IFwiJGtpbmRcIiAmJiBvTWV0YU1vZGVsRGF0YVtjb21wbGV4VHlwZU5hbWVdLiRraW5kID09PSBcIkNvbXBsZXhUeXBlXCI7XG5cdFx0XHR9KVxuXHRcdFx0LmZvckVhY2goY29tcGxleFR5cGVOYW1lID0+IHtcblx0XHRcdFx0Y29uc3QgY29tcGxleFR5cGUgPSB0aGlzLnBhcnNlQ29tcGxleFR5cGUob01ldGFNb2RlbCwgY29tcGxleFR5cGVOYW1lLCBhbm5vdGF0aW9uTGlzdHMsIG5hbWVzcGFjZSwgb0NhcGFiaWxpdGllcyk7XG5cdFx0XHRcdGNvbXBsZXhUeXBlcy5wdXNoKGNvbXBsZXhUeXBlKTtcblx0XHRcdH0pO1xuXHRcdGNvbnN0IG9FbnRpdHlDb250YWluZXJOYW1lID0gT2JqZWN0LmtleXMob01ldGFNb2RlbERhdGEpLmZpbmQoZW50aXR5Q29udGFpbmVyTmFtZSA9PiB7XG5cdFx0XHRyZXR1cm4gZW50aXR5Q29udGFpbmVyTmFtZSAhPT0gXCIka2luZFwiICYmIG9NZXRhTW9kZWxEYXRhW2VudGl0eUNvbnRhaW5lck5hbWVdLiRraW5kID09PSBcIkVudGl0eUNvbnRhaW5lclwiO1xuXHRcdH0pO1xuXHRcdGxldCBlbnRpdHlDb250YWluZXI6IEVudGl0eUNvbnRhaW5lciA9IHt9O1xuXHRcdGlmIChvRW50aXR5Q29udGFpbmVyTmFtZSkge1xuXHRcdFx0ZW50aXR5Q29udGFpbmVyID0ge1xuXHRcdFx0XHRuYW1lOiBvRW50aXR5Q29udGFpbmVyTmFtZS5yZXBsYWNlKG5hbWVzcGFjZSArIFwiLlwiLCBcIlwiKSxcblx0XHRcdFx0ZnVsbHlRdWFsaWZpZWROYW1lOiBvRW50aXR5Q29udGFpbmVyTmFtZVxuXHRcdFx0fTtcblx0XHR9XG5cdFx0ZW50aXR5U2V0cy5mb3JFYWNoKGVudGl0eVNldCA9PiB7XG5cdFx0XHRjb25zdCBuYXZQcm9wZXJ0eUJpbmRpbmdzID0gb01ldGFNb2RlbERhdGFbZW50aXR5Q29udGFpbmVyTmFtZV1bZW50aXR5U2V0Lm5hbWVdLiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nO1xuXHRcdFx0aWYgKG5hdlByb3BlcnR5QmluZGluZ3MpIHtcblx0XHRcdFx0T2JqZWN0LmtleXMobmF2UHJvcGVydHlCaW5kaW5ncykuZm9yRWFjaChuYXZQcm9wTmFtZSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdGFyZ2V0RW50aXR5U2V0ID0gZW50aXR5U2V0cy5maW5kKGVudGl0eVNldE5hbWUgPT4gZW50aXR5U2V0TmFtZS5uYW1lID09PSBuYXZQcm9wZXJ0eUJpbmRpbmdzW25hdlByb3BOYW1lXSk7XG5cdFx0XHRcdFx0aWYgKHRhcmdldEVudGl0eVNldCkge1xuXHRcdFx0XHRcdFx0ZW50aXR5U2V0Lm5hdmlnYXRpb25Qcm9wZXJ0eUJpbmRpbmdbbmF2UHJvcE5hbWVdID0gdGFyZ2V0RW50aXR5U2V0O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRjb25zdCBhY3Rpb25zOiBBY3Rpb25bXSA9IE9iamVjdC5rZXlzKG9NZXRhTW9kZWxEYXRhKVxuXHRcdFx0LmZpbHRlcihrZXkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gQXJyYXkuaXNBcnJheShvTWV0YU1vZGVsRGF0YVtrZXldKSAmJiBvTWV0YU1vZGVsRGF0YVtrZXldLmxlbmd0aCA+IDAgJiYgb01ldGFNb2RlbERhdGFba2V5XVswXS4ka2luZCA9PT0gXCJBY3Rpb25cIjtcblx0XHRcdH0pXG5cdFx0XHQucmVkdWNlKChvdXRBY3Rpb25zOiBBY3Rpb25bXSwgYWN0aW9uTmFtZSkgPT4ge1xuXHRcdFx0XHRjb25zdCBhY3Rpb25zID0gb01ldGFNb2RlbERhdGFbYWN0aW9uTmFtZV07XG5cdFx0XHRcdGFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uOiBNZXRhTW9kZWxBY3Rpb24pID0+IHtcblx0XHRcdFx0XHRvdXRBY3Rpb25zLnB1c2godGhpcy5wYXJzZUFjdGlvbihhY3Rpb25OYW1lLCBhY3Rpb24sIG5hbWVzcGFjZSwgZW50aXR5Q29udGFpbmVyTmFtZSkpO1xuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIG91dEFjdGlvbnM7XG5cdFx0XHR9LCBbXSk7XG5cdFx0Ly8gRklYTUUgQ3JhcHB5IGNvZGUgdG8gZGVhbCB3aXRoIGFubm90YXRpb25zIGZvciBmdW5jdGlvbnNcblx0XHRjb25zdCBhbm5vdGF0aW9ucyA9IG9NZXRhTW9kZWxEYXRhLiRBbm5vdGF0aW9ucztcblx0XHRjb25zdCBhY3Rpb25Bbm5vdGF0aW9ucyA9IE9iamVjdC5rZXlzKGFubm90YXRpb25zKS5maWx0ZXIodGFyZ2V0ID0+IHRhcmdldC5pbmRleE9mKFwiKFwiKSAhPT0gLTEpO1xuXHRcdGFjdGlvbkFubm90YXRpb25zLmZvckVhY2godGFyZ2V0ID0+IHtcblx0XHRcdHRoaXMuY3JlYXRlQW5ub3RhdGlvbkxpc3RzKG9NZXRhTW9kZWxEYXRhLiRBbm5vdGF0aW9uc1t0YXJnZXRdLCB0YXJnZXQsIGFubm90YXRpb25MaXN0cywgb0NhcGFiaWxpdGllcyk7XG5cdFx0fSk7XG5cdFx0Y29uc3QgYWN0aW9uc05hbWVXaXRob3V0T3ZlcmxvYWQgPSBhY3Rpb25zLm1hcChhY3Rpb24gPT4gYWN0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZS5zcGxpdChcIihcIilbMF0pO1xuXHRcdGFjdGlvbnNOYW1lV2l0aG91dE92ZXJsb2FkLmZvckVhY2goYWN0aW9uTmFtZSA9PiB7XG5cdFx0XHRpZiAoYW5ub3RhdGlvbnMuaGFzT3duUHJvcGVydHkoYWN0aW9uTmFtZSkpIHtcblx0XHRcdFx0dGhpcy5jcmVhdGVBbm5vdGF0aW9uTGlzdHMob01ldGFNb2RlbERhdGEuJEFubm90YXRpb25zW2FjdGlvbk5hbWVdLCBhY3Rpb25OYW1lLCBhbm5vdGF0aW9uTGlzdHMsIG9DYXBhYmlsaXRpZXMpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGNvbnN0IGVudGl0eUNvbnRhaW5lckFubm90YXRpb25zID0gYW5ub3RhdGlvbnNbZW50aXR5Q29udGFpbmVyTmFtZV07XG5cblx0XHQvLyBSZXRyaWV2ZSBFbnRpdHkgQ29udGFpbmVyIGFubm90YXRpb25zXG5cdFx0aWYgKGVudGl0eUNvbnRhaW5lckFubm90YXRpb25zKSB7XG5cdFx0XHR0aGlzLmNyZWF0ZUFubm90YXRpb25MaXN0cyhlbnRpdHlDb250YWluZXJBbm5vdGF0aW9ucywgZW50aXR5Q29udGFpbmVyTmFtZSwgYW5ub3RhdGlvbkxpc3RzLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHR9XG5cdFx0Ly8gU29ydCBieSB0YXJnZXQgbGVuZ3RoXG5cdFx0YW5ub3RhdGlvbkxpc3RzID0gYW5ub3RhdGlvbkxpc3RzLnNvcnQoKGEsIGIpID0+IChhLnRhcmdldC5sZW5ndGggPj0gYi50YXJnZXQubGVuZ3RoID8gMSA6IC0xKSk7XG5cdFx0Y29uc3QgcmVmZXJlbmNlczogUmVmZXJlbmNlW10gPSBbXTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aWRlbnRpZmljYXRpb246IFwibWV0YW1vZGVsUmVzdWx0XCIsXG5cdFx0XHR2ZXJzaW9uOiBcIjQuMFwiLFxuXHRcdFx0c2NoZW1hOiB7XG5cdFx0XHRcdGVudGl0eUNvbnRhaW5lcixcblx0XHRcdFx0ZW50aXR5U2V0cyxcblx0XHRcdFx0ZW50aXR5VHlwZXMsXG5cdFx0XHRcdGNvbXBsZXhUeXBlcyxcblx0XHRcdFx0c2luZ2xldG9ucyxcblx0XHRcdFx0YXNzb2NpYXRpb25zOiBbXSxcblx0XHRcdFx0YWN0aW9ucyxcblx0XHRcdFx0bmFtZXNwYWNlLFxuXHRcdFx0XHRhbm5vdGF0aW9uczoge1xuXHRcdFx0XHRcdFwibWV0YW1vZGVsUmVzdWx0XCI6IGFubm90YXRpb25MaXN0c1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0cmVmZXJlbmNlczogcmVmZXJlbmNlc1xuXHRcdH07XG5cdH1cbn07XG5cbmNvbnN0IG1NZXRhTW9kZWxNYXA6IFJlY29yZDxzdHJpbmcsIFBhcnNlck91dHB1dD4gPSB7fTtcblxuLyoqXG4gKiBDb252ZXJ0IHRoZSBPRGF0YU1ldGFNb2RlbCBpbnRvIGFub3RoZXIgZm9ybWF0IHRoYXQgYWxsb3cgZm9yIGVhc3kgbWFuaXB1bGF0aW9uIG9mIHRoZSBhbm5vdGF0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge09EYXRhTWV0YU1vZGVsfSBvTWV0YU1vZGVsIFRoZSBjdXJyZW50IG9EYXRhTWV0YU1vZGVsXG4gKiBAcGFyYW0gb0NhcGFiaWxpdGllcyBUaGUgY3VycmVudCBjYXBhYmlsaXRpZXNcbiAqIEByZXR1cm5zIHtDb252ZXJ0ZXJPdXRwdXR9IEFuIG9iamVjdCBjb250YWluaW5nIG9iamVjdCBsaWtlIGFubm90YXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUeXBlcyhvTWV0YU1vZGVsOiBPRGF0YU1ldGFNb2RlbCwgb0NhcGFiaWxpdGllcz86IEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKTogQ29udmVydGVyT3V0cHV0IHtcblx0Y29uc3Qgc01ldGFNb2RlbElkID0gKG9NZXRhTW9kZWwgYXMgYW55KS5pZDtcblx0aWYgKCFtTWV0YU1vZGVsTWFwLmhhc093blByb3BlcnR5KHNNZXRhTW9kZWxJZCkpIHtcblx0XHRjb25zdCBwYXJzZWRPdXRwdXQgPSBNZXRhTW9kZWxDb252ZXJ0ZXIucGFyc2VFbnRpdHlUeXBlcyhvTWV0YU1vZGVsLCBvQ2FwYWJpbGl0aWVzKTtcblx0XHRtTWV0YU1vZGVsTWFwW3NNZXRhTW9kZWxJZF0gPSBBbm5vdGF0aW9uQ29udmVydGVyLmNvbnZlcnRUeXBlcyhwYXJzZWRPdXRwdXQpO1xuXHR9XG5cdHJldHVybiAobU1ldGFNb2RlbE1hcFtzTWV0YU1vZGVsSWRdIGFzIGFueSkgYXMgQ29udmVydGVyT3V0cHV0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlTW9kZWxDYWNoZURhdGEob01ldGFNb2RlbDogT0RhdGFNZXRhTW9kZWwpIHtcblx0ZGVsZXRlIG1NZXRhTW9kZWxNYXBbKG9NZXRhTW9kZWwgYXMgYW55KS5pZF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0TWV0YU1vZGVsQ29udGV4dChvTWV0YU1vZGVsQ29udGV4dDogQ29udGV4dCwgYkluY2x1ZGVWaXNpdGVkT2JqZWN0czogYm9vbGVhbiA9IGZhbHNlKTogYW55IHtcblx0Y29uc3Qgb0NvbnZlcnRlck91dHB1dCA9IGNvbnZlcnRUeXBlcygob01ldGFNb2RlbENvbnRleHQuZ2V0TW9kZWwoKSBhcyB1bmtub3duKSBhcyBPRGF0YU1ldGFNb2RlbCk7XG5cdGNvbnN0IHNQYXRoID0gb01ldGFNb2RlbENvbnRleHQuZ2V0UGF0aCgpO1xuXG5cdGNvbnN0IGFQYXRoU3BsaXQgPSBzUGF0aC5zcGxpdChcIi9cIik7XG5cdGxldCB0YXJnZXRFbnRpdHlTZXQ6IF9FbnRpdHlTZXQgPSBvQ29udmVydGVyT3V0cHV0LmVudGl0eVNldHMuZmluZChlbnRpdHlTZXQgPT4gZW50aXR5U2V0Lm5hbWUgPT09IGFQYXRoU3BsaXRbMV0pIGFzIF9FbnRpdHlTZXQ7XG5cdGxldCByZWxhdGl2ZVBhdGggPSBhUGF0aFNwbGl0LnNsaWNlKDIpLmpvaW4oXCIvXCIpO1xuXG5cdGNvbnN0IGxvY2FsT2JqZWN0czogYW55W10gPSBbdGFyZ2V0RW50aXR5U2V0XTtcblx0d2hpbGUgKHJlbGF0aXZlUGF0aCAmJiByZWxhdGl2ZVBhdGgubGVuZ3RoID4gMCAmJiByZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChcIiROYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nXCIpKSB7XG5cdFx0bGV0IHJlbGF0aXZlU3BsaXQgPSByZWxhdGl2ZVBhdGguc3BsaXQoXCIvXCIpO1xuXHRcdGxldCBpZHggPSAwO1xuXHRcdGxldCBjdXJyZW50RW50aXR5U2V0LCBzTmF2UHJvcFRvQ2hlY2s7XG5cblx0XHRyZWxhdGl2ZVNwbGl0ID0gcmVsYXRpdmVTcGxpdC5zbGljZSgxKTsgLy8gUmVtb3ZpbmcgXCIkTmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1wiXG5cdFx0d2hpbGUgKCFjdXJyZW50RW50aXR5U2V0ICYmIHJlbGF0aXZlU3BsaXQubGVuZ3RoID4gaWR4ICYmIHJlbGF0aXZlU3BsaXRbaWR4XSAhPT0gXCIkTmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1wiKSB7XG5cdFx0XHQvLyBGaW5kaW5nIHRoZSBjb3JyZWN0IGVudGl0eVNldCBmb3IgdGhlIG5hdmlnYWl0b24gcHJvcGVydHkgYmluZGluZyBleGFtcGxlOiBcIlNldC9fU2FsZXNPcmRlclwiXG5cdFx0XHRzTmF2UHJvcFRvQ2hlY2sgPSByZWxhdGl2ZVNwbGl0LnNsaWNlKDAsIGlkeCArIDEpLmpvaW4oXCIvXCIpO1xuXHRcdFx0Y3VycmVudEVudGl0eVNldCA9IHRhcmdldEVudGl0eVNldCAmJiB0YXJnZXRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tzTmF2UHJvcFRvQ2hlY2tdO1xuXHRcdFx0aWR4Kys7XG5cdFx0fVxuXHRcdGlmICghY3VycmVudEVudGl0eVNldCkge1xuXHRcdFx0Ly8gRmFsbCBiYWNrIHRvIFNpbmdsZSBuYXYgcHJvcCBpZiBlbnRpdHlTZXQgaXMgbm90IGZvdW5kLlxuXHRcdFx0c05hdlByb3BUb0NoZWNrID0gcmVsYXRpdmVTcGxpdFswXTtcblx0XHR9XG5cdFx0Y29uc3QgYU5hdlByb3BzID0gc05hdlByb3BUb0NoZWNrPy5zcGxpdChcIi9cIikgfHwgW107XG5cdFx0bGV0IHRhcmdldEVudGl0eVR5cGUgPSB0YXJnZXRFbnRpdHlTZXQgJiYgdGFyZ2V0RW50aXR5U2V0LmVudGl0eVR5cGU7XG5cdFx0Zm9yIChjb25zdCBzTmF2UHJvcCBvZiBhTmF2UHJvcHMpIHtcblx0XHRcdC8vIFB1c2hpbmcgYWxsIG5hdiBwcm9wcyB0byB0aGUgdmlzaXRlZCBvYmplY3RzLiBleGFtcGxlOiBcIlNldFwiLCBcIl9TYWxlc09yZGVyXCIgZm9yIFwiU2V0L19TYWxlc09yZGVyXCIoaW4gTmF2aWdhdGlvblByb3BlcnR5QmluZGluZylcblx0XHRcdGNvbnN0IHRhcmdldE5hdlByb3AgPSB0YXJnZXRFbnRpdHlUeXBlICYmIHRhcmdldEVudGl0eVR5cGUubmF2aWdhdGlvblByb3BlcnRpZXMuZmluZChuYXZQcm9wID0+IG5hdlByb3AubmFtZSA9PT0gc05hdlByb3ApO1xuXHRcdFx0aWYgKHRhcmdldE5hdlByb3ApIHtcblx0XHRcdFx0bG9jYWxPYmplY3RzLnB1c2godGFyZ2V0TmF2UHJvcCk7XG5cdFx0XHRcdHRhcmdldEVudGl0eVR5cGUgPSB0YXJnZXROYXZQcm9wLnRhcmdldFR5cGU7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0dGFyZ2V0RW50aXR5U2V0ID1cblx0XHRcdCh0YXJnZXRFbnRpdHlTZXQgJiYgY3VycmVudEVudGl0eVNldCkgfHwgKHRhcmdldEVudGl0eVNldCAmJiB0YXJnZXRFbnRpdHlTZXQubmF2aWdhdGlvblByb3BlcnR5QmluZGluZ1tyZWxhdGl2ZVNwbGl0WzBdXSk7XG5cdFx0aWYgKHRhcmdldEVudGl0eVNldCkge1xuXHRcdFx0Ly8gUHVzaGluZyB0aGUgdGFyZ2V0IGVudGl0eVNldCB0byB2aXNpdGVkIG9iamVjdHNcblx0XHRcdGxvY2FsT2JqZWN0cy5wdXNoKHRhcmdldEVudGl0eVNldCk7XG5cdFx0fVxuXHRcdC8vIFJlLWNhbGN1bGF0aW5nIHRoZSByZWxhdGl2ZSBwYXRoXG5cdFx0cmVsYXRpdmVQYXRoID0gcmVsYXRpdmVTcGxpdC5zbGljZShhTmF2UHJvcHMubGVuZ3RoIHx8IDEpLmpvaW4oXCIvXCIpO1xuXHR9XG5cdGlmIChyZWxhdGl2ZVBhdGguc3RhcnRzV2l0aChcIiRUeXBlXCIpKSB7XG5cdFx0Ly8gV2UncmUgYW55d2F5IGdvaW5nIHRvIGxvb2sgb24gdGhlIGVudGl0eVR5cGUuLi5cblx0XHRyZWxhdGl2ZVBhdGggPSBhUGF0aFNwbGl0LnNsaWNlKDMpLmpvaW4oXCIvXCIpO1xuXHR9XG5cdGlmICh0YXJnZXRFbnRpdHlTZXQgJiYgcmVsYXRpdmVQYXRoLmxlbmd0aCkge1xuXHRcdGNvbnN0IG9UYXJnZXQgPSB0YXJnZXRFbnRpdHlTZXQuZW50aXR5VHlwZS5yZXNvbHZlUGF0aChyZWxhdGl2ZVBhdGgsIGJJbmNsdWRlVmlzaXRlZE9iamVjdHMpO1xuXHRcdGlmIChvVGFyZ2V0KSB7XG5cdFx0XHRpZiAoYkluY2x1ZGVWaXNpdGVkT2JqZWN0cykge1xuXHRcdFx0XHRvVGFyZ2V0LnZpc2l0ZWRPYmplY3RzID0gbG9jYWxPYmplY3RzLmNvbmNhdChvVGFyZ2V0LnZpc2l0ZWRPYmplY3RzKTtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKHRhcmdldEVudGl0eVNldC5lbnRpdHlUeXBlICYmIHRhcmdldEVudGl0eVNldC5lbnRpdHlUeXBlLmFjdGlvbnMpIHtcblx0XHRcdC8vIGlmIHRhcmdldCBpcyBhbiBhY3Rpb24gb3IgYW4gYWN0aW9uIHBhcmFtZXRlclxuXHRcdFx0Y29uc3QgYWN0aW9ucyA9IHRhcmdldEVudGl0eVNldC5lbnRpdHlUeXBlICYmIHRhcmdldEVudGl0eVNldC5lbnRpdHlUeXBlLmFjdGlvbnM7XG5cdFx0XHRjb25zdCByZWxhdGl2ZVNwbGl0ID0gcmVsYXRpdmVQYXRoLnNwbGl0KFwiL1wiKTtcblx0XHRcdGlmIChhY3Rpb25zW3JlbGF0aXZlU3BsaXRbMF1dKSB7XG5cdFx0XHRcdGNvbnN0IGFjdGlvbiA9IGFjdGlvbnNbcmVsYXRpdmVTcGxpdFswXV07XG5cdFx0XHRcdGlmIChyZWxhdGl2ZVNwbGl0WzFdICYmIGFjdGlvbi5wYXJhbWV0ZXJzKSB7XG5cdFx0XHRcdFx0Y29uc3QgcGFyYW1ldGVyTmFtZSA9IHJlbGF0aXZlU3BsaXRbMV07XG5cdFx0XHRcdFx0Y29uc3QgdGFyZ2V0UGFyYW1ldGVyID0gYWN0aW9uLnBhcmFtZXRlcnMuZmluZChwYXJhbWV0ZXIgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHBhcmFtZXRlci5mdWxseVF1YWxpZmllZE5hbWUuZW5kc1dpdGgoXCIvXCIgKyBwYXJhbWV0ZXJOYW1lKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRyZXR1cm4gdGFyZ2V0UGFyYW1ldGVyO1xuXHRcdFx0XHR9IGVsc2UgaWYgKHJlbGF0aXZlUGF0aC5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRyZXR1cm4gYWN0aW9uO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBvVGFyZ2V0O1xuXHR9IGVsc2Uge1xuXHRcdGlmIChiSW5jbHVkZVZpc2l0ZWRPYmplY3RzKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHR0YXJnZXQ6IHRhcmdldEVudGl0eVNldCxcblx0XHRcdFx0dmlzaXRlZE9iamVjdHM6IGxvY2FsT2JqZWN0c1xuXHRcdFx0fTtcblx0XHR9XG5cdFx0cmV0dXJuIHRhcmdldEVudGl0eVNldDtcblx0fVxufVxuXG50eXBlIENvbnZlcnRlck9iamVjdCA9IHtcblx0X3R5cGU6IHN0cmluZztcblx0bmFtZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFJlc29sdmVkVGFyZ2V0ID0ge1xuXHR0YXJnZXQ/OiBDb252ZXJ0ZXJPYmplY3Q7XG5cdHZpc2l0ZWRPYmplY3RzOiBDb252ZXJ0ZXJPYmplY3RbXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMob01ldGFNb2RlbENvbnRleHQ6IENvbnRleHQsIG9FbnRpdHlTZXRNZXRhTW9kZWxDb250ZXh0PzogQ29udGV4dCk6IERhdGFNb2RlbE9iamVjdFBhdGgge1xuXHRjb25zdCBtZXRhTW9kZWxDb250ZXh0ID0gY29udmVydE1ldGFNb2RlbENvbnRleHQob01ldGFNb2RlbENvbnRleHQsIHRydWUpO1xuXHRsZXQgdGFyZ2V0RW50aXR5U2V0TG9jYXRpb247XG5cdGlmIChvRW50aXR5U2V0TWV0YU1vZGVsQ29udGV4dCAmJiBvRW50aXR5U2V0TWV0YU1vZGVsQ29udGV4dC5nZXRQYXRoKCkgIT09IFwiL1wiKSB7XG5cdFx0dGFyZ2V0RW50aXR5U2V0TG9jYXRpb24gPSBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMob0VudGl0eVNldE1ldGFNb2RlbENvbnRleHQpO1xuXHR9XG5cdHJldHVybiBnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdEZyb21QYXRoKG1ldGFNb2RlbENvbnRleHQsIHRhcmdldEVudGl0eVNldExvY2F0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEludm9sdmVkRGF0YU1vZGVsT2JqZWN0RnJvbVBhdGgoXG5cdG1ldGFNb2RlbENvbnRleHQ6IFJlc29sdmVkVGFyZ2V0LFxuXHR0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbj86IERhdGFNb2RlbE9iamVjdFBhdGhcbik6IERhdGFNb2RlbE9iamVjdFBhdGgge1xuXHRjb25zdCBkYXRhTW9kZWxPYmplY3RzID0gbWV0YU1vZGVsQ29udGV4dC52aXNpdGVkT2JqZWN0cy5maWx0ZXIoXG5cdFx0KHZpc2l0ZWRPYmplY3Q6IGFueSkgPT4gdmlzaXRlZE9iamVjdCAmJiB2aXNpdGVkT2JqZWN0Lmhhc093blByb3BlcnR5KFwiX3R5cGVcIikgJiYgdmlzaXRlZE9iamVjdC5fdHlwZSAhPT0gXCJFbnRpdHlUeXBlXCJcblx0KTtcblx0aWYgKG1ldGFNb2RlbENvbnRleHQudGFyZ2V0ICYmIG1ldGFNb2RlbENvbnRleHQudGFyZ2V0Lmhhc093blByb3BlcnR5KFwiX3R5cGVcIikgJiYgbWV0YU1vZGVsQ29udGV4dC50YXJnZXQuX3R5cGUgIT09IFwiRW50aXR5VHlwZVwiKSB7XG5cdFx0ZGF0YU1vZGVsT2JqZWN0cy5wdXNoKG1ldGFNb2RlbENvbnRleHQudGFyZ2V0KTtcblx0fVxuXHRjb25zdCBuYXZpZ2F0aW9uUHJvcGVydGllczogX05hdmlnYXRpb25Qcm9wZXJ0eVtdID0gW107XG5cdGNvbnN0IHJvb3RFbnRpdHlTZXQ6IF9FbnRpdHlTZXQgPSBkYXRhTW9kZWxPYmplY3RzWzBdIGFzIF9FbnRpdHlTZXQ7XG5cdC8vIGN1cnJlbnRFbnRpdHlTZXQgY2FuIGJlIHVuZGVmaW5lZC5cblx0bGV0IGN1cnJlbnRFbnRpdHlTZXQ6IF9FbnRpdHlTZXQgfCB1bmRlZmluZWQgPSByb290RW50aXR5U2V0IGFzIF9FbnRpdHlTZXQ7XG5cdGxldCBjdXJyZW50RW50aXR5VHlwZTogX0VudGl0eVR5cGUgPSByb290RW50aXR5U2V0LmVudGl0eVR5cGU7XG5cdGxldCBpID0gMTtcblx0bGV0IGN1cnJlbnRPYmplY3Q7XG5cdGxldCBuYXZpZ2F0ZWRQYXRocyA9IFtdO1xuXHR3aGlsZSAoaSA8IGRhdGFNb2RlbE9iamVjdHMubGVuZ3RoKSB7XG5cdFx0Y3VycmVudE9iamVjdCA9IGRhdGFNb2RlbE9iamVjdHNbaSsrXTtcblx0XHRpZiAoY3VycmVudE9iamVjdC5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIikge1xuXHRcdFx0bmF2aWdhdGVkUGF0aHMucHVzaChjdXJyZW50T2JqZWN0Lm5hbWUpO1xuXHRcdFx0bmF2aWdhdGlvblByb3BlcnRpZXMucHVzaChjdXJyZW50T2JqZWN0IGFzIF9OYXZpZ2F0aW9uUHJvcGVydHkpO1xuXHRcdFx0Y3VycmVudEVudGl0eVR5cGUgPSAoY3VycmVudE9iamVjdCBhcyBfTmF2aWdhdGlvblByb3BlcnR5KS50YXJnZXRUeXBlO1xuXHRcdFx0aWYgKGN1cnJlbnRFbnRpdHlTZXQgJiYgY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nLmhhc093blByb3BlcnR5KG5hdmlnYXRlZFBhdGhzLmpvaW4oXCIvXCIpKSkge1xuXHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gY3VycmVudEVudGl0eVNldC5uYXZpZ2F0aW9uUHJvcGVydHlCaW5kaW5nW2N1cnJlbnRPYmplY3QubmFtZV07XG5cdFx0XHRcdG5hdmlnYXRlZFBhdGhzID0gW107XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjdXJyZW50RW50aXR5U2V0ID0gdW5kZWZpbmVkO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoY3VycmVudE9iamVjdC5fdHlwZSA9PT0gXCJFbnRpdHlTZXRcIikge1xuXHRcdFx0Y3VycmVudEVudGl0eVNldCA9IGN1cnJlbnRPYmplY3QgYXMgX0VudGl0eVNldDtcblx0XHRcdGN1cnJlbnRFbnRpdHlUeXBlID0gY3VycmVudEVudGl0eVNldC5lbnRpdHlUeXBlO1xuXHRcdH1cblx0fVxuXG5cdGlmICh0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbiAmJiB0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbi5zdGFydGluZ0VudGl0eVNldCAhPT0gcm9vdEVudGl0eVNldCkge1xuXHRcdC8vIEluIGNhc2UgdGhlIGVudGl0eXNldCBpcyBub3Qgc3RhcnRpbmcgZnJvbSB0aGUgc2FtZSBsb2NhdGlvbiBpdCBtYXkgbWVhbiB0aGF0IHdlIGFyZSBkb2luZyB0b28gbXVjaCB3b3JrIGVhcmxpZXIgZm9yIHNvbWUgcmVhc29uXG5cdFx0Ly8gQXMgc3VjaCB3ZSBuZWVkIHRvIHJlZGVmaW5lIHRoZSBjb250ZXh0IHNvdXJjZSBmb3IgdGhlIHRhcmdldEVudGl0eVNldExvY2F0aW9uXG5cdFx0Y29uc3Qgc3RhcnRpbmdJbmRleCA9IGRhdGFNb2RlbE9iamVjdHMuaW5kZXhPZih0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbi5zdGFydGluZ0VudGl0eVNldCk7XG5cdFx0aWYgKHN0YXJ0aW5nSW5kZXggIT09IC0xKSB7XG5cdFx0XHQvLyBJZiBpdCdzIG5vdCBmb3VuZCBJIGRvbid0IGtub3cgd2hhdCB3ZSBjYW4gZG8gKHByb2JhYmx5IG5vdGhpbmcpXG5cdFx0XHRjb25zdCByZXF1aXJlZERhdGFNb2RlbE9iamVjdHMgPSBkYXRhTW9kZWxPYmplY3RzLnNsaWNlKDAsIHN0YXJ0aW5nSW5kZXgpO1xuXHRcdFx0dGFyZ2V0RW50aXR5U2V0TG9jYXRpb24uc3RhcnRpbmdFbnRpdHlTZXQgPSByb290RW50aXR5U2V0O1xuXHRcdFx0dGFyZ2V0RW50aXR5U2V0TG9jYXRpb24ubmF2aWdhdGlvblByb3BlcnRpZXMgPSByZXF1aXJlZERhdGFNb2RlbE9iamVjdHNcblx0XHRcdFx0LmZpbHRlcigob2JqZWN0OiBhbnkpID0+IG9iamVjdC5fdHlwZSA9PT0gXCJOYXZpZ2F0aW9uUHJvcGVydHlcIilcblx0XHRcdFx0LmNvbmNhdCh0YXJnZXRFbnRpdHlTZXRMb2NhdGlvbi5uYXZpZ2F0aW9uUHJvcGVydGllcykgYXMgX05hdmlnYXRpb25Qcm9wZXJ0eVtdO1xuXHRcdH1cblx0fVxuXHRjb25zdCBvdXREYXRhTW9kZWxQYXRoID0ge1xuXHRcdHN0YXJ0aW5nRW50aXR5U2V0OiByb290RW50aXR5U2V0LFxuXHRcdHRhcmdldEVudGl0eVNldDogY3VycmVudEVudGl0eVNldCxcblx0XHR0YXJnZXRFbnRpdHlUeXBlOiBjdXJyZW50RW50aXR5VHlwZSxcblx0XHR0YXJnZXRPYmplY3Q6IG1ldGFNb2RlbENvbnRleHQudGFyZ2V0LFxuXHRcdG5hdmlnYXRpb25Qcm9wZXJ0aWVzLFxuXHRcdGNvbnRleHRMb2NhdGlvbjogdGFyZ2V0RW50aXR5U2V0TG9jYXRpb25cblx0fTtcblx0aWYgKCFvdXREYXRhTW9kZWxQYXRoLmNvbnRleHRMb2NhdGlvbikge1xuXHRcdG91dERhdGFNb2RlbFBhdGguY29udGV4dExvY2F0aW9uID0gb3V0RGF0YU1vZGVsUGF0aDtcblx0fVxuXHRyZXR1cm4gb3V0RGF0YU1vZGVsUGF0aDtcbn1cbiJdfQ==
|