UNPKG

@sap/generator-fiori

Version:

Create an SAPUI5 application using SAP Fiori elements or a freestyle approach

1 lines 61.8 kB
"use strict";exports.id=971,exports.ids=[971],exports.modules={71767:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.enhanceManifestAndGetActionsElementReference=enhanceManifestAndGetActionsElementReference,t.generateCustomAction=async function generateCustomAction(e,t,n){(0,s.validateVersion)(t.minUI5Version),n||(n=(0,a.create)((0,o.create)()));await(0,s.validateBasePath)(e,n);const{path:i,content:d}=await(0,g.getManifest)(e,n),m=function enhanceConfig(e,t,n){const o={...e,target:{...e.target},settings:{...e.settings}};return(0,l.setCommonDefaults)(o,t,n),o.settings.enabled=o.settings.enabled||!0,o.settings.visible=o.settings.visible||!0,o}(t,i,d);m.eventHandler&&(m.eventHandler=(0,c.applyEventHandlerConfiguration)(n,m,m.eventHandler,{controllerSuffix:!1,typescript:m.typescript},c.contextParameter));const f=enhanceManifestAndGetActionsElementReference(d,m.target);return Object.assign(f,JSON.parse((0,r.render)(n.read((0,p.getTemplatePath)("action/manifest.action.json")),m,{}))),n.writeJSON(i,d,void 0,(0,u.getJsonSpace)(n,i,t.tabInfo)),n};const o=n(64812),a=n(90718),i=n(14318),r=n(29473),s=n(31376),l=n(99644),c=n(78193),p=n(27099),u=n(51048),g=n(96929);function enhanceManifestAndGetActionsElementReference(e,t){const n=e["sap.ui5"].routing.targets[t.page];if(n.options=n.options||{},n.options.settings=n.options.settings||{},t.control===i.TargetControl.header||t.control===i.TargetControl.footer)return n.options.settings.content=n.options.settings.content||{},n.options.settings.content[t.control]=n.options.settings.content[t.control]||{},n.options.settings.content[t.control].actions=n.options.settings.content[t.control].actions||{},n.options.settings.content[t.control].actions;if(t.control===i.TargetControl.body&&t.customSectionKey)return n.options.settings.content=n.options.settings.content||{},n.options.settings.content[t.control]=n.options.settings.content[t.control]||{},n.options.settings.content[t.control].sections=n.options.settings.content[t.control].sections||{},n.options.settings.content[t.control].sections[t.customSectionKey]=n.options.settings.content[t.control].sections[t.customSectionKey]||{},n.options.settings.content[t.control].sections[t.customSectionKey].actions=n.options.settings.content[t.control].sections[t.customSectionKey].actions||{},n.options.settings.content[t.control].sections[t.customSectionKey].actions;{const e=t.navProperty?t.navProperty+"/":"",o=t.qualifier?"#"+t.qualifier:"",a=`${e}${t.control}${o}`;return n.options.settings.controlConfiguration=n.options.settings.controlConfiguration||{},n.options.settings.controlConfiguration[a]=n.options.settings.controlConfiguration[a]||{},n.options.settings.controlConfiguration[a].actions=n.options.settings.controlConfiguration[a].actions||{},n.options.settings.controlConfiguration[a].actions}}},14318:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.TargetControl=void 0,function(e){e.header="header",e.body="body",e.footer="footer",e.section="@com.sap.vocabularies.UI.v1.FieldGroup",e.table="@com.sap.vocabularies.UI.v1.LineItem"}(n||(t.TargetControl=n={}))},82800:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.MIN_VERSION=void 0,t.enableFPM=async function enableFPM(e,n={},u){u||(u=(0,a.create)((0,o.create)()));const{path:g,content:d}=await(0,p.getManifest)(e,u);d["sap.ui5"]?.dependencies?.libs?.["sap.fe.templates"]||u.extendJSON(g,{"sap.ui5":{dependencies:{libs:{"sap.fe.templates":{}}}}});(function adaptMinUI5Version(e,n,o){const a=(0,s.getMinUI5VersionAsArray)(e,!0);if(a?.length>0){let e=!1;for(let n=0;n<a.length;n++){const o=a[n];o&&(0,r.valid)(o)&&(0,r.lt)(o,t.MIN_VERSION)&&(a[n]=t.MIN_VERSION,e=!0)}e&&(1===a.length?n.extendJSON(o,{"sap.ui5":{dependencies:{minUI5Version:a[0]}}}):a.length>1&&n.extendJSON(o,{"sap.ui5":{dependencies:{minUI5Version:a}}}))}})(d,u,g),n.typescript&&(0,p.addExtensionTypes)(e,(0,s.getMinimumUI5Version)(d),u);n.fcl&&u.extendJSON(g,{"sap.ui5":{rootView:{viewName:"sap.fe.templates.RootContainer.view.Fcl",type:"XML",async:!0,id:"appRootView"},routing:{config:{routerClass:l.FCL_ROUTER}}}});if(n.replaceAppComponent){const t=n.typescript?"ts":"js",o=(0,c.getTemplatePath)(`/app/Component.${t}`);u.copyTpl(o,(0,i.join)(e,`webapp/Component.${t}`),d["sap.app"])}return u};const o=n(64812),a=n(90718),i=n(16928),r=n(85263),s=n(20787),l=n(99644),c=n(27099),p=n(96929);t.MIN_VERSION="1.94.0"},78549:function(e,t,n){var o,a=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,a)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||(o=function(e){return o=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},o(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n=o(e),r=0;r<n.length;r++)"default"!==n[r]&&a(t,e,n[r]);return i(t,e),t}),s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.generateBuildingBlock=async function generateBuildingBlock(e,t,n){const{viewOrFragmentPath:o,aggregationPath:a,buildingBlockData:i,allowAutoAddDependencyLib:r=!0}=t;n||(n=(0,c.create)((0,l.create)()));if(await(0,P.validateBasePath)(e,n,[]),!n.exists((0,u.join)(e,o)))throw new Error(`Invalid view path ${o}.`);const s=getUI5XmlDocument(e,o,n),{content:p}=await(0,O.getManifest)(e,n),g=function getTemplateDocument(e,t,n,o){const a=getTemplateContent(e,t,o,n),errorHandler=(e,t)=>{throw new Error(`Unable to parse template file with building block data. Details: [${e}] - ${t}`)};let i;try{i=new d.DOMParser({errorHandler}).parseFromString(a)}catch(e){throw new Error(`Unable to parse template file with building block data. Details: ${(0,P.getErrorMessage)(e)}`)}return i}(i,s,n,p);if(n=function updateViewFile(e,t,n,o,a,i){const r=m.useNamespaces(o.firstChild._nsMap)(n,o);if(!(r&&Array.isArray(r)&&r.length>0))throw new Error(`Aggregation control not found ${n}.`);{const n=r[0],s=o.importNode(a.documentElement,!0);n.appendChild(s);const l=(new d.XMLSerializer).serializeToString(o);i.write((0,u.join)(e,t),(0,f.default)(l))}return i}(e,o,a,s,g,n),r&&p&&!(0,P.validateDependenciesLibs)(p,["sap.fe.macros"])){const t=await(0,O.getManifestPath)(e,n),o=await getManifestContent(n),a=n.read(t),i=(0,C.detectTabSpacing)(a);(0,C.extendJSON)(n,{filepath:t,content:o,tabInfo:i})}return n},t.getManifestContent=getManifestContent,t.getSerializedFileContent=async function getSerializedFileContent(e,t,n){const o={},{buildingBlockData:a,viewOrFragmentPath:i,allowAutoAddDependencyLib:r=!0}=t;if(!a?.buildingBlockType)return{};n||(n=(0,c.create)((0,l.create)()));const s=i?getUI5XmlDocument(e,i,n):void 0,{content:p,path:g}=await(0,O.getManifest)(e,n,!1),d=getTemplateContent(a,s,p,n,!0),m=function getFilePathProps(e,t){if(t)return{fileName:(0,u.parse)(t).base,relativePath:t,fullPath:(0,u.join)(e,t)};return{}}(e,i);if(o.viewOrFragmentPath={content:d,language:y.CodeSnippetLanguage.XML,filePathProps:m},r){const t=await getManifestContent(n);o.manifest={content:t,language:y.CodeSnippetLanguage.JSON,filePathProps:{fileName:(0,u.parse)(g).base,relativePath:(0,u.relative)(e,g),fullPath:g}}}return o};const l=n(64812),c=n(90718),p=n(29473),u=n(16928),g=n(51708),d=n(69972),m=r(n(99861)),f=s(n(355)),P=n(31376),h=n(27099),y=n(6641),b=n(85263),v=n(20787),C=n(51048),O=n(96929),T="REPLACE_WITH_BUILDING_BLOCK_ID",B="REPLACE_WITH_ENTITY",w="REPLACE_WITH_A_QUALIFIER";function getUI5XmlDocument(e,t,n){let o;try{o=n.read((0,u.join)(e,t))}catch(e){throw new Error(`Unable to read xml view file. Details: ${(0,P.getErrorMessage)(e)}`)}const errorHandler=(e,t)=>{throw new Error(`Unable to parse xml view file. Details: [${e}] - ${t}`)};let a;try{a=new d.DOMParser({errorHandler}).parseFromString(o)}catch(e){throw new Error(`Unable to parse xml view file. Details: ${(0,P.getErrorMessage)(e)}`)}return a}function getOrAddMacrosNamespace(e){const t=e.firstChild._nsMap,n=Object.entries(t).find((([e,t])=>"sap.fe.macros"===t));return n||(e.firstChild._nsMap.macros="sap.fe.macros",e.documentElement.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:macros","sap.fe.macros")),n?n[0]:"macros"}function getMetaPath(e,t,n){if(!t)return function getDefaultMetaPath(e,t){return e?{metaPath:t?`/${w}`:"",contextPath:t?B:""}:{metaPath:t?`/${B}/${w}`:""}}(e,n);const{bindingContextType:o="absolute",alwaysAbsolutePath:a=!0}=t;let{entitySet:i,qualifier:r}=t;i=i||(n?B:"");const s=r||(n?w:"");if(e){const e=s.split("/");return r=e.pop(),{metaPath:r,contextPath:e.length?`/${i}/${e.join("/")}`:`/${i}`}}return{metaPath:"absolute"===o||a?`/${i}/${s}`:s}}function getTemplateContent(e,t,n,o,a){const i=e.buildingBlockType,r=(0,h.getTemplatePath)(`/building-block/${i}/View.xml`);if("object"==typeof e.metaPath||void 0===e.metaPath){const t=n?(0,b.coerce)((0,v.getMinimumUI5Version)(n)):void 0,o=getMetaPath(e.buildingBlockType===g.BuildingBlockType.Chart||!(!t||!(0,b.lt)(t,"1.97.0")),e.metaPath,a);!(e={...e,metaPath:o.metaPath}).contextPath&&o.contextPath&&(e.contextPath=o.contextPath)}return e.id||(e.id=T),(0,p.render)(o.read(r),{macrosNamespace:t?getOrAddMacrosNamespace(t):"macros",data:e},{})}async function getManifestContent(e){const t=(0,h.getTemplatePath)("/building-block/common/manifest.json");return(0,p.render)(e.read(t),{libraries:{"sap.fe.macros":{}}})}},78082:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getManifestPromptsGroup=void 0,t.getBuildingBlockTypePrompts=async function getBuildingBlockTypePrompts(){const e=(0,o.translate)(o.i18nNamespaces.buildingBlock,"prompts.super.");return{questions:[{type:"list",name:"buildingBlockType",message:e("buildingBlockType.message"),choices:[{name:e("buildingBlockType.choices.chart"),value:a.BuildingBlockType.Chart},{name:e("buildingBlockType.choices.filterBar"),value:a.BuildingBlockType.FilterBar},{name:e("buildingBlockType.choices.table"),value:a.BuildingBlockType.Table}]}]}};const o=n(28702),a=n(51708);t.getManifestPromptsGroup=()=>{const e=(0,o.translate)(o.i18nNamespaces.buildingBlock,"prompts.super.manifestGroup.");return{id:"manifestLibraries",title:e("manifestLibrariesTitle"),description:e("manifestLibrariesDescription",{returnObjects:!0})}}},49439:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getChartBuildingBlockPrompts=async function getChartBuildingBlockPrompts(e){const{project:t}=e,n=(0,o.translate)(o.i18nNamespaces.buildingBlock,"prompts.chart.");return{groups:[{id:c,title:n("chartBuildingBlockPropertiesTitle"),description:n("chartBuildingBlockPropertiesDescription",{returnObjects:!0})},{id:p,title:n("chartVisualizationPropertiesTitle"),description:n("chartVisualizationPropertiesDescription",{returnObjects:!0})},{id:u,title:n("chartConfigureEventsTitle"),description:n("chartConfigureEventsDescription",{returnObjects:!0})},r],questions:[(0,a.getViewOrFragmentPathPrompt)(e,n("viewOrFragmentPath.validate"),{message:n("viewOrFragmentPath.message"),guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:["aggregationPath","buildingBlockData.filterBar"]}}),(0,a.getBuildingBlockIdPrompt)(e,n("id.validation"),{message:n("id.message"),default:s,guiOptions:{groupId:c,mandatory:!0}}),(0,a.getBindingContextTypePrompt)({message:n("bindingContextType"),default:l,guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:["buildingBlockData.metaPath.qualifier"]}}),...t&&(0,a.isCapProject)(t)?[await(0,a.getCAPServicePrompt)(e,{message:n("service"),guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:[]}})]:[],(0,a.getEntityPrompt)(e,{message:n("entity"),guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:["buildingBlockData.metaPath.qualifier"]}}),(0,a.getAnnotationPathQualifierPrompt)(e,{message:n("qualifier"),guiOptions:{groupId:c,mandatory:!0,placeholder:n("qualifierPlaceholder"),hint:n("valuesDependentOnEntityTypeInfo")}},["com.sap.vocabularies.UI.v1.Chart"]),(0,a.getAggregationPathPrompt)(e,{message:n("aggregation"),guiOptions:{groupId:c,mandatory:!0}}),(0,a.getFilterBarIdPrompt)(e,{message:n("filterBar.message"),type:"list",guiOptions:{groupId:c,placeholder:n("filterBar.placeholder"),creation:{placeholder:n("filterBar.inputPlaceholder")}}}),{type:"checkbox",name:"buildingBlockData.personalization",message:n("personalization.message"),choices:[{name:n("personalization.choices.type"),value:"Type"},{name:n("personalization.choices.item"),value:"Item"},{name:n("personalization.choices.sort"),value:"Sort"}],guiOptions:{groupId:p,placeholder:n("personalization.placeholder"),selectType:"static"}},{type:"list",name:"buildingBlockData.selectionMode",message:n("selectionMode.message"),choices:[{name:n("selectionMode.choices.single"),value:"Single"},{name:n("selectionMode.choices.multiple"),value:"Multiple"}],guiOptions:{groupId:u,selectType:"static"}},{type:"input",name:"buildingBlockData.selectionChange",message:n("selectionChange"),guiOptions:{groupId:u,placeholder:n("selectionChangePlaceholder")}}],initialAnswers:{buildingBlockData:{buildingBlockType:i.BuildingBlockType.Chart}}}};const o=n(28702),a=n(26455),i=n(51708),r=(0,n(78082).getManifestPromptsGroup)(),s="Chart",l="absolute",c="chartBuildingBlockProperties",p="chartVisualizationProperties",u="chartConfigureEvents"},22805:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getFilterBarBuildingBlockPrompts=async function getFilterBarBuildingBlockPrompts(e){const{project:t}=e,n=(0,o.translate)(o.i18nNamespaces.buildingBlock,"prompts.filterBar.");return{groups:[{id:c,title:n("filterBarBuildingBlockPropertiesTitle"),description:n("filterBarBuildingBlockPropertiesDescription",{returnObjects:!0})},{id:p,title:n("filterBarConfigureEventsTitle"),description:n("filterBarConfigureEventsDescription",{returnObjects:!0})},r],questions:[(0,a.getViewOrFragmentPathPrompt)(e,n("viewOrFragmentPath.validate"),{message:n("viewOrFragmentPath.message"),guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:["aggregationPath"]}}),(0,a.getBuildingBlockIdPrompt)(e,n("id.validation"),{message:n("id.message"),default:s,guiOptions:{groupId:c,mandatory:!0}}),(0,a.getBindingContextTypePrompt)({message:n("bindingContextType"),default:l,guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:["buildingBlockData.metaPath.qualifier"]}}),...t&&(0,a.isCapProject)(t)?[await(0,a.getCAPServicePrompt)(e,{message:n("service"),guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:[]}})]:[],(0,a.getAggregationPathPrompt)(e,{message:n("aggregation"),guiOptions:{groupId:c,mandatory:!0}}),(0,a.getEntityPrompt)(e,{message:n("entity"),guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:["buildingBlockData.metaPath.qualifier"]}}),(0,a.getAnnotationPathQualifierPrompt)(e,{message:n("qualifier"),guiOptions:{groupId:c,mandatory:!0,placeholder:n("qualifierPlaceholder"),hint:n("valuesDependentOnEntityTypeInfo")}},["com.sap.vocabularies.UI.v1.SelectionFields"]),{type:"input",name:"buildingBlockData.filterChanged",message:n("filterChanged"),guiOptions:{groupId:p,placeholder:n("filterChangedPlaceholder")}},{type:"input",name:"buildingBlockData.search",message:n("search"),guiOptions:{groupId:p,placeholder:n("searchPlaceholder")}}],initialAnswers:{buildingBlockData:{buildingBlockType:i.BuildingBlockType.FilterBar}}}};const o=n(28702),a=n(26455),i=n(51708),r=(0,n(78082).getManifestPromptsGroup)(),s="FilterBar",l="absolute",c="filterBarBuildingBlockProperties",p="filterConfigureEvents"},70523:function(e,t,n){var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,a)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(78082),t),a(n(49439),t),a(n(22805),t),a(n(28595),t)},28595:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getTableBuildingBlockPrompts=async function getTableBuildingBlockPrompts(e){const{project:t}=e,n=(0,o.translate)(o.i18nNamespaces.buildingBlock,"prompts.table.");return{groups:[{id:c,title:n("tableBuildingBlockPropertiesTitle"),description:n("tableBuildingBlockPropertiesDescription",{returnObjects:!0})},{id:p,title:n("tableVisualizationPropertiesTitle"),description:n("tableVisualizationPropertiesDescription",{returnObjects:!0})},l],questions:[(0,a.getViewOrFragmentPathPrompt)(e,n("viewOrFragmentPath.validate"),{message:n("viewOrFragmentPath.message"),guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:["aggregationPath","buildingBlockData.filterBar"]}}),(0,a.getBuildingBlockIdPrompt)(e,n("id.validation"),{message:n("id.message"),default:u,guiOptions:{groupId:c,mandatory:!0}}),(0,a.getBindingContextTypePrompt)({message:n("bindingContextType"),default:O,guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:["buildingBlockData.metaPath.qualifier"]}}),...t&&(0,a.isCapProject)(t)?[await(0,a.getCAPServicePrompt)(e,{message:n("service"),guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:[]}})]:[],(0,a.getEntityPrompt)(e,{message:n("entity"),guiOptions:{groupId:c,mandatory:!0,dependantPromptNames:["buildingBlockData.metaPath.qualifier"]}}),(0,a.getAnnotationPathQualifierPrompt)(e,{message:n("qualifier"),guiOptions:{hint:n("valuesDependentOnEntityTypeInfo"),groupId:c,mandatory:!0,placeholder:n("qualifierPlaceholder")}},["com.sap.vocabularies.UI.v1.LineItem"]),(0,a.getAggregationPathPrompt)(e,{message:n("aggregation"),guiOptions:{groupId:c,mandatory:!0}}),(0,a.getFilterBarIdPrompt)(e,{message:n("filterBar.message"),type:"list",guiOptions:{groupId:c,placeholder:n("filterBar.placeholder"),creation:{placeholder:n("filterBar.inputPlaceholder")}}}),{type:"list",name:"buildingBlockData.type",message:n("tableType.message"),choices:[{name:"Responsive Table",value:"ResponsiveTable"},{name:"Grid Table",value:"GridTable"}],default:g,guiOptions:{groupId:p}},{type:"list",name:"buildingBlockData.selectionMode",message:n("selectionMode.message"),choices:[{name:n("selectionMode.choices.single"),value:"Single"},{name:n("selectionMode.choices.multiple"),value:"Multi"},{name:n("selectionMode.choices.auto"),value:"Auto"},{name:n("selectionMode.choices.none"),value:"None"}],default:d,guiOptions:{groupId:p}},(0,a.getBooleanPrompt)({name:"buildingBlockData.headerVisible",message:n("headerVisible"),default:m,guiOptions:{groupId:p}}),{type:"input",name:"buildingBlockData.header",message:n("header.message"),guiOptions:{groupId:p,translationProperties:{type:s.SapShortTextType.TableTitle,annotation:n("header.translationAnnotation")}}},{type:"checkbox",name:"buildingBlockData.personalization",message:n("personalization.message"),choices:[{name:n("personalization.choices.Sort"),value:"Sort"},{name:n("personalization.choices.Column"),value:"Column"},{name:n("personalization.choices.Filter"),value:"Filter"}],guiOptions:{groupId:p}},{type:"list",name:"buildingBlockData.variantManagement",message:n("tableVariantManagement"),choices:[{name:"Page",value:"Page"},{name:"Control",value:"Control"},{name:"None",value:"None"}],default:f,guiOptions:{groupId:p}},(0,a.getBooleanPrompt)({name:"buildingBlockData.readOnly",message:n("readOnlyMode"),default:P,guiOptions:{groupId:p}}),(0,a.getBooleanPrompt)({name:"buildingBlockData.enableAutoColumnWidth",message:n("autoColumnWidth"),default:h,guiOptions:{groupId:p}}),(0,a.getBooleanPrompt)({name:"buildingBlockData.enableExport",message:n("dataExport"),default:y,guiOptions:{groupId:p}}),(0,a.getBooleanPrompt)({name:"buildingBlockData.enableFullScreen",message:n("fullScreenMode"),default:b,guiOptions:{groupId:p}}),(0,a.getBooleanPrompt)({name:"buildingBlockData.enablePaste",message:n("pasteFromClipboard"),default:v,guiOptions:{groupId:p}}),(0,a.getBooleanPrompt)({name:"buildingBlockData.isSearchable",message:n("tableSearchableToggle"),default:C,guiOptions:{groupId:p}})],initialAnswers:{buildingBlockData:{buildingBlockType:i.BuildingBlockType.Table}}}};const o=n(28702),a=n(26455),i=n(51708),r=n(78082),s=n(20197),l=(0,r.getManifestPromptsGroup)(),c="tableBuildingBlockProperties",p="tableVisualizationProperties",u="Table",g="ResponsiveTable",d="Single",m=!0,f="None",P=!1,h=!1,y=!1,b=!1,v=!1,C=!0,O="absolute"},26455:function(e,t,n){var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,a)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(94090),t),a(n(45522),t),a(n(34204),t),a(n(52310),t)},94090:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isCapProject=function isCapProject(e){return["CAPJava","CAPNodejs"].includes(e.projectType)}},45522:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getBooleanPrompt=function getBooleanPrompt(e){const{guiOptions:t}=e;return{...e,type:"list",choices:[{name:"False",value:!1},{name:"True",value:!0}],guiOptions:{...t,selectType:"static"}}},t.getAnnotationPathQualifierPrompt=function getAnnotationPathQualifierPrompt(e,t={},n=[]){const{project:o,appId:i}=e,{guiOptions:r}=t;return{...t,type:"list",name:"buildingBlockData.metaPath.qualifier",choices:o?async e=>{const{entitySet:t,bindingContextType:r}=e.buildingBlockData?.metaPath??{};if(!t)return[];const l=r?{type:r,isCollection:e.buildingBlockData.buildingBlockType===s.BuildingBlockType.Table}:{type:"absolute"},c=transformChoices(await(0,a.getAnnotationPathQualifiers)(o,i,t,n,l,!0));if(t&&!c.length)throw new Error(`Couldn't find any existing annotations for term ${n.join(",")}. Please add ${n.join(",")} annotation/s`);return c}:[],guiOptions:{...r,selectType:"dynamic"}}},t.getViewOrFragmentPathPrompt=function getViewOrFragmentPathPrompt(e,t,n={}){const{fs:a,project:i,appPath:s}=e,{guiOptions:l}=n;return{...n,type:"list",name:"viewOrFragmentPath",choices:i?async()=>{const e=await(0,r.findFilesByExtension)(".xml",s,[".git","node_modules","dist","annotations","localService"],a),t=[".fragment.xml",".view.xml"];return transformChoices(e.filter((e=>t.some((t=>e.endsWith(t))))).map((e=>(0,o.relative)(s,e))))}:[],validate:e=>!(i&&!e)||t,guiOptions:{...l,selectType:"dynamic",placeholder:l?.placeholder??p("viewOrFragmentPath.defaultPlaceholder")}}},t.getCAPServicePrompt=async function getCAPServicePrompt(e,t={}){const{project:n,appId:o}=e,{guiOptions:a}=t,i=n?await getCAPServiceChoices(n,o):[],r=1===i.length?i[0].value:void 0;return{...t,type:"list",name:"service",choices:n?getCAPServiceChoices.bind(null,n,o):[],default:r,guiOptions:{...a,selectType:"dynamic",placeholder:a?.placeholder??p("service.defaultPlaceholder")}}},t.getEntityPrompt=function getEntityPrompt(e,t={}){const{project:n,appId:o}=e,{guiOptions:i}=t;return{...t,type:"list",name:"buildingBlockData.metaPath.entitySet",choices:n?async()=>transformChoices((await(0,a.getEntitySets)(n,o)).map((e=>e.name))):[],guiOptions:{...i,selectType:"dynamic",placeholder:i?.placeholder??p("entity.defaultPlaceholder")}}},t.getCAPServiceChoices=getCAPServiceChoices,t.getAggregationPathPrompt=function getAggregationPathPrompt(e,t={}){const{fs:n,project:a,appPath:i}=e,{guiOptions:r}=t;return{...t,type:"list",name:"aggregationPath",choices:a?e=>{const{viewOrFragmentPath:t}=e;if(t){const e=transformChoices((0,l.getXPathStringsForXmlFile)((0,o.join)(i,t),n),!1);if(!e.length)throw new Error("Failed while fetching the aggregation path.");return e}return[]}:[],guiOptions:{...r,selectType:"dynamic",placeholder:r?.placeholder??p("aggregationPath.defaultPlaceholder")}}},t.transformChoices=transformChoices,t.getFilterBarIdPrompt=function getFilterBarIdPrompt(e,t){const{fs:n,project:a,appPath:i}=e,{guiOptions:r}=t,s={...t,type:"input",name:"buildingBlockData.filterBar",guiOptions:{...r,placeholder:r?.placeholder??p("filterBar.defaultPlaceholder")}};if("input"===t.type)return s;return{...s,type:"list",choices:a?async e=>e.viewOrFragmentPath?transformChoices(await(0,l.getFilterBarIdsInFile)((0,o.join)(i,e.viewOrFragmentPath),n)):[]:[],guiOptions:{...s.guiOptions,selectType:"dynamic"}}},t.getBindingContextTypePrompt=function getBindingContextTypePrompt(e={}){const{guiOptions:t}=e;return{...e,type:"list",name:"buildingBlockData.metaPath.bindingContextType",choices:[{name:p("bindingContextType.option.relative"),value:"relative"},{name:p("bindingContextType.option.absolute"),value:"absolute"}],guiOptions:{...t,selectType:"static"}}},t.getBuildingBlockIdPrompt=function getBuildingBlockIdPrompt(e,t,n={}){const{fs:a,project:i,appPath:r}=e,{guiOptions:s}=n;return{...n,type:"input",name:"buildingBlockData.id",validate:(e,n)=>!i||(e?!(n?.viewOrFragmentPath&&!(0,l.isElementIdAvailable)(a,(0,o.join)(r,n.viewOrFragmentPath),e))||p("id.existingIdValidation"):t),guiOptions:{...s,placeholder:s?.placeholder??p("id.defaultPlaceholder")}}};const o=n(16928),a=n(34204),i=n(20787),r=n(70546),s=n(51708),l=n(52310),c=n(28702);(0,c.initI18n)();const p=(0,c.translate)(c.i18nNamespaces.buildingBlock,"prompts.common.");async function getCAPServiceChoices(e,t){const n=e.apps[t]?.services,o={};for(const a of Object.keys(n)){o[await(0,i.getCapServiceName)(e.root,e.apps[t].services[a]?.uri??"")]=a}return transformChoices(o)}function transformChoices(e,t=!0){let n=[];return Array.isArray(e)?(e=[...new Set(e)],t?[...e].sort(((e,t)=>e.localeCompare(t))):e):(n=Object.entries(e).map((([e,t])=>({name:e,value:t}))),t&&(n=n.sort(((e,t)=>e.name.localeCompare(t.name)))),n)}},34204:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getMappedServiceName=getMappedServiceName,t.getAnnotationService=getAnnotationService,t.getMergedMetadata=getMergedMetadata,t.getEntitySets=async function getEntitySets(e,t){const n=await(async(e,t,n)=>getMergedMetadata(await getAnnotationService(e,t,n)))(e,getMainService(e,t),t);return Array.from(n.entitySets)},t.getAnnotationTermAlias=getAnnotationTermAlias,t.getAnnotationPathQualifiers=async function getAnnotationPathQualifiers(e,t,n,o,a,i=!1){const r={};try{const s=getMergedMetadata(await getAnnotationService(e,getMainService(e,t),t)),l=s.entitySets.by_name(n)?.entityType;l&&function getAnnotationPathQualifiersForEntityType(e,t,n,o,a){"absolute"===a.type?addAnnotationPathQualifierToResult(e,"",t,n,o):"relative"===a.type&&e.navigationProperties.forEach((e=>{e.targetType&&"EntityType"===e.targetType._type&&"SiblingEntity"!==e.name&&(!a.isCollection||a.isCollection&&e.isCollection)&&addAnnotationPathQualifierToResult(e.targetType,e.name,t,n,o)}))}(l,o,r,i,a)}catch(e){throw new Error(`An error occurred while reading the annotation path qualifiers. Details: ${e}`)}return r};const o=n(37253),a=n(97183),i=n(20787);async function getMappedServiceName(e,t,n){let o=t;if(["CAPJava","CAPNodejs"].includes(e.projectType)){const t=getMainService(e,n);t&&(o=await(0,i.getCapServiceName)(e.root,e.apps[n]?.services?.[t].uri??""))}return o}async function getAnnotationService(e,t,n,o=!0){const i=await getMappedServiceName(e,t,n),r=await a.FioriAnnotationService.createService(e,i,n);return o&&await r.sync(),r}function getMergedMetadata(e){const t=e.getSchema();return(0,o.convert)(t)}function getMainService(e,t){let n;if(void 0===t){const t=Object.keys(e.apps);n=e.apps[t[0]].mainService}else{const o=e.apps[t];if(!o)throw new Error("ERROR_INVALID_APP_ID");n=o.mainService}return n??"mainService"}function getAnnotationTermAlias(e){const[,,,t,,n]=e.split(".");return[t,n]}function addAnnotationPathQualifierToResult(e,t,n,o,a=!1){n.forEach((n=>{const[i,r]=getAnnotationTermAlias(n),s=n.substring(0,n.lastIndexOf(".")),l=e.annotations[i];l&&Object.entries(l).forEach((([e,n])=>{if(e.startsWith(r)){const e=n.qualifier?"#"+n.qualifier:"",l=""+(t?t+"/":"");o[`${l}@${i}.${r}`+e]=`${l}@${a?s:i}.${r}`+e}}))}))}},52310:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.isElementIdAvailable=function isElementIdAvailable(e,t,n){const a=e.read(t).toString(),i=new o.DOMParser({errorHandler:()=>{}}).parseFromString(a);return!i.documentElement||!i.getElementById(n)},t.getXPathStringsForXmlFile=function getXPathStringsForXmlFile(e,t){const n={};try{const a=t.read(e),errorHandler=(e,t)=>{throw new Error(`Unable to parse the xml view file. Details: [${e}] - ${t}`)},i=[{parentNode:"",node:new o.DOMParser({errorHandler}).parseFromString(a).firstChild}];for(;i&&i.length>0;){const{parentNode:e,node:t}=i.shift();if(!t)continue;n[`${e}/${t.nodeName}`]=augmentXpathWithLocalNames(`${e}/${t.nodeName}`);const o=Array.from(t.childNodes);for(const n of o)n.nodeType===n.ELEMENT_NODE&&i.push({parentNode:`${e}/${t.nodeName}`,node:n})}}catch(e){throw new Error(`An error occurred while parsing the view or fragment xml. Details: ${function getErrorMessage(e){return e instanceof Error?e.message:String(e)}(e)}`)}return n},t.getFilterBarIdsInFile=async function getFilterBarIdsInFile(e,t){const n=[],a=t.read(e),i=new o.DOMParser({errorHandler:(e,t)=>{throw new Error(`Unable to parse the xml view file. Details: [${e}] - ${t}`)}}).parseFromString(a),r=Array.from(i.getElementsByTagName("macros:FilterBar"));for(const e of r){const t=e.getAttributeNode("id")?.value;t&&n.push(t)}return n};const o=n(69972);const augmentXpathWithLocalNames=e=>{const t=[];for(const n of e.split("/"))t.push(""===n||n.includes(":")?n:`*[local-name()='${n}']`);return t.join("/")}},51708:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.BuildingBlockType=void 0,function(e){e.FilterBar="filter-bar",e.Chart="chart",e.Field="field",e.Table="table"}(n||(t.BuildingBlockType=n={}))},64239:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getManifestRoot=getManifestRoot,t.generateCustomColumn=async function generateCustomColumn(e,t,n){(0,l.validateVersion)(t.minUI5Version),n||(n=(0,i.create)((0,a.create)()));await(0,l.validateBasePath)(e,n);const{path:g,content:m}=await(0,d.getManifest)(e,n),f=function enhanceConfig(e,t,n,o){const a={...t};(0,s.setCommonDefaults)(a,n,o),a.eventHandler&&(a.eventHandler=(0,c.applyEventHandlerConfiguration)(e,a,a.eventHandler,{controllerSuffix:!1,typescript:a.typescript}));const i=a.properties&&a.properties.length>0?`{=%{${a.properties.join("} + ' ' + %{")}}}`:"Sample Text";return a.content=a.control||(0,s.getDefaultFragmentContent)(i,a.eventHandler),a}(n,t,g,m),P=getManifestRoot(t.minUI5Version),h=(0,o.render)(n.read((0,r.join)(P,"manifest.json")),f,{});(0,p.extendJSON)(n,{filepath:g,content:h,tabInfo:t.tabInfo});const y=(0,r.join)(f.path,`${f.fragmentFile??f.name}.fragment.xml`);!f.control&&n.exists(y)||n.copyTpl((0,u.getTemplatePath)("common/Fragment.xml"),y,f);return n};const o=n(29473),a=n(64812),i=n(90718),r=n(16928),s=n(99644),l=n(31376),c=n(78193),p=n(51048),u=n(27099),g=n(85263),d=n(96929);function getManifestRoot(e){const t=(0,g.coerce)(e);return!t||(0,g.gte)(t,"1.86.0")?(0,u.getTemplatePath)("/column/1.86"):(0,g.gte)(t,"1.85.0")?(0,u.getTemplatePath)("/column/1.85"):(0,u.getTemplatePath)("column/1.84")}},99644:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.FCL_ROUTER=void 0,t.setCommonDefaults=function setCommonDefaults(e,t,n){return e.folder=e.folder||`ext/${e.name[0].toLocaleLowerCase()+e.name.substring(1)}`,e.ns=`${n["sap.app"].id}.${e.folder.replace(/[\/\\]/g,".")}`,e.path=(0,o.join)((0,o.dirname)(t),e.folder),e},t.getDefaultFragmentContentData=getDefaultFragmentContentData,t.getDefaultFragmentContent=function getDefaultFragmentContent(e,t,n=!1,o=!1){return getDefaultFragmentContentData(e,t,n,o).content};const o=n(16928);function getDefaultFragmentContentData(e,t,n=!1,o=!1,a=!0){let i,r;if(t){const s=t.split("."),l=s.pop();r=`core:require="{ handler: '${`${s.join("/")}${n?".controller":""}`}'}"`;const c=[];a&&c.push(r),o?(c.push(`value="${e}"`),c.push(`change="handler.${l}"`),i=`<Input ${c.join(" ")} />`):(c.push(`text="${e}"`),c.push(`press="handler.${l}"`),i=`<Button ${c.join(" ")} />`)}else i=o?`<Input value="${e}" />`:`<Text text="${e}" />`;return{content:i,requireAttribute:r}}t.FCL_ROUTER="sap.f.routing.Router"},78193:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contextParameter=t.defaultParameter=void 0,t.applyEventHandlerConfiguration=function applyEventHandlerConfiguration(e,n,r,s,l=t.defaultParameter){const{controllerSuffix:c,typescript:p,templatePath:u="common/EventHandler"}=s;let g,{eventHandlerFnName:d="onPress"}=s;if("string"==typeof r)return r;let m="",f=n.name,P=f;"object"==typeof r&&(m=r.controllerPrefix,r.fnName&&(d=r.fnName),g=r.insertScript,r.fileName&&(f=r.fileName,P=function getFileName(e,t){let n;n=t&&e.endsWith(".controller")?e.replace(".controller",""):e;return n}(f,m)));const h=p?"ts":"js",y=(0,o.join)(n.path||"",`${f}${c?".controller":""}.${h}`);if(e.exists(y)){if(g){let t=e.read(y);t="object"==typeof g.position?(0,i.insertTextAtPosition)(g.fragment,t,g.position):(0,i.insertTextAtAbsolutePosition)(g.fragment,t,g.position),e.write(y,t)}}else e.copyTpl((0,a.getTemplatePath)(`${u}.${h}`),y,{eventHandlerFnName:d,parameters:l,...n});const b=`${n.ns}.${P}.${d}`;return m?`${m}.${b}`:`${b}`};const o=n(16928),a=n(27099),i=n(96929);t.defaultParameter={name:"event",description:"the event object provided by the event provider",importType:"UI5Event",importSource:"sap/ui/base/Event"},t.contextParameter={name:"pageContext",description:"the context of the page on which the event was fired",importType:"Context",importSource:"sap/ui/model/odata/v4/Context"}},51048:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.detectTabSpacing=detectTabSpacing,t.getJsonSpace=getJsonSpace,t.extendJSON=function extendJSON(e,t){const{filepath:n,content:o,replacer:a}=t,i=getJsonSpace(e,n,t.tabInfo);e.extendJSON(n,JSON.parse(o),a,i)};const n="\t";function detectTabSpacing(e){let t;const o=[" ",n],a=e.split(/\r\n|\n/).find((e=>o.includes(e[0])));return a&&(t=function getLineTabInfo(e){let t;const o=e[0]===n?n:" ";for(let a=0;a<e.length;a++)if(e[a]!==o){t={size:a,useTabSymbol:o===n};break}return t}(a)),t}function getJsonSpace(e,t,o){if(!o){o=detectTabSpacing(e.read(t))}let a;return o&&(a=o.useTabSymbol?n.repeat(o.size||1):o.size),a}},96929:function(e,t,n){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.insertTextAtAbsolutePosition=insertTextAtAbsolutePosition,t.insertTextAtPosition=function insertTextAtPosition(e,t,n){if(n.line<0||n.character<0)return t;const o=t.split(/\r\n|\n/);let i=o[n.line];for(;void 0===i;)o.push(""),i=o[n.line];return o[n.line]=insertTextAtAbsolutePosition(e,o[n.line],n.character),o.join(a.default.EOL)},t.addExtensionTypes=function addExtensionTypes(e,t,n){const o=(0,r.minor)((0,r.coerce)(t)??"1.108.0"),a=(0,i.join)(e,"/webapp/ext/sap.fe.d.ts");o<108&&102!==o&&!n.exists(a)&&n.copyTpl((0,l.getTemplatePath)("common/sap.fe.d.ts"),a,{version:o})},t.getManifestPath=getManifestPath,t.getManifest=async function getManifest(e,t,n=!0){const o=await getManifestPath(e,t);if(n&&!t.exists(o))throw new Error(`Invalid project folder. Cannot find required file ${o}`);return{path:o,content:t.readJSON(o)}};const a=o(n(70857)),i=n(16928),r=n(85263),s=n(20787),l=n(27099);function insertTextAtAbsolutePosition(e,t,n){if(n<0)return t;const o=Math.max(n-1,0);for(;o>0&&void 0===t[o];)t+=" ";return`${t.slice(0,n)}${e}${t.slice(n)}`}async function getManifestPath(e,t){return(0,i.join)(await(0,s.getWebappPath)(e,t),"manifest.json")}},31376:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.validateVersion=function validateVersion(e){const t=(0,i.coerce)(e);if(t&&(0,i.lt)(t,"1.84.0"))throw new Error("SAP Fiori elements for OData v4 is only supported starting with SAPUI5 1.84.");return!0},t.validateDependenciesLibs=validateDependenciesLibs,t.validateBasePath=async function validateBasePath(e,t,n=["sap.fe.templates"]){t||(t=(0,a.create)((0,o.create)()));const i=await(0,r.getManifestPath)(e,t);if(!t.exists(i))throw new Error(`Invalid project folder. Cannot find required file ${i}`);if(!validateDependenciesLibs(t.readJSON(i),n))throw 1===n.length?new Error(`Dependency ${n[0]} is missing in the manifest.json. Fiori elements FPM requires the SAP FE libraries.`):new Error(`All of the dependencies ${n.join(", ")} are missing in the manifest.json. Fiori elements FPM requires the SAP FE libraries.`);return!0},t.getErrorMessage=function getErrorMessage(e){return e instanceof Error?e.message:String(e)};const o=n(64812),a=n(90718),i=n(85263),r=n(96929);function validateDependenciesLibs(e,t){const n=e["sap.ui5"]?.dependencies?.libs;return!t.length||t.some((e=>void 0!==n?.[e]))}},84565:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UI5_CONTROLLER_EXTENSION_OBJECT_PAGE=t.UI5_CONTROLLER_EXTENSION_LIST_REPORT=void 0,t.generateControllerExtension=async function generateControllerExtension(e,n,m){m||(m=(0,a.create)((0,o.create)()));await(0,l.validateBasePath)(e,m);const{path:f,content:P}=await(0,u.getManifest)(e,m),h=function enhanceConfig(e,n,o){const a={...e};let i;if((0,c.setCommonDefaults)(a,n,o),a.controllerName=`${a.ns}.${a.name}`,"object"==typeof a.extension){a.extension.pageType=a.extension.pageType||s.ControllerExtensionPageType.ListReport;const{pageType:e,pageId:n}=a.extension;i=d.get(e)||t.UI5_CONTROLLER_EXTENSION_LIST_REPORT,n&&(i=`${i}#${o["sap.app"].id}::${n}`)}else i=a.extension,a.extension=function resolvePageDataFromExtension(e){for(const[t,n]of d)if(e.startsWith(n))return{pageType:t};return}(a.extension)||a.extension;a.extensionId=i;const r=getExistingControllerExtension(o,i);r&&function handleExistingManifestExtension(e,t,n){if(t.overwrite)return void(e.controllerNames&&(t.deleteProperty="controllerNames"));e.controllerName&&e.controllerName!==t.controllerName?(t.controllerNames=e.controllerNames?[...e.controllerNames]:[],appendUniqueEntryToArray(t.controllerNames,e.controllerName),appendUniqueEntryToArray(t.controllerNames,n),t.deleteProperty="controllerName"):e.controllerNames&&!e.controllerNames.includes(n)&&(t.controllerNames=appendUniqueEntryToArray([...e.controllerNames],n))}(r,a,a.controllerName);return a}(n,f,P),y=(0,r.render)(m.read((0,p.getTemplatePath)("controller-extension/manifest.json")),h,{});(0,g.extendJSON)(m,{filepath:f,content:y,replacer:getManifestReplacer(h),tabInfo:n.tabInfo});const b=n.typescript?"ts":"js",v=(0,i.join)(h.path,`${h.name}.controller.${b}`);m.exists(v)||m.copyTpl((0,p.getTemplatePath)(`controller-extension/Controller.${b}`),v,h);if(n.typescript){(0,u.addExtensionTypes)(e,n.minUI5Version,m);const t=(0,i.join)(e,"/webapp/ext/controller/ControllerExtension.d.ts");m.exists(t)||m.copy((0,p.getTemplatePath)("controller-extension/ControllerExtension.d.ts"),t)}return m};const o=n(64812),a=n(90718),i=n(16928),r=n(29473),s=n(51324),l=n(31376),c=n(99644),p=n(27099),u=n(96929),g=n(51048);t.UI5_CONTROLLER_EXTENSION_LIST_REPORT="sap.fe.templates.ListReport.ListReportController",t.UI5_CONTROLLER_EXTENSION_OBJECT_PAGE="sap.fe.templates.ObjectPage.ObjectPageController";const d=new Map([[s.ControllerExtensionPageType.ListReport,t.UI5_CONTROLLER_EXTENSION_LIST_REPORT],[s.ControllerExtensionPageType.ObjectPage,t.UI5_CONTROLLER_EXTENSION_OBJECT_PAGE]]);function appendUniqueEntryToArray(e,t){return e.includes(t)||e.push(t),e}function getExistingControllerExtension(e,t){const n=e["sap.ui5"]?.extends?.extensions?.["sap.ui.controllerExtensions"];if(n?.hasOwnProperty(t))return n[t]}function getManifestReplacer(e){let t=!0;const{deleteProperty:n}=e;if(n)return(o,a)=>{if(""===o&&t){t=!1;const o=getExistingControllerExtension(a,e.extensionId);o&&delete o[n]}return a}}},51324:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.ControllerExtensionPageType=void 0,function(e){e.ObjectPage="ObjectPage",e.ListReport="ListReport"}(n||(t.ControllerExtensionPageType=n={}))},62943:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.generateCustomFilter=async function generateCustomFilter(e,t,n){n||(n=(0,a.create)((0,o.create)()));await(0,s.validateBasePath)(e,n);const{path:d,content:m}=await(0,g.getManifest)(e,n),f=function enhanceConfig(e,t,n){const o=e;(0,l.setCommonDefaults)(o,t,n),o.required=o.required??!1,o.typescript=!!o.typescript,o.fragmentFile=o.fragmentFile??o.name,!0===o.eventHandler&&(o.eventHandler={});"object"!=typeof o.eventHandler||o.eventHandler.fnName||(o.eventHandler.fnName="filterItems");return o}(t,d,m);f.eventHandler&&(f.eventHandler=(0,u.applyEventHandlerConfiguration)(n,f,f.eventHandler,{controllerSuffix:!1,typescript:f.typescript,templatePath:"filter/Controller"},u.contextParameter));const P=function enhanceManifestAndGetFiltersReference(e){if(e["sap.ui5"]?.routing?.targets){const t=e["sap.ui5"].routing.targets,n=Object.values(t)[0];return n.options||={},n.options.settings||={},n.options.settings.controlConfiguration||={},n.options.settings.controlConfiguration["@com.sap.vocabularies.UI.v1.SelectionFields"]||={},n.options.settings.controlConfiguration["@com.sap.vocabularies.UI.v1.SelectionFields"].filterFields||={},n.options.settings.controlConfiguration["@com.sap.vocabularies.UI.v1.SelectionFields"].filterFields}return{}}(m);Object.assign(P,JSON.parse((0,r.render)(n.read((0,c.getTemplatePath)("filter/manifest.json")),f,{}))),n.writeJSON(d,m,void 0,(0,p.getJsonSpace)(n,d,t.tabInfo));const h=(0,i.join)(f.path,`${f.fragmentFile}.fragment.xml`);n.exists(h)||n.copyTpl((0,c.getTemplatePath)("filter/fragment.xml"),h,f);return n};const o=n(64812),a=n(90718),i=n(16928),r=n(29473),s=n(31376),l=n(99644),c=n(27099),p=n(51048),u=n(78193),g=n(96929)},28702:function(e,t,n){var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.i18nNamespaces=void 0,t.initI18n=async function initI18n(){await s.use(i.default).init({initImmediate:!1,fallbackLng:"en",interpolation:{escapeValue:!1},ns:[t.i18nNamespaces.buildingBlock],backend:{loadPath:getTranslationFilePath}})},t.translate=function translate(e,t){return(n,o)=>s.t(`${e}:${t??""}${n}`,o)||""};const a=o(n(37297)),i=o(n(52919)),r=n(16928),s=a.default.createInstance();function getTranslationFilePath(e,n){return n===t.i18nNamespaces.buildingBlock?(0,r.join)(__dirname,`./prompts/translations/i18n.${e}.json`):""}t.i18nNamespaces={buildingBlock:"fe-fpm-writer-building-block"}},96692:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initI18n=t.generateControllerExtension=t.ControllerExtensionPageType=t.PromptsAPI=t.PromptsType=t.getSerializedFileContent=t.generateBuildingBlock=t.BuildingBlockType=t.validateVersion=t.validateBasePath=t.enableFPM=t.generateCustomView=t.generateCustomFilter=t.generateCustomHeaderSection=t.generateCustomSubSection=t.generateCustomSection=t.DesignTime=t.RequestGroupId=t.generateCustomColumn=t.generateCustomAction=t.TargetControl=t.generateListReport=t.generateObjectPage=t.generateCustomPage=void 0;var o=n(32670);Object.defineProperty(t,"generateCustomPage",{enumerable:!0,get:function(){return o.generateCustomPage}}),Object.defineProperty(t,"generateObjectPage",{enumerable:!0,get:function(){return o.generateObjectPage}}),Object.defineProperty(t,"generateListReport",{enumerable:!0,get:function(){return o.generateListReport}});var a=n(14318);Object.defineProperty(t,"TargetControl",{enumerable:!0,get:function(){return a.TargetControl}});var i=n(71767);Object.defineProperty(t,"generateCustomAction",{enumerable:!0,get:function(){return i.generateCustomAction}});var r=n(64239);Object.defineProperty(t,"generateCustomColumn",{enumerable:!0,get:function(){return r.generateCustomColumn}});var s=n(24965);Object.defineProperty(t,"RequestGroupId",{enumerable:!0,get:function(){return s.RequestGroupId}}),Object.defineProperty(t,"DesignTime",{enumerable:!0,get:function(){return s.DesignTime}});var l=n(39200);Object.defineProperty(t,"generateCustomSection",{enumerable:!0,get:function(){return l.generateCustomSection}}),Object.defineProperty(t,"generateCustomSubSection",{enumerable:!0,get:function(){return l.generateCustomSubSection}}),Object.defineProperty(t,"generateCustomHeaderSection",{enumerable:!0,get:function(){return l.generateCustomHeaderSection}});var c=n(62943);Object.defineProperty(t,"generateCustomFilter",{enumerable:!0,get:function(){return c.generateCustomFilter}});var p=n(37972);Object.defineProperty(t,"generateCustomView",{enumerable:!0,get:function(){return p.generateCustomView}});var u=n(82800);Object.defineProperty(t,"enableFPM",{enumerable:!0,get:function(){return u.enableFPM}});var g=n(31376);Object.defineProperty(t,"validateBasePath",{enumerable:!0,get:function(){return g.validateBasePath}}),Object.defineProperty(t,"validateVersion",{enumerable:!0,get:function(){return g.validateVersion}});var d=n(51708);Object.defineProperty(t,"BuildingBlockType",{enumerable:!0,get:function(){return d.BuildingBlockType}});var m=n(78549);Object.defineProperty(t,"generateBuildingBlock",{enumerable:!0,get:function(){return m.generateBuildingBlock}}),Object.defineProperty(t,"getSerializedFileContent",{enumerable:!0,get:function(){return m.getSerializedFileContent}});var f=n(16884);Object.defineProperty(t,"PromptsType",{enumerable:!0,get:function(){return f.PromptsType}}),Object.defineProperty(t,"PromptsAPI",{enumerable:!0,get:function(){return f.PromptsAPI}});var P=n(51324);Object.defineProperty(t,"ControllerExtensionPageType",{enumerable:!0,get:function(){return P.ControllerExtensionPageType}});var h=n(84565);Object.defineProperty(t,"generateControllerExtension",{enumerable:!0,get:function(){return h.generateControllerExtension}});var y=n(28702);Object.defineProperty(t,"initI18n",{enumerable:!0,get:function(){return y.initI18n}})},92721:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.PATTERN_SUFFIX=void 0,t.generateRoutePattern=generateRoutePattern,t.generateRouteTarget=generateRouteTarget,t.getManifestJsonExtensionHelper=getManifestJsonExtensionHelper,t.getFclConfig=function getFclConfig(e,t){const n={};if(e["sap.ui5"]?.routing?.config?.routerClass===l.FCL_ROUTER)if(n.fcl=!0,t){const o=(e["sap.ui5"]?.routing?.routes||[]).find((e=>e.name===t?.sourcePage));n.controlAggregation=(o?.target??[]).length>1?"endColumnPages":"midColumnPages"}else n.controlAggregation="beginColumnPages";return n},t.getLibraryDependencies=function getLibraryDependencies(e){const t={};switch(e){case s.PageType.CustomPage:t["sap.fe.core"]={};break;case s.PageType.ListReport:case s.PageType.ObjectPage:t["sap.fe.templates"]={}}return t},t.initializeTargetSettings=function initializeTargetSettings(e,t){const n=t?{...t}:{};n.navigation??={};const o=(0,u.coerce)(e.minUI5Version);!o||(0,u.gte)(o,"1.94.0")?n.contextPath=e.contextPath??`/${e.entity}`:n.entitySet=e.entity;return n},t.validatePageConfig=validatePageConfig,t.extendPageJSON=async function extendPageJSON(e,t,n,r,s){s||(s=(0,a.create)((0,o.create)()));await validatePageConfig(e,t,s);const{path:l,content:u}=await(0,g.getManifest)(e,s),d=n(t,u);return(0,c.extendJSON)(s,{filepath:l,content:(0,i.render)(s.read((0,p.getTemplatePath)(r)),d,{}),replacer:getManifestJsonExtensionHelper(d),tabInfo:t.tabInfo}),s};const o=n(64812),a=n(90718),i=n(29473),r=n(31376),s=n(35251),l=n(99644),c=n(51048),p=n(27099),u=n(85263),g=n(96929);function generateRoutePattern(e,n,o){const a=[];if(o?.sourcePage&&o.navEntity){const i=e.find((e=>e.name===o.sourcePage));if(!i?.pattern)throw new Error("Navigation source invalid");{const e=i.pattern.replace(t.PATTERN_SUFFIX,"");e?(a.push(e),a.push("/"),a.push(o.navEntity)):a.push(n)}}else e.length>0&&a.push(n);return o?.navKey&&a.push(`({${o?.navEntity??n}Key})`),a.push(t.PATTERN_SUFFIX),a.join("")}function generateRouteTarget(e,t,n,o){if(o?.sourcePage){const a=e.find((e=>e.name===o.sourcePage));if(n&&a?.target?.constructor===Array&&a.target.length<3)return[...a.target,t]}return n?[t]:t}function getManifestJsonExtensionHelper(e){return(t,n)=>{switch(t){case"routing":n.routes=n.routes??[];break;case"routes":const t=n;t.push({name:e.id??`${e.entity}${e.name}`,pattern:generateRoutePattern(t,e.entity,e.navigation),target:generateRouteTarget(t,e.id??`${e.entity}${e.name}`,e.fcl,e.navigation)})}return n}}async function validatePageConfig(e,t,n,o=[]){if(await(0,r.validateBasePath)(e,n,o),t.navigation?.sourcePage){const{content:o}=await(0,g.getManifest)(e,n);if(!o["sap.ui5"]?.routing?.targets?.[t.navigation.sourcePage])throw new Error(`Could not find navigation source ${t.navigation.sourcePage}!`);const a={};o["sap.ui5"]?.routing?.routes?.constructor===Array?o["sap.ui5"].routing.routes.forEach((e=>{a[e.name]=e})):Object.assign(a,o["sap.ui5"]?.routing?.routes??{});const i=a[t.navigation.sourcePage];if(!i?.pattern||!i.target)throw new Error(`Invalid routing configuration for navigation source ${t.navigation.sourcePage}!`)}return n}t.PATTERN_SUFFIX=":?query:"},40075:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.enhanceData=enhanceData,t.getTemplateRoot=getTemplateRoot,t.generate=async function generate(e,t,n){n||(n=(0,i.create)((0,a.create)()));(0,p.validateVersion)(t.minUI5Version),await(0,l.validatePageConfig)(e,t,n,[]);const s=await(0,d.getManifestPath)(e,n),c=enhanceData(t,s,n),u=getTemplateRoot(t.minUI5Version);(0,m.extendJSON)(n,{filepath:s,content:(0,r.render)(n.read((0,o.join)(u,"manifest.json")),c,{}),replacer:(0,l.getManifestJsonExtensionHelper)(c),tabInfo:t.tabInfo});const g=(0,o.join)(c.path,`${c.name}.view.xml`);if(!n.exists(g)){n.copyTpl((0,o.join)(u,"ext/View.xml"),g,c);const t=n.readJSON(s),a="i18n/i18n.properties",i=t?.["sap.ui5"]?.models?.i18n?.uri,l=(0,o.join)(