@ng-atomic/core 17.0.2 → 17.0.3
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/esm2022/lib/effect.mjs
CHANGED
|
@@ -16,8 +16,8 @@ export class EffectMap extends Map {
|
|
|
16
16
|
}
|
|
17
17
|
export function Effect(id, { dispatch = false, scope = 'default', accessor = (action) => action.payload, } = {}) {
|
|
18
18
|
return function (target, propertyKey, descriptor) {
|
|
19
|
-
target['
|
|
20
|
-
target['
|
|
19
|
+
target['effectMap'] ??= new EffectMap();
|
|
20
|
+
target['effectMap'].set(id, { key: propertyKey, props: { dispatch, scope, accessor } });
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
23
|
export const EFFECT_ENTRY = new InjectionToken('EFFECT_ENTRY');
|
|
@@ -83,4 +83,4 @@ export function injectEffectReducer() {
|
|
|
83
83
|
return { dispatch: true };
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvZWZmZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBWSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzlHLE1BQU0sT0FBTyxTQUFVLFNBQVEsR0FBOEM7SUFDbEUsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUEyQztRQUNuRSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUM1QyxPQUFPLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsRUFBVSxFQUFFLEVBQ2pDLFFBQVEsR0FBRyxLQUFLLEVBQ2hCLEtBQUssR0FBRyxTQUFTLEVBQ2pCLFFBQVEsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxD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amVjdGlvblRva2VuLCBJbmplY3RvciwgUHJvdmlkZXIsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCIuL2FjdGlvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVmZmVjdFByb3BzIHtcbiAgZGlzcGF0Y2g6IGJvb2xlYW47XG4gIHNjb3BlOiBzdHJpbmc7XG4gIGFjY2Vzc29yOiAoYWN0aW9uOiBBY3Rpb24pID0+IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEVmZmVjdE1hcCBleHRlbmRzIE1hcDxzdHJpbmcsIHtrZXk6IHN0cmluZywgcHJvcHM6IEVmZmVjdFByb3BzfT4ge1xuICBvdmVycmlkZSBnZXQoa2V5OiBzdHJpbmcsIHNjb3BlID0gJ2RlZmF1bHQnKTogeyBrZXk6IHN0cmluZzsgcHJvcHM6IEVmZmVjdFByb3BzOyB9IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KHRoaXMubWFrZUtleShrZXksIHNjb3BlKSkhOyBcbiAgfVxuXG4gIG92ZXJyaWRlIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHsga2V5OiBzdHJpbmc7IHByb3BzOiBFZmZlY3RQcm9wczsgfSk6IHRoaXMge1xuICAgIHJldHVybiBzdXBlci5zZXQodGhpcy5tYWtlS2V5KGtleSwgdmFsdWUucHJvcHMuc2NvcGUpLCB2YWx1ZSk7XG4gIH1cblxuICBvdmVycmlkZSBoYXMoa2V5OiBzdHJpbmcsIHNjb3BlID0gJ2RlZmF1bHQnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmhhcyh0aGlzLm1ha2VLZXkoa2V5LCBzY29wZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlS2V5KGtleTogc3RyaW5nLCBzY29wZSA9ICdkZWZhdWx0Jykge1xuICAgIHJldHVybiBgWyR7c2NvcGV9XSMke2tleX1gO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFZmZlY3QoaWQ6IHN0cmluZywge1xuICBkaXNwYXRjaCA9IGZhbHNlLFxuICBzY29wZSA9ICdkZWZhdWx0JyxcbiAgYWNjZXNzb3IgPSAoYWN0aW9uOiBBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkLFxufTogUGFydGlhbDxFZmZlY3RQcm9wcz4gPSB7fSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICB0YXJnZXRbJ19lZmZlY3RNYXAnXSA/Pz0gbmV3IEVmZmVjdE1hcCgpO1xuICAgIHRhcmdldFsnX2VmZmVjdE1hcCddLnNldChpZCwge2tleTogcHJvcGVydHlLZXksIHByb3BzOiB7ZGlzcGF0Y2gsIHNjb3BlLCBhY2Nlc3Nvcn19KTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFZmZlY3RGdW5jdGlvbk9wdGlvbnMge1xuICBkaXNwYXRjaD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWZmZWN0Q29udGV4dCB7XG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG59XG5cbmV4cG9ydCB0eXBlIEVmZmVjdEZ1bmN0aW9uID0gKHBheWxvYWQ/OiBhbnksIGNvbnRleHQ/OiBFZmZlY3RDb250ZXh0KSA9PiBhbnkgfCBQcm9taXNlPGFueT47XG5leHBvcnQgdHlwZSBFZmZlY3RGdW5jdGlvbkZhY3RvcnkgPSAoaG9zdEluamVjdG9yPzogSW5qZWN0b3IpID0+IEVmZmVjdEZ1bmN0aW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVmZmVjdEVudHJ5IHtcblx0YWN0aW9uSWRzOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgZWZmZWN0RmFjdG9yeT86IEVmZmVjdEZ1bmN0aW9uRmFjdG9yeTtcbiAgb3B0aW9ucz86IEVmZmVjdEZ1bmN0aW9uT3B0aW9ucztcbn1cblxuZXhwb3J0IGNvbnN0IEVGRkVDVF9FTlRSWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFZmZlY3RFbnRyeT4oJ0VGRkVDVF9FTlRSWScpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVmZmVjdChcbiAgQWN0aW9uSWRzOiBzdHJpbmdbXSB8IHN0cmluZyxcbiAgX2VmZmVjdEZhY3Rvcnk6IChpbmplY3RvcjogSW5qZWN0b3IpID0+IEVmZmVjdEZ1bmN0aW9uLFxuICBvcHRpb25zOiBFZmZlY3RGdW5jdGlvbk9wdGlvbnMgPSB7ZGlzcGF0Y2g6IGZhbHNlfSxcbik6IFByb3ZpZGVyIHtcblx0cmV0dXJuIHtcblx0XHRwcm92aWRlOiBFRkZFQ1RfRU5UUlksXG5cdFx0dXNlRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgY29uc3QgZWZmZWN0RmFjdG9yeSA9IChob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaG9zdEluamVjdG9yLCAoKSA9PiBfZWZmZWN0RmFjdG9yeShpbmplY3RvcikpO1xuICAgICAgfTtcbiAgICAgIHJldHVybiB7IGFjdGlvbklkczogQWN0aW9uSWRzLCBlZmZlY3RGYWN0b3J5LCBvcHRpb25zIH07XG4gICAgfSxcblx0XHRtdWx0aTogdHJ1ZSxcblx0XHRkZXBzOiBbSW5qZWN0b3JdXG5cdH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RFZmZlY3RFbnRyaWVzKCk6IEVmZmVjdEVudHJ5W10ge1xuXHRyZXR1cm4gaW5qZWN0PEVmZmVjdEVudHJ5W10+KEVGRkVDVF9FTlRSWSwge29wdGlvbmFsOiB0cnVlfSkgPz8gW107XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRWZmZWN0RW50cnlNYXAoaW5qZWN0b3I6IEluamVjdG9yLCBlZmZlY3RFbnRyaWVzOiBFZmZlY3RFbnRyeVtdKSB7XG4gIGNvbnN0IGVmZmVjdEVudHJ5TWFwID0gbmV3IE1hcDxzdHJpbmcsIHtlZmZlY3Q6IEVmZmVjdEZ1bmN0aW9uLCBvcHRpb25zOiBFZmZlY3RGdW5jdGlvbk9wdGlvbnN9PigpO1xuXG4gIGZvciAoY29uc3QgZW50cnkgb2YgZWZmZWN0RW50cmllcykge1xuICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoZW50cnkuYWN0aW9uSWRzKSA/IGVudHJ5LmFjdGlvbklkcyA6IFtlbnRyeS5hY3Rpb25JZHNdO1xuICAgIGZvciAoY29uc3QgaWQgb2YgaWRzKSB7XG4gICAgICBjb25zdCBlZmZlY3QgPSAoKSA9PiBlbnRyeS5lZmZlY3RGYWN0b3J5KGluamVjdG9yKTtcbiAgICAgIGVmZmVjdEVudHJ5TWFwLnNldChpZCwgeyBlZmZlY3QsIG9wdGlvbnM6IGVudHJ5Lm9wdGlvbnMgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGVmZmVjdEVudHJ5TWFwO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRWZmZWN0UmVkdWNlciB7XG4gIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblx0cmVhZG9ubHkgZWZmZWN0RW50cmllcyA9IGluamVjdEVmZmVjdEVudHJpZXMoKTtcbiAgcmVhZG9ubHkgZWZmZWN0RW50cnlNYXAgPSBidWlsZEVmZmVjdEVudHJ5TWFwKHRoaXMuaW5qZWN0b3IsIHRoaXMuZWZmZWN0RW50cmllcyk7XG5cblx0YXN5bmMgcmVkdWNlKGFjdGlvbjogQWN0aW9uKTogUHJvbWlzZTxFZmZlY3RGdW5jdGlvbk9wdGlvbnM+IHtcbiAgICBjb25zdCBlbnRyeSA9IHRoaXMuZWZmZWN0RW50cnlNYXAuZ2V0KGFjdGlvbi5pZCk7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICBhd2FpdCBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gZW50cnk/LmVmZmVjdCgpKGFjdGlvbi5wYXlsb2FkLCB7aW5qZWN0b3I6IHRoaXMuaW5qZWN0b3J9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMuZWZmZWN0RW50cnlNYXAuZ2V0KGFjdGlvbi5pZCk/Lm9wdGlvbnMgPz8ge2Rpc3BhdGNoOiBmYWxzZX07XG4gICAgfVxuICAgIHJldHVybiB7ZGlzcGF0Y2g6IHRydWV9O1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RFZmZlY3RSZWR1Y2VyKCkge1xuICBjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdGNvbnN0IGVmZmVjdEVudHJpZXMgPSBpbmplY3RFZmZlY3RFbnRyaWVzKCk7XG4gIGNvbnN0IGVmZmVjdEVudHJ5TWFwID0gYnVpbGRFZmZlY3RFbnRyeU1hcChpbmplY3RvciwgZWZmZWN0RW50cmllcyk7XG5cbiAgcmV0dXJuIGFzeW5jIChhY3Rpb246IEFjdGlvbikgPT4ge1xuICAgIGNvbnN0IGVudHJ5ID0gZWZmZWN0RW50cnlNYXAuZ2V0KGFjdGlvbi5pZCk7XG4gICAgaWYgKGVudHJ5KSB7XG4gICAgICBhd2FpdCBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGVudHJ5Py5lZmZlY3QoKShhY3Rpb24ucGF5bG9hZCwge2luamVjdG9yOiBpbmplY3Rvcn0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gZWZmZWN0RW50cnlNYXAuZ2V0KGFjdGlvbi5pZCk/Lm9wdGlvbnMgPz8ge2Rpc3BhdGNoOiBmYWxzZX07XG4gICAgfVxuICAgIHJldHVybiB7ZGlzcGF0Y2g6IHRydWV9O1xuXHR9XG59XG4iXX0=
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvZWZmZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBWSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzlHLE1BQU0sT0FBTyxTQUFVLFNBQVEsR0FBOEM7SUFDbEUsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUEyQztRQUNuRSxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUN6QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFLLEdBQUcsU0FBUztRQUM1QyxPQUFPLElBQUksS0FBSyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsRUFBVSxFQUFFLEVBQ2pDLFFBQVEsR0FBRyxLQUFLLEVBQ2hCLEtBQUssR0FBRyxTQUFTLEVBQ2pCLFFBQVEsR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQUMsTUFBTSxD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amVjdGlvblRva2VuLCBJbmplY3RvciwgUHJvdmlkZXIsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gXCIuL2FjdGlvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVmZmVjdFByb3BzIHtcbiAgZGlzcGF0Y2g6IGJvb2xlYW47XG4gIHNjb3BlOiBzdHJpbmc7XG4gIGFjY2Vzc29yOiAoYWN0aW9uOiBBY3Rpb24pID0+IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEVmZmVjdE1hcCBleHRlbmRzIE1hcDxzdHJpbmcsIHtrZXk6IHN0cmluZywgcHJvcHM6IEVmZmVjdFByb3BzfT4ge1xuICBvdmVycmlkZSBnZXQoa2V5OiBzdHJpbmcsIHNjb3BlID0gJ2RlZmF1bHQnKTogeyBrZXk6IHN0cmluZzsgcHJvcHM6IEVmZmVjdFByb3BzOyB9IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KHRoaXMubWFrZUtleShrZXksIHNjb3BlKSkhOyBcbiAgfVxuXG4gIG92ZXJyaWRlIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHsga2V5OiBzdHJpbmc7IHByb3BzOiBFZmZlY3RQcm9wczsgfSk6IHRoaXMge1xuICAgIHJldHVybiBzdXBlci5zZXQodGhpcy5tYWtlS2V5KGtleSwgdmFsdWUucHJvcHMuc2NvcGUpLCB2YWx1ZSk7XG4gIH1cblxuICBvdmVycmlkZSBoYXMoa2V5OiBzdHJpbmcsIHNjb3BlID0gJ2RlZmF1bHQnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cGVyLmhhcyh0aGlzLm1ha2VLZXkoa2V5LCBzY29wZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlS2V5KGtleTogc3RyaW5nLCBzY29wZSA9ICdkZWZhdWx0Jykge1xuICAgIHJldHVybiBgWyR7c2NvcGV9XSMke2tleX1gO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFZmZlY3QoaWQ6IHN0cmluZywge1xuICBkaXNwYXRjaCA9IGZhbHNlLFxuICBzY29wZSA9ICdkZWZhdWx0JyxcbiAgYWNjZXNzb3IgPSAoYWN0aW9uOiBBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkLFxufTogUGFydGlhbDxFZmZlY3RQcm9wcz4gPSB7fSkge1xuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICB0YXJnZXRbJ2VmZmVjdE1hcCddID8/PSBuZXcgRWZmZWN0TWFwKCk7XG4gICAgdGFyZ2V0WydlZmZlY3RNYXAnXS5zZXQoaWQsIHtrZXk6IHByb3BlcnR5S2V5LCBwcm9wczoge2Rpc3BhdGNoLCBzY29wZSwgYWNjZXNzb3J9fSk7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWZmZWN0RnVuY3Rpb25PcHRpb25zIHtcbiAgZGlzcGF0Y2g/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVmZmVjdENvbnRleHQge1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xufVxuXG5leHBvcnQgdHlwZSBFZmZlY3RGdW5jdGlvbiA9IChwYXlsb2FkPzogYW55LCBjb250ZXh0PzogRWZmZWN0Q29udGV4dCkgPT4gYW55IHwgUHJvbWlzZTxhbnk+O1xuZXhwb3J0IHR5cGUgRWZmZWN0RnVuY3Rpb25GYWN0b3J5ID0gKGhvc3RJbmplY3Rvcj86IEluamVjdG9yKSA9PiBFZmZlY3RGdW5jdGlvbjtcblxuZXhwb3J0IGludGVyZmFjZSBFZmZlY3RFbnRyeSB7XG5cdGFjdGlvbklkczogc3RyaW5nIHwgc3RyaW5nW107XG4gIGVmZmVjdEZhY3Rvcnk/OiBFZmZlY3RGdW5jdGlvbkZhY3Rvcnk7XG4gIG9wdGlvbnM/OiBFZmZlY3RGdW5jdGlvbk9wdGlvbnM7XG59XG5cbmV4cG9ydCBjb25zdCBFRkZFQ1RfRU5UUlkgPSBuZXcgSW5qZWN0aW9uVG9rZW48RWZmZWN0RW50cnk+KCdFRkZFQ1RfRU5UUlknKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVFZmZlY3QoXG4gIEFjdGlvbklkczogc3RyaW5nW10gfCBzdHJpbmcsXG4gIF9lZmZlY3RGYWN0b3J5OiAoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBFZmZlY3RGdW5jdGlvbixcbiAgb3B0aW9uczogRWZmZWN0RnVuY3Rpb25PcHRpb25zID0ge2Rpc3BhdGNoOiBmYWxzZX0sXG4pOiBQcm92aWRlciB7XG5cdHJldHVybiB7XG5cdFx0cHJvdmlkZTogRUZGRUNUX0VOVFJZLFxuXHRcdHVzZUZhY3Rvcnk6IChpbmplY3RvcjogSW5qZWN0b3IpID0+IHtcbiAgICAgIGNvbnN0IGVmZmVjdEZhY3RvcnkgPSAoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGhvc3RJbmplY3RvciwgKCkgPT4gX2VmZmVjdEZhY3RvcnkoaW5qZWN0b3IpKTtcbiAgICAgIH07XG4gICAgICByZXR1cm4geyBhY3Rpb25JZHM6IEFjdGlvbklkcywgZWZmZWN0RmFjdG9yeSwgb3B0aW9ucyB9O1xuICAgIH0sXG5cdFx0bXVsdGk6IHRydWUsXG5cdFx0ZGVwczogW0luamVjdG9yXVxuXHR9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RWZmZWN0RW50cmllcygpOiBFZmZlY3RFbnRyeVtdIHtcblx0cmV0dXJuIGluamVjdDxFZmZlY3RFbnRyeVtdPihFRkZFQ1RfRU5UUlksIHtvcHRpb25hbDogdHJ1ZX0pID8/IFtdO1xufVxuXG5mdW5jdGlvbiBidWlsZEVmZmVjdEVudHJ5TWFwKGluamVjdG9yOiBJbmplY3RvciwgZWZmZWN0RW50cmllczogRWZmZWN0RW50cnlbXSkge1xuICBjb25zdCBlZmZlY3RFbnRyeU1hcCA9IG5ldyBNYXA8c3RyaW5nLCB7ZWZmZWN0OiBFZmZlY3RGdW5jdGlvbiwgb3B0aW9uczogRWZmZWN0RnVuY3Rpb25PcHRpb25zfT4oKTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIGVmZmVjdEVudHJpZXMpIHtcbiAgICBjb25zdCBpZHMgPSBBcnJheS5pc0FycmF5KGVudHJ5LmFjdGlvbklkcykgPyBlbnRyeS5hY3Rpb25JZHMgOiBbZW50cnkuYWN0aW9uSWRzXTtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIGlkcykge1xuICAgICAgY29uc3QgZWZmZWN0ID0gKCkgPT4gZW50cnkuZWZmZWN0RmFjdG9yeShpbmplY3Rvcik7XG4gICAgICBlZmZlY3RFbnRyeU1hcC5zZXQoaWQsIHsgZWZmZWN0LCBvcHRpb25zOiBlbnRyeS5vcHRpb25zIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBlZmZlY3RFbnRyeU1hcDtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVmZmVjdFJlZHVjZXIge1xuICByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdHJlYWRvbmx5IGVmZmVjdEVudHJpZXMgPSBpbmplY3RFZmZlY3RFbnRyaWVzKCk7XG4gIHJlYWRvbmx5IGVmZmVjdEVudHJ5TWFwID0gYnVpbGRFZmZlY3RFbnRyeU1hcCh0aGlzLmluamVjdG9yLCB0aGlzLmVmZmVjdEVudHJpZXMpO1xuXG5cdGFzeW5jIHJlZHVjZShhY3Rpb246IEFjdGlvbik6IFByb21pc2U8RWZmZWN0RnVuY3Rpb25PcHRpb25zPiB7XG4gICAgY29uc3QgZW50cnkgPSB0aGlzLmVmZmVjdEVudHJ5TWFwLmdldChhY3Rpb24uaWQpO1xuICAgIGlmIChlbnRyeSkge1xuICAgICAgYXdhaXQgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGVudHJ5Py5lZmZlY3QoKShhY3Rpb24ucGF5bG9hZCwge2luamVjdG9yOiB0aGlzLmluamVjdG9yfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0aGlzLmVmZmVjdEVudHJ5TWFwLmdldChhY3Rpb24uaWQpPy5vcHRpb25zID8/IHtkaXNwYXRjaDogZmFsc2V9O1xuICAgIH1cbiAgICByZXR1cm4ge2Rpc3BhdGNoOiB0cnVlfTtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0RWZmZWN0UmVkdWNlcigpIHtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXHRjb25zdCBlZmZlY3RFbnRyaWVzID0gaW5qZWN0RWZmZWN0RW50cmllcygpO1xuICBjb25zdCBlZmZlY3RFbnRyeU1hcCA9IGJ1aWxkRWZmZWN0RW50cnlNYXAoaW5qZWN0b3IsIGVmZmVjdEVudHJpZXMpO1xuXG4gIHJldHVybiBhc3luYyAoYWN0aW9uOiBBY3Rpb24pID0+IHtcbiAgICBjb25zdCBlbnRyeSA9IGVmZmVjdEVudHJ5TWFwLmdldChhY3Rpb24uaWQpO1xuICAgIGlmIChlbnRyeSkge1xuICAgICAgYXdhaXQgcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiBlbnRyeT8uZWZmZWN0KCkoYWN0aW9uLnBheWxvYWQsIHtpbmplY3RvcjogaW5qZWN0b3J9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGVmZmVjdEVudHJ5TWFwLmdldChhY3Rpb24uaWQpPy5vcHRpb25zID8/IHtkaXNwYXRjaDogZmFsc2V9O1xuICAgIH1cbiAgICByZXR1cm4ge2Rpc3BhdGNoOiB0cnVlfTtcblx0fVxufVxuIl19
|
|
@@ -9,7 +9,7 @@ import * as i1 from "./debug/debug.directive";
|
|
|
9
9
|
export class NgAtomicComponent extends InjectableComponent {
|
|
10
10
|
effectEntries = injectEffectEntries();
|
|
11
11
|
reducer = injectEffectReducer();
|
|
12
|
-
|
|
12
|
+
effectMap;
|
|
13
13
|
root = inject(NgAtomicRootActionStore);
|
|
14
14
|
#destroyRef = inject(DestroyRef);
|
|
15
15
|
#el = inject(ElementRef);
|
|
@@ -35,7 +35,7 @@ export class NgAtomicComponent extends InjectableComponent {
|
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
effect(action, scope = 'default') {
|
|
38
|
-
const effect = (this.
|
|
38
|
+
const effect = (this.effectMap ?? new EffectMap()).get(action.id, scope);
|
|
39
39
|
if (effect?.key && effect?.props?.scope === scope) {
|
|
40
40
|
this[effect.key](effect.props.accessor(action));
|
|
41
41
|
}
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
53
53
|
],
|
|
54
54
|
}]
|
|
55
55
|
}], ctorParameters: () => [] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29yZS9zcmMvbGliL25nLWF0b21pYy1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUM7OztBQVF6QyxNQUFNLE9BQU8saUJBQTJCLFNBQVEsbUJBQXNCO0lBQzFELGFBQWEsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0lBQ3RDLE9BQU8sR0FBRyxtQkFBbUIsRUFBRSxDQUFDO0lBQ2hDLFNBQVMsQ0FBWTtJQUNyQixJQUFJLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDakQsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXpCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQy9FLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBYyxFQUFFLEtBQUssR0FBRyxTQUFTLEVBQUUsY0FBc0MsSUFBSTtRQUMxRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUQsTUFBTSxPQUFPLEdBQUcsRUFBQyxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBQyxXQUFXLEVBQUUsUUFBUSxFQUFDLEVBQUMsQ0FBQztRQUUzRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsSUFBSSxLQUFLLEVBQUUsUUFBUSxLQUFLLEtBQUs7WUFBRSxPQUFPO1FBRXRDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU5QixJQUFJLEtBQUssS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLElBQUksTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBRTtZQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEM7YUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssSUFBSSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtZQUNwRCxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVTLE1BQU0sQ0FBQyxNQUFjLEVBQUUsS0FBSyxHQUFHLFNBQVM7UUFDaEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6RSxJQUFJLE1BQU0sRUFBRSxHQUFHLElBQUksTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssS0FBSyxFQUFFO1lBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNqRDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7dUdBdENVLGlCQUFpQjsyRkFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixjQUFjLEVBQUU7d0JBQ2QsY0FBYztxQkFDZjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcIi4vYWN0aW9uXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vaW5qZWN0YWJsZS1jb21wb25lbnRcIjtcbmltcG9ydCB7IEVmZmVjdE1hcCwgaW5qZWN0RWZmZWN0RW50cmllcywgaW5qZWN0RWZmZWN0UmVkdWNlciB9IGZyb20gXCIuL2VmZmVjdFwiO1xuaW1wb3J0IHsgTmdBdG9taWNSb290QWN0aW9uU3RvcmUgfSBmcm9tIFwiLi9hY3Rpb24tc3RvcmVcIjtcbmltcG9ydCB7IERlYnVnRGlyZWN0aXZlIH0gZnJvbSAnLi9kZWJ1Zyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIERlYnVnRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ0F0b21pY0NvbXBvbmVudDxUID0gYW55PiBleHRlbmRzIEluamVjdGFibGVDb21wb25lbnQ8VD4ge1xuICBwcm90ZWN0ZWQgZWZmZWN0RW50cmllcyA9IGluamVjdEVmZmVjdEVudHJpZXMoKTtcbiAgcHJvdGVjdGVkIHJlZHVjZXIgPSBpbmplY3RFZmZlY3RSZWR1Y2VyKCk7XG4gIHByb3RlY3RlZCBlZmZlY3RNYXA6IEVmZmVjdE1hcDtcbiAgcHJvdGVjdGVkIHJvb3QgPSBpbmplY3QoTmdBdG9taWNSb290QWN0aW9uU3RvcmUpO1xuICAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgI2VsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5yb290LmFjdGlvbnMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoYWN0aW9uID0+IHtcbiAgICAgIHRoaXMuZWZmZWN0KGFjdGlvbiwgJ3Jvb3QnKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uLCBzY29wZSA9ICdkZWZhdWx0JywgY29tcG9uZW50SWQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsKSB7XG4gICAgY29uc3Qgc2VsZWN0b3IgPSB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBfYWN0aW9uID0gey4uLmFjdGlvbiwgbWV0YToge2NvbXBvbmVudElkLCBzZWxlY3Rvcn19O1xuXG4gICAgY29uc3QgcHJvcHMgPSBhd2FpdCB0aGlzLnJlZHVjZXIoX2FjdGlvbik7XG4gICAgaWYgKHByb3BzPy5kaXNwYXRjaCA9PT0gZmFsc2UpIHJldHVybjtcblxuICAgIGNvbnN0IGVmZmVjdCA9IHRoaXMuZWZmZWN0KF9hY3Rpb24sIHNjb3BlKTtcbiAgICB0aGlzLnJvb3QubG9nKF9hY3Rpb24sIHNjb3BlKTtcblxuICAgIGlmIChzY29wZSA9PT0gJ3Jvb3QnICYmICghZWZmZWN0Py5wcm9wcyB8fCBlZmZlY3Q/LnByb3BzPy5kaXNwYXRjaCkpIHtcbiAgICAgIHRoaXMucm9vdC5hY3Rpb25zJC5lbWl0KF9hY3Rpb24pO1xuICAgIH0gZWxzZSBpZiAoIWVmZmVjdD8ucHJvcHMgfHwgZWZmZWN0Py5wcm9wcz8uZGlzcGF0Y2gpIHtcbiAgICAgIHN1cGVyLmRpc3BhdGNoKF9hY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBlZmZlY3QoYWN0aW9uOiBBY3Rpb24sIHNjb3BlID0gJ2RlZmF1bHQnKSB7XG4gICAgY29uc3QgZWZmZWN0ID0gKHRoaXMuZWZmZWN0TWFwID8/IG5ldyBFZmZlY3RNYXAoKSkuZ2V0KGFjdGlvbi5pZCwgc2NvcGUpO1xuICAgIGlmIChlZmZlY3Q/LmtleSAmJiBlZmZlY3Q/LnByb3BzPy5zY29wZSA9PT0gc2NvcGUpIHtcbiAgICAgIHRoaXNbZWZmZWN0LmtleV0oZWZmZWN0LnByb3BzLmFjY2Vzc29yKGFjdGlvbikpO1xuICAgIH1cbiAgICByZXR1cm4gZWZmZWN0O1xuICB9XG59XG4iXX0=
|
|
@@ -48,8 +48,8 @@ class EffectMap extends Map {
|
|
|
48
48
|
}
|
|
49
49
|
function Effect(id, { dispatch = false, scope = 'default', accessor = (action) => action.payload, } = {}) {
|
|
50
50
|
return function (target, propertyKey, descriptor) {
|
|
51
|
-
target['
|
|
52
|
-
target['
|
|
51
|
+
target['effectMap'] ??= new EffectMap();
|
|
52
|
+
target['effectMap'].set(id, { key: propertyKey, props: { dispatch, scope, accessor } });
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
const EFFECT_ENTRY = new InjectionToken('EFFECT_ENTRY');
|
|
@@ -397,7 +397,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
|
|
|
397
397
|
class NgAtomicComponent extends InjectableComponent {
|
|
398
398
|
effectEntries = injectEffectEntries();
|
|
399
399
|
reducer = injectEffectReducer();
|
|
400
|
-
|
|
400
|
+
effectMap;
|
|
401
401
|
root = inject(NgAtomicRootActionStore);
|
|
402
402
|
#destroyRef = inject(DestroyRef);
|
|
403
403
|
#el = inject(ElementRef);
|
|
@@ -423,7 +423,7 @@ class NgAtomicComponent extends InjectableComponent {
|
|
|
423
423
|
}
|
|
424
424
|
}
|
|
425
425
|
effect(action, scope = 'default') {
|
|
426
|
-
const effect = (this.
|
|
426
|
+
const effect = (this.effectMap ?? new EffectMap()).get(action.id, scope);
|
|
427
427
|
if (effect?.key && effect?.props?.scope === scope) {
|
|
428
428
|
this[effect.key](effect.props.accessor(action));
|
|
429
429
|
}
|
|
@@ -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 {\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 protected 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
|
+
{"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 protected 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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"}
|
|
@@ -8,7 +8,7 @@ export declare class NgAtomicComponent<T = any> extends InjectableComponent<T> {
|
|
|
8
8
|
#private;
|
|
9
9
|
protected effectEntries: import("./effect").EffectEntry[];
|
|
10
10
|
protected reducer: (action: Action<any>) => Promise<import("./effect").EffectFunctionOptions>;
|
|
11
|
-
protected
|
|
11
|
+
protected effectMap: EffectMap;
|
|
12
12
|
protected root: NgAtomicRootActionStore;
|
|
13
13
|
constructor();
|
|
14
14
|
dispatch(action: Action, scope?: string, componentId?: string | number | null): Promise<void>;
|