@wavemaker/angular-app 12.0.0-next.141221 → 12.0.0-next.25480
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/angular.json +66 -106
- package/build-scripts/build.js +1 -0
- package/build-scripts/index-html-transform-ng-serve.ts +20 -0
- package/build-scripts/post-build.js +16 -112
- package/dependencies/app.component.html +37 -25
- package/dependencies/custom-widgets-bundle.cjs.js +415 -0
- package/dependencies/expression-parser.cjs.js +499 -17432
- package/dependencies/pipe-provider.cjs.js +68323 -66880
- package/dependencies/transpilation-web.cjs.js +16669 -15184
- package/dependency-report.html +1 -1
- package/npm-shrinkwrap.json +10724 -12052
- package/package-lock.json +10724 -12052
- package/package.json +66 -80
- package/proxy.conf.js +14 -0
- package/src/app/lazy-load-scripts.resolve.ts +2 -9
- package/src/framework/services/component-ref-provider.service.ts +4 -0
- package/src/framework/services/customwidget-config-provider.service.ts +13 -0
- package/src/framework/services/lazy-component-ref-provider.service.ts +22 -30
- package/src/framework/util/page-util.ts +3 -1
- package/src/index.html +1 -1
- package/src/main.ts +35 -32
- package/src/setup-jest.js +10 -10
- package/tsconfig.json +9 -36
- package/tsconfig.web-app.json +2 -23
- package/wm-custom-webpack.config.js +13 -56
- package/dependencies/transpilation-mobile.cjs.js +0 -93600
package/angular.json
CHANGED
|
@@ -13,16 +13,6 @@
|
|
|
13
13
|
"build": {
|
|
14
14
|
"builder": "@angular-builders/custom-webpack:browser",
|
|
15
15
|
"options": {
|
|
16
|
-
"customWebpackConfig": {
|
|
17
|
-
"path": "./wm-custom-webpack.config.js"
|
|
18
|
-
},
|
|
19
|
-
"indexTransform": "./build-scripts/index-html-transform.js",
|
|
20
|
-
"deployUrl": "ng-bundle/",
|
|
21
|
-
"outputPath": "dist/ng-bundle",
|
|
22
|
-
"index": {
|
|
23
|
-
"input": "src/index.html",
|
|
24
|
-
"output": "../index.html"
|
|
25
|
-
},
|
|
26
16
|
"main": "src/main.ts",
|
|
27
17
|
"polyfills": "src/polyfills.ts",
|
|
28
18
|
"tsConfig": "src/tsconfig.app.json",
|
|
@@ -32,13 +22,13 @@
|
|
|
32
22
|
"src/assets",
|
|
33
23
|
{
|
|
34
24
|
"glob": "**/*",
|
|
35
|
-
"input": "libraries/locales/",
|
|
36
|
-
"output": "/locales/"
|
|
25
|
+
"input": "libraries/locales/moment-timezone",
|
|
26
|
+
"output": "/locales/moment-timezone"
|
|
37
27
|
},
|
|
38
28
|
{
|
|
39
29
|
"glob": "**/*",
|
|
40
|
-
"input": "node_modules/@wavemaker/app-ng-runtime/locales/",
|
|
41
|
-
"output": "/locales/"
|
|
30
|
+
"input": "node_modules/@wavemaker/app-ng-runtime/locales/moment-timezone",
|
|
31
|
+
"output": "/locales/moment-timezone"
|
|
42
32
|
},
|
|
43
33
|
{
|
|
44
34
|
"glob": "**/*",
|
|
@@ -75,7 +65,6 @@
|
|
|
75
65
|
}
|
|
76
66
|
],
|
|
77
67
|
"scripts": [
|
|
78
|
-
"./node_modules/x2js/x2js.js",
|
|
79
68
|
"./node_modules/d3/dist/d3.min.js",
|
|
80
69
|
"./node_modules/@wavemaker/nvd3/build/nv.d3.min.js",
|
|
81
70
|
"./node_modules/jquery/dist/jquery.min.js",
|
|
@@ -94,13 +83,8 @@
|
|
|
94
83
|
"./node_modules/@wavemaker/app-ng-runtime/scripts/datatable/datatable.js",
|
|
95
84
|
"./node_modules/@wavemaker/app-ng-runtime/scripts/swipey/swipey.jquery.plugin.js",
|
|
96
85
|
"./node_modules/@wavemaker/app-ng-runtime/scripts/jquery.ui.touch-punch/jquery.ui.touch-punch.min.js",
|
|
97
|
-
"./node_modules/moment/min/moment.min.js",
|
|
98
|
-
"./node_modules/moment-timezone/builds/moment-timezone.min.js",
|
|
99
|
-
"./node_modules/fullcalendar/main.min.js",
|
|
100
86
|
"./node_modules/summernote/dist/summernote-lite.min.js",
|
|
101
|
-
"./node_modules/hammerjs/hammer.min.js",
|
|
102
87
|
"./node_modules/iscroll/build/iscroll.js",
|
|
103
|
-
"./node_modules/js-cookie/src/js.cookie.js",
|
|
104
88
|
"./node_modules/jssha/dist/sha256.js",
|
|
105
89
|
"./node_modules/@ztree/ztree_v3/js/jquery.ztree.all.js",
|
|
106
90
|
"./node_modules/@wavemaker/app-ng-runtime/scripts/tree-keyboard-navigation/keyboard-navigation.js"
|
|
@@ -108,6 +92,16 @@
|
|
|
108
92
|
},
|
|
109
93
|
"configurations": {
|
|
110
94
|
"production": {
|
|
95
|
+
"customWebpackConfig": {
|
|
96
|
+
"path": "./wm-custom-webpack.config.js"
|
|
97
|
+
},
|
|
98
|
+
"indexTransform": "./build-scripts/index-html-transform.js",
|
|
99
|
+
"deployUrl": "ng-bundle/",
|
|
100
|
+
"outputPath": "dist/ng-bundle",
|
|
101
|
+
"index": {
|
|
102
|
+
"input": "src/index.html",
|
|
103
|
+
"output": "../../index.html"
|
|
104
|
+
},
|
|
111
105
|
"fileReplacements": [
|
|
112
106
|
{
|
|
113
107
|
"replace": "src/environments/environment.ts",
|
|
@@ -137,6 +131,16 @@
|
|
|
137
131
|
]
|
|
138
132
|
},
|
|
139
133
|
"development": {
|
|
134
|
+
"customWebpackConfig": {
|
|
135
|
+
"path": "./wm-custom-webpack.config.js"
|
|
136
|
+
},
|
|
137
|
+
"indexTransform": "./build-scripts/index-html-transform.js",
|
|
138
|
+
"deployUrl": "ng-bundle/",
|
|
139
|
+
"outputPath": "dist/ng-bundle",
|
|
140
|
+
"index": {
|
|
141
|
+
"input": "src/index.html",
|
|
142
|
+
"output": "../../index.html"
|
|
143
|
+
},
|
|
140
144
|
"fileReplacements": [
|
|
141
145
|
{
|
|
142
146
|
"replace": "src/environments/environment.ts",
|
|
@@ -159,6 +163,16 @@
|
|
|
159
163
|
]
|
|
160
164
|
},
|
|
161
165
|
"local": {
|
|
166
|
+
"customWebpackConfig": {
|
|
167
|
+
"path": "./wm-custom-webpack.config.js"
|
|
168
|
+
},
|
|
169
|
+
"indexTransform": "./build-scripts/index-html-transform.js",
|
|
170
|
+
"deployUrl": "ng-bundle/",
|
|
171
|
+
"outputPath": "dist/ng-bundle",
|
|
172
|
+
"index": {
|
|
173
|
+
"input": "src/index.html",
|
|
174
|
+
"output": "../../index.html"
|
|
175
|
+
},
|
|
162
176
|
"fileReplacements": [
|
|
163
177
|
{
|
|
164
178
|
"replace": "src/environments/environment.ts",
|
|
@@ -186,99 +200,45 @@
|
|
|
186
200
|
"maximumWarning": "2mb"
|
|
187
201
|
}
|
|
188
202
|
]
|
|
189
|
-
}
|
|
190
|
-
},
|
|
191
|
-
"defaultConfiguration": "production"
|
|
192
|
-
},
|
|
193
|
-
"build-ng": {
|
|
194
|
-
"builder": "@angular-devkit/build-angular:browser",
|
|
195
|
-
"options": {
|
|
196
|
-
"outputPath": "dist",
|
|
197
|
-
"index": {
|
|
198
|
-
"input": "src/index.html",
|
|
199
|
-
"output": "../index.html"
|
|
200
203
|
},
|
|
201
|
-
"
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
"src/
|
|
206
|
-
"
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
"
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
"inject": false,
|
|
227
|
-
"bundleName": "print"
|
|
228
|
-
}
|
|
229
|
-
],
|
|
230
|
-
"scripts": [
|
|
231
|
-
"./node_modules/x2js/x2js.js",
|
|
232
|
-
"./node_modules/d3/dist/d3.min.js",
|
|
233
|
-
"./node_modules/@wavemaker/nvd3/build/nv.d3.min.js",
|
|
234
|
-
"./node_modules/jquery/dist/jquery.min.js",
|
|
235
|
-
"./node_modules/jquery-ui/ui/disable-selection.js",
|
|
236
|
-
"./node_modules/jquery-ui/ui/version.js",
|
|
237
|
-
"./node_modules/jquery-ui/ui/widget.js",
|
|
238
|
-
"./node_modules/jquery-ui/ui/scroll-parent.js",
|
|
239
|
-
"./node_modules/jquery-ui/ui/plugin.js",
|
|
240
|
-
"./node_modules/jquery-ui/ui/data.js",
|
|
241
|
-
"./node_modules/jquery-ui/ui/widgets/mouse.js",
|
|
242
|
-
"./node_modules/jquery-ui/ui/widgets/resizable.js",
|
|
243
|
-
"./node_modules/jquery-ui/ui/widgets/sortable.js",
|
|
244
|
-
"./node_modules/jquery-ui/ui/widgets/droppable.js",
|
|
245
|
-
"./libraries/scripts/datatable/datatable.js",
|
|
246
|
-
"./node_modules/moment/min/moment.min.js",
|
|
247
|
-
"./node_modules/moment-timezone/builds/moment-timezone.min.js",
|
|
248
|
-
"./node_modules/fullcalendar/main.min.js",
|
|
249
|
-
"./node_modules/summernote/dist/summernote-lite.min.js",
|
|
250
|
-
"./node_modules/hammerjs/hammer.min.js",
|
|
251
|
-
"./node_modules/iscroll/build/iscroll.js",
|
|
252
|
-
"./node_modules/js-cookie/src/js.cookie.js",
|
|
253
|
-
"./node_modules/jssha/dist/sha256.js",
|
|
254
|
-
"./node_modules/@ztree/ztree_v3/js/jquery.ztree.all.js",
|
|
255
|
-
"./libraries/scripts/tree-keyboard-navigation/keyboard-navigation.js"
|
|
256
|
-
],
|
|
257
|
-
"aot": false,
|
|
258
|
-
"vendorChunk": true,
|
|
259
|
-
"extractLicenses": false,
|
|
260
|
-
"buildOptimizer": false,
|
|
261
|
-
"sourceMap": true,
|
|
262
|
-
"optimization": false,
|
|
263
|
-
"namedChunks": true
|
|
264
|
-
},
|
|
265
|
-
"configurations": {
|
|
266
|
-
"production": {
|
|
267
|
-
"browserTarget": "angular-app:build:production"
|
|
204
|
+
"ng-serve": {
|
|
205
|
+
"indexTransform": "./build-scripts/index-html-transform-ng-serve.ts",
|
|
206
|
+
"deployUrl": "ng-bundle/",
|
|
207
|
+
"outputPath": "dist/ng-bundle",
|
|
208
|
+
"index": "src/index.html",
|
|
209
|
+
"fileReplacements": [
|
|
210
|
+
{
|
|
211
|
+
"replace": "src/environments/environment.ts",
|
|
212
|
+
"with": "src/environments/environment.dev.ts"
|
|
213
|
+
}
|
|
214
|
+
],
|
|
215
|
+
"optimization": false,
|
|
216
|
+
"outputHashing": "none",
|
|
217
|
+
"sourceMap": true,
|
|
218
|
+
"namedChunks": true,
|
|
219
|
+
"aot": true,
|
|
220
|
+
"extractLicenses": false,
|
|
221
|
+
"vendorChunk": true,
|
|
222
|
+
"buildOptimizer": false,
|
|
223
|
+
"budgets": [
|
|
224
|
+
{
|
|
225
|
+
"type": "initial",
|
|
226
|
+
"maximumWarning": "2mb"
|
|
227
|
+
}
|
|
228
|
+
]
|
|
268
229
|
}
|
|
269
230
|
},
|
|
270
|
-
"defaultConfiguration": ""
|
|
231
|
+
"defaultConfiguration": "production"
|
|
271
232
|
},
|
|
272
233
|
"serve": {
|
|
273
|
-
"builder": "@angular-
|
|
274
|
-
"options": {
|
|
275
|
-
"buildTarget": "angular-app:build"
|
|
276
|
-
},
|
|
234
|
+
"builder": "@angular-builders/custom-webpack:dev-server",
|
|
277
235
|
"configurations": {
|
|
278
|
-
"
|
|
279
|
-
"buildTarget": "angular-app:build:
|
|
236
|
+
"development": {
|
|
237
|
+
"buildTarget": "angular-app:build:ng-serve",
|
|
238
|
+
"proxyConfig": "proxy.conf.js"
|
|
280
239
|
}
|
|
281
|
-
}
|
|
240
|
+
},
|
|
241
|
+
"defaultConfiguration": "development"
|
|
282
242
|
},
|
|
283
243
|
"extract-i18n": {
|
|
284
244
|
"builder": "@angular-devkit/build-angular:extract-i18n",
|
package/build-scripts/build.js
CHANGED
|
@@ -6,6 +6,7 @@ if (processArgs.findIndex(arg => arg.startsWith('--max-old-space-size')) !== -1)
|
|
|
6
6
|
process.env.NODE_OPTIONS = processArgs.pop();
|
|
7
7
|
console.log("Setting node options: ", process.env.NODE_OPTIONS);
|
|
8
8
|
}
|
|
9
|
+
|
|
9
10
|
const args = processArgs.slice(2);
|
|
10
11
|
const ngBuildArgs = ['build', ...args];
|
|
11
12
|
console.log("\x1b[33m", "Angular build params: ", ngBuildArgs);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {TargetOptions} from '@angular-builders/custom-webpack';
|
|
2
|
+
|
|
3
|
+
export default function indexHtmlTransformNgServe(
|
|
4
|
+
targetOptions: TargetOptions,
|
|
5
|
+
indexHtml: string
|
|
6
|
+
): string {
|
|
7
|
+
const deployUrl = 'ng-bundle/';
|
|
8
|
+
const wmStylesHref = `${deployUrl}wm-styles.css`;
|
|
9
|
+
|
|
10
|
+
const metaDeployUrl = `<meta name="deployUrl" content="${deployUrl}">`;
|
|
11
|
+
const linkWmStyles = `<link rel="stylesheet" type="text/css" href="${wmStylesHref}">`;
|
|
12
|
+
|
|
13
|
+
const injectHtml = `${metaDeployUrl}
|
|
14
|
+
${linkWmStyles}`;
|
|
15
|
+
const headCloseIndex = indexHtml.indexOf('</head>');
|
|
16
|
+
|
|
17
|
+
return `${indexHtml.slice(0, headCloseIndex)}
|
|
18
|
+
${injectHtml}
|
|
19
|
+
${indexHtml.slice(headCloseIndex)}`;
|
|
20
|
+
}
|
|
@@ -6,94 +6,11 @@ const copyFile = util.promisify(fs.copyFile);
|
|
|
6
6
|
const exec = util.promisify(require('child_process').exec);
|
|
7
7
|
const cheerio = require(`cheerio`);
|
|
8
8
|
const crypto = require(`crypto`);
|
|
9
|
-
|
|
10
|
-
const copyCssFiles = (hash, updatedFilenames) => {
|
|
11
|
-
const filename = 'wm-styles.css';
|
|
12
|
-
const updatedFilename = `wm-styles.${hash}.css`
|
|
13
|
-
copyFile(`${opPath}/${filename}`, `${opPath}/${updatedFilename}`);
|
|
14
|
-
updatedFilenames[filename] = updatedFilename;
|
|
15
|
-
// copyFile(`${opPath}/wm-styles.br.css`,`${opPath}/wm-styles.${hash}.br.css`);
|
|
16
|
-
// copyFile(`${opPath}/wm-styles.gzip.css`,`${opPath}/wm-styles.${hash}.gzip.css`);
|
|
17
|
-
};
|
|
18
|
-
const copyMobileCssFiles = (hash, fileName) => {
|
|
19
|
-
// const name = filePath.split('.css')[0];
|
|
20
|
-
copyFile(`${opPath}/${fileName}.css`, `${opPath}/${fileName}.${hash}.css`);
|
|
21
|
-
// copyFile(`${opPath}/wm-styles.br.css`,`${opPath}/wm-styles.${hash}.br.css`);
|
|
22
|
-
// copyFile(`${opPath}/wm-styles.gzip.css`,`${opPath}/wm-styles.${hash}.gzip.css`);
|
|
23
|
-
};
|
|
24
|
-
const generateHash = async (filepath) => {
|
|
25
|
-
const cssContent = await readFile(filepath);
|
|
26
|
-
let hash = crypto.createHash('md5');
|
|
27
|
-
hash.update(cssContent);
|
|
28
|
-
return hash.digest('hex');
|
|
29
|
-
};
|
|
30
|
-
const generateHashForScripts = (updatedFilenames) => {
|
|
31
|
-
//from angular 12(IVY), scripts array in angular json, doesn't allow `@` symbol in the name/value
|
|
32
|
-
//so removed `@` from wavemaker.com in the file name and adding it back in the post-build.js file
|
|
33
|
-
const scriptsMap = {};
|
|
34
|
-
return new Promise(resolve => {
|
|
35
|
-
fs.readdir(opPath, (err, items) => {
|
|
36
|
-
const promises = items.map(i => {
|
|
37
|
-
const nohashIndex = i.indexOf('-NOHASH.js');
|
|
38
|
-
if (nohashIndex > 0) {
|
|
39
|
-
const key = i.substring(0, nohashIndex);
|
|
40
|
-
return generateHash(`${opPath}/${i}`).then(hash => {
|
|
41
|
-
const filename = `${key}-NOHASH.js`;
|
|
42
|
-
const updatedFilename = `${key}.${hash}.js`
|
|
43
|
-
scriptsMap[`${key}.js`] = updatedFilename;
|
|
44
|
-
updatedFilenames[filename] = updatedFilename;
|
|
45
|
-
return Promise.all([
|
|
46
|
-
copyFile(`${opPath}/${filename}`, `${opPath}/${updatedFilename}`),
|
|
47
|
-
// copyFile(`${opPath}/${key}-NOHASH.br.js`, `${opPath}/${key}.${hash}.br.js`),
|
|
48
|
-
// copyFile(`${opPath}/${key}-NOHASH.gzip.js`, `${opPath}/${key}.${hash}.gzip.js`)
|
|
49
|
-
]);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
Promise.all(promises).then(() => {
|
|
54
|
-
return writeFile(`${opPath}/path_mapping.json`, JSON.stringify(scriptsMap, null, 2));
|
|
55
|
-
}).then(resolve);
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
let isMobileProject = false;
|
|
9
|
+
|
|
60
10
|
let isProdBuild;
|
|
61
11
|
let isDevBuild;
|
|
62
12
|
let $;
|
|
63
13
|
|
|
64
|
-
const setMobileProjectType = (angularJson) => {
|
|
65
|
-
let styles = angularJson['projects']['angular-app']['architect']['build']['options']['styles'];
|
|
66
|
-
const androidStyles = styles.find((style) => {
|
|
67
|
-
let isObject = typeof (style) === 'object';
|
|
68
|
-
if (isObject) {
|
|
69
|
-
return style.bundleName === 'wm-android-styles';
|
|
70
|
-
}
|
|
71
|
-
return false;
|
|
72
|
-
});
|
|
73
|
-
isMobileProject = androidStyles ? true : false;
|
|
74
|
-
return isMobileProject;
|
|
75
|
-
}
|
|
76
|
-
const addMobileSpecificStyles = async (deployUrl) => {
|
|
77
|
-
if (isDevBuild) {
|
|
78
|
-
$("body").append(
|
|
79
|
-
`<script type="text/javascript" defer="true" src="${deployUrl}wm-android-styles.js"></script>`
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (isProdBuild) {
|
|
84
|
-
let hash = await generateHash(`${opPath}/wm-android-styles.css`);
|
|
85
|
-
copyMobileCssFiles(hash, 'wm-android-styles');
|
|
86
|
-
$("head").append(
|
|
87
|
-
`<link rel="stylesheet" theme="wmtheme" href="${deployUrl}wm-android-styles.${hash}.css" >`
|
|
88
|
-
);
|
|
89
|
-
hash = await generateHash(`${opPath}/wm-ios-styles.css`);
|
|
90
|
-
copyMobileCssFiles(hash, 'wm-ios-styles');
|
|
91
|
-
$("head").append(
|
|
92
|
-
`<link rel="stylesheet" theme="wmtheme" href="${deployUrl}wm-ios-styles.${hash}.css" >`
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
14
|
const addScriptForWMStylesPath = (wm_styles_path) => {
|
|
98
15
|
// wm_styles_path will not be present for mobile apps
|
|
99
16
|
if (wm_styles_path) {
|
|
@@ -201,10 +118,10 @@ const updatePwaAssets = (deployUrl, updatedFileNames, updatedFileHashes) => {
|
|
|
201
118
|
deployUrl = deployUrl === "_cdnUrl_" ? 'ng-bundle/' : deployUrl;
|
|
202
119
|
|
|
203
120
|
// copy service worker and its config to root directory
|
|
204
|
-
fs.copyFileSync(
|
|
205
|
-
fs.copyFileSync(
|
|
206
|
-
fs.copyFileSync(
|
|
207
|
-
fs.copyFileSync(
|
|
121
|
+
fs.copyFileSync(`./dist/ng-bundle/${global.randomHash}/ngsw-worker.js`, './dist/ngsw-worker.js');
|
|
122
|
+
fs.copyFileSync(`./dist/ng-bundle/${global.randomHash}/wmsw-worker.js`, './dist/wmsw-worker.js');
|
|
123
|
+
fs.copyFileSync(`./dist/ng-bundle/${global.randomHash}/ngsw.json`, ngswPath);
|
|
124
|
+
fs.copyFileSync(`./dist/ng-bundle/${global.randomHash}/manifest.json`, manifestPath);
|
|
208
125
|
|
|
209
126
|
// update the icons url in manifest.json
|
|
210
127
|
const manifest = JSON.parse(fs.readFileSync(manifestPath).toString());
|
|
@@ -247,18 +164,13 @@ const generateSha1 = (content) => {
|
|
|
247
164
|
try {
|
|
248
165
|
const angularJson = require(`${process.cwd()}/angular.json`);
|
|
249
166
|
const build = angularJson['projects']['angular-app']['architect']['build'];
|
|
250
|
-
let deployUrl = args['deploy-url'] || build['
|
|
251
|
-
|
|
167
|
+
let deployUrl = args['deploy-url'] || build['configurations']['production']['deployUrl'];
|
|
168
|
+
global.randomHash = deployUrl.split('/')[1];
|
|
169
|
+
let outputPath = global.opPath = args['output-path'] || build['configurations']['production']['outputPath']
|
|
252
170
|
const contents = await readFile(`./dist/index.html`, `utf8`);
|
|
253
171
|
$ = cheerio.load(contents);
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
isProdBuild = fs.existsSync(`${process.cwd()}/dist/ng-bundle/wm-styles.css`);
|
|
257
|
-
isDevBuild = fs.existsSync(`${process.cwd()}/dist/ng-bundle/wm-styles.js`);
|
|
258
|
-
} else {
|
|
259
|
-
isDevBuild = fs.existsSync(`${process.cwd()}/dist/ng-bundle/wm-android-styles.js`);
|
|
260
|
-
isProdBuild = fs.existsSync(`${process.cwd()}/dist/ng-bundle/wm-android-styles.css`);
|
|
261
|
-
}
|
|
172
|
+
isProdBuild = fs.existsSync(`${process.cwd()}/${outputPath}/wm-styles.css`);
|
|
173
|
+
isDevBuild = fs.existsSync(`${process.cwd()}/${outputPath}/wm-styles.js`);
|
|
262
174
|
|
|
263
175
|
if (isProdBuild) {
|
|
264
176
|
const isOptimizeCss = $('meta[optimizecss]').length;
|
|
@@ -275,18 +187,12 @@ const generateSha1 = (content) => {
|
|
|
275
187
|
const updatedFileHashes = {}
|
|
276
188
|
let wm_styles_path;
|
|
277
189
|
|
|
278
|
-
if (
|
|
279
|
-
|
|
190
|
+
if (isDevBuild) {
|
|
191
|
+
wm_styles_path = `${deployUrl}wm-styles.js`;
|
|
280
192
|
} else {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
const fileName = 'wm-styles';
|
|
285
|
-
const hash = await generateHash(`${opPath}/${fileName}.css`);
|
|
286
|
-
copyCssFiles(hash, updatedFilenames);
|
|
287
|
-
const updatedFileName = `${fileName}.${hash}.css`
|
|
288
|
-
wm_styles_path = `${deployUrl}${updatedFileName}`;
|
|
289
|
-
}
|
|
193
|
+
const fileName = 'wm-styles';
|
|
194
|
+
const updatedFileName = `${fileName}.css`
|
|
195
|
+
wm_styles_path = `${deployUrl}${updatedFileName}`;
|
|
290
196
|
}
|
|
291
197
|
|
|
292
198
|
addScriptForWMStylesPath(wm_styles_path);
|
|
@@ -295,13 +201,11 @@ const generateSha1 = (content) => {
|
|
|
295
201
|
//this is required to download all the assets
|
|
296
202
|
$('head').append(`<meta name="deployUrl" content=${deployUrl} />`);
|
|
297
203
|
$('script[src$="services/application/wmProperties.js"]').remove();
|
|
298
|
-
$('link[href$="favicon.png"]').attr('href',
|
|
204
|
+
$('link[href$="favicon.png"]').attr('href', `${deployUrl}favicon.png`);
|
|
299
205
|
|
|
300
206
|
const htmlContent = $.html();
|
|
301
207
|
await writeFile(`./dist/index.html`, htmlContent);
|
|
302
208
|
|
|
303
|
-
await generateHashForScripts(updatedFilenames);
|
|
304
|
-
|
|
305
209
|
if (serviceWorkerEnabled) {
|
|
306
210
|
// re-generate hash for index.html since its been modified
|
|
307
211
|
updatedFileHashes['index.html'] = generateSha1(htmlContent);
|
|
@@ -1,28 +1,40 @@
|
|
|
1
|
-
|
|
1
|
+
@if (startApp) {
|
|
2
|
+
@if(enableSkipToMainContent) {
|
|
3
|
+
<div id="app-focus-start" tabindex="-1"></div>
|
|
4
|
+
<a href="javascript:void(0);" class="skip" (click)="skipToAppContent($event)">{{appLocale.LABEL_SKIP_TO_MAIN_CONTENT || 'Skip to main content'}}</a>
|
|
5
|
+
}
|
|
2
6
|
<router-outlet></router-outlet>
|
|
3
|
-
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
7
|
+
@if (isApplicationType) {
|
|
8
|
+
<div wmContainer partialContainer content="Common" hidden class="ng-hide"></div>
|
|
9
|
+
}
|
|
10
|
+
<app-spinner name="globalspinner" classname="global-spinner" role="alert" aria-live="assertive" [attr.aria-label]="spinner.arialabel || 'Loading'" [show]="spinner.show" [spinnermessages]="spinner.messages"></app-spinner>
|
|
11
|
+
<div wmDialog name="oAuthLoginDialog" title="Application is requesting you to sign in with"
|
|
12
|
+
close.event="closeOAuthDialog()">
|
|
13
|
+
<ng-template #dialogBody>
|
|
14
|
+
<ul class="list-items">
|
|
15
|
+
@for (provider of providersConfig; track provider) {
|
|
16
|
+
<li class="list-item">
|
|
17
|
+
<button class="btn" (click)="provider.invoke()">{{provider.name}}</button>
|
|
18
|
+
</li>
|
|
19
|
+
}
|
|
20
|
+
</ul>
|
|
21
|
+
</ng-template>
|
|
22
|
+
</div>
|
|
23
|
+
<div wmConfirmDialog name="_app-confirm-dialog" title.bind="title" message.bind="message" oktext.bind="oktext"
|
|
24
|
+
canceltext.bind="canceltext" closable="false" iconclass.bind="iconclass"
|
|
25
|
+
escape.event="onEscape()" ok.event="onOk()" cancel.event="onCancel()" close.event="onClose()" opened.event="onOpen()"></div>
|
|
26
|
+
@if (!isApplicationType) {
|
|
27
|
+
<div wmConfirmDialog name="PrefabConfirmDialog" title.bind="title" message.bind="text" oktext.bind="okButtonText"
|
|
28
|
+
canceltext.bind="cancelButtonText" closable="false" iconclass.bind="iconclass"
|
|
29
|
+
escape.event="onEscape()" ok.event="onOk()" cancel.event="onCancel()" close.event="onClose()" opened.event="onOpen()"></div>
|
|
30
|
+
}
|
|
31
|
+
@if (!isApplicationType) {
|
|
32
|
+
<div wmAlertDialog name="PrefabAlertDialog" title.bind="title" message.bind="text" oktext.bind="okButtonText"
|
|
33
|
+
canceltext.bind="cancelButtonText" closable="false" iconclass.bind="iconclass"
|
|
34
|
+
escape.event="onEscape()" ok.event="onOk()" cancel.event="onCancel()" close.event="onClose()" opened.event="onOpen()"></div>
|
|
35
|
+
}
|
|
36
|
+
<div wmAppExt></div>
|
|
37
|
+
<i id="wm-mobile-display"></i>
|
|
38
|
+
}
|
|
27
39
|
<!--Dummy container to create the component dynamically-->
|
|
28
40
|
<ng-container #dynamicComponent></ng-container>
|