angular-three 2.0.0-beta.242 → 2.0.0-beta.244

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 (50) hide show
  1. package/esm2022/index.mjs +2 -2
  2. package/esm2022/lib/canvas.mjs +19 -27
  3. package/esm2022/lib/directives/args.mjs +52 -14
  4. package/esm2022/lib/instance.mjs +10 -9
  5. package/esm2022/lib/loop.mjs +2 -2
  6. package/esm2022/lib/portal.mjs +119 -111
  7. package/esm2022/lib/renderer/catalogue.mjs +2 -2
  8. package/esm2022/lib/renderer/constants.mjs +3 -5
  9. package/esm2022/lib/renderer/index.mjs +276 -194
  10. package/esm2022/lib/renderer/state.mjs +49 -0
  11. package/esm2022/lib/renderer/utils.mjs +40 -24
  12. package/esm2022/lib/roots.mjs +25 -25
  13. package/esm2022/lib/routed-scene.mjs +3 -3
  14. package/esm2022/lib/store.mjs +14 -12
  15. package/esm2022/lib/three-types.mjs +1 -1
  16. package/esm2022/lib/utils/apply-props.mjs +3 -3
  17. package/esm2022/lib/utils/before-render.mjs +4 -3
  18. package/esm2022/lib/utils/parameters.mjs +33 -28
  19. package/esm2022/lib/utils/resolve-ref.mjs +8 -0
  20. package/esm2022/lib/utils/signal-store.mjs +3 -14
  21. package/fesm2022/angular-three.mjs +720 -1089
  22. package/fesm2022/angular-three.mjs.map +1 -1
  23. package/index.d.ts +2 -2
  24. package/lib/canvas.d.ts +278 -1001
  25. package/lib/directives/args.d.ts +11 -4
  26. package/lib/instance.d.ts +8 -13
  27. package/lib/loop.d.ts +1 -1
  28. package/lib/portal.d.ts +41 -31
  29. package/lib/renderer/catalogue.d.ts +1 -1
  30. package/lib/renderer/constants.d.ts +2 -4
  31. package/lib/renderer/index.d.ts +15 -5
  32. package/lib/renderer/state.d.ts +23 -0
  33. package/lib/renderer/utils.d.ts +5 -22
  34. package/lib/roots.d.ts +5 -0
  35. package/lib/store.d.ts +12 -12
  36. package/lib/three-types.d.ts +8 -5
  37. package/lib/utils/parameters.d.ts +6 -9
  38. package/lib/utils/resolve-ref.d.ts +2 -0
  39. package/lib/utils/signal-store.d.ts +1 -5
  40. package/metadata.json +1 -1
  41. package/package.json +71 -72
  42. package/web-types.json +1 -1
  43. package/esm2022/lib/directives/common.mjs +0 -67
  44. package/esm2022/lib/directives/parent.mjs +0 -20
  45. package/esm2022/lib/ref.mjs +0 -50
  46. package/esm2022/lib/renderer/store.mjs +0 -439
  47. package/lib/directives/common.d.ts +0 -31
  48. package/lib/directives/parent.d.ts +0 -11
  49. package/lib/ref.d.ts +0 -7
  50. package/lib/renderer/store.d.ts +0 -65
@@ -1,67 +0,0 @@
1
- import { DestroyRef, Directive, NgZone, TemplateRef, ViewContainerRef, afterNextRender, inject, untracked, } from '@angular/core';
2
- import { injectAutoEffect } from 'ngxtension/auto-effect';
3
- import { createInjectionToken } from 'ngxtension/create-injection-token';
4
- import { SPECIAL_INTERNAL_ADD_COMMENT } from '../renderer/constants';
5
- import * as i0 from "@angular/core";
6
- export const [injectNodeType, provideNodeType] = createInjectionToken(() => '', {
7
- isRoot: false,
8
- });
9
- export class NgtCommonDirective {
10
- constructor() {
11
- this.vcr = inject(ViewContainerRef);
12
- this.zone = inject(NgZone);
13
- this.template = inject(TemplateRef);
14
- this.nodeType = injectNodeType();
15
- this.autoEffect = injectAutoEffect();
16
- this.injected = false;
17
- this.injectedValue = null;
18
- this.shouldCreateView = true;
19
- const commentNode = this.vcr.element.nativeElement;
20
- if (commentNode[SPECIAL_INTERNAL_ADD_COMMENT]) {
21
- commentNode[SPECIAL_INTERNAL_ADD_COMMENT](this.nodeType);
22
- delete commentNode[SPECIAL_INTERNAL_ADD_COMMENT];
23
- }
24
- afterNextRender(() => {
25
- this.autoEffect(() => {
26
- const value = this.inputValue();
27
- if (this.shouldSkipCreateView(value))
28
- return;
29
- this.injected = false;
30
- this.injectedValue = value;
31
- untracked(() => {
32
- this.createView();
33
- });
34
- });
35
- });
36
- inject(DestroyRef).onDestroy(() => {
37
- this.view?.destroy();
38
- });
39
- }
40
- shouldSkipCreateView(value) {
41
- return !value;
42
- }
43
- get value() {
44
- if (this.validate()) {
45
- this.injected = true;
46
- return this.injectedValue;
47
- }
48
- return null;
49
- }
50
- createView() {
51
- this.zone.runOutsideAngular(() => {
52
- if (this.shouldCreateView) {
53
- if (this.view && !this.view.destroyed) {
54
- this.view.destroy();
55
- }
56
- this.view = this.vcr.createEmbeddedView(this.template);
57
- this.view.detectChanges();
58
- }
59
- });
60
- }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtCommonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
62
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: NgtCommonDirective, ngImport: i0 }); }
63
- }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtCommonDirective, decorators: [{
65
- type: Directive
66
- }], ctorParameters: () => [] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFVBQVUsRUFDVixTQUFTLEVBRVQsTUFBTSxFQUNOLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLE1BQU0sRUFDTixTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRXJFLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQTRCLEVBQUU7SUFDekcsTUFBTSxFQUFFLEtBQUs7Q0FDYixDQUFDLENBQUM7QUFHSCxNQUFNLE9BQWdCLGtCQUFrQjtJQVl2QztRQVhRLFFBQUcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMvQixTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RCLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0IsYUFBUSxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQzVCLGVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRTlCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBQ3BDLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUlqQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDbkQsSUFBSSxXQUFXLENBQUMsNEJBQTRCLENBQUMsRUFBRSxDQUFDO1lBQy9DLFdBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RCxPQUFPLFdBQVcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hDLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQztvQkFBRSxPQUFPO2dCQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7Z0JBQzNCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNuQixDQUFDLENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUtTLG9CQUFvQixDQUFDLEtBQW9CO1FBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVPLFVBQVU7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsQ0FBQztnQkFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBN0RvQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdERlc3Ryb3lSZWYsXG5cdERpcmVjdGl2ZSxcblx0RW1iZWRkZWRWaWV3UmVmLFxuXHROZ1pvbmUsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxuXHRhZnRlck5leHRSZW5kZXIsXG5cdGluamVjdCxcblx0dW50cmFja2VkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IGNyZWF0ZUluamVjdGlvblRva2VuIH0gZnJvbSAnbmd4dGVuc2lvbi9jcmVhdGUtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IFNQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlQgfSBmcm9tICcuLi9yZW5kZXJlci9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgW2luamVjdE5vZGVUeXBlLCBwcm92aWRlTm9kZVR5cGVdID0gY3JlYXRlSW5qZWN0aW9uVG9rZW4oKCkgPT4gJycgYXMgJ2FyZ3MnIHwgJ3BhcmVudCcgfCAnJywge1xuXHRpc1Jvb3Q6IGZhbHNlLFxufSk7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ndENvbW1vbkRpcmVjdGl2ZTxUVmFsdWU+IHtcblx0cHJpdmF0ZSB2Y3IgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cdHByaXZhdGUgem9uZSA9IGluamVjdChOZ1pvbmUpO1xuXHRwcml2YXRlIHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcblx0cHJpdmF0ZSBub2RlVHlwZSA9IGluamVjdE5vZGVUeXBlKCk7XG5cdHByaXZhdGUgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblxuXHRwcm90ZWN0ZWQgaW5qZWN0ZWQgPSBmYWxzZTtcblx0cHJvdGVjdGVkIGluamVjdGVkVmFsdWU6IFRWYWx1ZSB8IG51bGwgPSBudWxsO1xuXHRwcm90ZWN0ZWQgc2hvdWxkQ3JlYXRlVmlldyA9IHRydWU7XG5cdHByaXZhdGUgdmlldz86IEVtYmVkZGVkVmlld1JlZjx1bmtub3duPjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb25zdCBjb21tZW50Tm9kZSA9IHRoaXMudmNyLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcblx0XHRpZiAoY29tbWVudE5vZGVbU1BFQ0lBTF9JTlRFUk5BTF9BRERfQ09NTUVOVF0pIHtcblx0XHRcdGNvbW1lbnROb2RlW1NQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlRdKHRoaXMubm9kZVR5cGUpO1xuXHRcdFx0ZGVsZXRlIGNvbW1lbnROb2RlW1NQRUNJQUxfSU5URVJOQUxfQUREX0NPTU1FTlRdO1xuXHRcdH1cblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLmF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRWYWx1ZSgpO1xuXHRcdFx0XHRpZiAodGhpcy5zaG91bGRTa2lwQ3JlYXRlVmlldyh2YWx1ZSkpIHJldHVybjtcblx0XHRcdFx0dGhpcy5pbmplY3RlZCA9IGZhbHNlO1xuXHRcdFx0XHR0aGlzLmluamVjdGVkVmFsdWUgPSB2YWx1ZTtcblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVZpZXcoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGhpcy52aWV3Py5kZXN0cm95KCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgaW5wdXRWYWx1ZSgpOiBUVmFsdWUgfCBudWxsO1xuXHRhYnN0cmFjdCB2YWxpZGF0ZSgpOiBib29sZWFuO1xuXG5cdHByb3RlY3RlZCBzaG91bGRTa2lwQ3JlYXRlVmlldyh2YWx1ZTogVFZhbHVlIHwgbnVsbCkge1xuXHRcdHJldHVybiAhdmFsdWU7XG5cdH1cblxuXHRnZXQgdmFsdWUoKSB7XG5cdFx0aWYgKHRoaXMudmFsaWRhdGUoKSkge1xuXHRcdFx0dGhpcy5pbmplY3RlZCA9IHRydWU7XG5cdFx0XHRyZXR1cm4gdGhpcy5pbmplY3RlZFZhbHVlO1xuXHRcdH1cblx0XHRyZXR1cm4gbnVsbDtcblx0fVxuXG5cdHByaXZhdGUgY3JlYXRlVmlldygpIHtcblx0XHR0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2hvdWxkQ3JlYXRlVmlldykge1xuXHRcdFx0XHRpZiAodGhpcy52aWV3ICYmICF0aGlzLnZpZXcuZGVzdHJveWVkKSB7XG5cdFx0XHRcdFx0dGhpcy52aWV3LmRlc3Ryb3koKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnZpZXcgPSB0aGlzLnZjci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XG5cdFx0XHRcdHRoaXMudmlldy5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- import { Directive, input } from '@angular/core';
2
- import { NgtCommonDirective, provideNodeType } from './common';
3
- import * as i0 from "@angular/core";
4
- export class NgtParent extends NgtCommonDirective {
5
- constructor() {
6
- super(...arguments);
7
- this.parent = input.required();
8
- this.inputValue = this.parent;
9
- }
10
- validate() {
11
- return !this.injected && !!this.injectedValue;
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtParent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
14
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: NgtParent, isStandalone: true, selector: "ng-template[parent]", inputs: { parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null } }, providers: [provideNodeType('parent')], usesInheritance: true, ngImport: i0 }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtParent, decorators: [{
17
- type: Directive,
18
- args: [{ selector: 'ng-template[parent]', standalone: true, providers: [provideNodeType('parent')] }]
19
- }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGlyZWN0aXZlcy9wYXJlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHL0QsTUFBTSxPQUFPLFNBQVUsU0FBUSxrQkFBNkM7SUFENUU7O1FBRUMsV0FBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTZCLENBQUM7UUFDbEMsZUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7S0FLNUM7SUFIQSxRQUFRO1FBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDL0MsQ0FBQzs4R0FOVyxTQUFTO2tHQUFULFNBQVMsd01BRHFELENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDOzsyRkFDekYsU0FBUztrQkFEckIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JqZWN0M0QgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RSZWYgfSBmcm9tICcuLi9yZWYnO1xuaW1wb3J0IHsgTmd0Q29tbW9uRGlyZWN0aXZlLCBwcm92aWRlTm9kZVR5cGUgfSBmcm9tICcuL2NvbW1vbic7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW3BhcmVudF0nLCBzdGFuZGFsb25lOiB0cnVlLCBwcm92aWRlcnM6IFtwcm92aWRlTm9kZVR5cGUoJ3BhcmVudCcpXSB9KVxuZXhwb3J0IGNsYXNzIE5ndFBhcmVudCBleHRlbmRzIE5ndENvbW1vbkRpcmVjdGl2ZTxzdHJpbmcgfCBOZ3RSZWY8T2JqZWN0M0Q+PiB7XG5cdHBhcmVudCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZyB8IE5ndFJlZjxPYmplY3QzRD4+KCk7XG5cdHByb3RlY3RlZCBvdmVycmlkZSBpbnB1dFZhbHVlID0gdGhpcy5wYXJlbnQ7XG5cblx0dmFsaWRhdGUoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICF0aGlzLmluamVjdGVkICYmICEhdGhpcy5pbmplY3RlZFZhbHVlO1xuXHR9XG59XG4iXX0=
@@ -1,50 +0,0 @@
1
- import { DestroyRef, ElementRef, computed, inject, signal, untracked } from '@angular/core';
2
- import { assertInjector } from 'ngxtension/assert-injector';
3
- import { getLocalState } from './instance';
4
- import { is } from './utils/is';
5
- export function injectNgtRef(initial = null, injector) {
6
- if (initial && Reflect.get(initial, '__ngtType')) {
7
- return initial;
8
- }
9
- return assertInjector(injectNgtRef, injector, () => {
10
- const ref = is.ref(initial) ? initial : new ElementRef(initial);
11
- const refSignal = signal(ref.nativeElement, { equal: Object.is });
12
- const readonlyRef = refSignal.asReadonly();
13
- const computedCached = new Map();
14
- inject(DestroyRef).onDestroy(() => void computedCached.clear());
15
- const children = (type = 'objects') => {
16
- if (!computedCached.has(type)) {
17
- computedCached.set(type, computed(() => {
18
- const instance = readonlyRef();
19
- if (!instance)
20
- return [];
21
- const localState = getLocalState(instance);
22
- if (!localState?.instanceStore)
23
- return [];
24
- if (type === 'objects')
25
- return localState.objects();
26
- if (type === 'nonObjects')
27
- return localState.nonObjects();
28
- return [...localState.objects(), ...localState.nonObjects()];
29
- }));
30
- }
31
- return computedCached.get(type);
32
- };
33
- Object.defineProperties(ref, {
34
- nativeElement: {
35
- set: (newElement) => {
36
- untracked(() => {
37
- if (newElement !== readonlyRef()) {
38
- refSignal.set(newElement);
39
- }
40
- });
41
- },
42
- get: readonlyRef,
43
- },
44
- children: { value: children },
45
- __ngtType: { value: 'ngtRef' },
46
- });
47
- return ref;
48
- });
49
- }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFvQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBbUIsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFTaEMsTUFBTSxVQUFVLFlBQVksQ0FDM0IsVUFBMkMsSUFBSyxFQUNoRCxRQUFtQjtJQUVuQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ2xELE9BQU8sT0FBbUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsT0FBTyxjQUFjLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDbEQsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFtQixDQUFDLENBQUM7UUFDNUUsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEUsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzNDLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFFakMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBMEMsU0FBUyxFQUFFLEVBQUU7WUFDeEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsY0FBYyxDQUFDLEdBQUcsQ0FDakIsSUFBSSxFQUNKLFFBQVEsQ0FBQyxHQUFHLEVBQUU7b0JBQ2IsTUFBTSxRQUFRLEdBQUcsV0FBVyxFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxRQUFRO3dCQUFFLE9BQU8sRUFBRSxDQUFDO29CQUN6QixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzNDLElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYTt3QkFBRSxPQUFPLEVBQUUsQ0FBQztvQkFDMUMsSUFBSSxJQUFJLEtBQUssU0FBUzt3QkFBRSxPQUFPLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDcEQsSUFBSSxJQUFJLEtBQUssWUFBWTt3QkFBRSxPQUFPLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDMUQsT0FBTyxDQUFDLEdBQUcsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQzlELENBQUMsQ0FBQyxDQUNGLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDNUIsYUFBYSxFQUFFO2dCQUNkLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFO29CQUNuQixTQUFTLENBQUMsR0FBRyxFQUFFO3dCQUNkLElBQUksVUFBVSxLQUFLLFdBQVcsRUFBRSxFQUFFLENBQUM7NEJBQ2xDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7d0JBQzNCLENBQUM7b0JBQ0YsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxHQUFHLEVBQUUsV0FBVzthQUNoQjtZQUNELFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDN0IsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtTQUM5QixDQUFDLENBQUM7UUFFSCxPQUFPLEdBQStCLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIFNpZ25hbCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgTmd0SW5zdGFuY2VOb2RlLCBnZXRMb2NhbFN0YXRlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vdXRpbHMvaXMnO1xuXG5leHBvcnQgdHlwZSBOZ3RJbmplY3RlZFJlZjxURWxlbWVudD4gPSBFbGVtZW50UmVmPFRFbGVtZW50PiAmIHtcblx0LyogY29uc3VtZXJzIHNob3VsZCB1c2UgdGhpcyBmb3IgbGlzdGVudGluZyB0byBjaGlsZHJlbiBjaGFuZ2VzIG9uIHRoaXMgcmVmICovXG5cdGNoaWxkcmVuOiAodHlwZT86ICdvYmplY3RzJyB8ICdub25PYmplY3RzJyB8ICdib3RoJykgPT4gU2lnbmFsPE5ndEluc3RhbmNlTm9kZVtdPjtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndFJlZjxURWxlbWVudD4gPSBURWxlbWVudCB8IE5ndEluamVjdGVkUmVmPFRFbGVtZW50PjtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndFJlZjxURWxlbWVudD4oXG5cdGluaXRpYWw6IEVsZW1lbnRSZWY8VEVsZW1lbnQ+IHwgVEVsZW1lbnQgPSBudWxsISxcblx0aW5qZWN0b3I/OiBJbmplY3Rvcixcbik6IE5ndEluamVjdGVkUmVmPFRFbGVtZW50PiB7XG5cdGlmIChpbml0aWFsICYmIFJlZmxlY3QuZ2V0KGluaXRpYWwsICdfX25ndFR5cGUnKSkge1xuXHRcdHJldHVybiBpbml0aWFsIGFzIE5ndEluamVjdGVkUmVmPFRFbGVtZW50Pjtcblx0fVxuXG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3ROZ3RSZWYsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgcmVmID0gaXMucmVmKGluaXRpYWwpID8gaW5pdGlhbCA6IG5ldyBFbGVtZW50UmVmKGluaXRpYWwgYXMgVEVsZW1lbnQpO1xuXHRcdGNvbnN0IHJlZlNpZ25hbCA9IHNpZ25hbChyZWYubmF0aXZlRWxlbWVudCwgeyBlcXVhbDogT2JqZWN0LmlzIH0pO1xuXHRcdGNvbnN0IHJlYWRvbmx5UmVmID0gcmVmU2lnbmFsLmFzUmVhZG9ubHkoKTtcblx0XHRjb25zdCBjb21wdXRlZENhY2hlZCA9IG5ldyBNYXAoKTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gdm9pZCBjb21wdXRlZENhY2hlZC5jbGVhcigpKTtcblxuXHRcdGNvbnN0IGNoaWxkcmVuID0gKHR5cGU6ICdvYmplY3RzJyB8ICdub25PYmplY3RzJyB8ICdib3RoJyA9ICdvYmplY3RzJykgPT4ge1xuXHRcdFx0aWYgKCFjb21wdXRlZENhY2hlZC5oYXModHlwZSkpIHtcblx0XHRcdFx0Y29tcHV0ZWRDYWNoZWQuc2V0KFxuXHRcdFx0XHRcdHR5cGUsXG5cdFx0XHRcdFx0Y29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgaW5zdGFuY2UgPSByZWFkb25seVJlZigpO1xuXHRcdFx0XHRcdFx0aWYgKCFpbnN0YW5jZSkgcmV0dXJuIFtdO1xuXHRcdFx0XHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpO1xuXHRcdFx0XHRcdFx0aWYgKCFsb2NhbFN0YXRlPy5pbnN0YW5jZVN0b3JlKSByZXR1cm4gW107XG5cdFx0XHRcdFx0XHRpZiAodHlwZSA9PT0gJ29iamVjdHMnKSByZXR1cm4gbG9jYWxTdGF0ZS5vYmplY3RzKCk7XG5cdFx0XHRcdFx0XHRpZiAodHlwZSA9PT0gJ25vbk9iamVjdHMnKSByZXR1cm4gbG9jYWxTdGF0ZS5ub25PYmplY3RzKCk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gWy4uLmxvY2FsU3RhdGUub2JqZWN0cygpLCAuLi5sb2NhbFN0YXRlLm5vbk9iamVjdHMoKV07XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gY29tcHV0ZWRDYWNoZWQuZ2V0KHR5cGUpITtcblx0XHR9O1xuXG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocmVmLCB7XG5cdFx0XHRuYXRpdmVFbGVtZW50OiB7XG5cdFx0XHRcdHNldDogKG5ld0VsZW1lbnQpID0+IHtcblx0XHRcdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKG5ld0VsZW1lbnQgIT09IHJlYWRvbmx5UmVmKCkpIHtcblx0XHRcdFx0XHRcdFx0cmVmU2lnbmFsLnNldChuZXdFbGVtZW50KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSxcblx0XHRcdFx0Z2V0OiByZWFkb25seVJlZixcblx0XHRcdH0sXG5cdFx0XHRjaGlsZHJlbjogeyB2YWx1ZTogY2hpbGRyZW4gfSxcblx0XHRcdF9fbmd0VHlwZTogeyB2YWx1ZTogJ25ndFJlZicgfSxcblx0XHR9KTtcblxuXHRcdHJldHVybiByZWYgYXMgTmd0SW5qZWN0ZWRSZWY8VEVsZW1lbnQ+O1xuXHR9KTtcbn1cbiJdfQ==