@ng-atomic/core 16.2.0 → 16.3.1
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.
- package/README.md +48 -4
- package/esm2022/lib/action-store.mjs +6 -6
- package/esm2022/lib/action.mjs +4 -1
- package/esm2022/lib/debug/debug.directive.mjs +62 -0
- package/esm2022/lib/debug/index.mjs +2 -0
- package/esm2022/lib/effect.mjs +66 -1
- package/esm2022/lib/index.mjs +5 -2
- package/esm2022/lib/injectable-component.mjs +87 -60
- package/esm2022/lib/ng-atomic-component.mjs +56 -0
- package/esm2022/lib/ng-atomic-debug.mjs +6 -0
- package/esm2022/lib/signals.mjs +60 -0
- package/fesm2022/ng-atomic-core.mjs +305 -88
- package/fesm2022/ng-atomic-core.mjs.map +1 -1
- package/lib/action.d.ts +6 -1
- package/lib/debug/debug.directive.d.ts +14 -0
- package/lib/debug/index.d.ts +1 -0
- package/lib/effect.d.ts +31 -1
- package/lib/index.d.ts +4 -1
- package/lib/injectable-component.d.ts +12 -7
- package/lib/ng-atomic-component.d.ts +17 -0
- package/lib/ng-atomic-debug.d.ts +6 -0
- package/lib/signals.d.ts +15 -0
- package/package.json +6 -1
- package/esm2022/lib/component-store.mjs +0 -50
- package/lib/component-store.d.ts +0 -20
package/README.md
CHANGED
|
@@ -1,7 +1,51 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @ng-atomic/core
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Concept
|
|
4
|
+
- Injectable Component
|
|
5
|
+
- Action and Effect
|
|
4
6
|
|
|
5
|
-
##
|
|
7
|
+
## Example
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
```ts
|
|
10
|
+
@Directive({standalone: true, selector: 'example'})
|
|
11
|
+
export class ExampleComponentStore extends InjectableComponent {
|
|
12
|
+
@Input() name: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@Component({
|
|
16
|
+
standalone: true,
|
|
17
|
+
selector: 'example',
|
|
18
|
+
hostDirectives: [ExampleComponentStore],
|
|
19
|
+
template: `<button (click)="onButtonClick()">{{ store.name }}</button>`
|
|
20
|
+
})
|
|
21
|
+
export class ExampleComponent extends NgAtomicComponent {
|
|
22
|
+
protected store = inject(ExampleComponentStore);
|
|
23
|
+
|
|
24
|
+
protected onButtonClick() {
|
|
25
|
+
this.dispatch({
|
|
26
|
+
id: ActionId.BUTTON_CLICK,
|
|
27
|
+
payload: 'Hello World!',
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@Component({
|
|
33
|
+
standalone: true,
|
|
34
|
+
selector: 'example',
|
|
35
|
+
imports: [
|
|
36
|
+
// Import Injectable Component
|
|
37
|
+
ExampleComponentStore
|
|
38
|
+
],
|
|
39
|
+
template: `<example [name]="'example'" (action)="dispatch($event)" injectable/>`,
|
|
40
|
+
provider: [
|
|
41
|
+
// Provide Component Implementation
|
|
42
|
+
provideComponent(ExampleComponentStore, () => ExampleComponent),
|
|
43
|
+
],
|
|
44
|
+
})
|
|
45
|
+
export class AppComponent extends NgAtomicComponent {
|
|
46
|
+
@Effect(ExampleComponent.ActionId.BUTTON_CLICK)
|
|
47
|
+
protected onButtonClick(message: string) {
|
|
48
|
+
alert(message);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EventEmitter, Injectable } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class NgAtomicRootActionStore {
|
|
4
|
+
actions$ = new EventEmitter();
|
|
4
5
|
constructor() {
|
|
5
|
-
this.actions$ = new EventEmitter();
|
|
6
6
|
this.actions$.subscribe(action => this.log(action, 'root'));
|
|
7
7
|
}
|
|
8
8
|
dispatch(action) {
|
|
@@ -11,11 +11,11 @@ export class NgAtomicRootActionStore {
|
|
|
11
11
|
log(action, scope = 'default') {
|
|
12
12
|
console.debug(action, scope);
|
|
13
13
|
}
|
|
14
|
-
static
|
|
15
|
-
static
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicRootActionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicRootActionStore, providedIn: 'root' });
|
|
16
16
|
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: NgAtomicRootActionStore, decorators: [{
|
|
18
18
|
type: Injectable,
|
|
19
19
|
args: [{ providedIn: 'root' }]
|
|
20
|
-
}], ctorParameters:
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
}], ctorParameters: () => [] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvYWN0aW9uLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUl6RCxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRS9DO1FBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRLENBQUMsTUFBYztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQWMsRUFBRSxRQUFnQixTQUFTO1FBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7dUdBYlUsdUJBQXVCOzJHQUF2Qix1QkFBdUIsY0FEWCxNQUFNOzsyRkFDbEIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi9hY3Rpb25cIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTmdBdG9taWNSb290QWN0aW9uU3RvcmUge1xuICByZWFkb25seSBhY3Rpb25zJCA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aW9uPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYWN0aW9ucyQuc3Vic2NyaWJlKGFjdGlvbiA9PiB0aGlzLmxvZyhhY3Rpb24sICdyb290JykpO1xuICB9XG5cbiAgZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24pIHtcbiAgICB0aGlzLmFjdGlvbnMkLmVtaXQoYWN0aW9uKTtcbiAgfVxuXG4gIGxvZyhhY3Rpb246IEFjdGlvbiwgc2NvcGU6IHN0cmluZyA9ICdkZWZhdWx0Jykge1xuICAgIGNvbnNvbGUuZGVidWcoYWN0aW9uLCBzY29wZSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/action.mjs
CHANGED
|
@@ -4,4 +4,7 @@ export function resolveActions(actions, ...args) {
|
|
|
4
4
|
}
|
|
5
5
|
return actions;
|
|
6
6
|
}
|
|
7
|
-
|
|
7
|
+
export function wrapActions(actions) {
|
|
8
|
+
return typeof actions === 'function' ? actions : () => actions;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRSxHQUFHLElBQVc7SUFDN0QsSUFBSSxPQUFPLE9BQU8sS0FBSyxVQUFVLEVBQUU7UUFDakMsT0FBTyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztLQUN6QjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQWdCO0lBQzFDLE9BQU8sT0FBTyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztBQUNqRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBY3Rpb248VCA9IGFueT4ge1xuICBpZDogc3RyaW5nO1xuICBwYXlsb2FkPzogVDtcbiAgbmFtZT86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBBY3Rpb248VD5bXSxcbiAgbWV0YT86IHtjb21wb25lbnRJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGx9IHwgYW55O1xufVxuXG5leHBvcnQgdHlwZSBBY3Rpb25zRmFjdG9yeTxUID0gYW55PiA9ICguLi5hcmdzOiBhbnlbXSkgPT4gQWN0aW9uPFQ+W107XG5cbmV4cG9ydCB0eXBlIEFjdGlvbnMgPSBBY3Rpb25zRmFjdG9yeSB8IEFjdGlvbltdO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFjdGlvbnMoYWN0aW9uczogQWN0aW9ucywgLi4uYXJnczogYW55W10pIHtcbiAgaWYgKHR5cGVvZiBhY3Rpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGFjdGlvbnMoLi4uYXJncyk7XG4gIH1cbiAgcmV0dXJuIGFjdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25zKTogQWN0aW9uc0ZhY3Rvcnkge1xuICByZXR1cm4gdHlwZW9mIGFjdGlvbnMgPT09ICdmdW5jdGlvbicgPyBhY3Rpb25zIDogKCkgPT4gYWN0aW9ucztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { Directive, ElementRef, PLATFORM_ID, inject } from '@angular/core';
|
|
3
|
+
import { NG_ATOMIC_DEBUG } from '../ng-atomic-debug';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const DEBUG_CONFIG = {
|
|
6
|
+
outline: '1px',
|
|
7
|
+
colors: {
|
|
8
|
+
'templates': '#f00',
|
|
9
|
+
'organisms': '#0f0',
|
|
10
|
+
'molecules': '#00f',
|
|
11
|
+
'atoms': '#ff0',
|
|
12
|
+
'frames': 'transparent',
|
|
13
|
+
'default': '#000',
|
|
14
|
+
},
|
|
15
|
+
excludes: ['frames', 'app', 'pages', 'atoms'],
|
|
16
|
+
};
|
|
17
|
+
export class DebugDirective {
|
|
18
|
+
el = inject(ElementRef);
|
|
19
|
+
platformId = inject(PLATFORM_ID);
|
|
20
|
+
isDebug = inject(NG_ATOMIC_DEBUG, { optional: true }) ?? false;
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
if (isPlatformBrowser(this.platformId) && this.isDebug) {
|
|
23
|
+
const name = this.el.nativeElement.tagName.toLowerCase();
|
|
24
|
+
const type = name.split('-')[0];
|
|
25
|
+
if (DEBUG_CONFIG.excludes.includes(type))
|
|
26
|
+
return;
|
|
27
|
+
const color = DEBUG_CONFIG.colors?.[type] ?? DEBUG_CONFIG.colors.default;
|
|
28
|
+
// 1pxのアウトラインを設定
|
|
29
|
+
this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;
|
|
30
|
+
// 疑似要素でコンポーネント名を表示
|
|
31
|
+
const labelEl = this.createLabelElement({
|
|
32
|
+
name: `${name}${this.el.nativeElement.hasAttribute('injected') ? '[injected]' : ''}`,
|
|
33
|
+
color
|
|
34
|
+
});
|
|
35
|
+
this.el.nativeElement.style.outlineOffset = '-1px';
|
|
36
|
+
this.el.nativeElement.style.position = 'relative';
|
|
37
|
+
this.el.nativeElement.appendChild(labelEl);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
createLabelElement(options) {
|
|
41
|
+
const content = document.createElement('span');
|
|
42
|
+
content.textContent = options.name;
|
|
43
|
+
content.style.backgroundColor = `${options.color}`;
|
|
44
|
+
content.style.color = '#fff';
|
|
45
|
+
content.style.padding = '2px 4px';
|
|
46
|
+
content.style.position = 'absolute';
|
|
47
|
+
content.style.fontSize = '10px';
|
|
48
|
+
content.style.top = '0';
|
|
49
|
+
content.style.left = '0';
|
|
50
|
+
content.style.zIndex = '9999';
|
|
51
|
+
content.style.lineHeight = '1.5em';
|
|
52
|
+
content.style.whiteSpace = 'nowrap';
|
|
53
|
+
return content;
|
|
54
|
+
}
|
|
55
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DebugDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
56
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: DebugDirective, isStandalone: true, selector: "debug", ngImport: i0 });
|
|
57
|
+
}
|
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DebugDirective, decorators: [{
|
|
59
|
+
type: Directive,
|
|
60
|
+
args: [{ standalone: true, selector: 'debug' }]
|
|
61
|
+
}] });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvZGVidWcvZGVidWcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUVyRCxNQUFNLFlBQVksR0FBRztJQUNuQixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRTtRQUNOLFdBQVcsRUFBRSxNQUFNO1FBQ25CLFdBQVcsRUFBRSxNQUFNO1FBQ25CLFdBQVcsRUFBRSxNQUFNO1FBQ25CLE9BQU8sRUFBRSxNQUFNO1FBQ2YsUUFBUSxFQUFFLGFBQWE7UUFDdkIsU0FBUyxFQUFFLE1BQU07S0FDbEI7SUFDRCxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7Q0FDOUMsQ0FBQztBQUdGLE1BQU0sT0FBTyxjQUFjO0lBQ2YsRUFBRSxHQUE0QixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxPQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUV2RSxRQUFRO1FBQ04sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN0RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFBRSxPQUFPO1lBQ2pELE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUV6RSxnQkFBZ0I7WUFDaEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLFVBQVUsS0FBSyxFQUFFLENBQUM7WUFFL0UsbUJBQW1CO1lBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztnQkFDdEMsSUFBSSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BGLEtBQUs7YUFDTixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztZQUNuRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztZQUNsRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBRVMsa0JBQWtCLENBQUMsT0FHNUI7UUFDQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUNwQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUNwQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO3VHQTNDVSxjQUFjOzJGQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFNBQVM7bUJBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFBMQVRGT1JNX0lELCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX0FUT01JQ19ERUJVRyB9IGZyb20gJy4uL25nLWF0b21pYy1kZWJ1Zyc7XG5cbmNvbnN0IERFQlVHX0NPTkZJRyA9IHtcbiAgb3V0bGluZTogJzFweCcsXG4gIGNvbG9yczoge1xuICAgICd0ZW1wbGF0ZXMnOiAnI2YwMCcsXG4gICAgJ29yZ2FuaXNtcyc6ICcjMGYwJyxcbiAgICAnbW9sZWN1bGVzJzogJyMwMGYnLFxuICAgICdhdG9tcyc6ICcjZmYwJyxcbiAgICAnZnJhbWVzJzogJ3RyYW5zcGFyZW50JyxcbiAgICAnZGVmYXVsdCc6ICcjMDAwJyxcbiAgfSxcbiAgZXhjbHVkZXM6IFsnZnJhbWVzJywgJ2FwcCcsICdwYWdlcycsICdhdG9tcyddLFxufTtcblxuQERpcmVjdGl2ZSh7c3RhbmRhbG9uZTogdHJ1ZSwgc2VsZWN0b3I6ICdkZWJ1Zyd9KVxuZXhwb3J0IGNsYXNzIERlYnVnRGlyZWN0aXZlIHtcbiAgcHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJvdGVjdGVkIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcm90ZWN0ZWQgaXNEZWJ1ZyA9IGluamVjdChOR19BVE9NSUNfREVCVUcsIHtvcHRpb25hbDogdHJ1ZX0pID8/IGZhbHNlO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIHRoaXMuaXNEZWJ1Zykge1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCB0eXBlID0gbmFtZS5zcGxpdCgnLScpWzBdO1xuICAgICAgaWYgKERFQlVHX0NPTkZJRy5leGNsdWRlcy5pbmNsdWRlcyh0eXBlKSkgcmV0dXJuO1xuICAgICAgY29uc3QgY29sb3IgPSBERUJVR19DT05GSUcuY29sb3JzPy5bdHlwZV0gPz8gREVCVUdfQ09ORklHLmNvbG9ycy5kZWZhdWx0O1xuXG4gICAgICAvLyAxcHjjga7jgqLjgqbjg4jjg6njgqTjg7PjgpLoqK3lrppcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5vdXRsaW5lID0gYCR7REVCVUdfQ09ORklHLm91dGxpbmV9IHNvbGlkICR7Y29sb3J9YDtcblxuICAgICAgLy8g55aR5Ly86KaB57Sg44Gn44Kz44Oz44Od44O844ON44Oz44OI5ZCN44KS6KGo56S6XG4gICAgICBjb25zdCBsYWJlbEVsID0gdGhpcy5jcmVhdGVMYWJlbEVsZW1lbnQoe1xuICAgICAgICBuYW1lOiBgJHtuYW1lfSR7dGhpcy5lbC5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnaW5qZWN0ZWQnKSA/ICdbaW5qZWN0ZWRdJyA6ICcnfWAsXG4gICAgICAgIGNvbG9yXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5vdXRsaW5lT2Zmc2V0ID0gJy0xcHgnO1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChsYWJlbEVsKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlTGFiZWxFbGVtZW50KG9wdGlvbnM6IHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBjb2xvcjogc3RyaW5nXG4gIH0pOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICBjb250ZW50LnRleHRDb250ZW50ID0gb3B0aW9ucy5uYW1lO1xuICAgIGNvbnRlbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYCR7b3B0aW9ucy5jb2xvcn1gO1xuICAgIGNvbnRlbnQuc3R5bGUuY29sb3IgPSAnI2ZmZic7XG4gICAgY29udGVudC5zdHlsZS5wYWRkaW5nID0gJzJweCA0cHgnO1xuICAgIGNvbnRlbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGNvbnRlbnQuc3R5bGUuZm9udFNpemUgPSAnMTBweCc7XG4gICAgY29udGVudC5zdHlsZS50b3AgPSAnMCc7XG4gICAgY29udGVudC5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgIGNvbnRlbnQuc3R5bGUuekluZGV4ID0gJzk5OTknO1xuICAgIGNvbnRlbnQuc3R5bGUubGluZUhlaWdodCA9ICcxLjVlbSc7XG4gICAgY29udGVudC5zdHlsZS53aGl0ZVNwYWNlID0gJ25vd3JhcCc7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './debug.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9kZWJ1Zy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZWJ1Zy5kaXJlY3RpdmUnO1xuIl19
|
package/esm2022/lib/effect.mjs
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { Injectable, InjectionToken, Injector, inject, runInInjectionContext } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
1
3
|
export class EffectMap extends Map {
|
|
2
4
|
get(key, scope = 'default') {
|
|
3
5
|
return super.get(this.makeKey(key, scope));
|
|
@@ -18,4 +20,67 @@ export function Effect(id, { dispatch = false, scope = 'default', accessor = (ac
|
|
|
18
20
|
target['_effectMap'].set(id, { key: propertyKey, props: { dispatch, scope, accessor } });
|
|
19
21
|
};
|
|
20
22
|
}
|
|
21
|
-
|
|
23
|
+
export const EFFECT_ENTRY = new InjectionToken('EFFECT_ENTRY');
|
|
24
|
+
export function provideEffect(ActionIds, _effectFactory, options = { dispatch: false }) {
|
|
25
|
+
return {
|
|
26
|
+
provide: EFFECT_ENTRY,
|
|
27
|
+
useFactory: (injector) => {
|
|
28
|
+
const effectFactory = (hostInjector) => {
|
|
29
|
+
return runInInjectionContext(hostInjector, () => _effectFactory(injector));
|
|
30
|
+
};
|
|
31
|
+
return { actionIds: ActionIds, effectFactory, options };
|
|
32
|
+
},
|
|
33
|
+
multi: true,
|
|
34
|
+
deps: [Injector]
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function injectEffectEntries() {
|
|
38
|
+
return inject(EFFECT_ENTRY, { optional: true }) ?? [];
|
|
39
|
+
}
|
|
40
|
+
function buildEffectEntryMap(injector, effectEntries) {
|
|
41
|
+
const effectEntryMap = new Map();
|
|
42
|
+
for (const entry of effectEntries) {
|
|
43
|
+
const ids = Array.isArray(entry.actionIds) ? entry.actionIds : [entry.actionIds];
|
|
44
|
+
for (const id of ids) {
|
|
45
|
+
const effect = () => entry.effectFactory(injector);
|
|
46
|
+
effectEntryMap.set(id, { effect, options: entry.options });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return effectEntryMap;
|
|
50
|
+
}
|
|
51
|
+
export class EffectReducer {
|
|
52
|
+
injector = inject(Injector);
|
|
53
|
+
effectEntries = injectEffectEntries();
|
|
54
|
+
effectEntryMap = buildEffectEntryMap(this.injector, this.effectEntries);
|
|
55
|
+
async reduce(action) {
|
|
56
|
+
const entry = this.effectEntryMap.get(action.id);
|
|
57
|
+
if (entry) {
|
|
58
|
+
await runInInjectionContext(this.injector, () => {
|
|
59
|
+
return entry?.effect()(action.payload, { injector: this.injector });
|
|
60
|
+
});
|
|
61
|
+
return this.effectEntryMap.get(action.id)?.options ?? { dispatch: false };
|
|
62
|
+
}
|
|
63
|
+
return { dispatch: true };
|
|
64
|
+
}
|
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: EffectReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
66
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: EffectReducer });
|
|
67
|
+
}
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: EffectReducer, decorators: [{
|
|
69
|
+
type: Injectable
|
|
70
|
+
}] });
|
|
71
|
+
export function injectEffectReducer() {
|
|
72
|
+
const injector = inject(Injector);
|
|
73
|
+
const effectEntries = injectEffectEntries();
|
|
74
|
+
const effectEntryMap = buildEffectEntryMap(injector, effectEntries);
|
|
75
|
+
return async (action) => {
|
|
76
|
+
const entry = effectEntryMap.get(action.id);
|
|
77
|
+
if (entry) {
|
|
78
|
+
await runInInjectionContext(injector, () => {
|
|
79
|
+
return entry?.effect()(action.payload, { injector: injector });
|
|
80
|
+
});
|
|
81
|
+
return effectEntryMap.get(action.id)?.options ?? { dispatch: false };
|
|
82
|
+
}
|
|
83
|
+
return { dispatch: true };
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvZWZmZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBWSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzlHLE1BQU0sT0FBTyxTQUFVLFNBQVEsR0FBOEM7SUFDbEUsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUEyQztRQUNuRSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUM1QyxPQUFPLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsRUFBVSxFQUFFLEVBQ2pDLFFBQVEsR0FBRyxLQUFLLEVBQ2hCLEtBQUssR0FBRyxTQUFTLEVBQ2pCLFFBQVEsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxD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amVjdGlvblRva2VuLCBJbmplY3RvciwgUHJvdmlkZXIsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCIuL2FjdGlvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVmZmVjdFByb3BzIHtcbiAgZGlzcGF0Y2g6IGJvb2xlYW47XG4gIHNjb3BlOiBzdHJpbmc7XG4gIGFjY2Vzc29yOiAoYWN0aW9uOiBBY3Rpb24pID0+IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEVmZmVjdE1hcCBleHRlbmRzIE1hcDxzdHJpbmcsIHtrZXk6IHN0cmluZywgcHJvcHM6IEVmZmVjdFByb3BzfT4ge1xuICBvdmVycmlkZSBnZXQoa2V5OiBzdHJpbmcsIHNjb3BlID0gJ2RlZmF1bHQnKTogeyBrZXk6IHN0cmluZzsgcHJvcHM6IEVmZmVjdFByb3BzOyB9IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KHRoaXMubWFrZUtleShrZXksIHNjb3BlKSkhOyBcbiAgfVxuXG4gIG92ZXJyaWRlIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHsga2V5OiBzdHJpbmc7IHByb3BzOiBFZmZlY3RQcm9wczsgfSk6IHRoaXMge1xuICAgIHJldHVybiBzdXBlci5zZXQodGhpcy5tYWtlS2V5KGtleSwgdmFsdWUucHJvcHMuc2NvcGUpLCB2YWx1ZSk7XG4gIH1cblxuICBvdmVycmlkZSBoYXMoa2V5OiBzdHJpbmcsIHNjb3BlID0gJ2RlZmF1bHQnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmhhcyh0aGlzLm1ha2VLZXkoa2V5LCBzY29wZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlS2V5KGtleTogc3RyaW5nLCBzY29wZSA9ICdkZWZhdWx0Jykge1xuICAgIHJldHVybiBgWyR7c2NvcGV9XSMke2tleX1gO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFZmZlY3QoaWQ6IHN0cmluZywge1xuICBkaXNwYXRjaCA9IGZhbHNlLFxuICBzY29wZSA9ICdkZWZhdWx0JyxcbiAgYWNjZXNzb3IgPSAoYWN0aW9uOiBBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkLFxufTogUGFydGlhbDxFZmZlY3RQcm9wcz4gPSB7fSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICB0YXJnZXRbJ19lZmZlY3RNYXAnXSA/Pz0gbmV3IEVmZmVjdE1hcCgpO1xuICAgIHRhcmdldFsnX2VmZmVjdE1hcCddLnNldChpZCwge2tleTogcHJvcGVydHlLZXksIHByb3BzOiB7ZGlzcGF0Y2gsIHNjb3BlLCBhY2Nlc3Nvcn19KTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFZmZlY3RGdW5jdGlvbk9wdGlvbnMge1xuICBkaXNwYXRjaD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWZmZWN0Q29udGV4dCB7XG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG59XG5cbmV4cG9ydCB0eXBlIEVmZmVjdEZ1bmN0aW9uID0gKHBheWxvYWQ/OiBhbnksIGNvbnRleHQ/OiBFZmZlY3RDb250ZXh0KSA9PiBhbnkgfCBQcm9taXNlPGFueT47XG5leHBvcnQgdHlwZSBFZmZlY3RGdW5jdGlvbkZhY3RvcnkgPSAoaG9zdEluamVjdG9yPzogSW5qZWN0b3IpID0+IEVmZmVjdEZ1bmN0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVmZmVjdEVudHJ5IHtcblx0YWN0aW9uSWRzOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgZWZmZWN0RmFjdG9yeT86IEVmZmVjdEZ1bmN0aW9uRmFjdG9yeTtcbiAgb3B0aW9ucz86IEVmZmVjdEZ1bmN0aW9uT3B0aW9ucztcbn1cblxuZXhwb3J0IGNvbnN0IEVGRkVDVF9FTlRSWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFZmZlY3RFbnRyeT4oJ0VGRkVDVF9FTlRSWScpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVmZmVjdChcbiAgQWN0aW9uSWRzOiBzdHJpbmdbXSB8IHN0cmluZyxcbiAgX2VmZmVjdEZhY3Rvcnk6IChpbmplY3RvcjogSW5qZWN0b3IpID0+IEVmZmVjdEZ1bmN0aW9uLFxuICBvcHRpb25zOiBFZmZlY3RGdW5jdGlvbk9wdGlvbnMgPSB7ZGlzcGF0Y2g6IGZhbHNlfSxcbik6IFByb3ZpZGVyIHtcblx0cmV0dXJuIHtcblx0XHRwcm92aWRlOiBFRkZFQ1RfRU5UUlksXG5cdFx0dXNlRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZWZmZWN0RmFjdG9yeSA9IChob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaG9zdEluamVjdG9yLCAoKSA9PiBfZWZmZWN0RmFjdG9yeShpbmplY3RvcikpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiB7IGFjdGlvbklkczogQWN0aW9uSWRzLCBlZmZlY3RGYWN0b3J5LCBvcHRpb25zIH07XG4gICAgfSxcblx0XHRtdWx0aTogdHJ1ZSxcblx0XHRkZXBzOiBbSW5qZWN0b3JdXG5cdH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RFZmZlY3RFbnRyaWVzKCk6IEVmZmVjdEVudHJ5W10ge1xuXHRyZXR1cm4gaW5qZWN0PEVmZmVjdEVudHJ5W10+KEVGRkVDVF9FTlRSWSwge29wdGlvbmFsOiB0cnVlfSkgPz8gW107XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRWZmZWN0RW50cnlNYXAoaW5qZWN0b3I6IEluamVjdG9yLCBlZmZlY3RFbnRyaWVzOiBFZmZlY3RFbnRyeVtdKSB7XG4gIGNvbnN0IGVmZmVjdEVudHJ5TWFwID0gbmV3IE1hcDxzdHJpbmcsIHtlZmZlY3Q6IEVmZmVjdEZ1bmN0aW9uLCBvcHRpb25zOiBFZmZlY3RGdW5jdGlvbk9wdGlvbnN9PigpO1xuXG4gIGZvciAoY29uc3QgZW50cnkgb2YgZWZmZWN0RW50cmllcykge1xuICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoZW50cnkuYWN0aW9uSWRzKSA/IGVudHJ5LmFjdGlvbklkcyA6IFtlbnRyeS5hY3Rpb25JZHNdO1xuICAgIGZvciAoY29uc3QgaWQgb2YgaWRzKSB7XG4gICAgICBjb25zdCBlZmZlY3QgPSAoKSA9PiBlbnRyeS5lZmZlY3RGYWN0b3J5KGluamVjdG9yKTtcbiAgICAgIGVmZmVjdEVudHJ5TWFwLnNldChpZCwgeyBlZmZlY3QsIG9wdGlvbnM6IGVudHJ5Lm9wdGlvbnMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVmZmVjdEVudHJ5TWFwO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRWZmZWN0UmVkdWNlciB7XG4gIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0cmVhZG9ubHkgZWZmZWN0RW50cmllcyA9IGluamVjdEVmZmVjdEVudHJpZXMoKTtcbiAgcmVhZG9ubHkgZWZmZWN0RW50cnlNYXAgPSBidWlsZEVmZmVjdEVudHJ5TWFwKHRoaXMuaW5qZWN0b3IsIHRoaXMuZWZmZWN0RW50cmllcyk7XG5cblx0YXN5bmMgcmVkdWNlKGFjdGlvbjogQWN0aW9uKTogUHJvbWlzZTxFZmZlY3RGdW5jdGlvbk9wdGlvbnM+IHtcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuZWZmZWN0RW50cnlNYXAuZ2V0KGFjdGlvbi5pZCk7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICBhd2FpdCBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gZW50cnk/LmVmZmVjdCgpKGFjdGlvbi5wYXlsb2FkLCB7aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3J9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMuZWZmZWN0RW50cnlNYXAuZ2V0KGFjdGlvbi5pZCk/Lm9wdGlvbnMgPz8ge2Rpc3BhdGNoOiBmYWxzZX07XG4gICAgfVxuICAgIHJldHVybiB7ZGlzcGF0Y2g6IHRydWV9O1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RFZmZlY3RSZWR1Y2VyKCkge1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdGNvbnN0IGVmZmVjdEVudHJpZXMgPSBpbmplY3RFZmZlY3RFbnRyaWVzKCk7XG4gIGNvbnN0IGVmZmVjdEVudHJ5TWFwID0gYnVpbGRFZmZlY3RFbnRyeU1hcChpbmplY3RvciwgZWZmZWN0RW50cmllcyk7XG5cbiAgcmV0dXJuIGFzeW5jIChhY3Rpb246IEFjdGlvbikgPT4ge1xuICAgIGNvbnN0IGVudHJ5ID0gZWZmZWN0RW50cnlNYXAuZ2V0KGFjdGlvbi5pZCk7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICBhd2FpdCBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGVudHJ5Py5lZmZlY3QoKShhY3Rpb24ucGF5bG9hZCwge2luamVjdG9yOiBpbmplY3Rvcn0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZWZmZWN0RW50cnlNYXAuZ2V0KGFjdGlvbi5pZCk/Lm9wdGlvbnMgPz8ge2Rpc3BhdGNoOiBmYWxzZX07XG4gICAgfVxuICAgIHJldHVybiB7ZGlzcGF0Y2g6IHRydWV9O1xuXHR9XG59XG4iXX0=
|
package/esm2022/lib/index.mjs
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export * from './action-store';
|
|
2
2
|
export * from './action';
|
|
3
3
|
export * from './effect';
|
|
4
|
-
export * from './component-store';
|
|
5
4
|
export * from './injectable-component';
|
|
6
|
-
|
|
5
|
+
export * from './ng-atomic-component';
|
|
6
|
+
export * from './signals';
|
|
7
|
+
export * from './debug';
|
|
8
|
+
export * from './ng-atomic-debug';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9lZmZlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3RhYmxlLWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL25nLWF0b21pYy1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zaWduYWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVidWcnO1xuZXhwb3J0ICogZnJvbSAnLi9uZy1hdG9taWMtZGVidWcnO1xuIl19
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { DestroyRef, Directive, ElementRef,
|
|
1
|
+
import { DestroyRef, Directive, ɵoutput, ElementRef, InjectionToken, Injector, ViewContainerRef, inject, input, PLATFORM_ID } from "@angular/core";
|
|
2
2
|
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
|
|
3
3
|
import { reflectComponentType } from "@angular/core";
|
|
4
|
+
import { proxyFakeComputedInputs } from "./signals";
|
|
5
|
+
import { isPlatformBrowser } from "@angular/common";
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
7
|
+
export const TOKEN = 'Δtkn';
|
|
5
8
|
export function provideComponent(abstract, typeOrFactory) {
|
|
6
9
|
async function loadComponentType() {
|
|
7
10
|
if (typeof typeOrFactory === 'function' && !typeOrFactory.prototype) {
|
|
@@ -12,7 +15,15 @@ export function provideComponent(abstract, typeOrFactory) {
|
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
17
|
;
|
|
15
|
-
return { provide: abstract[
|
|
18
|
+
return { provide: abstract[TOKEN], useValue: loadComponentType };
|
|
19
|
+
}
|
|
20
|
+
export function TokenizedType() {
|
|
21
|
+
return function (type) {
|
|
22
|
+
type[TOKEN] = new InjectionToken(type.name);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function getToken(type) {
|
|
26
|
+
return type[TOKEN];
|
|
16
27
|
}
|
|
17
28
|
export var HostType;
|
|
18
29
|
(function (HostType) {
|
|
@@ -24,11 +35,12 @@ export function getMeta(type) {
|
|
|
24
35
|
}
|
|
25
36
|
export function getInputs(type) {
|
|
26
37
|
return Object.entries(getMeta(type)['inputs'])
|
|
27
|
-
.map(([
|
|
38
|
+
.map(([templateName, [propName]]) => ({ propName, templateName }));
|
|
28
39
|
}
|
|
29
40
|
export function getOutputs(type) {
|
|
30
|
-
|
|
31
|
-
|
|
41
|
+
const meta = getMeta(type);
|
|
42
|
+
return Object.entries(meta['outputs'])
|
|
43
|
+
.map(([templateName, propName]) => ({ propName, templateName }));
|
|
32
44
|
}
|
|
33
45
|
export function getInputsByComponentRef(cmp) {
|
|
34
46
|
return getInputs(cmp.instance.constructor);
|
|
@@ -37,77 +49,94 @@ export function getOutputsByInstance(cmp) {
|
|
|
37
49
|
return getOutputs(cmp.instance.constructor);
|
|
38
50
|
}
|
|
39
51
|
export class InjectableComponent {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
52
|
+
#platformId = inject(PLATFORM_ID);
|
|
53
|
+
#viewContainerRef = inject(ViewContainerRef);
|
|
54
|
+
#injector = inject(Injector);
|
|
55
|
+
#destroyRef = inject(DestroyRef);
|
|
56
|
+
#el = inject(ElementRef);
|
|
57
|
+
#component = null;
|
|
58
|
+
#componentMirror = null;
|
|
59
|
+
injectable = input(false, { transform: (value) => value === '' ? true : value, alias: 'injectable' });
|
|
60
|
+
__action = ɵoutput({ alias: 'action' });
|
|
61
|
+
dispatch(action) {
|
|
62
|
+
this.__action.emit(action);
|
|
63
|
+
}
|
|
64
|
+
get #inputs() {
|
|
65
|
+
const abs = getInputs(this.constructor);
|
|
66
|
+
return abs;
|
|
67
|
+
}
|
|
68
|
+
get #outputs() {
|
|
69
|
+
const abs = getOutputs(this.constructor);
|
|
70
|
+
return abs;
|
|
71
|
+
// const impl = this.#componentMirror!.outputs;
|
|
72
|
+
// return abs.filter(abstractOutput => impl.some(implOutput => implOutput.templateName === abstractOutput.templateName));
|
|
49
73
|
}
|
|
50
|
-
#outlet;
|
|
51
|
-
#injector;
|
|
52
|
-
#destroy$;
|
|
53
|
-
#el;
|
|
54
|
-
#component;
|
|
55
|
-
#componentMirror;
|
|
56
74
|
#setAttribute() {
|
|
57
75
|
const hostElement = this.#component.hostView.rootNodes[0];
|
|
58
76
|
const attributes = this.#el.nativeElement.attributes;
|
|
59
77
|
for (let i = 0; i < attributes.length; i++) {
|
|
60
78
|
const attr = attributes.item(i);
|
|
61
|
-
if (attr.name
|
|
79
|
+
if (attr.name === 'injectable') {
|
|
80
|
+
hostElement.setAttribute('injected', '');
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
62
83
|
hostElement.setAttribute(attr.name, attr.value);
|
|
63
84
|
}
|
|
64
85
|
}
|
|
65
86
|
}
|
|
66
87
|
#bindInputs() {
|
|
67
|
-
|
|
68
|
-
// if (input.propName === 'injectable') return;
|
|
69
|
-
// this.#component!.setInput(input.propName, (this as any)[input.propName]);
|
|
70
|
-
// }
|
|
71
|
-
for (const input of getInputs(this.constructor)) {
|
|
88
|
+
for (const input of this.#inputs) {
|
|
72
89
|
if (input.propName === 'injectable')
|
|
73
|
-
|
|
74
|
-
|
|
90
|
+
continue;
|
|
91
|
+
const valueOrInputValueFn = this[input.propName];
|
|
92
|
+
const value = typeof valueOrInputValueFn === 'function' ? valueOrInputValueFn() : valueOrInputValueFn;
|
|
93
|
+
this.#component.setInput(input.templateName, value);
|
|
75
94
|
}
|
|
76
95
|
}
|
|
96
|
+
get propNames() {
|
|
97
|
+
return this.#inputs.map(input => input.propName);
|
|
98
|
+
}
|
|
99
|
+
proxyFakeComputedInputs() {
|
|
100
|
+
proxyFakeComputedInputs(this, this.propNames);
|
|
101
|
+
}
|
|
77
102
|
#bindOutputs() {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
for (const
|
|
84
|
-
this.#component.
|
|
85
|
-
|
|
86
|
-
this[output.templateName].emit(value);
|
|
103
|
+
for (const output of this.#outputs) {
|
|
104
|
+
this.#component.instance[output.propName]?.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((value) => this[output.propName].emit(value));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
#bindEvents() {
|
|
108
|
+
for (const name of ['click']) {
|
|
109
|
+
this.#component.injector.get(ElementRef).nativeElement.addEventListener(name, (event) => {
|
|
110
|
+
this.#el.nativeElement.dispatchEvent(new Event(name, {}));
|
|
87
111
|
});
|
|
88
112
|
}
|
|
89
113
|
}
|
|
114
|
+
constructor() {
|
|
115
|
+
this.proxyFakeComputedInputs();
|
|
116
|
+
}
|
|
90
117
|
ngOnInit() {
|
|
91
|
-
if (this.injectable) {
|
|
92
|
-
this.#injector.get(this.constructor
|
|
93
|
-
this.#component = this.#
|
|
118
|
+
if (this.injectable() && isPlatformBrowser(this.#platformId)) {
|
|
119
|
+
this.#injector.get(getToken(this.constructor))().then(type => {
|
|
120
|
+
this.#component = this.#viewContainerRef.createComponent(type, {
|
|
121
|
+
projectableNodes: [
|
|
122
|
+
Array.from(this.#el.nativeElement.childNodes)
|
|
123
|
+
],
|
|
124
|
+
});
|
|
94
125
|
this.#componentMirror = reflectComponentType(type);
|
|
95
126
|
this.#bindInputs();
|
|
96
127
|
this.#bindOutputs();
|
|
128
|
+
this.#bindEvents();
|
|
97
129
|
this.#setAttribute();
|
|
130
|
+
// this.#viewContainerRef.remove(0);
|
|
131
|
+
this.#component.changeDetectorRef.detectChanges();
|
|
132
|
+
// this.#el.nativeElement.remove();
|
|
98
133
|
});
|
|
99
134
|
}
|
|
135
|
+
this.proxyFakeComputedInputs();
|
|
100
136
|
}
|
|
101
137
|
ngOnChanges(simpleChanges) {
|
|
102
|
-
if (this.injectable && this.#componentMirror) {
|
|
103
|
-
|
|
104
|
-
// if (input.propName === 'injectable') return;
|
|
105
|
-
// const change = simpleChanges[input.propName] as SimpleChange;
|
|
106
|
-
// if (change) {
|
|
107
|
-
// this.#component!.setInput(input.propName, change.currentValue);
|
|
108
|
-
// }
|
|
109
|
-
// }
|
|
110
|
-
for (const input of getInputs(this.constructor)) {
|
|
138
|
+
if (this.injectable() && this.#componentMirror) {
|
|
139
|
+
for (const input of this.#inputs) {
|
|
111
140
|
if (input.propName === 'injectable')
|
|
112
141
|
return;
|
|
113
142
|
const change = simpleChanges[input.propName];
|
|
@@ -117,16 +146,14 @@ export class InjectableComponent {
|
|
|
117
146
|
}
|
|
118
147
|
}
|
|
119
148
|
}
|
|
120
|
-
static
|
|
121
|
-
static
|
|
149
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: InjectableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
150
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.2.2", type: InjectableComponent, isStandalone: true, inputs: { injectable: { classPropertyName: "injectable", publicName: "injectable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { __action: "action" }, usesOnChanges: true, ngImport: i0 });
|
|
122
151
|
}
|
|
123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
152
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: InjectableComponent, decorators: [{
|
|
124
153
|
type: Directive,
|
|
125
|
-
args: [{
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
type: Output
|
|
131
|
-
}] } });
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9pbmplY3RhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFtQixZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQXFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0TixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUXJELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsUUFBbUIsRUFDbkIsYUFBNkM7SUFFN0MsS0FBSyxVQUFVLGlCQUFpQjtRQUM5QixJQUFJLE9BQU8sYUFBYSxLQUFLLFVBQVUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUU7WUFDbkUsT0FBTyxNQUFPLGFBQW1DLEVBQUUsQ0FBQztTQUNyRDthQUFNO1lBQ0wsT0FBTyxhQUEyQixDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUFBLENBQUM7SUFDRixPQUFPLEVBQUUsT0FBTyxFQUFHLFFBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUM7QUFDOUUsQ0FBQztBQUVELE1BQU0sQ0FBTixJQUFZLFFBR1g7QUFIRCxXQUFZLFFBQVE7SUFDbEIsNkJBQVksQ0FBQTtJQUNaLDZCQUFZLENBQUE7QUFDZCxDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFJRCxNQUFNLFVBQVUsT0FBTyxDQUFJLElBQWE7SUFDdEMsT0FBUSxJQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFLLElBQVksQ0FBQyxRQUFRLENB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LElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzVDLHNEQUFzRDtZQUN0RCxpREFBaUQ7WUFDakQsa0VBQWtFO1lBQ2xFLGtCQUFrQjtZQUNsQixzRUFBc0U7WUFDdEUsTUFBTTtZQUNOLElBQUk7WUFFSixLQUFLLE1BQU0sS0FBSyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBc0IsQ0FBQyxFQUFFO2dCQUMxRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssWUFBWTtvQkFBRSxPQUFPO2dCQUM1QyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBaUIsQ0FBQztnQkFDN0QsSUFBSSxNQUFNLEVBQUU7b0JBQ1YsSUFBSSxDQUFDLFVBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ2hFO2FBQ0Y7U0FDRjtJQUNILENBQUM7K0dBOUVtQixtQkFBbUI7bUdBQW5CLG1CQUFtQix5RUFnRnBCLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7OzRGQWhGMUMsbUJBQW1CO2tCQUR4QyxTQUFTO21CQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs4QkFrRnJCLFVBQVU7c0JBRGpCLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFDO2dCQUlyRCxNQUFNO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRNaXJyb3IsIENvbXBvbmVudFJlZiwgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFbWJlZGRlZFZpZXdSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZSwgU2ltcGxlQ2hhbmdlcywgVHlwZSwgVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgcmVmbGVjdENvbXBvbmVudFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcIi4vYWN0aW9uXCI7XG5pbXBvcnQgeyBOZ0F0b21pY0NvbXBvbmVudFN0b3JlIH0gZnJvbSBcIi4vY29tcG9uZW50LXN0b3JlXCI7XG5cbmV4cG9ydCB0eXBlIFR5cGVGYWN0b3J5QXN5bmM8VD4gPSAoKSA9PiBQcm9taXNlPFR5cGU8VD4+O1xuXG5leHBvcnQgdHlwZSBUeXBlRmFjdG9yeTxUPiA9ICgpID0+IChUeXBlPFQ+IHwgUHJvbWlzZTxUeXBlPFQ+Pik7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQ29tcG9uZW50PEFCUyA9IGFueSwgSU1QTCA9IGFueT4oXG4gIGFic3RyYWN0OiBUeXBlPEFCUz4sXG4gIHR5cGVPckZhY3Rvcnk6IFR5cGU8SU1QTD4gfCBUeXBlRmFjdG9yeTxJTVBMPixcbikge1xuICBhc3luYyBmdW5jdGlvbiBsb2FkQ29tcG9uZW50VHlwZSgpOiBQcm9taXNlPFR5cGU8SU1QTD4+IHtcbiAgICBpZiAodHlwZW9mIHR5cGVPckZhY3RvcnkgPT09ICdmdW5jdGlvbicgJiYgIXR5cGVPckZhY3RvcnkucHJvdG90eXBlKSB7XG4gICAgICByZXR1cm4gYXdhaXQgKHR5cGVPckZhY3RvcnkgYXMgVHlwZUZhY3Rvcnk8SU1QTD4pKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlT3JGYWN0b3J5IGFzIFR5cGU8SU1QTD47XG4gICAgfVxuICB9O1xuICByZXR1cm4geyBwcm92aWRlOiAoYWJzdHJhY3QgYXMgYW55KVsnVE9LRU4nXSwgdXNlVmFsdWU6IGxvYWRDb21wb25lbnRUeXBlIH07XG59XG5cbmV4cG9ydCBlbnVtIEhvc3RUeXBlIHtcbiAgRGlyID0gJ8m1ZGlyJyxcbiAgQ21wID0gJ8m1Y21wJyxcbn1cblxudHlwZSBJTyA9IHtwcm9wTmFtZTogc3RyaW5nLCB0ZW1wbGF0ZU5hbWU6IHN0cmluZ307XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRhPFQ+KHR5cGU6IFR5cGU8VD4pIHtcbiAgcmV0dXJuICh0eXBlIGFzIGFueSlbSG9zdFR5cGUuQ21wXSB8fCAodHlwZSBhcyBhbnkpW0hvc3RUeXBlLkRpcl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dHM8VD4odHlwZTogVHlwZTxUPik6IElPW10ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXM8c3RyaW5nPihnZXRNZXRhKHR5cGUpWydpbnB1dHMnXSlcbiAgICAubWFwKChbcHJvcE5hbWUsIHRlbXBsYXRlTmFtZV0pID0+ICh7cHJvcE5hbWUsIHRlbXBsYXRlTmFtZX0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE91dHB1dHM8VD4odHlwZTogVHlwZTxUPik6IElPW10ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXM8c3RyaW5nPihnZXRNZXRhKHR5cGUpWydvdXRwdXRzJ10pXG4gICAgLm1hcCgoW3Byb3BOYW1lLCB0ZW1wbGF0ZU5hbWVdKSA9PiAoe3Byb3BOYW1lLCB0ZW1wbGF0ZU5hbWV9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dHNCeUNvbXBvbmVudFJlZjxUIGV4dGVuZHMge30gPSBhbnk+KGNtcDogQ29tcG9uZW50UmVmPFQ+KTogSU9bXSB7XG4gIHJldHVybiBnZXRJbnB1dHMoY21wLmluc3RhbmNlLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0cHV0c0J5SW5zdGFuY2U8VCBleHRlbmRzIHt9ID0gYW55PihjbXA6IENvbXBvbmVudFJlZjxUPik6IElPW10ge1xuICByZXR1cm4gZ2V0T3V0cHV0cyhjbXAuaW5zdGFuY2UuY29uc3RydWN0b3IgYXMgVHlwZTxUPik7XG59XG5cbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSW5qZWN0YWJsZUNvbXBvbmVudDxUIGV4dGVuZHMgTmdBdG9taWNDb21wb25lbnRTdG9yZSA9IGFueT4ge1xuICByZWFkb25seSAjb3V0bGV0ID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICByZWFkb25seSAjaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICByZWFkb25seSAjZGVzdHJveSQgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5ICNlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgI2NvbXBvbmVudDogQ29tcG9uZW50UmVmPFQ+IHwgbnVsbCA9IG51bGw7XG4gICNjb21wb25lbnRNaXJyb3I6IENvbXBvbmVudE1pcnJvcjxUPiB8IG51bGwgPSBudWxsO1xuXG4gICNzZXRBdHRyaWJ1dGUoKSB7XG4gICAgY29uc3QgaG9zdEVsZW1lbnQgPSAodGhpcy4jY29tcG9uZW50IS5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGF0dHJpYnV0ZXM6IE5hbWVkTm9kZU1hcCA9IHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRlcztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGF0dHIgPSBhdHRyaWJ1dGVzLml0ZW0oaSkhO1xuICAgICAgaWYgKGF0dHIubmFtZS5zdGFydHNXaXRoKCdfbmdjb250ZW50JykpIHtcbiAgICAgICAgaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2JpbmRJbnB1dHMoKSB7XG4gICAgLy8gZm9yIChjb25zdCBpbnB1dCBvZiB0aGlzLiNjb21wb25lbnRNaXJyb3IhLmlucHV0cykge1xuICAgIC8vICAgaWYgKGlucHV0LnByb3BOYW1lID09PSAnaW5qZWN0YWJsZScpIHJldHVybjtcbiAgICAvLyAgIHRoaXMuI2NvbXBvbmVudCEuc2V0SW5wdXQoaW5wdXQucHJvcE5hbWUsICh0aGlzIGFzIGFueSlbaW5wdXQucHJvcE5hbWVdKTtcbiAgICAvLyB9XG5cbiAgICBmb3IgKGNvbnN0IGlucHV0IG9mIGdldElucHV0cyh0aGlzLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pKSB7XG4gICAgICBpZiAoaW5wdXQucHJvcE5hbWUgPT09ICdpbmplY3RhYmxlJykgcmV0dXJuO1xuICAgICAgdGhpcy4jY29tcG9uZW50IS5zZXRJbnB1dChpbnB1dC5wcm9wTmFtZSwgKHRoaXMgYXMgYW55KVtpbnB1dC5wcm9wTmFtZV0pO1xuICAgIH1cbiAgfVxuXG4gICNiaW5kT3V0cHV0cygpIHtcbiAgICAvLyBmb3IgKGNvbnN0IG91dHB1dCBvZiB0aGlzLiNjb21wb25lbnRNaXJyb3IhLm91dHB1dHMpIHtcbiAgICAvLyAgICh0aGlzLiNjb21wb25lbnQhLmluc3RhbmNlIGFzIGFueSlbb3V0cHV0LnRlbXBsYXRlTmFtZV0ucGlwZShcbiAgICAvLyAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3kkKVxuICAgIC8vICAgKS5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+ICh0aGlzIGFzIGFueSlbb3V0cHV0LnRlbXBsYXRlTmFtZV0uZW1pdCh2YWx1ZSkpO1xuICAgIC8vIH1cblxuICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIGdldE91dHB1dHModGhpcy5jb25zdHJ1Y3RvciBhcyBUeXBlPFQ+KSkge1xuICAgICAgKHRoaXMuI2NvbXBvbmVudCEuaW5zdGFuY2UgYXMgYW55KVtvdXRwdXQudGVtcGxhdGVOYW1lXT8ucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3kkKVxuICAgICAgKS5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5kZWJ1Zygnb3V0cHV0PT4+Jywgb3V0cHV0LnRlbXBsYXRlTmFtZSwgdmFsdWUpO1xuICAgICAgICAodGhpcyBhcyBhbnkpW291dHB1dC50ZW1wbGF0ZU5hbWVdLmVtaXQodmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuaW5qZWN0YWJsZSkge1xuICAgICAgdGhpcy4jaW5qZWN0b3IuZ2V0PFR5cGVGYWN0b3J5QXN5bmM8VD4+KCh0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSlbJ1RPS0VOJ10pKCkudGhlbih0eXBlID0+IHtcbiAgICAgICAgdGhpcy4jY29tcG9uZW50ID0gdGhpcy4jb3V0bGV0LmNyZWF0ZUNvbXBvbmVudCh0eXBlKTtcbiAgICAgICAgdGhpcy4jY29tcG9uZW50TWlycm9yID0gcmVmbGVjdENvbXBvbmVudFR5cGUodHlwZSk7XG4gICAgICAgIHRoaXMuI2JpbmRJbnB1dHMoKTtcbiAgICAgICAgdGhpcy4jYmluZE91dHB1dHMoKTtcbiAgICAgICAgdGhpcy4jc2V0QXR0cmlidXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMuaW5qZWN0YWJsZSAmJiB0aGlzLiNjb21wb25lbnRNaXJyb3IpIHtcbiAgICAgIC8vIGZvciAoY29uc3QgaW5wdXQgb2YgdGhpcy4jY29tcG9uZW50TWlycm9yLmlucHV0cykge1xuICAgICAgLy8gICBpZiAoaW5wdXQucHJvcE5hbWUgPT09ICdpbmplY3RhYmxlJykgcmV0dXJuO1xuICAgICAgLy8gICBjb25zdCBjaGFuZ2UgPSBzaW1wbGVDaGFuZ2VzW2lucHV0LnByb3BOYW1lXSBhcyBTaW1wbGVDaGFuZ2U7XG4gICAgICAvLyAgIGlmIChjaGFuZ2UpIHtcbiAgICAgIC8vICAgICB0aGlzLiNjb21wb25lbnQhLnNldElucHV0KGlucHV0LnByb3BOYW1lLCBjaGFuZ2UuY3VycmVudFZhbHVlKTtcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuXG4gICAgICBmb3IgKGNvbnN0IGlucHV0IG9mIGdldElucHV0cyh0aGlzLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pKSB7XG4gICAgICAgIGlmIChpbnB1dC5wcm9wTmFtZSA9PT0gJ2luamVjdGFibGUnKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IHNpbXBsZUNoYW5nZXNbaW5wdXQucHJvcE5hbWVdIGFzIFNpbXBsZUNoYW5nZTtcbiAgICAgICAgaWYgKGNoYW5nZSkge1xuICAgICAgICAgIHRoaXMuI2NvbXBvbmVudCEuc2V0SW5wdXQoaW5wdXQucHJvcE5hbWUsIGNoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQElucHV0KHt0cmFuc2Zvcm06ICh2YWx1ZTogYW55KSA9PiB2YWx1ZSA9PT0gJycgPyB0cnVlIDogdmFsdWV9KVxuICBwcml2YXRlIGluamVjdGFibGUgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHJvdGVjdGVkIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aW9uPigpO1xufVxuIl19
|
|
154
|
+
args: [{
|
|
155
|
+
standalone: true,
|
|
156
|
+
// host: {ngSkipHydration: 'true'}
|
|
157
|
+
}]
|
|
158
|
+
}], ctorParameters: () => [] });
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9pbmplY3RhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlDLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBbUIsY0FBYyxFQUFFLFFBQVEsRUFBcUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdE8sT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTXJELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFcEQsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQztBQUU1QixNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFFBQW1CLEVBQ25CLGFBQTZDO0lBRTdDLEtBQUssVUFBVSxpQkFBaUI7UUFDOUIsSUFBSSxPQUFPLGFBQWEsS0FBSyxVQUFVLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFO1lBQ25FLE9BQU8sTUFBTyxhQUFtQyxFQUFFLENBQUM7U0FDckQ7YUFBTTtZQUNMLE9BQU8sYUFBMkIsQ0FBQztTQUNwQztJQUNILENBQUM7SUFBQSxDQUFDO0lBQ0YsT0FBTyxFQUFFLE9BQU8sRUFBRyxRQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLFVBQStCLElBQU87UUFDMUMsSUFBWSxDQUFDLEtBQUss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QUFJLENBQUMsVUFBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztpQkFDaEU7YUFDRjtTQUNGO0lBQ0gsQ0FBQzt1R0E3R1UsbUJBQW1COzJGQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGtDQUFrQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRNaXJyb3IsIENvbXBvbmVudFJlZiwgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCDJtW91dHB1dCwgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFNpbXBsZUNoYW5nZSwgU2ltcGxlQ2hhbmdlcywgVHlwZSwgVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0LCBpbnB1dCwgUExBVEZPUk1fSUQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5pbXBvcnQgeyByZWZsZWN0Q29tcG9uZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi9hY3Rpb25cIjtcblxuZXhwb3J0IHR5cGUgVHlwZUZhY3RvcnlBc3luYzxUPiA9ICgpID0+IFByb21pc2U8VHlwZTxUPj47XG5cbmV4cG9ydCB0eXBlIFR5cGVGYWN0b3J5PFQ+ID0gKCkgPT4gKFR5cGU8VD4gfCBQcm9taXNlPFR5cGU8VD4+KTtcbmltcG9ydCB7IHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzIH0gZnJvbSBcIi4vc2lnbmFsc1wiO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbmV4cG9ydCBjb25zdCBUT0tFTiA9ICfOlHRrbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQ29tcG9uZW50PEFCUyA9IGFueSwgSU1QTCA9IGFueT4oXG4gIGFic3RyYWN0OiBUeXBlPEFCUz4sXG4gIHR5cGVPckZhY3Rvcnk6IFR5cGU8SU1QTD4gfCBUeXBlRmFjdG9yeTxJTVBMPixcbikge1xuICBhc3luYyBmdW5jdGlvbiBsb2FkQ29tcG9uZW50VHlwZSgpOiBQcm9taXNlPFR5cGU8SU1QTD4+IHtcbiAgICBpZiAodHlwZW9mIHR5cGVPckZhY3RvcnkgPT09ICdmdW5jdGlvbicgJiYgIXR5cGVPckZhY3RvcnkucHJvdG90eXBlKSB7XG4gICAgICByZXR1cm4gYXdhaXQgKHR5cGVPckZhY3RvcnkgYXMgVHlwZUZhY3Rvcnk8SU1QTD4pKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlT3JGYWN0b3J5IGFzIFR5cGU8SU1QTD47XG4gICAgfVxuICB9O1xuICByZXR1cm4geyBwcm92aWRlOiAoYWJzdHJhY3QgYXMgYW55KVtUT0tFTl0sIHVzZVZhbHVlOiBsb2FkQ29tcG9uZW50VHlwZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVG9rZW5pemVkVHlwZSgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgVHlwZTxhbnk+Pih0eXBlOiBUKSB7XG4gICAgKHR5cGUgYXMgYW55KVtUT0tFTl0gPSBuZXcgSW5qZWN0aW9uVG9rZW48VD4odHlwZS5uYW1lKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRva2VuKHR5cGU6IFR5cGU8YW55Pikge1xuICByZXR1cm4gKHR5cGUgYXMgYW55KVtUT0tFTl07XG59XG5cbmV4cG9ydCBlbnVtIEhvc3RUeXBlIHtcbiAgRGlyID0gJ8m1ZGlyJyxcbiAgQ21wID0gJ8m1Y21wJyxcbn1cblxudHlwZSBJTyA9IHtwcm9wTmFtZTogc3RyaW5nLCB0ZW1wbGF0ZU5hbWU6IHN0cmluZ307XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRhPFQ+KHR5cGU6IFR5cGU8VD4pIHtcbiAgcmV0dXJuICh0eXBlIGFzIGFueSlbSG9zdFR5cGUuQ21wXSB8fCAodHlwZSBhcyBhbnkpW0hvc3RUeXBlLkRpcl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dHM8VD4odHlwZTogVHlwZTxUPik6IElPW10ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXM8c3RyaW5nPihnZXRNZXRhKHR5cGUpWydpbnB1dHMnXSlcbiAgICAubWFwKChbdGVtcGxhdGVOYW1lLCBbcHJvcE5hbWVdXSkgPT4gKHtwcm9wTmFtZSwgdGVtcGxhdGVOYW1lfSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0cHV0czxUPih0eXBlOiBUeXBlPFQ+KTogSU9bXSB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKHR5cGUpO1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXM8c3RyaW5nPihtZXRhWydvdXRwdXRzJ10pXG4gICAgLm1hcCgoW3RlbXBsYXRlTmFtZSwgcHJvcE5hbWVdKSA9PiAoe3Byb3BOYW1lLCB0ZW1wbGF0ZU5hbWV9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dHNCeUNvbXBvbmVudFJlZjxUIGV4dGVuZHMge30gPSBhbnk+KGNtcDogQ29tcG9uZW50UmVmPFQ+KTogSU9bXSB7XG4gIHJldHVybiBnZXRJbnB1dHMoY21wLmluc3RhbmNlLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0cHV0c0J5SW5zdGFuY2U8VCBleHRlbmRzIHt9ID0gYW55PihjbXA6IENvbXBvbmVudFJlZjxUPik6IElPW10ge1xuICByZXR1cm4gZ2V0T3V0cHV0cyhjbXAuaW5zdGFuY2UuY29uc3RydWN0b3IgYXMgVHlwZTxUPik7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAvLyBob3N0OiB7bmdTa2lwSHlkcmF0aW9uOiAndHJ1ZSd9XG59KVxuZXhwb3J0IGNsYXNzIEluamVjdGFibGVDb21wb25lbnQ8VCA9IGFueT4ge1xuICByZWFkb25seSAjcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHJlYWRvbmx5ICN2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICByZWFkb25seSAjaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICByZWFkb25seSAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgI2VsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgI2NvbXBvbmVudDogQ29tcG9uZW50UmVmPFQ+IHwgbnVsbCA9IG51bGw7XG4gICNjb21wb25lbnRNaXJyb3I6IENvbXBvbmVudE1pcnJvcjxUPiB8IG51bGwgPSBudWxsO1xuXG4gIHJlYWRvbmx5IGluamVjdGFibGUgPSBpbnB1dChmYWxzZSwge3RyYW5zZm9ybTogKHZhbHVlOiBhbnkpID0+IHZhbHVlID09PSAnJyA/IHRydWUgOiB2YWx1ZSwgYWxpYXM6ICdpbmplY3RhYmxlJ30pO1xuICByZWFkb25seSBfX2FjdGlvbiA9IMm1b3V0cHV0PEFjdGlvbj4oe2FsaWFzOiAnYWN0aW9uJ30pO1xuXG4gIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgdGhpcy5fX2FjdGlvbi5lbWl0KGFjdGlvbik7XG4gIH1cblxuICBnZXQgI2lucHV0cygpOiBJT1tdIHtcbiAgICBjb25zdCBhYnMgPSBnZXRJbnB1dHModGhpcy5jb25zdHJ1Y3RvciBhcyBUeXBlPFQ+KTtcbiAgICByZXR1cm4gYWJzO1xuICB9XG5cbiAgZ2V0ICNvdXRwdXRzKCk6IElPW10ge1xuICAgIGNvbnN0IGFicyA9IGdldE91dHB1dHModGhpcy5jb25zdHJ1Y3RvciBhcyBUeXBlPFQ+KTtcbiAgICByZXR1cm4gYWJzO1xuICAgIC8vIGNvbnN0IGltcGwgPSB0aGlzLiNjb21wb25lbnRNaXJyb3IhLm91dHB1dHM7XG4gICAgLy8gcmV0dXJuIGFicy5maWx0ZXIoYWJzdHJhY3RPdXRwdXQgPT4gaW1wbC5zb21lKGltcGxPdXRwdXQgPT4gaW1wbE91dHB1dC50ZW1wbGF0ZU5hbWUgPT09IGFic3RyYWN0T3V0cHV0LnRlbXBsYXRlTmFtZSkpO1xuICB9XG5cbiAgI3NldEF0dHJpYnV0ZSgpIHtcbiAgICBjb25zdCBob3N0RWxlbWVudCA9ICh0aGlzLiNjb21wb25lbnQhLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgYXR0cmlidXRlczogTmFtZWROb2RlTWFwID0gdGhpcy4jZWwubmF0aXZlRWxlbWVudC5hdHRyaWJ1dGVzO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgYXR0ciA9IGF0dHJpYnV0ZXMuaXRlbShpKSE7XG4gICAgICBpZiAoYXR0ci5uYW1lID09PSAnaW5qZWN0YWJsZScpIHtcbiAgICAgICAgaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdpbmplY3RlZCcsICcnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyLm5hbWUsIGF0dHIudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNiaW5kSW5wdXRzKCkge1xuICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdGhpcy4jaW5wdXRzKSB7XG4gICAgICBpZiAoaW5wdXQucHJvcE5hbWUgPT09ICdpbmplY3RhYmxlJykgY29udGludWU7XG4gICAgICBjb25zdCB2YWx1ZU9ySW5wdXRWYWx1ZUZuID0gdGhpc1tpbnB1dC5wcm9wTmFtZV07XG4gICAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiB2YWx1ZU9ySW5wdXRWYWx1ZUZuID09PSAnZnVuY3Rpb24nID8gdmFsdWVPcklucHV0VmFsdWVGbigpIDogdmFsdWVPcklucHV0VmFsdWVGbjtcbiAgICAgIHRoaXMuI2NvbXBvbmVudCEuc2V0SW5wdXQoaW5wdXQudGVtcGxhdGVOYW1lLCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHByb3BOYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy4jaW5wdXRzLm1hcChpbnB1dCA9PiBpbnB1dC5wcm9wTmFtZSk7XG4gIH1cblxuICBwcm94eUZha2VDb21wdXRlZElucHV0cygpIHtcbiAgICBwcm94eUZha2VDb21wdXRlZElucHV0cyh0aGlzLCB0aGlzLnByb3BOYW1lcyk7XG4gIH1cblxuICAjYmluZE91dHB1dHMoKSB7XG4gICAgZm9yIChjb25zdCBvdXRwdXQgb2YgdGhpcy4jb3V0cHV0cykge1xuICAgICAgKHRoaXMuI2NvbXBvbmVudCEuaW5zdGFuY2UgYXMgYW55KVtvdXRwdXQucHJvcE5hbWVdPy5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgICkuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB0aGlzW291dHB1dC5wcm9wTmFtZV0uZW1pdCh2YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gICNiaW5kRXZlbnRzKCkge1xuICAgIGZvciAoY29uc3QgbmFtZSBvZiBbJ2NsaWNrJ10pIHtcbiAgICAgIHRoaXMuI2NvbXBvbmVudC5pbmplY3Rvci5nZXQoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKG5hbWUsIChldmVudCkgPT4ge1xuICAgICAgICB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KG5hbWUsIHt9KSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucHJveHlGYWtlQ29tcHV0ZWRJbnB1dHMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLmluamVjdGFibGUoKSAmJiBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLiNwbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy4jaW5qZWN0b3IuZ2V0PFR5cGVGYWN0b3J5QXN5bmM8VD4+KGdldFRva2VuKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KSkoKS50aGVuKHR5cGUgPT4ge1xuICAgICAgICB0aGlzLiNjb21wb25lbnQgPSB0aGlzLiN2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudCh0eXBlLCB7XG4gICAgICAgICAgcHJvamVjdGFibGVOb2RlczogW1xuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLiNlbC5uYXRpdmVFbGVtZW50LmNoaWxkTm9kZXMpXG4gICAgICAgICAgXSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuI2NvbXBvbmVudE1pcnJvciA9IHJlZmxlY3RDb21wb25lbnRUeXBlKHR5cGUpO1xuICAgICAgICB0aGlzLiNiaW5kSW5wdXRzKCk7XG4gICAgICAgIHRoaXMuI2JpbmRPdXRwdXRzKCk7XG4gICAgICAgIHRoaXMuI2JpbmRFdmVudHMoKTtcbiAgICAgICAgdGhpcy4jc2V0QXR0cmlidXRlKCk7XG4gICAgICAgIC8vIHRoaXMuI3ZpZXdDb250YWluZXJSZWYucmVtb3ZlKDApO1xuICAgICAgICB0aGlzLiNjb21wb25lbnQuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAvLyB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucHJveHlGYWtlQ29tcHV0ZWRJbnB1dHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5pbmplY3RhYmxlKCkgJiYgdGhpcy4jY29tcG9uZW50TWlycm9yKSB7XG4gICAgICBmb3IgKGNvbnN0IGlucHV0IG9mIHRoaXMuI2lucHV0cykge1xuICAgICAgICBpZiAoaW5wdXQucHJvcE5hbWUgPT09ICdpbmplY3RhYmxlJykgcmV0dXJuO1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSBzaW1wbGVDaGFuZ2VzW2lucHV0LnByb3BOYW1lXSBhcyBTaW1wbGVDaGFuZ2U7XG4gICAgICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgICAgICB0aGlzLiNjb21wb25lbnQhLnNldElucHV0KGlucHV0LnByb3BOYW1lLCBjaGFuZ2UuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|