@sap/ux-ui5-tooling 1.11.3 → 1.11.4
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/CHANGELOG.md +4 -0
- package/README.md +3 -2
- package/dist/cli/index.js +44797 -38012
- package/dist/middlewares/fiori-tools-appreload.js +27 -26
- package/dist/middlewares/fiori-tools-preview.js +20754 -17667
- package/dist/middlewares/fiori-tools-proxy.js +42105 -44644
- package/dist/middlewares/fiori-tools-servestatic.js +65 -59
- package/dist/tasks/cf-deploy/index.js +6015 -1903
- package/dist/tasks/deploy/index.js +27118 -20343
- package/package.json +32 -26
- package/dist/templates/control-property-editor/app.css +0 -2
- package/dist/templates/control-property-editor/app.js +0 -175
- package/dist/templates/control-property-editor/editor.html +0 -23
- package/dist/templates/control-property-editor/favicon.ico +0 -0
- package/dist/templates/control-property-editor/ui5-adaptation.js +0 -2
- package/dist/templates/variants-management/WorkspaceConnector.js +0 -76
- package/dist/templates/variants-management/preview.html +0 -61
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
-
<meta name="theme-color" content="#000000" />
|
|
7
|
-
<meta name="description" content="Web page for rendering SAP Fiori Tools Control Property Editor" />
|
|
8
|
-
<link rel="shortcut icon" type="image/x-icon" href="/editor/favicon.ico" />
|
|
9
|
-
<link rel="stylesheet" type="text/css" href="./editor/app.css" />
|
|
10
|
-
<title>Control Property Editor</title>
|
|
11
|
-
</head>
|
|
12
|
-
<body>
|
|
13
|
-
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
14
|
-
<div id="root"></div>
|
|
15
|
-
<script type="module">
|
|
16
|
-
import { start } from './editor/app.js';
|
|
17
|
-
start({
|
|
18
|
-
previewUrl: '<%- previewUrl %>',
|
|
19
|
-
rootElementId: 'root'
|
|
20
|
-
});
|
|
21
|
-
</script>
|
|
22
|
-
</body>
|
|
23
|
-
</html>
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var R="post-message-action";function ye(t){return t.type===R&&typeof t.action=="object"}function V(t,e){function o(){return typeof t=="function"?t():t}function n(i){let s=o();!s||i.origin!==s.origin||i.source!==s||(ye(i.data)?e(i.data.action):console.warn("Unknown message received",i.data))}function a(){window.removeEventListener("message",n)}function r(i){let s=o();if(!s)return;let p={type:R,action:i};s.postMessage(p,s.origin)}return window.addEventListener("message",n),{dispose:a,sendAction:r}}var L="boolean",j="integer",B="float",N="string",x="input",Y="dropdown",H="checkbox";function ge(t){return function(o){return(o==null?void 0:o.type)===t}}function ue(t){return function(o){let n=[t,o].join(" ");function a(r){return{type:n,payload:r}}return a.type=n,a.match=ge(n),a}}var me="[ext]",g=ue(me),J=g("icons-loaded"),I=g("control-selected"),W=g("select-control"),z=g("delete-property-changes"),G=g("outline-changed"),$=g("change-property"),X=g("property-changed"),q=g("change-property-failed"),D=g("change-stack-modified");function O(t){let e;return t.getElementInstance?e=t.getElementInstance():e=t.getElement(),e}async function K(t){return new Promise(e=>{let o=t.replace(/\./g,"/");sap.ui.require([o],function(n){let a=n.getMetadata();if(a&&a.getLibraryName){let r=a.getLibraryName();e(r)}else e("")})})}var Z=new Map;async function ee(){Promise.all([await E("sap.m"),await E("sap.ui.comp"),await E("sap.ui.core"),await E("sap.f")]).then(e=>{e.forEach(o=>{Z.set(o.library,o)})})}async function E(t){let e="/test-resources/"+t.split(".").join("/")+"/designtime/api.json";return fetch(e).then(o=>o.json())}async function te(t,e){let o;try{o=await ne(t,e,Z)}catch{console.error(`Error in getting documentation for ${e}`)}return o}async function ne(t,e,o){let n=await fe(t,e,o);if(n){let a=n.baseType;if(a&&(e=await K(a),e)){let r=await ne(a,e,o);return Object.assign({},r,n.properties)}return Object.assign(Object.assign({},n.properties))}else return}async function fe(t,e,o){let n,a=o.get(e);if(a)n=Q(a,t);else{let r=await E(e);o.set(e,r),n=Q(r,t)}return n}function Q(t,e){let o={baseType:"",doc:"",properties:{}},n=t.symbols.find(a=>a.name===e);if(n){o.baseType=n.extends,o.doc=n.description;let a=n["ui5-metadata"].properties;a&&a.forEach(r=>{r.description=he(r.description)||"",r.propertyName=r.name,r.propertyType=r.type,(r.defaultValue===null||r.defaultValue==="")&&(r.defaultValue="-"),o.properties[r.name]={...r}})}return o}function he(t){let e=(t||"").split("<"),o="";for(let n of e)if(!o)o=n;else{let a=n.indexOf(">");o+=a>=0?n.substring(a+1):`<${n}`}return o}var oe=t=>{let e=t.replace(/([A-Z])/g," $1");return e.charAt(0).toUpperCase()+e.slice(1)};function Ce(t){let e=(t||"").toLowerCase();return e.indexOf("src")>=0||e.startsWith("icon")||e.endsWith("icon")}function Pe(t){let e={primitiveType:"any",ui5Type:null,enumValues:null,isArray:!1};if(!t)return;let o=t.getType();if(!o)return;let n=o.getName();if(n){if(n.indexOf("[]")>0)e.primitiveType=n.substring(0,n.indexOf("[]")),e.isArray=!0;else if(n==="void"||n==="object")e.primitiveType=n;else if(n==="any")e.primitiveType="any";else if(n==="boolean"||n==="string"||n==="int"||n==="float")e.primitiveType=n;else{let a=window.sap.ui.base.DataType,r=a.getType(n);if(r&&!(r instanceof a))return e;let i=Object.getPrototypeOf(r).getName();i?e.primitiveType=i:e.primitiveType="enum",e.ui5Type=n,e.primitiveType==="enum"&&(e.enumValues=jQuery.sap.getObject(e.ui5Type))}return e}}function Te(t){return!(t.isArray||t.primitiveType==="any")}function ve(t){if(typeof t=="object"&&t instanceof Object&&!Array.isArray(t))try{return JSON.stringify(t)}catch(e){return e instanceof Error&&e.message.toLowerCase().includes("converting circular structure to json")?"<Circular JSON cannot be displayed>":t}else return typeof t=="function"?"":t}async function f(t,e,o=!0){let n=t.getMetadata(),a=n.getName(),r=n.getLibraryName(),s=sap.ui.require("sap/ui/fl/Utils").checkControlId(t),p=e?e.getDesignTimeMetadata().getData().properties:void 0,c=n.getAllProperties(),y=Object.keys(c),l=[],u=o?await te(a,r):{};for(let h of y){let d=c[h],m=Pe(d);if(!m)continue;let _=!1;p&&p[d.name]&&(_=p[d.name].ignore);let w={id:t.getId(),name:d.name,newValue:t.getProperty(d.name)},b=t.getBindingInfo(w.name);(b==null?void 0:b.bindingString)!==void 0&&(w.newValue=b.bindingString);let C=((e==null?void 0:e.isSelectable())??!1)&&Te(m)&&s&&!_,P=ve(w.newValue),le=Ce(d.name)&&a!=="sap.m.Image"&&m.ui5Type==="sap.ui.core.URI",T=u&&u[d.name]?u[d.name]:{defaultValue:d.defaultValue||"-",description:"",propertyName:d.name,type:m.ui5Type,propertyType:m.ui5Type},v=oe(d.name);switch(m.primitiveType){case"enum":{let U=m.enumValues??{},de=Object.keys(U).map(k=>({key:k,text:U[k]}));l.push({type:N,editor:Y,name:d.name,readableName:v,value:P,isEnabled:C,options:de,documentation:T});break}case"string":{l.push({type:N,editor:x,name:d.name,readableName:v,value:P,isEnabled:C,isIcon:le,documentation:T});break}case"int":{l.push({type:j,editor:x,name:d.name,readableName:v,value:P,isEnabled:C,documentation:T});break}case"float":{l.push({type:B,editor:x,name:d.name,readableName:v,value:P,isEnabled:C,documentation:T});break}case"boolean":{l.push({type:L,editor:H,name:d.name,readableName:v,value:P,isEnabled:C,documentation:T});break}}}return{id:t.getId(),type:a,properties:l.sort((h,d)=>h.name>d.name?1:-1),name:a}}var re=async(t="")=>{let e=!1,o=sap.ui.getCore().byId(t);if(o){let n=sap.ui.dt.OverlayRegistry.getOverlay(o);if((!n||!n.getDomRef())&&(n=sap.ui.dt.OverlayUtil.getClosestOverlayFor(o)),n){let a=O(n);e=(await f(a,n,!1)).properties.find(s=>s.isEnabled===!0)!==void 0}}else{let n=sap.ui.getCore().getComponent(t);if(n){let r=(await f(n,void 0,!1)).properties.find(i=>i.isEnabled===!0);e=!1}}return e};async function M(t,e){let o=[...t],n=[];for(;o.length;){let a=o.shift(),r=await re(a==null?void 0:a.id);if((a==null?void 0:a.type)==="element"){let i=(a.elements??[]).flatMap(c=>c.type==="aggregation"?c.elements??[]:[]),{text:s}=e(a.id),p={controlId:a.id,controlType:a.technicalName,name:s??a.technicalName.split(".").slice(-1)[0],editable:r,visible:a.visible??!0,children:await M(i,e)};n.push(p)}}return n}async function ae(t,e){let o=await t.getService("outline");async function n(){let a=await o.get(),r=await M(a,i=>{let s=sap.ui.getCore().byId(i);if(s&&s.getMetadata().getProperty("text")){let p=s.getProperty("text");return typeof p=="string"&&p.trim()!==""?{text:p}:{}}return{}});e(G(r))}o.attachEvent("update",n)}function ie(){return{getControlById:Ee,getIcons:Oe,getComponent:be,getOverlay:xe,getClosestOverlayFor:Ie}}function Ee(t){return sap.ui.getCore().byId(t)}function be(t){return sap.ui.getCore().getComponent(t)}function xe(t){return sap.ui.dt.OverlayRegistry.getOverlay(t)}function Ie(t){return sap.ui.dt.OverlayUtil.getClosestOverlayFor(t)}function Oe(){return sap.ui.core.IconPool.getIconNames("undefined").map(t=>{let e=sap.ui.core.IconPool.getIconInfo(t);return{name:t.toLowerCase(),content:e.content,fontFamily:e.fontFamily}}).sort((t,e)=>t.name<e.name?-1:t.name>e.name?1:0)}function F(t){let e={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(t)};fetch("./control-property-editor/report-telemetry",e).then(async o=>{console.log(o)}).catch(o=>{console.error("There was an error!",o)})}var S=class{constructor(e,o){this.rta=e;this.ui5=o;this.appliedChangeCache=new Map;this.activeChangeHandlers=new Set}init(e,o){let n=new Set;this.rta.attachSelectionChange(this.createOnSelectionChangeHandler(e,n)),o(async a=>{if(W.match(a)){let r=a.payload,i=this.ui5.getControlById(r);if(!i){let c=this.ui5.getComponent(r);if(c){let y=await f(c),l=I(y);e(l)}return}n.add("outline");let s=this.ui5.getOverlay(i),p=this.rta.getSelection();if(p.length>0)for(let c=0;c<p.length;c++)p[c].setSelected(!1);if((!s||!s.getDomRef())&&(s=this.ui5.getClosestOverlayFor(i)),s&&s.isSelectable())s.setSelected(!0);else{let c=await f(i),y=I(c);e(y)}}})}applyControlPropertyChange(e,o){let n=se(e,o);this.appliedChangeCache.set(n,Date.now())}createOnSelectionChangeHandler(e,o){return async n=>{let a=n.getParameter("selection");for(let r of this.activeChangeHandlers)r();if(this.activeChangeHandlers.clear(),Array.isArray(a)&&a.length===1){let r=this.ui5.getControlById(a[0].getId());if(r){let i=O(r),s=i.getMetadata().getName();this.handlePropertyChanges(i,e);try{let p=o.has("outline"),c=s.toLowerCase().startsWith("sap")?s:"Other Control Types";p?F({category:"Outline Selection",controlName:c}):F({category:"Overlay Selection",controlName:c})}catch(p){console.error("Error in reporting telemetry",p)}finally{let p=await f(i,r),c=I(p);e(c),o.delete("outline")}}}}}handlePropertyChanges(e,o){let n=a=>{let r=a.getParameter("name"),i=a.getParameter("id"),s=se(i,r);if(this.appliedChangeCache.get(s)){this.appliedChangeCache.delete(s);return}let c=e.getBindingInfo(r),y=(c==null?void 0:c.bindingString)??a.getParameter("newValue"),l=X({controlId:i,propertyName:r,newValue:y});o(l)};e.attachEvent("_change",n),this.activeChangeHandlers.add(()=>{try{e.detachEvent("_change",n)}catch{}})}};function se(t,e){return[t,e].join(",")}var Se="FE_FROM_SCRATCH";async function ce(t,e){let{layer:o,componentId:n,rta:a,generator:r}=t,i=sap.ui.getCore().byId(e.controlId);if(!i)return;let s={layer:o,developerMode:!0,baseId:n,projectId:"",scenario:Se,generator:r},p=typeof e.value=="string"&&pe(e.value)?"BindProperty":"Property",c=typeof e.value=="string"&&pe(e.value)?{generator:r,propertyName:e.propertyName,newBinding:e.value}:{generator:r,propertyName:e.propertyName,newValue:e.value},y=await sap.ui.rta.command.CommandFactory.getCommandFor(i,p,c,null,s);await a.getCommandStack().pushAndExecute(y)}function pe(t){return t.includes("{")&&t.includes("}")}var A=class{constructor(e,o,n){this.options=e;this.ui5=o;this.selectionService=n;this.savedChanges=[]}async init(e,o){o(async r=>{if($.match(r))try{this.selectionService.applyControlPropertyChange(r.payload.controlId,r.payload.propertyName),await ce(this.options,r.payload)}catch(i){let s="",p=r.payload.controlId||"",c=this.ui5.getControlById(p);c&&(s=c.getMetadata().getName());let l=Ae(i==null?void 0:i.toString(),p,s)||`RTA Exception applying expression "${r.payload.value}"`,u=q({...r.payload,errorMessage:l});e(u)}else z.match(r)&&await this.deleteChange(r.payload.controlId,r.payload.propertyName,r.payload.fileName)});let n=await fetch(`/FioriTools/api/getChanges?_=${Date.now()}`).then(r=>r.json()).catch(console.error),a=Object.keys(n??{}).map(r=>{let i=n[r];try{if(we(["fileName","selector.id","content.property","creation"],i),[i.content.newValue,i.content.newBinding].every(s=>s==null))throw new Error("Invalid change, missing new value in the change file");return{type:"saved",kind:"valid",fileName:i.fileName,controlId:i.selector.id,propertyName:i.content.property,value:i.content.newValue??i.content.newBinding,timestamp:new Date(i.creation).getTime(),controlName:i.selector.type.split(".").pop()}}catch(s){if(i.fileName){let p={type:"saved",kind:"unknown",fileName:i.fileName};return i.creation&&(p.timestamp=new Date(i.creation).getTime()),p}console.error(s);return}}).filter(r=>!!r).sort((r,i)=>i.timestamp-r.timestamp);this.savedChanges=a,e(D({saved:a,pending:[]})),this.options.rta.attachUndoRedoStackModified(this.createOnStackChangeHandler(e))}async deleteChange(e,o,n){let a=this.savedChanges.filter(r=>n?n===r.fileName:r.controlId===e&&r.propertyName===o).map(r=>fetch("/FioriTools/api/removeChanges",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:r.fileName})}));await Promise.all(a).catch(console.error)}createOnStackChangeHandler(e){return async()=>{let o=this.options.rta.getCommandStack(),n=o.getCommands(),a=o.getAllExecutedCommands(),r=n.length-a.length,i=n.map(function(s,p){try{let c=s.getProperty("selector"),y=s.getProperty("changeType"),l="";switch(y){case"propertyChange":l=s.getProperty("newValue");break;case"propertyBindingChange":l=s.getProperty("newBinding");break}return{type:"pending",controlId:c.id,propertyName:s.getProperty("propertyName"),isActive:p>=r,value:l,controlName:s.getElement().getMetadata().getName().split(".").pop()??""}}catch(c){console.error(c)}}).filter(s=>!!s);e(D({saved:this.savedChanges,pending:i}))}}};function Ae(t,e,o){return t.replace("Error: Applying property changes failed:","").replace(`${o}#${e}`,"")}function we(t,e){for(let o of t){let n=Ne(o,e);if(n==null)throw new Error(`Invalid change, missing ${o} in the change file`)}}function Ne(t,e){let o=t.split("."),n=e;for(let a of o)n=n[a];return n}function De(t){console.log("Initializing Control Property Editor");let{rta:e}=t,o=ie(),n=[];function a(p){n.push(p)}let r=new S(e,o),i=new A(t,o,r),s=[r,i];try{ee();let{sendAction:p}=V(window.parent,async function(l){for(let u of n)try{await u(l)}catch(h){console.error(h)}});for(let y of s)y.init(p,a);ae(e,p);let c=o.getIcons();p(J(c))}catch(p){console.error("Error during initialization of Control Property Editor",p)}}export{De as init};
|
|
2
|
-
//# sourceMappingURL=ui5-adaptation.js.map
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
sap.ui.define(
|
|
2
|
-
[
|
|
3
|
-
'sap/base/util/merge',
|
|
4
|
-
'sap/ui/fl/write/api/connectors/ObjectStorageConnector',
|
|
5
|
-
'sap/ui/fl/Layer',
|
|
6
|
-
'sap/base/util/UriParameters'
|
|
7
|
-
],
|
|
8
|
-
function (merge, ObjectStorageConnector, Layer, UriParameters) {
|
|
9
|
-
'use strict';
|
|
10
|
-
var url = new URL(window.location.toString());
|
|
11
|
-
var uriParameters = UriParameters.fromURL(url.href);
|
|
12
|
-
var rtaMode = uriParameters.get('fiori-tools-rta-mode');
|
|
13
|
-
var generator =
|
|
14
|
-
rtaMode === 'forAdaptation'
|
|
15
|
-
? 'changeUtils: SAPFioriTools-propertyEditor'
|
|
16
|
-
: 'changeUtils: SAPFioriTools-variants';
|
|
17
|
-
|
|
18
|
-
var WorkspaceConnector = merge({}, ObjectStorageConnector, {
|
|
19
|
-
layers: [Layer.VENDOR, Layer.CUSTOMER_BASE],
|
|
20
|
-
storage: {
|
|
21
|
-
_itemsStoredAsObjects: true,
|
|
22
|
-
setItem: function (sKey, vValue) {
|
|
23
|
-
// update generator
|
|
24
|
-
if (vValue && vValue.support) {
|
|
25
|
-
vValue.support.generator = generator;
|
|
26
|
-
}
|
|
27
|
-
$.ajax({
|
|
28
|
-
type: 'POST',
|
|
29
|
-
url: '/FioriTools/api/writeChanges',
|
|
30
|
-
data: JSON.stringify(vValue, null, 2),
|
|
31
|
-
contentType: 'application/json'
|
|
32
|
-
});
|
|
33
|
-
},
|
|
34
|
-
removeItem: function (sKey) {
|
|
35
|
-
$.ajax({
|
|
36
|
-
type: 'DELETE',
|
|
37
|
-
url: '/FioriTools/api/removeChanges',
|
|
38
|
-
data: JSON.stringify({ fileName: sKey }),
|
|
39
|
-
contentType: 'application/json'
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
clear: function () {
|
|
43
|
-
// not implemented
|
|
44
|
-
},
|
|
45
|
-
getItem: function (sKey) {
|
|
46
|
-
// not implemented
|
|
47
|
-
},
|
|
48
|
-
getItems: async function () {
|
|
49
|
-
const changes = await $.ajax({
|
|
50
|
-
url: '/FioriTools/api/getChanges',
|
|
51
|
-
type: 'GET',
|
|
52
|
-
cache: false,
|
|
53
|
-
dataType: 'json'
|
|
54
|
-
});
|
|
55
|
-
return changes;
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
loadFeatures: function () {
|
|
59
|
-
return ObjectStorageConnector.loadFeatures().then(function (settings) {
|
|
60
|
-
const [majorVersion, minorVersion] = sap.ui.version.split('.').map((v) => parseInt(v, 10));
|
|
61
|
-
if (majorVersion >= 1 && minorVersion >= 90) {
|
|
62
|
-
settings.isVariantAdaptationEnabled = true;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (rtaMode === 'forAdaptation') {
|
|
66
|
-
settings.isVariantAdaptationEnabled = false;
|
|
67
|
-
}
|
|
68
|
-
return settings;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
return WorkspaceConnector;
|
|
74
|
-
},
|
|
75
|
-
true
|
|
76
|
-
);
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
5
|
-
<meta charset="UTF-8">
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
-
<title>{{appTitle}}</title>
|
|
8
|
-
<script>
|
|
9
|
-
window["sap-ushell-config"] = {
|
|
10
|
-
defaultRenderer: "fiori2",
|
|
11
|
-
applications: {
|
|
12
|
-
"<%- previewAppName %>": {
|
|
13
|
-
additionalInformation: "SAPUI5.Component=<%- component %>",
|
|
14
|
-
applicationType: "URL",
|
|
15
|
-
url: "./",
|
|
16
|
-
navigationMode: "embedded"
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
</script>
|
|
21
|
-
<script src="/test-resources/sap/ushell/bootstrap/sandbox.js" id="sap-ushell-bootstrap"></script>
|
|
22
|
-
<script id="sap-ui-bootstrap" src="/resources/sap-ui-core.js" <%- ui5Configuration %>></script><% if (reuseLibs) { %>
|
|
23
|
-
<script id="locate-reuse-libs" src="../<%- reuseLibFolder %>/locate-reuse-libs.js" data-sap-ui-manifest-uri="../manifest.json">
|
|
24
|
-
</script><% } %><% if (rtaMode) { %>
|
|
25
|
-
<script>
|
|
26
|
-
sap.ui.getCore().attachInit(function() {
|
|
27
|
-
sap.ushell.Container.attachRendererCreatedEvent(function() {
|
|
28
|
-
sap.ushell.Container.getServiceAsync('AppLifeCycle').then((serviceInstance) => {
|
|
29
|
-
serviceInstance.attachAppLoaded((event) => {
|
|
30
|
-
var oView = event.getParameter('componentInstance');
|
|
31
|
-
sap.ui.require(["sap/ui/rta/api/startAdaptation"], async function (startAdaptation) {
|
|
32
|
-
var options = {
|
|
33
|
-
rootControl: oView,
|
|
34
|
-
validateAppVersion: false,
|
|
35
|
-
flexSettings: {
|
|
36
|
-
layer: '<%- layer %>',
|
|
37
|
-
developerMode: <%- flexMode %>
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
const rta = await startAdaptation(options);
|
|
41
|
-
<% if (flexMode) { %>
|
|
42
|
-
const { init } = await import('./editor/ui5-adaptation.js');
|
|
43
|
-
init({
|
|
44
|
-
rta,
|
|
45
|
-
view: oView,
|
|
46
|
-
layer: '<%- layer %>',
|
|
47
|
-
componentId: '<%- component %>',
|
|
48
|
-
generator: '<%- generator %>'
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
<% } %>
|
|
52
|
-
});
|
|
53
|
-
})
|
|
54
|
-
});
|
|
55
|
-
});<% if (!reuseLibs) { %>
|
|
56
|
-
sap.ushell.Container.createRenderer().placeAt("content");<% } %>
|
|
57
|
-
});
|
|
58
|
-
</script><% } %>
|
|
59
|
-
</head>
|
|
60
|
-
<body class="sapUiBody" id="content"></body>
|
|
61
|
-
</html>
|