angular-three 1.10.2 → 2.0.0-beta.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 (62) hide show
  1. package/README.md +89 -5
  2. package/esm2022/index.mjs +5 -7
  3. package/esm2022/lib/canvas.mjs +138 -99
  4. package/esm2022/lib/di/before-render.mjs +7 -10
  5. package/esm2022/lib/di/ref.mjs +38 -59
  6. package/esm2022/lib/directives/args.mjs +5 -8
  7. package/esm2022/lib/directives/common.mjs +20 -13
  8. package/esm2022/lib/directives/parent.mjs +5 -8
  9. package/esm2022/lib/{web → dom}/events.mjs +1 -1
  10. package/esm2022/lib/events.mjs +2 -2
  11. package/esm2022/lib/loader.mjs +58 -44
  12. package/esm2022/lib/loop.mjs +6 -8
  13. package/esm2022/lib/portal.mjs +76 -63
  14. package/esm2022/lib/renderer/provider.mjs +3 -2
  15. package/esm2022/lib/renderer/renderer.mjs +53 -52
  16. package/esm2022/lib/renderer/store.mjs +14 -19
  17. package/esm2022/lib/renderer/utils.mjs +27 -18
  18. package/esm2022/lib/routed-scene.mjs +12 -10
  19. package/esm2022/lib/stores/signal.store.mjs +60 -0
  20. package/esm2022/lib/stores/store.mjs +69 -48
  21. package/esm2022/lib/three-types.mjs +2 -0
  22. package/esm2022/lib/types.mjs +1 -1
  23. package/esm2022/lib/utils/apply-props.mjs +11 -7
  24. package/esm2022/lib/utils/attach.mjs +1 -1
  25. package/esm2022/lib/utils/instance.mjs +14 -14
  26. package/esm2022/lib/utils/safe-detect-changes.mjs +1 -1
  27. package/fesm2022/angular-three.mjs +1673 -1744
  28. package/fesm2022/angular-three.mjs.map +1 -1
  29. package/index.d.ts +4 -6
  30. package/lib/canvas.d.ts +11 -20
  31. package/lib/di/before-render.d.ts +5 -1
  32. package/lib/di/ref.d.ts +5 -11
  33. package/lib/directives/args.d.ts +6 -6
  34. package/lib/directives/common.d.ts +1 -4
  35. package/lib/directives/parent.d.ts +1 -1
  36. package/lib/{web → dom}/events.d.ts +2 -2
  37. package/lib/events.d.ts +3 -3
  38. package/lib/loader.d.ts +6 -2
  39. package/lib/loop.d.ts +4 -4
  40. package/lib/portal.d.ts +11 -18
  41. package/lib/renderer/renderer.d.ts +7 -9
  42. package/lib/renderer/store.d.ts +3 -5
  43. package/lib/renderer/utils.d.ts +6 -4
  44. package/lib/routed-scene.d.ts +4 -2
  45. package/lib/stores/signal.store.d.ts +19 -0
  46. package/lib/stores/store.d.ts +4 -7
  47. package/lib/three-types.d.ts +306 -0
  48. package/lib/types.d.ts +22 -25
  49. package/lib/utils/attach.d.ts +2 -2
  50. package/lib/utils/instance.d.ts +1 -1
  51. package/package.json +6 -7
  52. package/plugin/package.json +1 -1
  53. package/plugin/src/generators/init/init.d.ts +1 -1
  54. package/plugin/src/generators/init/init.js +1 -1
  55. package/esm2022/lib/di/destroy.mjs +0 -23
  56. package/esm2022/lib/di/run-in-context.mjs +0 -40
  57. package/esm2022/lib/pipes/push.mjs +0 -50
  58. package/esm2022/lib/stores/rx-store.mjs +0 -108
  59. package/lib/di/destroy.d.ts +0 -9
  60. package/lib/di/run-in-context.d.ts +0 -6
  61. package/lib/pipes/push.d.ts +0 -16
  62. package/lib/stores/rx-store.d.ts +0 -42
@@ -1,50 +0,0 @@
1
- import { ChangeDetectorRef, EnvironmentInjector, inject, Pipe } from '@angular/core';
2
- import { isObservable } from 'rxjs';
3
- import { safeDetectChanges } from '../utils/safe-detect-changes';
4
- import * as i0 from "@angular/core";
5
- function isPromise(value) {
6
- return ((value instanceof Promise || Object.prototype.toString.call(value) === '[object Promise]') &&
7
- typeof value['then'] === 'function');
8
- }
9
- class NgtPush {
10
- constructor() {
11
- this.cdr = inject(ChangeDetectorRef);
12
- this.parentCdr = inject(ChangeDetectorRef, { skipSelf: true, optional: true });
13
- this.envCdr = inject(EnvironmentInjector).get(ChangeDetectorRef, null);
14
- }
15
- transform(value, defaultValue = null) {
16
- if (this.obj === value)
17
- return this.latestValue;
18
- this.obj = value;
19
- this.latestValue = defaultValue;
20
- if (this.sub)
21
- this.sub.unsubscribe();
22
- if (isObservable(this.obj))
23
- this.sub = this.obj.subscribe(this.updateValue.bind(this));
24
- else if (isPromise(this.obj))
25
- this.obj.then(this.updateValue.bind(this));
26
- else
27
- throw new Error(`[NGT] Invalid value passed to ngtPush pipe`);
28
- return this.latestValue;
29
- }
30
- updateValue(val) {
31
- this.latestValue = val;
32
- safeDetectChanges(this.cdr);
33
- safeDetectChanges(this.parentCdr);
34
- safeDetectChanges(this.envCdr);
35
- }
36
- ngOnDestroy() {
37
- if (this.sub)
38
- this.sub.unsubscribe();
39
- this.latestValue = undefined;
40
- this.obj = undefined;
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtPush, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
43
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: NgtPush, isStandalone: true, name: "ngtPush", pure: false }); }
44
- }
45
- export { NgtPush };
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtPush, decorators: [{
47
- type: Pipe,
48
- args: [{ name: 'ngtPush', pure: false, standalone: true }]
49
- }] });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS9zcmMvbGliL3BpcGVzL3B1c2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBYSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxZQUFZLEVBQWlDLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUVqRSxTQUFTLFNBQVMsQ0FBQyxLQUFjO0lBQzdCLE9BQU8sQ0FDSCxDQUFDLEtBQUssWUFBWSxPQUFPLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLGtCQUFrQixDQUFDO1FBQzFGLE9BQVEsS0FBMEIsQ0FBQyxNQUFNLENBQUMsS0FBSyxVQUFVLENBQzVELENBQUM7QUFDTixDQUFDO0FBRUQsTUFDYSxPQUFPO0lBRHBCO1FBRXFCLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxjQUFTLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRSxXQUFNLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO0tBaUN0RjtJQTNCRyxTQUFTLENBQUMsS0FBeUIsRUFBRSxlQUFrQixJQUFLO1FBQ3hELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUMsV0FBZ0IsQ0FBQztRQUVyRCxJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVyQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ2xGLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFBRyxJQUFJLENBQUMsR0FBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzs7WUFDcEYsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBRW5FLE9BQU8sSUFBSSxDQUFDLFdBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxHQUFNO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxJQUFJLENBQUMsR0FBRztZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7SUFDekIsQ0FBQzs4R0FuQ1EsT0FBTzs0R0FBUCxPQUFPOztTQUFQLE9BQU87MkZBQVAsT0FBTztrQkFEbkIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVudmlyb25tZW50SW5qZWN0b3IsIGluamVjdCwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc09ic2VydmFibGUsIE9ic2VydmFibGVJbnB1dCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzYWZlRGV0ZWN0Q2hhbmdlcyB9IGZyb20gJy4uL3V0aWxzL3NhZmUtZGV0ZWN0LWNoYW5nZXMnO1xuXG5mdW5jdGlvbiBpc1Byb21pc2UodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBQcm9taXNlPHVua25vd24+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICAodmFsdWUgaW5zdGFuY2VvZiBQcm9taXNlIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IFByb21pc2VdJykgJiZcbiAgICAgICAgdHlwZW9mICh2YWx1ZSBhcyBQcm9taXNlPHVua25vd24+KVsndGhlbiddID09PSAnZnVuY3Rpb24nXG4gICAgKTtcbn1cblxuQFBpcGUoeyBuYW1lOiAnbmd0UHVzaCcsIHB1cmU6IGZhbHNlLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0UHVzaDxUPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50Q2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmLCB7IHNraXBTZWxmOiB0cnVlLCBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVudkNkciA9IGluamVjdChFbnZpcm9ubWVudEluamVjdG9yKS5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYsIG51bGwpO1xuXG4gICAgcHJpdmF0ZSBzdWI/OiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBvYmo/OiBPYnNlcnZhYmxlSW5wdXQ8VD47XG4gICAgcHJpdmF0ZSBsYXRlc3RWYWx1ZT86IFQ7XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IE9ic2VydmFibGVJbnB1dDxUPiwgZGVmYXVsdFZhbHVlOiBUID0gbnVsbCEpOiBUIHtcbiAgICAgICAgaWYgKHRoaXMub2JqID09PSB2YWx1ZSkgcmV0dXJuIHRoaXMubGF0ZXN0VmFsdWUgYXMgVDtcblxuICAgICAgICB0aGlzLm9iaiA9IHZhbHVlO1xuICAgICAgICB0aGlzLmxhdGVzdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuXG4gICAgICAgIGlmICh0aGlzLnN1YikgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcblxuICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKHRoaXMub2JqKSkgdGhpcy5zdWIgPSB0aGlzLm9iai5zdWJzY3JpYmUodGhpcy51cGRhdGVWYWx1ZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgZWxzZSBpZiAoaXNQcm9taXNlKHRoaXMub2JqKSkgKHRoaXMub2JqIGFzIFByb21pc2U8VD4pLnRoZW4odGhpcy51cGRhdGVWYWx1ZS5iaW5kKHRoaXMpKTtcbiAgICAgICAgZWxzZSB0aHJvdyBuZXcgRXJyb3IoYFtOR1RdIEludmFsaWQgdmFsdWUgcGFzc2VkIHRvIG5ndFB1c2ggcGlwZWApO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmxhdGVzdFZhbHVlIGFzIFQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWx1ZSh2YWw6IFQpIHtcbiAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZSA9IHZhbDtcbiAgICAgICAgc2FmZURldGVjdENoYW5nZXModGhpcy5jZHIpO1xuICAgICAgICBzYWZlRGV0ZWN0Q2hhbmdlcyh0aGlzLnBhcmVudENkcik7XG4gICAgICAgIHNhZmVEZXRlY3RDaGFuZ2VzKHRoaXMuZW52Q2RyKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3ViKSB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmxhdGVzdFZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLm9iaiA9IHVuZGVmaW5lZDtcbiAgICB9XG59XG4iXX0=
@@ -1,108 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { RxState } from '@rx-angular/state';
3
- import { combineLatest, startWith, tap } from 'rxjs';
4
- import { is } from '../utils/is';
5
- import { safeDetectChanges } from '../utils/safe-detect-changes';
6
- import * as i0 from "@angular/core";
7
- export const startWithUndefined = () => startWith(undefined);
8
- /**
9
- * An extended `tap` operator that accepts an `effectFn` which:
10
- * - runs on every `next` notification from `source$`
11
- * - can optionally return a `cleanUp` function that
12
- * invokes from the 2nd `next` notification onward and on `unsubscribe` (destroyed)
13
- *
14
- * @example
15
- * ```typescript
16
- * source$.pipe(
17
- * tapEffect((sourceValue) = {
18
- * const cb = () => {
19
- * doStuff(sourceValue);
20
- * };
21
- * addListener('event', cb);
22
- *
23
- * return () => {
24
- * removeListener('event', cb);
25
- * }
26
- * })
27
- * )
28
- * ```
29
- */
30
- export function tapEffect(effectFn) {
31
- let cleanupFn = () => { };
32
- let firstRun = false;
33
- let prev = undefined;
34
- const teardown = (error) => () => {
35
- if (cleanupFn)
36
- cleanupFn({ prev, complete: true, error });
37
- };
38
- return tap({
39
- next: (value) => {
40
- if (cleanupFn && firstRun)
41
- cleanupFn({ prev, complete: false, error: false });
42
- const cleanUpOrVoid = effectFn(value);
43
- if (cleanUpOrVoid)
44
- cleanupFn = cleanUpOrVoid;
45
- prev = value;
46
- if (!firstRun)
47
- firstRun = true;
48
- },
49
- complete: teardown(false),
50
- unsubscribe: teardown(false),
51
- error: teardown(true),
52
- });
53
- }
54
- class NgtRxStore extends RxState {
55
- constructor() {
56
- super();
57
- // set a dummy property so that initial this.get() won't return undefined
58
- this.set({ __ngt_dummy__: '__ngt_dummy__' });
59
- // override set so our consumers don't have to handle undefined for state that already have default values
60
- const originalSet = this.set.bind(this);
61
- Object.defineProperty(this, 'set', {
62
- get: () => {
63
- return (...args) => {
64
- const firstArg = args[0];
65
- if (is.obj(firstArg)) {
66
- const modArgs = Object.entries(firstArg).reduce((modded, [key, value]) => {
67
- modded[key] = value === undefined ? this.get(key) : value;
68
- return modded;
69
- }, {});
70
- return originalSet(modArgs);
71
- }
72
- return originalSet(...args);
73
- };
74
- },
75
- });
76
- // override get to return {} if get() returns undefined
77
- const originalGet = this.get.bind(this);
78
- Object.defineProperty(this, 'get', {
79
- get: () => (...args) => {
80
- if (args.length === 0)
81
- return originalGet() ?? {};
82
- return originalGet(...args);
83
- },
84
- });
85
- // call initialize that might be setup by derived Stores
86
- this.initialize();
87
- }
88
- initialize() {
89
- return;
90
- }
91
- effect(obs, sideEffectFn) {
92
- return this.hold(obs.pipe(tapEffect(sideEffectFn)));
93
- }
94
- triggerChangeDetection(cdr, keys = []) {
95
- let $ = this.$;
96
- if (keys.length) {
97
- $ = combineLatest(keys.map((key) => this.select(key).pipe(startWith(this.get(key) ?? undefined))));
98
- }
99
- this.hold($, () => void requestAnimationFrame(() => void safeDetectChanges(cdr)));
100
- }
101
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtRxStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
102
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtRxStore }); }
103
- }
104
- export { NgtRxStore };
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtRxStore, decorators: [{
106
- type: Injectable
107
- }], ctorParameters: function () { return []; } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi9zdG9yZXMvcngtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQXdDLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0YsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFakUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBbUMsRUFBRSxDQUFDLFNBQVMsQ0FBSSxTQUFlLENBQUMsQ0FBQztBQU10Rzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBUyxRQUEwQjtJQUN4RCxJQUFJLFNBQVMsR0FBNkYsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ25ILElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNyQixJQUFJLElBQUksR0FBdUIsU0FBUyxDQUFDO0lBRXpDLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7UUFDdEMsSUFBSSxTQUFTO1lBQUUsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBUztRQUNmLElBQUksRUFBRSxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ3BCLElBQUksU0FBUyxJQUFJLFFBQVE7Z0JBQUUsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFF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aEMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2IsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUsscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQzs4R0F6RFEsVUFBVTtrSEFBVixVQUFVOztTQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEdEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSeFN0YXRlIH0gZnJvbSAnQHJ4LWFuZ3VsYXIvc3RhdGUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4uL3V0aWxzL2lzJztcbmltcG9ydCB7IHNhZmVEZXRlY3RDaGFuZ2VzIH0gZnJvbSAnLi4vdXRpbHMvc2FmZS1kZXRlY3QtY2hhbmdlcyc7XG5cbmV4cG9ydCBjb25zdCBzdGFydFdpdGhVbmRlZmluZWQgPSA8VD4oKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+ID0+IHN0YXJ0V2l0aDxUPih1bmRlZmluZWQhIGFzIFQpO1xuXG50eXBlIEVmZmVjdEZuPFRWYWx1ZT4gPSAoXG4gICAgdmFsdWU6IFRWYWx1ZVxuKSA9PiB2b2lkIHwgdW5kZWZpbmVkIHwgKChjbGVhblVwUGFyYW1zOiB7IHByZXY6IFRWYWx1ZSB8IHVuZGVmaW5lZDsgY29tcGxldGU6IGJvb2xlYW47IGVycm9yOiBib29sZWFuIH0pID0+IHZvaWQpO1xuXG4vKipcbiAqIEFuIGV4dGVuZGVkIGB0YXBgIG9wZXJhdG9yIHRoYXQgYWNjZXB0cyBhbiBgZWZmZWN0Rm5gIHdoaWNoOlxuICogLSBydW5zIG9uIGV2ZXJ5IGBuZXh0YCBub3RpZmljYXRpb24gZnJvbSBgc291cmNlJGBcbiAqIC0gY2FuIG9wdGlvbmFsbHkgcmV0dXJuIGEgYGNsZWFuVXBgIGZ1bmN0aW9uIHRoYXRcbiAqIGludm9rZXMgZnJvbSB0aGUgMm5kIGBuZXh0YCBub3RpZmljYXRpb24gb253YXJkIGFuZCBvbiBgdW5zdWJzY3JpYmVgIChkZXN0cm95ZWQpXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHNvdXJjZSQucGlwZShcbiAqICB0YXBFZmZlY3QoKHNvdXJjZVZhbHVlKSA9IHtcbiAqICAgIGNvbnN0IGNiID0gKCkgPT4ge1xuICogICAgICBkb1N0dWZmKHNvdXJjZVZhbHVlKTtcbiAqICAgIH07XG4gKiAgICBhZGRMaXN0ZW5lcignZXZlbnQnLCBjYik7XG4gKlxuICogICAgcmV0dXJuICgpID0+IHtcbiAqICAgICAgcmVtb3ZlTGlzdGVuZXIoJ2V2ZW50JywgY2IpO1xuICogICAgfVxuICogIH0pXG4gKiApXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhcEVmZmVjdDxUVmFsdWU+KGVmZmVjdEZuOiBFZmZlY3RGbjxUVmFsdWU+KTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFRWYWx1ZT4ge1xuICAgIGxldCBjbGVhbnVwRm46IChjbGVhblVwUGFyYW1zOiB7IHByZXY6IFRWYWx1ZSB8IHVuZGVmaW5lZDsgY29tcGxldGU6IGJvb2xlYW47IGVycm9yOiBib29sZWFuIH0pID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBsZXQgZmlyc3RSdW4gPSBmYWxzZTtcbiAgICBsZXQgcHJldjogVFZhbHVlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgdGVhcmRvd24gPSAoZXJyb3I6IGJvb2xlYW4pID0+ICgpID0+IHtcbiAgICAgICAgaWYgKGNsZWFudXBGbikgY2xlYW51cEZuKHsgcHJldiwgY29tcGxldGU6IHRydWUsIGVycm9yIH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGFwPFRWYWx1ZT4oe1xuICAgICAgICBuZXh0OiAodmFsdWU6IFRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGNsZWFudXBGbiAmJiBmaXJzdFJ1bikgY2xlYW51cEZuKHsgcHJldiwgY29tcGxldGU6IGZhbHNlLCBlcnJvcjogZmFsc2UgfSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNsZWFuVXBPclZvaWQgPSBlZmZlY3RGbih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoY2xlYW5VcE9yVm9pZCkgY2xlYW51cEZuID0gY2xlYW5VcE9yVm9pZDtcblxuICAgICAgICAgICAgcHJldiA9IHZhbHVlO1xuXG4gICAgICAgICAgICBpZiAoIWZpcnN0UnVuKSBmaXJzdFJ1biA9IHRydWU7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiB0ZWFyZG93bihmYWxzZSksXG4gICAgICAgIHVuc3Vic2NyaWJlOiB0ZWFyZG93bihmYWxzZSksXG4gICAgICAgIGVycm9yOiB0ZWFyZG93bih0cnVlKSxcbiAgICB9KTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5ndFJ4U3RvcmU8XG4gICAgVFN0YXRlIGV4dGVuZHMgb2JqZWN0ID0gYW55LFxuICAgIFRSeFN0YXRlIGV4dGVuZHMgb2JqZWN0ID0gVFN0YXRlICYgUmVjb3JkPHN0cmluZywgYW55PlxuPiBleHRlbmRzIFJ4U3RhdGU8VFJ4U3RhdGU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgLy8gc2V0IGEgZHVtbXkgcHJvcGVydHkgc28gdGhhdCBpbml0aWFsIHRoaXMuZ2V0KCkgd29uJ3QgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICB0aGlzLnNldCh7IF9fbmd0X2R1bW15X186ICdfX25ndF9kdW1teV9fJyB9IGFzIFRSeFN0YXRlKTtcbiAgICAgICAgLy8gb3ZlcnJpZGUgc2V0IHNvIG91ciBjb25zdW1lcnMgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgdW5kZWZpbmVkIGZvciBzdGF0ZSB0aGF0IGFscmVhZHkgaGF2ZSBkZWZhdWx0IHZhbHVlc1xuICAgICAgICBjb25zdCBvcmlnaW5hbFNldCA9IHRoaXMuc2V0LmJpbmQodGhpcyk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnc2V0Jywge1xuICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICguLi5hcmdzOiBQYXJhbWV0ZXJzPFJ4U3RhdGU8VFJ4U3RhdGU+WydzZXQnXT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RBcmcgPSBhcmdzWzBdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXMub2JqKGZpcnN0QXJnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kQXJncyA9IE9iamVjdC5lbnRyaWVzKGZpcnN0QXJnKS5yZWR1Y2UoKG1vZGRlZCwgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZGVkW2tleV0gPSB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5nZXQoa2V5IGFzIGtleW9mIFRSeFN0YXRlKSA6IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtb2RkZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB7fSBhcyBOZ3RBbnlSZWNvcmQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsU2V0KG1vZEFyZ3MgYXMgUGFydGlhbDxUUnhTdGF0ZT4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbFNldCguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gb3ZlcnJpZGUgZ2V0IHRvIHJldHVybiB7fSBpZiBnZXQoKSByZXR1cm5zIHVuZGVmaW5lZFxuICAgICAgICBjb25zdCBvcmlnaW5hbEdldCA9IHRoaXMuZ2V0LmJpbmQodGhpcyk7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnZ2V0Jywge1xuICAgICAgICAgICAgZ2V0OlxuICAgICAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICAgKC4uLmFyZ3M6IFBhcmFtZXRlcnM8UnhTdGF0ZTxUUnhTdGF0ZT5bJ2dldCddPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoKGFyZ3MgYXMgYW55W10pLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG9yaWdpbmFsR2V0KCkgPz8ge307XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbEdldCguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBjYWxsIGluaXRpYWxpemUgdGhhdCBtaWdodCBiZSBzZXR1cCBieSBkZXJpdmVkIFN0b3Jlc1xuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVmZmVjdDxTPihvYnM6IE9ic2VydmFibGU8Uz4sIHNpZGVFZmZlY3RGbjogRWZmZWN0Rm48Uz4pOiB2b2lkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9sZChvYnMucGlwZSh0YXBFZmZlY3Qoc2lkZUVmZmVjdEZuKSkpO1xuICAgIH1cblxuICAgIHRyaWdnZXJDaGFuZ2VEZXRlY3Rpb24oY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwga2V5czogQXJyYXk8a2V5b2YgVFJ4U3RhdGU+ID0gW10pIHtcbiAgICAgICAgbGV0ICQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuJDtcblxuICAgICAgICBpZiAoa2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICQgPSBjb21iaW5lTGF0ZXN0KGtleXMubWFwKChrZXkpID0+IHRoaXMuc2VsZWN0KGtleSkucGlwZShzdGFydFdpdGgodGhpcy5nZXQoa2V5KSA/PyB1bmRlZmluZWQpKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ob2xkKCQsICgpID0+IHZvaWQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHZvaWQgc2FmZURldGVjdENoYW5nZXMoY2RyKSkpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- /**
4
- * A utility injection fn that can be used in other injection fn to provide the destroy capability.
5
- */
6
- export declare function injectNgtDestroy(cb?: () => void): {
7
- destroy$: Observable<void>;
8
- cdr: ChangeDetectorRef;
9
- };
@@ -1,6 +0,0 @@
1
- /**
2
- * Please use this sparringly and know what you're doing.
3
- *
4
- * Create a runInContext function that has access to the NodeInjector as well
5
- */
6
- export declare function createRunInContext(): <TReturn>(cb: () => TReturn) => TReturn;
@@ -1,16 +0,0 @@
1
- import { OnDestroy, PipeTransform } from '@angular/core';
2
- import { ObservableInput } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export declare class NgtPush<T> implements PipeTransform, OnDestroy {
5
- private readonly cdr;
6
- private readonly parentCdr;
7
- private readonly envCdr;
8
- private sub?;
9
- private obj?;
10
- private latestValue?;
11
- transform(value: ObservableInput<T>, defaultValue?: T): T;
12
- private updateValue;
13
- ngOnDestroy(): void;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<NgtPush<any>, never>;
15
- static ɵpipe: i0.ɵɵPipeDeclaration<NgtPush<any>, "ngtPush", true>;
16
- }
@@ -1,42 +0,0 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { RxState } from '@rx-angular/state';
3
- import { MonoTypeOperatorFunction, Observable } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export declare const startWithUndefined: <T>() => MonoTypeOperatorFunction<T>;
6
- type EffectFn<TValue> = (value: TValue) => void | undefined | ((cleanUpParams: {
7
- prev: TValue | undefined;
8
- complete: boolean;
9
- error: boolean;
10
- }) => void);
11
- /**
12
- * An extended `tap` operator that accepts an `effectFn` which:
13
- * - runs on every `next` notification from `source$`
14
- * - can optionally return a `cleanUp` function that
15
- * invokes from the 2nd `next` notification onward and on `unsubscribe` (destroyed)
16
- *
17
- * @example
18
- * ```typescript
19
- * source$.pipe(
20
- * tapEffect((sourceValue) = {
21
- * const cb = () => {
22
- * doStuff(sourceValue);
23
- * };
24
- * addListener('event', cb);
25
- *
26
- * return () => {
27
- * removeListener('event', cb);
28
- * }
29
- * })
30
- * )
31
- * ```
32
- */
33
- export declare function tapEffect<TValue>(effectFn: EffectFn<TValue>): MonoTypeOperatorFunction<TValue>;
34
- export declare class NgtRxStore<TState extends object = any, TRxState extends object = TState & Record<string, any>> extends RxState<TRxState> {
35
- constructor();
36
- protected initialize(): void;
37
- effect<S>(obs: Observable<S>, sideEffectFn: EffectFn<S>): void;
38
- triggerChangeDetection(cdr: ChangeDetectorRef, keys?: Array<keyof TRxState>): void;
39
- static ɵfac: i0.ɵɵFactoryDeclaration<NgtRxStore<any, any>, never>;
40
- static ɵprov: i0.ɵɵInjectableDeclaration<NgtRxStore<any, any>>;
41
- }
42
- export {};