@ng-atomic/core 18.11.0 → 18.13.0-preview-v19e.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/fesm2022/ng-atomic-core.mjs +104 -65
- package/fesm2022/ng-atomic-core.mjs.map +1 -1
- package/lib/debug/debug.directive.d.ts +6 -4
- package/lib/index.d.ts +1 -0
- package/lib/injectable-component.d.ts +1 -1
- package/lib/route.d.ts +4 -0
- package/lib/signals.d.ts +1 -1
- package/package.json +9 -6
- package/esm2022/index.mjs +0 -2
- package/esm2022/lib/action-store.mjs +0 -57
- package/esm2022/lib/action.mjs +0 -42
- package/esm2022/lib/debug/debug.directive.mjs +0 -62
- package/esm2022/lib/debug/index.mjs +0 -2
- package/esm2022/lib/effect.mjs +0 -63
- package/esm2022/lib/index.mjs +0 -10
- package/esm2022/lib/injectable-component.mjs +0 -165
- package/esm2022/lib/input.mjs +0 -29
- package/esm2022/lib/ng-atomic-component.mjs +0 -73
- package/esm2022/lib/ng-atomic-debug.mjs +0 -6
- package/esm2022/lib/signals.mjs +0 -60
- package/esm2022/ng-atomic-core.mjs +0 -5
|
@@ -6,6 +6,7 @@ import { validateSync } from 'class-validator';
|
|
|
6
6
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
7
|
import { isPlatformBrowser } from '@angular/common';
|
|
8
8
|
import { SIGNAL } from '@angular/core/primitives/signals';
|
|
9
|
+
import { isObservable, lastValueFrom } from 'rxjs';
|
|
9
10
|
import { ActivatedRoute } from '@angular/router';
|
|
10
11
|
|
|
11
12
|
class EffectMap extends Map {
|
|
@@ -72,12 +73,12 @@ function injectEffectReducer(injector = inject(Injector)) {
|
|
|
72
73
|
|
|
73
74
|
class NgAtomicActionLogger {
|
|
74
75
|
log(action, scope = 'default') {
|
|
75
|
-
console.
|
|
76
|
+
console.info(`[NgAtomicActionLogger] ${action?.name}`, { action, scope });
|
|
76
77
|
}
|
|
77
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
78
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
78
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicActionLogger, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
79
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicActionLogger, providedIn: 'root' });
|
|
79
80
|
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicActionLogger, decorators: [{
|
|
81
82
|
type: Injectable,
|
|
82
83
|
args: [{ providedIn: 'root' }]
|
|
83
84
|
}] });
|
|
@@ -91,10 +92,10 @@ class NgAtomicRootActionStore {
|
|
|
91
92
|
dispatch(action) {
|
|
92
93
|
this._actions$.emit(action);
|
|
93
94
|
}
|
|
94
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
95
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
95
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicRootActionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
96
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicRootActionStore, providedIn: 'root' });
|
|
96
97
|
}
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
98
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicRootActionStore, decorators: [{
|
|
98
99
|
type: Injectable,
|
|
99
100
|
args: [{ providedIn: 'root' }]
|
|
100
101
|
}], ctorParameters: () => [] });
|
|
@@ -116,10 +117,10 @@ class NgAtomicInjectorActionStore {
|
|
|
116
117
|
}
|
|
117
118
|
}
|
|
118
119
|
}
|
|
119
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
120
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
120
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicInjectorActionStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
121
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicInjectorActionStore, providedIn: 'root' });
|
|
121
122
|
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicInjectorActionStore, decorators: [{
|
|
123
124
|
type: Injectable,
|
|
124
125
|
args: [{ providedIn: 'root' }]
|
|
125
126
|
}] });
|
|
@@ -157,8 +158,9 @@ function createAction(type, schema, options = {}) {
|
|
|
157
158
|
create: (payload = {}, meta = {}) => ({
|
|
158
159
|
id: type,
|
|
159
160
|
payload,
|
|
160
|
-
name:
|
|
161
|
-
icon:
|
|
161
|
+
name: options.name ?? type,
|
|
162
|
+
icon: options.icon,
|
|
163
|
+
...meta,
|
|
162
164
|
}),
|
|
163
165
|
};
|
|
164
166
|
}
|
|
@@ -213,10 +215,10 @@ class CallPipe {
|
|
|
213
215
|
transform(value) {
|
|
214
216
|
return call(value);
|
|
215
217
|
}
|
|
216
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
217
|
-
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
218
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CallPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
219
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.4", ngImport: i0, type: CallPipe, isStandalone: true, name: "call" });
|
|
218
220
|
}
|
|
219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: CallPipe, decorators: [{
|
|
220
222
|
type: Pipe,
|
|
221
223
|
args: [{ name: 'call', standalone: true, pure: true }]
|
|
222
224
|
}] });
|
|
@@ -247,10 +249,16 @@ var HostType;
|
|
|
247
249
|
HostType["Cmp"] = "\u0275cmp";
|
|
248
250
|
})(HostType || (HostType = {}));
|
|
249
251
|
function getMeta(type) {
|
|
250
|
-
|
|
252
|
+
if (HostType.Cmp in type) {
|
|
253
|
+
return type[HostType.Cmp];
|
|
254
|
+
}
|
|
255
|
+
else if (HostType.Dir in type) {
|
|
256
|
+
return type[HostType.Dir];
|
|
257
|
+
}
|
|
251
258
|
}
|
|
252
259
|
function getInputs(type) {
|
|
253
|
-
|
|
260
|
+
const meta = getMeta(type);
|
|
261
|
+
return Object.entries(meta['inputs'])
|
|
254
262
|
.map(([templateName, [propName]]) => ({ propName, templateName }));
|
|
255
263
|
}
|
|
256
264
|
function getOutputs(type) {
|
|
@@ -272,19 +280,17 @@ class InjectableComponent {
|
|
|
272
280
|
#el = inject(ElementRef);
|
|
273
281
|
#component = null;
|
|
274
282
|
#componentMirror = null;
|
|
275
|
-
injectable = input(false, { transform: (value) => value === '' ? true : value
|
|
283
|
+
injectable = input(false, { transform: (value) => value === '' ? true : value });
|
|
276
284
|
// readonly __action = ɵoutput<Action>({alias: 'action'});
|
|
277
285
|
__action = new EventEmitter();
|
|
278
286
|
dispatch(action) {
|
|
279
287
|
this.__action.emit(action);
|
|
280
288
|
}
|
|
281
289
|
get #inputs() {
|
|
282
|
-
|
|
283
|
-
return abs;
|
|
290
|
+
return getInputs(this.constructor);
|
|
284
291
|
}
|
|
285
292
|
get #outputs() {
|
|
286
|
-
|
|
287
|
-
return abs;
|
|
293
|
+
return getOutputs(this.constructor);
|
|
288
294
|
// const impl = this.#componentMirror!.outputs;
|
|
289
295
|
// return abs.filter(abstractOutput => impl.some(implOutput => implOutput.templateName === abstractOutput.templateName));
|
|
290
296
|
}
|
|
@@ -307,7 +313,7 @@ class InjectableComponent {
|
|
|
307
313
|
continue;
|
|
308
314
|
const valueOrInputValueFn = this[input.propName];
|
|
309
315
|
const value = typeof valueOrInputValueFn === 'function' ? valueOrInputValueFn() : valueOrInputValueFn;
|
|
310
|
-
this.#
|
|
316
|
+
this.#setInput(input, value);
|
|
311
317
|
}
|
|
312
318
|
}
|
|
313
319
|
get propNames() {
|
|
@@ -328,6 +334,9 @@ class InjectableComponent {
|
|
|
328
334
|
});
|
|
329
335
|
}
|
|
330
336
|
}
|
|
337
|
+
#setInput(input, value) {
|
|
338
|
+
this.#component.setInput(input?.templateName, value);
|
|
339
|
+
}
|
|
331
340
|
constructor() {
|
|
332
341
|
this.proxyFakeComputedInputs();
|
|
333
342
|
}
|
|
@@ -359,15 +368,15 @@ class InjectableComponent {
|
|
|
359
368
|
return;
|
|
360
369
|
const change = simpleChanges[input.propName];
|
|
361
370
|
if (change) {
|
|
362
|
-
this.#
|
|
371
|
+
this.#setInput(input, change.currentValue);
|
|
363
372
|
}
|
|
364
373
|
}
|
|
365
374
|
}
|
|
366
375
|
}
|
|
367
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
368
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
376
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InjectableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
377
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.4", type: InjectableComponent, isStandalone: true, inputs: { injectable: { classPropertyName: "injectable", publicName: "injectable", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { __action: "action" }, usesOnChanges: true, ngImport: i0 });
|
|
369
378
|
}
|
|
370
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
379
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: InjectableComponent, decorators: [{
|
|
371
380
|
type: Directive,
|
|
372
381
|
args: [{
|
|
373
382
|
standalone: true,
|
|
@@ -406,6 +415,28 @@ function updateInput(instance, propName, updater) {
|
|
|
406
415
|
}
|
|
407
416
|
}
|
|
408
417
|
|
|
418
|
+
async function wrapLoadChildren(loadChildrenCallback) {
|
|
419
|
+
const children = await loadChildrenCallback();
|
|
420
|
+
const _children = isObservable(children) ? await lastValueFrom(children) : children;
|
|
421
|
+
const __children = 'default' in _children ? _children.default : _children;
|
|
422
|
+
return __children;
|
|
423
|
+
}
|
|
424
|
+
function recursiveWrapRoute(route, ...wrappers) {
|
|
425
|
+
const wrappedRoute = wrappers.reduce((acc, wrapper) => wrapper(acc), route);
|
|
426
|
+
return {
|
|
427
|
+
...wrappedRoute,
|
|
428
|
+
children: wrappedRoute.children
|
|
429
|
+
? recursiveWrapRoutes(wrappedRoute.children, ...wrappers)
|
|
430
|
+
: undefined,
|
|
431
|
+
loadChildren: wrappedRoute.loadChildren
|
|
432
|
+
? () => wrapLoadChildren(wrappedRoute.loadChildren).then(routes => recursiveWrapRoutes(routes, ...wrappers))
|
|
433
|
+
: undefined,
|
|
434
|
+
};
|
|
435
|
+
}
|
|
436
|
+
function recursiveWrapRoutes(routes, ...wrappers) {
|
|
437
|
+
return routes.map(route => recursiveWrapRoute(route, ...wrappers));
|
|
438
|
+
}
|
|
439
|
+
|
|
409
440
|
const NG_ATOMIC_DEBUG = new InjectionToken('NG_ATOMIC_DEBUG');
|
|
410
441
|
function withNgAtomicDebug() {
|
|
411
442
|
return { provide: NG_ATOMIC_DEBUG, useValue: true };
|
|
@@ -423,48 +454,56 @@ const DEBUG_CONFIG = {
|
|
|
423
454
|
},
|
|
424
455
|
excludes: ['frames', 'app', 'pages', 'atoms'],
|
|
425
456
|
};
|
|
457
|
+
function getType(element) {
|
|
458
|
+
return element.tagName.toLowerCase().split('-')[0];
|
|
459
|
+
}
|
|
460
|
+
function getName(element) {
|
|
461
|
+
return element.tagName.toLowerCase();
|
|
462
|
+
}
|
|
463
|
+
function getLabel(element) {
|
|
464
|
+
const name = getName(element);
|
|
465
|
+
const type = getType(element);
|
|
466
|
+
if (DEBUG_CONFIG.excludes.includes(type))
|
|
467
|
+
return;
|
|
468
|
+
return `${name}${element.hasAttribute('injected') ? '[injected]' : ''}`;
|
|
469
|
+
}
|
|
426
470
|
class DebugDirective {
|
|
427
471
|
el = inject(ElementRef);
|
|
428
472
|
platformId = inject(PLATFORM_ID);
|
|
429
|
-
isDebug = inject(NG_ATOMIC_DEBUG, { optional: true }) ?? false;
|
|
473
|
+
isDebug = input(inject(NG_ATOMIC_DEBUG, { optional: true }) ?? false);
|
|
474
|
+
label = input(getLabel(this.el.nativeElement));
|
|
430
475
|
ngOnInit() {
|
|
431
|
-
if (isPlatformBrowser(this.platformId) && this.isDebug) {
|
|
432
|
-
const
|
|
433
|
-
const type = name.split('-')[0];
|
|
434
|
-
if (DEBUG_CONFIG.excludes.includes(type))
|
|
435
|
-
return;
|
|
476
|
+
if (isPlatformBrowser(this.platformId) && this.isDebug()) {
|
|
477
|
+
const type = getType(this.el.nativeElement);
|
|
436
478
|
const color = DEBUG_CONFIG.colors?.[type] ?? DEBUG_CONFIG.colors.default;
|
|
437
|
-
|
|
438
|
-
this.
|
|
439
|
-
// 疑似要素でコンポーネント名を表示
|
|
440
|
-
const labelEl = this.createLabelElement({
|
|
441
|
-
name: `${name}${this.el.nativeElement.hasAttribute('injected') ? '[injected]' : ''}`,
|
|
442
|
-
color
|
|
443
|
-
});
|
|
444
|
-
this.el.nativeElement.style.outlineOffset = '-1px';
|
|
445
|
-
this.el.nativeElement.style.position = 'relative';
|
|
446
|
-
this.el.nativeElement.appendChild(labelEl);
|
|
479
|
+
this.createLabelElement({ label: this.label(), color });
|
|
480
|
+
this.createOutline(color);
|
|
447
481
|
}
|
|
448
482
|
}
|
|
449
483
|
createLabelElement(options) {
|
|
450
|
-
const
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
484
|
+
const el = document.createElement('span');
|
|
485
|
+
el.textContent = options.label;
|
|
486
|
+
el.style.backgroundColor = `${options.color}`;
|
|
487
|
+
el.style.color = '#fff';
|
|
488
|
+
el.style.padding = '2px 4px';
|
|
489
|
+
el.style.position = 'absolute';
|
|
490
|
+
el.style.fontSize = '10px';
|
|
491
|
+
el.style.top = '0';
|
|
492
|
+
el.style.left = '0';
|
|
493
|
+
el.style.zIndex = '9999';
|
|
494
|
+
el.style.lineHeight = '1.5em';
|
|
495
|
+
el.style.whiteSpace = 'nowrap';
|
|
496
|
+
this.el.nativeElement.appendChild(el);
|
|
497
|
+
}
|
|
498
|
+
createOutline(color) {
|
|
499
|
+
this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;
|
|
500
|
+
this.el.nativeElement.style.outlineOffset = '-1px';
|
|
501
|
+
this.el.nativeElement.style.position = 'relative';
|
|
502
|
+
}
|
|
503
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DebugDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
504
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "19.1.4", type: DebugDirective, isStandalone: true, selector: "debug", inputs: { isDebug: { classPropertyName: "isDebug", publicName: "isDebug", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
505
|
+
}
|
|
506
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: DebugDirective, decorators: [{
|
|
468
507
|
type: Directive,
|
|
469
508
|
args: [{ standalone: true, selector: 'debug' }]
|
|
470
509
|
}] });
|
|
@@ -520,10 +559,10 @@ class NgAtomicComponent extends InjectableComponent {
|
|
|
520
559
|
}
|
|
521
560
|
return true;
|
|
522
561
|
}
|
|
523
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
524
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
562
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
563
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.1.4", type: NgAtomicComponent, isStandalone: true, usesInheritance: true, hostDirectives: [{ directive: DebugDirective }], ngImport: i0 });
|
|
525
564
|
}
|
|
526
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
565
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NgAtomicComponent, decorators: [{
|
|
527
566
|
type: Directive,
|
|
528
567
|
args: [{
|
|
529
568
|
standalone: true,
|
|
@@ -537,5 +576,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
537
576
|
* Generated bundle index. Do not edit.
|
|
538
577
|
*/
|
|
539
578
|
|
|
540
|
-
export { CallPipe, DebugDirective, EFFECT_ENTRY, Effect, EffectMap, FAKE_COMPUTED, HostType, InjectableComponent, NG_ATOMIC_DEBUG, NgAtomicActionLogger, NgAtomicComponent, NgAtomicInjectorActionStore, NgAtomicRootActionStore, TOKEN, TokenizedType, _computed, applyToInput, compute, computeFake, createAction, fakeComputed, getInputs, getInputsByComponentRef, getMeta, getOutputs, getOutputsByInstance, getToken, injectEffectReducer, isFakeComputed, provideComponent, provideEffect, proxyFakeComputedInputValueFn, proxyFakeComputedInputs, resolveActions, updateInput, withNgAtomicDebug, wrapActions };
|
|
579
|
+
export { CallPipe, DebugDirective, EFFECT_ENTRY, Effect, EffectMap, FAKE_COMPUTED, HostType, InjectableComponent, NG_ATOMIC_DEBUG, NgAtomicActionLogger, NgAtomicComponent, NgAtomicInjectorActionStore, NgAtomicRootActionStore, TOKEN, TokenizedType, _computed, applyToInput, compute, computeFake, createAction, fakeComputed, getInputs, getInputsByComponentRef, getMeta, getOutputs, getOutputsByInstance, getToken, injectEffectReducer, isFakeComputed, provideComponent, provideEffect, proxyFakeComputedInputValueFn, proxyFakeComputedInputs, recursiveWrapRoute, recursiveWrapRoutes, resolveActions, updateInput, withNgAtomicDebug, wrapActions, wrapLoadChildren };
|
|
541
580
|
//# sourceMappingURL=ng-atomic-core.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-core.mjs","sources":["../../../../../packages/@ng-atomic/core/src/lib/effect.ts","../../../../../packages/@ng-atomic/core/src/lib/action-store.ts","../../../../../packages/@ng-atomic/core/src/lib/action.ts","../../../../../packages/@ng-atomic/core/src/lib/signals.ts","../../../../../packages/@ng-atomic/core/src/lib/injectable-component.ts","../../../../../packages/@ng-atomic/core/src/lib/input.ts","../../../../../packages/@ng-atomic/core/src/lib/ng-atomic-debug.ts","../../../../../packages/@ng-atomic/core/src/lib/debug/debug.directive.ts","../../../../../packages/@ng-atomic/core/src/lib/ng-atomic-component.ts","../../../../../packages/@ng-atomic/core/src/ng-atomic-core.ts"],"sourcesContent":["import { InjectionToken, Injector, Provider, inject, runInInjectionContext } from \"@angular/core\";\nimport { Action } from \"./action\";\n\nexport interface EffectProps {\n dispatch: boolean;\n scope: string;\n accessor: (action: Action) => any;\n}\n\nexport class EffectMap extends Map<string, {key: string, props: EffectProps}> {\n override get(key: string, scope = 'host'): { key: string; props: EffectProps; } {\n return super.get(this.makeKey(key, scope))!; \n }\n\n override set(key: string, value: { key: string; props: EffectProps; }): this {\n return super.set(this.makeKey(key, value.props.scope), value);\n }\n\n override has(key: string, scope = 'host'): boolean {\n return super.has(this.makeKey(key, scope));\n }\n\n private makeKey(key: string, scope = 'host') {\n return `[${scope}]#${key}`;\n }\n}\n\nexport function Effect(id: string, {\n dispatch = false,\n scope = 'host',\n accessor = (action: Action) => action.payload,\n}: Partial<EffectProps> = {}) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n target['_effectMap'] ??= new EffectMap();\n target['_effectMap'].set(id, {key: propertyKey, props: {dispatch, scope, accessor}});\n };\n}\n\nexport interface EffectFunctionOptions {\n dispatch?: boolean;\n}\n\nexport interface EffectContext {\n injector?: Injector;\n}\n\nexport type EffectFunction = (payload?: any, context?: EffectContext) => any | Promise<any>;\nexport type EffectFunctionFactory = (hostInjector?: Injector) => EffectFunction;\n\nexport interface EffectEntry {\n\tactionIds: string | string[];\n effectFactory?: EffectFunctionFactory;\n options?: EffectFunctionOptions;\n}\n\nexport const EFFECT_ENTRY = new InjectionToken<EffectEntry>('[@ng-atomic/core] EFFECT_ENTRY');\n\nexport function provideEffect(\n ActionIds: string[] | string,\n _effectFactory: (injector: Injector) => EffectFunction,\n options: EffectFunctionOptions = {dispatch: false},\n): Provider {\n\treturn {\n\t\tprovide: EFFECT_ENTRY,\n\t\tuseFactory: (injector: Injector) => {\n return {\n actionIds: ActionIds,\n effectFactory: (hostInjector: Injector) => {\n return runInInjectionContext(hostInjector, () => {\n return _effectFactory(injector);\n });\n },\n options\n };\n },\n\t\tmulti: true,\n\t\tdeps: [Injector]\n\t};\n}\n\nexport function injectEffectReducer(injector: Injector = inject(Injector)) {\n\tconst effectEntries = injector.get<EffectEntry[]>(EFFECT_ENTRY, [], { optional: true });\n const effectEntryMap = new Map<string, {effectFactory: EffectFunction, options: EffectFunctionOptions}>();\n\n for (const entry of effectEntries) {\n const ids = Array.isArray(entry.actionIds) ? entry.actionIds : [entry.actionIds];\n for (const id of ids) {\n const effectFactory = () => entry.effectFactory(injector);\n effectEntryMap.set(id, { effectFactory, options: entry.options });\n }\n }\n\n return async (action: Action, hostInjector: Injector): Promise<{dispatch: boolean}> => {\n const entry = effectEntryMap.get(action.id);\n if (entry) {\n await runInInjectionContext(hostInjector, () => {\n const effect = entry?.effectFactory();\n return effect(action.payload, { injector });\n });\n return { dispatch: false };\n }\n return { dispatch: true };\n\t}\n}\n","import { EventEmitter, inject, Injectable, Injector } from \"@angular/core\";\nimport { Action } from \"./action\";\nimport { injectEffectReducer } from \"./effect\";\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicActionLogger {\n log(action: Action, scope = 'default') {\n console.debug(action, scope);\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicRootActionStore {\n protected logger = inject(NgAtomicActionLogger);\n protected readonly _actions$ = new EventEmitter<Action>();\n readonly actions$ = this._actions$.asObservable();\n\n constructor() {\n this.actions$.subscribe(action => this.logger.log(action, 'root'));\n }\n\n dispatch(action: Action) {\n this._actions$.emit(action);\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicInjectorActionStore {\n protected logger = inject(NgAtomicActionLogger);\n #rootActionStore = inject(NgAtomicRootActionStore);\n\n async dispatch(injector: Injector, action: Action, hostInjector: Injector = injector) {\n const _action = {...action, meta: { injector }};\n this.logger.log(_action, 'injector');\n\n const reducer = injectEffectReducer(injector);\n const effect = await reducer(_action, hostInjector);\n\n if (effect.dispatch) {\n const injector_ = injector.get(Injector, null, {skipSelf: true});\n if (injector_ && injector_ !== Injector.NULL) {\n await this.dispatch(injector_, _action, hostInjector);\n } else {\n await this.#rootActionStore.dispatch(_action);\n }\n }\n }\n}","import Ajv from \"ajv\";\nimport { ClassConstructor, plainToInstance } from \"class-transformer\";\nimport { validateSync } from \"class-validator\";\nimport { JsonSchema } from \"json-schema-library\";\n\nexport interface Action<T = any> {\n id: string;\n payload?: T;\n name?: string;\n icon?: string;\n color?: string;\n disabled?: boolean;\n children?: Action<T>[],\n meta?: {componentId?: string | number | null} | any;\n}\n\nexport type ActionsFactory<T = any> = (...args: any[]) => Action<T>[];\n\n/** @deprecated */\nexport type Actions = ActionsFactory | Action[];\n\nexport function resolveActions(actions: Actions, ...args: any[]) {\n if (typeof actions === 'function') {\n return actions(...args);\n }\n return actions;\n}\n\nexport function wrapActions(actions: Actions): ActionsFactory {\n return typeof actions === 'function' ? actions : () => actions;\n}\n\nexport interface CreateActionsOptions<P extends object = any> {\n validator?: (item: P) => null | string | string[];\n name?: string;\n icon?: string;\n}\n\nexport type ActionFactory<P extends object = any> = (payload?: P, meta?: CreateActionsOptions) => Action<P>;\n\nexport function createAction<P extends object = any>(\n type: string,\n schema: JsonSchema | ClassConstructor<P>,\n options: CreateActionsOptions<P> = {},\n): {validate: (item: P) => null | string | string[], create: ActionFactory<P>} { \n const defaultValidator = (item: P) => {\n if (typeof schema === 'object') {\n const _schema = {\n ...schema,\n required: schema.required.filter((key: string) => key in item),\n };\n const isValid = new Ajv().compile(_schema)(item);\n if (!isValid) return 'invalid';\n return null;\n } else {\n const errors = validateSync(plainToInstance(schema, {...item}) as object);\n if (errors.length) return 'invalid';\n return null;\n }\n }\n return {\n validate: options?.validator ?? defaultValidator,\n create: (payload: P = {} as any, meta: {name?: string, icon?: string} = {}): Action => ({\n id: type,\n payload,\n name: meta?.name ?? options.name ?? type,\n icon: meta?.icon ?? options.icon,\n }),\n }\n}\n","import { CreateComputedOptions, Pipe, Signal, computed, isSignal, PipeTransform } from \"@angular/core\";\n\nfunction call<T>(valueOrSignal: Signal<T> | T): T {\n return isSignal(valueOrSignal) ? call(valueOrSignal()) : valueOrSignal;\n}\n\nexport function proxyFakeComputedInputValueFn(inputValueFn: any) {\n return new Proxy(inputValueFn, {\n apply: function (target, _, args) {\n return computeFake(target(...args));\n }\n });\n}\n\nexport function computeFake(valueOrFakeComputed: any) {\n return isFakeComputed(valueOrFakeComputed) ? valueOrFakeComputed() : valueOrFakeComputed;\n}\n\nexport function proxyFakeComputedInputs(target: any, inputs: string[]) {\n inputs.filter(input => isSignal(target[input])).forEach(input => {\n target[input] = proxyFakeComputedInputValueFn(target[input]);\n });\n}\n\nexport const FAKE_COMPUTED = /* @__PURE__ */ Symbol('FAKE_COMPUTED');\n\nexport function compute(target: any, propName: string) {\n let inputValueFn: any;\n Object.defineProperty(target, propName, {\n get() {\n return new Proxy(inputValueFn, {\n apply: function (target, _, args) {\n const valueOrSignal: any = target(...args);\n return isSignal(valueOrSignal) ? valueOrSignal() : valueOrSignal;\n }\n });\n },\n set(value) {\n inputValueFn = value;\n },\n });\n}\n\nexport function fakeComputed<T>(computation: () => T, options?: CreateComputedOptions<T>): T {\n const _computed = computed(computation, options) as never as T;\n _computed[FAKE_COMPUTED] = true;\n return _computed;\n}\n\nexport function _computed<T>(computation: () => T, options?: CreateComputedOptions<T>): T {\n return fakeComputed(computation, options);\n}\n\nexport function isFakeComputed(_computed: any): _computed is ReturnType<typeof computed> {\n return !!_computed?.[FAKE_COMPUTED];\n}\n\n@Pipe({ name: 'call', standalone: true, pure: true})\nexport class CallPipe implements PipeTransform {\n transform<T>(value: Signal<T> | T): T {\n return call(value);\n }\n}\n","import {\n ComponentMirror, ComponentRef, DestroyRef,\n Directive,\n // ɵoutput,\n ElementRef, EmbeddedViewRef,\n InjectionToken, Injector, SimpleChange, SimpleChanges,\n Type, ViewContainerRef, inject, input, PLATFORM_ID,\n Output, EventEmitter\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { reflectComponentType, OnInit, OnChanges } from \"@angular/core\";\nimport { Action } from \"./action\";\n\nexport type TypeFactoryAsync<T> = () => Promise<Type<T>>;\n\nexport type TypeFactory<T> = () => (Type<T> | Promise<Type<T>>);\nimport { proxyFakeComputedInputs } from \"./signals\";\nimport { isPlatformBrowser } from \"@angular/common\";\n\nexport const TOKEN = 'Δtkn';\n\nexport function provideComponent<ABS = any, IMPL = any>(\n abstract: Type<ABS>,\n typeOrFactory: Type<IMPL> | TypeFactory<IMPL>,\n) {\n async function loadComponentType(): Promise<Type<IMPL>> {\n if (typeof typeOrFactory === 'function' && !typeOrFactory.prototype) {\n return await (typeOrFactory as TypeFactory<IMPL>)();\n } else {\n return typeOrFactory as Type<IMPL>;\n }\n }\n return { provide: (abstract as any)[TOKEN], useValue: loadComponentType };\n}\n\nexport function TokenizedType() {\n return function <T extends Type<any>>(type: T) {\n (type as any)[TOKEN] = new InjectionToken<T>(type.name);\n };\n}\n\nexport function getToken(type: Type<any>) {\n return (type as any)[TOKEN];\n}\n\nexport enum HostType {\n Dir = 'ɵdir',\n Cmp = 'ɵcmp',\n}\n\ntype IO = {propName: string, templateName: string};\n\nexport function getMeta<T>(type: Type<T>) {\n return (type as any)[HostType.Cmp] || (type as any)[HostType.Dir];\n}\n\nexport function getInputs<T>(type: Type<T>): IO[] {\n return Object.entries<string>(getMeta(type)['inputs'])\n .map(([templateName, [propName]]) => ({propName, templateName}));\n}\n\nexport function getOutputs<T>(type: Type<T>): IO[] {\n const meta = getMeta(type);\n return Object.entries<string>(meta['outputs'])\n .map(([templateName, propName]) => ({propName, templateName}));\n}\n\nexport function getInputsByComponentRef<T extends {} = any>(cmp: ComponentRef<T>): IO[] {\n return getInputs(cmp.instance.constructor as Type<T>);\n}\n\nexport function getOutputsByInstance<T extends {} = any>(cmp: ComponentRef<T>): IO[] {\n return getOutputs(cmp.instance.constructor as Type<T>);\n}\n\n@Directive({\n standalone: true,\n // host: {ngSkipHydration: 'true'}\n})\nexport class InjectableComponent<T = any> implements OnInit, OnChanges {\n readonly #platformId = inject(PLATFORM_ID);\n readonly #viewContainerRef = inject(ViewContainerRef);\n readonly #injector = inject(Injector);\n readonly #destroyRef = inject(DestroyRef);\n readonly #el: ElementRef<HTMLElement> = inject(ElementRef);\n #component: ComponentRef<T> | null = null;\n #componentMirror: ComponentMirror<T> | null = null;\n\n readonly injectable = input(false, {transform: (value: any) => value === '' ? true : value, alias: 'injectable'});\n // readonly __action = ɵoutput<Action>({alias: 'action'});\n @Output('action') readonly __action = new EventEmitter<Action>();\n\n dispatch(action: Action) {\n this.__action.emit(action);\n }\n\n get #inputs(): IO[] {\n const abs = getInputs(this.constructor as Type<T>);\n return abs;\n }\n\n get #outputs(): IO[] {\n const abs = getOutputs(this.constructor as Type<T>);\n return abs;\n // const impl = this.#componentMirror!.outputs;\n // return abs.filter(abstractOutput => impl.some(implOutput => implOutput.templateName === abstractOutput.templateName));\n }\n\n #setAttribute() {\n const hostElement = (this.#component!.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n const attributes: NamedNodeMap = this.#el.nativeElement.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i)!;\n if (attr.name === 'injectable') {\n hostElement.setAttribute('injected', '');\n } else {\n hostElement.setAttribute(attr.name, attr.value);\n }\n }\n }\n\n #bindInputs() {\n for (const input of this.#inputs) {\n if (input.propName === 'injectable') continue;\n const valueOrInputValueFn = this[input.propName];\n const value = typeof valueOrInputValueFn === 'function' ? valueOrInputValueFn() : valueOrInputValueFn;\n this.#component!.setInput(input.templateName, value);\n }\n }\n\n get propNames() {\n return this.#inputs.map(input => input.propName);\n }\n\n proxyFakeComputedInputs() {\n proxyFakeComputedInputs(this, this.propNames);\n }\n\n #bindOutputs() {\n for (const output of this.#outputs) {\n (this.#component!.instance as any)[output.propName]?.pipe(\n takeUntilDestroyed(this.#destroyRef)\n ).subscribe((value: any) => this[output.propName].emit(value));\n }\n }\n\n #bindEvents() {\n for (const name of ['click']) {\n this.#component.injector.get(ElementRef).nativeElement.addEventListener(name, (event) => {\n this.#el.nativeElement.dispatchEvent(new Event(name, {}));\n });\n }\n }\n \n constructor() {\n this.proxyFakeComputedInputs();\n }\n\n ngOnInit() {\n if (this.injectable() && isPlatformBrowser(this.#platformId)) {\n this.#injector.get<TypeFactoryAsync<T>>(getToken(this.constructor as any))().then(type => {\n this.#component = this.#viewContainerRef.createComponent(type, {\n projectableNodes: [\n Array.from(this.#el.nativeElement.childNodes)\n ],\n });\n this.#componentMirror = reflectComponentType(type);\n this.#bindInputs();\n this.#bindOutputs();\n this.#bindEvents();\n this.#setAttribute();\n // this.#viewContainerRef.remove(0);\n this.#component.changeDetectorRef.detectChanges();\n this.#el.nativeElement.style.display = 'none';\n // this.#el.nativeElement.remove();\n });\n }\n this.proxyFakeComputedInputs();\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (this.injectable() && this.#componentMirror) {\n for (const input of this.#inputs) {\n if (input.propName === 'injectable') return;\n const change = simpleChanges[input.propName] as SimpleChange;\n if (change) {\n this.#component!.setInput(input.propName, change.currentValue);\n }\n }\n }\n }\n}\n","import { InputSignal, Signal } from '@angular/core';\nimport { SIGNAL, SignalNode, signalSetFn } from '@angular/core/primitives/signals';\n\ninterface InputSignalNode<T, TransformT> extends SignalNode<T> {\n /**\n * User-configured transform that will run whenever a new value is applied\n * to the input signal node.\n */\n transformFn: ((value: TransformT) => T) | undefined;\n\n /**\n * Applies a new value to the input signal. Expects transforms to be run\n * manually before.\n *\n * This function is called by the framework runtime code whenever a binding\n * changes. The value can in practice be anything at runtime, but for typing\n * purposes we assume it's a valid `T` value. Type-checking will enforce that.\n */\n applyValueToInputSignal<T, TransformT>(node: InputSignalNode<T, TransformT>, value: T): void;\n}\n\nfunction applyValueToInputField<T>(\n instance: T,\n inputSignalNode: null | InputSignalNode<unknown, unknown>,\n privateName: string,\n value: unknown,\n) {\n if (inputSignalNode !== null) {\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n } else {\n (instance as any)[privateName] = value;\n }\n}\n\ntype InputSignalType<T> = T extends InputSignal<infer U> ? U : never;\n\nexport function applyToInput<T, K extends keyof T>(\n instance: T,\n propName: K,\n value: InputSignalType<T[K]>,\n) {\n\tconst inputSignalNode = (instance as any)[propName][SIGNAL] as InputSignalNode<unknown, unknown>;\n\tif (inputSignalNode !== null) {\n\t\tinputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n\t} else {\n\t\t(instance as any)[propName] = value;\n\t}\n}\n\nexport function updateInput<T, K extends keyof T>(\n instance: T,\n propName: K,\n updater: (value: InputSignalType<T[K]>) => InputSignalType<T[K]>,\n) {\n const inputSignalNode = (instance as any)[propName][SIGNAL] as InputSignalNode<unknown, unknown>;\n if (inputSignalNode !== null) {\n const value = updater((instance as any)[propName]());\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n } else {\n (instance as any)[propName] = updater((instance as any)[propName]);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NG_ATOMIC_DEBUG = new InjectionToken<boolean>('NG_ATOMIC_DEBUG');\nexport function withNgAtomicDebug() {\n return {provide: NG_ATOMIC_DEBUG, useValue: true};\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, inject, OnInit } from '@angular/core';\nimport { NG_ATOMIC_DEBUG } from '../ng-atomic-debug';\n\nconst DEBUG_CONFIG = {\n outline: '1px',\n colors: {\n 'templates': '#f00',\n 'organisms': '#0f0',\n 'molecules': '#00f',\n 'atoms': '#ff0',\n 'frames': 'transparent',\n 'default': '#000',\n },\n excludes: ['frames', 'app', 'pages', 'atoms'],\n};\n\n@Directive({standalone: true, selector: 'debug'})\nexport class DebugDirective implements OnInit {\n protected el: ElementRef<HTMLElement> = inject(ElementRef);\n protected platformId = inject(PLATFORM_ID);\n protected isDebug = inject(NG_ATOMIC_DEBUG, {optional: true}) ?? false;\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId) && this.isDebug) {\n const name = this.el.nativeElement.tagName.toLowerCase();\n const type = name.split('-')[0];\n if (DEBUG_CONFIG.excludes.includes(type)) return;\n const color = DEBUG_CONFIG.colors?.[type] ?? DEBUG_CONFIG.colors.default;\n\n // 1pxのアウトラインを設定\n this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;\n\n // 疑似要素でコンポーネント名を表示\n const labelEl = this.createLabelElement({\n name: `${name}${this.el.nativeElement.hasAttribute('injected') ? '[injected]' : ''}`,\n color\n });\n this.el.nativeElement.style.outlineOffset = '-1px';\n this.el.nativeElement.style.position = 'relative';\n this.el.nativeElement.appendChild(labelEl);\n }\n }\n\n protected createLabelElement(options: {\n name: string\n color: string\n }): HTMLElement {\n const content = document.createElement('span');\n content.textContent = options.name;\n content.style.backgroundColor = `${options.color}`;\n content.style.color = '#fff';\n content.style.padding = '2px 4px';\n content.style.position = 'absolute';\n content.style.fontSize = '10px';\n content.style.top = '0';\n content.style.left = '0';\n content.style.zIndex = '9999';\n content.style.lineHeight = '1.5em';\n content.style.whiteSpace = 'nowrap';\n return content;\n }\n}","import { ApplicationRef, DestroyRef, Directive, ElementRef, inject, Injector } from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Action } from \"./action\";\nimport { InjectableComponent } from \"./injectable-component\";\nimport { EffectMap } from \"./effect\";\nimport { NgAtomicActionLogger, NgAtomicInjectorActionStore, NgAtomicRootActionStore } from \"./action-store\";\nimport { DebugDirective } from './debug';\nimport { ActivatedRoute } from \"@angular/router\";\n\n\nfunction injectIsRouteComponent(component) {\n const route = inject(ActivatedRoute);\n const currentComponent = route.snapshot.component;\n return currentComponent === component.constructor;\n}\n\n@Directive({\n standalone: true,\n hostDirectives: [\n DebugDirective,\n ],\n})\nexport class NgAtomicComponent<T = any> extends InjectableComponent<T> {\n #rootActionStore = inject(NgAtomicRootActionStore);\n #injectorActionStore = inject(NgAtomicInjectorActionStore);\n #destroyRef = inject(DestroyRef);\n #el = inject(ElementRef);\n #injector = inject(Injector);\n #logger = inject(NgAtomicActionLogger);\n #isRouteComponent = injectIsRouteComponent(this);\n #appRef = inject(ApplicationRef);\n __injector = inject(Injector);\n\n get selector() {\n return this.#el.nativeElement.tagName.toLowerCase();\n }\n\n get #isBootstrapComponent() {\n return this.#appRef.components.some(component => component.instance === this);\n }\n\n constructor() {\n super();\n this.#rootActionStore.actions$.pipe(\n takeUntilDestroyed(this.#destroyRef),\n ).subscribe(action => this.effect(action, 'root'));\n }\n\n async dispatch(\n action: Action,\n scope = 'host',\n componentId: string | number | null = null,\n ) {\n const _action = {...action, meta: { componentId, selector: this.selector }};\n this.#logger.log(_action, scope);\n const dispatch = await this.effect(_action, scope);\n\n if (dispatch) {\n if (scope === 'root') {\n return this.#rootActionStore.dispatch(_action);\n } else if (this.#isRouteComponent || this.#isBootstrapComponent) {\n return this.#injectorActionStore.dispatch(this.#injector, _action);\n } else {\n return super.dispatch(_action);\n }\n }\n }\n\n protected async effect(action: Action, scope = 'host'): Promise<boolean> {\n // MEMO(@nontangent): _effectMapをpropertyに持つとEffectが機能しなくなる\n const effectMap: EffectMap = (this['_effectMap'] ?? new EffectMap());\n const effect = effectMap.get(action.id, scope);\n if (effect?.key && effect?.props?.scope === scope) {\n await this[effect.key](effect.props.accessor(action));\n return !!effect?.props?.dispatch;\n }\n return true;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DebugDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-core.mjs","sources":["../../../../../packages/@ng-atomic/core/src/lib/effect.ts","../../../../../packages/@ng-atomic/core/src/lib/action-store.ts","../../../../../packages/@ng-atomic/core/src/lib/action.ts","../../../../../packages/@ng-atomic/core/src/lib/signals.ts","../../../../../packages/@ng-atomic/core/src/lib/injectable-component.ts","../../../../../packages/@ng-atomic/core/src/lib/input.ts","../../../../../packages/@ng-atomic/core/src/lib/route.ts","../../../../../packages/@ng-atomic/core/src/lib/ng-atomic-debug.ts","../../../../../packages/@ng-atomic/core/src/lib/debug/debug.directive.ts","../../../../../packages/@ng-atomic/core/src/lib/ng-atomic-component.ts","../../../../../packages/@ng-atomic/core/src/ng-atomic-core.ts"],"sourcesContent":["import { InjectionToken, Injector, Provider, inject, runInInjectionContext } from \"@angular/core\";\nimport { Action } from \"./action\";\n\nexport interface EffectProps {\n dispatch: boolean;\n scope: string;\n accessor: (action: Action) => any;\n}\n\nexport class EffectMap extends Map<string, {key: string, props: EffectProps}> {\n override get(key: string, scope = 'host'): { key: string; props: EffectProps; } {\n return super.get(this.makeKey(key, scope))!; \n }\n\n override set(key: string, value: { key: string; props: EffectProps; }): this {\n return super.set(this.makeKey(key, value.props.scope), value);\n }\n\n override has(key: string, scope = 'host'): boolean {\n return super.has(this.makeKey(key, scope));\n }\n\n private makeKey(key: string, scope = 'host') {\n return `[${scope}]#${key}`;\n }\n}\n\nexport function Effect(id: string, {\n dispatch = false,\n scope = 'host',\n accessor = (action: Action) => action.payload,\n}: Partial<EffectProps> = {}) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n target['_effectMap'] ??= new EffectMap();\n target['_effectMap'].set(id, {key: propertyKey, props: {dispatch, scope, accessor}});\n };\n}\n\nexport interface EffectFunctionOptions {\n dispatch?: boolean;\n}\n\nexport interface EffectContext {\n injector?: Injector;\n}\n\nexport type EffectFunction = (payload?: any, context?: EffectContext) => any | Promise<any>;\nexport type EffectFunctionFactory = (hostInjector?: Injector) => EffectFunction;\n\nexport interface EffectEntry {\n\tactionIds: string | string[];\n effectFactory?: EffectFunctionFactory;\n options?: EffectFunctionOptions;\n}\n\nexport const EFFECT_ENTRY = new InjectionToken<EffectEntry>('[@ng-atomic/core] EFFECT_ENTRY');\n\nexport function provideEffect(\n ActionIds: string[] | string,\n _effectFactory: (injector: Injector) => EffectFunction,\n options: EffectFunctionOptions = {dispatch: false},\n): Provider {\n\treturn {\n\t\tprovide: EFFECT_ENTRY,\n\t\tuseFactory: (injector: Injector) => {\n return {\n actionIds: ActionIds,\n effectFactory: (hostInjector: Injector) => {\n return runInInjectionContext(hostInjector, () => {\n return _effectFactory(injector);\n });\n },\n options\n };\n },\n\t\tmulti: true,\n\t\tdeps: [Injector]\n\t};\n}\n\nexport function injectEffectReducer(injector: Injector = inject(Injector)) {\n\tconst effectEntries = injector.get<EffectEntry[]>(EFFECT_ENTRY, [], { optional: true });\n const effectEntryMap = new Map<string, {effectFactory: EffectFunction, options: EffectFunctionOptions}>();\n\n for (const entry of effectEntries) {\n const ids = Array.isArray(entry.actionIds) ? entry.actionIds : [entry.actionIds];\n for (const id of ids) {\n const effectFactory = () => entry.effectFactory(injector);\n effectEntryMap.set(id, { effectFactory, options: entry.options });\n }\n }\n\n return async (action: Action, hostInjector: Injector): Promise<{dispatch: boolean}> => {\n const entry = effectEntryMap.get(action.id);\n if (entry) {\n await runInInjectionContext(hostInjector, () => {\n const effect = entry?.effectFactory();\n return effect(action.payload, { injector });\n });\n return { dispatch: false };\n }\n return { dispatch: true };\n\t}\n}\n","import { EventEmitter, inject, Injectable, Injector } from \"@angular/core\";\nimport { Action } from \"./action\";\nimport { injectEffectReducer } from \"./effect\";\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicActionLogger {\n log(action: Action, scope = 'default') {\n console.info(`[NgAtomicActionLogger] ${action?.name}`, {action, scope});\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicRootActionStore {\n protected logger = inject(NgAtomicActionLogger);\n protected readonly _actions$ = new EventEmitter<Action>();\n readonly actions$ = this._actions$.asObservable();\n\n constructor() {\n this.actions$.subscribe(action => this.logger.log(action, 'root'));\n }\n\n dispatch(action: Action) {\n this._actions$.emit(action);\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicInjectorActionStore {\n protected logger = inject(NgAtomicActionLogger);\n #rootActionStore = inject(NgAtomicRootActionStore);\n\n async dispatch(injector: Injector, action: Action, hostInjector: Injector = injector) {\n const _action = {...action, meta: { injector }};\n this.logger.log(_action, 'injector');\n\n const reducer = injectEffectReducer(injector);\n const effect = await reducer(_action, hostInjector);\n\n if (effect.dispatch) {\n const injector_ = injector.get(Injector, null, {skipSelf: true});\n if (injector_ && injector_ !== Injector.NULL) {\n await this.dispatch(injector_, _action, hostInjector);\n } else {\n await this.#rootActionStore.dispatch(_action);\n }\n }\n }\n}","import Ajv from \"ajv\";\nimport { ClassConstructor, plainToInstance } from \"class-transformer\";\nimport { validateSync } from \"class-validator\";\nimport { JsonSchema } from \"json-schema-library\";\n\nexport interface Action<T = any> {\n id: string;\n payload?: T;\n name?: string;\n icon?: string;\n color?: string;\n disabled?: boolean;\n children?: Action<T>[],\n meta?: {componentId?: string | number | null} | any;\n}\n\nexport type ActionsFactory<T = any> = (...args: any[]) => Action<T>[];\n\n/** @deprecated */\nexport type Actions = ActionsFactory | Action[];\n\nexport function resolveActions(actions: Actions, ...args: any[]) {\n if (typeof actions === 'function') {\n return actions(...args);\n }\n return actions;\n}\n\nexport function wrapActions(actions: Actions): ActionsFactory {\n return typeof actions === 'function' ? actions : () => actions;\n}\n\nexport interface CreateActionsOptions<P extends object = any> {\n validator?: (item: P) => null | string | string[];\n name?: string;\n icon?: string;\n}\n\nexport type ActionFactory<P extends object = any> = (payload?: P, meta?: CreateActionsOptions) => Action<P>;\n\nexport function createAction<P extends object = any>(\n type: string,\n schema: JsonSchema | ClassConstructor<P>,\n options: CreateActionsOptions<P> = {},\n): {validate: (item: P) => null | string | string[], create: ActionFactory<P>} { \n const defaultValidator = (item: P) => {\n if (typeof schema === 'object') {\n const _schema = {\n ...schema,\n required: schema.required.filter((key: string) => key in item),\n };\n const isValid = new Ajv().compile(_schema)(item);\n if (!isValid) return 'invalid';\n return null;\n } else {\n const errors = validateSync(plainToInstance(schema, {...item}) as object);\n if (errors.length) return 'invalid';\n return null;\n }\n }\n return {\n validate: options?.validator ?? defaultValidator,\n create: (payload: P = {} as any, meta: {name?: string, icon?: string} = {}): Action => ({\n id: type,\n payload,\n name: options.name ?? type,\n icon: options.icon,\n ...meta,\n }),\n }\n}\n","import { CreateComputedOptions, Pipe, Signal, computed, isSignal, PipeTransform } from \"@angular/core\";\n\nfunction call<T>(valueOrSignal: Signal<T> | T): T {\n return isSignal(valueOrSignal) ? call(valueOrSignal()) : valueOrSignal;\n}\n\nexport function proxyFakeComputedInputValueFn(inputValueFn: any) {\n return new Proxy(inputValueFn, {\n apply: function (target, _, args) {\n return computeFake(target(...args));\n }\n });\n}\n\nexport function computeFake<T>(valueOrFakeComputed: T): T {\n return isFakeComputed(valueOrFakeComputed) ? valueOrFakeComputed() as T : valueOrFakeComputed;\n}\n\nexport function proxyFakeComputedInputs(target: any, inputs: string[]) {\n inputs.filter(input => isSignal(target[input])).forEach(input => {\n target[input] = proxyFakeComputedInputValueFn(target[input]);\n });\n}\n\nexport const FAKE_COMPUTED = /* @__PURE__ */ Symbol('FAKE_COMPUTED');\n\nexport function compute(target: any, propName: string) {\n let inputValueFn: any;\n Object.defineProperty(target, propName, {\n get() {\n return new Proxy(inputValueFn, {\n apply: function (target, _, args) {\n const valueOrSignal: any = target(...args);\n return isSignal(valueOrSignal) ? valueOrSignal() : valueOrSignal;\n }\n });\n },\n set(value) {\n inputValueFn = value;\n },\n });\n}\n\nexport function fakeComputed<T>(computation: () => T, options?: CreateComputedOptions<T>): T {\n const _computed = computed(computation, options) as never as T;\n _computed[FAKE_COMPUTED] = true;\n return _computed;\n}\n\nexport function _computed<T>(computation: () => T, options?: CreateComputedOptions<T>): T {\n return fakeComputed(computation, options);\n}\n\nexport function isFakeComputed(_computed: any): _computed is ReturnType<typeof computed> {\n return !!_computed?.[FAKE_COMPUTED];\n}\n\n@Pipe({ name: 'call', standalone: true, pure: true})\nexport class CallPipe implements PipeTransform {\n transform<T>(value: Signal<T> | T): T {\n return call(value);\n }\n}\n","import {\n ComponentMirror, ComponentRef, DestroyRef,\n Directive,\n // ɵoutput,\n ElementRef, EmbeddedViewRef,\n InjectionToken, Injector, SimpleChange, SimpleChanges,\n Type, ViewContainerRef, inject, input, PLATFORM_ID,\n Output, EventEmitter\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { reflectComponentType, OnInit, OnChanges } from \"@angular/core\";\nimport { Action } from \"./action\";\n\nexport type TypeFactoryAsync<T> = () => Promise<Type<T>>;\n\nexport type TypeFactory<T> = () => (Type<T> | Promise<Type<T>>);\nimport { proxyFakeComputedInputs } from \"./signals\";\nimport { isPlatformBrowser } from \"@angular/common\";\n\nexport const TOKEN = 'Δtkn';\n\nexport function provideComponent<ABS = any, IMPL = any>(\n abstract: Type<ABS>,\n typeOrFactory: Type<IMPL> | TypeFactory<IMPL>,\n) {\n async function loadComponentType(): Promise<Type<IMPL>> {\n if (typeof typeOrFactory === 'function' && !typeOrFactory.prototype) {\n return await (typeOrFactory as TypeFactory<IMPL>)();\n } else {\n return typeOrFactory as Type<IMPL>;\n }\n }\n return { provide: (abstract as any)[TOKEN], useValue: loadComponentType };\n}\n\nexport function TokenizedType() {\n return function <T extends Type<any>>(type: T) {\n (type as any)[TOKEN] = new InjectionToken<T>(type.name);\n };\n}\n\nexport function getToken(type: Type<any>) {\n return (type as any)[TOKEN];\n}\n\nexport enum HostType {\n Dir = 'ɵdir',\n Cmp = 'ɵcmp',\n}\n\ntype IO = {propName: string, templateName: string};\n\nexport function getMeta<T>(type: Type<T>) {\n if (HostType.Cmp in type) {\n return type[HostType.Cmp];\n } else if (HostType.Dir in type) {\n return type[HostType.Dir];\n }\n}\n\nexport function getInputs<T>(type: Type<T>): IO[] {\n const meta = getMeta(type);\n return Object.entries<string>(meta['inputs'])\n .map(([templateName, [propName]]) => ({propName, templateName}));\n}\n\nexport function getOutputs<T>(type: Type<T>): IO[] {\n const meta = getMeta(type);\n return Object.entries<string>(meta['outputs'])\n .map(([templateName, propName]) => ({propName, templateName}));\n}\n\nexport function getInputsByComponentRef<T extends {} = any>(cmp: ComponentRef<T>): IO[] {\n return getInputs(cmp.instance.constructor as Type<T>);\n}\n\nexport function getOutputsByInstance<T extends {} = any>(cmp: ComponentRef<T>): IO[] {\n return getOutputs(cmp.instance.constructor as Type<T>);\n}\n\n@Directive({\n standalone: true,\n // host: {ngSkipHydration: 'true'}\n})\nexport class InjectableComponent<T = any> implements OnInit, OnChanges {\n readonly #platformId = inject(PLATFORM_ID);\n readonly #viewContainerRef = inject(ViewContainerRef);\n readonly #injector = inject(Injector);\n readonly #destroyRef = inject(DestroyRef);\n readonly #el: ElementRef<HTMLElement> = inject(ElementRef);\n #component: ComponentRef<T> | null = null;\n #componentMirror: ComponentMirror<T> | null = null;\n\n readonly injectable = input(false, {transform: (value: any) => value === '' ? true : value});\n // readonly __action = ɵoutput<Action>({alias: 'action'});\n @Output('action') readonly __action = new EventEmitter<Action>();\n\n dispatch(action: Action) {\n this.__action.emit(action);\n }\n\n get #inputs(): IO[] {\n return getInputs(this.constructor as Type<T>);\n }\n\n get #outputs(): IO[] {\n return getOutputs(this.constructor as Type<T>);\n // const impl = this.#componentMirror!.outputs;\n // return abs.filter(abstractOutput => impl.some(implOutput => implOutput.templateName === abstractOutput.templateName));\n }\n\n #setAttribute() {\n const hostElement = (this.#component!.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n const attributes: NamedNodeMap = this.#el.nativeElement.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i)!;\n if (attr.name === 'injectable') {\n hostElement.setAttribute('injected', '');\n } else {\n hostElement.setAttribute(attr.name, attr.value);\n }\n }\n }\n\n #bindInputs() {\n for (const input of this.#inputs) {\n if (input.propName === 'injectable') continue;\n const valueOrInputValueFn = this[input.propName];\n const value = typeof valueOrInputValueFn === 'function' ? valueOrInputValueFn() : valueOrInputValueFn;\n this.#setInput(input, value);\n }\n }\n\n get propNames() {\n return this.#inputs.map(input => input.propName);\n }\n\n proxyFakeComputedInputs() {\n proxyFakeComputedInputs(this, this.propNames);\n }\n\n #bindOutputs() {\n for (const output of this.#outputs) {\n (this.#component!.instance as any)[output.propName]?.pipe(\n takeUntilDestroyed(this.#destroyRef)\n ).subscribe((value: any) => this[output.propName].emit(value));\n }\n }\n\n #bindEvents() {\n for (const name of ['click']) {\n this.#component.injector.get(ElementRef).nativeElement.addEventListener(name, (event) => {\n this.#el.nativeElement.dispatchEvent(new Event(name, {}));\n });\n }\n }\n\n #setInput(input: {propName: string, templateName: string}, value: any) {\n this.#component!.setInput(input?.templateName, value);\n }\n \n constructor() {\n this.proxyFakeComputedInputs();\n }\n\n ngOnInit() {\n if (this.injectable() && isPlatformBrowser(this.#platformId)) {\n this.#injector.get<TypeFactoryAsync<T>>(getToken(this.constructor as any))().then(type => {\n this.#component = this.#viewContainerRef.createComponent(type, {\n projectableNodes: [\n Array.from(this.#el.nativeElement.childNodes)\n ],\n });\n this.#componentMirror = reflectComponentType(type);\n this.#bindInputs();\n this.#bindOutputs();\n this.#bindEvents();\n this.#setAttribute();\n // this.#viewContainerRef.remove(0);\n this.#component.changeDetectorRef.detectChanges();\n this.#el.nativeElement.style.display = 'none';\n // this.#el.nativeElement.remove();\n });\n }\n this.proxyFakeComputedInputs();\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (this.injectable() && this.#componentMirror) {\n for (const input of this.#inputs) {\n if (input.propName === 'injectable') return;\n const change = simpleChanges[input.propName] as SimpleChange;\n if (change) {\n this.#setInput(input, change.currentValue);\n }\n }\n }\n }\n}\n","import { InputSignal, Signal } from '@angular/core';\nimport { SIGNAL, SignalNode, signalSetFn } from '@angular/core/primitives/signals';\n\ninterface InputSignalNode<T, TransformT> extends SignalNode<T> {\n /**\n * User-configured transform that will run whenever a new value is applied\n * to the input signal node.\n */\n transformFn: ((value: TransformT) => T) | undefined;\n\n /**\n * Applies a new value to the input signal. Expects transforms to be run\n * manually before.\n *\n * This function is called by the framework runtime code whenever a binding\n * changes. The value can in practice be anything at runtime, but for typing\n * purposes we assume it's a valid `T` value. Type-checking will enforce that.\n */\n applyValueToInputSignal<T, TransformT>(node: InputSignalNode<T, TransformT>, value: T): void;\n}\n\nfunction applyValueToInputField<T>(\n instance: T,\n inputSignalNode: null | InputSignalNode<unknown, unknown>,\n privateName: string,\n value: unknown,\n) {\n if (inputSignalNode !== null) {\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n } else {\n (instance as any)[privateName] = value;\n }\n}\n\ntype InputSignalType<T> = T extends InputSignal<infer U> ? U : never;\n\nexport function applyToInput<T, K extends keyof T>(\n instance: T,\n propName: K,\n value: InputSignalType<T[K]>,\n) {\n\tconst inputSignalNode = (instance as any)[propName][SIGNAL] as InputSignalNode<unknown, unknown>;\n\tif (inputSignalNode !== null) {\n\t\tinputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n\t} else {\n\t\t(instance as any)[propName] = value;\n\t}\n}\n\nexport function updateInput<T, K extends keyof T>(\n instance: T,\n propName: K,\n updater: (value: InputSignalType<T[K]>) => InputSignalType<T[K]>,\n) {\n const inputSignalNode = (instance as any)[propName][SIGNAL] as InputSignalNode<unknown, unknown>;\n if (inputSignalNode !== null) {\n const value = updater((instance as any)[propName]());\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n } else {\n (instance as any)[propName] = updater((instance as any)[propName]);\n }\n}\n","import { LoadChildrenCallback, Route, Routes } from '@angular/router';\nimport { isObservable, lastValueFrom } from 'rxjs';\n\nexport async function wrapLoadChildren(\n loadChildrenCallback: LoadChildrenCallback\n): Promise<Routes> {\n const children = await loadChildrenCallback();\n const _children = isObservable(children) ? await lastValueFrom(children) : children;\n const __children = 'default' in _children ? _children.default : _children;\n return __children as never as Promise<Routes>;\n}\n\nexport function recursiveWrapRoute(route: Route, ...wrappers: ((route: Route) => Route)[]): Route {\n const wrappedRoute = wrappers.reduce((acc, wrapper) => wrapper(acc), route);\n return {\n ...wrappedRoute,\n children: wrappedRoute.children \n ? recursiveWrapRoutes(wrappedRoute.children, ...wrappers)\n : undefined,\n loadChildren: wrappedRoute.loadChildren \n ? () => wrapLoadChildren(wrappedRoute.loadChildren).then(routes => recursiveWrapRoutes(routes, ...wrappers))\n : undefined,\n };\n}\n\nexport function recursiveWrapRoutes(routes: Routes, ...wrappers: ((route: Route) => Route)[]): Routes {\n return routes.map(route => recursiveWrapRoute(route, ...wrappers));\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NG_ATOMIC_DEBUG = new InjectionToken<boolean>('NG_ATOMIC_DEBUG');\nexport function withNgAtomicDebug() {\n return {provide: NG_ATOMIC_DEBUG, useValue: true};\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, inject, OnInit, input } from '@angular/core';\nimport { NG_ATOMIC_DEBUG } from '../ng-atomic-debug';\n\nconst DEBUG_CONFIG = {\n outline: '1px',\n colors: {\n 'templates': '#f00',\n 'organisms': '#0f0',\n 'molecules': '#00f',\n 'atoms': '#ff0',\n 'frames': 'transparent',\n 'default': '#000',\n },\n excludes: ['frames', 'app', 'pages', 'atoms'],\n};\n\nfunction getType(element: HTMLElement): string {\n return element.tagName.toLowerCase().split('-')[0];\n}\n\nfunction getName(element: HTMLElement): string {\n return element.tagName.toLowerCase();\n}\n\nfunction getLabel(element: HTMLElement): string {\n const name = getName(element);\n const type = getType(element);\n if (DEBUG_CONFIG.excludes.includes(type)) return;\n return `${name}${element.hasAttribute('injected') ? '[injected]' : ''}`;\n}\n\n@Directive({standalone: true, selector: 'debug'})\nexport class DebugDirective implements OnInit {\n protected el: ElementRef<HTMLElement> = inject(ElementRef);\n protected platformId = inject(PLATFORM_ID);\n protected isDebug = input(inject(NG_ATOMIC_DEBUG, {optional: true}) ?? false);\n protected label = input(getLabel(this.el.nativeElement));\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId) && this.isDebug()) {\n const type = getType(this.el.nativeElement);\n const color = DEBUG_CONFIG.colors?.[type] ?? DEBUG_CONFIG.colors.default;\n this.createLabelElement({ label: this.label(), color });\n this.createOutline(color);\n }\n }\n\n protected createLabelElement(options: {\n label: string\n color: string\n }) {\n const el = document.createElement('span');\n el.textContent = options.label;\n el.style.backgroundColor = `${options.color}`;\n el.style.color = '#fff';\n el.style.padding = '2px 4px';\n el.style.position = 'absolute';\n el.style.fontSize = '10px';\n el.style.top = '0';\n el.style.left = '0';\n el.style.zIndex = '9999';\n el.style.lineHeight = '1.5em';\n el.style.whiteSpace = 'nowrap';\n this.el.nativeElement.appendChild(el);\n }\n\n protected createOutline(color: string) {\n this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;\n this.el.nativeElement.style.outlineOffset = '-1px';\n this.el.nativeElement.style.position = 'relative';\n }\n}","import { ApplicationRef, DestroyRef, Directive, ElementRef, inject, Injector } from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Action } from \"./action\";\nimport { InjectableComponent } from \"./injectable-component\";\nimport { EffectMap } from \"./effect\";\nimport { NgAtomicActionLogger, NgAtomicInjectorActionStore, NgAtomicRootActionStore } from \"./action-store\";\nimport { DebugDirective } from './debug';\nimport { ActivatedRoute } from \"@angular/router\";\n\n\nfunction injectIsRouteComponent(component) {\n const route = inject(ActivatedRoute);\n const currentComponent = route.snapshot.component;\n return currentComponent === component.constructor;\n}\n\n@Directive({\n standalone: true,\n hostDirectives: [\n DebugDirective,\n ],\n})\nexport class NgAtomicComponent<T = any> extends InjectableComponent<T> {\n #rootActionStore = inject(NgAtomicRootActionStore);\n #injectorActionStore = inject(NgAtomicInjectorActionStore);\n #destroyRef = inject(DestroyRef);\n #el = inject(ElementRef);\n #injector = inject(Injector);\n #logger = inject(NgAtomicActionLogger);\n #isRouteComponent = injectIsRouteComponent(this);\n #appRef = inject(ApplicationRef);\n __injector = inject(Injector);\n\n get selector() {\n return this.#el.nativeElement.tagName.toLowerCase();\n }\n\n get #isBootstrapComponent() {\n return this.#appRef.components.some(component => component.instance === this);\n }\n\n constructor() {\n super();\n this.#rootActionStore.actions$.pipe(\n takeUntilDestroyed(this.#destroyRef),\n ).subscribe(action => this.effect(action, 'root'));\n }\n\n async dispatch(\n action: Action,\n scope = 'host',\n componentId: string | number | null = null,\n ) {\n const _action = {...action, meta: { componentId, selector: this.selector }};\n this.#logger.log(_action, scope);\n const dispatch = await this.effect(_action, scope);\n\n if (dispatch) {\n if (scope === 'root') {\n return this.#rootActionStore.dispatch(_action);\n } else if (this.#isRouteComponent || this.#isBootstrapComponent) {\n return this.#injectorActionStore.dispatch(this.#injector, _action);\n } else {\n return super.dispatch(_action);\n }\n }\n }\n\n protected async effect(action: Action, scope = 'host'): Promise<boolean> {\n // MEMO(@nontangent): _effectMapをpropertyに持つとEffectが機能しなくなる\n const effectMap: EffectMap = (this['_effectMap'] ?? new EffectMap());\n const effect = effectMap.get(action.id, scope);\n if (effect?.key && effect?.props?.scope === scope) {\n await this[effect.key](effect.props.accessor(action));\n return !!effect?.props?.dispatch;\n }\n return true;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DebugDirective"],"mappings":"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"}
|
|
@@ -3,12 +3,14 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export declare class DebugDirective implements OnInit {
|
|
4
4
|
protected el: ElementRef<HTMLElement>;
|
|
5
5
|
protected platformId: Object;
|
|
6
|
-
protected isDebug: boolean
|
|
6
|
+
protected isDebug: import("@angular/core").InputSignal<boolean>;
|
|
7
|
+
protected label: import("@angular/core").InputSignal<string>;
|
|
7
8
|
ngOnInit(): void;
|
|
8
9
|
protected createLabelElement(options: {
|
|
9
|
-
|
|
10
|
+
label: string;
|
|
10
11
|
color: string;
|
|
11
|
-
}):
|
|
12
|
+
}): void;
|
|
13
|
+
protected createOutline(color: string): void;
|
|
12
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<DebugDirective, never>;
|
|
13
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<DebugDirective, "debug", never, {}, {}, never, never, true, never>;
|
|
15
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DebugDirective, "debug", never, { "isDebug": { "alias": "isDebug"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14
16
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ type IO = {
|
|
|
19
19
|
propName: string;
|
|
20
20
|
templateName: string;
|
|
21
21
|
};
|
|
22
|
-
export declare function getMeta<T>(type: Type<T>):
|
|
22
|
+
export declare function getMeta<T>(type: Type<T>): unknown;
|
|
23
23
|
export declare function getInputs<T>(type: Type<T>): IO[];
|
|
24
24
|
export declare function getOutputs<T>(type: Type<T>): IO[];
|
|
25
25
|
export declare function getInputsByComponentRef<T extends {} = any>(cmp: ComponentRef<T>): IO[];
|
package/lib/route.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { LoadChildrenCallback, Route, Routes } from '@angular/router';
|
|
2
|
+
export declare function wrapLoadChildren(loadChildrenCallback: LoadChildrenCallback): Promise<Routes>;
|
|
3
|
+
export declare function recursiveWrapRoute(route: Route, ...wrappers: ((route: Route) => Route)[]): Route;
|
|
4
|
+
export declare function recursiveWrapRoutes(routes: Routes, ...wrappers: ((route: Route) => Route)[]): Routes;
|
package/lib/signals.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CreateComputedOptions, Signal, computed, PipeTransform } from "@angular/core";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export declare function proxyFakeComputedInputValueFn(inputValueFn: any): any;
|
|
4
|
-
export declare function computeFake(valueOrFakeComputed:
|
|
4
|
+
export declare function computeFake<T>(valueOrFakeComputed: T): T;
|
|
5
5
|
export declare function proxyFakeComputedInputs(target: any, inputs: string[]): void;
|
|
6
6
|
export declare const FAKE_COMPUTED: unique symbol;
|
|
7
7
|
export declare function compute(target: any, propName: string): void;
|
package/package.json
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ng-atomic/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "v18.13.0-preview-v19e.1",
|
|
4
4
|
"homepage": "https://github.com/xx-machina/plaform/tree/main/packages/@ng-atomic/core",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/xx-machina/plaform.git"
|
|
8
8
|
},
|
|
9
9
|
"peerDependencies": {
|
|
10
|
-
"@angular/core": "
|
|
11
|
-
"@angular/common": "
|
|
12
|
-
"@angular/router": "
|
|
10
|
+
"@angular/core": "19.1.4",
|
|
11
|
+
"@angular/common": "19.1.4",
|
|
12
|
+
"@angular/router": "19.1.4",
|
|
13
|
+
"ajv": "^8.17.1",
|
|
14
|
+
"class-transformer": "^0.5.1",
|
|
15
|
+
"class-validator": "^0.14.0",
|
|
16
|
+
"json-schema-library": "^10.0.0-rc2",
|
|
17
|
+
"rxjs": "^7.8.0"
|
|
13
18
|
},
|
|
14
19
|
"dependencies": {
|
|
15
20
|
"tslib": "^2.3.0"
|
|
@@ -23,8 +28,6 @@
|
|
|
23
28
|
},
|
|
24
29
|
".": {
|
|
25
30
|
"types": "./index.d.ts",
|
|
26
|
-
"esm2022": "./esm2022/ng-atomic-core.mjs",
|
|
27
|
-
"esm": "./esm2022/ng-atomic-core.mjs",
|
|
28
31
|
"default": "./fesm2022/ng-atomic-core.mjs"
|
|
29
32
|
}
|
|
30
33
|
}
|
package/esm2022/index.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './lib';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsT0FBTyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWInIl19
|