angular-three 2.0.0-beta.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +221 -4
  2. package/esm2022/index.mjs +13 -14
  3. package/esm2022/lib/canvas.mjs +130 -197
  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 +72 -36
  11. package/esm2022/lib/loop.mjs +29 -26
  12. package/esm2022/lib/pipes/hexify.mjs +67 -0
  13. package/esm2022/lib/portal.mjs +173 -193
  14. package/esm2022/lib/renderer/catalogue.mjs +3 -3
  15. package/esm2022/lib/renderer/constants.mjs +5 -6
  16. package/esm2022/lib/renderer/index.mjs +356 -217
  17. package/esm2022/lib/renderer/state.mjs +54 -0
  18. package/esm2022/lib/renderer/utils.mjs +107 -63
  19. package/esm2022/lib/roots.mjs +86 -62
  20. package/esm2022/lib/routed-scene.mjs +11 -8
  21. package/esm2022/lib/store.mjs +164 -195
  22. package/esm2022/lib/three-types.mjs +1 -1
  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 +91 -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 +59 -60
  34. package/esm2022/lib/utils/update.mjs +8 -4
  35. package/esm2022/nativescript/angular-three-nativescript.mjs +5 -0
  36. package/esm2022/nativescript/index.mjs +2 -0
  37. package/esm2022/nativescript/lib/canvas.mjs +127 -0
  38. package/esm2022/testing/angular-three-testing.mjs +5 -0
  39. package/esm2022/testing/index.mjs +3 -0
  40. package/esm2022/testing/lib/test-bed.mjs +130 -0
  41. package/esm2022/testing/lib/test-canvas.mjs +45 -0
  42. package/esm2022/testing/lib/utils/mock-canvas.mjs +37 -0
  43. package/esm2022/testing/lib/utils/web-gl-rendering-context.mjs +752 -0
  44. package/fesm2022/angular-three-nativescript.mjs +134 -0
  45. package/fesm2022/angular-three-nativescript.mjs.map +1 -0
  46. package/fesm2022/angular-three-testing.mjs +966 -0
  47. package/fesm2022/angular-three-testing.mjs.map +1 -0
  48. package/fesm2022/angular-three.mjs +2240 -2305
  49. package/fesm2022/angular-three.mjs.map +1 -1
  50. package/index.d.ts +14 -14
  51. package/lib/canvas.d.ts +357 -96
  52. package/lib/directives/args.d.ts +14 -7
  53. package/lib/directives/selection.d.ts +17 -0
  54. package/lib/dom/events.d.ts +2 -3
  55. package/lib/events.d.ts +4 -80
  56. package/lib/html.d.ts +17 -0
  57. package/lib/instance.d.ts +3 -35
  58. package/lib/loader.d.ts +19 -7
  59. package/lib/loop.d.ts +11 -59
  60. package/lib/pipes/hexify.d.ts +20 -0
  61. package/lib/portal.d.ts +54 -48
  62. package/lib/renderer/catalogue.d.ts +7 -3
  63. package/lib/renderer/constants.d.ts +4 -5
  64. package/lib/renderer/index.d.ts +63 -4
  65. package/lib/renderer/state.d.ts +25 -0
  66. package/lib/renderer/utils.d.ts +10 -27
  67. package/lib/roots.d.ts +9 -7
  68. package/lib/store.d.ts +13 -141
  69. package/lib/three-types.d.ts +500 -147
  70. package/lib/types.d.ts +291 -0
  71. package/lib/utils/apply-props.d.ts +1 -3
  72. package/lib/utils/attach.d.ts +4 -6
  73. package/lib/{before-render.d.ts → utils/before-render.d.ts} +1 -1
  74. package/lib/utils/is.d.ts +13 -14
  75. package/lib/utils/make.d.ts +7 -13
  76. package/lib/utils/non-nullish.d.ts +4 -0
  77. package/lib/utils/object-events.d.ts +32 -0
  78. package/lib/utils/parameters.d.ts +20 -0
  79. package/lib/utils/resolve-ref.d.ts +2 -0
  80. package/lib/utils/signal-store.d.ts +13 -4
  81. package/lib/utils/update.d.ts +1 -1
  82. package/metadata.json +1 -1
  83. package/nativescript/README.md +5 -0
  84. package/nativescript/index.d.ts +1 -0
  85. package/nativescript/lib/canvas.d.ts +359 -0
  86. package/nativescript/package.json +3 -0
  87. package/package.json +65 -14
  88. package/plugin/generators.json +8 -20
  89. package/plugin/package.json +3 -3
  90. package/plugin/src/generators/add-soba/compat.js.map +1 -0
  91. package/plugin/src/generators/add-soba/generator.d.ts +3 -0
  92. package/plugin/src/generators/add-soba/generator.js +77 -0
  93. package/plugin/src/generators/add-soba/generator.js.map +1 -0
  94. package/plugin/src/generators/add-soba/schema.json +4 -0
  95. package/plugin/src/generators/init/compat.d.ts +1 -1
  96. package/plugin/src/generators/init/files/experience/experience.component.ts__tmpl__ +29 -0
  97. package/plugin/src/generators/init/generator.d.ts +5 -1
  98. package/plugin/src/generators/init/generator.js +131 -25
  99. package/plugin/src/generators/init/generator.js.map +1 -1
  100. package/plugin/src/generators/init/schema.json +9 -2
  101. package/plugin/src/generators/utils.d.ts +2 -0
  102. package/plugin/src/generators/utils.js +35 -0
  103. package/plugin/src/generators/utils.js.map +1 -0
  104. package/plugin/src/generators/version.d.ts +17 -0
  105. package/plugin/src/generators/version.js +21 -0
  106. package/plugin/src/generators/version.js.map +1 -0
  107. package/plugin/src/index.d.ts +0 -3
  108. package/plugin/src/index.js +0 -9
  109. package/plugin/src/index.js.map +1 -1
  110. package/testing/README.md +3 -0
  111. package/testing/index.d.ts +2 -0
  112. package/testing/lib/test-bed.d.ts +38 -0
  113. package/testing/lib/test-canvas.d.ts +11 -0
  114. package/testing/lib/utils/mock-canvas.d.ts +5 -0
  115. package/testing/lib/utils/web-gl-rendering-context.d.ts +16 -0
  116. package/testing/package.json +3 -0
  117. package/web-types.json +1 -1
  118. package/esm2022/lib/before-render.mjs +0 -13
  119. package/esm2022/lib/directives/common.mjs +0 -41
  120. package/esm2022/lib/directives/key.mjs +0 -29
  121. package/esm2022/lib/directives/parent.mjs +0 -35
  122. package/esm2022/lib/directives/repeat.mjs +0 -17
  123. package/esm2022/lib/ref.mjs +0 -48
  124. package/esm2022/lib/renderer/store.mjs +0 -405
  125. package/esm2022/lib/utils/assert-injection-context.mjs +0 -14
  126. package/esm2022/lib/utils/create-injection-token.mjs +0 -47
  127. package/esm2022/lib/utils/safe-detect-changes.mjs +0 -17
  128. package/lib/directives/common.d.ts +0 -15
  129. package/lib/directives/key.d.ts +0 -10
  130. package/lib/directives/parent.d.ts +0 -11
  131. package/lib/directives/repeat.d.ts +0 -7
  132. package/lib/ref.d.ts +0 -8
  133. package/lib/renderer/store.d.ts +0 -67
  134. package/lib/utils/assert-injection-context.d.ts +0 -2
  135. package/lib/utils/create-injection-token.d.ts +0 -27
  136. package/lib/utils/safe-detect-changes.d.ts +0 -2
  137. package/plugin/src/generators/init-postprocessing/compat.js.map +0 -1
  138. package/plugin/src/generators/init-postprocessing/generator.d.ts +0 -2
  139. package/plugin/src/generators/init-postprocessing/generator.js +0 -20
  140. package/plugin/src/generators/init-postprocessing/generator.js.map +0 -1
  141. package/plugin/src/generators/init-postprocessing/schema.json +0 -6
  142. package/plugin/src/generators/init-soba/compat.d.ts +0 -2
  143. package/plugin/src/generators/init-soba/compat.js +0 -6
  144. package/plugin/src/generators/init-soba/compat.js.map +0 -1
  145. package/plugin/src/generators/init-soba/generator.d.ts +0 -2
  146. package/plugin/src/generators/init-soba/generator.js +0 -24
  147. package/plugin/src/generators/init-soba/generator.js.map +0 -1
  148. package/plugin/src/generators/init-soba/schema.json +0 -6
  149. package/plugin/src/generators/versions.d.ts +0 -9
  150. package/plugin/src/generators/versions.js +0 -13
  151. package/plugin/src/generators/versions.js.map +0 -1
  152. /package/plugin/src/generators/{init-postprocessing → add-soba}/compat.d.ts +0 -0
  153. /package/plugin/src/generators/{init-postprocessing → add-soba}/compat.js +0 -0
@@ -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,2 +1,2 @@
1
- declare const _default: (generatorOptions: any) => (tree: any, context: any) => Promise<any>;
1
+ declare const _default: (generatorOptions: Partial<import("./generator").InitGeneratorOptions>) => (tree: any, context: any) => Promise<any>;
2
2
  export default _default;
@@ -0,0 +1,29 @@
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, viewChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';
2
+ import { extend, injectBeforeRender } from 'angular-three';
3
+ import { Mesh, BoxGeometry, MeshBasicMaterial } from 'three';
4
+
5
+ extend({ Mesh, BoxGeometry, MeshBasicMaterial });
6
+
7
+ @Component({
8
+ standalone: true,
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,
17
+ })
18
+ export class Experience {
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
+ })
27
+ }
28
+ }
29
+
@@ -1,2 +1,6 @@
1
1
  import { type Tree } from '@nx/devkit';
2
- export default function (tree: Tree): Promise<() => void>;
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,14 +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
- const versions_1 = require("../versions");
5
- async function default_1(tree) {
5
+ const tsquery_1 = require("@phenomnomnominal/tsquery");
6
+ const enquirer_1 = require("enquirer");
7
+ const node_path_1 = require("node:path");
8
+ const utils_1 = require("../utils");
9
+ const version_1 = require("../version");
10
+ async function initGenerator(tree, { skipGenerateExperience = false } = {}) {
6
11
  devkit_1.logger.log('Initializing Angular Three...');
7
12
  const packageJson = (0, devkit_1.readJson)(tree, 'package.json');
8
13
  const version = packageJson['dependencies']?.['angular-three'] ||
9
14
  packageJson['devDependencies']?.['angular-three'] ||
10
- versions_1.ANGULAR_THREE_VERSION;
11
- (0, devkit_1.addDependenciesToPackageJson)(tree, { 'angular-three': version, three: versions_1.THREE_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 });
12
17
  devkit_1.logger.info('Turning on skipLibCheck...');
13
18
  const tsConfigPath = tree.exists('tsconfig.base.json') ? 'tsconfig.base.json' : 'tsconfig.json';
14
19
  (0, devkit_1.updateJson)(tree, tsConfigPath, (json) => {
@@ -17,32 +22,133 @@ async function default_1(tree) {
17
22
  }
18
23
  return json;
19
24
  });
20
- // add metadata.json to vscode settings if exists
21
- const vscodeSettingsPath = '.vscode/settings.json';
22
- if (tree.exists('.vscode')) {
23
- devkit_1.logger.info('Enabling typings support for VSCode...');
24
- if (!tree.exists(vscodeSettingsPath)) {
25
- (0, devkit_1.writeJson)(tree, vscodeSettingsPath, {});
26
- }
27
- (0, devkit_1.updateJson)(tree, vscodeSettingsPath, (json) => {
28
- if (json['html.customData'] && Array.isArray(json['html.customData'])) {
29
- json['html.customData'].push('./node_modules/angular-three/metadata.json');
30
- }
31
- else {
32
- json['html.customData'] = ['./node_modules/angular-three/metadata.json'];
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
+ }
32
+ const { generateExperience } = await (0, enquirer_1.prompt)({
33
+ type: 'select',
34
+ name: 'generateExperience',
35
+ message: 'Generate an Experience component?',
36
+ choices: [
37
+ { value: 'append', name: 'append', message: 'Append <ngt-canvas /> to AppComponent template' },
38
+ { value: 'replace', name: 'replace', message: 'Replace AppComponent template with <ngt-canvas />' },
39
+ { value: 'none', name: 'none', message: 'Do not generate an Experience component' },
40
+ ],
41
+ initial: 2,
42
+ });
43
+ if (generateExperience !== 'none') {
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 });
33
48
  }
34
- return json;
49
+ return acc;
50
+ }, []);
51
+ let selectedProject;
52
+ if (applicationProjects.length === 1) {
53
+ selectedProject = applicationProjects[0].name;
54
+ }
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;
64
+ }
65
+ if (!selectedProject) {
66
+ return warnExperienceWasNotGenerated(tree, 'Unable to locate a project');
67
+ }
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]`;
35
94
  });
95
+ updatedContent = tsquery_1.tsquery.replace(updatedContent, 'SourceFile', (node) => {
96
+ return `
97
+ import { NgtCanvas } from 'angular-three';
98
+ import { Experience } from './experience/experience.component';
99
+
100
+ ${node.getFullText()}
101
+ `;
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 `
110
+ ${withoutBraces}
111
+ sceneGraph = Experience;
112
+ }`;
113
+ });
114
+ }
115
+ else {
116
+ updatedContent = tsquery_1.tsquery.replace(updatedContent, classMembersQuery, (node) => {
117
+ return `
118
+ sceneGraph = Experience;
119
+ ${node.getFullText()}`;
120
+ });
121
+ }
122
+ if (appComponentTemplateContent) {
123
+ const updatedTemplateContent = generateExperience === 'append'
124
+ ? `
125
+ ${appComponentTemplateContent}
126
+ <ngt-canvas [sceneGraph]="sceneGraph" />`
127
+ : `<ngt-canvas [sceneGraph]="sceneGraph" />`;
128
+ tree.write(appComponentTemplatePath, updatedTemplateContent);
129
+ }
130
+ else {
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
+ });
139
+ }
140
+ tree.write(appComponentPath, updatedContent);
36
141
  }
37
- else {
38
- devkit_1.logger.info(`.vscode/settings.json not found.
39
- If you are using VSCode, add "./node_modules/angular-three/metadata.json" to "html.customData" in ".vscode/settings.json"
40
- to enable TypeScript type definitions for Angular Three elements.
41
- `);
42
- }
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.`);
43
149
  return () => {
44
150
  (0, devkit_1.installPackagesTask)(tree);
45
151
  };
46
152
  }
47
- exports.default = default_1;
153
+ exports.default = initGenerator;
48
154
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/init/generator.ts"],"names":[],"mappings":";;AAAA,uCAQoB;AACpB,0CAAuF;AAExE,KAAK,oBAAW,IAAU;IACxC,eAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE5C,MAAM,WAAW,GAAG,IAAA,iBAAQ,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAEnD,MAAM,OAAO,GACZ,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,eAAe,CAAC;QAC9C,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,eAAe,CAAC;QACjD,gCAAqB,CAAC;IAEvB,IAAA,qCAA4B,EAC3B,IAAI,EACJ,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,wBAAa,EAAE,EAClD,EAAE,cAAc,EAAE,6BAAkB,EAAE,CACtC,CAAC;IAEF,eAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,eAAe,CAAC;IAEhG,IAAA,mBAAU,EAAC,IAAI,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;QACvC,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,YAAY,KAAK,KAAK,EAAE;YAC9F,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC;SACzC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,iDAAiD;IACjD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;IACnD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;QAC3B,eAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE;YACrC,IAAA,kBAAS,EAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;SACxC;QACD,IAAA,mBAAU,EAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7C,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE;gBACtE,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;aAC3E;iBAAM;gBACN,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;aACzE;YAED,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;KACH;SAAM;QACN,eAAM,CAAC,IAAI,CACV;;;CAGF,CACE,CAAC;KACF;IAED,OAAO,GAAG,EAAE;QACX,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC;AACH,CAAC;AAtDD,4BAsDC"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../libs/plugin/src/generators/init/generator.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
1
  {
2
- "$schema": "http://json-schema.org/schema",
3
2
  "cli": "nx",
4
3
  "$id": "Init",
5
- "title": "Init Angular Three"
4
+ "title": "Init Angular Three",
5
+ "type": "object",
6
+ "properties": {
7
+ "skipGenerateExperience": {
8
+ "type": "boolean",
9
+ "description": "Skip generating Experience component",
10
+ "default": false
11
+ }
12
+ }
6
13
  }
@@ -0,0 +1,2 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ export declare function addMetadataJson(tree: Tree, metadataJsonPath: string): void;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addMetadataJson = addMetadataJson;
4
+ const devkit_1 = require("@nx/devkit");
5
+ function addMetadataJson(tree, metadataJsonPath) {
6
+ if (!metadataJsonPath.includes('node_modules')) {
7
+ metadataJsonPath = `./node_modules/${metadataJsonPath}`;
8
+ }
9
+ // add metadata.json to vscode settings if exists
10
+ const vscodeSettingsPath = '.vscode/settings.json';
11
+ if (tree.exists('.vscode')) {
12
+ devkit_1.logger.info('Enabling typings support for VSCode...');
13
+ if (!tree.exists(vscodeSettingsPath)) {
14
+ (0, devkit_1.writeJson)(tree, vscodeSettingsPath, {});
15
+ }
16
+ (0, devkit_1.updateJson)(tree, vscodeSettingsPath, (json) => {
17
+ if (json['html.customData'] &&
18
+ Array.isArray(json['html.customData']) &&
19
+ !json['html.customData'].includes(metadataJsonPath)) {
20
+ json['html.customData'].push(metadataJsonPath);
21
+ }
22
+ else {
23
+ json['html.customData'] = [metadataJsonPath];
24
+ }
25
+ return json;
26
+ });
27
+ }
28
+ else {
29
+ devkit_1.logger.info(`.vscode/settings.json not found.
30
+ If you are using VSCode, add "${metadataJsonPath}" to "html.customData" in ".vscode/settings.json"
31
+ to enable TypeScript type definitions for Angular Three elements.
32
+ `);
33
+ }
34
+ }
35
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/utils.ts"],"names":[],"mappings":";;AAEA,0CAiCC;AAnCD,uCAAsE;AAEtE,SAAgB,eAAe,CAAC,IAAU,EAAE,gBAAwB;IACnE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAChD,gBAAgB,GAAG,kBAAkB,gBAAgB,EAAE,CAAC;IACzD,CAAC;IAED,iDAAiD;IACjD,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;IACnD,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,eAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtC,IAAA,kBAAS,EAAC,IAAI,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,IAAA,mBAAU,EAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC7C,IACC,IAAI,CAAC,iBAAiB,CAAC;gBACvB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACtC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAClD,CAAC;gBACF,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;SAAM,CAAC;QACP,eAAM,CAAC,IAAI,CACV;gCAC6B,gBAAgB;;CAE/C,CACE,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ export declare const ANGULAR_THREE_VERSION = "^2.0.0";
2
+ export declare const THREE_VERSION = "^0.168.0";
3
+ export declare const THREE_TYPE_VERSION = "^0.168.0";
4
+ export declare const NGXTENSION_VERSION = "^4.0.0";
5
+ export declare const SOBA_PEER_DEPENDENCIES: {
6
+ readonly 'three-stdlib': "^2.0.0";
7
+ readonly '@pmndrs/vanilla': "^1.19.0";
8
+ readonly '@monogrid/gainmap-js': "^3.0.0";
9
+ readonly 'camera-controls': "^2.8.0";
10
+ readonly 'hls.js': "^1.5.0";
11
+ readonly maath: "^0.10.0";
12
+ readonly meshline: "^3.1.0";
13
+ readonly 'stats-gl': "^2.0.0";
14
+ readonly 'three-custom-shader-material': "^5.4.0";
15
+ readonly 'three-mesh-bvh': "^0.7.0";
16
+ readonly 'troika-three-text': "^0.49.0";
17
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SOBA_PEER_DEPENDENCIES = exports.NGXTENSION_VERSION = exports.THREE_TYPE_VERSION = exports.THREE_VERSION = exports.ANGULAR_THREE_VERSION = void 0;
4
+ exports.ANGULAR_THREE_VERSION = '^2.0.0';
5
+ exports.THREE_VERSION = '^0.168.0';
6
+ exports.THREE_TYPE_VERSION = '^0.168.0';
7
+ exports.NGXTENSION_VERSION = '^4.0.0';
8
+ exports.SOBA_PEER_DEPENDENCIES = {
9
+ 'three-stdlib': '^2.0.0',
10
+ '@pmndrs/vanilla': '^1.19.0',
11
+ '@monogrid/gainmap-js': '^3.0.0',
12
+ 'camera-controls': '^2.8.0',
13
+ 'hls.js': '^1.5.0',
14
+ maath: '^0.10.0',
15
+ meshline: '^3.1.0',
16
+ 'stats-gl': '^2.0.0',
17
+ 'three-custom-shader-material': '^5.4.0',
18
+ 'three-mesh-bvh': '^0.7.0',
19
+ 'troika-three-text': '^0.49.0',
20
+ };
21
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../../../libs/plugin/src/generators/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AACjC,QAAA,aAAa,GAAG,UAAU,CAAC;AAC3B,QAAA,kBAAkB,GAAG,UAAU,CAAC;AAChC,QAAA,kBAAkB,GAAG,QAAQ,CAAC;AAE9B,QAAA,sBAAsB,GAAG;IACrC,cAAc,EAAE,QAAQ;IACxB,iBAAiB,EAAE,SAAS;IAC5B,sBAAsB,EAAE,QAAQ;IAChC,iBAAiB,EAAE,QAAQ;IAC3B,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,8BAA8B,EAAE,QAAQ;IACxC,gBAAgB,EAAE,QAAQ;IAC1B,mBAAmB,EAAE,SAAS;CACrB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { default as initPostprocessingGenerator } from './generators/init-postprocessing/generator';
2
- export { default as initSobaGenerator } from './generators/init-soba/generator';
3
- export { default as initGenerator } from './generators/init/generator';
@@ -1,10 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.initGenerator = exports.initSobaGenerator = exports.initPostprocessingGenerator = void 0;
4
- var generator_1 = require("./generators/init-postprocessing/generator");
5
- Object.defineProperty(exports, "initPostprocessingGenerator", { enumerable: true, get: function () { return generator_1.default; } });
6
- var generator_2 = require("./generators/init-soba/generator");
7
- Object.defineProperty(exports, "initSobaGenerator", { enumerable: true, get: function () { return generator_2.default; } });
8
- var generator_3 = require("./generators/init/generator");
9
- Object.defineProperty(exports, "initGenerator", { enumerable: true, get: function () { return generator_3.default; } });
10
1
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/plugin/src/index.ts"],"names":[],"mappings":";;;AAAA,wEAAoG;AAA3F,wHAAA,OAAO,OAA+B;AAC/C,8DAAgF;AAAvE,8GAAA,OAAO,OAAqB;AACrC,yDAAuE;AAA9D,0GAAA,OAAO,OAAiB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/plugin/src/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ # angular-three/testing
2
+
3
+ Secondary entry point of `angular-three`. It can be used by importing from `angular-three/testing`.
@@ -0,0 +1,2 @@
1
+ export * from './lib/test-bed';
2
+ export * from './lib/test-canvas';
@@ -0,0 +1,38 @@
1
+ import { Type } from '@angular/core';
2
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
3
+ import { NgtAnyRecord, NgtCanvasOptions, NgtEventHandlers, NgtInstanceNode, NgtSignalStore, NgtState } from 'angular-three';
4
+ import { NgtTestCanvas } from './test-canvas';
5
+ export interface NgtTestGraphedObject {
6
+ type: string;
7
+ name: string;
8
+ children: NgtTestGraphedObject[];
9
+ }
10
+ export declare class NgtTestBed {
11
+ static create<T extends Type<any>>(sceneGraph: T, { mockCanvasOptions, canvasConfiguration, errorOnUnknownElements, providers, declarations, imports, teardown, deferBlockBehavior, }?: {
12
+ mockCanvasOptions?: {
13
+ width?: number;
14
+ height?: number;
15
+ beforeReturn?: (canvas: HTMLCanvasElement) => void;
16
+ };
17
+ canvasConfiguration?: Partial<Omit<NgtCanvasOptions, 'frameloop' | 'size' | 'events'>>;
18
+ } & Omit<Parameters<TestBed['configureTestingModule']>[0], 'schemas'>): {
19
+ store: NgtSignalStore<NgtState>;
20
+ fixture: ComponentFixture<NgtTestCanvas>;
21
+ scene: import("three").Scene;
22
+ sceneInstanceNode: import("angular-three").NgtLocalState;
23
+ canvas: HTMLCanvasElement;
24
+ destroy: () => void;
25
+ fireEvent: {
26
+ (el: NgtInstanceNode, eventName: keyof NgtEventHandlers, eventData?: NgtAnyRecord): Promise<void>;
27
+ setAutoDetectChanges(auto: boolean): void;
28
+ };
29
+ advance: (frames: number, delta?: number | number[]) => Promise<void>;
30
+ toGraph: () => NgtTestGraphedObject[];
31
+ };
32
+ static createToGraph(store: NgtSignalStore<NgtState>): () => NgtTestGraphedObject[];
33
+ static createAdvance(store: NgtSignalStore<NgtState>): (frames: number, delta?: number | number[]) => Promise<void>;
34
+ static createEventFirer(store: NgtSignalStore<NgtState>, fixture: ComponentFixture<NgtTestCanvas>): {
35
+ (el: NgtInstanceNode, eventName: keyof NgtEventHandlers, eventData?: NgtAnyRecord): Promise<void>;
36
+ setAutoDetectChanges(auto: boolean): void;
37
+ };
38
+ }
@@ -0,0 +1,11 @@
1
+ import { Type } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class NgtTestCanvas {
4
+ sceneGraph: import("@angular/core").InputSignal<Type<any>>;
5
+ private ref?;
6
+ private environmentInjector?;
7
+ constructor();
8
+ destroy(): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtTestCanvas, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtTestCanvas, "ngt-test-canvas", never, { "sceneGraph": { "alias": "sceneGraph"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,5 @@
1
+ export declare function createMockCanvas({ width, height, beforeReturn, }: {
2
+ width?: number;
3
+ height?: number;
4
+ beforeReturn?: (canvas: HTMLCanvasElement) => void;
5
+ }): HTMLCanvasElement;
@@ -0,0 +1,16 @@
1
+ export declare class WebGL2RenderingContext {
2
+ [key: string]: any;
3
+ constructor(canvas: HTMLCanvasElement);
4
+ getShaderPrecisionFormat: () => {
5
+ rangeMin: number;
6
+ rangeMax: number;
7
+ precision: number;
8
+ };
9
+ private GL_VERSION;
10
+ private SCISSOR_BOX;
11
+ private VIEWPORT;
12
+ getParameter(paramId: number): string[] | number[] | undefined;
13
+ getExtension(ext: string): any;
14
+ getProgramInfoLog: () => string;
15
+ getShaderInfoLog: () => string;
16
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../fesm2022/angular-three-testing.mjs"
3
+ }