<core:FragmentDefinition xmlns:template="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"
						 xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:uxap="sap.uxap"
						 xmlns:dt="sap.ui.dt"
						 template:require="{
							AH: 'sap/suite/ui/generic/template/js/AnnotationHelper',
							AHModel: 'sap/ui/model/odata/AnnotationHelper',
							AHDesignTime: 'sap/suite/ui/generic/template/changeHandler/js/AnnotationHelperForDesignTime',
							AHActionButtons: 'sap/suite/ui/generic/template/ObjectPage/annotationHelpers/AnnotationHelperActionButtons'}">

		<template:if test="{= ${parameter>/isFiori3Enabled}}">
			<template:then>
				<template:if test="{= !${parameter>/manifest/sap.ui.generic.app/pages/0/component/settings/treeTable}}">
					<!-- Edit button -->
					<template:if test="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'parameter>/settings/routeConfig/navigation/edit/target'}, {path: 'parameter>/isDraftEnabled'}, {path: 'parameter>/treeNode/level'}], formatter: 'AHActionButtons.isEditButtonRequired'}">
						<core:InvisibleText id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'EditText'})}" text="{parts: [{value: 'i18n>EDIT_BUTTON_DESCRIPTION'}, {path: 'entityType>com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value'}], formatter: 'sap.suite.ui.generic.template.js.AnnotationHelper.setAriaText'}"/>
						<uxap:ObjectPageHeaderActionButton
							id="edit" text="{i18n>EDIT}" type="Emphasized" hideText="false"
							enabled="{ui>/enabled}" press="cmd:Edit" ariaDescribedBy="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'EditText'})}" importance="High"
							visible="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'parameter>/isDraftEnabled'},{path: 'parameter>/manifest/sap.ui.generic.app/settings/showDraftToggle'}], formatter: 'AHActionButtons.getEditActionButtonVisibility'}">
							<uxap:customData>
								<core:CustomData key="CrossNavigation" value="{parameter>/settings/routeConfig/navigation/edit/target}"/>
							</uxap:customData>
						</uxap:ObjectPageHeaderActionButton>
					</template:if>

					<!-- Delete button -->
					<template:if test="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.DeleteRestrictions'}, {path: 'entitySet>entityType'}, {value: 'Deletable'}], formatter: 'AH.areBooleanRestrictionsValidAndPossible'}">
						<uxap:ObjectPageHeaderActionButton
							id="delete" text="{i18n>DELETE}" enabled="{ui>/enabled}" hideText="false"
							press="cmd:Delete" importance="Medium" type="Default"
							visible="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.DeleteRestrictions'}, {path: 'entitySet>'}, {path: 'parameter>/isDraftEnabled'}, {path: 'parameter>/treeNode/level'}], formatter: 'AHActionButtons.getDeleteActionButtonVisibility'}" />
					</template:if>
				</template:if>
				
				<!-- Display Active and Continue Editing buttons -->
				<template:if test="{= ${parameter>/manifest/sap.ui.generic.app/settings/showDraftToggle}&amp;&amp; ${path: 'parameter>/treeNode/level'} === 1 &amp;&amp; ${parameter>/isDraftEnabled} &amp;&amp; !${parameter>/manifest/sap.ui.generic.app/pages/0/component/settings/treeTable} }">
					<uxap:ObjectPageHeaderActionButton
						id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'DisplayActiveVersion'})}" text="{i18n>DISPLAY_ACTIVE_VERSION}"
						visible="{= ${HasActiveEntity} &amp;&amp; !${IsActiveEntity} }"
						type="Default" hideText="false" importance="Medium" enabled="{ui>/enabled}"
						press="._templateEventHandlers.onEditAndActiveToggle(${$source>/}, ${HasDraftEntity})">
					</uxap:ObjectPageHeaderActionButton>
					<uxap:ObjectPageHeaderActionButton
						id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'ContinueEditing'})}" text="{i18n>CONTINUE_EDITING}"
						visible="{= ${HasDraftEntity} &amp;&amp; ${IsActiveEntity} &amp;&amp; ${DraftAdministrativeData/DraftIsCreatedByMe} }"
						type="Default" hideText="false" importance="Medium" enabled="{ui>/enabled}"
						press="._templateEventHandlers.onEditAndActiveToggle(${$source>/}, ${HasDraftEntity})">
					</uxap:ObjectPageHeaderActionButton>
				</template:if>

				<!-- add the non-determining dataFieldForActions with importance High -->
				<template:repeat list="{entityType>com.sap.vocabularies.UI.v1.Identification}" var="dataField">
					<template:if test="{= ${dataField>RecordType} === 'com.sap.vocabularies.UI.v1.DataFieldForAction' &amp;&amp; ${dataField>Determining/Bool} !== 'true' &amp;&amp; ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} === 'com.sap.vocabularies.UI.v1.ImportanceType/High' }">
						<core:Fragment fragmentName="sap.suite.ui.generic.template.ObjectPage.view.fragments.DataFieldForActionNonDetermining" type="XML"/>
					</template:if>
				</template:repeat>

				<!-- add the non-determining dataFieldForActions with importance less then High -->
				<template:repeat list="{entityType>com.sap.vocabularies.UI.v1.Identification}" var="dataField">
					<template:if test="{= ${dataField>RecordType} === 'com.sap.vocabularies.UI.v1.DataFieldForAction' &amp;&amp; ${dataField>Determining/Bool} !== 'true' &amp;&amp; ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} !== 'com.sap.vocabularies.UI.v1.ImportanceType/High' }">
						<core:Fragment fragmentName="sap.suite.ui.generic.template.ObjectPage.view.fragments.DataFieldForActionNonDetermining" type="XML"/>
					</template:if>
				</template:repeat>

				<!-- Custom Action Breakout -->
				<template:repeat list="{parameter>/manifest/sap.ui5/extends/extensions/sap.ui.controllerExtensions/sap.suite.ui.generic.template.ObjectPage.view.Details/sap.ui.generic.app}"
							     var="tmpEntitySet">
					<template:if test="{= ${tmpEntitySet>EntitySet} === ${parameter>/entitySet} }">
						<template:repeat list="{tmpEntitySet>Header/Actions}" var="customAction">
				            <template:if test="{= ${customAction>determining} !== true}">
								<uxap:ObjectPageHeaderActionButton id="action::{customAction>id}"
																   text="{customAction>text}"
																   press="{customAction>press}" enabled="{ui>/enabled}"
		                                                           visible="{path: 'customAction>applicablePath', formatter: 'AHActionButtons.getActionControlBreakoutVisibility'}"
																   hideText="false" importance="Medium" type="Default">
								</uxap:ObjectPageHeaderActionButton>
				            </template:if>
						</template:repeat>
					</template:if>
				</template:repeat>

				<template:if test="{parameter>/settings/showRelatedApps}">
					<uxap:ObjectPageHeaderActionButton id="relatedApps" text="{i18n>RELATED_APPS}" hideText="false"
													   importance="Medium" type="Default"
													   press="._templateEventHandlers.onRelatedApps"
													   visible="{_templPrivGlobal>/generic/crossAppNavSupport}"/>
		 		</template:if>
			</template:then>
      <!-- not Fiori3 disabled: -->
			<template:else>
				<!-- Custom Action Breakout -->
				<template:repeat list="{parameter>/manifest/sap.ui5/extends/extensions/sap.ui.controllerExtensions/sap.suite.ui.generic.template.ObjectPage.view.Details/sap.ui.generic.app}"
							     var="tmpEntitySet">
					<template:if test="{= ${tmpEntitySet>EntitySet} === ${parameter>/entitySet} }">
						<template:repeat list="{tmpEntitySet>Header/Actions}" var="customAction">
				            <template:if test="{= ${customAction>determining} !== true}">
								<uxap:ObjectPageHeaderActionButton id="action::{customAction>id}"
																   text="{customAction>text}"
																   press="{customAction>press}" enabled="{ui>/enabled}"
		                                                           visible="{path: 'customAction>applicablePath', formatter: 'AHActionButtons.getActionControlBreakoutVisibility'}"
																   hideText="false" importance="Medium" type="Transparent">
								</uxap:ObjectPageHeaderActionButton>
				            </template:if>
						</template:repeat>
					</template:if>
				</template:repeat>

				<!-- add the non-determining dataFieldForActions with importance High -->
				<template:repeat list="{entityType>com.sap.vocabularies.UI.v1.Identification}" var="dataField">
					<template:if test="{= ${dataField>RecordType} === 'com.sap.vocabularies.UI.v1.DataFieldForAction' &amp;&amp; ${dataField>Determining/Bool} !== 'true' &amp;&amp; ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} === 'com.sap.vocabularies.UI.v1.ImportanceType/High' }">
						<core:Fragment fragmentName="sap.suite.ui.generic.template.ObjectPage.view.fragments.DataFieldForActionNonDetermining" type="XML"/>
					</template:if>
				</template:repeat>
				<template:if test="{= !${parameter>/manifest/sap.ui.generic.app/pages/0/component/settings/treeTable}}">
					<!-- Edit button -->
					<template:if test="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'parameter>/settings/routeConfig/navigation/edit/target'}, {path: 'parameter>/isDraftEnabled'}, {path: 'parameter>/treeNode/level'}], formatter: 'AHActionButtons.isEditButtonRequired'}">
						<core:InvisibleText id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'EditText'})}" text="{parts: [{value: 'i18n>EDIT_BUTTON_DESCRIPTION'}, {path: 'entityType>com.sap.vocabularies.UI.v1.HeaderInfo/Title/Value'}], formatter: 'sap.suite.ui.generic.template.js.AnnotationHelper.setAriaText'}"/>
						<uxap:ObjectPageHeaderActionButton
							id="edit" text="{i18n>EDIT}" type="Emphasized" hideText="false"
							enabled="{ui>/enabled}" press="cmd:Edit" ariaDescribedBy="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'EditText'})}" importance="Medium"
							visible="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.UpdateRestrictions'}, {path: 'entitySet>'}, {path: 'parameter>/isDraftEnabled'},{path: 'parameter>/manifest/sap.ui.generic.app/settings/showDraftToggle'}], formatter: 'AHActionButtons.getEditActionButtonVisibility'}">
							<uxap:customData>
								<core:CustomData key="CrossNavigation" value="{parameter>/settings/routeConfig/navigation/edit/target}"/>
							</uxap:customData>
						</uxap:ObjectPageHeaderActionButton>
					</template:if>

					<!-- Delete button -->
					<template:if test="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.DeleteRestrictions'}, {path: 'entitySet>entityType'}, {value: 'Deletable'}], formatter: 'AH.areBooleanRestrictionsValidAndPossible'}">
						<uxap:ObjectPageHeaderActionButton
							id="delete" text="{i18n>DELETE}" enabled="{ui>/enabled}" hideText="false"
							press="cmd:Delete" importance="Medium" type="Transparent"
							visible="{parts: [{path: 'entitySet>Org.OData.Capabilities.V1.DeleteRestrictions'}, {path: 'entitySet>'}, {path: 'parameter>/isDraftEnabled'}, {path: 'parameter>/treeNode/level'}], formatter: 'AHActionButtons.getDeleteActionButtonVisibility'}" />
					</template:if>
				</template:if>
		 		<template:if test="{parameter>/settings/showRelatedApps}">
					<uxap:ObjectPageHeaderActionButton id="relatedApps" text="{i18n>RELATED_APPS}" hideText="false"
													   importance="Medium" type="Transparent"
													   press="._templateEventHandlers.onRelatedApps"
													   visible="{_templPrivGlobal>/generic/crossAppNavSupport}"/>
		 		</template:if>

				<!-- add the non-determining dataFieldForActions with importance less then High -->
				<template:repeat list="{entityType>com.sap.vocabularies.UI.v1.Identification}" var="dataField">
					<template:if test="{= ${dataField>RecordType} === 'com.sap.vocabularies.UI.v1.DataFieldForAction' &amp;&amp; ${dataField>Determining/Bool} !== 'true' &amp;&amp; ${dataField>com.sap.vocabularies.UI.v1.Importance/EnumMember} !== 'com.sap.vocabularies.UI.v1.ImportanceType/High' }">
						<core:Fragment fragmentName="sap.suite.ui.generic.template.ObjectPage.view.fragments.DataFieldForActionNonDetermining" type="XML"/>
					</template:if>
				</template:repeat>

				<!-- Display Active and Continue Editing buttons -->

				<template:if test="{= ${parameter>/manifest/sap.ui.generic.app/settings/showDraftToggle}&amp;&amp; ${path: 'parameter>/treeNode/level'} === 1 &amp;&amp; ${parameter>/isDraftEnabled} &amp;&amp; !${parameter>/manifest/sap.ui.generic.app/pages/0/component/settings/treeTable} }">
					<uxap:ObjectPageHeaderActionButton
						id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'DisplayActiveVersion'})}" text="{i18n>DISPLAY_ACTIVE_VERSION}"
						visible="{= ${HasActiveEntity} &amp;&amp; !${IsActiveEntity} }"
						type="Transparent" hideText="false" importance="Medium" enabled="{ui>/enabled}"
						press="._templateEventHandlers.onEditAndActiveToggle(${$source>/}, ${HasDraftEntity})">
					</uxap:ObjectPageHeaderActionButton>
					<uxap:ObjectPageHeaderActionButton
						id="{:= ${parameter>/stableId}.getStableId({type: 'ObjectPageAction', subType: 'ContinueEditing'})}" text="{i18n>CONTINUE_EDITING}"
						visible="{= ${HasDraftEntity} &amp;&amp; ${IsActiveEntity} &amp;&amp; ${DraftAdministrativeData/DraftIsCreatedByMe} }"
						type="Transparent" hideText="false" importance="Medium" enabled="{ui>/enabled}"
						press="._templateEventHandlers.onEditAndActiveToggle(${$source>/}, ${HasDraftEntity})">
					</uxap:ObjectPageHeaderActionButton>
				</template:if>
			</template:else>
		</template:if>

		<uxap:ObjectPageHeaderActionButton id="template::Share"
										   text="{i18n>SHARE}"
										   icon="sap-icon://action" enabled="{ui>/enabled}" type="Transparent"
										   press="cmd:Share"
										   importance="High" class="sapSmartTemplatesShareMenuButton"
										   visible="{= ${parameter>/manifest/sap.ui.generic.app/settings/flexibleColumnLayout} ? '{= ${_templPrivGlobal>/generic/FCL/highestViewLevel} ===' + ${parameter>/settings/routeConfig/viewLevel} + ' }' : 'true' }"
										   tooltip="{i18n>SHARE}"/>
</core:FragmentDefinition>
