@sapui5/sap.fe.core 1.93.3 → 1.97.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -6
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppComponent.js +8 -40
- package/src/sap/fe/core/BusyLocker.js +12 -0
- package/src/sap/fe/core/CommonUtils.js +224 -48
- package/src/sap/fe/core/ExtensionAPI.js +1 -1
- package/src/sap/fe/core/PageController.js +13 -2
- package/src/sap/fe/core/RouterProxy.js +52 -64
- package/src/sap/fe/core/TemplateComponent.js +8 -2
- package/src/sap/fe/core/TransactionHelper.js +210 -180
- package/src/sap/fe/core/actions/draft.js +13 -1
- package/src/sap/fe/core/actions/messageHandling.js +80 -4
- package/src/sap/fe/core/actions/operations.js +207 -68
- package/src/sap/fe/core/controllerextensions/EditFlow.js +82 -55
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +13 -6
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +132 -23
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +203 -214
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +834 -170
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +890 -189
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +222 -102
- package/src/sap/fe/core/controllerextensions/PageReady.js +48 -33
- package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -14
- package/src/sap/fe/core/controllerextensions/Paginator.js +150 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +133 -270
- package/src/sap/fe/core/controllerextensions/Share.js +12 -9
- package/src/sap/fe/core/controllerextensions/SideEffects.js +5 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +13 -12
- package/src/sap/fe/core/controllerextensions/ViewState.js +202 -8
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +39 -34
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +1 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +109 -108
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +45 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +15 -4
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +250 -94
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +129 -135
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +325 -0
- package/src/sap/fe/core/controls/filterbar.d.js +8 -0
- package/src/sap/fe/core/controls/filterbar.d.ts +0 -0
- package/src/sap/fe/core/converters/ConverterContext.js +19 -5
- package/src/sap/fe/core/converters/ConverterContext.ts +13 -3
- package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +13 -3
- package/src/sap/fe/core/converters/ManifestWrapper.js +9 -9
- package/src/sap/fe/core/converters/MetaModelConverter.js +867 -871
- package/src/sap/fe/core/converters/MetaModelConverter.ts +772 -827
- package/src/sap/fe/core/converters/TemplateConverter.js +4 -4
- package/src/sap/fe/core/converters/annotations/DataField.js +57 -7
- package/src/sap/fe/core/converters/annotations/DataField.ts +52 -2
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +146 -85
- package/src/sap/fe/core/converters/controls/Common/Action.js +61 -56
- package/src/sap/fe/core/converters/controls/Common/Action.ts +54 -39
- package/src/sap/fe/core/converters/controls/Common/Chart.js +101 -9
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +100 -5
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -16
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +16 -30
- package/src/sap/fe/core/converters/controls/Common/Form.js +77 -29
- package/src/sap/fe/core/converters/controls/Common/Form.ts +79 -21
- package/src/sap/fe/core/converters/controls/Common/KPI.js +287 -109
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +314 -139
- package/src/sap/fe/core/converters/controls/Common/Table.js +521 -166
- package/src/sap/fe/core/converters/controls/Common/Table.ts +519 -115
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +487 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +541 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +364 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +338 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +74 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +50 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +11 -11
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +47 -35
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +45 -29
- package/src/sap/fe/core/converters/helpers/Aggregation.js +31 -32
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +26 -27
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +27 -2
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +22 -2
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.js +9 -3
- package/src/sap/fe/core/converters/helpers/ID.ts +6 -3
- package/src/sap/fe/core/converters/helpers/IssueManager.js +5 -4
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +4 -3
- package/src/sap/fe/core/converters/helpers/Key.js +3 -3
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +11 -6
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +9 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +18 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +14 -14
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +91 -20
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +77 -5
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +87 -714
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +85 -812
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +106 -17
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +121 -16
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +2 -1
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +8 -3
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.js +27 -4
- package/src/sap/fe/core/formatters/TableFormatter.ts +20 -3
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/fpm/Component.js +1 -1
- package/src/sap/fe/core/helpers/AnnotationEnum.js +3 -3
- package/src/sap/fe/core/helpers/BindingExpression.js +6 -6
- package/src/sap/fe/core/helpers/ClassSupport.js +4 -4
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +0 -2
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +211 -0
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +202 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +32 -0
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.ts +36 -0
- package/src/sap/fe/core/helpers/ModelHelper.js +78 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +6 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +2 -2
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.ts +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +2 -2
- package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +45 -2
- package/src/sap/fe/core/messagebundle_ar.properties +53 -1
- package/src/sap/fe/core/messagebundle_bg.properties +52 -0
- package/src/sap/fe/core/messagebundle_ca.properties +54 -2
- package/src/sap/fe/core/messagebundle_cs.properties +52 -0
- package/src/sap/fe/core/messagebundle_cy.properties +52 -0
- package/src/sap/fe/core/messagebundle_da.properties +53 -1
- package/src/sap/fe/core/messagebundle_de.properties +55 -3
- package/src/sap/fe/core/messagebundle_el.properties +53 -1
- package/src/sap/fe/core/messagebundle_en.properties +52 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +53 -1
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +49 -1
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +53 -1
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +53 -1
- package/src/sap/fe/core/messagebundle_es.properties +60 -8
- package/src/sap/fe/core/messagebundle_es_MX.properties +55 -3
- package/src/sap/fe/core/messagebundle_et.properties +52 -0
- package/src/sap/fe/core/messagebundle_fi.properties +52 -0
- package/src/sap/fe/core/messagebundle_fr.properties +61 -9
- package/src/sap/fe/core/messagebundle_fr_CA.properties +52 -0
- package/src/sap/fe/core/messagebundle_hi.properties +53 -1
- package/src/sap/fe/core/messagebundle_hr.properties +53 -1
- package/src/sap/fe/core/messagebundle_hu.properties +52 -0
- package/src/sap/fe/core/messagebundle_id.properties +54 -2
- package/src/sap/fe/core/messagebundle_it.properties +53 -1
- package/src/sap/fe/core/messagebundle_iw.properties +54 -2
- package/src/sap/fe/core/messagebundle_ja.properties +62 -10
- package/src/sap/fe/core/messagebundle_kk.properties +53 -1
- package/src/sap/fe/core/messagebundle_ko.properties +53 -1
- package/src/sap/fe/core/messagebundle_lt.properties +53 -1
- package/src/sap/fe/core/messagebundle_lv.properties +53 -1
- package/src/sap/fe/core/messagebundle_ms.properties +53 -1
- package/src/sap/fe/core/messagebundle_nl.properties +57 -5
- package/src/sap/fe/core/messagebundle_no.properties +54 -2
- package/src/sap/fe/core/messagebundle_pl.properties +53 -1
- package/src/sap/fe/core/messagebundle_pt.properties +54 -2
- package/src/sap/fe/core/messagebundle_pt_PT.properties +53 -1
- package/src/sap/fe/core/messagebundle_ro.properties +53 -1
- package/src/sap/fe/core/messagebundle_ru.properties +53 -1
- package/src/sap/fe/core/messagebundle_sh.properties +53 -1
- package/src/sap/fe/core/messagebundle_sk.properties +52 -0
- package/src/sap/fe/core/messagebundle_sl.properties +53 -1
- package/src/sap/fe/core/messagebundle_sv.properties +53 -1
- package/src/sap/fe/core/messagebundle_th.properties +52 -0
- package/src/sap/fe/core/messagebundle_tr.properties +52 -0
- package/src/sap/fe/core/messagebundle_uk.properties +52 -0
- package/src/sap/fe/core/messagebundle_vi.properties +53 -1
- package/src/sap/fe/core/messagebundle_zh_CN.properties +53 -1
- package/src/sap/fe/core/messagebundle_zh_TW.properties +53 -1
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +5 -5
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +5 -5
- package/src/sap/fe/core/services/RoutingServiceFactory.js +154 -78
- package/src/sap/fe/core/services/ShellServicesFactory.js +9 -9
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +11 -12
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +12 -2
- package/src/sap/fe/core/support/AnnotationIssue.support.js +2 -4
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +2 -4
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -4
- package/src/sap/fe/core/support/CommonHelper.js +2 -4
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.js +4 -4
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +54 -6
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +54 -4
- package/src/sap/fe/core/templating/EntitySetHelper.js +86 -3
- package/src/sap/fe/core/templating/EntitySetHelper.ts +44 -0
- package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js +23 -5
- package/src/sap/fe/core/templating/FilterHelper.ts +15 -1
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js +8 -8
- package/src/sap/fe/core/templating/UIFormatters.js +72 -4
- package/src/sap/fe/core/templating/UIFormatters.ts +98 -3
- package/src/sap/fe/core/type/Email.js +1 -1
|
@@ -21,12 +21,12 @@ import {
|
|
|
21
21
|
ConverterAction,
|
|
22
22
|
CustomAction,
|
|
23
23
|
getActionsFromManifest,
|
|
24
|
-
getEnabledBinding,
|
|
25
24
|
isActionNavigable,
|
|
26
25
|
ButtonType,
|
|
27
26
|
getSemanticObjectMapping,
|
|
28
27
|
removeDuplicateActions,
|
|
29
|
-
BaseAction
|
|
28
|
+
BaseAction,
|
|
29
|
+
getEnabledForAnnotationAction
|
|
30
30
|
} from "sap/fe/core/converters/controls/Common/Action";
|
|
31
31
|
import { KeyHelper } from "sap/fe/core/converters/helpers/Key";
|
|
32
32
|
import {
|
|
@@ -78,6 +78,7 @@ type BaseSubSection = {
|
|
|
78
78
|
flexSettings?: FlexSettings;
|
|
79
79
|
stashed?: boolean;
|
|
80
80
|
level: number;
|
|
81
|
+
content?: Array<ObjectPageSubSection>;
|
|
81
82
|
sideContent?: SideContentDef;
|
|
82
83
|
};
|
|
83
84
|
|
|
@@ -132,6 +133,7 @@ type SideContentDef = {
|
|
|
132
133
|
sideContentFallDown?: string;
|
|
133
134
|
containerQuery?: string;
|
|
134
135
|
visible?: boolean;
|
|
136
|
+
equalSplit?: boolean;
|
|
135
137
|
};
|
|
136
138
|
|
|
137
139
|
export type CustomObjectPageSection = CustomElement<ObjectPageSection>;
|
|
@@ -152,10 +154,10 @@ const hasTable = (facets: any[] = []) => {
|
|
|
152
154
|
/**
|
|
153
155
|
* Create subsections based on facet definition.
|
|
154
156
|
*
|
|
155
|
-
* @param facetCollection
|
|
156
|
-
* @param converterContext
|
|
157
|
-
* @param isHeaderSection
|
|
158
|
-
* @returns {ObjectPageSubSection[]} The current
|
|
157
|
+
* @param {FacetTypes[]} facetCollection Collection of facets
|
|
158
|
+
* @param {ConverterContext} converterContext The converter context
|
|
159
|
+
* @param {boolean} isHeaderSection True if header section is generated in this iteration
|
|
160
|
+
* @returns {ObjectPageSubSection[]} The current subsections
|
|
159
161
|
*/
|
|
160
162
|
export function createSubSections(
|
|
161
163
|
facetCollection: FacetTypes[],
|
|
@@ -193,8 +195,8 @@ export function createSubSections(
|
|
|
193
195
|
/**
|
|
194
196
|
* Creates subsections based on the definition of the custom header facet.
|
|
195
197
|
*
|
|
196
|
-
* @param converterContext The converter context
|
|
197
|
-
* @returns {ObjectPageSubSection[]} The current
|
|
198
|
+
* @param {ConverterContext} converterContext The converter context
|
|
199
|
+
* @returns {ObjectPageSubSection[]} The current subsections
|
|
198
200
|
*/
|
|
199
201
|
export function createCustomHeaderFacetSubSections(converterContext: ConverterContext): ObjectPageSubSection[] {
|
|
200
202
|
const customHeaderFacets: Record<string, CustomObjectPageHeaderFacet> = getHeaderFacetsFromManifest(
|
|
@@ -304,14 +306,14 @@ function getButtonType(Emphasized: Emphasized): ButtonType | string {
|
|
|
304
306
|
}
|
|
305
307
|
|
|
306
308
|
/**
|
|
307
|
-
* Create a subsection based on
|
|
309
|
+
* Create a subsection based on FacetTypes.
|
|
308
310
|
* @param facetDefinition
|
|
309
311
|
* @param facetsToCreate
|
|
310
312
|
* @param converterContext
|
|
311
313
|
* @param level
|
|
312
314
|
* @param hasSingleContent
|
|
313
315
|
* @param isHeaderSection
|
|
314
|
-
* @returns {ObjectPageSubSection} A
|
|
316
|
+
* @returns {ObjectPageSubSection} A subsection definition
|
|
315
317
|
*/
|
|
316
318
|
export function createSubSection(
|
|
317
319
|
facetDefinition: FacetTypes,
|
|
@@ -373,13 +375,14 @@ export function createSubSection(
|
|
|
373
375
|
};
|
|
374
376
|
return mixedSubSection;
|
|
375
377
|
} else {
|
|
376
|
-
const
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
378
|
+
const actions = getFacetActions(facetDefinition, converterContext),
|
|
379
|
+
formCollectionSubSection: FormSubSection = {
|
|
380
|
+
...subSection,
|
|
381
|
+
type: SubSectionType.Form,
|
|
382
|
+
formDefinition: createFormDefinition(facetDefinition, converterContext, actions),
|
|
383
|
+
level: level,
|
|
384
|
+
actions: actions.filter(action => action.facetName === undefined)
|
|
385
|
+
};
|
|
383
386
|
return formCollectionSubSection;
|
|
384
387
|
}
|
|
385
388
|
case UIAnnotationTypes.ReferenceFacet:
|
|
@@ -415,13 +418,14 @@ export function createSubSection(
|
|
|
415
418
|
case UIAnnotationTerms.StatusInfo:
|
|
416
419
|
case CommunicationAnnotationTerms.Contact:
|
|
417
420
|
// All those element belong to a form facet
|
|
418
|
-
const
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
421
|
+
const actions = getFacetActions(facetDefinition, converterContext),
|
|
422
|
+
formElementSubSection: FormSubSection = {
|
|
423
|
+
...subSection,
|
|
424
|
+
type: SubSectionType.Form,
|
|
425
|
+
level: level,
|
|
426
|
+
formDefinition: createFormDefinition(facetDefinition, converterContext, actions),
|
|
427
|
+
actions: actions.filter(action => action.facetName === undefined)
|
|
428
|
+
};
|
|
425
429
|
return formElementSubSection;
|
|
426
430
|
|
|
427
431
|
default:
|
|
@@ -473,7 +477,12 @@ function createFormActionReducer(
|
|
|
473
477
|
dataFieldCollection = (referenceTarget as FieldGroup).Data;
|
|
474
478
|
manifestActions = getActionsFromManifest(
|
|
475
479
|
converterContext.getManifestControlConfiguration(referenceTarget).actions,
|
|
476
|
-
converterContext
|
|
480
|
+
converterContext,
|
|
481
|
+
undefined,
|
|
482
|
+
undefined,
|
|
483
|
+
undefined,
|
|
484
|
+
undefined,
|
|
485
|
+
facetDefinition.fullyQualifiedName as string
|
|
477
486
|
);
|
|
478
487
|
break;
|
|
479
488
|
case UIAnnotationTerms.Identification:
|
|
@@ -499,6 +508,11 @@ function createFormActionReducer(
|
|
|
499
508
|
.getDiagnostics()
|
|
500
509
|
.addIssue(IssueCategory.Annotation, IssueSeverity.Low, IssueType.MALFORMED_DATAFIELD_FOR_IBN.INLINE);
|
|
501
510
|
}
|
|
511
|
+
if (dataField.Determining?.valueOf() === true) {
|
|
512
|
+
converterContext
|
|
513
|
+
.getDiagnostics()
|
|
514
|
+
.addIssue(IssueCategory.Annotation, IssueSeverity.Low, IssueType.MALFORMED_DATAFIELD_FOR_IBN.DETERMINING);
|
|
515
|
+
}
|
|
502
516
|
const mNavigationParameters: any = {};
|
|
503
517
|
if (dataField.Mapping) {
|
|
504
518
|
mNavigationParameters.semanticObjectMapping = getSemanticObjectMapping(dataField.Mapping);
|
|
@@ -537,7 +551,7 @@ function createFormActionReducer(
|
|
|
537
551
|
key: key,
|
|
538
552
|
text: dataField.Label?.toString(),
|
|
539
553
|
annotationPath: "",
|
|
540
|
-
enabled:
|
|
554
|
+
enabled: getEnabledForAnnotationAction(converterContext, dataField.ActionTarget),
|
|
541
555
|
binding: navigationPropertyPath ? "{ 'path' : '" + navigationPropertyPath + "'}" : undefined,
|
|
542
556
|
visible: compileBinding(not(equal(annotationExpression(dataField.annotations?.UI?.Hidden?.valueOf()), true))),
|
|
543
557
|
requiresDialog: isDialog(dataField.ActionTarget),
|
|
@@ -561,7 +575,8 @@ function createFormActionReducer(
|
|
|
561
575
|
],
|
|
562
576
|
ref(".editFlow")
|
|
563
577
|
)
|
|
564
|
-
)
|
|
578
|
+
),
|
|
579
|
+
facetName: dataField.Inline ? (facetDefinition.fullyQualifiedName as string) : undefined
|
|
565
580
|
});
|
|
566
581
|
break;
|
|
567
582
|
}
|
|
@@ -604,7 +619,8 @@ export function createCustomSubSection(
|
|
|
604
619
|
? {
|
|
605
620
|
template: manifestSubSection.sideContent.template,
|
|
606
621
|
id: SideContentID(subSectionKey),
|
|
607
|
-
visible: false
|
|
622
|
+
visible: false,
|
|
623
|
+
equalSplit: manifestSubSection.sideContent.equalSplit
|
|
608
624
|
}
|
|
609
625
|
: undefined;
|
|
610
626
|
let position = manifestSubSection.position;
|
|
@@ -621,7 +637,7 @@ export function createCustomSubSection(
|
|
|
621
637
|
title: manifestSubSection.title,
|
|
622
638
|
level: 1,
|
|
623
639
|
position: position,
|
|
624
|
-
visible: manifestSubSection.visible,
|
|
640
|
+
visible: manifestSubSection.visible !== undefined ? manifestSubSection.visible : true,
|
|
625
641
|
sideContent: sideContent
|
|
626
642
|
};
|
|
627
643
|
if (manifestSubSection.template || manifestSubSection.name) {
|
|
@@ -24,35 +24,35 @@ sap.ui.define([], function () {
|
|
|
24
24
|
* @param converterContext The ConverterContext
|
|
25
25
|
*/
|
|
26
26
|
function AggregationHelper(entityType, converterContext) {
|
|
27
|
-
var _this$_oAggregationAn, _this$_oAggregationAn4, _this$_oAggregationAn7,
|
|
27
|
+
var _this$_oAggregationAn, _this$_oAggregationAn4, _this$_oAggregationAn7, _this$oTargetAggregat;
|
|
28
28
|
|
|
29
29
|
_classCallCheck(this, AggregationHelper);
|
|
30
30
|
|
|
31
31
|
this._entityType = entityType;
|
|
32
32
|
this._converterContext = converterContext;
|
|
33
33
|
this._oAggregationAnnotationTarget = this._determineAggregationAnnotationTarget();
|
|
34
|
-
var oTargetAggregationAnnotations;
|
|
35
34
|
|
|
36
35
|
if (((_this$_oAggregationAn = this._oAggregationAnnotationTarget) === null || _this$_oAggregationAn === void 0 ? void 0 : _this$_oAggregationAn._type) === "NavigationProperty") {
|
|
37
36
|
var _this$_oAggregationAn2, _this$_oAggregationAn3;
|
|
38
37
|
|
|
39
|
-
oTargetAggregationAnnotations = (_this$_oAggregationAn2 = this._oAggregationAnnotationTarget) === null || _this$_oAggregationAn2 === void 0 ? void 0 : (_this$_oAggregationAn3 = _this$_oAggregationAn2.annotations) === null || _this$_oAggregationAn3 === void 0 ? void 0 : _this$_oAggregationAn3.Aggregation;
|
|
38
|
+
this.oTargetAggregationAnnotations = (_this$_oAggregationAn2 = this._oAggregationAnnotationTarget) === null || _this$_oAggregationAn2 === void 0 ? void 0 : (_this$_oAggregationAn3 = _this$_oAggregationAn2.annotations) === null || _this$_oAggregationAn3 === void 0 ? void 0 : _this$_oAggregationAn3.Aggregation;
|
|
40
39
|
} else if (((_this$_oAggregationAn4 = this._oAggregationAnnotationTarget) === null || _this$_oAggregationAn4 === void 0 ? void 0 : _this$_oAggregationAn4._type) === "EntityType") {
|
|
41
40
|
var _this$_oAggregationAn5, _this$_oAggregationAn6;
|
|
42
41
|
|
|
43
|
-
oTargetAggregationAnnotations = (_this$_oAggregationAn5 = this._oAggregationAnnotationTarget) === null || _this$_oAggregationAn5 === void 0 ? void 0 : (_this$_oAggregationAn6 = _this$_oAggregationAn5.annotations) === null || _this$_oAggregationAn6 === void 0 ? void 0 : _this$_oAggregationAn6.Aggregation;
|
|
42
|
+
this.oTargetAggregationAnnotations = (_this$_oAggregationAn5 = this._oAggregationAnnotationTarget) === null || _this$_oAggregationAn5 === void 0 ? void 0 : (_this$_oAggregationAn6 = _this$_oAggregationAn5.annotations) === null || _this$_oAggregationAn6 === void 0 ? void 0 : _this$_oAggregationAn6.Aggregation;
|
|
44
43
|
} else if (((_this$_oAggregationAn7 = this._oAggregationAnnotationTarget) === null || _this$_oAggregationAn7 === void 0 ? void 0 : _this$_oAggregationAn7._type) === "EntitySet") {
|
|
45
44
|
var _this$_oAggregationAn8, _this$_oAggregationAn9;
|
|
46
45
|
|
|
47
|
-
oTargetAggregationAnnotations = (_this$_oAggregationAn8 = this._oAggregationAnnotationTarget) === null || _this$_oAggregationAn8 === void 0 ? void 0 : (_this$_oAggregationAn9 = _this$_oAggregationAn8.annotations) === null || _this$_oAggregationAn9 === void 0 ? void 0 : _this$_oAggregationAn9.Aggregation;
|
|
46
|
+
this.oTargetAggregationAnnotations = (_this$_oAggregationAn8 = this._oAggregationAnnotationTarget) === null || _this$_oAggregationAn8 === void 0 ? void 0 : (_this$_oAggregationAn9 = _this$_oAggregationAn8.annotations) === null || _this$_oAggregationAn9 === void 0 ? void 0 : _this$_oAggregationAn9.Aggregation;
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
this._bApplySupported = (
|
|
49
|
+
this._bApplySupported = (_this$oTargetAggregat = this.oTargetAggregationAnnotations) !== null && _this$oTargetAggregat !== void 0 && _this$oTargetAggregat.ApplySupported ? true : false;
|
|
51
50
|
|
|
52
51
|
if (this._bApplySupported) {
|
|
53
|
-
var
|
|
52
|
+
var _this$oTargetAggregat2, _this$oTargetAggregat3, _this$oTargetAggregat4, _this$oTargetAggregat5;
|
|
54
53
|
|
|
55
|
-
this._aGroupableProperties = (
|
|
54
|
+
this._aGroupableProperties = (_this$oTargetAggregat2 = this.oTargetAggregationAnnotations) === null || _this$oTargetAggregat2 === void 0 ? void 0 : (_this$oTargetAggregat3 = _this$oTargetAggregat2.ApplySupported) === null || _this$oTargetAggregat3 === void 0 ? void 0 : _this$oTargetAggregat3.GroupableProperties;
|
|
55
|
+
this._aAggregatableProperties = (_this$oTargetAggregat4 = this.oTargetAggregationAnnotations) === null || _this$oTargetAggregat4 === void 0 ? void 0 : (_this$oTargetAggregat5 = _this$oTargetAggregat4.ApplySupported) === null || _this$oTargetAggregat5 === void 0 ? void 0 : _this$oTargetAggregat5.AggregatableProperties;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
@@ -69,7 +69,7 @@ sap.ui.define([], function () {
|
|
|
69
69
|
value: function _determineAggregationAnnotationTarget() {
|
|
70
70
|
var _this$_converterConte, _this$_converterConte2, _this$_converterConte3, _this$_converterConte4, _this$_converterConte5;
|
|
71
71
|
|
|
72
|
-
var bIsParameterized = (
|
|
72
|
+
var bIsParameterized = (_this$_converterConte = this._converterContext.getDataModelObjectPath()) !== null && _this$_converterConte !== void 0 && (_this$_converterConte2 = _this$_converterConte.targetEntitySet) !== null && _this$_converterConte2 !== void 0 && (_this$_converterConte3 = _this$_converterConte2.entityType) !== null && _this$_converterConte3 !== void 0 && (_this$_converterConte4 = _this$_converterConte3.annotations) !== null && _this$_converterConte4 !== void 0 && (_this$_converterConte5 = _this$_converterConte4.Common) !== null && _this$_converterConte5 !== void 0 && _this$_converterConte5.ResultContext ? true : false;
|
|
73
73
|
var oAggregationAnnotationSource; // find ApplySupported
|
|
74
74
|
|
|
75
75
|
if (bIsParameterized) {
|
|
@@ -83,9 +83,9 @@ sap.ui.define([], function () {
|
|
|
83
83
|
var oNavigationPropertyObject = oDataModelObjectPath === null || oDataModelObjectPath === void 0 ? void 0 : oDataModelObjectPath.targetObject;
|
|
84
84
|
var oEntityTypeObject = oDataModelObjectPath === null || oDataModelObjectPath === void 0 ? void 0 : oDataModelObjectPath.targetEntityType;
|
|
85
85
|
|
|
86
|
-
if (oNavigationPropertyObject
|
|
86
|
+
if (oNavigationPropertyObject !== null && oNavigationPropertyObject !== void 0 && (_oNavigationPropertyO = oNavigationPropertyObject.annotations) !== null && _oNavigationPropertyO !== void 0 && (_oNavigationPropertyO2 = _oNavigationPropertyO.Aggregation) !== null && _oNavigationPropertyO2 !== void 0 && _oNavigationPropertyO2.ApplySupported) {
|
|
87
87
|
oAggregationAnnotationSource = oNavigationPropertyObject;
|
|
88
|
-
} else if (oEntityTypeObject
|
|
88
|
+
} else if (oEntityTypeObject !== null && oEntityTypeObject !== void 0 && (_oEntityTypeObject$an = oEntityTypeObject.annotations) !== null && _oEntityTypeObject$an !== void 0 && (_oEntityTypeObject$an2 = _oEntityTypeObject$an.Aggregation) !== null && _oEntityTypeObject$an2 !== void 0 && _oEntityTypeObject$an2.ApplySupported) {
|
|
89
89
|
oAggregationAnnotationSource = oEntityTypeObject;
|
|
90
90
|
}
|
|
91
91
|
} else {
|
|
@@ -149,6 +149,23 @@ sap.ui.define([], function () {
|
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
|
+
}, {
|
|
153
|
+
key: "getGroupableProperties",
|
|
154
|
+
value: function getGroupableProperties() {
|
|
155
|
+
return this._aGroupableProperties;
|
|
156
|
+
}
|
|
157
|
+
}, {
|
|
158
|
+
key: "getAggregatableProperties",
|
|
159
|
+
value: function getAggregatableProperties() {
|
|
160
|
+
return this._aAggregatableProperties;
|
|
161
|
+
}
|
|
162
|
+
}, {
|
|
163
|
+
key: "getTransAggregations",
|
|
164
|
+
value: function getTransAggregations() {
|
|
165
|
+
var aTransAggregationAnnotations = this._converterContext.getAnnotationsByTerm("Analytics", "com.sap.vocabularies.Analytics.v1.AggregatedProperties", [this._converterContext.getEntityContainer(), this._converterContext.getEntityType()]);
|
|
166
|
+
|
|
167
|
+
return aTransAggregationAnnotations;
|
|
168
|
+
}
|
|
152
169
|
/**
|
|
153
170
|
* Returns the list of custom aggregate definitions for the entity type.
|
|
154
171
|
*
|
|
@@ -159,28 +176,10 @@ sap.ui.define([], function () {
|
|
|
159
176
|
}, {
|
|
160
177
|
key: "getCustomAggregateDefinitions",
|
|
161
178
|
value: function getCustomAggregateDefinitions() {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
var mDefinitions = {}; // Get the custom aggregates
|
|
165
|
-
|
|
179
|
+
// Get the custom aggregates
|
|
166
180
|
var aCustomAggregateAnnotations = this._converterContext.getAnnotationsByTerm("Aggregation", "Org.OData.Aggregation.V1.CustomAggregate", [this._oAggregationAnnotationTarget]);
|
|
167
181
|
|
|
168
|
-
aCustomAggregateAnnotations
|
|
169
|
-
// Check if there's a property with the same name as the custom aggregate
|
|
170
|
-
var oAggregatedProperty = _this._entityType.entityProperties.find(function (oProperty) {
|
|
171
|
-
return oProperty.name === annotation.qualifier;
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
if (oAggregatedProperty) {
|
|
175
|
-
var _annotation$annotatio, _annotation$annotatio2;
|
|
176
|
-
|
|
177
|
-
var aContextDefiningProperties = (_annotation$annotatio = annotation.annotations) === null || _annotation$annotatio === void 0 ? void 0 : (_annotation$annotatio2 = _annotation$annotatio.Aggregation) === null || _annotation$annotatio2 === void 0 ? void 0 : _annotation$annotatio2.ContextDefiningProperties;
|
|
178
|
-
mDefinitions[oAggregatedProperty.name] = aContextDefiningProperties ? aContextDefiningProperties.map(function (oCtxDefProperty) {
|
|
179
|
-
return oCtxDefProperty.value;
|
|
180
|
-
}) : [];
|
|
181
|
-
}
|
|
182
|
-
});
|
|
183
|
-
return mDefinitions;
|
|
182
|
+
return aCustomAggregateAnnotations;
|
|
184
183
|
}
|
|
185
184
|
}]);
|
|
186
185
|
|
|
@@ -190,4 +189,4 @@ sap.ui.define([], function () {
|
|
|
190
189
|
_exports.AggregationHelper = AggregationHelper;
|
|
191
190
|
return _exports;
|
|
192
191
|
}, false);
|
|
193
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFnZ3JlZ2F0aW9uLnRzIl0sIm5hbWVzIjpbIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZW50aXR5VHlwZSIsImNvbnZlcnRlckNvbnRleHQiLCJfZW50aXR5VHlwZSIsIl9jb252ZXJ0ZXJDb250ZXh0IiwiX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQiLCJfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Iiwib1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnMiLCJfdHlwZSIsImFubm90YXRpb25zIiwiQWdncmVnYXRpb24iLCJfYkFwcGx5U3VwcG9ydGVkIiwiQXBwbHlTdXBwb3J0ZWQiLCJfYUdyb3VwYWJsZVByb3BlcnRpZXMiLCJHcm91cGFibGVQcm9wZXJ0aWVzIiwiYklzUGFyYW1ldGVyaXplZCIsImdldERhdGFNb2RlbE9iamVjdFBhdGgiLCJ0YXJnZXRFbnRpdHlTZXQiLCJDb21tb24iLCJSZXN1bHRDb250ZXh0Iiwib0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSIsIm9EYXRhTW9kZWxPYmplY3RQYXRoIiwib05hdmlnYXRpb25Qcm9wZXJ0eU9iamVjdCIsInRhcmdldE9iamVjdCIsIm9FbnRpdHlUeXBlT2JqZWN0IiwidGFyZ2V0RW50aXR5VHlwZSIsImdldEVudGl0eVNldCIsInByb3BlcnR5IiwidW5kZWZpbmVkIiwibGVuZ3RoIiwiZmluZEluZGV4IiwicGF0aCIsIiR0YXJnZXQiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnMiLCJnZXRBbm5vdGF0aW9uc0J5VGVybSIsInNvbWUiLCJhbm5vdGF0aW9uIiwibmFtZSIsInF1YWxpZmllciIsIm1EZWZpbml0aW9ucyIsImZvckVhY2giLCJvQWdncmVnYXRlZFByb3BlcnR5IiwiZW50aXR5UHJvcGVydGllcyIsImZpbmQiLCJvUHJvcGVydHkiLCJhQ29udGV4dERlZmluaW5nUHJvcGVydGllcyIsIkNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXMiLCJtYXAiLCJvQ3R4RGVmUHJvcGVydHkiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBV0E7OztNQUdhQSxpQjtBQU9aOzs7Ozs7QUFNQSwrQkFBWUMsVUFBWixFQUFvQ0MsZ0JBQXBDLEVBQXdFO0FBQUE7O0FBQUE7O0FBQ3ZFLFdBQUtDLFdBQUwsR0FBbUJGLFVBQW5CO0FBQ0EsV0FBS0csaUJBQUwsR0FBeUJGLGdCQUF6QjtBQUVBLFdBQUtHLDZCQUFMLEdBQXFDLEtBQUtDLHFDQUFMLEVBQXJDO0FBQ0EsVUFBSUMsNkJBQUo7O0FBQ0EsVUFBSSwrQkFBS0YsNkJBQUwsZ0ZBQW9DRyxLQUFwQyxNQUE4QyxvQkFBbEQsRUFBd0U7QUFBQTs7QUFDdkVELFFBQUFBLDZCQUE2Qiw2QkFBRyxLQUFLRiw2QkFBUixxRkFBRyx1QkFBb0NJLFdBQXZDLDJEQUFHLHVCQUM3QkMsV0FESDtBQUVBLE9BSEQsTUFHTyxJQUFJLGdDQUFLTCw2QkFBTCxrRkFBb0NHLEtBQXBDLE1BQThDLFlBQWxELEVBQWdFO0FBQUE7O0FBQ3RFRCxRQUFBQSw2QkFBNkIsNkJBQUcsS0FBS0YsNkJBQVIscUZBQUcsdUJBQW9DSSxXQUF2QywyREFBRyx1QkFDN0JDLFdBREg7QUFFQSxPQUhNLE1BR0EsSUFBSSxnQ0FBS0wsNkJBQUwsa0ZBQW9DRyxLQUFwQyxNQUE4QyxXQUFsRCxFQUErRDtBQUFBOztBQUNyRUQsUUFBQUEsNkJBQTZCLDZCQUFHLEtBQUtGLDZCQUFSLHFGQUFHLHVCQUFvQ0ksV0FBdkMsMkRBQUcsdUJBQzdCQyxXQURIO0FBRUE7O0FBQ0QsV0FBS0MsZ0JBQUwsR0FBd0IsMEJBQUFKLDZCQUE2QixVQUE3QixzRUFBK0JLLGNBQS9CLElBQWdELElBQWhELEdBQXVELEtBQS9FOztBQUVBLFVBQUksS0FBS0QsZ0JBQVQsRUFBMkI7QUFBQTs7QUFDMUIsYUFBS0UscUJBQUwsNkJBQTZCTiw2QkFBN0IscUZBQTZCLHVCQUErQkssY0FBNUQsMkRBQTZCLHVCQUErQ0UsbUJBQTVFO0FBQ0E7QUFDRDtBQUNEOzs7Ozs7Ozs7Ozs4REFLNkY7QUFBQTs7QUFDNUYsWUFBTUMsZ0JBQWdCLEdBQUcsK0JBQUtYLGlCQUFMLENBQXVCWSxzQkFBdkIsNEdBQWlEQyxlQUFqRCw0R0FBa0VoQixVQUFsRSw0R0FBOEVRLFdBQTlFLDRHQUEyRlMsTUFBM0Ysa0ZBQ3RCQyxhQURzQixJQUV0QixJQUZzQixHQUd0QixLQUhIO0FBSUEsWUFBSUMsNEJBQUosQ0FMNEYsQ0FPNUY7O0FBQ0EsWUFBSUwsZ0JBQUosRUFBc0I7QUFBQTs7QUFDckI7QUFDQTtBQUNBO0FBQ0EsY0FBTU0sb0JBQW9CLEdBQUcsS0FBS2pCLGlCQUFMLENBQXVCWSxzQkFBdkIsRUFBN0I7O0FBQ0EsY0FBTU0seUJBQXlCLEdBQUdELG9CQUFILGFBQUdBLG9CQUFILHVCQUFHQSxvQkFBb0IsQ0FBRUUsWUFBeEQ7QUFDQSxjQUFNQyxpQkFBaUIsR0FBR0gsb0JBQUgsYUFBR0Esb0JBQUgsdUJBQUdBLG9CQUFvQixDQUFFSSxnQkFBaEQ7O0FBQ0EsY0FBSUgseUJBQUosYUFBSUEseUJBQUosZ0RBQUlBLHlCQUF5QixDQUFFYixXQUEvQixvRkFBSSxzQkFBd0NDLFdBQTVDLDJEQUFJLHVCQUFxREUsY0FBekQsRUFBeUU7QUFDeEVRLFlBQUFBLDRCQUE0QixHQUFHRSx5QkFBL0I7QUFDQSxXQUZELE1BRU8sSUFBSUUsaUJBQUosYUFBSUEsaUJBQUosZ0RBQUlBLGlCQUFpQixDQUFFZixXQUF2QixvRkFBSSxzQkFBZ0NDLFdBQXBDLDJEQUFJLHVCQUE2Q0UsY0FBakQsRUFBaUU7QUFDdkVRLFlBQUFBLDRCQUE0QixHQUFHSSxpQkFBL0I7QUFDQTtBQUNELFNBWkQsTUFZTztBQUNOO0FBQ0FKLFVBQUFBLDRCQUE0QixHQUFHLEtBQUtoQixpQkFBTCxDQUF1QnNCLFlBQXZCLEVBQS9CO0FBQ0E7O0FBQ0QsZUFBT04sNEJBQVA7QUFDQTtBQUVEOzs7Ozs7Ozs2Q0FLdUM7QUFDdEMsZUFBTyxLQUFLVCxnQkFBWjtBQUNBO0FBRUQ7Ozs7Ozs7OzswQ0FNMkJnQixRLEVBQXlDO0FBQ25FLFlBQUksQ0FBQyxLQUFLaEIsZ0JBQVYsRUFBNEI7QUFDM0IsaUJBQU9pQixTQUFQO0FBQ0EsU0FGRCxNQUVPLElBQUksQ0FBQyxLQUFLZixxQkFBTixJQUErQixLQUFLQSxxQkFBTCxDQUEyQmdCLE1BQTNCLEtBQXNDLENBQXpFLEVBQTRFO0FBQ2xGO0FBQ0EsaUJBQU8sSUFBUDtBQUNBLFNBSE0sTUFHQTtBQUNOLGlCQUFPLEtBQUtoQixxQkFBTCxDQUEyQmlCLFNBQTNCLENBQXFDLFVBQUFDLElBQUk7QUFBQSxtQkFBSUEsSUFBSSxDQUFDQyxPQUFMLENBQWFDLGtCQUFiLEtBQW9DTixRQUFRLENBQUNNLGtCQUFqRDtBQUFBLFdBQXpDLEtBQWlILENBQXhIO0FBQ0E7QUFDRDtBQUVEOzs7Ozs7Ozs7NkNBTThCTixRLEVBQXlDO0FBQ3RFLFlBQUksQ0FBQyxLQUFLaEIsZ0JBQVYsRUFBNEI7QUFDM0IsaUJBQU9pQixTQUFQO0FBQ0EsU0FGRCxNQUVPO0FBQ047QUFDQSxjQUFNTSwyQkFFSCxHQUFHLEtBQUs5QixpQkFBTCxDQUF1QitCLG9CQUF2QixDQUE0QyxhQUE1Qyw4Q0FBdUcsQ0FDNUcsS0FBSzlCLDZCQUR1RyxDQUF2RyxDQUZOLENBRk0sQ0FRTjs7O0FBQ0EsaUJBQU82QiwyQkFBMkIsQ0FBQ0UsSUFBNUIsQ0FBaUMsVUFBQUMsVUFBVSxFQUFJO0FBQ3JELG1CQUFPVixRQUFRLENBQUNXLElBQVQsS0FBa0JELFVBQVUsQ0FBQ0UsU0FBcEM7QUFDQSxXQUZNLENBQVA7QUFHQTtBQUNEO0FBRUQ7Ozs7Ozs7OztzREFNaUU7QUFBQTs7QUFDaEUsWUFBTUMsWUFBc0MsR0FBRyxFQUEvQyxDQURnRSxDQUdoRTs7QUFDQSxZQUFNTiwyQkFBOEQsR0FBRyxLQUFLOUIsaUJBQUwsQ0FBdUIrQixvQkFBdkIsQ0FDdEUsYUFEc0UsOENBR3RFLENBQUMsS0FBSzlCLDZCQUFOLENBSHNFLENBQXZFOztBQU1BNkIsUUFBQUEsMkJBQTJCLENBQUNPLE9BQTVCLENBQW9DLFVBQUFKLFVBQVUsRUFBSTtBQUNqRDtBQUNBLGNBQU1LLG1CQUFtQixHQUFHLEtBQUksQ0FBQ3ZDLFdBQUwsQ0FBaUJ3QyxnQkFBakIsQ0FBa0NDLElBQWxDLENBQXVDLFVBQUFDLFNBQVMsRUFBSTtBQUMvRSxtQkFBT0EsU0FBUyxDQUFDUCxJQUFWLEtBQW1CRCxVQUFVLENBQUNFLFNBQXJDO0FBQ0EsV0FGMkIsQ0FBNUI7O0FBR0EsY0FBSUcsbUJBQUosRUFBeUI7QUFBQTs7QUFDeEIsZ0JBQU1JLDBCQUEwQiw0QkFBR1QsVUFBVSxDQUFDNUIsV0FBZCxvRkFBRyxzQkFBd0JDLFdBQTNCLDJEQUFHLHVCQUFxQ3FDLHlCQUF4RTtBQUVBUCxZQUFBQSxZQUFZLENBQUNFLG1CQUFtQixDQUFDSixJQUFyQixDQUFaLEdBQXlDUSwwQkFBMEIsR0FDaEVBLDBCQUEwQixDQUFDRSxHQUEzQixDQUErQixVQUFBQyxlQUFlLEVBQUk7QUFDbEQscUJBQU9BLGVBQWUsQ0FBQ0MsS0FBdkI7QUFDQyxhQUZELENBRGdFLEdBSWhFLEVBSkg7QUFLQTtBQUNELFNBZEQ7QUFnQkEsZUFBT1YsWUFBUDtBQUNBIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlUeXBlLCBQcm9wZXJ0eSwgRW50aXR5U2V0LCBOYXZpZ2F0aW9uUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC9hbm5vdGF0aW9uLWNvbnZlcnRlclwiO1xuaW1wb3J0IHsgQW5ub3RhdGlvblRlcm0gfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IEFnZ3JlZ2F0aW9uQW5ub3RhdGlvblRlcm1zLCBDdXN0b21BZ2dyZWdhdGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9nZW5lcmF0ZWQvQWdncmVnYXRpb25cIjtcbmltcG9ydCB7IFByb3BlcnR5UGF0aCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy9kaXN0L0VkbVwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7XG5cdENvbGxlY3Rpb25Bbm5vdGF0aW9uc19BZ2dyZWdhdGlvbixcblx0RW50aXR5VHlwZUFubm90YXRpb25zX0FnZ3JlZ2F0aW9uLFxuXHRFbnRpdHlTZXRBbm5vdGF0aW9uc19BZ2dyZWdhdGlvblxufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdHlwZXMvZ2VuZXJhdGVkL0FnZ3JlZ2F0aW9uX0VkbVwiO1xuXG4vKipcbiAqIGhlbHBlciBjbGFzcyBmb3IgQWdncmVnYXRpb24gYW5ub3RhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBZ2dyZWdhdGlvbkhlbHBlciB7XG5cdF9lbnRpdHlUeXBlOiBFbnRpdHlUeXBlO1xuXHRfY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dDtcblx0X2JBcHBseVN1cHBvcnRlZDogYm9vbGVhbjtcblx0X2FHcm91cGFibGVQcm9wZXJ0aWVzPzogUHJvcGVydHlQYXRoW107XG5cdF9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0OiBFbnRpdHlUeXBlIHwgRW50aXR5U2V0IHwgTmF2aWdhdGlvblByb3BlcnR5O1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgaGVscGVyIGZvciBhIHNwZWNpZmljIGVudGl0eSB0eXBlIGFuZCBhIGNvbnZlcnRlciBjb250ZXh0LlxuXHQgKlxuXHQgKiBAcGFyYW0gZW50aXR5VHlwZSBUaGUgRW50aXR5VHlwZVxuXHQgKiBAcGFyYW0gY29udmVydGVyQ29udGV4dCBUaGUgQ29udmVydGVyQ29udGV4dFxuXHQgKi9cblx0Y29uc3RydWN0b3IoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCkge1xuXHRcdHRoaXMuX2VudGl0eVR5cGUgPSBlbnRpdHlUeXBlO1xuXHRcdHRoaXMuX2NvbnZlcnRlckNvbnRleHQgPSBjb252ZXJ0ZXJDb250ZXh0O1xuXG5cdFx0dGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldCA9IHRoaXMuX2RldGVybWluZUFnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldCgpO1xuXHRcdGxldCBvVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucztcblx0XHRpZiAodGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIpIHtcblx0XHRcdG9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uYW5ub3RhdGlvbnNcblx0XHRcdFx0Py5BZ2dyZWdhdGlvbiBhcyBDb2xsZWN0aW9uQW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5fdHlwZSA9PT0gXCJFbnRpdHlUeXBlXCIpIHtcblx0XHRcdG9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uYW5ub3RhdGlvbnNcblx0XHRcdFx0Py5BZ2dyZWdhdGlvbiBhcyBFbnRpdHlUeXBlQW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5fdHlwZSA9PT0gXCJFbnRpdHlTZXRcIikge1xuXHRcdFx0b1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnMgPSB0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5hbm5vdGF0aW9uc1xuXHRcdFx0XHQ/LkFnZ3JlZ2F0aW9uIGFzIEVudGl0eVNldEFubm90YXRpb25zX0FnZ3JlZ2F0aW9uO1xuXHRcdH1cblx0XHR0aGlzLl9iQXBwbHlTdXBwb3J0ZWQgPSBvVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucz8uQXBwbHlTdXBwb3J0ZWQgPyB0cnVlIDogZmFsc2U7XG5cblx0XHRpZiAodGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHR0aGlzLl9hR3JvdXBhYmxlUHJvcGVydGllcyA9IG9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zPy5BcHBseVN1cHBvcnRlZD8uR3JvdXBhYmxlUHJvcGVydGllcyBhcyBQcm9wZXJ0eVBhdGhbXTtcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIERldGVybWluZSB0aGUgbW9zdCBhcHByb3ByaWF0ZSB0YXJnZXQgZm9yIHRoZSBhZ2dyZWdhdGlvbiBhbm5vdGF0aW9ucy5cblx0ICpcblx0ICogQHJldHVybnMgIEVudGl0eVR5cGUgfCBFbnRpdHlTZXQgfCBOYXZpZ2F0aW9uUHJvcGVydHkgd2hlcmUgYWdncmVnYXRpb24gYW5ub3RhdGlvbnMgc2hvdWxkIGJlIGZvdW5kLlxuXHQgKi9cblx0cHJpdmF0ZSBfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0KCk6IEVudGl0eVR5cGUgfCBFbnRpdHlTZXQgfCBOYXZpZ2F0aW9uUHJvcGVydHkge1xuXHRcdGNvbnN0IGJJc1BhcmFtZXRlcml6ZWQgPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKT8udGFyZ2V0RW50aXR5U2V0Py5lbnRpdHlUeXBlPy5hbm5vdGF0aW9ucz8uQ29tbW9uXG5cdFx0XHQ/LlJlc3VsdENvbnRleHRcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0XHRsZXQgb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZTtcblxuXHRcdC8vIGZpbmQgQXBwbHlTdXBwb3J0ZWRcblx0XHRpZiAoYklzUGFyYW1ldGVyaXplZCkge1xuXHRcdFx0Ly8gaWYgdGhpcyBpcyBhIHBhcmFtZXRlcml6ZWQgdmlldyB0aGVuIGFwcGx5c3VwcG9ydGVkIGNhbiBiZSBmb3VuZCBhdCBlaXRoZXIgdGhlIG5hdlByb3AgcG9pbnRpbmcgdG8gdGhlIHJlc3VsdCBzZXQgb3IgZW50aXR5VHlwZS5cblx0XHRcdC8vIElmIGFwcGx5U3VwcG9ydGVkIGlzIHByZXNlbnQgYXQgYm90aCB0aGUgbmF2UHJvcCBhbmQgdGhlIGVudGl0eVR5cGUgdGhlbiBuYXZQcm9wIGlzIG1vcmUgc3BlY2lmaWMgc28gdGFrZSBhbm5vdGF0aW9ucyBmcm9tIHRoZXJlXG5cdFx0XHQvLyB0YXJnZXRPYmplY3QgaW4gdGhlIGNvbnZlcnRlciBjb250ZXh0IGZvciBhIHBhcmFtZXRlcml6ZWQgdmlldyBpcyB0aGUgbmF2aWdhdGlvbiBwcm9wZXJ0eSBwb2ludGluZyB0byB0aCByZXN1bHQgc2V0XG5cdFx0XHRjb25zdCBvRGF0YU1vZGVsT2JqZWN0UGF0aCA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRcdFx0Y29uc3Qgb05hdmlnYXRpb25Qcm9wZXJ0eU9iamVjdCA9IG9EYXRhTW9kZWxPYmplY3RQYXRoPy50YXJnZXRPYmplY3Q7XG5cdFx0XHRjb25zdCBvRW50aXR5VHlwZU9iamVjdCA9IG9EYXRhTW9kZWxPYmplY3RQYXRoPy50YXJnZXRFbnRpdHlUeXBlO1xuXHRcdFx0aWYgKG9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3Q/LmFubm90YXRpb25zPy5BZ2dyZWdhdGlvbj8uQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IG9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3Q7XG5cdFx0XHR9IGVsc2UgaWYgKG9FbnRpdHlUeXBlT2JqZWN0Py5hbm5vdGF0aW9ucz8uQWdncmVnYXRpb24/LkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRcdG9BZ2dyZWdhdGlvbkFubm90YXRpb25Tb3VyY2UgPSBvRW50aXR5VHlwZU9iamVjdDtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRm9yIHRoZSB0aW1lIGJlaW5nLCB3ZSBpZ25vcmUgYW5ub3RhdGlvbnMgYXQgdGhlIGNvbnRhaW5lciBsZXZlbCwgdW50aWwgdGhlIHZvY2FidWxhcnkgaXMgc3RhYmlsaXplZFxuXHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk7XG5cdFx0fVxuXHRcdHJldHVybiBvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgZW50aXR5IHN1cHBvcnRzIGFuYWx5dGljYWwgcXVlcmllcy5cblx0ICpcblx0ICogQHJldHVybnMgYHRydWVgIGlmIGFuYWx5dGljYWwgcXVlcmllcyBhcmUgc3VwcG9ydGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgaXNBbmFseXRpY3NTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2JBcHBseVN1cHBvcnRlZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgYSBwcm9wZXJ0eSBpcyBncm91cGFibGUuXG5cdCAqXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcblx0ICogQHJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIGVudGl0eSBkb2Vzbid0IHN1cHBvcnQgYW5hbHl0aWNhbCBxdWVyaWVzLCB0cnVlIG9yIGZhbHNlIG90aGVyd2lzZVxuXHQgKi9cblx0cHVibGljIGlzUHJvcGVydHlHcm91cGFibGUocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCF0aGlzLl9iQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIGlmICghdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMgfHwgdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHQvLyBObyBncm91cGFibGVQcm9wZXJ0aWVzIC0tPiBhbGwgcHJvcGVydGllcyBhcmUgZ3JvdXBhYmxlXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2FHcm91cGFibGVQcm9wZXJ0aWVzLmZpbmRJbmRleChwYXRoID0+IHBhdGguJHRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUgPT09IHByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZSkgPj0gMDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIGEgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlLlxuXHQgKlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG5cdCAqIEByZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSBlbnRpdHkgZG9lc24ndCBzdXBwb3J0IGFuYWx5dGljYWwgcXVlcmllcywgdHJ1ZSBvciBmYWxzZSBvdGhlcndpc2Vcblx0ICovXG5cdHB1YmxpYyBpc1Byb3BlcnR5QWdncmVnYXRhYmxlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBHZXQgdGhlIGN1c3RvbSBhZ2dyZWdhdGVzXG5cdFx0XHRjb25zdCBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM6IEFubm90YXRpb25UZXJtPFxuXHRcdFx0XHRDdXN0b21BZ2dyZWdhdGVcblx0XHRcdD5bXSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXCJBZ2dyZWdhdGlvblwiLCBBZ2dyZWdhdGlvbkFubm90YXRpb25UZXJtcy5DdXN0b21BZ2dyZWdhdGUsIFtcblx0XHRcdFx0dGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldFxuXHRcdFx0XSk7XG5cblx0XHRcdC8vIENoZWNrIGlmIGEgY3VzdG9tIGFnZ3JlZ2F0ZSBoYXMgYSBxdWFsaWZpZXIgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJvcGVydHkgbmFtZVxuXHRcdFx0cmV0dXJuIGFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9ucy5zb21lKGFubm90YXRpb24gPT4ge1xuXHRcdFx0XHRyZXR1cm4gcHJvcGVydHkubmFtZSA9PT0gYW5ub3RhdGlvbi5xdWFsaWZpZXI7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyB0aGUgbGlzdCBvZiBjdXN0b20gYWdncmVnYXRlIGRlZmluaXRpb25zIGZvciB0aGUgZW50aXR5IHR5cGUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIEEgbWFwIChwcm9wZXJ0eU5hbWUgLS0+IGFycmF5IG9mIGNvbnRleHQtZGVmaW5pbmcgcHJvcGVydHkgbmFtZXMpIGZvciBlYWNoIGN1c3RvbSBhZ2dyZWdhdGUgY29ycmVzcG9uZGluZyB0byBhIHByb3BlcnR5LiBUaGUgYXJyYXkgb2Zcblx0ICogY29udGV4dC1kZWZpbmluZyBwcm9wZXJ0eSBuYW1lcyBpcyBlbXB0eSBpZiB0aGUgY3VzdG9tIGFnZ3JlZ2F0ZSBkb2Vzbid0IGhhdmUgYW55IGNvbnRleHQtZGVmaW5pbmcgcHJvcGVydHkuXG5cdCAqL1xuXHRwdWJsaWMgZ2V0Q3VzdG9tQWdncmVnYXRlRGVmaW5pdGlvbnMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+IHtcblx0XHRjb25zdCBtRGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuXG5cdFx0Ly8gR2V0IHRoZSBjdXN0b20gYWdncmVnYXRlc1xuXHRcdGNvbnN0IGFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9uczogQW5ub3RhdGlvblRlcm08Q3VzdG9tQWdncmVnYXRlPltdID0gdGhpcy5fY29udmVydGVyQ29udGV4dC5nZXRBbm5vdGF0aW9uc0J5VGVybShcblx0XHRcdFwiQWdncmVnYXRpb25cIixcblx0XHRcdEFnZ3JlZ2F0aW9uQW5ub3RhdGlvblRlcm1zLkN1c3RvbUFnZ3JlZ2F0ZSxcblx0XHRcdFt0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0XVxuXHRcdCk7XG5cblx0XHRhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnMuZm9yRWFjaChhbm5vdGF0aW9uID0+IHtcblx0XHRcdC8vIENoZWNrIGlmIHRoZXJlJ3MgYSBwcm9wZXJ0eSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGN1c3RvbSBhZ2dyZWdhdGVcblx0XHRcdGNvbnN0IG9BZ2dyZWdhdGVkUHJvcGVydHkgPSB0aGlzLl9lbnRpdHlUeXBlLmVudGl0eVByb3BlcnRpZXMuZmluZChvUHJvcGVydHkgPT4ge1xuXHRcdFx0XHRyZXR1cm4gb1Byb3BlcnR5Lm5hbWUgPT09IGFubm90YXRpb24ucXVhbGlmaWVyO1xuXHRcdFx0fSk7XG5cdFx0XHRpZiAob0FnZ3JlZ2F0ZWRQcm9wZXJ0eSkge1xuXHRcdFx0XHRjb25zdCBhQ29udGV4dERlZmluaW5nUHJvcGVydGllcyA9IGFubm90YXRpb24uYW5ub3RhdGlvbnM/LkFnZ3JlZ2F0aW9uPy5Db250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzO1xuXG5cdFx0XHRcdG1EZWZpbml0aW9uc1tvQWdncmVnYXRlZFByb3BlcnR5Lm5hbWVdID0gYUNvbnRleHREZWZpbmluZ1Byb3BlcnRpZXNcblx0XHRcdFx0XHQ/IGFDb250ZXh0RGVmaW5pbmdQcm9wZXJ0aWVzLm1hcChvQ3R4RGVmUHJvcGVydHkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb0N0eERlZlByb3BlcnR5LnZhbHVlO1xuXHRcdFx0XHRcdCAgfSlcblx0XHRcdFx0XHQ6IFtdO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIG1EZWZpbml0aW9ucztcblx0fVxufVxuIl19
|
|
192
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkFnZ3JlZ2F0aW9uLnRzIl0sIm5hbWVzIjpbIkFnZ3JlZ2F0aW9uSGVscGVyIiwiZW50aXR5VHlwZSIsImNvbnZlcnRlckNvbnRleHQiLCJfZW50aXR5VHlwZSIsIl9jb252ZXJ0ZXJDb250ZXh0IiwiX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQiLCJfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0IiwiX3R5cGUiLCJvVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucyIsImFubm90YXRpb25zIiwiQWdncmVnYXRpb24iLCJfYkFwcGx5U3VwcG9ydGVkIiwiQXBwbHlTdXBwb3J0ZWQiLCJfYUdyb3VwYWJsZVByb3BlcnRpZXMiLCJHcm91cGFibGVQcm9wZXJ0aWVzIiwiX2FBZ2dyZWdhdGFibGVQcm9wZXJ0aWVzIiwiQWdncmVnYXRhYmxlUHJvcGVydGllcyIsImJJc1BhcmFtZXRlcml6ZWQiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0RW50aXR5U2V0IiwiQ29tbW9uIiwiUmVzdWx0Q29udGV4dCIsIm9BZ2dyZWdhdGlvbkFubm90YXRpb25Tb3VyY2UiLCJvRGF0YU1vZGVsT2JqZWN0UGF0aCIsIm9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3QiLCJ0YXJnZXRPYmplY3QiLCJvRW50aXR5VHlwZU9iamVjdCIsInRhcmdldEVudGl0eVR5cGUiLCJnZXRFbnRpdHlTZXQiLCJwcm9wZXJ0eSIsInVuZGVmaW5lZCIsImxlbmd0aCIsImZpbmRJbmRleCIsInBhdGgiLCIkdGFyZ2V0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiYUN1c3RvbUFnZ3JlZ2F0ZUFubm90YXRpb25zIiwiZ2V0QW5ub3RhdGlvbnNCeVRlcm0iLCJzb21lIiwiYW5ub3RhdGlvbiIsIm5hbWUiLCJxdWFsaWZpZXIiLCJhVHJhbnNBZ2dyZWdhdGlvbkFubm90YXRpb25zIiwiZ2V0RW50aXR5Q29udGFpbmVyIiwiZ2V0RW50aXR5VHlwZSJdLCJtYXBwaW5n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RCxxQ0FBbUM7QUFDbEMsZUFBTyxLQUFLRSx3QkFBWjtBQUNBOzs7YUFFRCxnQ0FBOEI7QUFDN0IsWUFBTTJCLDRCQUE0QixHQUFHLEtBQUt0QyxpQkFBTCxDQUF1QmlDLG9CQUF2QixDQUNwQyxXQURvQyxFQUVwQyx3REFGb0MsRUFHcEMsQ0FBQyxLQUFLakMsaUJBQUwsQ0FBdUJ1QyxrQkFBdkIsRUFBRCxFQUE4QyxLQUFLdkMsaUJBQUwsQ0FBdUJ3QyxhQUF2QixFQUE5QyxDQUhvQyxDQUFyQzs7QUFLQSxlQUFPRiw0QkFBUDtBQUNBO0FBQ0Q7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O2FBQ0MseUNBQXVDO0FBQ3RDO0FBQ0EsWUFBTU4sMkJBQThELEdBQUcsS0FBS2hDLGlCQUFMLENBQXVCaUMsb0JBQXZCLENBQ3RFLGFBRHNFLDhDQUd0RSxDQUFDLEtBQUtoQyw2QkFBTixDQUhzRSxDQUF2RTs7QUFNQSxlQUFPK0IsMkJBQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5VHlwZSwgUHJvcGVydHksIEVudGl0eVNldCwgTmF2aWdhdGlvblByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvYW5ub3RhdGlvbi1jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IEFubm90YXRpb25UZXJtIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgeyBBZ2dyZWdhdGlvbkFubm90YXRpb25UZXJtcywgQ3VzdG9tQWdncmVnYXRlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL2Rpc3QvZ2VuZXJhdGVkL0FnZ3JlZ2F0aW9uXCI7XG5pbXBvcnQgeyBQcm9wZXJ0eVBhdGggfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvZGlzdC9FZG1cIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQge1xuXHRDb2xsZWN0aW9uQW5ub3RhdGlvbnNfQWdncmVnYXRpb24sXG5cdEVudGl0eVR5cGVBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbixcblx0RW50aXR5U2V0QW5ub3RhdGlvbnNfQWdncmVnYXRpb25cbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3R5cGVzL2dlbmVyYXRlZC9BZ2dyZWdhdGlvbl9FZG1cIjtcblxuLyoqXG4gKiBoZWxwZXIgY2xhc3MgZm9yIEFnZ3JlZ2F0aW9uIGFubm90YXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgQWdncmVnYXRpb25IZWxwZXIge1xuXHRfZW50aXR5VHlwZTogRW50aXR5VHlwZTtcblx0X2NvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG5cdF9iQXBwbHlTdXBwb3J0ZWQ6IGJvb2xlYW47XG5cdF9hR3JvdXBhYmxlUHJvcGVydGllcz86IFByb3BlcnR5UGF0aFtdO1xuXHRfYUFnZ3JlZ2F0YWJsZVByb3BlcnRpZXM/O1xuXHRfb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldDogRW50aXR5VHlwZSB8IEVudGl0eVNldCB8IE5hdmlnYXRpb25Qcm9wZXJ0eTtcblx0b1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM6IGFueTtcblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBoZWxwZXIgZm9yIGEgc3BlY2lmaWMgZW50aXR5IHR5cGUgYW5kIGEgY29udmVydGVyIGNvbnRleHQuXG5cdCAqXG5cdCAqIEBwYXJhbSBlbnRpdHlUeXBlIFRoZSBFbnRpdHlUeXBlXG5cdCAqIEBwYXJhbSBjb252ZXJ0ZXJDb250ZXh0IFRoZSBDb252ZXJ0ZXJDb250ZXh0XG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KSB7XG5cdFx0dGhpcy5fZW50aXR5VHlwZSA9IGVudGl0eVR5cGU7XG5cdFx0dGhpcy5fY29udmVydGVyQ29udGV4dCA9IGNvbnZlcnRlckNvbnRleHQ7XG5cblx0XHR0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0ID0gdGhpcy5fZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0KCk7XG5cdFx0aWYgKHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/Ll90eXBlID09PSBcIk5hdmlnYXRpb25Qcm9wZXJ0eVwiKSB7XG5cdFx0XHR0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uYW5ub3RhdGlvbnNcblx0XHRcdFx0Py5BZ2dyZWdhdGlvbiBhcyBDb2xsZWN0aW9uQW5ub3RhdGlvbnNfQWdncmVnYXRpb247XG5cdFx0fSBlbHNlIGlmICh0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5fdHlwZSA9PT0gXCJFbnRpdHlUeXBlXCIpIHtcblx0XHRcdHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnMgPSB0aGlzLl9vQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0Py5hbm5vdGF0aW9uc1xuXHRcdFx0XHQ/LkFnZ3JlZ2F0aW9uIGFzIEVudGl0eVR5cGVBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblx0XHR9IGVsc2UgaWYgKHRoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXQ/Ll90eXBlID09PSBcIkVudGl0eVNldFwiKSB7XG5cdFx0XHR0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zID0gdGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldD8uYW5ub3RhdGlvbnNcblx0XHRcdFx0Py5BZ2dyZWdhdGlvbiBhcyBFbnRpdHlTZXRBbm5vdGF0aW9uc19BZ2dyZWdhdGlvbjtcblx0XHR9XG5cdFx0dGhpcy5fYkFwcGx5U3VwcG9ydGVkID0gdGhpcy5vVGFyZ2V0QWdncmVnYXRpb25Bbm5vdGF0aW9ucz8uQXBwbHlTdXBwb3J0ZWQgPyB0cnVlIDogZmFsc2U7XG5cblx0XHRpZiAodGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHR0aGlzLl9hR3JvdXBhYmxlUHJvcGVydGllcyA9IHRoaXMub1RhcmdldEFnZ3JlZ2F0aW9uQW5ub3RhdGlvbnM/LkFwcGx5U3VwcG9ydGVkPy5Hcm91cGFibGVQcm9wZXJ0aWVzIGFzIFByb3BlcnR5UGF0aFtdO1xuXHRcdFx0dGhpcy5fYUFnZ3JlZ2F0YWJsZVByb3BlcnRpZXMgPSB0aGlzLm9UYXJnZXRBZ2dyZWdhdGlvbkFubm90YXRpb25zPy5BcHBseVN1cHBvcnRlZD8uQWdncmVnYXRhYmxlUHJvcGVydGllcztcblx0XHR9XG5cdH1cblx0LyoqXG5cdCAqIERldGVybWluZSB0aGUgbW9zdCBhcHByb3ByaWF0ZSB0YXJnZXQgZm9yIHRoZSBhZ2dyZWdhdGlvbiBhbm5vdGF0aW9ucy5cblx0ICpcblx0ICogQHJldHVybnMgIEVudGl0eVR5cGUgfCBFbnRpdHlTZXQgfCBOYXZpZ2F0aW9uUHJvcGVydHkgd2hlcmUgYWdncmVnYXRpb24gYW5ub3RhdGlvbnMgc2hvdWxkIGJlIGZvdW5kLlxuXHQgKi9cblx0cHJpdmF0ZSBfZGV0ZXJtaW5lQWdncmVnYXRpb25Bbm5vdGF0aW9uVGFyZ2V0KCk6IEVudGl0eVR5cGUgfCBFbnRpdHlTZXQgfCBOYXZpZ2F0aW9uUHJvcGVydHkge1xuXHRcdGNvbnN0IGJJc1BhcmFtZXRlcml6ZWQgPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKT8udGFyZ2V0RW50aXR5U2V0Py5lbnRpdHlUeXBlPy5hbm5vdGF0aW9ucz8uQ29tbW9uXG5cdFx0XHQ/LlJlc3VsdENvbnRleHRcblx0XHRcdD8gdHJ1ZVxuXHRcdFx0OiBmYWxzZTtcblx0XHRsZXQgb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZTtcblxuXHRcdC8vIGZpbmQgQXBwbHlTdXBwb3J0ZWRcblx0XHRpZiAoYklzUGFyYW1ldGVyaXplZCkge1xuXHRcdFx0Ly8gaWYgdGhpcyBpcyBhIHBhcmFtZXRlcml6ZWQgdmlldyB0aGVuIGFwcGx5c3VwcG9ydGVkIGNhbiBiZSBmb3VuZCBhdCBlaXRoZXIgdGhlIG5hdlByb3AgcG9pbnRpbmcgdG8gdGhlIHJlc3VsdCBzZXQgb3IgZW50aXR5VHlwZS5cblx0XHRcdC8vIElmIGFwcGx5U3VwcG9ydGVkIGlzIHByZXNlbnQgYXQgYm90aCB0aGUgbmF2UHJvcCBhbmQgdGhlIGVudGl0eVR5cGUgdGhlbiBuYXZQcm9wIGlzIG1vcmUgc3BlY2lmaWMgc28gdGFrZSBhbm5vdGF0aW9ucyBmcm9tIHRoZXJlXG5cdFx0XHQvLyB0YXJnZXRPYmplY3QgaW4gdGhlIGNvbnZlcnRlciBjb250ZXh0IGZvciBhIHBhcmFtZXRlcml6ZWQgdmlldyBpcyB0aGUgbmF2aWdhdGlvbiBwcm9wZXJ0eSBwb2ludGluZyB0byB0aCByZXN1bHQgc2V0XG5cdFx0XHRjb25zdCBvRGF0YU1vZGVsT2JqZWN0UGF0aCA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpO1xuXHRcdFx0Y29uc3Qgb05hdmlnYXRpb25Qcm9wZXJ0eU9iamVjdCA9IG9EYXRhTW9kZWxPYmplY3RQYXRoPy50YXJnZXRPYmplY3Q7XG5cdFx0XHRjb25zdCBvRW50aXR5VHlwZU9iamVjdCA9IG9EYXRhTW9kZWxPYmplY3RQYXRoPy50YXJnZXRFbnRpdHlUeXBlO1xuXHRcdFx0aWYgKG9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3Q/LmFubm90YXRpb25zPy5BZ2dyZWdhdGlvbj8uQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IG9OYXZpZ2F0aW9uUHJvcGVydHlPYmplY3Q7XG5cdFx0XHR9IGVsc2UgaWYgKG9FbnRpdHlUeXBlT2JqZWN0Py5hbm5vdGF0aW9ucz8uQWdncmVnYXRpb24/LkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRcdG9BZ2dyZWdhdGlvbkFubm90YXRpb25Tb3VyY2UgPSBvRW50aXR5VHlwZU9iamVjdDtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gRm9yIHRoZSB0aW1lIGJlaW5nLCB3ZSBpZ25vcmUgYW5ub3RhdGlvbnMgYXQgdGhlIGNvbnRhaW5lciBsZXZlbCwgdW50aWwgdGhlIHZvY2FidWxhcnkgaXMgc3RhYmlsaXplZFxuXHRcdFx0b0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblNvdXJjZSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCk7XG5cdFx0fVxuXHRcdHJldHVybiBvQWdncmVnYXRpb25Bbm5vdGF0aW9uU291cmNlO1xuXHR9XG5cblx0LyoqXG5cdCAqIENoZWNrcyBpZiB0aGUgZW50aXR5IHN1cHBvcnRzIGFuYWx5dGljYWwgcXVlcmllcy5cblx0ICpcblx0ICogQHJldHVybnMgYHRydWVgIGlmIGFuYWx5dGljYWwgcXVlcmllcyBhcmUgc3VwcG9ydGVkLCBmYWxzZSBvdGhlcndpc2UuXG5cdCAqL1xuXHRwdWJsaWMgaXNBbmFseXRpY3NTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuX2JBcHBseVN1cHBvcnRlZDtcblx0fVxuXG5cdC8qKlxuXHQgKiBDaGVja3MgaWYgYSBwcm9wZXJ0eSBpcyBncm91cGFibGUuXG5cdCAqXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eSBUaGUgcHJvcGVydHkgdG8gY2hlY2tcblx0ICogQHJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIGVudGl0eSBkb2Vzbid0IHN1cHBvcnQgYW5hbHl0aWNhbCBxdWVyaWVzLCB0cnVlIG9yIGZhbHNlIG90aGVyd2lzZVxuXHQgKi9cblx0cHVibGljIGlzUHJvcGVydHlHcm91cGFibGUocHJvcGVydHk6IFByb3BlcnR5KTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCF0aGlzLl9iQXBwbHlTdXBwb3J0ZWQpIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fSBlbHNlIGlmICghdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMgfHwgdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHQvLyBObyBncm91cGFibGVQcm9wZXJ0aWVzIC0tPiBhbGwgcHJvcGVydGllcyBhcmUgZ3JvdXBhYmxlXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2FHcm91cGFibGVQcm9wZXJ0aWVzLmZpbmRJbmRleChwYXRoID0+IHBhdGguJHRhcmdldC5mdWxseVF1YWxpZmllZE5hbWUgPT09IHByb3BlcnR5LmZ1bGx5UXVhbGlmaWVkTmFtZSkgPj0gMDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQ2hlY2tzIGlmIGEgcHJvcGVydHkgaXMgYWdncmVnYXRhYmxlLlxuXHQgKlxuXHQgKiBAcGFyYW0gcHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIGNoZWNrXG5cdCAqIEByZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSBlbnRpdHkgZG9lc24ndCBzdXBwb3J0IGFuYWx5dGljYWwgcXVlcmllcywgdHJ1ZSBvciBmYWxzZSBvdGhlcndpc2Vcblx0ICovXG5cdHB1YmxpYyBpc1Byb3BlcnR5QWdncmVnYXRhYmxlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRcdGlmICghdGhpcy5fYkFwcGx5U3VwcG9ydGVkKSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBHZXQgdGhlIGN1c3RvbSBhZ2dyZWdhdGVzXG5cdFx0XHRjb25zdCBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM6IEFubm90YXRpb25UZXJtPFxuXHRcdFx0XHRDdXN0b21BZ2dyZWdhdGVcblx0XHRcdD5bXSA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXCJBZ2dyZWdhdGlvblwiLCBBZ2dyZWdhdGlvbkFubm90YXRpb25UZXJtcy5DdXN0b21BZ2dyZWdhdGUsIFtcblx0XHRcdFx0dGhpcy5fb0FnZ3JlZ2F0aW9uQW5ub3RhdGlvblRhcmdldFxuXHRcdFx0XSk7XG5cblx0XHRcdC8vIENoZWNrIGlmIGEgY3VzdG9tIGFnZ3JlZ2F0ZSBoYXMgYSBxdWFsaWZpZXIgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJvcGVydHkgbmFtZVxuXHRcdFx0cmV0dXJuIGFDdXN0b21BZ2dyZWdhdGVBbm5vdGF0aW9ucy5zb21lKGFubm90YXRpb24gPT4ge1xuXHRcdFx0XHRyZXR1cm4gcHJvcGVydHkubmFtZSA9PT0gYW5ub3RhdGlvbi5xdWFsaWZpZXI7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0R3JvdXBhYmxlUHJvcGVydGllcygpIHtcblx0XHRyZXR1cm4gdGhpcy5fYUdyb3VwYWJsZVByb3BlcnRpZXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0QWdncmVnYXRhYmxlUHJvcGVydGllcygpIHtcblx0XHRyZXR1cm4gdGhpcy5fYUFnZ3JlZ2F0YWJsZVByb3BlcnRpZXM7XG5cdH1cblxuXHRwdWJsaWMgZ2V0VHJhbnNBZ2dyZWdhdGlvbnMoKSB7XG5cdFx0Y29uc3QgYVRyYW5zQWdncmVnYXRpb25Bbm5vdGF0aW9ucyA9IHRoaXMuX2NvbnZlcnRlckNvbnRleHQuZ2V0QW5ub3RhdGlvbnNCeVRlcm0oXG5cdFx0XHRcIkFuYWx5dGljc1wiLFxuXHRcdFx0XCJjb20uc2FwLnZvY2FidWxhcmllcy5BbmFseXRpY3MudjEuQWdncmVnYXRlZFByb3BlcnRpZXNcIixcblx0XHRcdFt0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eUNvbnRhaW5lcigpLCB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGUoKV1cblx0XHQpO1xuXHRcdHJldHVybiBhVHJhbnNBZ2dyZWdhdGlvbkFubm90YXRpb25zO1xuXHR9XG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBsaXN0IG9mIGN1c3RvbSBhZ2dyZWdhdGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBlbnRpdHkgdHlwZS5cblx0ICpcblx0ICogQHJldHVybnMgQSBtYXAgKHByb3BlcnR5TmFtZSAtLT4gYXJyYXkgb2YgY29udGV4dC1kZWZpbmluZyBwcm9wZXJ0eSBuYW1lcykgZm9yIGVhY2ggY3VzdG9tIGFnZ3JlZ2F0ZSBjb3JyZXNwb25kaW5nIHRvIGEgcHJvcGVydHkuIFRoZSBhcnJheSBvZlxuXHQgKiBjb250ZXh0LWRlZmluaW5nIHByb3BlcnR5IG5hbWVzIGlzIGVtcHR5IGlmIHRoZSBjdXN0b20gYWdncmVnYXRlIGRvZXNuJ3QgaGF2ZSBhbnkgY29udGV4dC1kZWZpbmluZyBwcm9wZXJ0eS5cblx0ICovXG5cdHB1YmxpYyBnZXRDdXN0b21BZ2dyZWdhdGVEZWZpbml0aW9ucygpIHtcblx0XHQvLyBHZXQgdGhlIGN1c3RvbSBhZ2dyZWdhdGVzXG5cdFx0Y29uc3QgYUN1c3RvbUFnZ3JlZ2F0ZUFubm90YXRpb25zOiBBbm5vdGF0aW9uVGVybTxDdXN0b21BZ2dyZWdhdGU+W10gPSB0aGlzLl9jb252ZXJ0ZXJDb250ZXh0LmdldEFubm90YXRpb25zQnlUZXJtKFxuXHRcdFx0XCJBZ2dyZWdhdGlvblwiLFxuXHRcdFx0QWdncmVnYXRpb25Bbm5vdGF0aW9uVGVybXMuQ3VzdG9tQWdncmVnYXRlLFxuXHRcdFx0W3RoaXMuX29BZ2dyZWdhdGlvbkFubm90YXRpb25UYXJnZXRdXG5cdFx0KTtcblxuXHRcdHJldHVybiBhQ3VzdG9tQWdncmVnYXRlQW5ub3RhdGlvbnM7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -17,8 +17,9 @@ export class AggregationHelper {
|
|
|
17
17
|
_converterContext: ConverterContext;
|
|
18
18
|
_bApplySupported: boolean;
|
|
19
19
|
_aGroupableProperties?: PropertyPath[];
|
|
20
|
+
_aAggregatableProperties?;
|
|
20
21
|
_oAggregationAnnotationTarget: EntityType | EntitySet | NavigationProperty;
|
|
21
|
-
|
|
22
|
+
oTargetAggregationAnnotations: any;
|
|
22
23
|
/**
|
|
23
24
|
* Creates a helper for a specific entity type and a converter context.
|
|
24
25
|
*
|
|
@@ -30,21 +31,21 @@ export class AggregationHelper {
|
|
|
30
31
|
this._converterContext = converterContext;
|
|
31
32
|
|
|
32
33
|
this._oAggregationAnnotationTarget = this._determineAggregationAnnotationTarget();
|
|
33
|
-
let oTargetAggregationAnnotations;
|
|
34
34
|
if (this._oAggregationAnnotationTarget?._type === "NavigationProperty") {
|
|
35
|
-
oTargetAggregationAnnotations = this._oAggregationAnnotationTarget?.annotations
|
|
35
|
+
this.oTargetAggregationAnnotations = this._oAggregationAnnotationTarget?.annotations
|
|
36
36
|
?.Aggregation as CollectionAnnotations_Aggregation;
|
|
37
37
|
} else if (this._oAggregationAnnotationTarget?._type === "EntityType") {
|
|
38
|
-
oTargetAggregationAnnotations = this._oAggregationAnnotationTarget?.annotations
|
|
38
|
+
this.oTargetAggregationAnnotations = this._oAggregationAnnotationTarget?.annotations
|
|
39
39
|
?.Aggregation as EntityTypeAnnotations_Aggregation;
|
|
40
40
|
} else if (this._oAggregationAnnotationTarget?._type === "EntitySet") {
|
|
41
|
-
oTargetAggregationAnnotations = this._oAggregationAnnotationTarget?.annotations
|
|
41
|
+
this.oTargetAggregationAnnotations = this._oAggregationAnnotationTarget?.annotations
|
|
42
42
|
?.Aggregation as EntitySetAnnotations_Aggregation;
|
|
43
43
|
}
|
|
44
|
-
this._bApplySupported = oTargetAggregationAnnotations?.ApplySupported ? true : false;
|
|
44
|
+
this._bApplySupported = this.oTargetAggregationAnnotations?.ApplySupported ? true : false;
|
|
45
45
|
|
|
46
46
|
if (this._bApplySupported) {
|
|
47
|
-
this._aGroupableProperties = oTargetAggregationAnnotations?.ApplySupported?.GroupableProperties as PropertyPath[];
|
|
47
|
+
this._aGroupableProperties = this.oTargetAggregationAnnotations?.ApplySupported?.GroupableProperties as PropertyPath[];
|
|
48
|
+
this._aAggregatableProperties = this.oTargetAggregationAnnotations?.ApplySupported?.AggregatableProperties;
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
/**
|
|
@@ -129,15 +130,29 @@ export class AggregationHelper {
|
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
132
|
|
|
133
|
+
public getGroupableProperties() {
|
|
134
|
+
return this._aGroupableProperties;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
public getAggregatableProperties() {
|
|
138
|
+
return this._aAggregatableProperties;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
public getTransAggregations() {
|
|
142
|
+
const aTransAggregationAnnotations = this._converterContext.getAnnotationsByTerm(
|
|
143
|
+
"Analytics",
|
|
144
|
+
"com.sap.vocabularies.Analytics.v1.AggregatedProperties",
|
|
145
|
+
[this._converterContext.getEntityContainer(), this._converterContext.getEntityType()]
|
|
146
|
+
);
|
|
147
|
+
return aTransAggregationAnnotations;
|
|
148
|
+
}
|
|
132
149
|
/**
|
|
133
150
|
* Returns the list of custom aggregate definitions for the entity type.
|
|
134
151
|
*
|
|
135
152
|
* @returns A map (propertyName --> array of context-defining property names) for each custom aggregate corresponding to a property. The array of
|
|
136
153
|
* context-defining property names is empty if the custom aggregate doesn't have any context-defining property.
|
|
137
154
|
*/
|
|
138
|
-
public getCustomAggregateDefinitions()
|
|
139
|
-
const mDefinitions: Record<string, string[]> = {};
|
|
140
|
-
|
|
155
|
+
public getCustomAggregateDefinitions() {
|
|
141
156
|
// Get the custom aggregates
|
|
142
157
|
const aCustomAggregateAnnotations: AnnotationTerm<CustomAggregate>[] = this._converterContext.getAnnotationsByTerm(
|
|
143
158
|
"Aggregation",
|
|
@@ -145,22 +160,6 @@ export class AggregationHelper {
|
|
|
145
160
|
[this._oAggregationAnnotationTarget]
|
|
146
161
|
);
|
|
147
162
|
|
|
148
|
-
aCustomAggregateAnnotations
|
|
149
|
-
// Check if there's a property with the same name as the custom aggregate
|
|
150
|
-
const oAggregatedProperty = this._entityType.entityProperties.find(oProperty => {
|
|
151
|
-
return oProperty.name === annotation.qualifier;
|
|
152
|
-
});
|
|
153
|
-
if (oAggregatedProperty) {
|
|
154
|
-
const aContextDefiningProperties = annotation.annotations?.Aggregation?.ContextDefiningProperties;
|
|
155
|
-
|
|
156
|
-
mDefinitions[oAggregatedProperty.name] = aContextDefiningProperties
|
|
157
|
-
? aContextDefiningProperties.map(oCtxDefProperty => {
|
|
158
|
-
return oCtxDefProperty.value;
|
|
159
|
-
})
|
|
160
|
-
: [];
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
|
|
164
|
-
return mDefinitions;
|
|
163
|
+
return aCustomAggregateAnnotations;
|
|
165
164
|
}
|
|
166
165
|
}
|
|
@@ -27,9 +27,10 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression"], function (BindingExpres
|
|
|
27
27
|
HasActive: bindingExpression("HasActiveEntity"),
|
|
28
28
|
IsActive: bindingExpression("IsActiveEntity")
|
|
29
29
|
};
|
|
30
|
+
_exports.Entity = Entity;
|
|
30
31
|
var Draft = {
|
|
31
32
|
IsNewObject: and(not(Entity.HasActive), not(Entity.IsActive)),
|
|
32
|
-
HasNoDraftForCurrentUser: or(not(Entity.HasDraft), and(Entity.HasDraft, not(bindingExpression("DraftAdministrativeData/
|
|
33
|
+
HasNoDraftForCurrentUser: or(not(Entity.HasDraft), and(Entity.HasDraft, not(bindingExpression("DraftAdministrativeData/DraftIsCreatedByMe"))))
|
|
33
34
|
};
|
|
34
35
|
/**
|
|
35
36
|
* Function to adjust singleton paths in the annotation.
|
|
@@ -65,8 +66,32 @@ sap.ui.define(["sap/fe/core/helpers/BindingExpression"], function (BindingExpres
|
|
|
65
66
|
|
|
66
67
|
return path;
|
|
67
68
|
};
|
|
69
|
+
/**
|
|
70
|
+
* Function to adjust property paths defined in the binding of an action.
|
|
71
|
+
*
|
|
72
|
+
* The binding parameter name needs to be removed. Singleton paths need to be resolved.
|
|
73
|
+
*
|
|
74
|
+
* @param {string} path The path configured in the annotation
|
|
75
|
+
* @param {ConverterContext} converterContext The instance of the converter context
|
|
76
|
+
* @param {string} bindingParameterFullName The fully qualified name of the binding parameter
|
|
77
|
+
* @returns {string} The adjusted property path
|
|
78
|
+
*/
|
|
79
|
+
|
|
68
80
|
|
|
69
81
|
_exports.singletonPathVisitor = singletonPathVisitor;
|
|
82
|
+
|
|
83
|
+
function bindingContextPathVisitor(path, converterContext, bindingParameterFullName) {
|
|
84
|
+
var bindingParameterPrefix = (bindingParameterFullName === null || bindingParameterFullName === void 0 ? void 0 : bindingParameterFullName.substring(bindingParameterFullName.lastIndexOf("/") + 1)) + "/"; // Strip the binding parameter name from OperationAvailable path
|
|
85
|
+
// For e.g. _it/property1 --> property1
|
|
86
|
+
|
|
87
|
+
if (path.startsWith(bindingParameterPrefix)) {
|
|
88
|
+
return path.substring(bindingParameterPrefix.length);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return singletonPathVisitor(path, converterContext, []);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
_exports.bindingContextPathVisitor = bindingContextPathVisitor;
|
|
70
95
|
return _exports;
|
|
71
96
|
}, false);
|
|
72
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJpbmRpbmdIZWxwZXIudHMiXSwibmFtZXMiOlsiVUkiLCJJc0NyZWF0ZU1vZGUiLCJiaW5kaW5nRXhwcmVzc2lvbiIsIklzQ3JlYXRlTW9kZVN0aWNreSIsIklzRWRpdGFibGUiLCJJc1RyYW5zaWVudEJpbmRpbmciLCJlcXVhbCIsIklzVG90YWwiLCJJc0V4cGFuZGVkIiwiTm9kZUxldmVsIiwiRW50aXR5IiwiSGFzRHJhZnQiLCJIYXNBY3RpdmUiLCJJc0FjdGl2ZSIsIkRyYWZ0IiwiSXNOZXdPYmplY3QiLCJhbmQiLCJub3QiLCJIYXNOb0RyYWZ0Rm9yQ3VycmVudFVzZXIiLCJvciIsInNpbmdsZXRvblBhdGhWaXNpdG9yIiwicGF0aCIsImNvbnZlcnRlckNvbnRleHQiLCJ2aXNpdGVkTmF2aWdhdGlvblBhdGhzIiwiaW5kZXhPZiIsInBhcnRzIiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwicHJvcGVydHlOYW1lIiwicG9wIiwiZW50aXR5U2V0TmFtZSIsImpvaW4iLCJzaW5nbGV0b24iLCJnZXRTaW5nbGV0b24iLCJuYW1lIiwibG9jYWxQYXRoIiwiY29uY2F0IiwicHVzaCIsImJpbmRpbmdDb250ZXh0UGF0aFZpc2l0b3IiLCJiaW5kaW5nUGFyYW1ldGVyRnVsbE5hbWUiLCJiaW5kaW5nUGFyYW1ldGVyUHJlZml4Iiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJzdGFydHNXaXRoIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7OztBQUNPLE1BQU1BLEVBQUUsR0FBRztBQUNqQkMsSUFBQUEsWUFBWSxFQUFFQyxpQkFBaUIsQ0FBQyxZQUFELEVBQWUsSUFBZixDQURkO0FBRWpCQyxJQUFBQSxrQkFBa0IsRUFBRUQsaUJBQWlCLENBQUMsa0JBQUQsRUFBcUIsSUFBckIsQ0FGcEI7QUFHakJFLElBQUFBLFVBQVUsRUFBRUYsaUJBQWlCLENBQUMsYUFBRCxFQUFnQixJQUFoQixDQUhaO0FBSWpCRyxJQUFBQSxrQkFBa0IsRUFBRUMsS0FBSyxDQUFDSixpQkFBaUIsQ0FBQywyQkFBRCxDQUFsQixFQUFpRCxJQUFqRCxDQUpSO0FBS2pCSyxJQUFBQSxPQUFPLEVBQUVELEtBQUssQ0FBQ0osaUJBQWlCLENBQUMsb0JBQUQsQ0FBbEIsRUFBMEMsSUFBMUMsQ0FMRztBQU1qQk0sSUFBQUEsVUFBVSxFQUFFRixLQUFLLENBQUNKLGlCQUFpQixDQUFDLHVCQUFELENBQWxCLEVBQTZDLElBQTdDLENBTkE7QUFPakJPLElBQUFBLFNBQVMsRUFBRVAsaUJBQWlCLENBQUMsa0JBQUQ7QUFQWCxHQUFYOztBQVVBLE1BQU1RLE1BQU0sR0FBRztBQUNyQkMsSUFBQUEsUUFBUSxFQUFFVCxpQkFBaUIsQ0FBQyxnQkFBRCxDQUROO0FBRXJCVSxJQUFBQSxTQUFTLEVBQUVWLGlCQUFpQixDQUFDLGlCQUFELENBRlA7QUFHckJXLElBQUFBLFFBQVEsRUFBRVgsaUJBQWlCLENBQUMsZ0JBQUQ7QUFITixHQUFmOztBQU1BLE1BQU1ZLEtBQUssR0FBRztBQUNwQkMsSUFBQUEsV0FBVyxFQUFFQyxHQUFHLENBQUNDLEdBQUcsQ0FBQ1AsTUFBTSxDQUFDRSxTQUFSLENBQUosRUFBd0JLLEdBQUcsQ0FBQ1AsTUFBTSxDQUFDRyxRQUFSLENBQTNCLENBREk7QUFFcEJLLElBQUFBLHdCQUF3QixFQUFFQyxFQUFFLENBQzNCRixHQUFHLENBQUNQLE1BQU0sQ0FBQ0MsUUFBUixDQUR3QixFQUUzQkssR0FBRyxDQUFDTixNQUFNLENBQUNDLFFBQVIsRUFBa0JNLEdBQUcsQ0FBQ2YsaUJBQWlCLENBQUMsNENBQUQsQ0FBbEIsQ0FBckIsQ0FGd0I7QUFGUixHQUFkO0FBUVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBQ08sTUFBTWtCLG9CQUFvQixHQUFHLFVBQVNDLElBQVQsRUFBdUJDLGdCQUF2QixFQUEyREMsc0JBQTNELEVBQXFHO0FBQ3hJO0FBQ0EsUUFBSUYsSUFBSSxDQUFDRyxPQUFMLENBQWEsR0FBYixNQUFzQixDQUExQixFQUE2QjtBQUM1QixVQUFNQyxLQUFLLEdBQUdKLElBQUksQ0FBQ0ssS0FBTCxDQUFXLEdBQVgsRUFBZ0JDLE1BQWhCLENBQXVCQyxPQUF2QixDQUFkO0FBQUEsVUFDQ0MsWUFBWSxHQUFHSixLQUFLLENBQUNLLEdBQU4sRUFEaEI7QUFBQSxVQUVDQyxhQUFhLEdBQUdOLEtBQUssQ0FBQ08sSUFBTixDQUFXLEdBQVgsQ0FGakI7QUFBQSxVQUdDQyxTQUFTLEdBQUdYLGdCQUFnQixDQUFDWSxZQUFqQixDQUE4QkgsYUFBOUIsQ0FIYjs7QUFJQSxVQUFJRSxTQUFKLEVBQWU7QUFDZDtBQUNBWixRQUFBQSxJQUFJLEdBQUcsTUFBTVksU0FBUyxDQUFDRSxJQUFoQixHQUF1QixHQUF2QixHQUE2Qk4sWUFBcEM7QUFDQTtBQUNELEtBVEQsTUFTTztBQUNOO0FBQ0E7QUFDQSxVQUFNTyxTQUFTLEdBQUdiLHNCQUFzQixDQUFDYyxNQUF2QixFQUFsQjtBQUNBRCxNQUFBQSxTQUFTLENBQUNFLElBQVYsQ0FBZWpCLElBQWY7QUFDQUEsTUFBQUEsSUFBSSxHQUFHZSxTQUFTLENBQUNKLElBQVYsQ0FBZSxHQUFmLENBQVA7QUFDQTs7QUFDRCxXQUFPWCxJQUFQO0FBQ0EsR0FuQk07QUFxQlA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBQ08sV0FBU2tCLHlCQUFULENBQW1DbEIsSUFBbkMsRUFBaURDLGdCQUFqRCxFQUFxRmtCLHdCQUFyRixFQUF1SDtBQUM3SCxRQUFNQyxzQkFBc0IsR0FBRyxDQUFBRCx3QkFBd0IsU0FBeEIsSUFBQUEsd0JBQXdCLFdBQXhCLFlBQUFBLHdCQUF3QixDQUFFRSxTQUExQixDQUFvQ0Ysd0JBQXdCLENBQUNHLFdBQXpCLENBQXFDLEdBQXJDLElBQTRDLENBQWhGLEtBQXFGLEdBQXBILENBRDZILENBRTdIO0FBQ0E7O0FBQ0EsUUFBSXRCLElBQUksQ0FBQ3VCLFVBQUwsQ0FBZ0JILHNCQUFoQixDQUFKLEVBQTZDO0FBQzVDLGFBQU9wQixJQUFJLENBQUNxQixTQUFMLENBQWVELHNCQUFzQixDQUFDSSxNQUF0QyxDQUFQO0FBQ0E7O0FBQ0QsV0FBT3pCLG9CQUFvQixDQUFDQyxJQUFELEVBQU9DLGdCQUFQLEVBQXlCLEVBQXpCLENBQTNCO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuZCwgYmluZGluZ0V4cHJlc3Npb24sIGVxdWFsLCBFeHByZXNzaW9uLCBub3QsIG9yIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL0NvbnZlcnRlckNvbnRleHRcIjtcblxuZXhwb3J0IGNvbnN0IFVJID0ge1xuXHRJc0NyZWF0ZU1vZGU6IGJpbmRpbmdFeHByZXNzaW9uKFwiY3JlYXRlTW9kZVwiLCBcInVpXCIpIGFzIEV4cHJlc3Npb248Ym9vbGVhbj4sXG5cdElzQ3JlYXRlTW9kZVN0aWNreTogYmluZGluZ0V4cHJlc3Npb24oXCJjcmVhdGVNb2RlU3RpY2t5XCIsIFwidWlcIikgYXMgRXhwcmVzc2lvbjxib29sZWFuPixcblx0SXNFZGl0YWJsZTogYmluZGluZ0V4cHJlc3Npb24oXCIvaXNFZGl0YWJsZVwiLCBcInVpXCIpIGFzIEV4cHJlc3Npb248Ym9vbGVhbj4sXG5cdElzVHJhbnNpZW50QmluZGluZzogZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCJAJHVpNS5jb250ZXh0LmlzVHJhbnNpZW50XCIpLCB0cnVlKSxcblx0SXNUb3RhbDogZXF1YWwoYmluZGluZ0V4cHJlc3Npb24oXCJAJHVpNS5ub2RlLmlzVG90YWxcIiksIHRydWUpLFxuXHRJc0V4cGFuZGVkOiBlcXVhbChiaW5kaW5nRXhwcmVzc2lvbihcIkAkdWk1Lm5vZGUuaXNFeHBhbmRlZFwiKSwgdHJ1ZSksXG5cdE5vZGVMZXZlbDogYmluZGluZ0V4cHJlc3Npb24oXCJAJHVpNS5ub2RlLmxldmVsXCIpXG59O1xuXG5leHBvcnQgY29uc3QgRW50aXR5ID0ge1xuXHRIYXNEcmFmdDogYmluZGluZ0V4cHJlc3Npb24oXCJIYXNEcmFmdEVudGl0eVwiKSxcblx0SGFzQWN0aXZlOiBiaW5kaW5nRXhwcmVzc2lvbihcIkhhc0FjdGl2ZUVudGl0eVwiKSxcblx0SXNBY3RpdmU6IGJpbmRpbmdFeHByZXNzaW9uKFwiSXNBY3RpdmVFbnRpdHlcIilcbn07XG5cbmV4cG9ydCBjb25zdCBEcmFmdCA9IHtcblx0SXNOZXdPYmplY3Q6IGFuZChub3QoRW50aXR5Lkhhc0FjdGl2ZSksIG5vdChFbnRpdHkuSXNBY3RpdmUpKSxcblx0SGFzTm9EcmFmdEZvckN1cnJlbnRVc2VyOiBvcihcblx0XHRub3QoRW50aXR5Lkhhc0RyYWZ0KSxcblx0XHRhbmQoRW50aXR5Lkhhc0RyYWZ0LCBub3QoYmluZGluZ0V4cHJlc3Npb24oXCJEcmFmdEFkbWluaXN0cmF0aXZlRGF0YS9EcmFmdElzQ3JlYXRlZEJ5TWVcIikgYXMgRXhwcmVzc2lvbjxib29sZWFuPikpXG5cdClcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gYWRqdXN0IHNpbmdsZXRvbiBwYXRocyBpbiB0aGUgYW5ub3RhdGlvbi5cbiAqIFRoZSBhYnNvbHV0ZSBwYXRoIHZpYSBFbnRpdHlDb250YWluZXIgbmVlZHMgdG8gYmUgc2hvcnRlbmVkIHRvIC9TaW5nbGV0b25OYW1lL1Byb3BlcnR5TmFtZS5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGF0aCBUaGUgcGF0aCBjb25maWd1cmVkIGluIHRoZSBhbm5vdGF0aW9uXG4gKiBAcGFyYW0ge0NvbnZlcnRlckNvbnRleHR9IGNvbnZlcnRlckNvbnRleHQgVGhlIGluc3RhbmNlIG9mIHRoZSBjb252ZXJ0ZXIgY29udGV4dFxuICogQHBhcmFtIHtzdHJpbmdbXX0gdmlzaXRlZE5hdmlnYXRpb25QYXRocyBUaGUgYXJyYXkgb2YgdmlzaXRlZCBuYXZpZ2F0aW9uIHBhdGhzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgYWRqdXN0ZWQgcGF0aCBmb3IgdGhlIHJlZmVyZW5jZSBvZiB0aGUgc2luZ2xldG9uIHByb3BlcnR5LCBvdGhlcndpc2UgdGhlIGlucHV0IHBhdGggaXRzZWxmLlxuICovXG5leHBvcnQgY29uc3Qgc2luZ2xldG9uUGF0aFZpc2l0b3IgPSBmdW5jdGlvbihwYXRoOiBzdHJpbmcsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsIHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcblx0Ly8gRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHBhdGggaXMgYWJzb2x1dGUgYW5kIHdoZXRoZXIgaXQgcG9pbnRzIHRvIGEgc2luZ2xldG9uLlxuXHRpZiAocGF0aC5pbmRleE9mKFwiL1wiKSA9PT0gMCkge1xuXHRcdGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi9cIikuZmlsdGVyKEJvb2xlYW4pLFxuXHRcdFx0cHJvcGVydHlOYW1lID0gcGFydHMucG9wKCksXG5cdFx0XHRlbnRpdHlTZXROYW1lID0gcGFydHMuam9pbihcIi9cIiksXG5cdFx0XHRzaW5nbGV0b24gPSBjb252ZXJ0ZXJDb250ZXh0LmdldFNpbmdsZXRvbihlbnRpdHlTZXROYW1lKTtcblx0XHRpZiAoc2luZ2xldG9uKSB7XG5cdFx0XHQvLyBTZXQgdGhlIGFic29sdXRlIGJpbmRpbmcgcGF0aCB0byBhY2Nlc3MgdGhlIHNpbmdsZXRvbiBwcm9wZXJ0eVxuXHRcdFx0cGF0aCA9IFwiL1wiICsgc2luZ2xldG9uLm5hbWUgKyBcIi9cIiArIHByb3BlcnR5TmFtZTtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0Ly8gTm90IGEgc2luZ2xldG9uIHJlZmVyZW5jZS5cblx0XHQvLyBQcmVmaXggdGhlIG5hdmlnYXRpb24gcGF0aCB0byB0aGUgcHJvcGVydHkgcGF0aFxuXHRcdGNvbnN0IGxvY2FsUGF0aCA9IHZpc2l0ZWROYXZpZ2F0aW9uUGF0aHMuY29uY2F0KCk7XG5cdFx0bG9jYWxQYXRoLnB1c2gocGF0aCk7XG5cdFx0cGF0aCA9IGxvY2FsUGF0aC5qb2luKFwiL1wiKTtcblx0fVxuXHRyZXR1cm4gcGF0aDtcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gYWRqdXN0IHByb3BlcnR5IHBhdGhzIGRlZmluZWQgaW4gdGhlIGJpbmRpbmcgb2YgYW4gYWN0aW9uLlxuICpcbiAqIFRoZSBiaW5kaW5nIHBhcmFtZXRlciBuYW1lIG5lZWRzIHRvIGJlIHJlbW92ZWQuIFNpbmdsZXRvbiBwYXRocyBuZWVkIHRvIGJlIHJlc29sdmVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoIFRoZSBwYXRoIGNvbmZpZ3VyZWQgaW4gdGhlIGFubm90YXRpb25cbiAqIEBwYXJhbSB7Q29udmVydGVyQ29udGV4dH0gY29udmVydGVyQ29udGV4dCBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvbnZlcnRlciBjb250ZXh0XG4gKiBAcGFyYW0ge3N0cmluZ30gYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgYmluZGluZyBwYXJhbWV0ZXJcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhZGp1c3RlZCBwcm9wZXJ0eSBwYXRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiaW5kaW5nQ29udGV4dFBhdGhWaXNpdG9yKHBhdGg6IHN0cmluZywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCwgYmluZGluZ1BhcmFtZXRlckZ1bGxOYW1lOiBzdHJpbmcpIHtcblx0Y29uc3QgYmluZGluZ1BhcmFtZXRlclByZWZpeCA9IGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZT8uc3Vic3RyaW5nKGJpbmRpbmdQYXJhbWV0ZXJGdWxsTmFtZS5sYXN0SW5kZXhPZihcIi9cIikgKyAxKSArIFwiL1wiO1xuXHQvLyBTdHJpcCB0aGUgYmluZGluZyBwYXJhbWV0ZXIgbmFtZSBmcm9tIE9wZXJhdGlvbkF2YWlsYWJsZSBwYXRoXG5cdC8vIEZvciBlLmcuIF9pdC9wcm9wZXJ0eTEgLS0+IHByb3BlcnR5MVxuXHRpZiAocGF0aC5zdGFydHNXaXRoKGJpbmRpbmdQYXJhbWV0ZXJQcmVmaXgpKSB7XG5cdFx0cmV0dXJuIHBhdGguc3Vic3RyaW5nKGJpbmRpbmdQYXJhbWV0ZXJQcmVmaXgubGVuZ3RoKTtcblx0fVxuXHRyZXR1cm4gc2luZ2xldG9uUGF0aFZpc2l0b3IocGF0aCwgY29udmVydGVyQ29udGV4dCwgW10pO1xufVxuIl19
|
|
@@ -11,7 +11,7 @@ export const UI = {
|
|
|
11
11
|
NodeLevel: bindingExpression("@$ui5.node.level")
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
const Entity = {
|
|
14
|
+
export const Entity = {
|
|
15
15
|
HasDraft: bindingExpression("HasDraftEntity"),
|
|
16
16
|
HasActive: bindingExpression("HasActiveEntity"),
|
|
17
17
|
IsActive: bindingExpression("IsActiveEntity")
|
|
@@ -21,7 +21,7 @@ export const Draft = {
|
|
|
21
21
|
IsNewObject: and(not(Entity.HasActive), not(Entity.IsActive)),
|
|
22
22
|
HasNoDraftForCurrentUser: or(
|
|
23
23
|
not(Entity.HasDraft),
|
|
24
|
-
and(Entity.HasDraft, not(bindingExpression("DraftAdministrativeData/
|
|
24
|
+
and(Entity.HasDraft, not(bindingExpression("DraftAdministrativeData/DraftIsCreatedByMe") as Expression<boolean>))
|
|
25
25
|
)
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -54,3 +54,23 @@ export const singletonPathVisitor = function(path: string, converterContext: Con
|
|
|
54
54
|
}
|
|
55
55
|
return path;
|
|
56
56
|
};
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Function to adjust property paths defined in the binding of an action.
|
|
60
|
+
*
|
|
61
|
+
* The binding parameter name needs to be removed. Singleton paths need to be resolved.
|
|
62
|
+
*
|
|
63
|
+
* @param {string} path The path configured in the annotation
|
|
64
|
+
* @param {ConverterContext} converterContext The instance of the converter context
|
|
65
|
+
* @param {string} bindingParameterFullName The fully qualified name of the binding parameter
|
|
66
|
+
* @returns {string} The adjusted property path
|
|
67
|
+
*/
|
|
68
|
+
export function bindingContextPathVisitor(path: string, converterContext: ConverterContext, bindingParameterFullName: string) {
|
|
69
|
+
const bindingParameterPrefix = bindingParameterFullName?.substring(bindingParameterFullName.lastIndexOf("/") + 1) + "/";
|
|
70
|
+
// Strip the binding parameter name from OperationAvailable path
|
|
71
|
+
// For e.g. _it/property1 --> property1
|
|
72
|
+
if (path.startsWith(bindingParameterPrefix)) {
|
|
73
|
+
return path.substring(bindingParameterPrefix.length);
|
|
74
|
+
}
|
|
75
|
+
return singletonPathVisitor(path, converterContext, []);
|
|
76
|
+
}
|