@ng-atomic/core 17.0.0 → 17.0.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.
@@ -1,4 +1,6 @@
1
- import { DestroyRef, Directive, ɵoutput, ElementRef, InjectionToken, Injector, ViewContainerRef, inject, input, PLATFORM_ID } from "@angular/core";
1
+ import { DestroyRef, Directive,
2
+ // ɵoutput,
3
+ ElementRef, InjectionToken, Injector, ViewContainerRef, inject, input, PLATFORM_ID, Output, EventEmitter } from "@angular/core";
2
4
  import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
3
5
  import { reflectComponentType } from "@angular/core";
4
6
  import { proxyFakeComputedInputs } from "./signals";
@@ -57,7 +59,8 @@ export class InjectableComponent {
57
59
  #component = null;
58
60
  #componentMirror = null;
59
61
  injectable = input(false, { transform: (value) => value === '' ? true : value, alias: 'injectable' });
60
- __action = ɵoutput({ alias: 'action' });
62
+ // readonly __action = ɵoutput<Action>({alias: 'action'});
63
+ __action = new EventEmitter();
61
64
  dispatch(action) {
62
65
  this.__action.emit(action);
63
66
  }
@@ -155,5 +158,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
155
158
  standalone: true,
156
159
  // host: {ngSkipHydration: 'true'}
157
160
  }]
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
161
+ }], ctorParameters: () => [], propDecorators: { __action: [{
162
+ type: Output,
163
+ args: ['action']
164
+ }] } });
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9pbmplY3RhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQzBCLFVBQVUsRUFDekMsU0FBUztBQUNULFdBQVc7QUFDWCxVQUFVLEVBQ1YsY0FBYyxFQUFFLFFBQVEsRUFDbEIsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQ2xELE1BQU0sRUFBRSxZQUFZLEVBQ3JCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU1yRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRXBELE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUM7QUFFNUIsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixRQUFtQixFQUNuQixhQUE2QztJQUU3QyxLQUFLLFVBQVUsaUJBQWlCO1FBQzlCLElBQUksT0FBTyxhQUFhLEtBQUssVUFBVSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRTtZQUNuRSxPQUFPLE1BQU8sYUFBbUMsRUFBRSxDQUFDO1NBQ3JEO2FBQU07WUFDTCxPQUFPLGFBQTJCLENBQUM7U0FDcEM7SUFDSCxDQUFDO0lBQUEsQ0FBQztJQUNGLE9BQU8sRUFBRSxPQUFPLEVBQUcsUUFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztBQUM1RSxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxVQUErQixJQUFP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QUU7b0JBQ1YsSUFBSSxDQUFDLFVBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQ2hFO2FBQ0Y7U0FDRjtJQUNILENBQUM7dUdBOUdVLG1CQUFtQjsyRkFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixrQ0FBa0M7aUJBQ25DO3dEQVk0QixRQUFRO3NCQUFsQyxNQUFNO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRNaXJyb3IsIENvbXBvbmVudFJlZiwgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICAvLyDJtW91dHB1dCxcbiAgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFNpbXBsZUNoYW5nZSwgU2ltcGxlQ2hhbmdlcyxcbiAgVHlwZSwgVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0LCBpbnB1dCwgUExBVEZPUk1fSUQsXG4gIE91dHB1dCwgRXZlbnRFbWl0dGVyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IHJlZmxlY3RDb21wb25lbnRUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCIuL2FjdGlvblwiO1xuXG5leHBvcnQgdHlwZSBUeXBlRmFjdG9yeUFzeW5jPFQ+ID0gKCkgPT4gUHJvbWlzZTxUeXBlPFQ+PjtcblxuZXhwb3J0IHR5cGUgVHlwZUZhY3Rvcnk8VD4gPSAoKSA9PiAoVHlwZTxUPiB8IFByb21pc2U8VHlwZTxUPj4pO1xuaW1wb3J0IHsgcHJveHlGYWtlQ29tcHV0ZWRJbnB1dHMgfSBmcm9tIFwiLi9zaWduYWxzXCI7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuZXhwb3J0IGNvbnN0IFRPS0VOID0gJ86UdGtuJztcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDb21wb25lbnQ8QUJTID0gYW55LCBJTVBMID0gYW55PihcbiAgYWJzdHJhY3Q6IFR5cGU8QUJTPixcbiAgdHlwZU9yRmFjdG9yeTogVHlwZTxJTVBMPiB8IFR5cGVGYWN0b3J5PElNUEw+LFxuKSB7XG4gIGFzeW5jIGZ1bmN0aW9uIGxvYWRDb21wb25lbnRUeXBlKCk6IFByb21pc2U8VHlwZTxJTVBMPj4ge1xuICAgIGlmICh0eXBlb2YgdHlwZU9yRmFjdG9yeSA9PT0gJ2Z1bmN0aW9uJyAmJiAhdHlwZU9yRmFjdG9yeS5wcm90b3R5cGUpIHtcbiAgICAgIHJldHVybiBhd2FpdCAodHlwZU9yRmFjdG9yeSBhcyBUeXBlRmFjdG9yeTxJTVBMPikoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHR5cGVPckZhY3RvcnkgYXMgVHlwZTxJTVBMPjtcbiAgICB9XG4gIH07XG4gIHJldHVybiB7IHByb3ZpZGU6IChhYnN0cmFjdCBhcyBhbnkpW1RPS0VOXSwgdXNlVmFsdWU6IGxvYWRDb21wb25lbnRUeXBlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUb2tlbml6ZWRUeXBlKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBUeXBlPGFueT4+KHR5cGU6IFQpIHtcbiAgICAodHlwZSBhcyBhbnkpW1RPS0VOXSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUPih0eXBlLm5hbWUpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW4odHlwZTogVHlwZTxhbnk+KSB7XG4gIHJldHVybiAodHlwZSBhcyBhbnkpW1RPS0VOXTtcbn1cblxuZXhwb3J0IGVudW0gSG9zdFR5cGUge1xuICBEaXIgPSAnybVkaXInLFxuICBDbXAgPSAnybVjbXAnLFxufVxuXG50eXBlIElPID0ge3Byb3BOYW1lOiBzdHJpbmcsIHRlbXBsYXRlTmFtZTogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1ldGE8VD4odHlwZTogVHlwZTxUPikge1xuICByZXR1cm4gKHR5cGUgYXMgYW55KVtIb3N0VHlwZS5DbXBdIHx8ICh0eXBlIGFzIGFueSlbSG9zdFR5cGUuRGlyXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0czxUPih0eXBlOiBUeXBlPFQ+KTogSU9bXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllczxzdHJpbmc+KGdldE1ldGEodHlwZSlbJ2lucHV0cyddKVxuICAgIC5tYXAoKFt0ZW1wbGF0ZU5hbWUsIFtwcm9wTmFtZV1dKSA9PiAoe3Byb3BOYW1lLCB0ZW1wbGF0ZU5hbWV9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRwdXRzPFQ+KHR5cGU6IFR5cGU8VD4pOiBJT1tdIHtcbiAgY29uc3QgbWV0YSA9IGdldE1ldGEodHlwZSk7XG4gIHJldHVybiBPYmplY3QuZW50cmllczxzdHJpbmc+KG1ldGFbJ291dHB1dHMnXSlcbiAgICAubWFwKChbdGVtcGxhdGVOYW1lLCBwcm9wTmFtZV0pID0+ICh7cHJvcE5hbWUsIHRlbXBsYXRlTmFtZX0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0c0J5Q29tcG9uZW50UmVmPFQgZXh0ZW5kcyB7fSA9IGFueT4oY21wOiBDb21wb25lbnRSZWY8VD4pOiBJT1tdIHtcbiAgcmV0dXJuIGdldElucHV0cyhjbXAuaW5zdGFuY2UuY29uc3RydWN0b3IgYXMgVHlwZTxUPik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRwdXRzQnlJbnN0YW5jZTxUIGV4dGVuZHMge30gPSBhbnk+KGNtcDogQ29tcG9uZW50UmVmPFQ+KTogSU9bXSB7XG4gIHJldHVybiBnZXRPdXRwdXRzKGNtcC5pbnN0YW5jZS5jb25zdHJ1Y3RvciBhcyBUeXBlPFQ+KTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vIGhvc3Q6IHtuZ1NraXBIeWRyYXRpb246ICd0cnVlJ31cbn0pXG5leHBvcnQgY2xhc3MgSW5qZWN0YWJsZUNvbXBvbmVudDxUID0gYW55PiB7XG4gIHJlYWRvbmx5ICNwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcmVhZG9ubHkgI3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSAjZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAjY29tcG9uZW50OiBDb21wb25lbnRSZWY8VD4gfCBudWxsID0gbnVsbDtcbiAgI2NvbXBvbmVudE1pcnJvcjogQ29tcG9uZW50TWlycm9yPFQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcmVhZG9ubHkgaW5qZWN0YWJsZSA9IGlucHV0KGZhbHNlLCB7dHJhbnNmb3JtOiAodmFsdWU6IGFueSkgPT4gdmFsdWUgPT09ICcnID8gdHJ1ZSA6IHZhbHVlLCBhbGlhczogJ2luamVjdGFibGUnfSk7XG4gIC8vIHJlYWRvbmx5IF9fYWN0aW9uID0gybVvdXRwdXQ8QWN0aW9uPih7YWxpYXM6ICdhY3Rpb24nfSk7XG4gIEBPdXRwdXQoJ2FjdGlvbicpIHJlYWRvbmx5IF9fYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb24+KCk7XG5cbiAgZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24pIHtcbiAgICB0aGlzLl9fYWN0aW9uLmVtaXQoYWN0aW9uKTtcbiAgfVxuXG4gIGdldCAjaW5wdXRzKCk6IElPW10ge1xuICAgIGNvbnN0IGFicyA9IGdldElucHV0cyh0aGlzLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pO1xuICAgIHJldHVybiBhYnM7XG4gIH1cblxuICBnZXQgI291dHB1dHMoKTogSU9bXSB7XG4gICAgY29uc3QgYWJzID0gZ2V0T3V0cHV0cyh0aGlzLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pO1xuICAgIHJldHVybiBhYnM7XG4gICAgLy8gY29uc3QgaW1wbCA9IHRoaXMuI2NvbXBvbmVudE1pcnJvciEub3V0cHV0cztcbiAgICAvLyByZXR1cm4gYWJzLmZpbHRlcihhYnN0cmFjdE91dHB1dCA9PiBpbXBsLnNvbWUoaW1wbE91dHB1dCA9PiBpbXBsT3V0cHV0LnRlbXBsYXRlTmFtZSA9PT0gYWJzdHJhY3RPdXRwdXQudGVtcGxhdGVOYW1lKSk7XG4gIH1cblxuICAjc2V0QXR0cmlidXRlKCkge1xuICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gKHRoaXMuI2NvbXBvbmVudCEuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiBOYW1lZE5vZGVNYXAgPSB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LmF0dHJpYnV0ZXM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlcy5pdGVtKGkpITtcbiAgICAgIGlmIChhdHRyLm5hbWUgPT09ICdpbmplY3RhYmxlJykge1xuICAgICAgICBob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2luamVjdGVkJywgJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2JpbmRJbnB1dHMoKSB7XG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiB0aGlzLiNpbnB1dHMpIHtcbiAgICAgIGlmIChpbnB1dC5wcm9wTmFtZSA9PT0gJ2luamVjdGFibGUnKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IHZhbHVlT3JJbnB1dFZhbHVlRm4gPSB0aGlzW2lucHV0LnByb3BOYW1lXTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIHZhbHVlT3JJbnB1dFZhbHVlRm4gPT09ICdmdW5jdGlvbicgPyB2YWx1ZU9ySW5wdXRWYWx1ZUZuKCkgOiB2YWx1ZU9ySW5wdXRWYWx1ZUZuO1xuICAgICAgdGhpcy4jY29tcG9uZW50IS5zZXRJbnB1dChpbnB1dC50ZW1wbGF0ZU5hbWUsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcHJvcE5hbWVzKCkge1xuICAgIHJldHVybiB0aGlzLiNpbnB1dHMubWFwKGlucHV0ID0+IGlucHV0LnByb3BOYW1lKTtcbiAgfVxuXG4gIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKCkge1xuICAgIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKHRoaXMsIHRoaXMucHJvcE5hbWVzKTtcbiAgfVxuXG4gICNiaW5kT3V0cHV0cygpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0aGlzLiNvdXRwdXRzKSB7XG4gICAgICAodGhpcy4jY29tcG9uZW50IS5pbnN0YW5jZSBhcyBhbnkpW291dHB1dC5wcm9wTmFtZV0/LnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKS5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHRoaXNbb3V0cHV0LnByb3BOYW1lXS5lbWl0KHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgI2JpbmRFdmVudHMoKSB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIFsnY2xpY2snXSkge1xuICAgICAgdGhpcy4jY29tcG9uZW50LmluamVjdG9yLmdldChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQobmFtZSwge30pKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5wcm94eUZha2VDb21wdXRlZElucHV0cygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuaW5qZWN0YWJsZSgpICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMuI3BsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLiNpbmplY3Rvci5nZXQ8VHlwZUZhY3RvcnlBc3luYzxUPj4oZ2V0VG9rZW4odGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpKSgpLnRoZW4odHlwZSA9PiB7XG4gICAgICAgIHRoaXMuI2NvbXBvbmVudCA9IHRoaXMuI3ZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHR5cGUsIHtcbiAgICAgICAgICBwcm9qZWN0YWJsZU5vZGVzOiBbXG4gICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2RlcylcbiAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy4jY29tcG9uZW50TWlycm9yID0gcmVmbGVjdENvbXBvbmVudFR5cGUodHlwZSk7XG4gICAgICAgIHRoaXMuI2JpbmRJbnB1dHMoKTtcbiAgICAgICAgdGhpcy4jYmluZE91dHB1dHMoKTtcbiAgICAgICAgdGhpcy4jYmluZEV2ZW50cygpO1xuICAgICAgICB0aGlzLiNzZXRBdHRyaWJ1dGUoKTtcbiAgICAgICAgLy8gdGhpcy4jdmlld0NvbnRhaW5lclJlZi5yZW1vdmUoMCk7XG4gICAgICAgIHRoaXMuI2NvbXBvbmVudC5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIC8vIHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQucmVtb3ZlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5wcm94eUZha2VDb21wdXRlZElucHV0cygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLmluamVjdGFibGUoKSAmJiB0aGlzLiNjb21wb25lbnRNaXJyb3IpIHtcbiAgICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdGhpcy4jaW5wdXRzKSB7XG4gICAgICAgIGlmIChpbnB1dC5wcm9wTmFtZSA9PT0gJ2luamVjdGFibGUnKSByZXR1cm47XG4gICAgICAgIGNvbnN0IGNoYW5nZSA9IHNpbXBsZUNoYW5nZXNbaW5wdXQucHJvcE5hbWVdIGFzIFNpbXBsZUNoYW5nZTtcbiAgICAgICAgaWYgKGNoYW5nZSkge1xuICAgICAgICAgIHRoaXMuI2NvbXBvbmVudCEuc2V0SW5wdXQoaW5wdXQucHJvcE5hbWUsIGNoYW5nZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Injectable, InjectionToken, runInInjectionContext, Injector, inject, isSignal, computed, Pipe, PLATFORM_ID, ViewContainerRef, DestroyRef, ElementRef, input, ɵoutput as _output, reflectComponentType, Directive } from '@angular/core';
2
+ import { EventEmitter, Injectable, InjectionToken, runInInjectionContext, Injector, inject, isSignal, computed, Pipe, PLATFORM_ID, ViewContainerRef, DestroyRef, ElementRef, input, reflectComponentType, Directive, Output } from '@angular/core';
3
3
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
4
  import { isPlatformBrowser } from '@angular/common';
5
5
 
@@ -227,7 +227,8 @@ class InjectableComponent {
227
227
  #component = null;
228
228
  #componentMirror = null;
229
229
  injectable = input(false, { transform: (value) => value === '' ? true : value, alias: 'injectable' });
230
- __action = _output({ alias: 'action' });
230
+ // readonly __action = ɵoutput<Action>({alias: 'action'});
231
+ __action = new EventEmitter();
231
232
  dispatch(action) {
232
233
  this.__action.emit(action);
233
234
  }
@@ -325,7 +326,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
325
326
  standalone: true,
326
327
  // host: {ngSkipHydration: 'true'}
327
328
  }]
328
- }], ctorParameters: () => [] });
329
+ }], ctorParameters: () => [], propDecorators: { __action: [{
330
+ type: Output,
331
+ args: ['action']
332
+ }] } });
329
333
 
330
334
  const NG_ATOMIC_DEBUG = new InjectionToken('NG_ATOMIC_DEBUG');
331
335
  function withNgAtomicDebug() {
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-core.mjs","sources":["../../../../../packages/@ng-atomic/core/src/lib/action-store.ts","../../../../../packages/@ng-atomic/core/src/lib/action.ts","../../../../../packages/@ng-atomic/core/src/lib/effect.ts","../../../../../packages/@ng-atomic/core/src/lib/signals.ts","../../../../../packages/@ng-atomic/core/src/lib/injectable-component.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 { EventEmitter, Injectable } from \"@angular/core\";\nimport { Action } from \"./action\";\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicRootActionStore {\n readonly actions$ = new EventEmitter<Action>();\n\n constructor() {\n this.actions$.subscribe(action => this.log(action, 'root'));\n }\n\n dispatch(action: Action) {\n this.actions$.emit(action);\n }\n\n log(action: Action, scope: string = 'default') {\n console.debug(action, scope);\n }\n}\n","export 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\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","import { Injectable, 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 = 'default'): { 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 = 'default'): boolean {\n return super.has(this.makeKey(key, scope));\n }\n\n private makeKey(key: string, scope = 'default') {\n return `[${scope}]#${key}`;\n }\n}\n\nexport function Effect(id: string, {\n dispatch = false,\n scope = 'default',\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>('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 const effectFactory = (hostInjector: Injector) => {\n return runInInjectionContext(hostInjector, () => _effectFactory(injector));\n };\n return { actionIds: ActionIds, effectFactory, options };\n },\n\t\tmulti: true,\n\t\tdeps: [Injector]\n\t};\n}\n\nexport function injectEffectEntries(): EffectEntry[] {\n\treturn inject<EffectEntry[]>(EFFECT_ENTRY, {optional: true}) ?? [];\n}\n\nfunction buildEffectEntryMap(injector: Injector, effectEntries: EffectEntry[]) {\n const effectEntryMap = new Map<string, {effect: 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 effect = () => entry.effectFactory(injector);\n effectEntryMap.set(id, { effect, options: entry.options });\n }\n }\n\n return effectEntryMap;\n}\n\n@Injectable()\nexport class EffectReducer {\n readonly injector = inject(Injector);\n\treadonly effectEntries = injectEffectEntries();\n readonly effectEntryMap = buildEffectEntryMap(this.injector, this.effectEntries);\n\n\tasync reduce(action: Action): Promise<EffectFunctionOptions> {\n const entry = this.effectEntryMap.get(action.id);\n if (entry) {\n await runInInjectionContext(this.injector, () => {\n return entry?.effect()(action.payload, {injector: this.injector});\n });\n return this.effectEntryMap.get(action.id)?.options ?? {dispatch: false};\n }\n return {dispatch: true};\n\t}\n}\n\nexport function injectEffectReducer() {\n const injector = inject(Injector);\n\tconst effectEntries = injectEffectEntries();\n const effectEntryMap = buildEffectEntryMap(injector, effectEntries);\n\n return async (action: Action) => {\n const entry = effectEntryMap.get(action.id);\n if (entry) {\n await runInInjectionContext(injector, () => {\n return entry?.effect()(action.payload, {injector: injector});\n });\n return effectEntryMap.get(action.id)?.options ?? {dispatch: false};\n }\n return {dispatch: true};\n\t}\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 { ComponentMirror, ComponentRef, DestroyRef, Directive, ɵoutput, ElementRef, EmbeddedViewRef, InjectionToken, Injector, SimpleChange, SimpleChanges, Type, ViewContainerRef, inject, input, PLATFORM_ID } from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { reflectComponentType } 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> {\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\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.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 { 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 } 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 {\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 { DestroyRef, Directive, ElementRef, inject } from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Action } from \"./action\";\nimport { InjectableComponent } from \"./injectable-component\";\nimport { EffectMap, injectEffectEntries, injectEffectReducer } from \"./effect\";\nimport { NgAtomicRootActionStore } from \"./action-store\";\nimport { DebugDirective } from './debug';\n\n@Directive({\n standalone: true,\n hostDirectives: [\n DebugDirective,\n ],\n})\nexport class NgAtomicComponent<T = any> extends InjectableComponent<T> {\n protected effectEntries = injectEffectEntries();\n protected reducer = injectEffectReducer();\n protected _effectMap: EffectMap;\n protected root = inject(NgAtomicRootActionStore);\n #destroyRef = inject(DestroyRef);\n #el = inject(ElementRef);\n\n constructor() {\n super();\n this.root.actions$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(action => {\n this.#effect(action, 'root');\n });\n }\n\n async dispatch(action: Action, scope = 'default', componentId: string | number | null = null) {\n const selector = this.#el.nativeElement.tagName.toLowerCase();\n const _action = {...action, meta: {componentId, selector}};\n\n const props = await this.reducer(_action);\n if (props?.dispatch === false) return;\n\n const effect = this.#effect(_action, scope);\n this.root.log(_action, scope);\n\n if (scope === 'root' && (!effect?.props || effect?.props?.dispatch)) {\n this.root.actions$.emit(_action);\n } else if (!effect?.props || effect?.props?.dispatch) {\n super.dispatch(_action);\n }\n }\n\n #effect(action: Action, scope = 'default') {\n const effect = (this._effectMap ?? new EffectMap()).get(action.id, scope);\n if (effect?.key && effect?.props?.scope === scope) {\n this[effect.key](effect.props.accessor(action));\n }\n return effect;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ɵoutput","i1.DebugDirective"],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-core.mjs","sources":["../../../../../packages/@ng-atomic/core/src/lib/action-store.ts","../../../../../packages/@ng-atomic/core/src/lib/action.ts","../../../../../packages/@ng-atomic/core/src/lib/effect.ts","../../../../../packages/@ng-atomic/core/src/lib/signals.ts","../../../../../packages/@ng-atomic/core/src/lib/injectable-component.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 { EventEmitter, Injectable } from \"@angular/core\";\nimport { Action } from \"./action\";\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicRootActionStore {\n readonly actions$ = new EventEmitter<Action>();\n\n constructor() {\n this.actions$.subscribe(action => this.log(action, 'root'));\n }\n\n dispatch(action: Action) {\n this.actions$.emit(action);\n }\n\n log(action: Action, scope: string = 'default') {\n console.debug(action, scope);\n }\n}\n","export 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\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","import { Injectable, 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 = 'default'): { 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 = 'default'): boolean {\n return super.has(this.makeKey(key, scope));\n }\n\n private makeKey(key: string, scope = 'default') {\n return `[${scope}]#${key}`;\n }\n}\n\nexport function Effect(id: string, {\n dispatch = false,\n scope = 'default',\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>('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 const effectFactory = (hostInjector: Injector) => {\n return runInInjectionContext(hostInjector, () => _effectFactory(injector));\n };\n return { actionIds: ActionIds, effectFactory, options };\n },\n\t\tmulti: true,\n\t\tdeps: [Injector]\n\t};\n}\n\nexport function injectEffectEntries(): EffectEntry[] {\n\treturn inject<EffectEntry[]>(EFFECT_ENTRY, {optional: true}) ?? [];\n}\n\nfunction buildEffectEntryMap(injector: Injector, effectEntries: EffectEntry[]) {\n const effectEntryMap = new Map<string, {effect: 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 effect = () => entry.effectFactory(injector);\n effectEntryMap.set(id, { effect, options: entry.options });\n }\n }\n\n return effectEntryMap;\n}\n\n@Injectable()\nexport class EffectReducer {\n readonly injector = inject(Injector);\n\treadonly effectEntries = injectEffectEntries();\n readonly effectEntryMap = buildEffectEntryMap(this.injector, this.effectEntries);\n\n\tasync reduce(action: Action): Promise<EffectFunctionOptions> {\n const entry = this.effectEntryMap.get(action.id);\n if (entry) {\n await runInInjectionContext(this.injector, () => {\n return entry?.effect()(action.payload, {injector: this.injector});\n });\n return this.effectEntryMap.get(action.id)?.options ?? {dispatch: false};\n }\n return {dispatch: true};\n\t}\n}\n\nexport function injectEffectReducer() {\n const injector = inject(Injector);\n\tconst effectEntries = injectEffectEntries();\n const effectEntryMap = buildEffectEntryMap(injector, effectEntries);\n\n return async (action: Action) => {\n const entry = effectEntryMap.get(action.id);\n if (entry) {\n await runInInjectionContext(injector, () => {\n return entry?.effect()(action.payload, {injector: injector});\n });\n return effectEntryMap.get(action.id)?.options ?? {dispatch: false};\n }\n return {dispatch: true};\n\t}\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 } 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> {\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.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 { 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 } 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 {\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 { DestroyRef, Directive, ElementRef, inject } from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Action } from \"./action\";\nimport { InjectableComponent } from \"./injectable-component\";\nimport { EffectMap, injectEffectEntries, injectEffectReducer } from \"./effect\";\nimport { NgAtomicRootActionStore } from \"./action-store\";\nimport { DebugDirective } from './debug';\n\n@Directive({\n standalone: true,\n hostDirectives: [\n DebugDirective,\n ],\n})\nexport class NgAtomicComponent<T = any> extends InjectableComponent<T> {\n protected effectEntries = injectEffectEntries();\n protected reducer = injectEffectReducer();\n protected _effectMap: EffectMap;\n protected root = inject(NgAtomicRootActionStore);\n #destroyRef = inject(DestroyRef);\n #el = inject(ElementRef);\n\n constructor() {\n super();\n this.root.actions$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(action => {\n this.#effect(action, 'root');\n });\n }\n\n async dispatch(action: Action, scope = 'default', componentId: string | number | null = null) {\n const selector = this.#el.nativeElement.tagName.toLowerCase();\n const _action = {...action, meta: {componentId, selector}};\n\n const props = await this.reducer(_action);\n if (props?.dispatch === false) return;\n\n const effect = this.#effect(_action, scope);\n this.root.log(_action, scope);\n\n if (scope === 'root' && (!effect?.props || effect?.props?.dispatch)) {\n this.root.actions$.emit(_action);\n } else if (!effect?.props || effect?.props?.dispatch) {\n super.dispatch(_action);\n }\n }\n\n #effect(action: Action, scope = 'default') {\n const effect = (this._effectMap ?? new EffectMap()).get(action.id, scope);\n if (effect?.key && effect?.props?.scope === scope) {\n this[effect.key](effect.props.accessor(action));\n }\n return effect;\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,4 +1,4 @@
1
- import { ComponentRef, SimpleChanges, Type } from "@angular/core";
1
+ import { ComponentRef, SimpleChanges, Type, EventEmitter } from "@angular/core";
2
2
  import { Action } from "./action";
3
3
  import * as i0 from "@angular/core";
4
4
  export type TypeFactoryAsync<T> = () => Promise<Type<T>>;
@@ -26,7 +26,7 @@ export declare function getOutputsByInstance<T extends {} = any>(cmp: ComponentR
26
26
  export declare class InjectableComponent<T = any> {
27
27
  #private;
28
28
  readonly injectable: import("@angular/core").InputSignalWithTransform<any, any>;
29
- readonly __action: import("@angular/core").ɵOutputEmitter<Action<any>>;
29
+ readonly __action: EventEmitter<Action<any>>;
30
30
  dispatch(action: Action): void;
31
31
  get propNames(): string[];
32
32
  proxyFakeComputedInputs(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-atomic/core",
3
- "version": "17.0.0",
3
+ "version": "17.0.1",
4
4
  "homepage": "https://github.com/xx-machina/plaform/tree/main/packages/@ng-atomic/core",
5
5
  "repository": {
6
6
  "type": "git",