angular-three 2.0.0-beta.31 → 2.0.0-beta.310

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 (152) hide show
  1. package/README.md +221 -4
  2. package/esm2022/index.mjs +13 -13
  3. package/esm2022/lib/canvas.mjs +128 -200
  4. package/esm2022/lib/directives/args.mjs +46 -20
  5. package/esm2022/lib/directives/selection.mjs +65 -0
  6. package/esm2022/lib/dom/events.mjs +2 -2
  7. package/esm2022/lib/events.mjs +33 -31
  8. package/esm2022/lib/html.mjs +40 -0
  9. package/esm2022/lib/instance.mjs +43 -36
  10. package/esm2022/lib/loader.mjs +62 -31
  11. package/esm2022/lib/loop.mjs +28 -25
  12. package/esm2022/lib/pipes/hexify.mjs +67 -0
  13. package/esm2022/lib/portal.mjs +173 -193
  14. package/esm2022/lib/renderer/catalogue.mjs +2 -2
  15. package/esm2022/lib/renderer/constants.mjs +5 -6
  16. package/esm2022/lib/renderer/index.mjs +387 -234
  17. package/esm2022/lib/renderer/state.mjs +49 -0
  18. package/esm2022/lib/renderer/utils.mjs +107 -95
  19. package/esm2022/lib/roots.mjs +85 -61
  20. package/esm2022/lib/routed-scene.mjs +6 -7
  21. package/esm2022/lib/store.mjs +170 -194
  22. package/esm2022/lib/three-types.mjs +2 -2
  23. package/esm2022/lib/types.mjs +1 -1
  24. package/esm2022/lib/utils/apply-props.mjs +24 -28
  25. package/esm2022/lib/utils/attach.mjs +12 -9
  26. package/esm2022/lib/utils/before-render.mjs +12 -0
  27. package/esm2022/lib/utils/is.mjs +6 -5
  28. package/esm2022/lib/utils/make.mjs +19 -17
  29. package/esm2022/lib/utils/non-nullish.mjs +7 -0
  30. package/esm2022/lib/utils/object-events.mjs +92 -0
  31. package/esm2022/lib/utils/parameters.mjs +70 -0
  32. package/esm2022/lib/utils/resolve-ref.mjs +8 -0
  33. package/esm2022/lib/utils/signal-store.mjs +52 -58
  34. package/esm2022/lib/utils/update.mjs +8 -4
  35. package/esm2022/testing/angular-three-testing.mjs +5 -0
  36. package/esm2022/testing/index.mjs +3 -0
  37. package/esm2022/testing/lib/test-bed.mjs +130 -0
  38. package/esm2022/testing/lib/test-canvas.mjs +45 -0
  39. package/esm2022/testing/lib/utils/mock-canvas.mjs +37 -0
  40. package/esm2022/testing/lib/utils/web-gl-rendering-context.mjs +752 -0
  41. package/fesm2022/angular-three-testing.mjs +966 -0
  42. package/fesm2022/angular-three-testing.mjs.map +1 -0
  43. package/fesm2022/angular-three.mjs +2506 -2539
  44. package/fesm2022/angular-three.mjs.map +1 -1
  45. package/index.d.ts +14 -12
  46. package/lib/canvas.d.ts +366 -96
  47. package/lib/directives/args.d.ts +14 -7
  48. package/lib/directives/selection.d.ts +17 -0
  49. package/lib/dom/events.d.ts +2 -3
  50. package/lib/events.d.ts +4 -80
  51. package/lib/html.d.ts +17 -0
  52. package/lib/instance.d.ts +3 -35
  53. package/lib/loader.d.ts +18 -6
  54. package/lib/loop.d.ts +11 -59
  55. package/lib/pipes/hexify.d.ts +20 -0
  56. package/lib/portal.d.ts +54 -48
  57. package/lib/renderer/catalogue.d.ts +7 -3
  58. package/lib/renderer/constants.d.ts +4 -5
  59. package/lib/renderer/index.d.ts +64 -4
  60. package/lib/renderer/state.d.ts +24 -0
  61. package/lib/renderer/utils.d.ts +9 -27
  62. package/lib/roots.d.ts +9 -7
  63. package/lib/store.d.ts +13 -141
  64. package/lib/three-types.d.ts +500 -147
  65. package/lib/types.d.ts +291 -0
  66. package/lib/utils/apply-props.d.ts +1 -3
  67. package/lib/utils/attach.d.ts +3 -5
  68. package/lib/{before-render.d.ts → utils/before-render.d.ts} +1 -1
  69. package/lib/utils/is.d.ts +13 -14
  70. package/lib/utils/make.d.ts +7 -13
  71. package/lib/utils/non-nullish.d.ts +4 -0
  72. package/lib/utils/object-events.d.ts +34 -0
  73. package/lib/utils/parameters.d.ts +20 -0
  74. package/lib/utils/resolve-ref.d.ts +2 -0
  75. package/lib/utils/signal-store.d.ts +13 -4
  76. package/lib/utils/update.d.ts +1 -1
  77. package/metadata.json +1 -1
  78. package/package.json +40 -24
  79. package/plugin/generators.json +8 -30
  80. package/plugin/package.json +3 -22
  81. package/plugin/src/generators/add-soba/compat.js.map +1 -0
  82. package/plugin/src/generators/add-soba/generator.d.ts +3 -0
  83. package/plugin/src/generators/add-soba/generator.js +78 -0
  84. package/plugin/src/generators/add-soba/generator.js.map +1 -0
  85. package/plugin/src/generators/add-soba/schema.json +4 -0
  86. package/plugin/src/generators/init/compat.d.ts +1 -3
  87. package/plugin/src/generators/init/files/experience/experience.component.ts__tmpl__ +18 -7
  88. package/plugin/src/generators/init/generator.d.ts +5 -5
  89. package/plugin/src/generators/init/generator.js +100 -106
  90. package/plugin/src/generators/init/generator.js.map +1 -1
  91. package/plugin/src/generators/init/schema.json +8 -12
  92. package/plugin/src/generators/utils.js +4 -3
  93. package/plugin/src/generators/utils.js.map +1 -1
  94. package/plugin/src/generators/version.d.ts +17 -0
  95. package/plugin/src/generators/version.js +21 -0
  96. package/plugin/src/generators/version.js.map +1 -0
  97. package/plugin/src/index.d.ts +0 -3
  98. package/plugin/src/index.js +0 -9
  99. package/plugin/src/index.js.map +1 -1
  100. package/testing/README.md +3 -0
  101. package/testing/index.d.ts +2 -0
  102. package/testing/lib/test-bed.d.ts +38 -0
  103. package/testing/lib/test-canvas.d.ts +11 -0
  104. package/testing/lib/utils/mock-canvas.d.ts +5 -0
  105. package/testing/lib/utils/web-gl-rendering-context.d.ts +16 -0
  106. package/testing/package.json +3 -0
  107. package/web-types.json +1 -1
  108. package/esm2022/lib/before-render.mjs +0 -13
  109. package/esm2022/lib/directives/common.mjs +0 -41
  110. package/esm2022/lib/directives/key.mjs +0 -29
  111. package/esm2022/lib/directives/parent.mjs +0 -35
  112. package/esm2022/lib/ref.mjs +0 -48
  113. package/esm2022/lib/renderer/store.mjs +0 -408
  114. package/esm2022/lib/utils/safe-detect-changes.mjs +0 -17
  115. package/lib/directives/common.d.ts +0 -15
  116. package/lib/directives/key.d.ts +0 -10
  117. package/lib/directives/parent.d.ts +0 -11
  118. package/lib/ref.d.ts +0 -8
  119. package/lib/renderer/store.d.ts +0 -67
  120. package/lib/utils/safe-detect-changes.d.ts +0 -2
  121. package/plugin/migrations.json +0 -16
  122. package/plugin/src/generators/init/files/experience/experience.component.html__tmpl__ +0 -4
  123. package/plugin/src/generators/init-cannon/compat.js.map +0 -1
  124. package/plugin/src/generators/init-cannon/generator.d.ts +0 -2
  125. package/plugin/src/generators/init-cannon/generator.js +0 -23
  126. package/plugin/src/generators/init-cannon/generator.js.map +0 -1
  127. package/plugin/src/generators/init-cannon/schema.json +0 -6
  128. package/plugin/src/generators/init-postprocessing/compat.d.ts +0 -2
  129. package/plugin/src/generators/init-postprocessing/compat.js +0 -6
  130. package/plugin/src/generators/init-postprocessing/compat.js.map +0 -1
  131. package/plugin/src/generators/init-postprocessing/generator.d.ts +0 -2
  132. package/plugin/src/generators/init-postprocessing/generator.js +0 -21
  133. package/plugin/src/generators/init-postprocessing/generator.js.map +0 -1
  134. package/plugin/src/generators/init-postprocessing/schema.json +0 -6
  135. package/plugin/src/generators/init-soba/compat.d.ts +0 -2
  136. package/plugin/src/generators/init-soba/compat.js +0 -6
  137. package/plugin/src/generators/init-soba/compat.js.map +0 -1
  138. package/plugin/src/generators/init-soba/generator.d.ts +0 -2
  139. package/plugin/src/generators/init-soba/generator.js +0 -27
  140. package/plugin/src/generators/init-soba/generator.js.map +0 -1
  141. package/plugin/src/generators/init-soba/schema.json +0 -6
  142. package/plugin/src/generators/versions.d.ts +0 -13
  143. package/plugin/src/generators/versions.js +0 -17
  144. package/plugin/src/generators/versions.js.map +0 -1
  145. package/plugin/src/migrations/migrate-to-ngxtension/compat.d.ts +0 -2
  146. package/plugin/src/migrations/migrate-to-ngxtension/compat.js +0 -6
  147. package/plugin/src/migrations/migrate-to-ngxtension/compat.js.map +0 -1
  148. package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.d.ts +0 -2
  149. package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js +0 -41
  150. package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js.map +0 -1
  151. /package/plugin/src/generators/{init-cannon → add-soba}/compat.d.ts +0 -0
  152. /package/plugin/src/generators/{init-cannon → add-soba}/compat.js +0 -0
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "angular-three",
3
- "version": "2.0.0-beta.31",
3
+ "version": "2.0.0-beta.310",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
+ "type": "module",
7
8
  "repository": {
8
9
  "type": "git",
9
- "url": "https://github.com/angular-threejs/angular-three/tree/main/libs/angular-three"
10
+ "url": "https://github.com/angular-threejs/angular-three/tree/main/libs/core"
10
11
  },
11
12
  "author": {
12
13
  "name": "Chau Tran",
@@ -21,39 +22,47 @@
21
22
  ],
22
23
  "license": "MIT",
23
24
  "peerDependencies": {
24
- "@angular/common": "^16.0.0",
25
- "@angular/core": "^16.0.0",
26
- "ngxtension": "^0.1.0",
27
- "three": ">=0.148.0",
28
- "@angular/router": "16.2.3",
29
- "rxjs": "7.8.1"
25
+ "@angular/common": ">=18.0.0 <19.0.0",
26
+ "@angular/core": ">=18.0.0 <19.0.0",
27
+ "ngxtension": ">=3.0.0",
28
+ "three": ">=0.148.0 <0.168.0",
29
+ "node-three-gltf": ">=1.0.0 <2.0.0"
30
+ },
31
+ "peerDependenciesMeta": {
32
+ "node-three-gltf": {
33
+ "optional": true
34
+ }
30
35
  },
31
36
  "dependencies": {
32
37
  "tslib": "^2.3.0",
33
- "@nx/devkit": "^16.0.0",
38
+ "@nx/devkit": "^19.0.0",
34
39
  "@phenomnomnominal/tsquery": "^6.0.0",
35
- "nx": "^16.0.0"
40
+ "nx": "^19.0.0"
36
41
  },
37
- "sideEffects": false,
38
42
  "generators": "./plugin/generators.json",
39
43
  "schematics": "./plugin/generators.json",
40
44
  "nx-migrations": {
41
45
  "migrations": "./plugin/migrations.json",
42
- "packageGroup": {
43
- "angular-three-soba": "*",
44
- "angular-three-postprocessing": "*",
45
- "angular-three-cannon": "*"
46
- }
46
+ "packageGroup": [
47
+ "angular-three-soba",
48
+ "angular-three-postprocessing",
49
+ "angular-three-cannon",
50
+ "angular-three-rapier"
51
+ ]
47
52
  },
48
53
  "ng-update": {
49
54
  "migrations": "./plugin/migrations.json",
50
- "packageGroup": {
51
- "angular-three-soba": "*",
52
- "angular-three-postprocessing": "*",
53
- "angular-three-cannon": "*"
54
- }
55
+ "packageGroup": [
56
+ "angular-three-soba",
57
+ "angular-three-postprocessing",
58
+ "angular-three-cannon",
59
+ "angular-three-rapier"
60
+ ]
55
61
  },
56
- "web-types": "./web-types.json",
62
+ "web-types": [
63
+ "./web-types.json",
64
+ "../../node_modules/angular-three/web-types.json"
65
+ ],
57
66
  "module": "fesm2022/angular-three.mjs",
58
67
  "typings": "index.d.ts",
59
68
  "exports": {
@@ -65,6 +74,13 @@
65
74
  "esm2022": "./esm2022/angular-three.mjs",
66
75
  "esm": "./esm2022/angular-three.mjs",
67
76
  "default": "./fesm2022/angular-three.mjs"
77
+ },
78
+ "./testing": {
79
+ "types": "./testing/index.d.ts",
80
+ "esm2022": "./esm2022/testing/angular-three-testing.mjs",
81
+ "esm": "./esm2022/testing/angular-three-testing.mjs",
82
+ "default": "./fesm2022/angular-three-testing.mjs"
68
83
  }
69
- }
70
- }
84
+ },
85
+ "sideEffects": false
86
+ }
@@ -1,27 +1,15 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
3
2
  "name": "angular-three-plugin",
4
- "version": "0.0.1",
5
3
  "generators": {
6
4
  "init": {
7
5
  "factory": "./src/generators/init/generator",
8
6
  "schema": "./src/generators/init/schema.json",
9
7
  "description": "Init Angular Three with proper packages and config"
10
8
  },
11
- "soba": {
12
- "factory": "./src/generators/init-soba/generator",
13
- "schema": "./src/generators/init-soba/schema.json",
14
- "description": "Init Angular Three Soba with proper packages "
15
- },
16
- "postprocessing": {
17
- "factory": "./src/generators/init-postprocessing/generator",
18
- "schema": "./src/generators/init-postprocessing/schema.json",
19
- "description": "Init Angular Three Postprocessing with proper packages "
20
- },
21
- "cannon": {
22
- "factory": "./src/generators/init-cannon/generator",
23
- "schema": "./src/generators/init-cannon/schema.json",
24
- "description": "Init Angular Three cannon with proper packages "
9
+ "add-soba": {
10
+ "factory": "./src/generators/add-soba/generator",
11
+ "schema": "./src/generators/add-soba/schema.json",
12
+ "description": "Add angular-three-soba to your project"
25
13
  }
26
14
  },
27
15
  "schematics": {
@@ -30,20 +18,10 @@
30
18
  "schema": "./src/generators/init/schema.json",
31
19
  "description": "Add Angular Three with proper packages and config"
32
20
  },
33
- "soba": {
34
- "factory": "./src/generators/init-soba/compat",
35
- "schema": "./src/generators/init-soba/schema.json",
36
- "description": "Init Angular Three Soba with proper packages "
37
- },
38
- "postprocessing": {
39
- "factory": "./src/generators/init-postprocessing/compat",
40
- "schema": "./src/generators/init-postprocessing/schema.json",
41
- "description": "Init Angular Three Postprocessing with proper packages "
42
- },
43
- "cannon": {
44
- "factory": "./src/generators/init-cannon/compat",
45
- "schema": "./src/generators/init-cannon/schema.json",
46
- "description": "Init Angular Three cannon with proper packages "
21
+ "add-soba": {
22
+ "factory": "./src/generators/add-soba/compat",
23
+ "schema": "./src/generators/add-soba/schema.json",
24
+ "description": "Add angular-three-soba to your project"
47
25
  }
48
26
  }
49
27
  }
@@ -1,25 +1,6 @@
1
1
  {
2
+ "name": "plugin",
2
3
  "type": "commonjs",
3
- "generators": "./generators.json",
4
- "nx-migrations": {
5
- "migrations": "./migrations.json",
6
- "packageGroup": {
7
- "angular-three-soba": "*",
8
- "angular-three-postprocessing": "*",
9
- "angular-three-cannon": "*"
10
- }
11
- },
12
- "ng-update": {
13
- "migrations": "./migrations.json",
14
- "packageGroup": {
15
- "angular-three-soba": "*",
16
- "angular-three-postprocessing": "*",
17
- "angular-three-cannon": "*"
18
- }
19
- },
20
- "dependencies": {
21
- "@nx/devkit": "16.8.1"
22
- },
23
4
  "main": "./src/index.js",
24
- "version": "2.0.0-beta.31"
25
- }
5
+ "types": "./src/index.d.ts"
6
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/add-soba/compat.ts"],"names":[],"mappings":";;AAAA,uCAAgD;AAChD,2CAAkC;AAElC,kBAAe,IAAA,2BAAkB,EAAC,mBAAO,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ export declare function addSobaGenerator(tree: Tree): Promise<() => void>;
3
+ export default addSobaGenerator;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addSobaGenerator = addSobaGenerator;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const enquirer_1 = require("enquirer");
6
+ const utils_1 = require("../utils");
7
+ const version_1 = require("../version");
8
+ const ENTRY_POINTS = {
9
+ abstractions: ['troika-three-text'],
10
+ controls: ['camera-controls', 'maath'],
11
+ materials: ['three-custom-shader-material'],
12
+ staging: ['troika-three-text', '@monogrid/gainmap-js'],
13
+ stats: ['stats-gl'],
14
+ };
15
+ async function addSobaGenerator(tree) {
16
+ const packagesToAdd = ['three-stdlib', '@pmndrs/vanilla', 'three-mesh-bvh'];
17
+ const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
18
+ const ngtVersion = packageJson['dependencies']['angular-three'] || packageJson['devDependencies']['angular-three'];
19
+ if (!ngtVersion) {
20
+ devkit_1.logger.error('angular-three is not installed.');
21
+ return;
22
+ }
23
+ devkit_1.logger.info('Adding angular-three-soba...');
24
+ (0, utils_1.addMetadataJson)(tree, 'angular-three-soba/metadata.json');
25
+ const { peerDependencies } = await (0, enquirer_1.prompt)({
26
+ type: 'multiselect',
27
+ name: 'peerDependencies',
28
+ message: `To know which peer dependencies we need to add, please select the secondary entry points you are planning to use:`,
29
+ choices: [
30
+ ...Object.entries(ENTRY_POINTS).map(([entryPoint, deps]) => ({
31
+ value: deps,
32
+ name: `angular-three-soba/${entryPoint}`,
33
+ message: entryPoint,
34
+ })),
35
+ {
36
+ value: [
37
+ 'troika-three-text',
38
+ 'three-custom-shader-material',
39
+ 'three-mesh-bvh',
40
+ '@monogrid/gainmap-js',
41
+ 'camera-controls',
42
+ 'maath',
43
+ 'stats-gl',
44
+ ],
45
+ name: 'All',
46
+ message: 'I am not sure. Let me add all the peer dependencies.',
47
+ },
48
+ ],
49
+ // @ts-expect-error - result is typed for single select but we're using multi select
50
+ result(values) {
51
+ const mapped = this.map(values);
52
+ return values.flatMap((value) => mapped[value]);
53
+ },
54
+ });
55
+ // flatten, dedupe peerDependencies, add to packagesToAdd
56
+ peerDependencies
57
+ .filter((item, index, array) => array.indexOf(item) === index)
58
+ .forEach((item) => {
59
+ if (!packagesToAdd.includes(item)) {
60
+ packagesToAdd.push(item);
61
+ }
62
+ });
63
+ const depsToAdd = packagesToAdd.reduce((acc, item) => {
64
+ if (version_1.SOBA_PEER_DEPENDENCIES[item]) {
65
+ acc[item] = version_1.SOBA_PEER_DEPENDENCIES[item];
66
+ }
67
+ return acc;
68
+ }, { 'angular-three-soba': ngtVersion });
69
+ // add deps to package.json
70
+ devkit_1.logger.info('Adding dependencies to package.json...');
71
+ (0, devkit_1.addDependenciesToPackageJson)(tree, depsToAdd, {});
72
+ await (0, devkit_1.formatFiles)(tree);
73
+ return () => {
74
+ (0, devkit_1.installPackagesTask)(tree);
75
+ };
76
+ }
77
+ exports.default = addSobaGenerator;
78
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/add-soba/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ {
2
+ "$id": "AddSoba",
3
+ "title": "Add Soba"
4
+ }
@@ -1,4 +1,2 @@
1
- declare const _default: (generatorOptions: {
2
- project?: string;
3
- }) => (tree: any, context: any) => Promise<any>;
1
+ declare const _default: (generatorOptions: Partial<import("./generator").InitGeneratorOptions>) => (tree: any, context: any) => Promise<any>;
4
2
  export default _default;
@@ -1,18 +1,29 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
2
- import { extend, type NgtBeforeRenderEvent } from 'angular-three';
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, viewChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';
2
+ import { extend, injectBeforeRender } from 'angular-three';
3
3
  import { Mesh, BoxGeometry, MeshBasicMaterial } from 'three';
4
4
 
5
5
  extend({ Mesh, BoxGeometry, MeshBasicMaterial });
6
6
 
7
7
  @Component({
8
8
  standalone: true,
9
- templateUrl: './experience.component.html',
10
- schemas: [CUSTOM_ELEMENTS_SCHEMA]
9
+ template: `
10
+ <ngt-mesh #mesh>
11
+ <ngt-box-geometry />
12
+ <ngt-mesh-basic-material color="hotpink" />
13
+ </ngt-mesh>
14
+ `,
15
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
16
+ changeDetection: ChangeDetectionStrategy.OnPush,
11
17
  })
12
18
  export class Experience {
13
- onBeforeRender({ object, state: { delta }}: NgtBeforeRenderEvent<Mesh>) {
14
- object.rotation.x += delta;
15
- object.rotation.y += delta;
19
+ meshRef = viewChild.required<ElementRef<Mesh>>('mesh');
20
+
21
+ constructor() {
22
+ injectBeforeRender(({ delta }) => {
23
+ const mesh = this.meshRef().nativeElement;
24
+ mesh.rotation.x += delta;
25
+ mesh.rotation.y += delta;
26
+ })
16
27
  }
17
28
  }
18
29
 
@@ -1,6 +1,6 @@
1
1
  import { type Tree } from '@nx/devkit';
2
- type Schema = {
3
- project?: string;
4
- };
5
- export default function (tree: Tree, { project }: Schema): Promise<() => void>;
6
- export {};
2
+ export interface InitGeneratorOptions {
3
+ skipGenerateExperience: boolean;
4
+ }
5
+ export declare function initGenerator(tree: Tree, { skipGenerateExperience }?: Partial<InitGeneratorOptions>): Promise<() => void>;
6
+ export default initGenerator;
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initGenerator = initGenerator;
3
4
  const devkit_1 = require("@nx/devkit");
4
5
  const tsquery_1 = require("@phenomnomnominal/tsquery");
5
6
  const enquirer_1 = require("enquirer");
6
7
  const node_path_1 = require("node:path");
7
8
  const utils_1 = require("../utils");
8
- const versions_1 = require("../versions");
9
- async function default_1(tree, { project }) {
9
+ const version_1 = require("../version");
10
+ async function initGenerator(tree, { skipGenerateExperience = false } = {}) {
10
11
  devkit_1.logger.log('Initializing Angular Three...');
11
12
  const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
12
13
  const version = packageJson['dependencies']?.['angular-three'] ||
13
14
  packageJson['devDependencies']?.['angular-three'] ||
14
- versions_1.ANGULAR_THREE_VERSION;
15
- (0, devkit_1.addDependenciesToPackageJson)(tree, { 'angular-three': version, three: versions_1.THREE_VERSION, ngxtension: versions_1.NGXTENSION_VERSION }, { '@types/three': versions_1.THREE_TYPE_VERSION });
15
+ version_1.ANGULAR_THREE_VERSION;
16
+ (0, devkit_1.addDependenciesToPackageJson)(tree, { 'angular-three': version, three: version_1.THREE_VERSION, ngxtension: version_1.NGXTENSION_VERSION }, { '@types/three': version_1.THREE_TYPE_VERSION });
16
17
  devkit_1.logger.info('Turning on skipLibCheck...');
17
18
  const tsConfigPath = tree.exists('tsconfig.base.json') ? 'tsconfig.base.json' : 'tsconfig.json';
18
19
  (0, devkit_1.updateJson)(tree, tsConfigPath, (json) => {
@@ -22,6 +23,12 @@ async function default_1(tree, { project }) {
22
23
  return json;
23
24
  });
24
25
  (0, utils_1.addMetadataJson)(tree, 'angular-three/metadata.json');
26
+ if (skipGenerateExperience) {
27
+ await (0, devkit_1.formatFiles)(tree);
28
+ return () => {
29
+ (0, devkit_1.installPackagesTask)(tree);
30
+ };
31
+ }
25
32
  const { generateExperience } = await (0, enquirer_1.prompt)({
26
33
  type: 'select',
27
34
  name: 'generateExperience',
@@ -34,127 +41,114 @@ async function default_1(tree, { project }) {
34
41
  initial: 2,
35
42
  });
36
43
  if (generateExperience !== 'none') {
37
- const isNx = tree.exists('nx.json');
38
- if (!project) {
39
- if (isNx) {
40
- const rootProjectJson = (0, devkit_1.readJson)(tree, 'project.json');
41
- if (!rootProjectJson) {
42
- throw new Error(`
43
- It seems like your workspace is an Integrated workspace but you did not provide a "project" name.
44
- Please retry the generator with a "--project" specified.`);
45
- }
46
- const rootName = rootProjectJson['name'];
47
- if (rootName === packageJson['name']) {
48
- project = rootName;
49
- }
50
- }
51
- else {
52
- const angularJson = (0, devkit_1.readJson)(tree, 'angular.json');
53
- if (!angularJson) {
54
- throw new Error(`
55
- Cannot find "angular.json" file.
56
- Please retry the generator with a "--project" specified in an Angular workspace.`);
57
- }
58
- project = packageJson['name'];
44
+ const projects = (0, devkit_1.getProjects)(tree);
45
+ const applicationProjects = Array.from(projects.entries()).reduce((acc, [projectName, project]) => {
46
+ if (project.projectType === 'application') {
47
+ acc.push({ name: projectName, ...project });
59
48
  }
49
+ return acc;
50
+ }, []);
51
+ let selectedProject;
52
+ if (applicationProjects.length === 1) {
53
+ selectedProject = applicationProjects[0].name;
60
54
  }
61
- if (!project) {
62
- throw new Error(`
63
- Angular Three generator could not find a default "project".
64
- Please retry the generator with a "--project" specified.`);
55
+ else {
56
+ // prompt
57
+ const { projectName } = await (0, enquirer_1.prompt)({
58
+ type: 'select',
59
+ name: 'projectName',
60
+ message: 'Add Experience to which project?',
61
+ choices: applicationProjects.map((appProject) => ({ value: appProject.name, name: appProject.name })),
62
+ });
63
+ selectedProject = projectName;
65
64
  }
66
- const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, project);
67
- let sourceRoot = projectConfig.sourceRoot;
68
- if (projectConfig['prefix']) {
69
- sourceRoot += '/' + projectConfig['prefix'];
65
+ if (!selectedProject) {
66
+ return warnExperienceWasNotGenerated(tree, 'Unable to locate a project');
70
67
  }
71
- if (sourceRoot) {
72
- // generate Experience component
73
- (0, devkit_1.generateFiles)(tree, (0, node_path_1.join)(__dirname, 'files'), sourceRoot, { tmpl: '' });
74
- let isStandalone = false;
75
- while (!isStandalone) {
76
- const answer = await (0, enquirer_1.prompt)({
77
- type: 'confirm',
78
- initial: true,
79
- name: 'isStandalone',
80
- message: 'Is your project standalone?',
81
- });
82
- isStandalone = answer.isStandalone;
83
- if (!isStandalone) {
84
- devkit_1.logger.info(`Wrong answer. You should be using Standalone.`);
85
- }
86
- }
87
- const appComponentPath = `${sourceRoot}/app.component.ts`;
88
- const exist = tree.exists(appComponentPath);
89
- const appComponentTemplatePath = `${sourceRoot}/app.component.html`;
90
- const templateExist = tree.exists(appComponentTemplatePath);
91
- const appComponentContent = exist ? tree.read(appComponentPath, 'utf8') : null;
92
- const appComponentTemplateContent = templateExist ? tree.read(appComponentTemplatePath, 'utf8') : null;
93
- if (isStandalone) {
94
- if (!appComponentContent) {
95
- devkit_1.logger.warn(`
96
- AppComponent not found at ${appComponentPath}. Angular Three was initialized successfully but an Experience component was not generated.`);
97
- }
98
- else {
99
- let updatedContent = tsquery_1.tsquery.replace(appComponentContent, 'Identifier[name="imports"] ~ ArrayLiteralExpression', (node) => {
100
- return `[${node.elements.map((element) => element['escapedText']).join(', ')}, NgtCanvas]`;
101
- });
102
- updatedContent = tsquery_1.tsquery.replace(updatedContent, 'SourceFile', (node) => {
103
- return `
68
+ const projectConfiguration = (0, devkit_1.readProjectConfiguration)(tree, selectedProject);
69
+ let sourceRoot = projectConfiguration.sourceRoot;
70
+ if (projectConfiguration['prefix']) {
71
+ sourceRoot += '/' + projectConfiguration['prefix'];
72
+ }
73
+ if (!sourceRoot) {
74
+ return warnExperienceWasNotGenerated(tree, `sourceRoot for ${selectedProject} was not found`);
75
+ }
76
+ // generate Experience component
77
+ (0, devkit_1.generateFiles)(tree, (0, node_path_1.join)(__dirname, 'files'), sourceRoot, { tmpl: '' });
78
+ const appComponentPath = `${sourceRoot}/app.component.ts`;
79
+ const exist = tree.exists(appComponentPath);
80
+ const appComponentTemplatePath = `${sourceRoot}/app.component.html`;
81
+ const templateExist = tree.exists(appComponentTemplatePath);
82
+ const appComponentContent = exist ? tree.read(appComponentPath, 'utf8') : null;
83
+ const appComponentTemplateContent = templateExist ? tree.read(appComponentTemplatePath, 'utf8') : null;
84
+ if (!appComponentContent) {
85
+ return warnExperienceWasNotGenerated(tree, `AppComponent was not found`);
86
+ }
87
+ // TODO (chau): revisit if standalone:true becomes the default
88
+ const isStandalone = appComponentContent.includes(`standalone: true`);
89
+ if (!isStandalone) {
90
+ return warnExperienceWasNotGenerated(tree, `AppComponent is not a Standalone Component`);
91
+ }
92
+ let updatedContent = tsquery_1.tsquery.replace(appComponentContent, 'PropertyAssignment:has(Identifier[name="imports"]) ArrayLiteralExpression', (node) => {
93
+ return `[${node.elements.map((element) => element['escapedText']).join(', ')}, NgtCanvas]`;
94
+ });
95
+ updatedContent = tsquery_1.tsquery.replace(updatedContent, 'SourceFile', (node) => {
96
+ return `
104
97
  import { NgtCanvas } from 'angular-three';
105
98
  import { Experience } from './experience/experience.component';
106
99
 
107
100
  ${node.getFullText()}
108
101
  `;
109
- });
110
- const contentNode = tsquery_1.tsquery.ast(appComponentContent);
111
- const classMembersQuery = 'ClassDeclaration > :matches(PropertyDeclaration,MethodDeclaration)';
112
- const members = tsquery_1.tsquery.match(contentNode, classMembersQuery);
113
- if (members.length === 0) {
114
- updatedContent = tsquery_1.tsquery.replace(updatedContent, 'ClassDeclaration', (node) => {
115
- const withoutBraces = node.getFullText().slice(0, -1);
116
- return `
102
+ });
103
+ const appComponentContentAst = tsquery_1.tsquery.ast(appComponentContent);
104
+ const classMembersQuery = 'ClassDeclaration > :matches(PropertyDeclaration,MethodDeclaration)';
105
+ const members = tsquery_1.tsquery.match(appComponentContentAst, classMembersQuery);
106
+ if (members.length === 0 || generateExperience === 'replace') {
107
+ updatedContent = tsquery_1.tsquery.replace(updatedContent, 'ClassDeclaration', (node) => {
108
+ const withoutBraces = node.getFullText().slice(0, -1);
109
+ return `
117
110
  ${withoutBraces}
118
- scene = Experience;
111
+ sceneGraph = Experience;
119
112
  }`;
120
- });
121
- }
122
- else {
123
- updatedContent = tsquery_1.tsquery.replace(updatedContent, classMembersQuery, (node) => {
124
- return `
125
- scene = Experience;
113
+ });
114
+ }
115
+ else {
116
+ updatedContent = tsquery_1.tsquery.replace(updatedContent, classMembersQuery, (node) => {
117
+ return `
118
+ sceneGraph = Experience;
126
119
  ${node.getFullText()}`;
127
- });
128
- }
129
- if (appComponentTemplateContent) {
130
- const updatedTemplateContent = generateExperience === 'append'
131
- ? `
120
+ });
121
+ }
122
+ if (appComponentTemplateContent) {
123
+ const updatedTemplateContent = generateExperience === 'append'
124
+ ? `
132
125
  ${appComponentTemplateContent}
133
- <ngt-canvas [sceneGraph]="scene" />`
134
- : `<ngt-canvas [sceneGraph]="scene" />`;
135
- tree.write(appComponentTemplatePath, updatedTemplateContent);
136
- }
137
- else {
138
- updatedContent = tsquery_1.tsquery.replace(updatedContent, 'Identifier[name="template"] ~ NoSubstitutionTemplateLiteral', (node) => {
139
- return generateExperience === 'append'
140
- ? `\`
141
- ${node.getFullText()}
142
- <ngt-canvas [sceneGraph]="scene" />\``
143
- : `\`<ngt-canvas [sceneGraph]="scene" />\``;
144
- });
145
- }
146
- tree.write(appComponentPath, updatedContent);
147
- }
148
- }
126
+ <ngt-canvas [sceneGraph]="sceneGraph" />`
127
+ : `<ngt-canvas [sceneGraph]="sceneGraph" />`;
128
+ tree.write(appComponentTemplatePath, updatedTemplateContent);
149
129
  }
150
130
  else {
151
- devkit_1.logger.warn(`
152
- "sourceRoot" not found. Angular Three was initialized successfully but an Experience component was not generated.`);
131
+ updatedContent = tsquery_1.tsquery.replace(updatedContent, 'PropertyAssignment:has(Identifier[name="template"]) NoSubstitutionTemplateLiteral', (node) => {
132
+ const fullText = node.getFullText().trim().slice(1, -1);
133
+ return generateExperience === 'append'
134
+ ? `\`
135
+ ${fullText}
136
+ <ngt-canvas [sceneGraph]="sceneGraph" />\``
137
+ : `\`<ngt-canvas [sceneGraph]="sceneGraph" />\``;
138
+ });
153
139
  }
140
+ tree.write(appComponentPath, updatedContent);
154
141
  }
142
+ await (0, devkit_1.formatFiles)(tree);
143
+ return () => {
144
+ (0, devkit_1.installPackagesTask)(tree);
145
+ };
146
+ }
147
+ function warnExperienceWasNotGenerated(tree, message) {
148
+ devkit_1.logger.warn(`[NGT] ${message}. Angular Three was initialized successfully, but an Experience component was not generated.`);
155
149
  return () => {
156
150
  (0, devkit_1.installPackagesTask)(tree);
157
151
  };
158
152
  }
159
- exports.default = default_1;
153
+ exports.default = initGenerator;
160
154
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/init/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/init/generator.ts"],"names":[],"mappings":"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"}