@sap-ux/fe-fpm-writer 0.5.2 → 0.6.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/dist/action/index.js +9 -9
- package/dist/action/index.js.map +1 -1
- package/dist/app/index.d.ts +27 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +77 -0
- package/dist/app/index.js.map +1 -0
- package/dist/column/index.d.ts.map +1 -1
- package/dist/column/index.js +16 -16
- package/dist/column/index.js.map +1 -1
- package/dist/common/defaults.d.ts +1 -0
- package/dist/common/defaults.d.ts.map +1 -1
- package/dist/common/defaults.js +3 -2
- package/dist/common/defaults.js.map +1 -1
- package/dist/common/types.d.ts +5 -26
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/types.js.map +1 -1
- package/dist/common/validate.js +2 -2
- package/dist/common/validate.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/page/defaults.d.ts.map +1 -1
- package/dist/page/defaults.js +14 -1
- package/dist/page/defaults.js.map +1 -1
- package/dist/page/index.d.ts.map +1 -1
- package/dist/page/index.js +49 -24
- package/dist/page/index.js.map +1 -1
- package/dist/page/types.d.ts +42 -2
- package/dist/page/types.d.ts.map +1 -1
- package/dist/section/index.js +13 -13
- package/dist/section/index.js.map +1 -1
- package/package.json +5 -3
- package/templates/app/Component.js +22 -0
- package/templates/page/1.84/manifest.json +2 -1
- package/templates/page/1.94/manifest.json +2 -1
package/dist/action/index.js
CHANGED
|
@@ -19,7 +19,7 @@ const defaults_1 = require("../common/defaults");
|
|
|
19
19
|
function enhanceConfig(data, manifestPath, manifest) {
|
|
20
20
|
// clone input
|
|
21
21
|
const config = Object.assign(Object.assign({}, data), { target: Object.assign({}, data.target), settings: Object.assign({}, data.settings) });
|
|
22
|
-
|
|
22
|
+
defaults_1.setCommonDefaults(config, manifestPath, manifest);
|
|
23
23
|
// set default values for visibility and enabled
|
|
24
24
|
config.settings.enabled = config.settings.enabled || true;
|
|
25
25
|
config.settings.visible = config.settings.visible || true;
|
|
@@ -65,26 +65,26 @@ exports.enhanceManifestAndGetActionsElementReference = enhanceManifestAndGetActi
|
|
|
65
65
|
* @returns {Promise<Editor>} the updated memfs editor instance
|
|
66
66
|
*/
|
|
67
67
|
function generateCustomAction(basePath, actionConfig, fs) {
|
|
68
|
-
|
|
68
|
+
validate_1.validateVersion(actionConfig.ui5Version);
|
|
69
69
|
if (!fs) {
|
|
70
|
-
fs =
|
|
70
|
+
fs = mem_fs_editor_1.create(mem_fs_1.create());
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
const manifestPath =
|
|
72
|
+
validate_1.validateBasePath(basePath, fs);
|
|
73
|
+
const manifestPath = path_1.join(basePath, 'webapp/manifest.json');
|
|
74
74
|
const manifest = fs.readJSON(manifestPath);
|
|
75
75
|
const config = enhanceConfig(actionConfig, manifestPath, manifest);
|
|
76
|
-
const root =
|
|
76
|
+
const root = path_1.join(__dirname, '../../templates');
|
|
77
77
|
// add event handler if requested
|
|
78
78
|
if (config.settings.eventHandler === true) {
|
|
79
|
-
const controllerPath =
|
|
79
|
+
const controllerPath = path_1.join(config.path, `${config.name}.js`);
|
|
80
80
|
if (!fs.exists(controllerPath)) {
|
|
81
|
-
fs.copyTpl(
|
|
81
|
+
fs.copyTpl(path_1.join(root, 'common/EventHandler.js'), controllerPath, config);
|
|
82
82
|
}
|
|
83
83
|
config.settings.eventHandler = `${config.ns}.${config.name}.onPress`;
|
|
84
84
|
}
|
|
85
85
|
// enhance manifest with action definition and controller reference
|
|
86
86
|
const actions = enhanceManifestAndGetActionsElementReference(manifest, config.target);
|
|
87
|
-
Object.assign(actions, JSON.parse(
|
|
87
|
+
Object.assign(actions, JSON.parse(ejs_1.render(fs.read(path_1.join(root, `action/manifest.action.json`)), config)));
|
|
88
88
|
fs.writeJSON(manifestPath, manifest);
|
|
89
89
|
return fs;
|
|
90
90
|
}
|
package/dist/action/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/action/index.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,iDAAuC;AAEvC,mCAAwC;AACxC,+BAA4B;AAC5B,6BAA6B;AAC7B,iDAAuE;AAEvE,iDAAuD;AAEvD;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAkB,EAAE,YAAoB,EAAE,QAAkB;IAC/E,cAAc;IACd,MAAM,MAAM,mCACL,IAAI,KACP,MAAM,oBAAO,IAAI,CAAC,MAAM,GACxB,QAAQ,oBAAO,IAAI,CAAC,QAAQ,IAC/B,CAAC;IACF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/action/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Editor } from 'mem-fs-editor';
|
|
2
|
+
/**
|
|
3
|
+
* Configurable options when enabling the Flexible Programming Model in a UI5 application.
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
export interface FPMConfig {
|
|
7
|
+
/**
|
|
8
|
+
* If set to true, then the Component.js file will be replaced with the default FPM Component.js, otherwise, the existing Component.js stays as-is.
|
|
9
|
+
*/
|
|
10
|
+
replaceAppComponent?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* If set to true, then FCL will be enabled.
|
|
13
|
+
* (Note: if set to false, nothing will be done i.e. FCL is not disabled)
|
|
14
|
+
*/
|
|
15
|
+
fcl?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const MIN_VERSION = "1.94.0";
|
|
18
|
+
/**
|
|
19
|
+
* Enable the flexible programming model for an application.
|
|
20
|
+
*
|
|
21
|
+
* @param {string} basePath - the base path
|
|
22
|
+
* @param {FPMConfig} config - the FPM configuration
|
|
23
|
+
* @param {Editor} [fs] - the mem-fs editor instance
|
|
24
|
+
* @returns {Promise<Editor>} the updated mem-fs editor instance
|
|
25
|
+
*/
|
|
26
|
+
export declare function enableFPM(basePath: string, config?: FPMConfig, fs?: Editor): Editor;
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAO5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,SAAc,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA+DvF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enableFPM = exports.MIN_VERSION = void 0;
|
|
4
|
+
const mem_fs_1 = require("mem-fs");
|
|
5
|
+
const mem_fs_editor_1 = require("mem-fs-editor");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const semver_1 = require("semver");
|
|
8
|
+
const defaults_1 = require("../common/defaults");
|
|
9
|
+
exports.MIN_VERSION = '1.94.0';
|
|
10
|
+
/**
|
|
11
|
+
* Enable the flexible programming model for an application.
|
|
12
|
+
*
|
|
13
|
+
* @param {string} basePath - the base path
|
|
14
|
+
* @param {FPMConfig} config - the FPM configuration
|
|
15
|
+
* @param {Editor} [fs] - the mem-fs editor instance
|
|
16
|
+
* @returns {Promise<Editor>} the updated mem-fs editor instance
|
|
17
|
+
*/
|
|
18
|
+
function enableFPM(basePath, config = {}, fs) {
|
|
19
|
+
var _a, _b, _c, _d, _e;
|
|
20
|
+
if (!fs) {
|
|
21
|
+
fs = mem_fs_editor_1.create(mem_fs_1.create());
|
|
22
|
+
}
|
|
23
|
+
const manifestPath = path_1.join(basePath, 'webapp/manifest.json');
|
|
24
|
+
if (!fs.exists(manifestPath)) {
|
|
25
|
+
throw new Error(`Invalid project folder. Cannot find required file ${manifestPath}`);
|
|
26
|
+
}
|
|
27
|
+
const manifest = fs.readJSON(manifestPath);
|
|
28
|
+
// add FE libs is not yet added
|
|
29
|
+
if (!((_c = (_b = (_a = manifest['sap.ui5']) === null || _a === void 0 ? void 0 : _a.dependencies) === null || _b === void 0 ? void 0 : _b.libs) === null || _c === void 0 ? void 0 : _c['sap.fe.templates'])) {
|
|
30
|
+
fs.extendJSON(manifestPath, {
|
|
31
|
+
'sap.ui5': {
|
|
32
|
+
dependencies: {
|
|
33
|
+
libs: {
|
|
34
|
+
'sap.fe.templates': {}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// if a minUI5Version is set and it is smaller than the minimum required, increase it
|
|
41
|
+
if (((_d = manifest['sap.ui5']) === null || _d === void 0 ? void 0 : _d.dependencies.minUI5Version) &&
|
|
42
|
+
semver_1.lt((_e = manifest['sap.ui5']) === null || _e === void 0 ? void 0 : _e.dependencies.minUI5Version, exports.MIN_VERSION)) {
|
|
43
|
+
fs.extendJSON(manifestPath, {
|
|
44
|
+
'sap.ui5': {
|
|
45
|
+
dependencies: {
|
|
46
|
+
minUI5Version: exports.MIN_VERSION
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
// enable FCL if requested
|
|
52
|
+
if (config.fcl) {
|
|
53
|
+
fs.extendJSON(manifestPath, {
|
|
54
|
+
'sap.ui5': {
|
|
55
|
+
rootView: {
|
|
56
|
+
viewName: 'sap.fe.templates.RootContainer.view.Fcl',
|
|
57
|
+
type: 'XML',
|
|
58
|
+
async: true,
|
|
59
|
+
id: 'appRootView'
|
|
60
|
+
},
|
|
61
|
+
routing: {
|
|
62
|
+
config: {
|
|
63
|
+
routerClass: defaults_1.FCL_ROUTER
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// replace Component.js
|
|
70
|
+
if (config.replaceAppComponent) {
|
|
71
|
+
const componentTemplate = path_1.join(__dirname, '../../templates/app/Component.js');
|
|
72
|
+
fs.copyTpl(componentTemplate, path_1.join(basePath, 'webapp/Component.js'), manifest['sap.app']);
|
|
73
|
+
}
|
|
74
|
+
return fs;
|
|
75
|
+
}
|
|
76
|
+
exports.enableFPM = enableFPM;
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,iDAAuC;AACvC,+BAA4B;AAC5B,mCAA4B;AAE5B,iDAAgD;AAmBnC,QAAA,WAAW,GAAG,QAAQ,CAAC;AAEpC;;;;;;;GAOG;AACH,SAAgB,SAAS,CAAC,QAAgB,EAAE,SAAoB,EAAE,EAAE,EAAW;;IAC3E,IAAI,CAAC,EAAE,EAAE;QACL,EAAE,GAAG,sBAAM,CAAC,eAAa,EAAE,CAAC,CAAC;KAChC;IAED,MAAM,YAAY,GAAG,WAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;IAC5D,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,qDAAqD,YAAY,EAAE,CAAC,CAAC;KACxF;IACD,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAoB,CAAC;IAE9D,+BAA+B;IAC/B,IAAI,oBAAC,QAAQ,CAAC,SAAS,CAAC,0CAAE,YAAY,0CAAE,IAAI,0CAAG,kBAAkB,EAAC,EAAE;QAChE,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE;YACxB,SAAS,EAAE;gBACP,YAAY,EAAE;oBACV,IAAI,EAAE;wBACF,kBAAkB,EAAE,EAAE;qBACzB;iBACJ;aACJ;SACJ,CAAC,CAAC;KACN;IAED,qFAAqF;IACrF,IACI,OAAA,QAAQ,CAAC,SAAS,CAAC,0CAAE,YAAY,CAAC,aAAa;QAC/C,WAAE,OAAC,QAAQ,CAAC,SAAS,CAAC,0CAAE,YAAY,CAAC,aAAa,EAAE,mBAAW,CAAC,EAClE;QACE,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE;YACxB,SAAS,EAAE;gBACP,YAAY,EAAE;oBACV,aAAa,EAAE,mBAAW;iBAC7B;aACJ;SACJ,CAAC,CAAC;KACN;IACD,0BAA0B;IAC1B,IAAI,MAAM,CAAC,GAAG,EAAE;QACZ,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE;YACxB,SAAS,EAAE;gBACP,QAAQ,EAAE;oBACN,QAAQ,EAAE,yCAAyC;oBACnD,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE,IAAI;oBACX,EAAE,EAAE,aAAa;iBACpB;gBACD,OAAO,EAAE;oBACL,MAAM,EAAE;wBACJ,WAAW,EAAE,qBAAU;qBAC1B;iBACJ;aACJ;SACJ,CAAC,CAAC;KACN;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,mBAAmB,EAAE;QAC5B,MAAM,iBAAiB,GAAG,WAAI,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC;QAC9E,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;KAC7F;IAED,OAAO,EAAE,CAAC;AACd,CAAC;AA/DD,8BA+DC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/column/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/column/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,KAAK,EAAE,iBAAiB,EAA6B,MAAM,SAAS,CAAC;AAK5E;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAQ3D;AA8BD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAoC3G"}
|
package/dist/column/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateCustomColumn = exports.getManifestRoot = void 0;
|
|
4
|
-
const
|
|
4
|
+
const ejs_1 = require("ejs");
|
|
5
5
|
const mem_fs_1 = require("mem-fs");
|
|
6
6
|
const mem_fs_editor_1 = require("mem-fs-editor");
|
|
7
7
|
const path_1 = require("path");
|
|
8
|
-
const ejs_1 = require("ejs");
|
|
9
8
|
const defaults_1 = require("../common/defaults");
|
|
9
|
+
const validate_1 = require("../common/validate");
|
|
10
10
|
/**
|
|
11
11
|
* Get the template folder for the given UI5 version.
|
|
12
12
|
*
|
|
@@ -15,13 +15,13 @@ const defaults_1 = require("../common/defaults");
|
|
|
15
15
|
*/
|
|
16
16
|
function getManifestRoot(ui5Version) {
|
|
17
17
|
if (ui5Version === undefined || ui5Version >= 1.86) {
|
|
18
|
-
return
|
|
18
|
+
return path_1.join(__dirname, '../../templates/column/1.86');
|
|
19
19
|
}
|
|
20
20
|
else if (ui5Version === 1.85) {
|
|
21
|
-
return
|
|
21
|
+
return path_1.join(__dirname, '../../templates/column/1.85');
|
|
22
22
|
}
|
|
23
23
|
else {
|
|
24
|
-
return
|
|
24
|
+
return path_1.join(__dirname, '../../templates/column/1.84');
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
exports.getManifestRoot = getManifestRoot;
|
|
@@ -36,7 +36,7 @@ exports.getManifestRoot = getManifestRoot;
|
|
|
36
36
|
function enhanceConfig(data, manifestPath, manifest) {
|
|
37
37
|
// clone input and set defaults
|
|
38
38
|
const config = Object.assign({}, data);
|
|
39
|
-
|
|
39
|
+
defaults_1.setCommonDefaults(config, manifestPath, manifest);
|
|
40
40
|
// set default event handler if it is to be created
|
|
41
41
|
if (config.eventHandler === true) {
|
|
42
42
|
config.eventHandler = `${config.ns}.${config.name}.onPress`;
|
|
@@ -45,7 +45,7 @@ function enhanceConfig(data, manifestPath, manifest) {
|
|
|
45
45
|
const content = config.properties && config.properties.length > 0
|
|
46
46
|
? `{=%{${config.properties.join("} + ' ' + %{")}}}`
|
|
47
47
|
: 'Sample Text';
|
|
48
|
-
config.content = config.control ||
|
|
48
|
+
config.content = config.control || defaults_1.getDefaultFragmentContent(content, config.eventHandler);
|
|
49
49
|
return config;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
@@ -57,28 +57,28 @@ function enhanceConfig(data, manifestPath, manifest) {
|
|
|
57
57
|
* @param {Editor} [fs] - the mem-fs editor instance
|
|
58
58
|
*/
|
|
59
59
|
function generateCustomColumn(basePath, customColumn, fs) {
|
|
60
|
-
|
|
60
|
+
validate_1.validateVersion(customColumn.ui5Version);
|
|
61
61
|
if (!fs) {
|
|
62
|
-
fs =
|
|
62
|
+
fs = mem_fs_editor_1.create(mem_fs_1.create());
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
const manifestPath =
|
|
64
|
+
validate_1.validateBasePath(basePath, fs);
|
|
65
|
+
const manifestPath = path_1.join(basePath, 'webapp/manifest.json');
|
|
66
66
|
const manifest = fs.readJSON(manifestPath);
|
|
67
|
-
const root =
|
|
67
|
+
const root = path_1.join(__dirname, '../../templates');
|
|
68
68
|
// merge with defaults
|
|
69
69
|
const completeColumn = enhanceConfig(customColumn, manifestPath, manifest);
|
|
70
70
|
// add event handler if requested
|
|
71
71
|
if (completeColumn.eventHandler) {
|
|
72
|
-
fs.copyTpl(
|
|
72
|
+
fs.copyTpl(path_1.join(root, 'common/EventHandler.js'), path_1.join(completeColumn.path, `${completeColumn.name}.js`), completeColumn);
|
|
73
73
|
}
|
|
74
74
|
// enhance manifest with column definition
|
|
75
75
|
const manifestRoot = getManifestRoot(customColumn.ui5Version);
|
|
76
|
-
const filledTemplate =
|
|
76
|
+
const filledTemplate = ejs_1.render(fs.read(path_1.join(manifestRoot, `manifest.json`)), completeColumn);
|
|
77
77
|
fs.extendJSON(manifestPath, JSON.parse(filledTemplate));
|
|
78
78
|
// add fragment
|
|
79
|
-
const viewPath =
|
|
79
|
+
const viewPath = path_1.join(completeColumn.path, `${completeColumn.name}.fragment.xml`);
|
|
80
80
|
if (completeColumn.control || !fs.exists(viewPath)) {
|
|
81
|
-
fs.copyTpl(
|
|
81
|
+
fs.copyTpl(path_1.join(root, 'common/Fragment.xml'), viewPath, completeColumn);
|
|
82
82
|
}
|
|
83
83
|
return fs;
|
|
84
84
|
}
|
package/dist/column/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/column/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/column/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/common/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG9E;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,aAAa,GAAG,OAAO,CAAC,qBAAqB,CAAC,EACtF,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,GACnB,qBAAqB,GAAG,CAAC,CAa3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAWrF"}
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/common/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG9E,eAAO,MAAM,UAAU,yBAAyB,CAAC;AACjD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,aAAa,GAAG,OAAO,CAAC,qBAAqB,CAAC,EACtF,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,QAAQ,GACnB,qBAAqB,GAAG,CAAC,CAa3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAWrF"}
|
package/dist/common/defaults.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDefaultFragmentContent = exports.setCommonDefaults = void 0;
|
|
3
|
+
exports.getDefaultFragmentContent = exports.setCommonDefaults = exports.FCL_ROUTER = void 0;
|
|
4
4
|
const path_1 = require("path");
|
|
5
|
+
exports.FCL_ROUTER = 'sap.f.routing.Router';
|
|
5
6
|
/**
|
|
6
7
|
* Sets the common default values for all custom elements.
|
|
7
8
|
*
|
|
@@ -18,7 +19,7 @@ function setCommonDefaults(config, manifestPath, manifest) {
|
|
|
18
19
|
config.folder = config.folder || `ext/${firstChar.toLocaleLowerCase() + config.name.substring(1)}`;
|
|
19
20
|
// calculate namespace and path for generated artifacts
|
|
20
21
|
config.ns = `${manifest['sap.app'].id}.${config.folder.replace(/[\/\\]/g, '.')}`;
|
|
21
|
-
config.path =
|
|
22
|
+
config.path = path_1.join(path_1.dirname(manifestPath), config.folder);
|
|
22
23
|
return config;
|
|
23
24
|
}
|
|
24
25
|
exports.setCommonDefaults = setCommonDefaults;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/common/defaults.ts"],"names":[],"mappings":";;;AACA,+BAAqC;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/common/defaults.ts"],"names":[],"mappings":";;;AACA,+BAAqC;AAExB,QAAA,UAAU,GAAG,sBAAsB,CAAC;AACjD;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAC7B,MAAS,EACT,YAAoB,EACpB,QAAkB;IAElB,6BAA6B;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEjE,oCAAoC;IACpC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,SAAS,CAAC,iBAAiB,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnG,uDAAuD;IACvD,MAAM,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;IACjF,MAAM,CAAC,IAAI,GAAG,WAAI,CAAC,cAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEzD,OAAO,MAAmC,CAAC;AAC/C,CAAC;AAjBD,8CAiBC;AAED;;;;;;;;GAQG;AACH,SAAgB,yBAAyB,CAAC,IAAY,EAAE,YAAqB;IACzE,IAAI,OAAe,CAAC;IACpB,IAAI,YAAY,EAAE;QACd,MAAM,KAAK,GAAI,YAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,GAAG,qCAAqC,OAAO,aAAa,IAAI,oBAAoB,MAAM,MAAM,CAAC;KAC3G;SAAM;QACH,OAAO,GAAG,eAAe,IAAI,MAAM,CAAC;KACvC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAXD,8DAWC"}
|
package/dist/common/types.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type { ManifestNamespace } from '@sap-ux/ui5-config';
|
|
2
|
+
export declare type Manifest = ManifestNamespace.SAPJSONSchemaForWebApplicationManifestFile & {
|
|
3
|
+
[key: string]: unknown;
|
|
4
|
+
};
|
|
1
5
|
/**
|
|
2
6
|
* Common properties for any custom element of the flexible programming model.
|
|
3
7
|
*/
|
|
@@ -43,32 +47,7 @@ export declare type Position = {
|
|
|
43
47
|
*/
|
|
44
48
|
placement: Placement;
|
|
45
49
|
};
|
|
46
|
-
export interface Ui5RoutingTarget<T> {
|
|
47
|
-
type: string;
|
|
48
|
-
id: string;
|
|
49
|
-
name: string;
|
|
50
|
+
export interface Ui5RoutingTarget<T> extends ManifestNamespace.Target {
|
|
50
51
|
options?: T;
|
|
51
52
|
}
|
|
52
|
-
export interface Ui5RoutingRoute {
|
|
53
|
-
pattern: string;
|
|
54
|
-
name: string;
|
|
55
|
-
target: string | string[];
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Interface of an object generated from a UI5 manifest.json
|
|
59
|
-
*/
|
|
60
|
-
export interface Manifest {
|
|
61
|
-
[key: string]: object;
|
|
62
|
-
'sap.app': {
|
|
63
|
-
id: string;
|
|
64
|
-
};
|
|
65
|
-
'sap.ui5': {
|
|
66
|
-
routing: {
|
|
67
|
-
routes: Ui5RoutingRoute[];
|
|
68
|
-
targets: {
|
|
69
|
-
[key: string]: Ui5RoutingTarget<any>;
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
53
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,SAAS;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,GAAG,QAAQ;CACd;AAED;;GAEG;AACH,oBAAY,QAAQ,GAAG;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,gBAAgB,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,oBAAY,QAAQ,GAAG,iBAAiB,CAAC,0CAA0C,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAEjH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,SAAS;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,GAAG,QAAQ;CACd;AAED;;GAEG;AACH,oBAAY,QAAQ,GAAG;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,iBAAiB,CAAC,MAAM;IACjE,OAAO,CAAC,EAAE,CAAC,CAAC;CACf"}
|
package/dist/common/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":";;;AA8BA;;GAEG;AACH,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,8BAAiB,CAAA;IACjB,wBAAW,CAAA;AACf,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB"}
|
package/dist/common/validate.js
CHANGED
|
@@ -27,9 +27,9 @@ exports.validateVersion = validateVersion;
|
|
|
27
27
|
function validateBasePath(basePath, fs) {
|
|
28
28
|
var _a, _b, _c;
|
|
29
29
|
if (!fs) {
|
|
30
|
-
fs =
|
|
30
|
+
fs = mem_fs_editor_1.create(mem_fs_1.create());
|
|
31
31
|
}
|
|
32
|
-
const manifestPath =
|
|
32
|
+
const manifestPath = path_1.join(basePath, 'webapp', 'manifest.json');
|
|
33
33
|
if (!fs.exists(manifestPath)) {
|
|
34
34
|
throw new Error(`Invalid project folder. Cannot find required file ${manifestPath}`);
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/common/validate.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,mCAAiD;AAEjD,iDAAuC;AAEvC;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,UAAmB;IAC/C,IAAI,UAAU,IAAI,UAAU,GAAG,IAAI,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;KACnG;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AALD,0CAKC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,EAAW;;IAC1D,IAAI,CAAC,EAAE,EAAE;QACL,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/common/validate.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,mCAAiD;AAEjD,iDAAuC;AAEvC;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,UAAmB;IAC/C,IAAI,UAAU,IAAI,UAAU,GAAG,IAAI,EAAE;QACjC,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAC;KACnG;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AALD,0CAKC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,EAAW;;IAC1D,IAAI,CAAC,EAAE,EAAE;QACL,EAAE,GAAG,sBAAM,CAAC,eAAa,EAAE,CAAC,CAAC;KAChC;IAED,MAAM,YAAY,GAAG,WAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAC/D,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,qDAAqD,YAAY,EAAE,CAAC,CAAC;KACxF;SAAM;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAQ,CAAC;QAClD,IAAI,CAAC,mBAAA,QAAQ,CAAC,SAAS,CAAC,0CAAE,YAAY,0CAAE,IAAI,0CAAG,kBAAkB,OAAM,SAAS,CAAC,KAAK,KAAK,EAAE;YACzF,MAAM,IAAI,KAAK,CACX,gHAAgH,CACnH,CAAC;SACL;KACJ;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAlBD,4CAkBC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,5 +6,6 @@ export { CustomTableColumn } from './column/types';
|
|
|
6
6
|
export { generateCustomColumn } from './column';
|
|
7
7
|
export { CustomSection } from './section/types';
|
|
8
8
|
export { generateCustomSection } from './section';
|
|
9
|
+
export { enableFPM, FPMConfig } from './app';
|
|
9
10
|
export { validateBasePath, validateVersion } from './common/validate';
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateVersion = exports.validateBasePath = exports.generateCustomSection = exports.generateCustomColumn = exports.generateCustomAction = exports.TargetControl = exports.generateCustomPage = void 0;
|
|
3
|
+
exports.validateVersion = exports.validateBasePath = exports.enableFPM = exports.generateCustomSection = exports.generateCustomColumn = exports.generateCustomAction = exports.TargetControl = exports.generateCustomPage = void 0;
|
|
4
4
|
var page_1 = require("./page");
|
|
5
5
|
Object.defineProperty(exports, "generateCustomPage", { enumerable: true, get: function () { return page_1.generateCustomPage; } });
|
|
6
6
|
var types_1 = require("./action/types");
|
|
@@ -11,6 +11,8 @@ var column_1 = require("./column");
|
|
|
11
11
|
Object.defineProperty(exports, "generateCustomColumn", { enumerable: true, get: function () { return column_1.generateCustomColumn; } });
|
|
12
12
|
var section_1 = require("./section");
|
|
13
13
|
Object.defineProperty(exports, "generateCustomSection", { enumerable: true, get: function () { return section_1.generateCustomSection; } });
|
|
14
|
+
var app_1 = require("./app");
|
|
15
|
+
Object.defineProperty(exports, "enableFPM", { enumerable: true, get: function () { return app_1.enableFPM; } });
|
|
14
16
|
var validate_1 = require("./common/validate");
|
|
15
17
|
Object.defineProperty(exports, "validateBasePath", { enumerable: true, get: function () { return validate_1.validateBasePath; } });
|
|
16
18
|
Object.defineProperty(exports, "validateVersion", { enumerable: true, get: function () { return validate_1.validateVersion; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,+BAA4C;AAAnC,0GAAA,kBAAkB,OAAA;AAE3B,wCAA6D;AAAtC,sGAAA,aAAa,OAAA;AACpC,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA;AAG7B,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA;AAG7B,qCAAkD;AAAzC,gHAAA,qBAAqB,OAAA;AAE9B,8CAAsE;AAA7D,4GAAA,gBAAgB,OAAA;AAAE,2GAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,+BAA4C;AAAnC,0GAAA,kBAAkB,OAAA;AAE3B,wCAA6D;AAAtC,sGAAA,aAAa,OAAA;AACpC,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA;AAG7B,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA;AAG7B,qCAAkD;AAAzC,gHAAA,qBAAqB,OAAA;AAE9B,6BAA6C;AAApC,gGAAA,SAAS,OAAA;AAElB,8CAAsE;AAA7D,4GAAA,gBAAgB,OAAA;AAAE,2GAAA,eAAe,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/page/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/page/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAI9D;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,kBAAkB,CA0BlG"}
|
package/dist/page/defaults.js
CHANGED
|
@@ -11,9 +11,22 @@ const defaults_1 = require("../common/defaults");
|
|
|
11
11
|
* @returns enhanced configuration
|
|
12
12
|
*/
|
|
13
13
|
function enhanceData(data, manifestPath, fs) {
|
|
14
|
+
var _a, _b, _c, _d, _e, _f;
|
|
14
15
|
const manifest = fs.readJSON(manifestPath);
|
|
15
16
|
// set common defaults
|
|
16
|
-
const config =
|
|
17
|
+
const config = defaults_1.setCommonDefaults(data, manifestPath, manifest);
|
|
18
|
+
// if FCL is enabled enhance the configuration
|
|
19
|
+
if (((_c = (_b = (_a = manifest['sap.ui5']) === null || _a === void 0 ? void 0 : _a.routing) === null || _b === void 0 ? void 0 : _b.config) === null || _c === void 0 ? void 0 : _c.routerClass) === defaults_1.FCL_ROUTER) {
|
|
20
|
+
config.fcl = true;
|
|
21
|
+
if (config.navigation) {
|
|
22
|
+
const sourceRoute = (((_e = (_d = manifest['sap.ui5']) === null || _d === void 0 ? void 0 : _d.routing) === null || _e === void 0 ? void 0 : _e.routes) || []).find((route) => { var _a; return route.name === ((_a = config.navigation) === null || _a === void 0 ? void 0 : _a.sourcePage); });
|
|
23
|
+
config.controlAggregation =
|
|
24
|
+
((_f = sourceRoute === null || sourceRoute === void 0 ? void 0 : sourceRoute.target) !== null && _f !== void 0 ? _f : []).length > 1 ? 'endColumnPages' : 'midColumnPages';
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
config.controlAggregation = 'beginColumnPages';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
17
30
|
if (config.view === undefined) {
|
|
18
31
|
config.view = {
|
|
19
32
|
title: config.name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/page/defaults.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/page/defaults.ts"],"names":[],"mappings":";;;AAKA,iDAAmE;AAEnE;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,IAAgB,EAAE,YAAoB,EAAE,EAAU;;IAC1E,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAa,CAAC;IAEvD,sBAAsB;IACtB,MAAM,MAAM,GAAG,4BAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAuB,CAAC;IAErF,8CAA8C;IAC9C,IAAI,mBAAA,QAAQ,CAAC,SAAS,CAAC,0CAAE,OAAO,0CAAE,MAAM,0CAAE,WAAW,MAAK,qBAAU,EAAE;QAClE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;QAClB,IAAI,MAAM,CAAC,UAAU,EAAE;YACnB,MAAM,WAAW,GAAG,CAAC,CAAC,YAAA,QAAQ,CAAC,SAAS,CAAC,0CAAE,OAAO,0CAAE,MAAoC,KAAI,EAAE,CAAC,CAAC,IAAI,CAChG,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,KAAK,CAAC,IAAI,YAAK,MAAM,CAAC,UAAU,0CAAE,UAAU,CAAA,CAAA,EAAA,CAC1D,CAAC;YACF,MAAM,CAAC,kBAAkB;gBACrB,OAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAmB,mCAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;SAClG;aAAM;YACH,MAAM,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAClD;KACJ;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;QAC3B,MAAM,CAAC,IAAI,GAAG;YACV,KAAK,EAAE,MAAM,CAAC,IAAI;SACrB,CAAC;KACL;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AA1BD,kCA0BC"}
|
package/dist/page/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/page/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,SAAS,CAAC;AAI9D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAM3D;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/page/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,SAAS,CAAC;AAI9D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAM3D;AAqCD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAgClG;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAmC1F"}
|
package/dist/page/index.js
CHANGED
|
@@ -15,10 +15,10 @@ const validate_1 = require("../common/validate");
|
|
|
15
15
|
*/
|
|
16
16
|
function getTemplateRoot(ui5Version) {
|
|
17
17
|
if (ui5Version === undefined || ui5Version >= 1.94) {
|
|
18
|
-
return
|
|
18
|
+
return path_1.join(__dirname, '../../templates/page/1.94');
|
|
19
19
|
}
|
|
20
20
|
else {
|
|
21
|
-
return
|
|
21
|
+
return path_1.join(__dirname, '../../templates/page/1.84');
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
exports.getTemplateRoot = getTemplateRoot;
|
|
@@ -29,25 +29,33 @@ exports.getTemplateRoot = getTemplateRoot;
|
|
|
29
29
|
* @param config configuration object
|
|
30
30
|
*/
|
|
31
31
|
function updateRoutes(routes, config) {
|
|
32
|
+
var _a, _b;
|
|
32
33
|
const newRoute = {
|
|
33
34
|
name: `${config.entity}${config.name}`
|
|
34
35
|
};
|
|
35
36
|
if (config.navigation) {
|
|
36
37
|
const sourceRoute = routes.find((route) => { var _a; return route.name === ((_a = config.navigation) === null || _a === void 0 ? void 0 : _a.sourcePage); });
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
const pattern = {
|
|
39
|
+
base: (_a = sourceRoute === null || sourceRoute === void 0 ? void 0 : sourceRoute.pattern) === null || _a === void 0 ? void 0 : _a.replace(':?query:', ''),
|
|
40
|
+
navEntity: config.navigation.navEntity,
|
|
41
|
+
navKey: config.navigation.navKey ? `({${config.navigation.navEntity}Key})` : ''
|
|
42
|
+
};
|
|
43
|
+
newRoute.pattern = `${pattern.base}/${pattern.navEntity}${pattern.navKey}:?query:`;
|
|
44
|
+
if (((_b = sourceRoute === null || sourceRoute === void 0 ? void 0 : sourceRoute.target) === null || _b === void 0 ? void 0 : _b.constructor) === Array) {
|
|
39
45
|
const pages = sourceRoute.target;
|
|
40
46
|
// FCL only supports 3 columns, therefore, show the page in fullscreen if it is the 4th level of navigation
|
|
41
47
|
newRoute.target =
|
|
42
|
-
pages.length > 2
|
|
48
|
+
pages.length > 2
|
|
49
|
+
? [newRoute.name]
|
|
50
|
+
: [...pages, newRoute.name];
|
|
43
51
|
}
|
|
44
52
|
else {
|
|
45
|
-
newRoute.target = newRoute.name;
|
|
53
|
+
newRoute.target = config.fcl ? [newRoute.name] : newRoute.name;
|
|
46
54
|
}
|
|
47
55
|
}
|
|
48
56
|
else {
|
|
49
|
-
newRoute.pattern = `${config.entity}
|
|
50
|
-
newRoute.target = newRoute.name;
|
|
57
|
+
newRoute.pattern = routes.length > 0 ? `${config.entity}:?query:` : ':?query:';
|
|
58
|
+
newRoute.target = config.fcl ? [newRoute.name] : newRoute.name;
|
|
51
59
|
}
|
|
52
60
|
routes.push(newRoute);
|
|
53
61
|
}
|
|
@@ -60,20 +68,29 @@ function updateRoutes(routes, config) {
|
|
|
60
68
|
* @returns {Promise<Editor>} the updated memfs editor instance
|
|
61
69
|
*/
|
|
62
70
|
function validateCustomPageConfig(basePath, config, fs) {
|
|
63
|
-
var _a, _b;
|
|
71
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
64
72
|
// common validators
|
|
65
|
-
|
|
73
|
+
validate_1.validateVersion(config.ui5Version);
|
|
66
74
|
if (!fs) {
|
|
67
|
-
fs =
|
|
75
|
+
fs = mem_fs_editor_1.create(mem_fs_1.create());
|
|
68
76
|
}
|
|
69
|
-
|
|
77
|
+
validate_1.validateBasePath(basePath, fs);
|
|
70
78
|
// validate config against the manifest
|
|
71
|
-
const manifest = fs.readJSON(
|
|
79
|
+
const manifest = fs.readJSON(path_1.join(basePath, 'webapp/manifest.json'));
|
|
72
80
|
if (config.navigation) {
|
|
73
|
-
if (!((_b = (_a = manifest['sap.ui5']) === null || _a === void 0 ? void 0 : _a.routing) === null || _b === void 0 ? void 0 : _b.targets[config.navigation.sourcePage])) {
|
|
81
|
+
if (!((_c = (_b = (_a = manifest['sap.ui5']) === null || _a === void 0 ? void 0 : _a.routing) === null || _b === void 0 ? void 0 : _b.targets) === null || _c === void 0 ? void 0 : _c[config.navigation.sourcePage])) {
|
|
74
82
|
throw new Error(`Could not find navigation source ${config.navigation.sourcePage}!`);
|
|
75
83
|
}
|
|
76
|
-
const
|
|
84
|
+
const routes = {};
|
|
85
|
+
if (((_f = (_e = (_d = manifest['sap.ui5']) === null || _d === void 0 ? void 0 : _d.routing) === null || _e === void 0 ? void 0 : _e.routes) === null || _f === void 0 ? void 0 : _f.constructor) === Array) {
|
|
86
|
+
manifest['sap.ui5'].routing.routes.forEach((routeWithName) => {
|
|
87
|
+
routes[routeWithName.name] = routeWithName;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
Object.assign(routes, (_j = (_h = (_g = manifest['sap.ui5']) === null || _g === void 0 ? void 0 : _g.routing) === null || _h === void 0 ? void 0 : _h.routes) !== null && _j !== void 0 ? _j : {});
|
|
92
|
+
}
|
|
93
|
+
const route = routes[(_k = config.navigation) === null || _k === void 0 ? void 0 : _k.sourcePage];
|
|
77
94
|
if (!route || !route.pattern || !route.target) {
|
|
78
95
|
throw new Error(`Missing or invalid routing configuration for navigation source ${config.navigation.sourcePage}!`);
|
|
79
96
|
}
|
|
@@ -91,25 +108,33 @@ exports.validateCustomPageConfig = validateCustomPageConfig;
|
|
|
91
108
|
*/
|
|
92
109
|
function generateCustomPage(basePath, data, fs) {
|
|
93
110
|
fs = validateCustomPageConfig(basePath, data, fs);
|
|
94
|
-
const manifestPath =
|
|
95
|
-
const config =
|
|
111
|
+
const manifestPath = path_1.join(basePath, 'webapp/manifest.json');
|
|
112
|
+
const config = defaults_1.enhanceData(data, manifestPath, fs);
|
|
96
113
|
// merge content into existing files
|
|
97
114
|
const root = getTemplateRoot(data.ui5Version);
|
|
98
115
|
// enhance manifest.json
|
|
99
|
-
fs.extendJSON(manifestPath, JSON.parse(
|
|
100
|
-
|
|
101
|
-
|
|
116
|
+
fs.extendJSON(manifestPath, JSON.parse(ejs_1.render(fs.read(path_1.join(root, `manifest.json`)), config)), (key, value) => {
|
|
117
|
+
var _a;
|
|
118
|
+
switch (key) {
|
|
119
|
+
case 'routing':
|
|
120
|
+
value.routes = (_a = value.routes) !== null && _a !== void 0 ? _a : [];
|
|
121
|
+
break;
|
|
122
|
+
case 'routes':
|
|
123
|
+
updateRoutes(value, config);
|
|
124
|
+
break;
|
|
125
|
+
default:
|
|
126
|
+
break;
|
|
102
127
|
}
|
|
103
128
|
return value;
|
|
104
129
|
});
|
|
105
130
|
// add extension content
|
|
106
|
-
const viewPath =
|
|
131
|
+
const viewPath = path_1.join(config.path, `${config.name}.view.xml`);
|
|
107
132
|
if (!fs.exists(viewPath)) {
|
|
108
|
-
fs.copyTpl(
|
|
133
|
+
fs.copyTpl(path_1.join(root, 'ext/View.xml'), viewPath, config);
|
|
109
134
|
}
|
|
110
|
-
const controllerPath =
|
|
135
|
+
const controllerPath = path_1.join(config.path, `${config.name}.controller.js`);
|
|
111
136
|
if (!fs.exists(controllerPath)) {
|
|
112
|
-
fs.copyTpl(
|
|
137
|
+
fs.copyTpl(path_1.join(root, 'ext/Controller.js'), controllerPath, config);
|
|
113
138
|
}
|
|
114
139
|
return fs;
|
|
115
140
|
}
|
package/dist/page/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/page/index.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,mCAAiD;AAEjD,iDAAuC;AACvC,6BAA6B;AAE7B,yCAAyC;AAEzC,iDAAuE;AAGvE;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,UAAmB;IAC/C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,IAAI,IAAI,EAAE;QAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/page/index.ts"],"names":[],"mappings":"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"}
|
package/dist/page/types.d.ts
CHANGED
|
@@ -1,15 +1,55 @@
|
|
|
1
1
|
import type { CustomElement, InternalCustomElement } from '../common/types';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration options for adding a custom page.
|
|
4
|
+
*/
|
|
2
5
|
export interface CustomPage extends CustomElement {
|
|
6
|
+
/**
|
|
7
|
+
* Name of the entity used for the custom page.
|
|
8
|
+
*/
|
|
3
9
|
entity: string;
|
|
10
|
+
/**
|
|
11
|
+
* Optional incoming navigation configuration. If provided then a navigation configuration is added to an existing page navigating to this custom page.
|
|
12
|
+
*/
|
|
4
13
|
navigation?: {
|
|
14
|
+
/**
|
|
15
|
+
* Source of the navigation to the custom page
|
|
16
|
+
*/
|
|
5
17
|
sourcePage: string;
|
|
18
|
+
/**
|
|
19
|
+
* Source entity that is use as the base part of the route
|
|
20
|
+
*/
|
|
6
21
|
sourceEntity: string;
|
|
22
|
+
/**
|
|
23
|
+
* Name of the navigation entity
|
|
24
|
+
*/
|
|
7
25
|
navEntity: string;
|
|
26
|
+
/**
|
|
27
|
+
* If set to true, then the generated route will point to a specific entity, otherwise, it will point to a list of the entities.
|
|
28
|
+
*/
|
|
29
|
+
navKey?: boolean;
|
|
8
30
|
};
|
|
31
|
+
/**
|
|
32
|
+
* Optional custom configuration for the generated view of the page.
|
|
33
|
+
*/
|
|
9
34
|
view?: {
|
|
35
|
+
/**
|
|
36
|
+
* Optional page title for the new page.
|
|
37
|
+
*/
|
|
10
38
|
title?: string;
|
|
11
|
-
path?: string;
|
|
12
39
|
};
|
|
13
40
|
}
|
|
14
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Additional internal configuration options that will be calculated based on the provided input as well as the target application.
|
|
43
|
+
*/
|
|
44
|
+
export declare type InternalCustomPage = CustomPage & InternalCustomElement & {
|
|
45
|
+
/**
|
|
46
|
+
* The FLC flag is calculated to true if the existing app is configured to use the flexible column layout
|
|
47
|
+
*/
|
|
48
|
+
fcl: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Represents the name of the control aggregation to be used for the custom page.
|
|
51
|
+
* This is only used if FCL is enabled and is calculated based on the optional sourcepage.
|
|
52
|
+
*/
|
|
53
|
+
controlAggregation?: 'beginColumnPages' | 'midColumnPages' | 'endColumnPages';
|
|
54
|
+
};
|
|
15
55
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/page/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/page/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC7C,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/page/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC7C;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE;QACT;;WAEG;QACH,UAAU,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,YAAY,EAAE,MAAM,CAAC;QAErB;;WAEG;QACH,SAAS,EAAE,MAAM,CAAC;QAElB;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF;;OAEG;IACH,IAAI,CAAC,EAAE;QACH;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED;;GAEG;AACH,oBAAY,kBAAkB,GAAG,UAAU,GACvC,qBAAqB,GAAG;IACpB;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC;IAEb;;;OAGG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;CACjF,CAAC"}
|
package/dist/section/index.js
CHANGED
|
@@ -20,7 +20,7 @@ function getManifestRoot(root, ui5Version) {
|
|
|
20
20
|
// Old
|
|
21
21
|
subFolder = '1.85';
|
|
22
22
|
}
|
|
23
|
-
return
|
|
23
|
+
return path_1.join(root, 'section', subFolder);
|
|
24
24
|
}
|
|
25
25
|
exports.getManifestRoot = getManifestRoot;
|
|
26
26
|
/**
|
|
@@ -33,13 +33,13 @@ exports.getManifestRoot = getManifestRoot;
|
|
|
33
33
|
*/
|
|
34
34
|
function enhanceConfig(data, manifestPath, manifest) {
|
|
35
35
|
const config = Object.assign({}, data);
|
|
36
|
-
|
|
36
|
+
defaults_1.setCommonDefaults(config, manifestPath, manifest);
|
|
37
37
|
// set default event handler if it is to be created
|
|
38
38
|
if (config.eventHandler === true) {
|
|
39
39
|
config.eventHandler = `${config.ns}.${config.name}.onPress`;
|
|
40
40
|
}
|
|
41
41
|
// generate section content
|
|
42
|
-
config.content = config.control ||
|
|
42
|
+
config.content = config.control || defaults_1.getDefaultFragmentContent(config.name, config.eventHandler);
|
|
43
43
|
return config;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
@@ -51,31 +51,31 @@ function enhanceConfig(data, manifestPath, manifest) {
|
|
|
51
51
|
* @returns {Promise<Editor>} the updated mem-fs editor instance
|
|
52
52
|
*/
|
|
53
53
|
function generateCustomSection(basePath, customSection, fs) {
|
|
54
|
-
|
|
54
|
+
validate_1.validateVersion(customSection.ui5Version);
|
|
55
55
|
if (!fs) {
|
|
56
|
-
fs =
|
|
56
|
+
fs = mem_fs_editor_1.create(mem_fs_1.create());
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
const manifestPath =
|
|
58
|
+
validate_1.validateBasePath(basePath, fs);
|
|
59
|
+
const manifestPath = path_1.join(basePath, 'webapp/manifest.json');
|
|
60
60
|
const manifest = fs.readJSON(manifestPath);
|
|
61
|
-
const root =
|
|
61
|
+
const root = path_1.join(__dirname, '../../templates');
|
|
62
62
|
// merge with defaults
|
|
63
63
|
const completeSection = enhanceConfig(customSection, manifestPath, manifest);
|
|
64
64
|
// add event handler if requested
|
|
65
65
|
if (completeSection.eventHandler) {
|
|
66
|
-
const controllerPath =
|
|
66
|
+
const controllerPath = path_1.join(completeSection.path, `${completeSection.name}.js`);
|
|
67
67
|
if (!fs.exists(controllerPath)) {
|
|
68
|
-
fs.copyTpl(
|
|
68
|
+
fs.copyTpl(path_1.join(root, 'common/EventHandler.js'), controllerPath, completeSection);
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
// enhance manifest with section definition
|
|
72
72
|
const manifestRoot = getManifestRoot(root, customSection.ui5Version);
|
|
73
|
-
const filledTemplate =
|
|
73
|
+
const filledTemplate = ejs_1.render(fs.read(path_1.join(manifestRoot, `manifest.json`)), completeSection);
|
|
74
74
|
fs.extendJSON(manifestPath, JSON.parse(filledTemplate));
|
|
75
75
|
// add fragment
|
|
76
|
-
const viewPath =
|
|
76
|
+
const viewPath = path_1.join(completeSection.path, `${completeSection.name}.fragment.xml`);
|
|
77
77
|
if (!fs.exists(viewPath)) {
|
|
78
|
-
fs.copyTpl(
|
|
78
|
+
fs.copyTpl(path_1.join(root, 'common/Fragment.xml'), viewPath, completeSection);
|
|
79
79
|
}
|
|
80
80
|
return fs;
|
|
81
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/section/index.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,iDAAuC;AAEvC,+BAA4B;AAC5B,6BAA6B;AAC7B,iDAAuE;AAEvE,iDAAkF;AAElF;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,IAAY,EAAE,UAAmB;IAC7D,IAAI,SAAS,GAAG,MAAM,CAAC;IACvB,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,GAAG,IAAI,EAAE;QAC/C,MAAM;QACN,SAAS,GAAG,MAAM,CAAC;KACtB;IACD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/section/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sap-ux/fe-fpm-writer",
|
|
3
3
|
"description": "SAP Fiori elements flexible programming model writer",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.6.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/SAP/open-ux-tools.git",
|
|
@@ -21,10 +21,12 @@
|
|
|
21
21
|
"ejs": "3.1.6",
|
|
22
22
|
"mem-fs": "2.1.0",
|
|
23
23
|
"mem-fs-editor": "9.3.0",
|
|
24
|
-
"xml-js": "1.6.11"
|
|
24
|
+
"xml-js": "1.6.11",
|
|
25
|
+
"semver": "7.3.5"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
|
-
"@types/ejs": "3.1.0"
|
|
28
|
+
"@types/ejs": "3.1.0",
|
|
29
|
+
"@sap-ux/ui5-config": "0.13.1"
|
|
28
30
|
},
|
|
29
31
|
"engines": {
|
|
30
32
|
"pnpm": ">=6.26.1",
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
sap.ui.define(
|
|
2
|
+
[
|
|
3
|
+
"sap/fe/core/AppComponent"
|
|
4
|
+
],
|
|
5
|
+
function(AppComponent) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
return AppComponent.extend("<%- id %>.Component", {
|
|
9
|
+
metadata: {
|
|
10
|
+
manifest: "json"
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The component is initialized by UI5 automatically during the startup of the app and calls the init method once.
|
|
15
|
+
* @public
|
|
16
|
+
* @override
|
|
17
|
+
*/
|
|
18
|
+
//init: function() {
|
|
19
|
+
// AppComponent.prototype.init.apply(this, arguments);
|
|
20
|
+
//}
|
|
21
|
+
});
|
|
22
|
+
});
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
"targets": {
|
|
5
5
|
"<%- entity %><%- name %>": {
|
|
6
6
|
"viewId": "<%- name %>View",
|
|
7
|
-
"viewName": "<%- ns %>.<%- name %>"
|
|
7
|
+
"viewName": "<%- ns %>.<%- name %>",<%if (locals.controlAggregation) {%>
|
|
8
|
+
"controlAggregation": "<%- locals.controlAggregation %>",<% } %>
|
|
8
9
|
"options": {
|
|
9
10
|
"settings": {
|
|
10
11
|
"entitySet": "<%- entity %>",
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
"<%- entity %><%- name %>": {
|
|
6
6
|
"type": "Component",
|
|
7
7
|
"id": "<%- entity %><%- name %>",
|
|
8
|
-
"name": "sap.fe.core.fpm"
|
|
8
|
+
"name": "sap.fe.core.fpm",<%if (locals.controlAggregation) {%>
|
|
9
|
+
"controlAggregation": "<%- locals.controlAggregation %>",<% } %>
|
|
9
10
|
"options": {
|
|
10
11
|
"settings": {
|
|
11
12
|
"viewName": "<%- ns %>.<%- name %>",
|