@sap/ux-specification 1.84.111 → 1.84.113
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 +35 -0
- package/dist/documentation/v2/v2-AnalyticalListPage.html +2 -2
- package/dist/documentation/v2/v2-ApplicationV2.html +2 -2
- package/dist/documentation/v2/v2-ListReport.html +2 -2
- package/dist/documentation/v2/v2-ObjectPage.html +2 -2
- package/dist/documentation/v2/v2-OverviewPage.html +2 -2
- package/dist/documentation/v4/v4-ApplicationV4.html +2 -2
- package/dist/documentation/v4/v4-ListReport.html +2 -2
- package/dist/documentation/v4/v4-ObjectPage.html +2 -2
- package/dist/index-min.js +21 -21
- package/dist/index-min.js.map +3 -3
- package/dist/specification/package.json +3 -3
- package/dist/specification/src/sync/common/dist_tag.json +17 -2
- package/dist/specification/src/sync/common/generate/utils.d.ts +7 -0
- package/dist/specification/src/sync/common/generate/utils.d.ts.map +1 -1
- package/dist/specification/src/sync/common/generate/utils.js +17 -0
- package/dist/specification/src/sync/common/generate/utils.js.map +1 -1
- package/dist/specification/src/sync/common/i18n.json +2 -1
- package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts +72 -0
- package/dist/specification/src/sync/v2/export/exportPageGeneric.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js +307 -0
- package/dist/specification/src/sync/v2/export/exportPageGeneric.js.map +1 -0
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts +1 -10
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.d.ts.map +1 -1
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js +3 -57
- package/dist/specification/src/sync/v2/generate/schemaAdaptation.js.map +1 -1
- package/dist/specification/src/sync/v2/import/importPage.d.ts +56 -0
- package/dist/specification/src/sync/v2/import/importPage.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/import/importPage.js +280 -0
- package/dist/specification/src/sync/v2/import/importPage.js.map +1 -0
- package/dist/specification/src/sync/v2/utils.d.ts +34 -0
- package/dist/specification/src/sync/v2/utils.d.ts.map +1 -0
- package/dist/specification/src/sync/v2/utils.js +74 -0
- package/dist/specification/src/sync/v2/utils.js.map +1 -0
- package/dist/specification/src/sync/v4/generate/listReport.d.ts.map +1 -1
- package/dist/specification/src/sync/v4/generate/listReport.js +8 -2
- package/dist/specification/src/sync/v4/generate/listReport.js.map +1 -1
- package/dist/types/src/common/types.d.ts +5 -1
- package/dist/types/src/common/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -2,20 +2,11 @@
|
|
|
2
2
|
* This file provides a function that generically creates a page specific schema out of a generic schema for a page
|
|
3
3
|
* of a FE v2 app (function getAdaptedSchema).
|
|
4
4
|
* In addition to that it exposes some generic helper functions that can be used to configure the generation process.
|
|
5
|
-
* Unit tests for this class are located in test.unit.genericSchemaHandling.schemaAdaptation.test.ts
|
|
5
|
+
* Unit tests for this class are located in test.unit.genericSchemaHandling.schemaAdaptation.test.ts.
|
|
6
6
|
*/
|
|
7
7
|
import type { Definition } from 'typescript-json-schema';
|
|
8
8
|
import type { AccessorPath, ExtensionLogger, FileData, Manifest } from '@sap/ux-specification-types';
|
|
9
9
|
import type { SyncRuleProvider } from '@sap/ux-specification-types/src';
|
|
10
|
-
/**
|
|
11
|
-
* Get the path inside the manifest to the definition of a specific page.
|
|
12
|
-
*
|
|
13
|
-
* @param pagePath - path to the page as described in option b) of type AccessorPath
|
|
14
|
-
* @param toSettings - If this property is true the path to the settings object of the specified page definition is returned (this is actually the sub-object containing the most meaningful information)
|
|
15
|
-
* @param suffix - can be used to create a path that points to an even deeper sub-object
|
|
16
|
-
* @returns the specified path as described in option a) of type AccessorPath
|
|
17
|
-
*/
|
|
18
|
-
export declare function getManifestPathFromPagePath(pagePath: AccessorPath, toSettings?: boolean, suffix?: AccessorPath): AccessorPath;
|
|
19
10
|
/**
|
|
20
11
|
* An instance of this type describes a page within an FE v2 app. It also includes all artifacts that are needed to build the schema for that page.
|
|
21
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaAdaptation.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/schemaAdaptation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,wBAAwB,CAAC;AAG9E,OAAO,KAAK,EACR,YAAY,EACZ,eAAe,EACf,QAAQ,EAER,QAAQ,EAEX,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAIR,gBAAgB,EACnB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"schemaAdaptation.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/schemaAdaptation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,wBAAwB,CAAC;AAG9E,OAAO,KAAK,EACR,YAAY,EACZ,eAAe,EACf,QAAQ,EAER,QAAQ,EAEX,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAIR,gBAAgB,EACnB,MAAM,iCAAiC,CAAC;AAoVzC;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,QAAQ,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACvC,aAAa,EAAE,UAAU,CAAC;IAC1B,gBAAgB,EAAE,gBAAgB,CAAC;CACtC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,4BAA4B,GAAG,SAAS,CAAC;AAE5G;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,QAAQ,EAClB,oBAAoB,EAAE,yBAAyB,EAC/C,MAAM,CAAC,EAAE,eAAe,GACzB,UAAU,CAyEZ"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getManifestPathFromPagePath = getManifestPathFromPagePath;
|
|
4
3
|
exports.getAdaptedSchema = getAdaptedSchema;
|
|
5
4
|
const common_1 = require("../../common");
|
|
6
5
|
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
7
6
|
const decorators_1 = require("../../common/decoration/decorators");
|
|
8
7
|
const utils_1 = require("./utils");
|
|
8
|
+
const utils_2 = require("../utils");
|
|
9
9
|
const i18n_1 = require("../../../i18n/i18n");
|
|
10
10
|
/**
|
|
11
11
|
* Checks whether a schema element contains an anyOf-property. If yes, all types directly or indirectly referred by one of the
|
|
@@ -258,60 +258,6 @@ function adjustElement(generateParameters, params, syncRuleProvider, element, gl
|
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
|
-
/**
|
|
262
|
-
* Get the path inside the manifest to the definition of a specific page.
|
|
263
|
-
*
|
|
264
|
-
* @param pagePath - path to the page as described in option b) of type AccessorPath
|
|
265
|
-
* @param toSettings - If this property is true the path to the settings object of the specified page definition is returned (this is actually the sub-object containing the most meaningful information)
|
|
266
|
-
* @param suffix - can be used to create a path that points to an even deeper sub-object
|
|
267
|
-
* @returns the specified path as described in option a) of type AccessorPath
|
|
268
|
-
*/
|
|
269
|
-
function getManifestPathFromPagePath(pagePath, toSettings = true, suffix = []) {
|
|
270
|
-
const manifestPath = [ux_specification_types_1.ManifestSection.generic];
|
|
271
|
-
pagePath.forEach(function (page) {
|
|
272
|
-
manifestPath.push('pages');
|
|
273
|
-
manifestPath.push(page);
|
|
274
|
-
});
|
|
275
|
-
if (toSettings) {
|
|
276
|
-
manifestPath.push('component');
|
|
277
|
-
manifestPath.push('settings');
|
|
278
|
-
}
|
|
279
|
-
return manifestPath.concat(suffix);
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* Helper function to extract information from the manifest.
|
|
283
|
-
*
|
|
284
|
-
* @param manifest - the manifest containing the information
|
|
285
|
-
* @param manifestPath - pointer to the object in the manifest containing the property to be checked
|
|
286
|
-
* @param property - the property below the specified path that should be extracted. If it is faulty, no value will be extracted.
|
|
287
|
-
* @returns - hasPath: information whether the specified path can be followed in the manifest and the target is an object (which is not null)
|
|
288
|
-
* - value: The value of the specified property if the path can be followed and the corresponding object possesses the specified property, otherwise undefined
|
|
289
|
-
* - parent: the not-null object found at the specified path (parent object of the property), otherwise undefined. Note that modifying the properties of this object will also change manifest.
|
|
290
|
-
*/
|
|
291
|
-
function getManifestPropertyByPath(manifest, manifestPath, property) {
|
|
292
|
-
let manifestSection = manifest; // Current position in the manifest when stepping down
|
|
293
|
-
const hasPath =
|
|
294
|
-
// Traverse down the manifest (in manifestSection) step by step along the specified path
|
|
295
|
-
manifestPath.every(function (accessor) {
|
|
296
|
-
if (!manifestSection ||
|
|
297
|
-
typeof manifestSection !== 'object' ||
|
|
298
|
-
(Array.isArray(manifestSection) && typeof accessor !== 'number')) {
|
|
299
|
-
// In order to perform another step down our current position must be a (not-null) object.
|
|
300
|
-
// If this is even an array we only accept numbers as accessors.
|
|
301
|
-
// When this condition is not fulfilled, we stop stepping down.
|
|
302
|
-
return false;
|
|
303
|
-
}
|
|
304
|
-
manifestSection = manifestSection[accessor]; // execute the step down
|
|
305
|
-
return true;
|
|
306
|
-
}) &&
|
|
307
|
-
typeof manifestSection === 'object' &&
|
|
308
|
-
manifestSection !== null; // Finally check whether we still have reached a not-null object
|
|
309
|
-
return {
|
|
310
|
-
hasPath,
|
|
311
|
-
value: hasPath && property ? manifestSection[property] : undefined,
|
|
312
|
-
parent: hasPath ? manifestSection : undefined
|
|
313
|
-
};
|
|
314
|
-
}
|
|
315
261
|
/**
|
|
316
262
|
* This function replicates the logic of function fnDetermineViewId in TemplateComponent of FE coding.
|
|
317
263
|
* It determines the id of the view that contains one page of an FE app.
|
|
@@ -349,8 +295,8 @@ function getAdaptedSchema(pageSpec, getGenericSchemaInfo, logger) {
|
|
|
349
295
|
if (!templateType || templateType === ux_specification_types_1.TemplateType.OverviewPageV2) {
|
|
350
296
|
return; // not supported (yet)
|
|
351
297
|
}
|
|
352
|
-
const manifestPath = getManifestPathFromPagePath(pageSpec.pagePath, false);
|
|
353
|
-
const { parent: pageDefinition } = getManifestPropertyByPath(pageSpec.manifest, manifestPath);
|
|
298
|
+
const manifestPath = (0, utils_2.getManifestPathFromPagePath)(pageSpec.pagePath, false);
|
|
299
|
+
const { parent: pageDefinition } = (0, utils_2.getManifestPropertyByPath)(pageSpec.manifest, manifestPath);
|
|
354
300
|
if (!pageDefinition) {
|
|
355
301
|
return; // no page definition found at the specified path
|
|
356
302
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaAdaptation.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/schemaAdaptation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemaAdaptation.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/generate/schemaAdaptation.ts"],"names":[],"mappings":";;AA6ZA,4CA6EC;AAneD,yCAAmH;AACnH,wEAA4F;AAe5F,mEAAgG;AAChG,mCAA+C;AAC/C,oCAAkF;AAClF,6CAA8C;AAkB9C;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,OAAmB,EAAE,WAAwB;IAC1E,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,YAAY;YACxC,2BAA2B,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,OAAmB;IACtC,OAAO,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;AACzG,CAAC;AAED;;;;;;GAMG;AACH,SAAS,2BAA2B,CAAC,OAAwC,EAAE,WAAwB;IACnG,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,iDAAiD;QACjD,OAAO;IACX,CAAC;IACD,uDAAuD;IACvD,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,EAAE,CAAC;QACV,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;IACD,uBAAuB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9C,2BAA2B,CAAC,OAAO,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACvE,uEAAuE;IACvE,2BAA2B,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,IAAY,EAAE,WAAwB;IACpE,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,2BAA2B,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;IAC7C,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,2BAA2B,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9G,CAAC;SAAM,CAAC;QACJ,2BAA2B,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IACD,2BAA2B,CAAC,cAAc,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,4BAA4B,CACjC,cAA0C,EAC1C,OAAwC,EACxC,kBAA+C,EAC/C,MAA4B,EAC5B,WAAwB;IAExB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,iDAAiD;QACjD,OAAO;IACX,CAAC;IACD,oDAAoD;IACpD,aAAa;IACb,kEAAkE;IAClE,wCAAwC;IACxC,MAAM,OAAO,GAAG,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,EAAE,CAAC;QACV,SAAS;QACT,mGAAmG;QACnG,iIAAiI;QACjI,IAAI,iBAAiB,GAAe,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,gDAAgD;YAChD,iBAAiB,GAAG,cAAc,EAAE,iBAAiB,CAAC;YACtD,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC;QACnD,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,oBAAgC,CAAC;YACrC,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;gBACxB,qGAAqG;gBACrG,iDAAiD;gBACjD,MAAM,gBAAgB,GAAG,GAAG,OAAO,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;gBAChE,OAAO,CAAC,IAAI,GAAG,IAAA,0BAAiB,EAAC,gBAAgB,CAAC,CAAC;gBACnD,oBAAoB,GAAG,eAAe,CAAC,iBAAiB,CAAC,CAAC;gBAC1D,yDAAyD;gBACzD,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,oBAAoB,CAAC;gBAC3D,uFAAuF;gBACvF,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACJ,yCAAyC;gBACzC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC3C,oBAAoB,GAAG,iBAAiB,CAAC;YAC7C,CAAC;YACD,MAAM,SAAS,GAAG;gBACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,cAAc,EAAE,cAAc,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc;aACzE,CAAC;YACF,wCAAwC;YACxC,aAAa,CACT,kBAAkB,EAClB,SAAS,EACT,cAAc,CAAC,gBAAgB,EAC/B,oBAAoB,EACpB,WAAW,CACd,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,wFAAwF;YACxF,gLAAgL;YAChL,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,yDAAyD;QACzD,aAAa,CAAC,kBAAkB,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACtG,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,sBAAsB,CAC3B,kBAA+C,EAC/C,MAA4B,EAC5B,OAAmB,EACnB,QAAmB;IAEnB,MAAM,OAAO,GAAG,QAAQ,EAAE,cAAc,CAAC;IACzC,0HAA0H;IAC1H,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,aAAa,CAClB,kBAA+C,EAC/C,MAA4B,EAC5B,gBAAkC,EAClC,OAAmB,EACnB,WAAwB;IAExB,mEAAmE;IACnE,MAAM,eAAe,GAAG,IAAA,mCAAsB,EAAC,gBAAgB,CAAC,CAAC;IACjE,MAAM,qBAAqB,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;IAC3G,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACzB,2DAA2D;QAC3D,mJAAmJ;QACnJ,OAAO;IACX,CAAC;IACD,8FAA8F;IAC9F,0EAA0E;IAC1E,4BAA4B,CACxB,qBAAqB,CAAC,8BAA8B,EACpD,OAAO,CAAC,oBAAoB,EAC5B,kBAAkB,EAClB,MAAM,EACN,WAAW,CACd,CAAC;IACF,4GAA4G;IAC5G,MAAM,aAAa,GAAG;QAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,cAAc,EAAE,qBAAqB,CAAC,mBAAmB,EAAE,cAAc,IAAI,MAAM,CAAC,cAAc;KACrG,CAAC;IACF,uFAAuF;IACvF,yIAAyI;IACzI,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,0GAA0G;IAC/I,IAAI,kBAA0B,CAAC,CAAC,mFAAmF;IACnH,IAAI,UAAU,EAAE,CAAC;QACb,kBAAkB,GAAG,UAAU,CAAC;IACpC,CAAC;SAAM,CAAC;QACJ,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACR,UAAU,GAAG;gBACT,KAAK;aACR,CAAC;YACF,kBAAkB,GAAG,OAAO,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,oCAAoC;YACpC,OAAO;QACX,CAAC;IACL,CAAC;IACD,8CAA8C;IAC9C,6FAA6F;IAC7F,gHAAgH;IAChH,yFAAyF;IACzF,IAAI,wBAAgC,CAAC,CAAC,kIAAkI;IACxK,MAAM,sBAAsB,GACxB,qBAAqB,CAAC,mBAAmB,EAAE,sBAAsB,IAAI,mBAAmB;QACxF,UAAU,QAAgB,EAAE,OAAmB;YAC3C,kBAAkB;YAClB,wBAAwB,GAAG,wBAAwB,IAAI,CAAC,gBAAgB,IAAI,IAAI,gBAAgB,EAAE,CAAC,CAAC;YACpG,MAAM,QAAQ,GAAG,IAAA,+BAAkB,EAAC,wBAAwB,EAAE,QAAQ,CAAC,CAAC;YACxE,MAAM,cAAc,GAAG,sBAAsB,CAAC,kBAAkB,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpG,OAAO,cAAc,CAAC;QAC1B,CAAC,CAAC;IACN,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YAClC,8IAA8I;YAC9I,kBAAkB,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;YAC3C,SAAS;QACb,CAAC;QACD,MAAM,YAAY,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,gDAAgD;QACzF,mJAAmJ;QACnJ,MAAM,cAAc,GAAG,sBAAsB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACtE,IAAI,cAAc,EAAE,CAAC;YACjB,yJAAyJ;YACzJ,sCAAsC;YACtC,IAAI,cAAc,CAAC,SAAS,EAAE,CAAC;gBAC3B,YAAY,CAAC,kCAAS,CAAC,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,sFAAsF;YAC3L,CAAC;iBAAM,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;gBACrC,YAAY,CAAC,kCAAS,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;gBAClD,YAAY,CAAC,kCAAS,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC;YACvE,CAAC;YACD,uBAAuB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;YACnD,0GAA0G;YAC1G,4BAA4B,CACxB,cAAc,CAAC,mBAAmB,EAClC,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,WAAW,CACd,CAAC;YACF,wEAAwE;YACxE,4FAA4F;YAC5F,4BAA4B,CACxB,cAAc,CAAC,8BAA8B,EAC7C,YAAY,CAAC,oBAAoB,EACjC,kBAAkB,EAClB,aAAa,EACb,WAAW,CACd,CAAC;YACF,+GAA+G;YAC/G,uHAAuH;YACvH,4BAA4B,CACxB,cAAc,CAAC,eAAe,EAC9B,aAAa,CAAC,YAAY,CAAC,EAC3B,kBAAkB,EAClB,aAAa,EACb,WAAW,CACd,CAAC;YACF,8EAA8E;YAC9E,kBAAkB,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;QAChD,CAAC;aAAM,CAAC;YACJ,kFAAkF;YAClF,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,KAAa,EAAE,aAAqB,EAAE,SAAiB;IACtE,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClE,mIAAmI;IACnI,MAAM,YAAY,GACd,aAAa,GAAG,QAAQ,GAAG,CAAC,iBAAiB,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACpG,OAAO,GAAG,KAAK,KAAK,YAAY,KAAK,SAAS,EAAE,CAAC;AACrD,CAAC;AAwCD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,gBAAgB,CAC5B,QAAkB,EAClB,oBAA+C,EAC/C,MAAwB;IAExB,IAAA,eAAQ,GAAE,CAAC,CAAC,4DAA4D;IACxE,MAAM,YAAY,GAAG,IAAA,oCAA2B,EAAC,QAAQ,CAAC,QAAQ,EAAE,6CAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACrG,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,qCAAY,CAAC,cAAc,EAAE,CAAC;QAChE,OAAO,CAAC,sBAAsB;IAClC,CAAC;IACD,MAAM,YAAY,GAAG,IAAA,mCAA2B,EAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3E,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,iCAAyB,EAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC9F,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,OAAO,CAAC,iDAAiD;IAC7D,CAAC;IACD,0FAA0F;IAC1F,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IACpD,IACI,IAAA,4BAAoB,EAAC,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC;QACzE,IAAA,4BAAoB,EAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EACvE,CAAC;QACC,OAAO,CAAC,8BAA8B;IAC1C,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAW,CAAC,CAAC,qBAAqB;IAC9E,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAW,CAAC,CAAC,qBAAqB;IAC9E,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,oBAAoB,EAAE,aAAa,CAAC;IAC1D,MAAM,gBAAgB,GAAG,oBAAoB,EAAE,gBAAgB,CAAC;IAChE,IAAI,CAAC,gBAAgB,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,OAAO,aAAa,CAAC,CAAC,yBAAyB;IACnD,CAAC;IACD,MAAM,UAAU,GAAG,IAAA,gCAAuB,EAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,mBAAmB,GAAG,UAAU,CAAC,UAAU,EAAE,IAAI,CACnD,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,KAAK,SAAS,CAClE,CAAC;IACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACvB,OAAO,aAAa,CAAC,CAAC,gEAAgE;IAC1F,CAAC;IACD,0IAA0I;IAC1I,MAAM,QAAQ,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG;QACb,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,aAAa;QACb,SAAS;QACT,SAAS;QACT,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC9B,CAAC;IACF,MAAM,MAAM,GAAG;QACX,QAAQ;KACX,CAAC;IACF,MAAM,kBAAkB,GAAG;QACvB,YAAY;QACZ,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU;QACV,oBAAoB,EAAE,6CAAoB,CAAC,EAAE;QAC7C,SAAS,EAAE,mBAAmB;QAC9B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM;QACN,UAAU,EAAE,mBAAmB,CAAC,UAAU;KAC7C,CAAC;IAEF,MAAM,WAAW,GAAG;QAChB,KAAK,EAAE,QAAQ,CAAC,WAA4C,EAAE,4DAA4D;QAC1H,iBAAiB,EAAE,IAAI,GAAG,EAAU;KACvC,CAAC;IACF,qDAAqD;IACrD,iJAAiJ;IACjJ,aAAa,CAAC,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACnF,qFAAqF;IACrF,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,OAAO,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file provides a function that generically creates the config for a page of a FE v2 app (function getConfigForPage).
|
|
3
|
+
* This process is also called 'import'.
|
|
4
|
+
* Thereby, the page specific schema for this page is heavily used. It is assumed that this schema was generated using
|
|
5
|
+
* the tools provided in file ../generate/schemaAdaptation.ts.
|
|
6
|
+
* Unit tests for this class are located in test.unit.genericSchemaHandling.importPage.test.ts.
|
|
7
|
+
*/
|
|
8
|
+
import type { AccessorPath, CommonImportParameters } from '@sap/ux-specification-types';
|
|
9
|
+
/**
|
|
10
|
+
* An instance of this type gives type information for a property in a type from a schema of a page.
|
|
11
|
+
*
|
|
12
|
+
* @property propertyName - the name of the property
|
|
13
|
+
* @property propertyType - name of the global type of the property as defined in the generic schema of the page which is currently processed.
|
|
14
|
+
*/
|
|
15
|
+
export type PropertyTypeInfo = {
|
|
16
|
+
propertyName: string;
|
|
17
|
+
propertyType: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* An instance of this type provides empty instances for a specified property within a config of a given page type.
|
|
21
|
+
*
|
|
22
|
+
* @param propertyTypePath - a path of property specifications that leads from the root of a config to the specified property. An empty array
|
|
23
|
+
* indicates that an empty instance of the config itself should be returned.
|
|
24
|
+
* @returns a new (empty) instance for the specified property. Note: If the path is not empty the type name contained in the
|
|
25
|
+
* last entry of propertyTypePath will normally already provide sufficient type information to create this instance. All other information is
|
|
26
|
+
* only provided for completeness. If the path is empty, the type information of the instance to be created anyway must be derived from the
|
|
27
|
+
* type of the page currently processed.
|
|
28
|
+
*/
|
|
29
|
+
export type PropertyInstanceProvider = (propertyTypePath: PropertyTypeInfo[]) => object;
|
|
30
|
+
/**
|
|
31
|
+
* An instance of this type contains the type information that is needed for creating the config for a given page type (in addition to the specific schema).
|
|
32
|
+
*
|
|
33
|
+
* @property propertyInstanceProvider - provides empty instances of the config and its child objects on demand
|
|
34
|
+
*/
|
|
35
|
+
export type ImportConfigInfo = {
|
|
36
|
+
propertyInstanceProvider: PropertyInstanceProvider;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* An instance of this type provides instances of ImportConfigInfo based on the FE component name for the page type to be processed.
|
|
40
|
+
*
|
|
41
|
+
* @param componentName - fully qualified name of the FE v2 component that specifies the page type
|
|
42
|
+
* @returns the ImportConfigInfo to be used to execute an import for any page of the specified page type
|
|
43
|
+
*/
|
|
44
|
+
export type ImportConfigInfoProvider = (componentName: string) => ImportConfigInfo | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* This function creates and returns a config for a page of an FE v2 app (executes the 'import').
|
|
47
|
+
*
|
|
48
|
+
* @param importParameters - required information from the app
|
|
49
|
+
* @param pagePath - specifies the page within the app. Note that importParameters.jsonSchema must be
|
|
50
|
+
* consistent with this path. That means that this schema must be the schema that is generated by getAdaptedSchema
|
|
51
|
+
* in schemaAdaptation.ts for this page. This function does not check this consistency.
|
|
52
|
+
* @param getConfigInfo - a function that can provide the ImportConfigInfo to be used for the specified page type
|
|
53
|
+
* @returns the (filled) config for the specified page
|
|
54
|
+
*/
|
|
55
|
+
export declare function getConfigForPage(importParameters: CommonImportParameters, pagePath: AccessorPath, getConfigInfo: ImportConfigInfoProvider): object;
|
|
56
|
+
//# sourceMappingURL=importPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importPage.d.ts","sourceRoot":"","sources":["../../../../../../src/sync/v2/import/importPage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAkC,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAsCxH;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,MAAM,CAAC;AAExF;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,wBAAwB,EAAE,wBAAwB,CAAC;CACtD,CAAC;AAuUF;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;AAE/F;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC5B,gBAAgB,EAAE,sBAAsB,EACxC,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,wBAAwB,GACxC,MAAM,CA8BR"}
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConfigForPage = getConfigForPage;
|
|
4
|
+
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
5
|
+
const common_1 = require("../../common");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
/**
|
|
8
|
+
* This function provides the flex changes contained in the parameters passed to the import process in a way that can be more easily consumed
|
|
9
|
+
* by that process.
|
|
10
|
+
*
|
|
11
|
+
* @param importParameters the parameters of an import process
|
|
12
|
+
* @returns the flex changes contained in the import parameters in a format that can be easily consumed
|
|
13
|
+
*/
|
|
14
|
+
function getChangeMapFormImportParameters(importParameters) {
|
|
15
|
+
const changeMap = {}; // The object to be returned, will be filled one by one
|
|
16
|
+
const changeStrings = importParameters.flex;
|
|
17
|
+
changeStrings.forEach(function (changeString) {
|
|
18
|
+
const deserializedChangeString = (0, common_1.parseChangeString)(changeString);
|
|
19
|
+
if (deserializedChangeString) {
|
|
20
|
+
const change = deserializedChangeString;
|
|
21
|
+
// Add the change to the array of changes for the target control. Thereby, create this array when this change is the first one for that control.
|
|
22
|
+
const changes = changeMap[change.controlId] || [];
|
|
23
|
+
changes.push(change);
|
|
24
|
+
changeMap[change.controlId] = changes;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
return changeMap;
|
|
28
|
+
}
|
|
29
|
+
/* Begin: Helper functions for getConfigForPage */
|
|
30
|
+
/**
|
|
31
|
+
* This function is used to get the config representation of a manifest value or a flex change value.
|
|
32
|
+
* Thereby, we assume that the corresponding property in the schema has artifactType 'Manifest' or artifact type 'Flex Change'.
|
|
33
|
+
*
|
|
34
|
+
* @param value - the value contained in the manifest resp. in the flex change for the property
|
|
35
|
+
* @param propertyDefinition - metadata for the property to be processed (taken from the page specific schema)
|
|
36
|
+
* @param globalTypeDefinitions - global type definitions that may be referred from within propertyDefinition
|
|
37
|
+
* @param importParameters - parameters of the current import process
|
|
38
|
+
* @param importConfigInfo - page specific information for the import process
|
|
39
|
+
* @returns the value that should be added to the config
|
|
40
|
+
*/
|
|
41
|
+
function getConfigRep(value, propertyDefinition, globalTypeDefinitions, importParameters, importConfigInfo) {
|
|
42
|
+
if (value === undefined) {
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
const refType = (0, common_1.getRefType)(propertyDefinition);
|
|
46
|
+
const refTypeDefinition = refType ? globalTypeDefinitions[refType] : undefined;
|
|
47
|
+
// Disabled until we implement the conversionExit feature:
|
|
48
|
+
/* if (propertyDefinition[SchemaTag.conversionExit]) {
|
|
49
|
+
// If a conversion exit has been specified for this property let it do the job
|
|
50
|
+
value = convertValue(true, propertyDefinition, value, fragments, logger);
|
|
51
|
+
if (!refTypeDefinition){
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
} */
|
|
55
|
+
// If propertyDefinition refers to another (global) definition, execute the logic based on this reference
|
|
56
|
+
if (refTypeDefinition) {
|
|
57
|
+
return getConfigRep(value, refTypeDefinition, globalTypeDefinitions, importParameters, importConfigInfo);
|
|
58
|
+
}
|
|
59
|
+
if (propertyDefinition.type === 'object' && propertyDefinition.properties && typeof value === 'object') {
|
|
60
|
+
// If the value to be transferred is an object perform the transfer recursively for each property.
|
|
61
|
+
// If the resulting object is empty (hasProperty is still false) return undefined
|
|
62
|
+
const returnObject = {};
|
|
63
|
+
let hasProperty = false;
|
|
64
|
+
for (const property in propertyDefinition.properties) {
|
|
65
|
+
const propDef = propertyDefinition.properties[property];
|
|
66
|
+
const valueForProp = getConfigRep(value[property], propDef, globalTypeDefinitions, importParameters, importConfigInfo);
|
|
67
|
+
if (valueForProp !== undefined) {
|
|
68
|
+
hasProperty = true;
|
|
69
|
+
returnObject[property] = valueForProp;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return hasProperty ? returnObject : undefined;
|
|
73
|
+
}
|
|
74
|
+
if (propertyDefinition.type === 'array' && !Array.isArray(value)) {
|
|
75
|
+
// Special logic for arrays which are represented as comma separated strings within the manifest.
|
|
76
|
+
// Opposite logic can be found in function getValueForManifest in export.exportPageGeneric.ts
|
|
77
|
+
return typeof value === 'string' && value !== '' ? value.split(',') : undefined;
|
|
78
|
+
}
|
|
79
|
+
// If none of the above special cases applies: Simply return the value
|
|
80
|
+
return value;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* This function transfers a property value from the manifest or a flex change into the config.
|
|
84
|
+
* Thereby, we assume that the corresponding property in the schema has artifactType 'Manifest' or artifact type 'Flex Change'.
|
|
85
|
+
*
|
|
86
|
+
* @param config - the configuration the value should be passed to
|
|
87
|
+
* @param importConfigInfo - page specific information for the import process
|
|
88
|
+
* @param propertyPath - information about the types from config root down to the parent of the property currently processed
|
|
89
|
+
* @param property - name of property currently processed
|
|
90
|
+
* @param propValue - value to be transferred from manifest or flex change
|
|
91
|
+
* @param propertyDefinition - metadata for the property to be processed (taken from the page specific schema)
|
|
92
|
+
* @param globalTypeDefinitions - global type definitions that may be referred from within propertyDefinition
|
|
93
|
+
* @param importParameters - parameters of the current import process
|
|
94
|
+
*/
|
|
95
|
+
function transferValueToConfig(config, importConfigInfo, propertyPath, property, propValue, propertyDefinition, globalTypeDefinitions, importParameters) {
|
|
96
|
+
// Get the config representation of propValue (in most cases identical to propValue itself)
|
|
97
|
+
const targetValue = getConfigRep(propValue, propertyDefinition, globalTypeDefinitions, importParameters, importConfigInfo);
|
|
98
|
+
if (targetValue === undefined) {
|
|
99
|
+
// In some cases getConfigRep may still find out that the value needs not to be transferred -> end here
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
// Now we are sure that a value has to be added to config.
|
|
103
|
+
// Navigate to the parent object for the property along the specified path, thereby creating empty objects
|
|
104
|
+
// where no object is yet available.
|
|
105
|
+
let settingTarget = config;
|
|
106
|
+
const prefixPath = [];
|
|
107
|
+
propertyPath.forEach(function (propertyTypeInfo) {
|
|
108
|
+
prefixPath.push(propertyTypeInfo);
|
|
109
|
+
const propertyName = propertyTypeInfo.propertyName;
|
|
110
|
+
// Create the object on next level if it is not yet there
|
|
111
|
+
settingTarget[propertyName] =
|
|
112
|
+
settingTarget[propertyName] || importConfigInfo.propertyInstanceProvider(prefixPath);
|
|
113
|
+
settingTarget = settingTarget[propertyName]; // Step down to the object on the next level
|
|
114
|
+
});
|
|
115
|
+
// Finally transfer the value
|
|
116
|
+
settingTarget[property] = targetValue;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* This function is called for schema properties which are flagged as artifactType 'FlexChange'.
|
|
120
|
+
* The function checks whether a flex change is available for the specified property.
|
|
121
|
+
* If yes, it transfers the corresponding value to the given config.
|
|
122
|
+
*
|
|
123
|
+
* @param config - the potential transfer target
|
|
124
|
+
* @param importConfigInfo - page specific information for the import process
|
|
125
|
+
* @param propertyPath - information about the types from config root down to the parent of the property currently processed
|
|
126
|
+
* @param property - name of property currently processed
|
|
127
|
+
* @param propertyDefinition - metadata for the property to be processed (taken from the page specific schema)
|
|
128
|
+
* @param globalTypeDefinitions - global type definitions that may be referred from within propertyDefinition
|
|
129
|
+
* @param importParameters - parameters of the current import process
|
|
130
|
+
* @param changeMap - collection of applicable flex changes in a format that is easier to consume than importParameters.flex.
|
|
131
|
+
* Note that flex changes which are evaluated by this function are removed from the map, since we do not expect any flex change to be applicable twice.
|
|
132
|
+
*/
|
|
133
|
+
function importFlexChangesToConfigProperty(config, importConfigInfo, propertyPath, property, propertyDefinition, globalTypeDefinitions, importParameters, changeMap) {
|
|
134
|
+
const controlId = propertyDefinition[ux_specification_types_1.SchemaTag.controlId]; // the id of the control the flex change would be applied to
|
|
135
|
+
const applicableChangeDefinitions = changeMap[controlId];
|
|
136
|
+
if (!applicableChangeDefinitions) {
|
|
137
|
+
// No flex changes for that control available at all -> nothing to do
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
// Search whether there is a flex change for property within the list of flex changes for the relevant control
|
|
141
|
+
let position = -1;
|
|
142
|
+
const changeDefinition = applicableChangeDefinitions.find(function (changeDefinition, i) {
|
|
143
|
+
if (changeDefinition.content.property === property) {
|
|
144
|
+
position = i;
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
return false;
|
|
148
|
+
});
|
|
149
|
+
if (changeDefinition) {
|
|
150
|
+
// There is a change for the specified property in the specified control -> transfer it to target
|
|
151
|
+
transferValueToConfig(config, importConfigInfo, propertyPath, property, changeDefinition.type === 'propertyBindingChange'
|
|
152
|
+
? changeDefinition.content.newBinding
|
|
153
|
+
: changeDefinition.content.newValue, propertyDefinition, globalTypeDefinitions, importParameters);
|
|
154
|
+
// As this change has already been processed, remove it from the list of all changes
|
|
155
|
+
if (applicableChangeDefinitions.length === 1) {
|
|
156
|
+
delete changeMap[controlId];
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
applicableChangeDefinitions.splice(position, 1);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* This function is called for schema properties which are flagged as artifactType 'Manifest'.
|
|
165
|
+
* The function checks whether a manifest entry is available for the specified property.
|
|
166
|
+
* If yes, it transfers the corresponding value to the given config.
|
|
167
|
+
*
|
|
168
|
+
* @param config - the potential transfer target
|
|
169
|
+
* @param importConfigInfo - page specific information for the import process
|
|
170
|
+
* @param propertyPath - information about the types from config root down to the parent of the property currently processed
|
|
171
|
+
* @param property - name of property currently processed
|
|
172
|
+
* @param propertyDefinition - metadata for the property to be processed (taken from the page specific schema)
|
|
173
|
+
* @param globalTypeDefinitions - global type definitions that may be referred from within propertyDefinition
|
|
174
|
+
* @param importParameters - parameters of the current import process
|
|
175
|
+
*/
|
|
176
|
+
function importManifestToConfigProperty(config, importConfigInfo, propertyPath, property, propertyDefinition, globalTypeDefinitions, importParameters) {
|
|
177
|
+
const accessorSpec = propertyDefinition[ux_specification_types_1.SchemaTag.manifestPath];
|
|
178
|
+
let addTargetPropertyToPath; // decision whether property belongs to the full path in the manifest
|
|
179
|
+
let accessorPath;
|
|
180
|
+
if (Array.isArray(accessorSpec)) {
|
|
181
|
+
// default case where property is also contained in the manifest path
|
|
182
|
+
accessorPath = accessorSpec;
|
|
183
|
+
addTargetPropertyToPath = true;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
// more complex case supporting scenario in which property is a name which is only used within the config but does not occur in the manifest
|
|
187
|
+
// example for that would be config property 'custom' which is hard-coded in the tools logic but actually does not occur in the manifest
|
|
188
|
+
accessorPath = accessorSpec.path;
|
|
189
|
+
addTargetPropertyToPath = accessorSpec.addTargetPropertyToPath;
|
|
190
|
+
}
|
|
191
|
+
const { hasPath, value, parent } = (0, utils_1.getManifestPropertyByPath)(importParameters.manifest, accessorPath, addTargetPropertyToPath ? property : undefined);
|
|
192
|
+
if (!hasPath) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
const propValue = addTargetPropertyToPath ? value : parent;
|
|
196
|
+
transferValueToConfig(config, importConfigInfo, propertyPath, property, propValue, propertyDefinition, globalTypeDefinitions, importParameters);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* The task of this function is to pass values from manifest and flex changes to the given config.
|
|
200
|
+
* Thereby, values from all properties defined within the given Definition are processed (including child objects).
|
|
201
|
+
*
|
|
202
|
+
* @param config - the potential transfer target
|
|
203
|
+
* @param importConfigInfo - page specific information for the import process
|
|
204
|
+
* @param definition - the properties of this Definition will be processed
|
|
205
|
+
* @param propertyPath - the path from the root of the schema to the specified Definition
|
|
206
|
+
* @param globalTypeDefinitions - global type definitions that may be referred from within definition
|
|
207
|
+
* @param importParameters - parameters of the current import process
|
|
208
|
+
* @param changeMap - collection of applicable flex changes in a format that is easier to consume than importParameters.flex.
|
|
209
|
+
* Note that flex changes which are evaluated by this function are removed from the map, since we do not expect any flex change to be applicable twice.
|
|
210
|
+
*/
|
|
211
|
+
function importDefinitionIntoConfig(config, importConfigInfo, definition, propertyPath, globalTypeDefinitions, importParameters, changeMap) {
|
|
212
|
+
if (!(0, utils_1.isDefinition)(definition.properties)) {
|
|
213
|
+
return; // no properties to be processed
|
|
214
|
+
}
|
|
215
|
+
for (const property in definition.properties) {
|
|
216
|
+
const propertyDefinition = definition.properties[property];
|
|
217
|
+
if (!(0, utils_1.isDefinition)(propertyDefinition)) {
|
|
218
|
+
continue; // ignore properties that are null or boolean (should not occur in our schemas anyway)
|
|
219
|
+
}
|
|
220
|
+
// Now propertyDefinition is actually an instance of Definition
|
|
221
|
+
// We distinguish three cases:
|
|
222
|
+
// - current property is handled by flex
|
|
223
|
+
// - current property can be mapped onto a manifest property (or a section within the manifest)
|
|
224
|
+
// - property is still complex and points to a global type which describes how the content should be processed
|
|
225
|
+
// Note that the inline definition of a complex type is not yet supported.
|
|
226
|
+
const artifactType = propertyDefinition[ux_specification_types_1.SchemaTag.artifactType];
|
|
227
|
+
if (artifactType === ux_specification_types_1.ArtifactType.FlexChange) {
|
|
228
|
+
// case 1
|
|
229
|
+
importFlexChangesToConfigProperty(config, importConfigInfo, propertyPath, property, propertyDefinition, globalTypeDefinitions, importParameters, changeMap);
|
|
230
|
+
}
|
|
231
|
+
else if (artifactType === ux_specification_types_1.ArtifactType.Manifest && propertyDefinition[ux_specification_types_1.SchemaTag.manifestPath]) {
|
|
232
|
+
// case 2
|
|
233
|
+
importManifestToConfigProperty(config, importConfigInfo, propertyPath, property, propertyDefinition, globalTypeDefinitions, importParameters);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
const refType = (0, common_1.getRefType)(propertyDefinition);
|
|
237
|
+
const refTypeDefinition = refType ? globalTypeDefinitions[refType] : undefined;
|
|
238
|
+
if ((0, utils_1.isDefinition)(refTypeDefinition)) {
|
|
239
|
+
// case 3 -> Recursively step down
|
|
240
|
+
const nextLevelPropertyPath = propertyPath.concat([
|
|
241
|
+
{
|
|
242
|
+
propertyName: property,
|
|
243
|
+
propertyType: refType.split('<')[0] // Remove a potential suffix from the global type to get the type name in the generic schema
|
|
244
|
+
}
|
|
245
|
+
]);
|
|
246
|
+
importDefinitionIntoConfig(config, importConfigInfo, refTypeDefinition, nextLevelPropertyPath, globalTypeDefinitions, importParameters, changeMap);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* This function creates and returns a config for a page of an FE v2 app (executes the 'import').
|
|
253
|
+
*
|
|
254
|
+
* @param importParameters - required information from the app
|
|
255
|
+
* @param pagePath - specifies the page within the app. Note that importParameters.jsonSchema must be
|
|
256
|
+
* consistent with this path. That means that this schema must be the schema that is generated by getAdaptedSchema
|
|
257
|
+
* in schemaAdaptation.ts for this page. This function does not check this consistency.
|
|
258
|
+
* @param getConfigInfo - a function that can provide the ImportConfigInfo to be used for the specified page type
|
|
259
|
+
* @returns the (filled) config for the specified page
|
|
260
|
+
*/
|
|
261
|
+
function getConfigForPage(importParameters, pagePath, getConfigInfo) {
|
|
262
|
+
const templateType = (0, common_1.getTemplateTypeFromManifest)(importParameters.manifest, ux_specification_types_1.FioriElementsVersion.v2, importParameters.logger);
|
|
263
|
+
if (!templateType || templateType === ux_specification_types_1.TemplateType.OverviewPageV2) {
|
|
264
|
+
return; // not supported (yet)
|
|
265
|
+
}
|
|
266
|
+
const manifestPath = (0, utils_1.getManifestPathFromPagePath)(pagePath, false);
|
|
267
|
+
const { parent: pageDefinition } = (0, utils_1.getManifestPropertyByPath)(importParameters.manifest, manifestPath);
|
|
268
|
+
const componentName = pageDefinition?.['component']?.name;
|
|
269
|
+
const importConfigInfo = typeof componentName === 'string' ? getConfigInfo(componentName) : undefined;
|
|
270
|
+
if (!importConfigInfo) {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
const changeMap = getChangeMapFormImportParameters(importParameters); // Prepare a consumable format of the flex changes
|
|
274
|
+
const schema = importParameters.jsonSchema;
|
|
275
|
+
const globalTypeDefinitions = schema.definitions;
|
|
276
|
+
const config = importConfigInfo.propertyInstanceProvider([]); // instantiate the empty config
|
|
277
|
+
importDefinitionIntoConfig(config, importConfigInfo, schema, [], globalTypeDefinitions, importParameters, changeMap); // and fill it
|
|
278
|
+
return config;
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=importPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importPage.js","sourceRoot":"","sources":["../../../../../../src/sync/v2/import/importPage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AccessorPath, Manifest } from '@sap/ux-specification-types';
|
|
2
|
+
import type { Definition, DefinitionOrBoolean } from 'typescript-json-schema';
|
|
3
|
+
/**
|
|
4
|
+
* Get the path inside the manifest to the definition of a specific page.
|
|
5
|
+
*
|
|
6
|
+
* @param pagePath - path to the page as described in option b) of type AccessorPath
|
|
7
|
+
* @param toSettings - If this property is true the path to the settings object of the specified page definition is returned (this is actually the sub-object containing the most meaningful information)
|
|
8
|
+
* @param suffix - can be used to create a path that points to an even deeper sub-object
|
|
9
|
+
* @returns the specified path as described in option a) of type AccessorPath
|
|
10
|
+
*/
|
|
11
|
+
export declare function getManifestPathFromPagePath(pagePath: AccessorPath, toSettings?: boolean, suffix?: AccessorPath): AccessorPath;
|
|
12
|
+
/**
|
|
13
|
+
* Helper function to extract information from the manifest.
|
|
14
|
+
*
|
|
15
|
+
* @param manifest - the manifest containing the information
|
|
16
|
+
* @param manifestPath - pointer to the object in the manifest containing the property to be checked
|
|
17
|
+
* @param property - the property below the specified path that should be extracted. If it is faulty, no value will be extracted.
|
|
18
|
+
* @returns - hasPath: information whether the specified path can be followed in the manifest and the target is an object (which is not null)
|
|
19
|
+
* - value: The value of the specified property if the path can be followed and the corresponding object possesses the specified property, otherwise undefined
|
|
20
|
+
* - parent: the not-null object found at the specified path (parent object of the property), otherwise undefined. Note that modifying the properties of this object will also change manifest.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getManifestPropertyByPath(manifest: Manifest, manifestPath: AccessorPath, property?: string): {
|
|
23
|
+
hasPath: boolean;
|
|
24
|
+
value: unknown;
|
|
25
|
+
parent: object | undefined;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Type guard that checks whether a given optional instance of DefinitionOrBoolean is indeed a Definition.
|
|
29
|
+
*
|
|
30
|
+
* @param obj the instance to be tested
|
|
31
|
+
* @returns whether obj is indeed a (truthy) Definition
|
|
32
|
+
*/
|
|
33
|
+
export declare function isDefinition(obj: DefinitionOrBoolean | undefined): obj is Definition;
|
|
34
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/sync/v2/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE9E;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,YAAY,EACtB,UAAU,GAAE,OAAc,EAC1B,MAAM,GAAE,YAAiB,GAC1B,YAAY,CAWd;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACrC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAyBlE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,mBAAmB,GAAG,SAAS,GAAG,GAAG,IAAI,UAAU,CAEpF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getManifestPathFromPagePath = getManifestPathFromPagePath;
|
|
4
|
+
exports.getManifestPropertyByPath = getManifestPropertyByPath;
|
|
5
|
+
exports.isDefinition = isDefinition;
|
|
6
|
+
/**
|
|
7
|
+
* This file contains helper functions for generic schema handling.
|
|
8
|
+
* The functionality is implicitly tested by the more complex unit-tests for generic schema generation and generic import in test-folder unit/genericSchemaHandling.
|
|
9
|
+
*/
|
|
10
|
+
const ux_specification_types_1 = require("@sap/ux-specification-types");
|
|
11
|
+
/**
|
|
12
|
+
* Get the path inside the manifest to the definition of a specific page.
|
|
13
|
+
*
|
|
14
|
+
* @param pagePath - path to the page as described in option b) of type AccessorPath
|
|
15
|
+
* @param toSettings - If this property is true the path to the settings object of the specified page definition is returned (this is actually the sub-object containing the most meaningful information)
|
|
16
|
+
* @param suffix - can be used to create a path that points to an even deeper sub-object
|
|
17
|
+
* @returns the specified path as described in option a) of type AccessorPath
|
|
18
|
+
*/
|
|
19
|
+
function getManifestPathFromPagePath(pagePath, toSettings = true, suffix = []) {
|
|
20
|
+
const manifestPath = [ux_specification_types_1.ManifestSection.generic];
|
|
21
|
+
pagePath.forEach(function (page) {
|
|
22
|
+
manifestPath.push('pages');
|
|
23
|
+
manifestPath.push(page);
|
|
24
|
+
});
|
|
25
|
+
if (toSettings) {
|
|
26
|
+
manifestPath.push('component');
|
|
27
|
+
manifestPath.push('settings');
|
|
28
|
+
}
|
|
29
|
+
return manifestPath.concat(suffix);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Helper function to extract information from the manifest.
|
|
33
|
+
*
|
|
34
|
+
* @param manifest - the manifest containing the information
|
|
35
|
+
* @param manifestPath - pointer to the object in the manifest containing the property to be checked
|
|
36
|
+
* @param property - the property below the specified path that should be extracted. If it is faulty, no value will be extracted.
|
|
37
|
+
* @returns - hasPath: information whether the specified path can be followed in the manifest and the target is an object (which is not null)
|
|
38
|
+
* - value: The value of the specified property if the path can be followed and the corresponding object possesses the specified property, otherwise undefined
|
|
39
|
+
* - parent: the not-null object found at the specified path (parent object of the property), otherwise undefined. Note that modifying the properties of this object will also change manifest.
|
|
40
|
+
*/
|
|
41
|
+
function getManifestPropertyByPath(manifest, manifestPath, property) {
|
|
42
|
+
let manifestSection = manifest; // Current position in the manifest when stepping down
|
|
43
|
+
const hasPath =
|
|
44
|
+
// Traverse down the manifest (in manifestSection) step by step along the specified path
|
|
45
|
+
manifestPath.every(function (accessor) {
|
|
46
|
+
if (!manifestSection ||
|
|
47
|
+
typeof manifestSection !== 'object' ||
|
|
48
|
+
(Array.isArray(manifestSection) && typeof accessor !== 'number')) {
|
|
49
|
+
// In order to perform another step down our current position must be a (not-null) object.
|
|
50
|
+
// If this is even an array we only accept numbers as accessors.
|
|
51
|
+
// When this condition is not fulfilled, we stop stepping down.
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
manifestSection = manifestSection[accessor]; // execute the step down
|
|
55
|
+
return true;
|
|
56
|
+
}) &&
|
|
57
|
+
typeof manifestSection === 'object' &&
|
|
58
|
+
manifestSection !== null; // Finally check whether we still have reached a not-null object
|
|
59
|
+
return {
|
|
60
|
+
hasPath,
|
|
61
|
+
value: hasPath && property ? manifestSection[property] : undefined,
|
|
62
|
+
parent: hasPath ? manifestSection : undefined
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Type guard that checks whether a given optional instance of DefinitionOrBoolean is indeed a Definition.
|
|
67
|
+
*
|
|
68
|
+
* @param obj the instance to be tested
|
|
69
|
+
* @returns whether obj is indeed a (truthy) Definition
|
|
70
|
+
*/
|
|
71
|
+
function isDefinition(obj) {
|
|
72
|
+
return obj !== null && typeof obj === 'object';
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=utils.js.map
|