@wavemaker/angular-codegen 11.10.5-rc.6096 → 11.11.0-next.27920

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.
Files changed (36) hide show
  1. package/angular-app/angular.json +4 -9
  2. package/angular-app/build-scripts/post-build.js +7 -47
  3. package/angular-app/dependency-report.html +1 -1
  4. package/angular-app/npm-shrinkwrap.json +187 -242
  5. package/angular-app/package-lock.json +187 -242
  6. package/angular-app/package.json +11 -21
  7. package/angular-app/src/app/bootstrap-wrapper.component.ts +10 -0
  8. package/angular-app/src/app/lazy-load-scripts.resolve.ts +2 -9
  9. package/angular-app/src/index.html +1 -0
  10. package/angular-app/src/main.ts +28 -32
  11. package/angular-app/tsconfig.json +0 -30
  12. package/angular-app/tsconfig.web-app.json +0 -21
  13. package/angular-app/wm-custom-webpack.config.js +18 -0
  14. package/dependencies/app.component.html +34 -26
  15. package/dependencies/pipe-provider.cjs.js +23477 -186
  16. package/dependencies/transpilation-web.cjs.js +12587 -816
  17. package/npm-shrinkwrap.json +85 -233
  18. package/package-lock.json +85 -233
  19. package/package.json +2 -2
  20. package/src/codegen.js +1 -1
  21. package/src/gen-app-codegen-module.js +1 -1
  22. package/src/gen-app-routes.js +1 -1
  23. package/src/gen-components.js +1 -1
  24. package/src/gen-index-html.js +1 -1
  25. package/src/gen-layouts.js +1 -1
  26. package/src/handlebar-helpers.js +1 -1
  27. package/src/pages-util.js +1 -1
  28. package/src/project-meta.js +1 -1
  29. package/src/update-angular-json.js +1 -1
  30. package/src/wm-utils.js +1 -1
  31. package/templates/app-routes.ts.hbs +2 -2
  32. package/templates/app.config.ts.hbs +128 -0
  33. package/templates/app.module.ts.hbs +0 -2
  34. package/templates/layout/layout.component.ts.hbs +26 -4
  35. package/templates/page/page.component.ts.hbs +36 -5
  36. package/dependencies/transpilation-mobile.cjs.js +0 -93554
package/package-lock.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-codegen",
3
- "version": "11.10.5-rc.6096",
3
+ "version": "11.11.0-next.27920",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@wavemaker/angular-codegen",
9
- "version": "11.10.5-rc.6096",
9
+ "version": "11.11.0-next.27920",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
- "@wavemaker/angular-app": "11.10.5-rc.6096",
12
+ "@wavemaker/angular-app": "11.11.0-next.27920",
13
13
  "archiver": "^7.0.1",
14
14
  "cheerio": "1.0.0-rc.12",
15
15
  "decode-uri-component": "^0.2.0",
@@ -201,185 +201,6 @@
201
201
  "@angular/core": "18.2.13"
202
202
  }
203
203
  },
204
- "node_modules/@awesome-cordova-plugins/app-version": {
205
- "version": "5.39.1",
206
- "integrity": "sha512-UQELx2IeQCMu+ngSnA0bSUKJfDHANT+RZ9EbuOtk+kmhzkbvjbnRhu7AWLA8q4fdXG8PlPljRcCZNxGT6+mraQ==",
207
- "license": "MIT",
208
- "dependencies": {
209
- "@types/cordova": "latest"
210
- },
211
- "peerDependencies": {
212
- "@awesome-cordova-plugins/core": "^5.1.0",
213
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
214
- }
215
- },
216
- "node_modules/@awesome-cordova-plugins/barcode-scanner": {
217
- "version": "5.39.1",
218
- "integrity": "sha512-gWolTyq2N5FSHbr56kAji4QVMO1ZQrdLIjoP02V8LsHpSs5vLL44b2rDlbjppUukhz9qfkaT3wTYjuY7M41uyA==",
219
- "license": "MIT",
220
- "dependencies": {
221
- "@types/cordova": "latest"
222
- },
223
- "peerDependencies": {
224
- "@awesome-cordova-plugins/core": "^5.1.0",
225
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
226
- }
227
- },
228
- "node_modules/@awesome-cordova-plugins/calendar": {
229
- "version": "5.39.1",
230
- "integrity": "sha512-WYyF14clIQnoUOMVrIWIPg3QOHjGw/nJ4JYgEfvjuQPtdT6kJ6k66Uc7brDOQE2SG18pvkeM+uEHRk1tzZD2Aw==",
231
- "license": "MIT",
232
- "dependencies": {
233
- "@types/cordova": "latest"
234
- },
235
- "peerDependencies": {
236
- "@awesome-cordova-plugins/core": "^5.1.0",
237
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
238
- }
239
- },
240
- "node_modules/@awesome-cordova-plugins/camera": {
241
- "version": "5.39.1",
242
- "integrity": "sha512-p+9pzJqec1FdjNgXdQomIzoC17ZKW0iedUkU3t/dqe+3tTgVS2J8EGljKdroz6fa3zkpdWX6QD17MJ9OfTuX7g==",
243
- "license": "MIT",
244
- "dependencies": {
245
- "@types/cordova": "latest"
246
- },
247
- "peerDependencies": {
248
- "@awesome-cordova-plugins/core": "^5.1.0",
249
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
250
- }
251
- },
252
- "node_modules/@awesome-cordova-plugins/core": {
253
- "version": "5.39.1",
254
- "integrity": "sha512-IHBemJf7/kNXCyOghNHckdSY+pu+59W5cTE8w2UMFKQCtJugXVkdDqBPQjmmefzKLmDNCJ+lYhbv0V3VIr6N2g==",
255
- "license": "MIT",
256
- "dependencies": {
257
- "@types/cordova": "latest"
258
- },
259
- "peerDependencies": {
260
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
261
- }
262
- },
263
- "node_modules/@awesome-cordova-plugins/device": {
264
- "version": "5.39.1",
265
- "integrity": "sha512-HdrlJHN+t8eTZ/5kMUTpaTFLpqcnCjVWqQFIIf4zz/q8klD0gqVhUV2+ZH/m9iYVRtjTB73W3VoVn+lzBkSl8A==",
266
- "license": "MIT",
267
- "dependencies": {
268
- "@types/cordova": "latest"
269
- },
270
- "peerDependencies": {
271
- "@awesome-cordova-plugins/core": "^5.1.0",
272
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
273
- }
274
- },
275
- "node_modules/@awesome-cordova-plugins/diagnostic": {
276
- "version": "5.39.1",
277
- "integrity": "sha512-MlcqnDQqWR26AsOw5i2Y/KHd+3LoClaZTs5OefIBtQE8BP6y0IEmTBiXunQfyrMN6xNAdo503d2V6lgXCjrf9A==",
278
- "license": "MIT",
279
- "dependencies": {
280
- "@types/cordova": "latest"
281
- },
282
- "peerDependencies": {
283
- "@awesome-cordova-plugins/core": "^5.1.0",
284
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
285
- }
286
- },
287
- "node_modules/@awesome-cordova-plugins/file": {
288
- "version": "5.39.1",
289
- "integrity": "sha512-DXJfPw5KDF43r+DGth8uVmKkh+m3qD+5lgwm/U1FVJTsqcicbzJXc6/gBSpdwvoBDWactHF1pj6sF4sp3HkIGw==",
290
- "license": "MIT",
291
- "dependencies": {
292
- "@types/cordova": "latest"
293
- },
294
- "peerDependencies": {
295
- "@awesome-cordova-plugins/core": "^5.1.0",
296
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
297
- }
298
- },
299
- "node_modules/@awesome-cordova-plugins/file-opener": {
300
- "version": "5.39.1",
301
- "integrity": "sha512-4ZYpvdyZqVnTbkhbRlEBk5VRiwDI83luyvgQTx0xXB+J4ArtYjEHQdpDiqmbaGdFOO2vy9uhCrHJvbm6+ERNWw==",
302
- "license": "MIT",
303
- "dependencies": {
304
- "@types/cordova": "latest"
305
- },
306
- "peerDependencies": {
307
- "@awesome-cordova-plugins/core": "^5.1.0",
308
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
309
- }
310
- },
311
- "node_modules/@awesome-cordova-plugins/geolocation": {
312
- "version": "5.39.1",
313
- "integrity": "sha512-MFOD7HuIvVncYp6AUCZygHeik61+01D3IQQmzcUbc7CNub7MK9jf0kdNx90ycVyelg7D/7AaUdxh2RZy5nHGkA==",
314
- "license": "MIT",
315
- "dependencies": {
316
- "@types/cordova": "latest"
317
- },
318
- "peerDependencies": {
319
- "@awesome-cordova-plugins/core": "^5.1.0",
320
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
321
- }
322
- },
323
- "node_modules/@awesome-cordova-plugins/location-accuracy": {
324
- "version": "5.39.1",
325
- "integrity": "sha512-CiocZlmR+fkJO4qVotbF4C8i7mtm7uHR8MiQI3BaaVrhQKmQoi70pstJonmBFhONVx3b69bMHoSc05z5A7zxVg==",
326
- "license": "MIT",
327
- "dependencies": {
328
- "@types/cordova": "latest"
329
- },
330
- "peerDependencies": {
331
- "@awesome-cordova-plugins/core": "^5.1.0",
332
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
333
- }
334
- },
335
- "node_modules/@awesome-cordova-plugins/media-capture": {
336
- "version": "5.39.1",
337
- "integrity": "sha512-OHYfuA7zdcrQ6U+wkRhSn0aXnS95yeOpplcQDQ7wS+v6ZnWG5vp94Sgk121XUallQ2eTZaL6hTQbS7/obiyh/Q==",
338
- "license": "MIT",
339
- "dependencies": {
340
- "@types/cordova": "latest"
341
- },
342
- "peerDependencies": {
343
- "@awesome-cordova-plugins/core": "^5.1.0",
344
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
345
- }
346
- },
347
- "node_modules/@awesome-cordova-plugins/network": {
348
- "version": "5.39.1",
349
- "integrity": "sha512-85phHMyHO0zS5/4ZmPfk+r8I8JKUfEZM5pxsSxLBB8XBt0oNjSQt+dQn83BaZPdLutIOc8d/tQl2jI3kf60K0Q==",
350
- "license": "MIT",
351
- "dependencies": {
352
- "@types/cordova": "latest"
353
- },
354
- "peerDependencies": {
355
- "@awesome-cordova-plugins/core": "^5.1.0",
356
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
357
- }
358
- },
359
- "node_modules/@awesome-cordova-plugins/sqlite": {
360
- "version": "5.39.1",
361
- "integrity": "sha512-XRzfo30gARBjqEtjwbyN/QP+PhLAmUuaMiDHbHA4PU2jTTarXrHwulLczVuprb0t//Q/D2I1EKr3UDfmeLROJg==",
362
- "license": "MIT",
363
- "dependencies": {
364
- "@types/cordova": "latest"
365
- },
366
- "peerDependencies": {
367
- "@awesome-cordova-plugins/core": "^5.1.0",
368
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
369
- }
370
- },
371
- "node_modules/@awesome-cordova-plugins/vibration": {
372
- "version": "5.39.1",
373
- "integrity": "sha512-XSyACER6UwsH3HgiXXekxzKuoQYK/CDLK7Bj0paGZaQ0c73+JNAnhNmj5VmrgFXJrg4MvybbC+IbCbIIRuvr5Q==",
374
- "license": "MIT",
375
- "dependencies": {
376
- "@types/cordova": "latest"
377
- },
378
- "peerDependencies": {
379
- "@awesome-cordova-plugins/core": "^5.1.0",
380
- "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0"
381
- }
382
- },
383
204
  "node_modules/@babel/code-frame": {
384
205
  "version": "7.26.2",
385
206
  "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
@@ -897,6 +718,49 @@
897
718
  "dev": true,
898
719
  "license": "MIT"
899
720
  },
721
+ "node_modules/@fullcalendar/core": {
722
+ "version": "6.1.15",
723
+ "integrity": "sha512-BuX7o6ALpLb84cMw1FCB9/cSgF4JbVO894cjJZ6kP74jzbUZNjtwffwRdA+Id8rrLjT30d/7TrkW90k4zbXB5Q==",
724
+ "license": "MIT",
725
+ "dependencies": {
726
+ "preact": "~10.12.1"
727
+ }
728
+ },
729
+ "node_modules/@fullcalendar/daygrid": {
730
+ "version": "6.1.15",
731
+ "integrity": "sha512-j8tL0HhfiVsdtOCLfzK2J0RtSkiad3BYYemwQKq512cx6btz6ZZ2RNc/hVnIxluuWFyvx5sXZwoeTJsFSFTEFA==",
732
+ "license": "MIT",
733
+ "peerDependencies": {
734
+ "@fullcalendar/core": "~6.1.15"
735
+ }
736
+ },
737
+ "node_modules/@fullcalendar/interaction": {
738
+ "version": "6.1.15",
739
+ "integrity": "sha512-DOTSkofizM7QItjgu7W68TvKKvN9PSEEvDJceyMbQDvlXHa7pm/WAVtAc6xSDZ9xmB1QramYoWGLHkCYbTW1rQ==",
740
+ "license": "MIT",
741
+ "peerDependencies": {
742
+ "@fullcalendar/core": "~6.1.15"
743
+ }
744
+ },
745
+ "node_modules/@fullcalendar/list": {
746
+ "version": "6.1.15",
747
+ "integrity": "sha512-U1bce04tYDwkFnuVImJSy2XalYIIQr6YusOWRPM/5ivHcJh67Gm8CIMSWpi3KdRSNKFkqBxLPkfZGBMaOcJYug==",
748
+ "license": "MIT",
749
+ "peerDependencies": {
750
+ "@fullcalendar/core": "~6.1.15"
751
+ }
752
+ },
753
+ "node_modules/@fullcalendar/timegrid": {
754
+ "version": "6.1.15",
755
+ "integrity": "sha512-61ORr3A148RtxQ2FNG7JKvacyA/TEVZ7z6I+3E9Oeu3dqTf6M928bFcpehRTIK6zIA6Yifs7BeWHgOE9dFnpbw==",
756
+ "license": "MIT",
757
+ "dependencies": {
758
+ "@fullcalendar/daygrid": "~6.1.15"
759
+ },
760
+ "peerDependencies": {
761
+ "@fullcalendar/core": "~6.1.15"
762
+ }
763
+ },
900
764
  "node_modules/@isaacs/cliui": {
901
765
  "version": "8.0.2",
902
766
  "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
@@ -1455,8 +1319,8 @@
1455
1319
  }
1456
1320
  },
1457
1321
  "node_modules/@types/babel__generator": {
1458
- "version": "7.6.8",
1459
- "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
1322
+ "version": "7.27.0",
1323
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
1460
1324
  "dev": true,
1461
1325
  "license": "MIT",
1462
1326
  "dependencies": {
@@ -1482,11 +1346,6 @@
1482
1346
  "@babel/types": "^7.20.7"
1483
1347
  }
1484
1348
  },
1485
- "node_modules/@types/cordova": {
1486
- "version": "11.0.3",
1487
- "integrity": "sha512-kyuRQ40/NWQVhqGIHq78Ehu2Bf9Mlg0LhmSmis6ZFJK7z933FRfYi8tHe/k/0fB+PGfCf95rJC6TO7dopaFvAg==",
1488
- "license": "MIT"
1489
- },
1490
1349
  "node_modules/@types/graceful-fs": {
1491
1350
  "version": "4.1.9",
1492
1351
  "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
@@ -1518,11 +1377,11 @@
1518
1377
  }
1519
1378
  },
1520
1379
  "node_modules/@types/node": {
1521
- "version": "22.13.14",
1522
- "integrity": "sha512-Zs/Ollc1SJ8nKUAgc7ivOEdIBM8JAKgrqqUYi2J997JuKO7/tpQC+WCetQ1sypiKCQWHdvdg9wBNpUPEWZae7w==",
1380
+ "version": "22.14.0",
1381
+ "integrity": "sha512-Kmpl+z84ILoG+3T/zQFyAJsU6EPTmOCj8/2+83fSN6djd6I4o7uOuGIH6vq3PrjY5BGitSbFuMN18j3iknubbA==",
1523
1382
  "license": "MIT",
1524
1383
  "dependencies": {
1525
- "undici-types": "~6.20.0"
1384
+ "undici-types": "~6.21.0"
1526
1385
  }
1527
1386
  },
1528
1387
  "node_modules/@types/prettier": {
@@ -1552,8 +1411,8 @@
1552
1411
  "license": "MIT"
1553
1412
  },
1554
1413
  "node_modules/@wavemaker/angular-app": {
1555
- "version": "11.10.5-rc.6096",
1556
- "integrity": "sha512-K1lrusXTW4Nd9utoEhMAMpZRJBis65fjJwRx9QQ3YVXDzaG/7KmK0dlaWo4UclBeZDmQwwOcLNSLE25//EGCTw==",
1414
+ "version": "11.11.0-next.27920",
1415
+ "integrity": "sha512-AP7gfS5xBd2iapkQQMSyerTSehzU+PLPmWE9e9BBRGc9ii5Gk3I8lzPFdg+X7Mq1mJgFoFzDOTrbCZjBI3qH9Q==",
1557
1416
  "dependencies": {
1558
1417
  "@angular/animations": "18.2.13",
1559
1418
  "@angular/common": "18.2.13",
@@ -1564,36 +1423,25 @@
1564
1423
  "@angular/platform-browser-dynamic": "18.2.13",
1565
1424
  "@angular/router": "18.2.13",
1566
1425
  "@angular/service-worker": "18.2.13",
1567
- "@awesome-cordova-plugins/app-version": "5.39.1",
1568
- "@awesome-cordova-plugins/barcode-scanner": "5.39.1",
1569
- "@awesome-cordova-plugins/calendar": "5.39.1",
1570
- "@awesome-cordova-plugins/camera": "5.39.1",
1571
- "@awesome-cordova-plugins/core": "5.39.1",
1572
- "@awesome-cordova-plugins/device": "5.39.1",
1573
- "@awesome-cordova-plugins/diagnostic": "5.39.1",
1574
- "@awesome-cordova-plugins/file": "5.39.1",
1575
- "@awesome-cordova-plugins/file-opener": "5.39.1",
1576
- "@awesome-cordova-plugins/geolocation": "5.39.1",
1577
- "@awesome-cordova-plugins/location-accuracy": "5.39.1",
1578
- "@awesome-cordova-plugins/media-capture": "5.39.1",
1579
- "@awesome-cordova-plugins/network": "5.39.1",
1580
- "@awesome-cordova-plugins/sqlite": "5.39.1",
1581
- "@awesome-cordova-plugins/vibration": "5.39.1",
1582
1426
  "@babel/runtime": "7.14.8",
1427
+ "@fullcalendar/core": "6.1.15",
1428
+ "@fullcalendar/daygrid": "6.1.15",
1429
+ "@fullcalendar/interaction": "6.1.15",
1430
+ "@fullcalendar/list": "6.1.15",
1431
+ "@fullcalendar/timegrid": "6.1.15",
1583
1432
  "@metrichor/jmespath": "0.3.1",
1584
- "@wavemaker/app-ng-runtime": "11.10.5-rc.6096",
1585
- "@wavemaker/custom-widgets-m3": "11.10.5-rc.6096",
1433
+ "@wavemaker/app-ng-runtime": "11.11.0-next.27920",
1434
+ "@wavemaker/custom-widgets-m3": "11.11.0-next.27920",
1586
1435
  "@wavemaker/focus-trap": "1.0.1",
1587
- "@wavemaker/foundation-css": "11.10.5-rc.6096",
1436
+ "@wavemaker/foundation-css": "11.11.0-next.27920",
1588
1437
  "@wavemaker/nvd3": "1.8.12",
1589
- "@wavemaker/variables": "11.10.5-rc.6096",
1438
+ "@wavemaker/variables": "11.11.0-next.27920",
1590
1439
  "@ztree/ztree_v3": "3.5.48",
1591
1440
  "angular-imask": "^7.6.1",
1592
1441
  "angular2-websocket": "0.9.7",
1593
1442
  "core-js": "3.35.1",
1594
1443
  "d3": "7.8.5",
1595
1444
  "esbuild-wasm": "^0.24.2",
1596
- "fullcalendar": "5.3.1",
1597
1445
  "hammerjs": "2.0.8",
1598
1446
  "iscroll": "5.2.0",
1599
1447
  "jquery": "3.7.1",
@@ -1626,8 +1474,8 @@
1626
1474
  }
1627
1475
  },
1628
1476
  "node_modules/@wavemaker/app-ng-runtime": {
1629
- "version": "11.10.5-rc.6096",
1630
- "integrity": "sha512-o1DOj6fkL5dSNewDOUlhzsCiKZJXJocpgiMG/HtyivaVFbUEvKk36ZCHhIgwUs4oqEcN2I98sLzY2+hgiDCBmA==",
1477
+ "version": "11.11.0-next.27920",
1478
+ "integrity": "sha512-MpnUaYtzFVA6/HZGGRdRcYjdV8oSII1aGNSPuJ97hvJ4AX1xNzG5tk2xzLGmMHYoWtm/P6b6sScTuQlROrNIeg==",
1631
1479
  "license": "MIT",
1632
1480
  "engines": {
1633
1481
  "node": ">=18.16.1",
@@ -1635,8 +1483,8 @@
1635
1483
  }
1636
1484
  },
1637
1485
  "node_modules/@wavemaker/custom-widgets-m3": {
1638
- "version": "11.10.5-rc.6096",
1639
- "integrity": "sha512-K8o0LELyGalNZQLnxC4q33TPIPUIbukL88OYHsIh8ErXmo+f4Vpvd9iz8H5ezJVQRzuBnBC3T0PyByLCGLGEng==",
1486
+ "version": "11.11.0-next.27920",
1487
+ "integrity": "sha512-hRvbQnNk5zvoB0aM5YpNLItYurz56vctm5NvK8MDCAvKz4/Zq0CAyhvHYSLu+kcJrNjWHELjGxZUu5NOLpPmjQ==",
1640
1488
  "license": "ISC"
1641
1489
  },
1642
1490
  "node_modules/@wavemaker/focus-trap": {
@@ -1649,8 +1497,8 @@
1649
1497
  }
1650
1498
  },
1651
1499
  "node_modules/@wavemaker/foundation-css": {
1652
- "version": "11.10.5-rc.6096",
1653
- "integrity": "sha512-39iLXNR8j8Cee5Z+b6uI0kT2FGny4X9yOnuj07VIT8p5PPqaaJaaWo8qGeb/zqdTwI9ChW5mFdIVQnA1lRAFuw==",
1500
+ "version": "11.11.0-next.27920",
1501
+ "integrity": "sha512-1Hl+g+45JXTsuuNa6NvuHHyLvs30cZ2BXgSTDj6xKjVCExjGNH4kmL8EcZCkVUtw/K/DeprBuTVwkRQdbQSUog==",
1654
1502
  "license": "ISC",
1655
1503
  "dependencies": {
1656
1504
  "chroma-js": "^3.1.2"
@@ -1665,8 +1513,8 @@
1665
1513
  }
1666
1514
  },
1667
1515
  "node_modules/@wavemaker/variables": {
1668
- "version": "11.10.5-rc.6096",
1669
- "integrity": "sha512-If2CKv3zuoC49/dM1fL7uIIJ+YGy4nQNn+Cm64w38XvOrRt15kHAdfNiMMhXuw+EJ7vyO1Ark+lzTNHDYYg8Vg==",
1516
+ "version": "11.11.0-next.27920",
1517
+ "integrity": "sha512-ibRU5GP6f+6Yuz3oXGhZ2OlWexLaUcmnpxUjznk79E7bqvBLSRhxv6GJv5rKiTh3DQYHk1Hh81o2vlf888Gi5w==",
1670
1518
  "license": "ISC",
1671
1519
  "dependencies": {
1672
1520
  "@metrichor/jmespath": "^0.3.1",
@@ -2343,8 +2191,8 @@
2343
2191
  }
2344
2192
  },
2345
2193
  "node_modules/caniuse-lite": {
2346
- "version": "1.0.30001707",
2347
- "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==",
2194
+ "version": "1.0.30001712",
2195
+ "integrity": "sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==",
2348
2196
  "dev": true,
2349
2197
  "funding": [
2350
2198
  {
@@ -3422,8 +3270,8 @@
3422
3270
  "license": "MIT"
3423
3271
  },
3424
3272
  "node_modules/electron-to-chromium": {
3425
- "version": "1.5.128",
3426
- "integrity": "sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==",
3273
+ "version": "1.5.132",
3274
+ "integrity": "sha512-QgX9EBvWGmvSRa74zqfnG7+Eno0Ak0vftBll0Pt2/z5b3bEGYL6OUXLgKPtvx73dn3dvwrlyVkjPKRRlhLYTEg==",
3427
3275
  "dev": true,
3428
3276
  "license": "ISC"
3429
3277
  },
@@ -3875,11 +3723,6 @@
3875
3723
  "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
3876
3724
  }
3877
3725
  },
3878
- "node_modules/fullcalendar": {
3879
- "version": "5.3.1",
3880
- "integrity": "sha512-qnZ0RpoWlp66+LWIQK0iT7nLPdlkR2i6uOn5fXEN7KM2VGeAlzWNFmjsMlP67UwraJdH1B0bYtQdaUK29llzkQ==",
3881
- "license": "MIT"
3882
- },
3883
3726
  "node_modules/function-bind": {
3884
3727
  "version": "1.1.2",
3885
3728
  "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
@@ -6356,6 +6199,15 @@
6356
6199
  "node": ">=8"
6357
6200
  }
6358
6201
  },
6202
+ "node_modules/preact": {
6203
+ "version": "10.12.1",
6204
+ "integrity": "sha512-l8386ixSsBdbreOAkqtrwqHwdvR35ID8c3rKPa8lCWuO86dBi32QWHV4vfsZK1utLLFMvw+Z5Ad4XLkZzchscg==",
6205
+ "license": "MIT",
6206
+ "funding": {
6207
+ "type": "opencollective",
6208
+ "url": "https://opencollective.com/preact"
6209
+ }
6210
+ },
6359
6211
  "node_modules/prettier": {
6360
6212
  "version": "1.19.1",
6361
6213
  "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
@@ -7593,8 +7445,8 @@
7593
7445
  }
7594
7446
  },
7595
7447
  "node_modules/undici-types": {
7596
- "version": "6.20.0",
7597
- "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
7448
+ "version": "6.21.0",
7449
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
7598
7450
  "license": "MIT"
7599
7451
  },
7600
7452
  "node_modules/universalify": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/angular-codegen",
3
- "version": "11.10.5-rc.6096",
3
+ "version": "11.11.0-next.27920",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -15,7 +15,7 @@
15
15
  ".npmrc"
16
16
  ],
17
17
  "dependencies": {
18
- "@wavemaker/angular-app": "11.10.5-rc.6096",
18
+ "@wavemaker/angular-app": "11.11.0-next.27920",
19
19
  "archiver": "^7.0.1",
20
20
  "cheerio": "1.0.0-rc.12",
21
21
  "decode-uri-component": "^0.2.0",
package/src/codegen.js CHANGED
@@ -1 +1 @@
1
- global._WM_APP_PROPERTIES={},global._WM_PACKAGE_PATH="./libraries",global.$=require("jquery"),global._=require("lodash");const cheerio=require("cheerio"),{deleteResource:deleteResource,getIndexHtmlPath:getIndexHtmlPath,getPagesDirPath:getPagesDirPath,readFile:readFile,searchFileByName:searchFileByName,writeFile:writeFile,readFileSync:readFileSync}=require("./wm-utils"),{createAppSkeleton:createApp}=require("./gen-app-skeleton"),{generateAppModule:generateAppModule,generateCodeGenModule:generateCodeGenModule}=require("./gen-app-codegen-module"),{generatePrefabConfigFile:generatePrefabConfigFile}=require("./gen-prefabs"),{generateAppRoutes:generateAppRoutes}=require("./gen-app-routes"),{generateAppJS:generateAppJS}=require("./gen-app-js"),{generateAppVariables:generateAppVariables}=require("./gen-app-variables"),{getWmProjectProperties:getWmProjectProperties,getThemesConfigProperties:getThemesConfigProperties,getSecurityConfig:getSecurityConfig,getAuthInfoConfig:getAuthInfoConfig,getLayoutsConfig:getLayoutsConfig,getPagesConfig:getPagesConfig,getPrefabConfigsUsedInApp:getPrefabConfigsUsedInApp,getPrefabPartialsConfig:getPrefabPartialsConfig}=require("./project-meta"),{generateTSConfig:generateTSConfig}=require("./gen-tsconfig"),{generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent}=require("./gen-components"),{generateWmProjectProperties:generateWmProjectProperties}=require("./gen-wm-project-properties"),{generateWmProjectPropertiesFromTarget:generateWmProjectPropertiesFromTarget,generateFontConfig:generateFontConfig,generateFavicon:generateFavicon,generateServiceDefs:generateServiceDefs}=require("./copy-utils"),{generateIndexHtml:generateIndexHtml}=require("./gen-index-html"),{updateAngularJSON:updateAngularJSON}=require("./update-angular-json"),{generatePwaFiles:generatePwaFiles}=require("./gen-pwa-files"),{generateLazyModuleRoutes:generateLazyModuleRoutes}=require("./gen-lazy-module-routes"),{createIntermediateAppSkeleton:createIntermediateAppSkeleton,generateLayoutsAndPages:generateLayoutsAndPages}=require("./gen-layouts"),getMarkupFiles=async e=>{const a=[];return searchFileByName(e+"/src/app",/\.html$/,e=>{a.push(e)}),a},isDynamicComponentUsedInMarkup=async e=>{const a=await readFile(e,"utf8");return cheerio.load(a)("form[wmForm][metadata],form[wmForm][metadata\\.bind],div[wmTable]:not(:has(*))").length>0},isDynamicComponentUsedInApp=async e=>{const a=await getMarkupFiles(e);return(await Promise.all(a.map(e=>isDynamicComponentUsedInMarkup(e)))).find(e=>e)},cleanPackageJSON=async(e,a)=>{const t=`${e}/package.json`;let r=readFileSync(t,!0);["@ampproject/rollup-plugin-closure-compiler","rollup","rollup-plugin-alias","rollup-plugin-commonjs","rollup-plugin-includepaths","rollup-plugin-multi-entry","rollup-plugin-node-resolve"].forEach(e=>{delete r.devDependencies[e]}),a||delete r.dependencies["@angular/service-worker"],await writeFile(t,JSON.stringify(r,null,4))},generateIntermediateApp=async(e,a)=>{console.time("create-intermediate-app"),await createIntermediateAppSkeleton(e,a),await generateLayoutsAndPages(a),console.timeEnd("create-intermediate-app")},generateSources=async(e,a,t,r,n,o,i)=>{console.time("generate app-sources"),await Promise.all([deleteResource(`${a}/src/app/layouts`),deleteResource(`${a}/src/app/pages`),deleteResource(`${a}/src/app/partials`),deleteResource(`${a}/src/app/prefabs`),deleteResource(`${a}/src/app/customwidgets`)]);const g=readFileSync(`${a}/angular.json`);global._WM_PACKAGE_PATH=g.includes("./node_modules/@wavemaker/app-ng-runtime/")?"./node_modules/@wavemaker/app-ng-runtime":"./libraries";const p=await getWmProjectProperties(e),s=await getThemesConfigProperties(e),l=await getSecurityConfig(e),c=await getAuthInfoConfig(e);let u;o&&(u=await getLayoutsConfig(e));const m=await getPagesConfig(e),d=await getPrefabConfigsUsedInApp(p,e);let P={};for(const a of d.keys())P[a]=await getPrefabPartialsConfig(e,a);await Promise.all([generateIndexHtml(e,a,p,t,r,i),generateWmProjectProperties(p,a),generateWmProjectPropertiesFromTarget(e,a),generateFontConfig(e,a),generateFavicon(e,a),generateServiceDefs(e,a),generateAppRoutes(e,p,u,m,l,a,o),generateLazyModuleRoutes(m,d,P,a),generatePrefabConfigFile(d,a),generateCodeGenModule(p,m,d,c,a),generateTSConfig(p,a),generateAppJS(e,a),generateAppVariables(e,a,n),generateComponents(e,p,u,m,l,d,a,P,n,o)]);const f=await isDynamicComponentUsedInApp(a),A={aot:!f,buildOptimizer:!f};await generateAppModule(p,a,f,r),await updateAngularJSON(e,a,p,s,m,d,t,A,P,r),await cleanPackageJSON(a,r),r&&await generatePwaFiles(e,a,p),console.timeEnd("generate app-sources")},createAppSkeleton=async(e,a,t,r)=>{console.time("create-angular-app"),await createApp(e,a,t,r),console.timeEnd("create-angular-app")},generatePage=async(e,a,t,r)=>{console.time("generate page",t);const n=getPagesDirPath(e),o=await getWmProjectProperties(e),i=await getPagesConfig(e),g=_.find(i,{name:t}),p="PAGE"===g.type?"pages":"partials";await deleteResource(`${a}/src/app/${p}/${t}`),await generatePagePartialComponent(n,o,g.name,g.type,a,void 0,void 0,r),console.timeEnd("generate page",t)};module.exports={generateIntermediateApp:generateIntermediateApp,generateSources:generateSources,createAppSkeleton:createAppSkeleton,generatePage:generatePage};
1
+ global._WM_APP_PROPERTIES={},global._WM_PACKAGE_PATH="./libraries",global.$=require("jquery"),global._=require("lodash");const cheerio=require("cheerio"),{deleteResource:deleteResource,getIndexHtmlPath:getIndexHtmlPath,getPagesDirPath:getPagesDirPath,readFile:readFile,searchFileByName:searchFileByName,writeFile:writeFile,readFileSync:readFileSync}=require("./wm-utils"),{createAppSkeleton:createApp}=require("./gen-app-skeleton"),{generateCodeGenModule:generateCodeGenModule,generateAppConfig:generateAppConfig}=require("./gen-app-codegen-module"),{generatePrefabConfigFile:generatePrefabConfigFile}=require("./gen-prefabs"),{generateAppRoutes:generateAppRoutes}=require("./gen-app-routes"),{generateAppJS:generateAppJS}=require("./gen-app-js"),{generateAppVariables:generateAppVariables}=require("./gen-app-variables"),{getWmProjectProperties:getWmProjectProperties,getThemesConfigProperties:getThemesConfigProperties,getSecurityConfig:getSecurityConfig,getAuthInfoConfig:getAuthInfoConfig,getLayoutsConfig:getLayoutsConfig,getPagesConfig:getPagesConfig,getPrefabConfigsUsedInApp:getPrefabConfigsUsedInApp,getPrefabPartialsConfig:getPrefabPartialsConfig}=require("./project-meta"),{generateTSConfig:generateTSConfig}=require("./gen-tsconfig"),{generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent}=require("./gen-components"),{generateWmProjectProperties:generateWmProjectProperties}=require("./gen-wm-project-properties"),{generateWmProjectPropertiesFromTarget:generateWmProjectPropertiesFromTarget,generateFontConfig:generateFontConfig,generateFavicon:generateFavicon,generateServiceDefs:generateServiceDefs}=require("./copy-utils"),{generateIndexHtml:generateIndexHtml}=require("./gen-index-html"),{updateAngularJSON:updateAngularJSON}=require("./update-angular-json"),{generatePwaFiles:generatePwaFiles}=require("./gen-pwa-files"),{generateLazyModuleRoutes:generateLazyModuleRoutes}=require("./gen-lazy-module-routes"),{createIntermediateAppSkeleton:createIntermediateAppSkeleton,generateLayoutsAndPages:generateLayoutsAndPages}=require("./gen-layouts"),getMarkupFiles=async e=>{const a=[];return searchFileByName(e+"/src/app",/\.html$/,e=>{a.push(e)}),a},isDynamicComponentUsedInMarkup=async e=>{const a=await readFile(e,"utf8");return cheerio.load(a)("form[wmForm][metadata],form[wmForm][metadata\\.bind],div[wmTable]:not(:has(*))").length>0},isDynamicComponentUsedInApp=async e=>{const a=await getMarkupFiles(e);return(await Promise.all(a.map(e=>isDynamicComponentUsedInMarkup(e)))).find(e=>e)},cleanPackageJSON=async(e,a)=>{const t=`${e}/package.json`;let r=readFileSync(t,!0);["@ampproject/rollup-plugin-closure-compiler","rollup","rollup-plugin-alias","rollup-plugin-commonjs","rollup-plugin-includepaths","rollup-plugin-multi-entry","rollup-plugin-node-resolve"].forEach(e=>{delete r.devDependencies[e]}),a||delete r.dependencies["@angular/service-worker"],await writeFile(t,JSON.stringify(r,null,4))},generateIntermediateApp=async(e,a)=>{console.time("create-intermediate-app"),await createIntermediateAppSkeleton(e,a),await generateLayoutsAndPages(a),console.timeEnd("create-intermediate-app")},generateSources=async(e,a,t,r,n,o,i)=>{console.time("generate app-sources"),await Promise.all([deleteResource(`${a}/src/app/layouts`),deleteResource(`${a}/src/app/pages`),deleteResource(`${a}/src/app/partials`),deleteResource(`${a}/src/app/prefabs`),deleteResource(`${a}/src/app/customwidgets`)]);const g=readFileSync(`${a}/angular.json`);global._WM_PACKAGE_PATH=g.includes("./node_modules/@wavemaker/app-ng-runtime/")?"./node_modules/@wavemaker/app-ng-runtime":"./libraries";const p=await getWmProjectProperties(e),s=await getThemesConfigProperties(e),l=await getSecurityConfig(e),c=await getAuthInfoConfig(e);let u;o&&(u=await getLayoutsConfig(e));const m=await getPagesConfig(e),d=await getPrefabConfigsUsedInApp(p,e);let P={};for(const a of d.keys())P[a]=await getPrefabPartialsConfig(e,a);await Promise.all([generateIndexHtml(e,a,p,t,r,i),generateWmProjectProperties(p,a),generateWmProjectPropertiesFromTarget(e,a),generateFontConfig(e,a),generateFavicon(e,a),generateServiceDefs(e,a),generateAppRoutes(e,p,u,m,l,a,o,null!==l),generateLazyModuleRoutes(m,d,P,a),generatePrefabConfigFile(d,a),generateTSConfig(p,a),generateAppJS(e,a),generateAppVariables(e,a,n),generateComponents(e,p,u,m,l,d,a,P,n,o)]);const f=await isDynamicComponentUsedInApp(a),C={aot:!f,buildOptimizer:!f};await generateAppConfig(a,r,c,o),await updateAngularJSON(e,a,p,s,m,d,t,C,P,r),await cleanPackageJSON(a,r),r&&await generatePwaFiles(e,a,p),console.timeEnd("generate app-sources")},createAppSkeleton=async(e,a,t,r)=>{console.time("create-angular-app"),await createApp(e,a,t,r),console.timeEnd("create-angular-app")},generatePage=async(e,a,t,r)=>{console.time("generate page",t);const n=getPagesDirPath(e),o=await getWmProjectProperties(e),i=await getPagesConfig(e),g=_.find(i,{name:t}),p="PAGE"===g.type?"pages":"partials";await deleteResource(`${a}/src/app/${p}/${t}`),await generatePagePartialComponent(n,o,g.name,g.type,a,void 0,void 0,r),console.timeEnd("generate page",t)};module.exports={generateIntermediateApp:generateIntermediateApp,generateSources:generateSources,createAppSkeleton:createAppSkeleton,generatePage:generatePage};
@@ -1 +1 @@
1
- const _get=require("lodash/get"),{writeFile:writeFile,isMobileProject:isMobileProject}=require("./wm-utils"),{getHandlebarTemplate:getHandlebarTemplate}=require("./handlebar-helpers"),generateCodeGenModule=async(e,a,o,t,r)=>{const l=getHandlebarTemplate("app-codegen-module")({wmProjectProperties:e,pagesConfig:a,prefabConfigMap:o,xsrfTokenHeaderName:_get(t,"csrfConfig.headerName","X-WM-XSRF-TOKEN")});await writeFile(`${r}/src/app/app-codegen.module.ts`,l)},generateAppModule=async(e,a,o,t)=>{const r=getHandlebarTemplate("app-module-ts")({loadAllComponents:o,isMobileApp:isMobileProject(e),isPwa:t});await writeFile(`${a}/src/app/app.module.ts`,r)};module.exports={generateCodeGenModule:generateCodeGenModule,generateAppModule:generateAppModule};
1
+ const _get=require("lodash/get"),{writeFile:writeFile,isMobileProject:isMobileProject}=require("./wm-utils"),{getHandlebarTemplate:getHandlebarTemplate}=require("./handlebar-helpers"),generateCodeGenModule=async(e,a,r,t,n)=>{const o=getHandlebarTemplate("app-codegen-module")({wmProjectProperties:e,pagesConfig:a,prefabConfigMap:r,xsrfTokenHeaderName:_get(t,"csrfConfig.headerName","X-WM-XSRF-TOKEN")});await writeFile(`${n}/src/app/app-codegen.module.ts`,o)},generateAppConfig=async(e,a,r,t)=>{const n=getHandlebarTemplate("app-config-ts")({isPwa:a,xsrfTokenHeaderName:_get(r,"csrfConfig.headerName","X-WM-XSRF-TOKEN"),enableSpa:t});await writeFile(`${e}/src/app/app.config.ts`,n)};module.exports={generateCodeGenModule:generateCodeGenModule,generateAppConfig:generateAppConfig};
@@ -1 +1 @@
1
- const{writeFile:writeFile,formatContents:formatContents}=require("./wm-utils"),{getHandlebarTemplate:getHandlebarTemplate}=require("./handlebar-helpers"),generateAppRoutes=async(e,t,a,r,o,n,p)=>{const s=getHandlebarTemplate("app-routes")({wmProjectProperties:t,layoutsConfig:a,pagesConfig:r,securityConfig:o,enableSpa:p});await writeFile(`${n}/src/app/app.routes.ts`,formatContents(s))};module.exports={generateAppRoutes:generateAppRoutes};
1
+ const{writeFile:writeFile,formatContents:formatContents}=require("./wm-utils"),{getHandlebarTemplate:getHandlebarTemplate}=require("./handlebar-helpers"),generateAppRoutes=async(e,t,a,r,n,o,p,s)=>{const i=getHandlebarTemplate("app-routes")({wmProjectProperties:t,layoutsConfig:a,pagesConfig:r,securityConfig:n,enableSpa:p,enableSecurity:s});await writeFile(`${o}/src/app/app.routes.ts`,formatContents(i))};module.exports={generateAppRoutes:generateAppRoutes};
@@ -1 +1 @@
1
- const{createDir:createDir,writeFile:writeFile,isPrefabProject:isPrefabProject,getLayoutsDirPath:getLayoutsDirPath,getPagesDirPath:getPagesDirPath,formatContents:formatContents,getComponentName:getComponentName,getComponentModuleName:getComponentModuleName,getPrefabPagesDirPath:getPrefabPagesDirPath}=require("./wm-utils"),fs=require("fs"),cheerio=require("cheerio"),{getPageContents:getPageContents,getCustomWidgetPageContents:getCustomWidgetPageContents}=require("./pages-util"),{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),{generateCustomWidgetConfigFile:generateCustomWidgetConfigFile}=require("./gen-customwidget-config");let customWidgetConfigMap=new Map;const writeComponentHtmlFile=async(e,t,a)=>{const n=`${a}/${e}.component.html`;await writeFile(n,t.string)},writeComponentCssFile=async(e,t,a)=>{const n=`${a}/${e}.component.css`;await writeFile(n,t.string)},writeComponentVariablesFile=async(e,t,a,n)=>{let o=getHandlebarTemplate(e)({variables:a});await writeFile(`${n}/${t}.component.variables.ts`,formatContents(o))},writeComponentConfigFile=async(e,t,a,n)=>{let o=getHandlebarTemplate(e)({config:a});await writeFile(`${n}/${t}.component.config.ts`,formatContents(o))},writeComponentJsFile=async(e,t,a,n)=>{const o=getHandlebarTemplate(e)({jsContent:a});await writeFile(`${n}/${t}.component.script.js`,formatContents(o,"javascript"))},writeComponentExpressionsFile=async(e,t,a,n)=>{const o=getHandlebarTemplate(e)({expressions:a});await writeFile(`${n}/${t}.component.expressions.ts`,formatContents(o,"javascript"))},writeComponentTsFile=async(e,t,a,n,o,i,r=[])=>{let s=getHandlebarTemplate(e)({name:t,prefabName:a,componentName:getComponentName(t),enableSpa:o,layoutPages:safeString(JSON.stringify(i)),requiredWMComponents:r});await writeFile(`${n}/${t}.component.ts`,s)},writePagePartialModuleTsFile=async(e,t,a,n,o,i,r=!1,s,m,p,g)=>{let l=getHandlebarTemplate(e)({name:t,componentName:getComponentName(t),moduleName:getComponentModuleName(t),requiredPartials:n,requiredPrefabs:o,requiredWMComponents:i,hasCustomElement:r,insidePrefab:!!s,pagesConfig:m,securityConfig:p,requireCustomComponents:g});await writeFile(`${a}/${t}.module.ts`,l)},writePrefabModuleTsFile=async(e,t,a,n=!1,o)=>{let i=getHandlebarTemplate("prefab-module-ts")({name:e,componentName:getComponentName(e),moduleName:getComponentModuleName(e),requiredPartials:o,requiredWMComponents:a,hasCustomElement:n});await writeFile(`${t}/${e}.module.ts`,i)},generateComponent=async(e,t,a,n,o,i,r,s,m,p=!1)=>{await createDir(e,{recursive:!0});const{markup:g,styles:l,variables:c,script:d,expressions:u}=n,C=[writeComponentHtmlFile(t,safeString(g),e),writeComponentTsFile(o,t,a,e,s,m,n.requiredWMComponents)];return p||writeComponentExpressionsFile("component-expressions",t,safeString(u),e),r||C.concat([writeComponentCssFile(t,safeString(l),e),writeComponentVariablesFile("component-variables",t,safeString(c),e),writeComponentJsFile(i,t,safeString(d),e)]),Promise.all(C)},findRequiredPartials=e=>{const t={};return e("[partialContainer]").map((t,a)=>e(a).attr("content")).toArray().map(e=>({type:"PARTIAL",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},findRequiredPrefabs=e=>{const t={};return e("[wmPrefab]").map((t,a)=>e(a).attr("prefabname")).toArray().map(e=>({type:"PREFAB",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},findRequiredCustomWidgets=e=>{const t={};return e("[customWidgetContainer]").map((t,a)=>e(a).attr("widgetname")).toArray().map(e=>({type:"CUSTOMWIDGET",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},generateCustomWidgetsComponent=async(e,t,a,n)=>{let o,i,r,s;{if(s=`${t}/src/app/customwidgets/${e}`,o="customwidget-component-ts",i="customwidget-component-script",r="customwidget-module-ts",fs.existsSync(`${s}/${e}.component.ts`))return;const a=require("../dependencies/custom-widgets-bundle.cjs.js"),m=await getCustomWidgetPageContents(a,e);n.set(e,m.config);try{const t=cheerio.load(m.markup);findRequiredPartials(t),findRequiredPrefabs(t);await generateComponent(s,e,void 0,m,"customwidget-component-ts","customwidget-component-script",!1,void 0,void 0,!0)}catch(e){throw console.log("failed in "+pageName),e}}};convertHTMLStructure=(e=>{let t=e.replace(/<div\s+wmWidgetContainer\s+customWidgetContainer\s+#wm_custom_widget\d+="wmWidgetContainer"\s+widgetname="([^"]+)"\s+name="([^"]+)"\s*(.*?)\s*\/?>\s*<\/div>/g,(e,t,a,n)=>{let o;return`<${o=`app-custom-${t}`} wmWidgetContainer #wm_custom_widget${a.match(/\d+/)[0]}="wmWidgetContainer" widgetname="${t}" name="${a}" ${n}></${o}>`});return t=modifyFormFields(t)}),modifyFormFields=(e=>{if(/wmWidgetContainer/.test(e)&&/#formWidget/.test(e)){return e.replace(/<div\s+wmWidgetContainer\s+customWidgetContainer(.*?)<\/div>/g,(e,t)=>{let a=t.match(/widgetname=(\w+)/),n=a?a[1]:"div";return`<app-custom-${n} wmWidgetContainer ${t.replace(/customWidgetContainer/,"").trim()}></app-custom-${n}>`})}return e});const generatePagePartialComponent=async(e,t,a,n,o,i,r,s,m,p,g,l)=>{let c,d,u,C,f;if("PAGE"===n?(C=`${o}/src/app/pages/${a}`,c="page-component-ts",d="page-component-script",u="page-module-ts"):"LAYOUT"===n?(C=`${o}/src/app/layouts/${a}`,c="layout-component-ts",u="layout-module-ts",f=p.filter(e=>"PAGE"===e.type&&e.layout===a).map(e=>e.name)):(C=i?`${o}/partials/${a}`:`${o}/src/app/partials/${a}`,c="partial-component-ts",d="partial-component-script",u="partial-module-ts"),fs.existsSync(`${C}/${a}.component.ts`))return;let w=`${e}/${a}`;i&&(w=`${getPrefabPagesDirPath(r,i)}/${a}`);const P=await getPageContents(t,w,`${a}`,a,n,void 0,s);try{const e=cheerio.load(P.markup),l=findRequiredPartials(e),w=findRequiredPrefabs(e),$=findRequiredCustomWidgets(e)||void 0;for(const e of l){const a=getPagesDirPath(r);await generatePagePartialComponent(a,t,e.name,e.type,o,i,r,s,m)}for(const e of $)await generateCustomWidgetsComponent(e.name,o,0,customWidgetConfigMap);$.length&&await generateCustomWidgetConfigFile(customWidgetConfigMap,o),P.markup=convertHTMLStructure(P.markup),await generateComponent(C,a,void 0,P,c,d,"LAYOUT"===n,m,f),await writePagePartialModuleTsFile(u,a,C,l,w,P.requiredWMComponents,P.hasCustomElement,i,p,g,$)}catch(e){throw console.log("failed in "+a),e}},generateComponents=async(e,t,a,n,o,i,r,s,m,p)=>{const g=getPagesDirPath(e);customWidgetConfigMap=new Map;for(const a of i.keys()){const n="__self__"===a?`${g}/Main`:`${getPrefabPagesDirPath(e,a)}/Main`,o=await getPageContents(t,n,"Main",a,"PREFAB",i.get(a),m),c=`${r}/src/app/prefabs/${a}`,d=cheerio.load(o.markup),u=findRequiredPartials(d);await generateComponent(c,a,a,o,"prefab-component-ts","prefab-component-script",!1,p);const C=s[a];for(var l=0;l<C.length;l++)await generatePagePartialComponent(g,t,C[l].name,C[l].type,c,a,e,m,p);await writePrefabModuleTsFile(a,c,o.requiredWMComponents,o.hasCustomElement,u)}if(!isPrefabProject(t)){if(p){const i=getLayoutsDirPath(e);for(let s of a)await generateLayoutComponent(i,t,s.name,s.type,r,s.prefabName,e,m,p,n,o)}for(let a of n)await generatePagePartialComponent(g,t,a.name,a.type,r,a.prefabName,e,m,p)}},generateLayoutComponent=async(e,t,a,n,o,i,r,s,m,p,g)=>{await generatePagePartialComponent(e,t,a,n,o,i,r,s,m,p,g)};module.exports={generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent};
1
+ const{createDir:createDir,writeFile:writeFile,isPrefabProject:isPrefabProject,getLayoutsDirPath:getLayoutsDirPath,getPagesDirPath:getPagesDirPath,formatContents:formatContents,getComponentName:getComponentName,getComponentModuleName:getComponentModuleName,getPrefabPagesDirPath:getPrefabPagesDirPath}=require("./wm-utils"),fs=require("fs"),cheerio=require("cheerio"),{getPageContents:getPageContents,getCustomWidgetPageContents:getCustomWidgetPageContents}=require("./pages-util"),{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),{generateCustomWidgetConfigFile:generateCustomWidgetConfigFile}=require("./gen-customwidget-config");let customWidgetConfigMap=new Map;const writeComponentHtmlFile=async(e,t,a)=>{const n=`${a}/${e}.component.html`;await writeFile(n,t.string)},writeComponentCssFile=async(e,t,a)=>{const n=`${a}/${e}.component.css`;await writeFile(n,t.string)},writeComponentVariablesFile=async(e,t,a,n)=>{let o=getHandlebarTemplate(e)({variables:a});await writeFile(`${n}/${t}.component.variables.ts`,formatContents(o))},writeComponentConfigFile=async(e,t,a,n)=>{let o=getHandlebarTemplate(e)({config:a});await writeFile(`${n}/${t}.component.config.ts`,formatContents(o))},writeComponentJsFile=async(e,t,a,n)=>{const o=getHandlebarTemplate(e)({jsContent:a});await writeFile(`${n}/${t}.component.script.js`,formatContents(o,"javascript"))},writeComponentExpressionsFile=async(e,t,a,n)=>{const o=getHandlebarTemplate(e)({expressions:a});await writeFile(`${n}/${t}.component.expressions.ts`,formatContents(o,"javascript"))},writeComponentTsFile=async(e,t,a,n,o,i,r=[],s=[],m=[])=>{let p=getHandlebarTemplate(e)({name:t,prefabName:a,componentName:getComponentName(t),enableSpa:o,layoutPages:safeString(JSON.stringify(i)),requiredWMComponents:r,requireCustomComponents:s,requiredPartials:m});await writeFile(`${n}/${t}.component.ts`,p)},writePagePartialModuleTsFile=async(e,t,a,n,o,i,r=!1,s,m,p,g)=>{let l=getHandlebarTemplate(e)({name:t,componentName:getComponentName(t),moduleName:getComponentModuleName(t),requiredPartials:n,requiredPrefabs:o,requiredWMComponents:i,hasCustomElement:r,insidePrefab:!!s,pagesConfig:m,securityConfig:p,requireCustomComponents:g});await writeFile(`${a}/${t}.module.ts`,l)},writePrefabModuleTsFile=async(e,t,a,n=!1,o)=>{let i=getHandlebarTemplate("prefab-module-ts")({name:e,componentName:getComponentName(e),moduleName:getComponentModuleName(e),requiredPartials:o,requiredWMComponents:a,hasCustomElement:n});await writeFile(`${t}/${e}.module.ts`,i)},generateComponent=async(e,t,a,n,o,i,r,s,m,p=!1,g,l)=>{await createDir(e,{recursive:!0});const{markup:c,styles:d,variables:u,script:C,expressions:f}=n,w=[writeComponentHtmlFile(t,safeString(c),e),writeComponentTsFile(o,t,a,e,s,m,n.requiredWMComponents,g,l)];return p||writeComponentExpressionsFile("component-expressions",t,safeString(f),e),r||w.concat([writeComponentCssFile(t,safeString(d),e),writeComponentVariablesFile("component-variables",t,safeString(u),e),writeComponentJsFile(i,t,safeString(C),e)]),Promise.all(w)},findRequiredPartials=e=>{const t={};return e("[partialContainer]").map((t,a)=>e(a).attr("content")).toArray().map(e=>({type:"PARTIAL",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},findRequiredPrefabs=e=>{const t={};return e("[wmPrefab]").map((t,a)=>e(a).attr("prefabname")).toArray().map(e=>({type:"PREFAB",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},findRequiredCustomWidgets=e=>{const t={};return e("[customWidgetContainer]").map((t,a)=>e(a).attr("widgetname")).toArray().map(e=>({type:"CUSTOMWIDGET",name:e.trim()})).filter(e=>!t[e.name]&&(t[e.name]=!0))},generateCustomWidgetsComponent=async(e,t,a,n)=>{let o,i,r,s;{if(s=`${t}/src/app/customwidgets/${e}`,o="customwidget-component-ts",i="customwidget-component-script",r="customwidget-module-ts",fs.existsSync(`${s}/${e}.component.ts`))return;const a=require("../dependencies/custom-widgets-bundle.cjs.js"),m=await getCustomWidgetPageContents(a,e);n.set(e,m.config);try{const t=cheerio.load(m.markup),a=findRequiredPartials(t),n=(findRequiredPrefabs(t),findRequiredCustomWidgets(t)||void 0);await generateComponent(s,e,void 0,m,"customwidget-component-ts","customwidget-component-script",!1,void 0,void 0,!0,n,a)}catch(e){throw console.log("failed in "+pageName),e}}};convertHTMLStructure=(e=>{let t=e.replace(/<div\s+wmWidgetContainer\s+customWidgetContainer\s+#wm_custom_widget\d+="wmWidgetContainer"\s+widgetname="([^"]+)"\s+name="([^"]+)"\s*(.*?)\s*\/?>\s*<\/div>/g,(e,t,a,n)=>{let o;return`<${o=`app-custom-${t}`} wmWidgetContainer #wm_custom_widget${a.match(/\d+/)[0]}="wmWidgetContainer" widgetname="${t}" name="${a}" ${n}></${o}>`});return t=modifyFormFields(t)}),modifyFormFields=(e=>{if(/wmWidgetContainer/.test(e)&&/#formWidget/.test(e)){return e.replace(/<div\s+wmWidgetContainer\s+customWidgetContainer(.*?)<\/div>/g,(e,t)=>{let a=t.match(/widgetname=(\w+)/),n=a?a[1]:"div";return`<app-custom-${n} wmWidgetContainer ${t.replace(/customWidgetContainer/,"").trim()}></app-custom-${n}>`})}return e});const generatePagePartialComponent=async(e,t,a,n,o,i,r,s,m,p,g,l)=>{let c,d,u,C,f;if("PAGE"===n?(C=`${o}/src/app/pages/${a}`,c="page-component-ts",d="page-component-script"):"LAYOUT"===n?(C=`${o}/src/app/layouts/${a}`,c="layout-component-ts",f=p.filter(e=>"PAGE"===e.type&&e.layout===a).map(e=>e.name)):(C=i?`${o}/partials/${a}`:`${o}/src/app/partials/${a}`,c="partial-component-ts",d="partial-component-script",u="partial-module-ts"),fs.existsSync(`${C}/${a}.component.ts`))return;let w=`${e}/${a}`;i&&(w=`${getPrefabPagesDirPath(r,i)}/${a}`);const P=await getPageContents(t,w,`${a}`,a,n,void 0,s);try{const e=cheerio.load(P.markup),l=findRequiredPartials(e),w=findRequiredPrefabs(e),$=findRequiredCustomWidgets(e)||void 0;for(const e of l){const a=getPagesDirPath(r);await generatePagePartialComponent(a,t,e.name,e.type,o,i,r,s,m)}for(const e of $)await generateCustomWidgetsComponent(e.name,o,0,customWidgetConfigMap);$.length&&await generateCustomWidgetConfigFile(customWidgetConfigMap,o),P.markup=convertHTMLStructure(P.markup),await generateComponent(C,a,void 0,P,c,d,"LAYOUT"===n,m,f,void 0,$,l),u&&await writePagePartialModuleTsFile(u,a,C,l,w,P.requiredWMComponents,P.hasCustomElement,i,p,g,$)}catch(e){throw console.log("failed in "+a),e}},generateComponents=async(e,t,a,n,o,i,r,s,m,p)=>{const g=getPagesDirPath(e);customWidgetConfigMap=new Map;for(const a of i.keys()){const n="__self__"===a?`${g}/Main`:`${getPrefabPagesDirPath(e,a)}/Main`,o=await getPageContents(t,n,"Main",a,"PREFAB",i.get(a),m),c=`${r}/src/app/prefabs/${a}`,d=cheerio.load(o.markup),u=findRequiredCustomWidgets(d)||void 0,C=findRequiredPartials(d);await generateComponent(c,a,a,o,"prefab-component-ts","prefab-component-script",!1,p,void 0,!1,u,C);const f=s[a];for(var l=0;l<f.length;l++)await generatePagePartialComponent(g,t,f[l].name,f[l].type,c,a,e,m,p);await writePrefabModuleTsFile(a,c,o.requiredWMComponents,o.hasCustomElement,C)}if(!isPrefabProject(t)){if(p){const i=getLayoutsDirPath(e);for(let s of a)await generateLayoutComponent(i,t,s.name,s.type,r,s.prefabName,e,m,p,n,o)}for(let a of n)await generatePagePartialComponent(g,t,a.name,a.type,r,a.prefabName,e,m,p)}},generateLayoutComponent=async(e,t,a,n,o,i,r,s,m,p,g)=>{await generatePagePartialComponent(e,t,a,n,o,i,r,s,m,p,g)};module.exports={generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent};
@@ -1 +1 @@
1
- const{getIndexHtmlPath:getIndexHtmlPath,readFile:readFile,writeFile:writeFile,isMobileProject:isMobileProject,createDir:createDir}=require("./wm-utils"),{addToScripts:addToScripts}=require("./update-angular-json"),cheerio=require("cheerio"),prettier=require("prettier"),isResourceJS=e=>/^resources\/./.test(e),generateIndexHtml=async(e,r,t,i,n,s)=>{const o=await readFile(getIndexHtmlPath(e),"utf8"),a=cheerio.load(o);let c=[],l=[],m=!1,p=0,d=[];const h=["application/ld+json"];await createDir(r+"/resources/wm-inline",{recursive:!0}),a("script").each((e,r)=>{d.push(r)});for(const e of d){let t=a(e).attr("src");if(t)!m&&t.includes("wm-libs.min.js")&&(m=!0),isResourceJS(t)&&(m?l.push(t):c.push(t),a(e).remove());else if(!h.includes(a(e).attr("type"))){t=`resources/wm-inline/wm-inline-${++p}.js`;try{await writeFile(`${r}/${t}`,a(e).html()),m?l.push(t):c.push(t),a(e).remove()}catch(e){console.log(`WM-CODEGEN | Error in inline script generation | ${e}`)}}}await addToScripts(e,r,c,l),a('script[src$="/wm-loader.min.js"]').remove(),a('script[src$="/wm-libs.min.js"]').remove(),a('script[src$="/wm-mobileloader.min.js"]').remove();const u=a('meta[name="description"]');u.attr("content")||u.attr("content","App built on wavemaker"),isMobileProject(t)&&a("body").append(a('script[src="cordova.js"]')),a('link[href$="/wm-style.css"]').remove(),a('link[href="print.css"]').remove(),a('link[theme="wmtheme"]').remove(),a('link[href$="wm-responsive.css"]').remove(),a('link[href^="themes"][href$="style.css"]').remove(),a('link[href="app.css"]').remove(),a('link[href$="foundation.css"]').remove(),a('link[href$="app.override.css"]').remove(),a("*").contents().each(function(){8===this.nodeType&&a(this).remove()});process.env.APPMETRICS_ENABLED,process.env.APPMETRICS_SERVER_URL;i?a('meta[name="cdnUrl"]').attr("content",i):a('meta[name="cdnUrl"]').remove(),s&&a("head").append('<meta name="apiUrl" content="'+s+'" />'),a('link[href^="favicon."]').attr("rel","icon"),n&&(a("head").append('<meta name="theme-color" content="#2c3049" />'),a("head").append('<link rel="manifest" href="manifest.json">'),a("head").append('<link rel="apple-touch-icon" href="ng-bundle/assets/icons/icon-192x192.png">')),await writeFile(`${r}/src/index.html`,prettier.format(a.html(),{htmlWhitespaceSensitivity:"ignore",parser:"html",tabWidth:4}))};module.exports={generateIndexHtml:generateIndexHtml};
1
+ const{getIndexHtmlPath:getIndexHtmlPath,readFile:readFile,writeFile:writeFile,isMobileProject:isMobileProject,createDir:createDir}=require("./wm-utils"),{addToScripts:addToScripts}=require("./update-angular-json"),cheerio=require("cheerio"),prettier=require("prettier"),isResourceJS=e=>/^resources\/./.test(e),generateIndexHtml=async(e,r,t,i,n,s)=>{const o=await readFile(getIndexHtmlPath(e),"utf8"),a=cheerio.load(o);let c=[],l=[],m=!1,p=0,d=[];const h=["application/ld+json"];await createDir(r+"/resources/wm-inline",{recursive:!0}),a("script").each((e,r)=>{d.push(r)});for(const e of d){let t=a(e).attr("src");if(t)!m&&t.includes("wm-libs.min.js")&&(m=!0),isResourceJS(t)&&(m?l.push(t):c.push(t),a(e).remove());else if(!h.includes(a(e).attr("type"))){t=`resources/wm-inline/wm-inline-${++p}.js`;try{await writeFile(`${r}/${t}`,a(e).html()),m?l.push(t):c.push(t),a(e).remove()}catch(e){console.log(`WM-CODEGEN | Error in inline script generation | ${e}`)}}}await addToScripts(e,r,c,l),a('script[src$="/wm-loader.min.js"]').remove(),a('script[src$="/wm-libs.min.js"]').remove(),a('script[src$="/wm-mobileloader.min.js"]').remove();const u=a('meta[name="description"]');u.attr("content")||u.attr("content","App built on wavemaker"),isMobileProject(t)&&a("body").append(a('script[src="cordova.js"]')),a('link[href$="/wm-style.css"]').remove(),a('link[href="print.css"]').remove(),a('link[theme="wmtheme"]').remove(),a('link[href$="wm-responsive.css"]').remove(),a('link[href^="themes"][href$="style.css"]').remove(),a('link[href="app.css"]').remove(),a('link[href$="foundation.css"]').remove(),a('link[href$="app.override.css"]').remove(),a("*").contents().each(function(){8===this.nodeType&&a(this).remove()});process.env.APPMETRICS_ENABLED,process.env.APPMETRICS_SERVER_URL;i?a('meta[name="cdnUrl"]').attr("content",i):a('meta[name="cdnUrl"]').remove(),s&&a("head").append('<meta name="apiUrl" content="'+s+'" />'),a('link[href^="favicon."]').attr("rel","icon"),n&&(a("head").append('<meta name="theme-color" content="#2c3049" />'),a("head").append('<link rel="manifest" href="manifest.json">'),a("head").append('<link rel="apple-touch-icon" href="ng-bundle/assets/icons/icon-192x192.png">')),a("app-root").before("<bootstrap-wrapper></bootstrap-wrapper>"),await writeFile(`${r}/src/index.html`,prettier.format(a.html(),{htmlWhitespaceSensitivity:"ignore",parser:"html",tabWidth:4}))};module.exports={generateIndexHtml:generateIndexHtml};
@@ -1 +1 @@
1
- const{deleteResource:deleteResource,createDir:createDir,writeFile:writeFile,readFile:readFile,getPagesDirPath:getPagesDirPath,getLayoutsDirPath:getLayoutsDirPath}=require("./wm-utils"),{getPagesConfig:getPagesConfig}=require("./project-meta"),util=require("util"),cheerio=require("cheerio"),{safeString:safeString}=require("./handlebar-helpers"),{formatMarkup:formatMarkup}=require("./wm-utils"),path=require("path"),ncp=util.promisify(require("ncp").ncp),createIntermediateAppSkeleton=async(e,t)=>{await deleteResource(t),await createDir(t,{recursive:!0}),await ncp(e,t,{filter:t=>!path.relative(e,t).startsWith("target")})},generateLayoutsAndPages=async e=>{const t=getLayoutsDirPath(e);await createDir(t,{recursive:!0});const a=await getPagesConfig(e),r=getPagesDirPath(e),n=[],i=[];for(let e of a)if("PAGE"===e.type){const a=await readFile(`${r}/${e.name}/${e.name}.html`,"utf8"),o=cheerio.load(a),l=o("wm-page"),s=o("wm-page-content");["wm-alertdialog","wm-confirmdialog","wm-dialog","wm-iframedialog","wm-pagedialog","wm-logindialog"].forEach(e=>{const t=o(e);t.length&&s.append(t)});const u=await getLayoutMarkup(o,l,s,n);u.markup&&(n.push({name:u.name,layoutInfo:u.layoutInfo}),i.push({name:u.name,type:"LAYOUT"}),await createDir(`${t}/${u.name}`,{recursive:!0}),await writeFile(`${t}/${u.name}/${u.name}.html`,u.markup)),e.layout=u.name,s.attr("spa","true"),s.attr("columnwidth","12"),s.attr(l.attr()),s.attr("layout",u.name);const g=formatMarkup(safeString(s.toString()).string);await writeFile(`${r}/${e.name}/${e.name}.html`,g)}await writeFile(`${r}/pages-config.json`,JSON.stringify(a,null,4)),await writeFile(`${t}/layouts-config.json`,JSON.stringify(i,null,4))},getLayoutMarkup=async(e,t,a,r)=>{const n=getLayoutInfo(e);let i=getLayoutName(n,r);if(i)return{name:i};{const o=r.length+1;i=`layout_${o}`,n.leftNav&&e("wm-left-panel").attr("spa","true");const l=e("<wm-router-outlet>");l.attr("columnwidth",a.attr().columnwidth),e("wm-page-content").replaceWith(l);const s=e("<wm-layout>");return s.attr("name",`layout${o}`),s.append(t.children()),{name:i,markup:formatMarkup(safeString(s.toString()).string),layoutInfo:n}}},getLayoutInfo=e=>{const t={header:e("wm-header"),topNav:e("wm-top-nav"),leftNav:e("wm-left-panel"),rightNav:e("wm-right-panel"),footer:e("wm-footer")},a={};for(const e in t)if(t.hasOwnProperty(e)&&t[e].length){const r=t[e].attr().content,n=r&&r.startsWith("bind:"),i=t[e].children().length;a[e]={content:r,hasBindExpr:n,hasChildren:i}}return a},getLayoutName=(e,t)=>{for(const a of t)if(Object.keys(a.layoutInfo).sort().join(",")===Object.keys(e).sort().join(",")){if(Object.keys(e).every(t=>e[t].content===a.layoutInfo[t].content&&!(e[t].hasBindExpr||a.layoutInfo[t].hasBindExpr||e[t].hasChildren||a.layoutInfo[t].hasChildren)))return a.name}};module.exports={createIntermediateAppSkeleton:createIntermediateAppSkeleton,generateLayoutsAndPages:generateLayoutsAndPages};
1
+ const{deleteResource:deleteResource,createDir:createDir,writeFile:writeFile,readFile:readFile,getPagesDirPath:getPagesDirPath,getLayoutsDirPath:getLayoutsDirPath}=require("./wm-utils"),{getPagesConfig:getPagesConfig}=require("./project-meta"),util=require("util"),cheerio=require("cheerio"),{safeString:safeString}=require("./handlebar-helpers"),{formatMarkup:formatMarkup}=require("./wm-utils"),path=require("path"),ncp=util.promisify(require("ncp").ncp),createIntermediateAppSkeleton=async(e,t)=>{await deleteResource(t),await createDir(t,{recursive:!0}),await ncp(e,t,{filter:t=>!path.relative(e,t).startsWith("target")}),await createDir(`${t}/target/ui-resources`,{recursive:!0}),console.log("copying ui-resources into destination"),await ncp(`${e}/target/ui-resources`,`${t}/target/ui-resources`)},generateLayoutsAndPages=async e=>{const t=getLayoutsDirPath(e);await createDir(t,{recursive:!0});const a=await getPagesConfig(e),r=getPagesDirPath(e),n=[],i=[];for(let e of a)if("PAGE"===e.type){const a=await readFile(`${r}/${e.name}/${e.name}.html`,"utf8"),o=cheerio.load(a),s=o("wm-page"),l=o("wm-page-content");["wm-alertdialog","wm-confirmdialog","wm-dialog","wm-iframedialog","wm-pagedialog","wm-logindialog"].forEach(e=>{const t=o(e);t.length&&l.append(t)});const u=await getLayoutMarkup(o,s,l,n);u.markup&&(n.push({name:u.name,layoutInfo:u.layoutInfo}),i.push({name:u.name,type:"LAYOUT"}),await createDir(`${t}/${u.name}`,{recursive:!0}),await writeFile(`${t}/${u.name}/${u.name}.html`,u.markup)),e.layout=u.name,l.attr("spa","true"),l.attr("columnwidth","12"),l.attr(s.attr()),l.attr("layout",u.name);const c=formatMarkup(safeString(l.toString()).string);await writeFile(`${r}/${e.name}/${e.name}.html`,c)}await writeFile(`${r}/pages-config.json`,JSON.stringify(a,null,4)),await writeFile(`${t}/layouts-config.json`,JSON.stringify(i,null,4))},getLayoutMarkup=async(e,t,a,r)=>{const n=getLayoutInfo(e);let i=getLayoutName(n,r);if(i)return{name:i};{const o=r.length+1;i=`layout_${o}`,n.leftNav&&e("wm-left-panel").attr("spa","true");const s=e("<wm-router-outlet>");s.attr("columnwidth",a.attr().columnwidth),e("wm-page-content").replaceWith(s);const l=e("<wm-layout>");return l.attr("name",`layout${o}`),l.append(t.children()),{name:i,markup:formatMarkup(safeString(l.toString()).string),layoutInfo:n}}},getLayoutInfo=e=>{const t={header:e("wm-header"),topNav:e("wm-top-nav"),leftNav:e("wm-left-panel"),rightNav:e("wm-right-panel"),footer:e("wm-footer")},a={};for(const e in t)if(t.hasOwnProperty(e)&&t[e].length){const r=t[e].attr().content,n=r&&r.startsWith("bind:"),i=t[e].children().length;a[e]={content:r,hasBindExpr:n,hasChildren:i}}return a},getLayoutName=(e,t)=>{for(const a of t)if(Object.keys(a.layoutInfo).sort().join(",")===Object.keys(e).sort().join(",")){if(Object.keys(e).every(t=>e[t].content===a.layoutInfo[t].content&&!(e[t].hasBindExpr||a.layoutInfo[t].hasBindExpr||e[t].hasChildren||a.layoutInfo[t].hasChildren)))return a.name}};module.exports={createIntermediateAppSkeleton:createIntermediateAppSkeleton,generateLayoutsAndPages:generateLayoutsAndPages};