@sap-ux/ui5-application-writer 0.11.0 → 0.12.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.
@@ -7,6 +7,16 @@ import { App, Package, UI5 } from '../types';
7
7
  * @returns {Partial<Package>} the package instance
8
8
  */
9
9
  export declare function packageDefaults(version?: string, description?: string): Partial<Package>;
10
+ /**
11
+ * Merges 2 package definitions. All properties from A and from B will be present.
12
+ * Overlapping properties will be replaced from B. Arrays will be concatenated.
13
+ * `ui5.dependencies` will be de-duped.
14
+ *
15
+ * @param packageA - a partial package definition
16
+ * @param packageB - a partial package definition
17
+ * @returns - a merged package defintion
18
+ */
19
+ export declare function mergePackages(packageA: Partial<Package>, packageB: Partial<Package>): Package;
10
20
  /**
11
21
  * Returns an app instance with default properties. Every property must have a value for templating to succeed.
12
22
  *
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAgB,MAAM,UAAU,CAAC;AAM3D;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBxF;AACD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAWtC;AAED,oBAAY,WAAW;IACnB,mBAAmB,KAAK;IACxB,yBAAyB,WAAW;IACpC,eAAe,WAAW;IAC1B,wBAAwB,WAAW;IACnC,yBAAyB,WAAW;IACpC,UAAU,wBAAwB;IAClC,WAAW,sCAAsC;IACjD,mBAAmB,WAAW;IAC9B,sBAAsB,YAAY;IAClC,gBAAgB,WAAW;CAC9B;AAGD,eAAO,MAAM,cAAc,UAA2B,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAuB/C"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAgB,MAAM,UAAU,CAAC;AAO3D;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBxF;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAS7F;AACD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CActC;AAED,oBAAY,WAAW;IACnB,mBAAmB,KAAK;IACxB,yBAAyB,WAAW;IACpC,eAAe,WAAW;IAC1B,wBAAwB,WAAW;IACnC,yBAAyB,WAAW;IACpC,UAAU,wBAAwB;IAClC,WAAW,sCAAsC;IACjD,mBAAmB,WAAW;IAC9B,sBAAsB,YAAY;IAClC,gBAAgB,WAAW;CAC9B;AAGD,eAAO,MAAM,cAAc,UAA2B,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAuB/C"}
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.mergeUi5 = exports.defaultUI5Libs = exports.UI5_DEFAULT = exports.mergeApp = exports.packageDefaults = void 0;
6
+ exports.mergeUi5 = exports.defaultUI5Libs = exports.UI5_DEFAULT = exports.mergeApp = exports.mergePackages = exports.packageDefaults = void 0;
7
7
  const version_to_descriptor_mapping_json_1 = __importDefault(require("./version-to-descriptor-mapping.json")); // from https://github.com/SAP/ui5-manifest/blob/master/mapping.json
8
8
  const ui5Libs_1 = require("./ui5Libs");
9
9
  const semver_1 = __importDefault(require("semver"));
10
10
  const i18n_1 = require("../i18n");
11
+ const json_merger_1 = require("json-merger");
11
12
  /**
12
13
  * Returns a package instance with default properties.
13
14
  *
@@ -34,6 +35,27 @@ function packageDefaults(version, description) {
34
35
  };
35
36
  }
36
37
  exports.packageDefaults = packageDefaults;
38
+ /**
39
+ * Merges 2 package definitions. All properties from A and from B will be present.
40
+ * Overlapping properties will be replaced from B. Arrays will be concatenated.
41
+ * `ui5.dependencies` will be de-duped.
42
+ *
43
+ * @param packageA - a partial package definition
44
+ * @param packageB - a partial package definition
45
+ * @returns - a merged package defintion
46
+ */
47
+ function mergePackages(packageA, packageB) {
48
+ var _a;
49
+ const mergedPackage = (0, json_merger_1.mergeObjects)([packageA, packageB], {
50
+ defaultArrayMergeOperation: 'concat'
51
+ });
52
+ // de-dup package.ui5.dependencies
53
+ if ((_a = mergedPackage.ui5) === null || _a === void 0 ? void 0 : _a.dependencies) {
54
+ mergedPackage.ui5.dependencies = Array.from(new Set(mergedPackage.ui5.dependencies));
55
+ }
56
+ return mergedPackage;
57
+ }
58
+ exports.mergePackages = mergePackages;
37
59
  /**
38
60
  * Returns an app instance with default properties. Every property must have a value for templating to succeed.
39
61
  *
@@ -41,12 +63,16 @@ exports.packageDefaults = packageDefaults;
41
63
  * @returns {Partial<App>} the App instance
42
64
  */
43
65
  function mergeApp(app) {
44
- // Return merged, does not update passed ref
66
+ var _a, _b;
45
67
  return Object.assign({
46
68
  version: '0.0.1',
47
69
  title: (0, i18n_1.t)('text.defaultAppTitle', { id: app.id }),
48
70
  description: (0, i18n_1.t)('text.defaultAppDescription', { id: app.id }),
49
- baseComponent: 'sap/ui/core/UIComponent'
71
+ baseComponent: 'sap/ui/core/UIComponent',
72
+ sourceTemplate: {
73
+ id: ((_a = app.sourceTemplate) === null || _a === void 0 ? void 0 : _a.id) || '',
74
+ version: ((_b = app.sourceTemplate) === null || _b === void 0 ? void 0 : _b.version) || ''
75
+ }
50
76
  }, app);
51
77
  }
52
78
  exports.mergeApp = mergeApp;
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/data/defaults.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ function mergeWithDefaults(ui5App) {
15
15
  ui5App.app = (0, defaults_1.mergeApp)(ui5App.app);
16
16
  ui5App.appOptions = ui5App.appOptions || {};
17
17
  ui5App.ui5 = (0, defaults_1.mergeUi5)(ui5App.ui5 || {});
18
- ui5App.package = Object.assign((0, defaults_1.packageDefaults)(ui5App.package.version, ui5App.app.description), ui5App.package);
18
+ ui5App.package = (0, defaults_1.mergePackages)((0, defaults_1.packageDefaults)(ui5App.package.version, ui5App.app.description), ui5App.package);
19
19
  return ui5App;
20
20
  }
21
21
  exports.mergeWithDefaults = mergeWithDefaults;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":";;;AACA,yCAAiE;AACjE,6CAAwC;AAExC;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAM5C,IAAA,qBAAQ,EAAC,MAAM,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,CAAC,GAAG,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,0BAAe,EAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEhH,OAAO,MAKN,CAAC;AACN,CAAC;AAlBD,8CAkBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":";;;AACA,yCAAgF;AAChF,6CAAwC;AAExC;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAAC,MAAc;IAM5C,IAAA,qBAAQ,EAAC,MAAM,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAC5C,MAAM,CAAC,GAAG,GAAG,IAAA,mBAAQ,EAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,GAAG,IAAA,wBAAa,EAAC,IAAA,0BAAe,EAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAEhH,OAAO,MAKN,CAAC;AACN,CAAC;AAlBD,8CAkBC"}
package/dist/types.d.ts CHANGED
@@ -17,6 +17,10 @@ export interface App {
17
17
  baseComponent?: string;
18
18
  startFile?: string;
19
19
  localStartFile?: string;
20
+ sourceTemplate?: {
21
+ id?: string;
22
+ version?: string;
23
+ };
20
24
  }
21
25
  export declare type UI5Framework = 'SAPUI5' | 'OpenUI5';
22
26
  export interface UI5 {
@@ -34,6 +38,7 @@ export interface AppOptions {
34
38
  codeAssist: boolean;
35
39
  eslint: boolean;
36
40
  sapux: boolean;
41
+ loadReuseLibs: boolean;
37
42
  }
38
43
  export interface Ui5App {
39
44
  app: App;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,GAAG,CAAC,EAAE;QACF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;CACL;AAED,MAAM,WAAW,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,oBAAY,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,GAAG;IAChB,SAAS,EAAE,YAAY,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACnB,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,GAAG,CAAC,EAAE;QACF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;CACL;AAED,MAAM,WAAW,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE;QACb,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAA;CACJ;AAED,oBAAY,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,GAAG;IAChB,SAAS,EAAE,YAAY,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACnB,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sap-ux/ui5-application-writer",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -16,12 +16,16 @@
16
16
  data-sap-ui-theme="<%- ui5.ui5Theme %>"
17
17
  data-sap-ui-resourceroots='{
18
18
  "<%- app.id %>": "./"
19
- }'
20
- data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"
19
+ }'<% if(!appOptions.loadReuseLibs) { %>
20
+ data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"<% } %>
21
21
  data-sap-ui-compatVersion="edge"
22
22
  data-sap-ui-async="true"
23
23
  data-sap-ui-frameOptions="trusted"
24
- ></script>
24
+ ></script><% if(appOptions.loadReuseLibs) { %>
25
+ <script id="locate-reuse-libs" src="./utils/locate-reuse-libs.js"
26
+ data-sap-ui-manifest-uri="./manifest.json"
27
+ data-sap-ui-componentName="<%- app.id %>">
28
+ </script> <% } %>
25
29
  </head>
26
30
  <body class="sapUiBody sapUiSizeCompact" id="content">
27
31
  <div
@@ -9,7 +9,11 @@
9
9
  },
10
10
  "title": "{{appTitle}}",
11
11
  "description": "{{appDescription}}",
12
- "resources": "resources.json"
12
+ "resources": "resources.json",
13
+ "sourceTemplate": {
14
+ "id": "<%= app.sourceTemplate.id %>",
15
+ "version": "<%= app.sourceTemplate.version %>"
16
+ }
13
17
  },
14
18
  "sap.ui": {
15
19
  "technology": "UI5",
@@ -0,0 +1,173 @@
1
+ /*eslint-disable semi, no-console*/
2
+ (function (sap) {
3
+ var fioriToolsGetManifestLibs = function (manifestPath) {
4
+ var url = manifestPath;
5
+ var result = "";
6
+ // SAPUI5 delivered namespaces from https://ui5.sap.com/#/api/sap
7
+ var ui5Libs = [
8
+ "sap.apf",
9
+ "sap.base",
10
+ "sap.chart",
11
+ "sap.collaboration",
12
+ "sap.f",
13
+ "sap.fe",
14
+ "sap.fileviewer",
15
+ "sap.gantt",
16
+ "sap.landvisz",
17
+ "sap.m",
18
+ "sap.ndc",
19
+ "sap.ovp",
20
+ "sap.rules",
21
+ "sap.suite",
22
+ "sap.tnt",
23
+ "sap.ui",
24
+ "sap.uiext",
25
+ "sap.ushell",
26
+ "sap.uxap",
27
+ "sap.viz",
28
+ "sap.webanalytics",
29
+ "sap.zen"
30
+ ];
31
+ function getKeys(libOrComp,libOrCompKeysString) {
32
+ Object.keys(libOrComp).forEach(function (libOrCompKey) {
33
+ // ignore libs or Components that start with SAPUI5 delivered namespaces
34
+ if (!ui5Libs.some(function (substring) { return libOrCompKey === substring || libOrCompKey.startsWith(substring + "."); })) {
35
+ if (libOrCompKeysString.length > 0) {
36
+ libOrCompKeysString = libOrCompKeysString + "," + libOrCompKey;
37
+ } else {
38
+ libOrCompKeysString = libOrCompKey;
39
+ }
40
+ }
41
+ });
42
+ return libOrCompKeysString;
43
+ }
44
+ return new Promise(function (resolve, reject) {
45
+ $.ajax(url)
46
+ .done(function (manifest) {
47
+ if (manifest) {
48
+ if (
49
+ manifest["sap.ui5"] &&
50
+ manifest["sap.ui5"].dependencies
51
+ ) {
52
+ if (manifest["sap.ui5"].dependencies.libs){
53
+ result = getKeys(manifest["sap.ui5"].dependencies.libs, result)
54
+ }
55
+ if (manifest["sap.ui5"].dependencies.components){
56
+ result = getKeys(manifest["sap.ui5"].dependencies.components, result)
57
+ }
58
+ }
59
+ if (
60
+ manifest["sap.ui5"] &&
61
+ manifest["sap.ui5"].componentUsages
62
+ ) {
63
+ result = getKeys(manifest["sap.ui5"].componentUsages, result)
64
+ }
65
+ }
66
+ resolve(result);
67
+ })
68
+ .fail(function (error) {
69
+ reject(new Error("Could not fetch manifest at '" + manifestPath));
70
+ });
71
+ });
72
+ };
73
+ /**
74
+ * Registers the module paths for dependencies of the given component.
75
+ * @param {string} manifestPath The the path to the app manifest path
76
+ * for which the dependencies should be registered.
77
+ * @returns {Promise} A promise which is resolved when the ajax request for
78
+ * the app-index was successful and the module paths were registered.
79
+ */
80
+ sap.registerComponentDependencyPaths = function (manifestPath) {
81
+ /*eslint-disable semi, consistent-return*/
82
+ return fioriToolsGetManifestLibs(manifestPath).then(function (libs) {
83
+ if (libs && libs.length > 0) {
84
+ var url = "/sap/bc/ui2/app_index/ui5_app_info?id=" + libs;
85
+ var sapClient = jQuery.sap.getUriParameters().get("sap-client");
86
+ if (sapClient && sapClient.length === 3) {
87
+ url = url + "&sap-client=" + sapClient;
88
+ }
89
+ return $.ajax(url).done(function (data) {
90
+ if (data) {
91
+ Object.keys(data).forEach(function (moduleDefinitionKey) {
92
+ var moduleDefinition = data[moduleDefinitionKey];
93
+ if (moduleDefinition && moduleDefinition.dependencies) {
94
+ moduleDefinition.dependencies.forEach(function (dependency) {
95
+ if (dependency.url && dependency.url.length > 0 && dependency.type === "UI5LIB") {
96
+ jQuery.sap.log.info(
97
+ "Registering Library " +
98
+ dependency.componentId +
99
+ " from server " +
100
+ dependency.url
101
+ );
102
+ jQuery.sap.registerModulePath(dependency.componentId, dependency.url);
103
+ }
104
+ });
105
+ }
106
+ });
107
+ }
108
+ });
109
+ }
110
+ });
111
+ };
112
+ })(sap);
113
+
114
+ /*eslint-disable sap-browser-api-warning, sap-no-dom-access*/
115
+ var scripts = document.getElementsByTagName("script");
116
+ var currentScript = document.getElementById('locate-reuse-libs');
117
+ if(!currentScript){
118
+ currentScript = document.currentScript;
119
+ };
120
+ var manifestUri = currentScript.getAttribute("data-sap-ui-manifest-uri");
121
+ var componentName = currentScript.getAttribute("data-sap-ui-componentName");
122
+ var useMockserver = currentScript.getAttribute("data-sap-ui-use-mockserver");
123
+ sap.registerComponentDependencyPaths(manifestUri)
124
+ .catch(function (error) {
125
+ jQuery.sap.log.error(error);
126
+ })
127
+ .finally(function () {
128
+
129
+ // setting the app title with internationalization
130
+ sap.ui.getCore().attachInit(function () {
131
+ jQuery.sap.require("jquery.sap.resources");
132
+ var sLocale = sap.ui.getCore().getConfiguration().getLanguage();
133
+ var oBundle = jQuery.sap.resources({
134
+ url: "i18n/i18n.properties",
135
+ locale: sLocale
136
+ });
137
+ document.title = oBundle.getText("appTitle");
138
+ });
139
+
140
+ if (componentName && componentName.length > 0) {
141
+ if (useMockserver && useMockserver === "true") {
142
+ sap.ui.getCore().attachInit(function () {
143
+ sap.ui.require([componentName.replace(/\./g, "/") + "/localService/mockserver"], function (server) {
144
+ // set up test service for local testing
145
+ server.init();
146
+ // initialize the ushell sandbox component
147
+ sap.ushell.Container.createRenderer().placeAt("content");
148
+ });
149
+ });
150
+ } else {
151
+ // Requiring the ComponentSupport module automatically executes the component initialisation for all declaratively defined components
152
+ sap.ui.require(["sap/ui/core/ComponentSupport"]);
153
+
154
+ // setting the app title with the i18n text
155
+ sap.ui.getCore().attachInit(function () {
156
+ jQuery.sap.require("jquery.sap.resources");
157
+ var sLocale = sap.ui.getCore().getConfiguration().getLanguage();
158
+ var oBundle = jQuery.sap.resources({
159
+ url: "i18n/i18n.properties",
160
+ locale: sLocale
161
+ });
162
+ document.title = oBundle.getText("appTitle");
163
+ });
164
+ }
165
+ } else {
166
+ sap.ui.getCore().attachInit(function () {
167
+ // initialize the ushell sandbox component
168
+ sap.ushell.Container.createRenderer().placeAt("content");
169
+ });
170
+ }
171
+ });
172
+
173
+ sap.registerComponentDependencyPaths(manifestUri);