@sap-ux/fe-fpm-writer 0.5.4 → 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.
@@ -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,4 +1,5 @@
1
1
  import type { CustomElement, InternalCustomElement, Manifest } from './types';
2
+ export declare const FCL_ROUTER = "sap.f.routing.Router";
2
3
  /**
3
4
  * Sets the common default values for all custom elements.
4
5
  *
@@ -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"}
@@ -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
  *
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/common/defaults.ts"],"names":[],"mappings":";;;AACA,+BAAqC;AAErC;;;;;;;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"}
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/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
@@ -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;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAK9D;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,kBAAkB,CAalG"}
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"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.enhanceData = void 0;
4
4
  const defaults_1 = require("../common/defaults");
5
- const FCL_ROUTER = 'sap.f.routing.Router';
6
5
  /**
7
6
  * Enhances the provided custom page configuration with default data.
8
7
  *
@@ -12,11 +11,22 @@ const FCL_ROUTER = 'sap.f.routing.Router';
12
11
  * @returns enhanced configuration
13
12
  */
14
13
  function enhanceData(data, manifestPath, fs) {
15
- var _a, _b, _c;
14
+ var _a, _b, _c, _d, _e, _f;
16
15
  const manifest = fs.readJSON(manifestPath);
17
16
  // set common defaults
18
17
  const config = defaults_1.setCommonDefaults(data, manifestPath, manifest);
19
- config.fcl = ((_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) === FCL_ROUTER;
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
+ }
20
30
  if (config.view === undefined) {
21
31
  config.view = {
22
32
  title: config.name
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/page/defaults.ts"],"names":[],"mappings":";;;AAIA,iDAAuD;AAEvD,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC1C;;;;;;;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,MAAM,CAAC,GAAG,GAAG,mBAAA,QAAQ,CAAC,SAAS,CAAC,0CAAE,OAAO,0CAAE,MAAM,0CAAE,WAAW,MAAK,UAAU,CAAC;IAC9E,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;AAbD,kCAaC"}
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"}
@@ -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;AAkCD;;;;;;;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"}
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"}
@@ -35,7 +35,12 @@ function updateRoutes(routes, config) {
35
35
  };
36
36
  if (config.navigation) {
37
37
  const sourceRoute = routes.find((route) => { var _a; return route.name === ((_a = config.navigation) === null || _a === void 0 ? void 0 : _a.sourcePage); });
38
- newRoute.pattern = `${(_a = sourceRoute === null || sourceRoute === void 0 ? void 0 : sourceRoute.pattern) === null || _a === void 0 ? void 0 : _a.replace(':?query:', '')}/${config.navigation.navEntity}({${config.navigation.navEntity}Key}):?query:`;
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:`;
39
44
  if (((_b = sourceRoute === null || sourceRoute === void 0 ? void 0 : sourceRoute.target) === null || _b === void 0 ? void 0 : _b.constructor) === Array) {
40
45
  const pages = sourceRoute.target;
41
46
  // FCL only supports 3 columns, therefore, show the page in fullscreen if it is the 4th level of navigation
@@ -49,7 +54,7 @@ function updateRoutes(routes, config) {
49
54
  }
50
55
  }
51
56
  else {
52
- newRoute.pattern = `${config.entity}({key}):?query:`;
57
+ newRoute.pattern = routes.length > 0 ? `${config.entity}:?query:` : ':?query:';
53
58
  newRoute.target = config.fcl ? [newRoute.name] : newRoute.name;
54
59
  }
55
60
  routes.push(newRoute);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/page/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/page/index.ts"],"names":[],"mappings":"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"}
@@ -1,17 +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
  }
41
+ /**
42
+ * Additional internal configuration options that will be calculated based on the provided input as well as the target application.
43
+ */
14
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
+ */
15
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';
16
54
  };
17
55
  //# sourceMappingURL=types.d.ts.map
@@ -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;IACf,UAAU,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,IAAI,CAAC,EAAE;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,oBAAY,kBAAkB,GAAG,UAAU,GACvC,qBAAqB,GAAG;IACpB,GAAG,EAAE,OAAO,CAAC;CAChB,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/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.5.4",
4
+ "version": "0.6.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/SAP/open-ux-tools.git",
@@ -21,7 +21,8 @@
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
28
  "@types/ejs": "3.1.0",
@@ -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 %>",