<core:FragmentDefinition xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
	xmlns:core="sap.ui.core"
	xmlns="sap.m"
	xmlns:mdcField="sap.ui.mdc.field"
	xmlns:mdc="sap.ui.mdc"
	xmlns:mdcLink="sap.ui.mdc.link"
	template:require="{ MODEL: 'sap/ui/model/odata/v4/AnnotationHelper',
			            FIELD: 'sap/fe/macros/field/FieldHelper' }">
	<!-- TODO: If Visible is handled by path from association there is already binding made for contact details hence batch call fails need to find a better way to do the same -->
    <VBox visible = "{= ${dataField>@@.FIELD.getHiddenPathExpression}}">
	  <mdc:Field editMode="Display"
		class="{= ${this>class} }"
		width="100%"
		binding="{dataField>Target/$AnnotationPath@@MODEL.getNavigationBinding}"
		value="{contact>fn@@MODEL.value}">
		<mdc:fieldInfo>
			<mdcField:FieldInfo>
				<mdcLink:ContentHandler enablePersonalization="false">
					<mdcLink:linkHandler>
						<mdcLink:LinkHandler>
							<mdcLink:LinkItem
								isMain="true"
								text="{contact>fn@@MODEL.value}"
								description="{contact>title@@MODEL.value}"
								icon="{contact>photo@@MODEL.value}"/>
						</mdcLink:LinkHandler>
					</mdcLink:linkHandler>
					<mdcLink:additionalContent>
						<mdcLink:ContactDetails>
							<mdcLink:ContactDetailsItem formattedName="{contact>fn@@MODEL.value}"
								photo="{contact>photo@@MODEL.value}"
								title="{contact>title@@MODEL.value}"
								role="{contact>role@@MODEL.value}"
								org="{contact>org@@MODEL.value}">
								<template:if test="{contact>tel}">
									<mdcLink:phones>
										<template:repeat list="{contact>tel}" var="telephone">
											<mdcLink:ContactDetailsPhoneItem uri="{telephone>uri@@MODEL.value}"
												types="{= ${telephone>type} &amp;&amp; ${telephone>type/$EnumMember}.split('/').pop() || undefined }"/>
										</template:repeat>
									</mdcLink:phones>
								</template:if>
								<template:if test="{contact>email}">
									<mdcLink:emails>
										<template:repeat list="{contact>email}" var="emailId">
											<mdcLink:ContactDetailsEmailItem uri="{emailId>address@@MODEL.value}"
												types="{= ${emailId>type} &amp;&amp; ${emailId>type/$EnumMember}.split('/').pop() || undefined }"/>
										</template:repeat>
									</mdcLink:emails>
								</template:if>
								<template:if test="{contact>adr}">
									<mdcLink:addresses>
										<template:repeat list="{contact>adr}" var="address">
											<mdcLink:ContactDetailsAddressItem street="{address>street@@MODEL.value}"
												code="{address>code@@MODEL.value}"
												locality="{address>locality@@MODEL.value}"
												region="{address>region@@MODEL.value}"
												country="{address>country@@MODEL.value}"
												types="{= ${address>type} &amp;&amp; ${address>type/$EnumMember}.split('/').pop() || undefined }"/>
										</template:repeat>
									</mdcLink:addresses>
								</template:if>
							</mdcLink:ContactDetailsItem>
						</mdcLink:ContactDetails>
					</mdcLink:additionalContent>
				</mdcLink:ContentHandler>
			</mdcField:FieldInfo>
		</mdc:fieldInfo>
	  </mdc:Field>
	</VBox>
</core:FragmentDefinition>
