@ng-atomic/core 18.10.0 → 18.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@ import { injectEffectReducer } from "./effect";
3
3
  import * as i0 from "@angular/core";
4
4
  export class NgAtomicActionLogger {
5
5
  log(action, scope = 'default') {
6
- console.debug(action, scope);
6
+ console.info(`[NgAtomicActionLogger] ${action?.name}`, { action, scope });
7
7
  }
8
8
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NgAtomicActionLogger, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
9
9
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NgAtomicActionLogger, providedIn: 'root' });
@@ -54,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
54
54
  type: Injectable,
55
55
  args: [{ providedIn: 'root' }]
56
56
  }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvYWN0aW9uLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUcvQyxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLEdBQUcsQ0FBQyxNQUFjLEVBQUUsS0FBSyxHQUFHLFNBQVM7UUFDbkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt1R0FIVSxvQkFBb0I7MkdBQXBCLG9CQUFvQixjQURSLE1BQU07OzJGQUNsQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOztBQVFoQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3hCLE1BQU0sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3QixTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNqRCxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVsRDtRQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFjO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7dUdBWFUsdUJBQXVCOzJHQUF2Qix1QkFBdUIsY0FEWCxNQUFNOzsyRkFDbEIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUFnQmhDLE1BQU0sT0FBTywyQkFBMkI7SUFDNUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2hELGdCQUFnQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRW5ELEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBa0IsRUFBRSxNQUFjLEVBQUUsZUFBeUIsUUFBUTtRQUNsRixNQUFNLE9BQU8sR0FBRyxFQUFDLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVwRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLFNBQVMsSUFBSSxTQUFTLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM3QyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN4RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt1R0FuQlUsMkJBQTJCOzJHQUEzQiwyQkFBMkIsY0FEZixNQUFNOzsyRkFDbEIsMkJBQTJCO2tCQUR2QyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi9hY3Rpb25cIjtcbmltcG9ydCB7IGluamVjdEVmZmVjdFJlZHVjZXIgfSBmcm9tIFwiLi9lZmZlY3RcIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTmdBdG9taWNBY3Rpb25Mb2dnZXIge1xuICBsb2coYWN0aW9uOiBBY3Rpb24sIHNjb3BlID0gJ2RlZmF1bHQnKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhhY3Rpb24sIHNjb3BlKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBOZ0F0b21pY1Jvb3RBY3Rpb25TdG9yZSB7XG4gIHByb3RlY3RlZCBsb2dnZXIgPSBpbmplY3QoTmdBdG9taWNBY3Rpb25Mb2dnZXIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2FjdGlvbnMkID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb24+KCk7XG4gIHJlYWRvbmx5IGFjdGlvbnMkID0gdGhpcy5fYWN0aW9ucyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hY3Rpb25zJC5zdWJzY3JpYmUoYWN0aW9uID0+IHRoaXMubG9nZ2VyLmxvZyhhY3Rpb24sICdyb290JykpO1xuICB9XG5cbiAgZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24pIHtcbiAgICB0aGlzLl9hY3Rpb25zJC5lbWl0KGFjdGlvbik7XG4gIH1cbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTmdBdG9taWNJbmplY3RvckFjdGlvblN0b3JlIHtcbiAgcHJvdGVjdGVkIGxvZ2dlciA9IGluamVjdChOZ0F0b21pY0FjdGlvbkxvZ2dlcik7XG4gICNyb290QWN0aW9uU3RvcmUgPSBpbmplY3QoTmdBdG9taWNSb290QWN0aW9uU3RvcmUpO1xuXG4gIGFzeW5jIGRpc3BhdGNoKGluamVjdG9yOiBJbmplY3RvciwgYWN0aW9uOiBBY3Rpb24sIGhvc3RJbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3Rvcikge1xuICAgIGNvbnN0IF9hY3Rpb24gPSB7Li4uYWN0aW9uLCBtZXRhOiB7IGluamVjdG9yIH19O1xuICAgIHRoaXMubG9nZ2VyLmxvZyhfYWN0aW9uLCAnaW5qZWN0b3InKTtcblxuICAgIGNvbnN0IHJlZHVjZXIgPSBpbmplY3RFZmZlY3RSZWR1Y2VyKGluamVjdG9yKTtcbiAgICBjb25zdCBlZmZlY3QgPSBhd2FpdCByZWR1Y2VyKF9hY3Rpb24sIGhvc3RJbmplY3Rvcik7XG5cbiAgICBpZiAoZWZmZWN0LmRpc3BhdGNoKSB7XG4gICAgICBjb25zdCBpbmplY3Rvcl8gPSBpbmplY3Rvci5nZXQoSW5qZWN0b3IsIG51bGwsIHtza2lwU2VsZjogdHJ1ZX0pO1xuICAgICAgaWYgKGluamVjdG9yXyAmJiBpbmplY3Rvcl8gIT09IEluamVjdG9yLk5VTEwpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kaXNwYXRjaChpbmplY3Rvcl8sIF9hY3Rpb24sIGhvc3RJbmplY3Rvcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLiNyb290QWN0aW9uU3RvcmUuZGlzcGF0Y2goX2FjdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG59Il19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvYWN0aW9uLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUcvQyxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLEdBQUcsQ0FBQyxNQUFjLEVBQUUsS0FBSyxHQUFHLFNBQVM7UUFDbkMsT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBMEIsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQzt1R0FIVSxvQkFBb0I7MkdBQXBCLG9CQUFvQixjQURSLE1BQU07OzJGQUNsQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDOztBQVFoQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3hCLE1BQU0sR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3QixTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNqRCxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUVsRDtRQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFjO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7dUdBWFUsdUJBQXVCOzJHQUF2Qix1QkFBdUIsY0FEWCxNQUFNOzsyRkFDbEIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUFnQmhDLE1BQU0sT0FBTywyQkFBMkI7SUFDNUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2hELGdCQUFnQixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRW5ELEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBa0IsRUFBRSxNQUFjLEVBQUUsZUFBeUIsUUFBUTtRQUNsRixNQUFNLE9BQU8sR0FBRyxFQUFDLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXJDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVwRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLFNBQVMsSUFBSSxTQUFTLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM3QyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN4RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt1R0FuQlUsMkJBQTJCOzJHQUEzQiwyQkFBMkIsY0FEZixNQUFNOzsyRkFDbEIsMkJBQTJCO2tCQUR2QyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi9hY3Rpb25cIjtcbmltcG9ydCB7IGluamVjdEVmZmVjdFJlZHVjZXIgfSBmcm9tIFwiLi9lZmZlY3RcIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTmdBdG9taWNBY3Rpb25Mb2dnZXIge1xuICBsb2coYWN0aW9uOiBBY3Rpb24sIHNjb3BlID0gJ2RlZmF1bHQnKSB7XG4gICAgY29uc29sZS5pbmZvKGBbTmdBdG9taWNBY3Rpb25Mb2dnZXJdICR7YWN0aW9uPy5uYW1lfWAsIHthY3Rpb24sIHNjb3BlfSk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgTmdBdG9taWNSb290QWN0aW9uU3RvcmUge1xuICBwcm90ZWN0ZWQgbG9nZ2VyID0gaW5qZWN0KE5nQXRvbWljQWN0aW9uTG9nZ2VyKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9hY3Rpb25zJCA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aW9uPigpO1xuICByZWFkb25seSBhY3Rpb25zJCA9IHRoaXMuX2FjdGlvbnMkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYWN0aW9ucyQuc3Vic2NyaWJlKGFjdGlvbiA9PiB0aGlzLmxvZ2dlci5sb2coYWN0aW9uLCAncm9vdCcpKTtcbiAgfVxuXG4gIGRpc3BhdGNoKGFjdGlvbjogQWN0aW9uKSB7XG4gICAgdGhpcy5fYWN0aW9ucyQuZW1pdChhY3Rpb24pO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIE5nQXRvbWljSW5qZWN0b3JBY3Rpb25TdG9yZSB7XG4gIHByb3RlY3RlZCBsb2dnZXIgPSBpbmplY3QoTmdBdG9taWNBY3Rpb25Mb2dnZXIpO1xuICAjcm9vdEFjdGlvblN0b3JlID0gaW5qZWN0KE5nQXRvbWljUm9vdEFjdGlvblN0b3JlKTtcblxuICBhc3luYyBkaXNwYXRjaChpbmplY3RvcjogSW5qZWN0b3IsIGFjdGlvbjogQWN0aW9uLCBob3N0SW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0b3IpIHtcbiAgICBjb25zdCBfYWN0aW9uID0gey4uLmFjdGlvbiwgbWV0YTogeyBpbmplY3RvciB9fTtcbiAgICB0aGlzLmxvZ2dlci5sb2coX2FjdGlvbiwgJ2luamVjdG9yJyk7XG5cbiAgICBjb25zdCByZWR1Y2VyID0gaW5qZWN0RWZmZWN0UmVkdWNlcihpbmplY3Rvcik7XG4gICAgY29uc3QgZWZmZWN0ID0gYXdhaXQgcmVkdWNlcihfYWN0aW9uLCBob3N0SW5qZWN0b3IpO1xuXG4gICAgaWYgKGVmZmVjdC5kaXNwYXRjaCkge1xuICAgICAgY29uc3QgaW5qZWN0b3JfID0gaW5qZWN0b3IuZ2V0KEluamVjdG9yLCBudWxsLCB7c2tpcFNlbGY6IHRydWV9KTtcbiAgICAgIGlmIChpbmplY3Rvcl8gJiYgaW5qZWN0b3JfICE9PSBJbmplY3Rvci5OVUxMKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2goaW5qZWN0b3JfLCBfYWN0aW9uLCBob3N0SW5qZWN0b3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy4jcm9vdEFjdGlvblN0b3JlLmRpc3BhdGNoKF9hY3Rpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSJdfQ==
@@ -34,9 +34,10 @@ export function createAction(type, schema, options = {}) {
34
34
  create: (payload = {}, meta = {}) => ({
35
35
  id: type,
36
36
  payload,
37
- name: meta?.name ?? options.name ?? type,
38
- icon: meta?.icon ?? options.icon,
37
+ name: options.name ?? type,
38
+ icon: options.icon,
39
+ ...meta,
39
40
  }),
40
41
  };
41
42
  }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQW9CLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQW1CL0MsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQixFQUFFLEdBQUcsSUFBVztJQUM3RCxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQWdCO0lBQzFDLE9BQU8sT0FBTyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztBQUNqRSxDQUFDO0FBVUQsTUFBTSxVQUFVLFlBQVksQ0FDMUIsSUFBWSxFQUNaLE1BQXdDLEVBQ3hDLFVBQW1DLEVBQUU7SUFFckMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQU8sRUFBRSxFQUFFO1FBQ25DLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsR0FBRyxNQUFNO2dCQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQzthQUMvRCxDQUFDO1lBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxJQUFJLEVBQUMsQ0FBVyxDQUFDLENBQUM7WUFDMUUsSUFBSSxNQUFNLENBQUMsTUFBTTtnQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDLENBQUE7SUFDRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLElBQUksZ0JBQWdCO1FBQ2hELE1BQU0sRUFBRSxDQUFDLFVBQWEsRUFBUyxFQUFFLE9BQXVDLEVBQUUsRUFBVSxFQUFFLENBQUMsQ0FBQztZQUN0RixFQUFFLEVBQUUsSUFBSTtZQUNSLE9BQU87WUFDUCxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUk7WUFDeEMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUk7U0FDakMsQ0FBQztLQUNILENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFqdiBmcm9tIFwiYWp2XCI7XG5pbXBvcnQgeyBDbGFzc0NvbnN0cnVjdG9yLCBwbGFpblRvSW5zdGFuY2UgfSBmcm9tIFwiY2xhc3MtdHJhbnNmb3JtZXJcIjtcbmltcG9ydCB7IHZhbGlkYXRlU3luYyB9IGZyb20gXCJjbGFzcy12YWxpZGF0b3JcIjtcbmltcG9ydCB7IEpzb25TY2hlbWEgfSBmcm9tIFwianNvbi1zY2hlbWEtbGlicmFyeVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbjxUID0gYW55PiB7XG4gIGlkOiBzdHJpbmc7XG4gIHBheWxvYWQ/OiBUO1xuICBuYW1lPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IEFjdGlvbjxUPltdLFxuICBtZXRhPzoge2NvbXBvbmVudElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbH0gfCBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvbnNGYWN0b3J5PFQgPSBhbnk+ID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBBY3Rpb248VD5bXTtcblxuLyoqIEBkZXByZWNhdGVkICovXG5leHBvcnQgdHlwZSBBY3Rpb25zID0gQWN0aW9uc0ZhY3RvcnkgfCBBY3Rpb25bXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbnMsIC4uLmFyZ3M6IGFueVtdKSB7XG4gIGlmICh0eXBlb2YgYWN0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBhY3Rpb25zKC4uLmFyZ3MpO1xuICB9XG4gIHJldHVybiBhY3Rpb25zO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcEFjdGlvbnMoYWN0aW9uczogQWN0aW9ucyk6IEFjdGlvbnNGYWN0b3J5IHtcbiAgcmV0dXJuIHR5cGVvZiBhY3Rpb25zID09PSAnZnVuY3Rpb24nID8gYWN0aW9ucyA6ICgpID0+IGFjdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQWN0aW9uc09wdGlvbnM8UCBleHRlbmRzIG9iamVjdCA9IGFueT4ge1xuICB2YWxpZGF0b3I/OiAoaXRlbTogUCkgPT4gbnVsbCB8IHN0cmluZyB8IHN0cmluZ1tdO1xuICBuYW1lPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBY3Rpb25GYWN0b3J5PFAgZXh0ZW5kcyBvYmplY3QgPSBhbnk+ID0gKHBheWxvYWQ/OiBQLCBtZXRhPzogQ3JlYXRlQWN0aW9uc09wdGlvbnMpID0+IEFjdGlvbjxQPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFjdGlvbjxQIGV4dGVuZHMgb2JqZWN0ID0gYW55PihcbiAgdHlwZTogc3RyaW5nLFxuICBzY2hlbWE6IEpzb25TY2hlbWEgfCBDbGFzc0NvbnN0cnVjdG9yPFA+LFxuICBvcHRpb25zOiBDcmVhdGVBY3Rpb25zT3B0aW9uczxQPiA9IHt9LFxuKToge3ZhbGlkYXRlOiAoaXRlbTogUCkgPT4gbnVsbCB8IHN0cmluZyB8IHN0cmluZ1tdLCBjcmVhdGU6IEFjdGlvbkZhY3Rvcnk8UD59IHsgIFxuICBjb25zdCBkZWZhdWx0VmFsaWRhdG9yID0gKGl0ZW06IFApID0+IHtcbiAgICBpZiAodHlwZW9mIHNjaGVtYSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGNvbnN0IF9zY2hlbWEgPSB7XG4gICAgICAgIC4uLnNjaGVtYSxcbiAgICAgICAgcmVxdWlyZWQ6IHNjaGVtYS5yZXF1aXJlZC5maWx0ZXIoKGtleTogc3RyaW5nKSA9PiBrZXkgaW4gaXRlbSksXG4gICAgICB9O1xuICAgICAgY29uc3QgaXNWYWxpZCA9IG5ldyBBanYoKS5jb21waWxlKF9zY2hlbWEpKGl0ZW0pO1xuICAgICAgaWYgKCFpc1ZhbGlkKSByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IHZhbGlkYXRlU3luYyhwbGFpblRvSW5zdGFuY2Uoc2NoZW1hLCB7Li4uaXRlbX0pIGFzIG9iamVjdCk7XG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCkgcmV0dXJuICdpbnZhbGlkJztcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIHZhbGlkYXRlOiBvcHRpb25zPy52YWxpZGF0b3IgPz8gZGVmYXVsdFZhbGlkYXRvcixcbiAgICBjcmVhdGU6IChwYXlsb2FkOiBQID0ge30gYXMgYW55LCBtZXRhOiB7bmFtZT86IHN0cmluZywgaWNvbj86IHN0cmluZ30gPSB7fSk6IEFjdGlvbiA9PiAoe1xuICAgICAgaWQ6IHR5cGUsXG4gICAgICBwYXlsb2FkLFxuICAgICAgbmFtZTogbWV0YT8ubmFtZSA/PyBvcHRpb25zLm5hbWUgPz8gdHlwZSxcbiAgICAgIGljb246IG1ldGE/Lmljb24gPz8gb3B0aW9ucy5pY29uLFxuICAgIH0pLFxuICB9XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztBQUN0QixPQUFPLEVBQW9CLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQW1CL0MsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQixFQUFFLEdBQUcsSUFBVztJQUM3RCxJQUFJLE9BQU8sT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQWdCO0lBQzFDLE9BQU8sT0FBTyxPQUFPLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztBQUNqRSxDQUFDO0FBVUQsTUFBTSxVQUFVLFlBQVksQ0FDMUIsSUFBWSxFQUNaLE1BQXdDLEVBQ3hDLFVBQW1DLEVBQUU7SUFFckMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQU8sRUFBRSxFQUFFO1FBQ25DLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDL0IsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsR0FBRyxNQUFNO2dCQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQzthQUMvRCxDQUFDO1lBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDL0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEVBQUMsR0FBRyxJQUFJLEVBQUMsQ0FBVyxDQUFDLENBQUM7WUFDMUUsSUFBSSxNQUFNLENBQUMsTUFBTTtnQkFBRSxPQUFPLFNBQVMsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDLENBQUE7SUFDRCxPQUFPO1FBQ0wsUUFBUSxFQUFFLE9BQU8sRUFBRSxTQUFTLElBQUksZ0JBQWdCO1FBQ2hELE1BQU0sRUFBRSxDQUFDLFVBQWEsRUFBUyxFQUFFLE9BQXVDLEVBQUUsRUFBVSxFQUFFLENBQUMsQ0FBQztZQUN0RixFQUFFLEVBQUUsSUFBSTtZQUNSLE9BQU87WUFDUCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJO1lBQzFCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixHQUFHLElBQUk7U0FDUixDQUFDO0tBQ0gsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQWp2IGZyb20gXCJhanZcIjtcbmltcG9ydCB7IENsYXNzQ29uc3RydWN0b3IsIHBsYWluVG9JbnN0YW5jZSB9IGZyb20gXCJjbGFzcy10cmFuc2Zvcm1lclwiO1xuaW1wb3J0IHsgdmFsaWRhdGVTeW5jIH0gZnJvbSBcImNsYXNzLXZhbGlkYXRvclwiO1xuaW1wb3J0IHsgSnNvblNjaGVtYSB9IGZyb20gXCJqc29uLXNjaGVtYS1saWJyYXJ5XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uPFQgPSBhbnk+IHtcbiAgaWQ6IHN0cmluZztcbiAgcGF5bG9hZD86IFQ7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGNvbG9yPzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGNoaWxkcmVuPzogQWN0aW9uPFQ+W10sXG4gIG1ldGE/OiB7Y29tcG9uZW50SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsfSB8IGFueTtcbn1cblxuZXhwb3J0IHR5cGUgQWN0aW9uc0ZhY3Rvcnk8VCA9IGFueT4gPSAoLi4uYXJnczogYW55W10pID0+IEFjdGlvbjxUPltdO1xuXG4vKiogQGRlcHJlY2F0ZWQgKi9cbmV4cG9ydCB0eXBlIEFjdGlvbnMgPSBBY3Rpb25zRmFjdG9yeSB8IEFjdGlvbltdO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUFjdGlvbnMoYWN0aW9uczogQWN0aW9ucywgLi4uYXJnczogYW55W10pIHtcbiAgaWYgKHR5cGVvZiBhY3Rpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGFjdGlvbnMoLi4uYXJncyk7XG4gIH1cbiAgcmV0dXJuIGFjdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25zKTogQWN0aW9uc0ZhY3Rvcnkge1xuICByZXR1cm4gdHlwZW9mIGFjdGlvbnMgPT09ICdmdW5jdGlvbicgPyBhY3Rpb25zIDogKCkgPT4gYWN0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVBY3Rpb25zT3B0aW9uczxQIGV4dGVuZHMgb2JqZWN0ID0gYW55PiB7XG4gIHZhbGlkYXRvcj86IChpdGVtOiBQKSA9PiBudWxsIHwgc3RyaW5nIHwgc3RyaW5nW107XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkZhY3Rvcnk8UCBleHRlbmRzIG9iamVjdCA9IGFueT4gPSAocGF5bG9hZD86IFAsIG1ldGE/OiBDcmVhdGVBY3Rpb25zT3B0aW9ucykgPT4gQWN0aW9uPFA+O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWN0aW9uPFAgZXh0ZW5kcyBvYmplY3QgPSBhbnk+KFxuICB0eXBlOiBzdHJpbmcsXG4gIHNjaGVtYTogSnNvblNjaGVtYSB8IENsYXNzQ29uc3RydWN0b3I8UD4sXG4gIG9wdGlvbnM6IENyZWF0ZUFjdGlvbnNPcHRpb25zPFA+ID0ge30sXG4pOiB7dmFsaWRhdGU6IChpdGVtOiBQKSA9PiBudWxsIHwgc3RyaW5nIHwgc3RyaW5nW10sIGNyZWF0ZTogQWN0aW9uRmFjdG9yeTxQPn0geyAgXG4gIGNvbnN0IGRlZmF1bHRWYWxpZGF0b3IgPSAoaXRlbTogUCkgPT4ge1xuICAgIGlmICh0eXBlb2Ygc2NoZW1hID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3QgX3NjaGVtYSA9IHtcbiAgICAgICAgLi4uc2NoZW1hLFxuICAgICAgICByZXF1aXJlZDogc2NoZW1hLnJlcXVpcmVkLmZpbHRlcigoa2V5OiBzdHJpbmcpID0+IGtleSBpbiBpdGVtKSxcbiAgICAgIH07XG4gICAgICBjb25zdCBpc1ZhbGlkID0gbmV3IEFqdigpLmNvbXBpbGUoX3NjaGVtYSkoaXRlbSk7XG4gICAgICBpZiAoIWlzVmFsaWQpIHJldHVybiAnaW52YWxpZCc7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZXJyb3JzID0gdmFsaWRhdGVTeW5jKHBsYWluVG9JbnN0YW5jZShzY2hlbWEsIHsuLi5pdGVtfSkgYXMgb2JqZWN0KTtcbiAgICAgIGlmIChlcnJvcnMubGVuZ3RoKSByZXR1cm4gJ2ludmFsaWQnO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgdmFsaWRhdGU6IG9wdGlvbnM/LnZhbGlkYXRvciA/PyBkZWZhdWx0VmFsaWRhdG9yLFxuICAgIGNyZWF0ZTogKHBheWxvYWQ6IFAgPSB7fSBhcyBhbnksIG1ldGE6IHtuYW1lPzogc3RyaW5nLCBpY29uPzogc3RyaW5nfSA9IHt9KTogQWN0aW9uID0+ICh7XG4gICAgICBpZDogdHlwZSxcbiAgICAgIHBheWxvYWQsXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUgPz8gdHlwZSxcbiAgICAgIGljb246IG9wdGlvbnMuaWNvbixcbiAgICAgIC4uLm1ldGEsXG4gICAgfSksXG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { isPlatformBrowser } from '@angular/common';
2
- import { Directive, ElementRef, PLATFORM_ID, inject } from '@angular/core';
2
+ import { Directive, ElementRef, PLATFORM_ID, inject, input } from '@angular/core';
3
3
  import { NG_ATOMIC_DEBUG } from '../ng-atomic-debug';
4
4
  import * as i0 from "@angular/core";
5
5
  const DEBUG_CONFIG = {
@@ -14,49 +14,57 @@ const DEBUG_CONFIG = {
14
14
  },
15
15
  excludes: ['frames', 'app', 'pages', 'atoms'],
16
16
  };
17
+ function getType(element) {
18
+ return element.tagName.toLowerCase().split('-')[0];
19
+ }
20
+ function getName(element) {
21
+ return element.tagName.toLowerCase();
22
+ }
23
+ function getLabel(element) {
24
+ const name = getName(element);
25
+ const type = getType(element);
26
+ if (DEBUG_CONFIG.excludes.includes(type))
27
+ return;
28
+ return `${name}${element.hasAttribute('injected') ? '[injected]' : ''}`;
29
+ }
17
30
  export class DebugDirective {
18
31
  el = inject(ElementRef);
19
32
  platformId = inject(PLATFORM_ID);
20
- isDebug = inject(NG_ATOMIC_DEBUG, { optional: true }) ?? false;
33
+ isDebug = input(inject(NG_ATOMIC_DEBUG, { optional: true }) ?? false);
34
+ label = input(getLabel(this.el.nativeElement));
21
35
  ngOnInit() {
22
- if (isPlatformBrowser(this.platformId) && this.isDebug) {
23
- const name = this.el.nativeElement.tagName.toLowerCase();
24
- const type = name.split('-')[0];
25
- if (DEBUG_CONFIG.excludes.includes(type))
26
- return;
36
+ if (isPlatformBrowser(this.platformId) && this.isDebug()) {
37
+ const type = getType(this.el.nativeElement);
27
38
  const color = DEBUG_CONFIG.colors?.[type] ?? DEBUG_CONFIG.colors.default;
28
- // 1pxのアウトラインを設定
29
- this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;
30
- // 疑似要素でコンポーネント名を表示
31
- const labelEl = this.createLabelElement({
32
- name: `${name}${this.el.nativeElement.hasAttribute('injected') ? '[injected]' : ''}`,
33
- color
34
- });
35
- this.el.nativeElement.style.outlineOffset = '-1px';
36
- this.el.nativeElement.style.position = 'relative';
37
- this.el.nativeElement.appendChild(labelEl);
39
+ this.createLabelElement({ label: this.label(), color });
40
+ this.createOutline(color);
38
41
  }
39
42
  }
40
43
  createLabelElement(options) {
41
- const content = document.createElement('span');
42
- content.textContent = options.name;
43
- content.style.backgroundColor = `${options.color}`;
44
- content.style.color = '#fff';
45
- content.style.padding = '2px 4px';
46
- content.style.position = 'absolute';
47
- content.style.fontSize = '10px';
48
- content.style.top = '0';
49
- content.style.left = '0';
50
- content.style.zIndex = '9999';
51
- content.style.lineHeight = '1.5em';
52
- content.style.whiteSpace = 'nowrap';
53
- return content;
44
+ const el = document.createElement('span');
45
+ el.textContent = options.label;
46
+ el.style.backgroundColor = `${options.color}`;
47
+ el.style.color = '#fff';
48
+ el.style.padding = '2px 4px';
49
+ el.style.position = 'absolute';
50
+ el.style.fontSize = '10px';
51
+ el.style.top = '0';
52
+ el.style.left = '0';
53
+ el.style.zIndex = '9999';
54
+ el.style.lineHeight = '1.5em';
55
+ el.style.whiteSpace = 'nowrap';
56
+ this.el.nativeElement.appendChild(el);
57
+ }
58
+ createOutline(color) {
59
+ this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;
60
+ this.el.nativeElement.style.outlineOffset = '-1px';
61
+ this.el.nativeElement.style.position = 'relative';
54
62
  }
55
63
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: DebugDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
56
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: DebugDirective, isStandalone: true, selector: "debug", ngImport: i0 });
64
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: DebugDirective, isStandalone: true, selector: "debug", inputs: { isDebug: { classPropertyName: "isDebug", publicName: "isDebug", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
57
65
  }
58
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: DebugDirective, decorators: [{
59
67
  type: Directive,
60
68
  args: [{ standalone: true, selector: 'debug' }]
61
69
  }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvZGVidWcvZGVidWcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUVyRCxNQUFNLFlBQVksR0FBRztJQUNuQixPQUFPLEVBQUUsS0FBSztJQUNkLE1BQU0sRUFBRTtRQUNOLFdBQVcsRUFBRSxNQUFNO1FBQ25CLFdBQVcsRUFBRSxNQUFNO1FBQ25CLFdBQVcsRUFBRSxNQUFNO1FBQ25CLE9BQU8sRUFBRSxNQUFNO1FBQ2YsUUFBUSxFQUFFLGFBQWE7UUFDdkIsU0FBUyxFQUFFLE1BQU07S0FDbEI7SUFDRCxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7Q0FDOUMsQ0FBQztBQUdGLE1BQU0sT0FBTyxjQUFjO0lBQ2YsRUFBRSxHQUE0QixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxPQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUV2RSxRQUFRO1FBQ04sSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU87WUFDakQsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBRXpFLGdCQUFnQjtZQUNoQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsWUFBWSxDQUFDLE9BQU8sVUFBVSxLQUFLLEVBQUUsQ0FBQztZQUUvRSxtQkFBbUI7WUFDbkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO2dCQUN0QyxJQUFJLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDcEYsS0FBSzthQUNOLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1lBQ25ELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1lBQ2xELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE9BRzVCO1FBQ0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbkMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUNsQyxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUN4QixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztRQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDcEMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzt1R0EzQ1UsY0FBYzsyRkFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixTQUFTO21CQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBQTEFURk9STV9JRCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX0FUT01JQ19ERUJVRyB9IGZyb20gJy4uL25nLWF0b21pYy1kZWJ1Zyc7XG5cbmNvbnN0IERFQlVHX0NPTkZJRyA9IHtcbiAgb3V0bGluZTogJzFweCcsXG4gIGNvbG9yczoge1xuICAgICd0ZW1wbGF0ZXMnOiAnI2YwMCcsXG4gICAgJ29yZ2FuaXNtcyc6ICcjMGYwJyxcbiAgICAnbW9sZWN1bGVzJzogJyMwMGYnLFxuICAgICdhdG9tcyc6ICcjZmYwJyxcbiAgICAnZnJhbWVzJzogJ3RyYW5zcGFyZW50JyxcbiAgICAnZGVmYXVsdCc6ICcjMDAwJyxcbiAgfSxcbiAgZXhjbHVkZXM6IFsnZnJhbWVzJywgJ2FwcCcsICdwYWdlcycsICdhdG9tcyddLFxufTtcblxuQERpcmVjdGl2ZSh7c3RhbmRhbG9uZTogdHJ1ZSwgc2VsZWN0b3I6ICdkZWJ1Zyd9KVxuZXhwb3J0IGNsYXNzIERlYnVnRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIGVsOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJvdGVjdGVkIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcm90ZWN0ZWQgaXNEZWJ1ZyA9IGluamVjdChOR19BVE9NSUNfREVCVUcsIHtvcHRpb25hbDogdHJ1ZX0pID8/IGZhbHNlO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIHRoaXMuaXNEZWJ1Zykge1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICBjb25zdCB0eXBlID0gbmFtZS5zcGxpdCgnLScpWzBdO1xuICAgICAgaWYgKERFQlVHX0NPTkZJRy5leGNsdWRlcy5pbmNsdWRlcyh0eXBlKSkgcmV0dXJuO1xuICAgICAgY29uc3QgY29sb3IgPSBERUJVR19DT05GSUcuY29sb3JzPy5bdHlwZV0gPz8gREVCVUdfQ09ORklHLmNvbG9ycy5kZWZhdWx0O1xuXG4gICAgICAvLyAxcHjjga7jgqLjgqbjg4jjg6njgqTjg7PjgpLoqK3lrppcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5vdXRsaW5lID0gYCR7REVCVUdfQ09ORklHLm91dGxpbmV9IHNvbGlkICR7Y29sb3J9YDtcblxuICAgICAgLy8g55aR5Ly86KaB57Sg44Gn44Kz44Oz44Od44O844ON44Oz44OI5ZCN44KS6KGo56S6XG4gICAgICBjb25zdCBsYWJlbEVsID0gdGhpcy5jcmVhdGVMYWJlbEVsZW1lbnQoe1xuICAgICAgICBuYW1lOiBgJHtuYW1lfSR7dGhpcy5lbC5uYXRpdmVFbGVtZW50Lmhhc0F0dHJpYnV0ZSgnaW5qZWN0ZWQnKSA/ICdbaW5qZWN0ZWRdJyA6ICcnfWAsXG4gICAgICAgIGNvbG9yXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5vdXRsaW5lT2Zmc2V0ID0gJy0xcHgnO1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChsYWJlbEVsKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlTGFiZWxFbGVtZW50KG9wdGlvbnM6IHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBjb2xvcjogc3RyaW5nXG4gIH0pOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICBjb250ZW50LnRleHRDb250ZW50ID0gb3B0aW9ucy5uYW1lO1xuICAgIGNvbnRlbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYCR7b3B0aW9ucy5jb2xvcn1gO1xuICAgIGNvbnRlbnQuc3R5bGUuY29sb3IgPSAnI2ZmZic7XG4gICAgY29udGVudC5zdHlsZS5wYWRkaW5nID0gJzJweCA0cHgnO1xuICAgIGNvbnRlbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGNvbnRlbnQuc3R5bGUuZm9udFNpemUgPSAnMTBweCc7XG4gICAgY29udGVudC5zdHlsZS50b3AgPSAnMCc7XG4gICAgY29udGVudC5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgIGNvbnRlbnQuc3R5bGUuekluZGV4ID0gJzk5OTknO1xuICAgIGNvbnRlbnQuc3R5bGUubGluZUhlaWdodCA9ICcxLjVlbSc7XG4gICAgY29udGVudC5zdHlsZS53aGl0ZVNwYWNlID0gJ25vd3JhcCc7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbn0iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb3JlL3NyYy9saWIvZGVidWcvZGVidWcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFckQsTUFBTSxZQUFZLEdBQUc7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxNQUFNLEVBQUU7UUFDTixXQUFXLEVBQUUsTUFBTTtRQUNuQixXQUFXLEVBQUUsTUFBTTtRQUNuQixXQUFXLEVBQUUsTUFBTTtRQUNuQixPQUFPLEVBQUUsTUFBTTtRQUNmLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLFNBQVMsRUFBRSxNQUFNO0tBQ2xCO0lBQ0QsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO0NBQzlDLENBQUM7QUFFRixTQUFTLE9BQU8sQ0FBQyxPQUFvQjtJQUNuQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxPQUFvQjtJQUNuQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFDLE9BQW9CO0lBQ3BDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixNQUFNLElBQUksR0FBRyxP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LENBQUM7dUdBdENVLGNBQWM7MkZBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsU0FBUzttQkFBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgUExBVEZPUk1fSUQsIGluamVjdCwgT25Jbml0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfQVRPTUlDX0RFQlVHIH0gZnJvbSAnLi4vbmctYXRvbWljLWRlYnVnJztcblxuY29uc3QgREVCVUdfQ09ORklHID0ge1xuICBvdXRsaW5lOiAnMXB4JyxcbiAgY29sb3JzOiB7XG4gICAgJ3RlbXBsYXRlcyc6ICcjZjAwJyxcbiAgICAnb3JnYW5pc21zJzogJyMwZjAnLFxuICAgICdtb2xlY3VsZXMnOiAnIzAwZicsXG4gICAgJ2F0b21zJzogJyNmZjAnLFxuICAgICdmcmFtZXMnOiAndHJhbnNwYXJlbnQnLFxuICAgICdkZWZhdWx0JzogJyMwMDAnLFxuICB9LFxuICBleGNsdWRlczogWydmcmFtZXMnLCAnYXBwJywgJ3BhZ2VzJywgJ2F0b21zJ10sXG59O1xuXG5mdW5jdGlvbiBnZXRUeXBlKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogc3RyaW5nIHtcbiAgcmV0dXJuIGVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpLnNwbGl0KCctJylbMF07XG59XG5cbmZ1bmN0aW9uIGdldE5hbWUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBzdHJpbmcge1xuICByZXR1cm4gZWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIGdldExhYmVsKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogc3RyaW5nIHtcbiAgY29uc3QgbmFtZSA9IGdldE5hbWUoZWxlbWVudCk7XG4gIGNvbnN0IHR5cGUgPSBnZXRUeXBlKGVsZW1lbnQpO1xuICBpZiAoREVCVUdfQ09ORklHLmV4Y2x1ZGVzLmluY2x1ZGVzKHR5cGUpKSByZXR1cm47XG4gIHJldHVybiBgJHtuYW1lfSR7ZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2luamVjdGVkJykgPyAnW2luamVjdGVkXScgOiAnJ31gO1xufVxuXG5ARGlyZWN0aXZlKHtzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ2RlYnVnJ30pXG5leHBvcnQgY2xhc3MgRGVidWdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcm90ZWN0ZWQgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHByb3RlY3RlZCBpc0RlYnVnID0gaW5wdXQoaW5qZWN0KE5HX0FUT01JQ19ERUJVRywge29wdGlvbmFsOiB0cnVlfSkgPz8gZmFsc2UpO1xuICBwcm90ZWN0ZWQgbGFiZWwgPSBpbnB1dChnZXRMYWJlbCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSAmJiB0aGlzLmlzRGVidWcoKSkge1xuICAgICAgY29uc3QgdHlwZSA9IGdldFR5cGUodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgIGNvbnN0IGNvbG9yID0gREVCVUdfQ09ORklHLmNvbG9ycz8uW3R5cGVdID8/IERFQlVHX0NPTkZJRy5jb2xvcnMuZGVmYXVsdDtcbiAgICAgIHRoaXMuY3JlYXRlTGFiZWxFbGVtZW50KHsgbGFiZWw6IHRoaXMubGFiZWwoKSwgY29sb3IgfSk7XG4gICAgICB0aGlzLmNyZWF0ZU91dGxpbmUoY29sb3IpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVMYWJlbEVsZW1lbnQob3B0aW9uczoge1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICBjb2xvcjogc3RyaW5nXG4gIH0pIHtcbiAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICBlbC50ZXh0Q29udGVudCA9IG9wdGlvbnMubGFiZWw7XG4gICAgZWwuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYCR7b3B0aW9ucy5jb2xvcn1gO1xuICAgIGVsLnN0eWxlLmNvbG9yID0gJyNmZmYnO1xuICAgIGVsLnN0eWxlLnBhZGRpbmcgPSAnMnB4IDRweCc7XG4gICAgZWwuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIGVsLnN0eWxlLmZvbnRTaXplID0gJzEwcHgnO1xuICAgIGVsLnN0eWxlLnRvcCA9ICcwJztcbiAgICBlbC5zdHlsZS5sZWZ0ID0gJzAnO1xuICAgIGVsLnN0eWxlLnpJbmRleCA9ICc5OTk5JztcbiAgICBlbC5zdHlsZS5saW5lSGVpZ2h0ID0gJzEuNWVtJztcbiAgICBlbC5zdHlsZS53aGl0ZVNwYWNlID0gJ25vd3JhcCc7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGVsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVPdXRsaW5lKGNvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUub3V0bGluZSA9IGAke0RFQlVHX0NPTkZJRy5vdXRsaW5lfSBzb2xpZCAke2NvbG9yfWA7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLm91dGxpbmVPZmZzZXQgPSAnLTFweCc7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnBvc2l0aW9uID0gJ3JlbGF0aXZlJztcbiAgfVxufSJdfQ==
@@ -3,8 +3,9 @@ export * from './action';
3
3
  export * from './effect';
4
4
  export * from './injectable-component';
5
5
  export * from './input';
6
+ export * from './route';
6
7
  export * from './ng-atomic-component';
7
8
  export * from './signals';
8
9
  export * from './debug';
9
10
  export * from './ng-atomic-debug';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9lZmZlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3RhYmxlLWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vbmctYXRvbWljLWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NpZ25hbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kZWJ1Zyc7XG5leHBvcnQgKiBmcm9tICcuL25nLWF0b21pYy1kZWJ1Zyc7XG4iXX0=
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9lZmZlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9pbmplY3RhYmxlLWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vcm91dGUnO1xuZXhwb3J0ICogZnJvbSAnLi9uZy1hdG9taWMtY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2lnbmFscyc7XG5leHBvcnQgKiBmcm9tICcuL2RlYnVnJztcbmV4cG9ydCAqIGZyb20gJy4vbmctYXRvbWljLWRlYnVnJztcbiJdfQ==
@@ -32,10 +32,16 @@ export var HostType;
32
32
  HostType["Cmp"] = "\u0275cmp";
33
33
  })(HostType || (HostType = {}));
34
34
  export function getMeta(type) {
35
- return type[HostType.Cmp] || type[HostType.Dir];
35
+ if (HostType.Cmp in type) {
36
+ return type[HostType.Cmp];
37
+ }
38
+ else if (HostType.Dir in type) {
39
+ return type[HostType.Dir];
40
+ }
36
41
  }
37
42
  export function getInputs(type) {
38
- return Object.entries(getMeta(type)['inputs'])
43
+ const meta = getMeta(type);
44
+ return Object.entries(meta['inputs'])
39
45
  .map(([templateName, [propName]]) => ({ propName, templateName }));
40
46
  }
41
47
  export function getOutputs(type) {
@@ -64,12 +70,10 @@ export class InjectableComponent {
64
70
  this.__action.emit(action);
65
71
  }
66
72
  get #inputs() {
67
- const abs = getInputs(this.constructor);
68
- return abs;
73
+ return getInputs(this.constructor);
69
74
  }
70
75
  get #outputs() {
71
- const abs = getOutputs(this.constructor);
72
- return abs;
76
+ return getOutputs(this.constructor);
73
77
  // const impl = this.#componentMirror!.outputs;
74
78
  // return abs.filter(abstractOutput => impl.some(implOutput => implOutput.templateName === abstractOutput.templateName));
75
79
  }
@@ -92,7 +96,7 @@ export class InjectableComponent {
92
96
  continue;
93
97
  const valueOrInputValueFn = this[input.propName];
94
98
  const value = typeof valueOrInputValueFn === 'function' ? valueOrInputValueFn() : valueOrInputValueFn;
95
- this.#component.setInput(input.templateName, value);
99
+ this.#setInput(input, value);
96
100
  }
97
101
  }
98
102
  get propNames() {
@@ -113,6 +117,9 @@ export class InjectableComponent {
113
117
  });
114
118
  }
115
119
  }
120
+ #setInput(input, value) {
121
+ this.#component.setInput(input?.templateName, value);
122
+ }
116
123
  constructor() {
117
124
  this.proxyFakeComputedInputs();
118
125
  }
@@ -144,7 +151,7 @@ export class InjectableComponent {
144
151
  return;
145
152
  const change = simpleChanges[input.propName];
146
153
  if (change) {
147
- this.#component.setInput(input.propName, change.currentValue);
154
+ this.#setInput(input, change.currentValue);
148
155
  }
149
156
  }
150
157
  }
@@ -162,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
162
169
  type: Output,
163
170
  args: ['action']
164
171
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9pbmplY3RhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQzBCLFVBQVUsRUFDekMsU0FBUztBQUNULFdBQVc7QUFDWCxVQUFVLEVBQ1YsY0FBYyxFQUFFLFFBQVEsRUFDbEIsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQ2xELE1BQU0sRUFBRSxZQUFZLEVBQ3JCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFNeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUVwRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDO0FBRTVCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsUUFBbUIsRUFDbkIsYUFBNkM7SUFFN0MsS0FBSyxVQUFVLGlCQUFpQjtRQUM5QixJQUFJLE9BQU8sYUFBYSxLQUFLLFVBQVUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwRSxPQUFPLE1BQU8sYUFBbUMsRUFBRSxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxhQUEyQixDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRyxRQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFP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QUssSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxZQUFZO29CQUFFLE9BQU87Z0JBQzVDLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFpQixDQUFDO2dCQUM3RCxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLElBQUksQ0FBQyxVQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNqRSxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO3VHQS9HVSxtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsa0NBQWtDO2lCQUNuQzt3REFZNEIsUUFBUTtzQkFBbEMsTUFBTTt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50TWlycm9yLCBDb21wb25lbnRSZWYsIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgLy8gybVvdXRwdXQsXG4gIEVsZW1lbnRSZWYsIEVtYmVkZGVkVmlld1JlZixcbiAgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBTaW1wbGVDaGFuZ2UsIFNpbXBsZUNoYW5nZXMsXG4gIFR5cGUsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCwgaW5wdXQsIFBMQVRGT1JNX0lELFxuICBPdXRwdXQsIEV2ZW50RW1pdHRlclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5pbXBvcnQgeyByZWZsZWN0Q29tcG9uZW50VHlwZSwgT25Jbml0LCBPbkNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcIi4vYWN0aW9uXCI7XG5cbmV4cG9ydCB0eXBlIFR5cGVGYWN0b3J5QXN5bmM8VD4gPSAoKSA9PiBQcm9taXNlPFR5cGU8VD4+O1xuXG5leHBvcnQgdHlwZSBUeXBlRmFjdG9yeTxUPiA9ICgpID0+IChUeXBlPFQ+IHwgUHJvbWlzZTxUeXBlPFQ+Pik7XG5pbXBvcnQgeyBwcm94eUZha2VDb21wdXRlZElucHV0cyB9IGZyb20gXCIuL3NpZ25hbHNcIjtcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5leHBvcnQgY29uc3QgVE9LRU4gPSAnzpR0a24nO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNvbXBvbmVudDxBQlMgPSBhbnksIElNUEwgPSBhbnk+KFxuICBhYnN0cmFjdDogVHlwZTxBQlM+LFxuICB0eXBlT3JGYWN0b3J5OiBUeXBlPElNUEw+IHwgVHlwZUZhY3Rvcnk8SU1QTD4sXG4pIHtcbiAgYXN5bmMgZnVuY3Rpb24gbG9hZENvbXBvbmVudFR5cGUoKTogUHJvbWlzZTxUeXBlPElNUEw+PiB7XG4gICAgaWYgKHR5cGVvZiB0eXBlT3JGYWN0b3J5ID09PSAnZnVuY3Rpb24nICYmICF0eXBlT3JGYWN0b3J5LnByb3RvdHlwZSkge1xuICAgICAgcmV0dXJuIGF3YWl0ICh0eXBlT3JGYWN0b3J5IGFzIFR5cGVGYWN0b3J5PElNUEw+KSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHlwZU9yRmFjdG9yeSBhcyBUeXBlPElNUEw+O1xuICAgIH1cbiAgfVxuICByZXR1cm4geyBwcm92aWRlOiAoYWJzdHJhY3QgYXMgYW55KVtUT0tFTl0sIHVzZVZhbHVlOiBsb2FkQ29tcG9uZW50VHlwZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVG9rZW5pemVkVHlwZSgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgVHlwZTxhbnk+Pih0eXBlOiBUKSB7XG4gICAgKHR5cGUgYXMgYW55KVtUT0tFTl0gPSBuZXcgSW5qZWN0aW9uVG9rZW48VD4odHlwZS5uYW1lKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRva2VuKHR5cGU6IFR5cGU8YW55Pikge1xuICByZXR1cm4gKHR5cGUgYXMgYW55KVtUT0tFTl07XG59XG5cbmV4cG9ydCBlbnVtIEhvc3RUeXBlIHtcbiAgRGlyID0gJ8m1ZGlyJyxcbiAgQ21wID0gJ8m1Y21wJyxcbn1cblxudHlwZSBJTyA9IHtwcm9wTmFtZTogc3RyaW5nLCB0ZW1wbGF0ZU5hbWU6IHN0cmluZ307XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXRhPFQ+KHR5cGU6IFR5cGU8VD4pIHtcbiAgcmV0dXJuICh0eXBlIGFzIGFueSlbSG9zdFR5cGUuQ21wXSB8fCAodHlwZSBhcyBhbnkpW0hvc3RUeXBlLkRpcl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dHM8VD4odHlwZTogVHlwZTxUPik6IElPW10ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXM8c3RyaW5nPihnZXRNZXRhKHR5cGUpWydpbnB1dHMnXSlcbiAgICAubWFwKChbdGVtcGxhdGVOYW1lLCBbcHJvcE5hbWVdXSkgPT4gKHtwcm9wTmFtZSwgdGVtcGxhdGVOYW1lfSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0cHV0czxUPih0eXBlOiBUeXBlPFQ+KTogSU9bXSB7XG4gIGNvbnN0IG1ldGEgPSBnZXRNZXRhKHR5cGUpO1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXM8c3RyaW5nPihtZXRhWydvdXRwdXRzJ10pXG4gICAgLm1hcCgoW3RlbXBsYXRlTmFtZSwgcHJvcE5hbWVdKSA9PiAoe3Byb3BOYW1lLCB0ZW1wbGF0ZU5hbWV9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dHNCeUNvbXBvbmVudFJlZjxUIGV4dGVuZHMge30gPSBhbnk+KGNtcDogQ29tcG9uZW50UmVmPFQ+KTogSU9bXSB7XG4gIHJldHVybiBnZXRJbnB1dHMoY21wLmluc3RhbmNlLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T3V0cHV0c0J5SW5zdGFuY2U8VCBleHRlbmRzIHt9ID0gYW55PihjbXA6IENvbXBvbmVudFJlZjxUPik6IElPW10ge1xuICByZXR1cm4gZ2V0T3V0cHV0cyhjbXAuaW5zdGFuY2UuY29uc3RydWN0b3IgYXMgVHlwZTxUPik7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICAvLyBob3N0OiB7bmdTa2lwSHlkcmF0aW9uOiAndHJ1ZSd9XG59KVxuZXhwb3J0IGNsYXNzIEluamVjdGFibGVDb21wb25lbnQ8VCA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIHJlYWRvbmx5ICNwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcmVhZG9ubHkgI3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSAjZWw6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+ID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICAjY29tcG9uZW50OiBDb21wb25lbnRSZWY8VD4gfCBudWxsID0gbnVsbDtcbiAgI2NvbXBvbmVudE1pcnJvcjogQ29tcG9uZW50TWlycm9yPFQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcmVhZG9ubHkgaW5qZWN0YWJsZSA9IGlucHV0KGZhbHNlLCB7dHJhbnNmb3JtOiAodmFsdWU6IGFueSkgPT4gdmFsdWUgPT09ICcnID8gdHJ1ZSA6IHZhbHVlLCBhbGlhczogJ2luamVjdGFibGUnfSk7XG4gIC8vIHJlYWRvbmx5IF9fYWN0aW9uID0gybVvdXRwdXQ8QWN0aW9uPih7YWxpYXM6ICdhY3Rpb24nfSk7XG4gIEBPdXRwdXQoJ2FjdGlvbicpIHJlYWRvbmx5IF9fYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxBY3Rpb24+KCk7XG5cbiAgZGlzcGF0Y2goYWN0aW9uOiBBY3Rpb24pIHtcbiAgICB0aGlzLl9fYWN0aW9uLmVtaXQoYWN0aW9uKTtcbiAgfVxuXG4gIGdldCAjaW5wdXRzKCk6IElPW10ge1xuICAgIGNvbnN0IGFicyA9IGdldElucHV0cyh0aGlzLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pO1xuICAgIHJldHVybiBhYnM7XG4gIH1cblxuICBnZXQgI291dHB1dHMoKTogSU9bXSB7XG4gICAgY29uc3QgYWJzID0gZ2V0T3V0cHV0cyh0aGlzLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pO1xuICAgIHJldHVybiBhYnM7XG4gICAgLy8gY29uc3QgaW1wbCA9IHRoaXMuI2NvbXBvbmVudE1pcnJvciEub3V0cHV0cztcbiAgICAvLyByZXR1cm4gYWJzLmZpbHRlcihhYnN0cmFjdE91dHB1dCA9PiBpbXBsLnNvbWUoaW1wbE91dHB1dCA9PiBpbXBsT3V0cHV0LnRlbXBsYXRlTmFtZSA9PT0gYWJzdHJhY3RPdXRwdXQudGVtcGxhdGVOYW1lKSk7XG4gIH1cblxuICAjc2V0QXR0cmlidXRlKCkge1xuICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gKHRoaXMuI2NvbXBvbmVudCEuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiBOYW1lZE5vZGVNYXAgPSB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LmF0dHJpYnV0ZXM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlcy5pdGVtKGkpITtcbiAgICAgIGlmIChhdHRyLm5hbWUgPT09ICdpbmplY3RhYmxlJykge1xuICAgICAgICBob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2luamVjdGVkJywgJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2JpbmRJbnB1dHMoKSB7XG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiB0aGlzLiNpbnB1dHMpIHtcbiAgICAgIGlmIChpbnB1dC5wcm9wTmFtZSA9PT0gJ2luamVjdGFibGUnKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IHZhbHVlT3JJbnB1dFZhbHVlRm4gPSB0aGlzW2lucHV0LnByb3BOYW1lXTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIHZhbHVlT3JJbnB1dFZhbHVlRm4gPT09ICdmdW5jdGlvbicgPyB2YWx1ZU9ySW5wdXRWYWx1ZUZuKCkgOiB2YWx1ZU9ySW5wdXRWYWx1ZUZuO1xuICAgICAgdGhpcy4jY29tcG9uZW50IS5zZXRJbnB1dChpbnB1dC50ZW1wbGF0ZU5hbWUsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcHJvcE5hbWVzKCkge1xuICAgIHJldHVybiB0aGlzLiNpbnB1dHMubWFwKGlucHV0ID0+IGlucHV0LnByb3BOYW1lKTtcbiAgfVxuXG4gIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKCkge1xuICAgIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKHRoaXMsIHRoaXMucHJvcE5hbWVzKTtcbiAgfVxuXG4gICNiaW5kT3V0cHV0cygpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0aGlzLiNvdXRwdXRzKSB7XG4gICAgICAodGhpcy4jY29tcG9uZW50IS5pbnN0YW5jZSBhcyBhbnkpW291dHB1dC5wcm9wTmFtZV0/LnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKS5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHRoaXNbb3V0cHV0LnByb3BOYW1lXS5lbWl0KHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgI2JpbmRFdmVudHMoKSB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIFsnY2xpY2snXSkge1xuICAgICAgdGhpcy4jY29tcG9uZW50LmluamVjdG9yLmdldChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQobmFtZSwge30pKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuICBcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5wcm94eUZha2VDb21wdXRlZElucHV0cygpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuaW5qZWN0YWJsZSgpICYmIGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMuI3BsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLiNpbmplY3Rvci5nZXQ8VHlwZUZhY3RvcnlBc3luYzxUPj4oZ2V0VG9rZW4odGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpKSgpLnRoZW4odHlwZSA9PiB7XG4gICAgICAgIHRoaXMuI2NvbXBvbmVudCA9IHRoaXMuI3ZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHR5cGUsIHtcbiAgICAgICAgICBwcm9qZWN0YWJsZU5vZGVzOiBbXG4gICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2RlcylcbiAgICAgICAgICBdLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy4jY29tcG9uZW50TWlycm9yID0gcmVmbGVjdENvbXBvbmVudFR5cGUodHlwZSk7XG4gICAgICAgIHRoaXMuI2JpbmRJbnB1dHMoKTtcbiAgICAgICAgdGhpcy4jYmluZE91dHB1dHMoKTtcbiAgICAgICAgdGhpcy4jYmluZEV2ZW50cygpO1xuICAgICAgICB0aGlzLiNzZXRBdHRyaWJ1dGUoKTtcbiAgICAgICAgLy8gdGhpcy4jdmlld0NvbnRhaW5lclJlZi5yZW1vdmUoMCk7XG4gICAgICAgIHRoaXMuI2NvbXBvbmVudC5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgLy8gdGhpcy4jZWwubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMuaW5qZWN0YWJsZSgpICYmIHRoaXMuI2NvbXBvbmVudE1pcnJvcikge1xuICAgICAgZm9yIChjb25zdCBpbnB1dCBvZiB0aGlzLiNpbnB1dHMpIHtcbiAgICAgICAgaWYgKGlucHV0LnByb3BOYW1lID09PSAnaW5qZWN0YWJsZScpIHJldHVybjtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gc2ltcGxlQ2hhbmdlc1tpbnB1dC5wcm9wTmFtZV0gYXMgU2ltcGxlQ2hhbmdlO1xuICAgICAgICBpZiAoY2hhbmdlKSB7XG4gICAgICAgICAgdGhpcy4jY29tcG9uZW50IS5zZXRJbnB1dChpbnB1dC5wcm9wTmFtZSwgY2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0YWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9pbmplY3RhYmxlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQzBCLFVBQVUsRUFDekMsU0FBUztBQUNULFdBQVc7QUFDWCxVQUFVLEVBQ1YsY0FBYyxFQUFFLFFBQVEsRUFDbEIsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQ2xELE1BQU0sRUFBRSxZQUFZLEVBQ3JCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFNeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUVwRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDO0FBRTVCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsUUFBbUIsRUFDbkIsYUFBNkM7SUFFN0MsS0FBSyxVQUFVLGlCQUFpQjtRQUM5QixJQUFJLE9BQU8sYUFBYSxLQUFLLFVBQVUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwRSxPQUFPLE1BQU8sYUFBbUMsRUFBRSxDQUFDO1FBQ3RELENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxhQUEyQixDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRyxRQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0FBQzVFLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFP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QzlDLG1DQUFtQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVyxDQUFDLGFBQTRCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQy9DLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNqQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssWUFBWTtvQkFBRSxPQUFPO2dCQUM1QyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBaUIsQ0FBQztnQkFDN0QsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzdDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7dUdBakhVLG1CQUFtQjsyRkFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixrQ0FBa0M7aUJBQ25DO3dEQVk0QixRQUFRO3NCQUFsQyxNQUFNO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRNaXJyb3IsIENvbXBvbmVudFJlZiwgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICAvLyDJtW91dHB1dCxcbiAgRWxlbWVudFJlZiwgRW1iZWRkZWRWaWV3UmVmLFxuICBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIFNpbXBsZUNoYW5nZSwgU2ltcGxlQ2hhbmdlcyxcbiAgVHlwZSwgVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0LCBpbnB1dCwgUExBVEZPUk1fSUQsXG4gIE91dHB1dCwgRXZlbnRFbWl0dGVyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IHJlZmxlY3RDb21wb25lbnRUeXBlLCBPbkluaXQsIE9uQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi9hY3Rpb25cIjtcblxuZXhwb3J0IHR5cGUgVHlwZUZhY3RvcnlBc3luYzxUPiA9ICgpID0+IFByb21pc2U8VHlwZTxUPj47XG5cbmV4cG9ydCB0eXBlIFR5cGVGYWN0b3J5PFQ+ID0gKCkgPT4gKFR5cGU8VD4gfCBQcm9taXNlPFR5cGU8VD4+KTtcbmltcG9ydCB7IHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzIH0gZnJvbSBcIi4vc2lnbmFsc1wiO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbmV4cG9ydCBjb25zdCBUT0tFTiA9ICfOlHRrbic7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQ29tcG9uZW50PEFCUyA9IGFueSwgSU1QTCA9IGFueT4oXG4gIGFic3RyYWN0OiBUeXBlPEFCUz4sXG4gIHR5cGVPckZhY3Rvcnk6IFR5cGU8SU1QTD4gfCBUeXBlRmFjdG9yeTxJTVBMPixcbikge1xuICBhc3luYyBmdW5jdGlvbiBsb2FkQ29tcG9uZW50VHlwZSgpOiBQcm9taXNlPFR5cGU8SU1QTD4+IHtcbiAgICBpZiAodHlwZW9mIHR5cGVPckZhY3RvcnkgPT09ICdmdW5jdGlvbicgJiYgIXR5cGVPckZhY3RvcnkucHJvdG90eXBlKSB7XG4gICAgICByZXR1cm4gYXdhaXQgKHR5cGVPckZhY3RvcnkgYXMgVHlwZUZhY3Rvcnk8SU1QTD4pKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0eXBlT3JGYWN0b3J5IGFzIFR5cGU8SU1QTD47XG4gICAgfVxuICB9XG4gIHJldHVybiB7IHByb3ZpZGU6IChhYnN0cmFjdCBhcyBhbnkpW1RPS0VOXSwgdXNlVmFsdWU6IGxvYWRDb21wb25lbnRUeXBlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUb2tlbml6ZWRUeXBlKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBUeXBlPGFueT4+KHR5cGU6IFQpIHtcbiAgICAodHlwZSBhcyBhbnkpW1RPS0VOXSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxUPih0eXBlLm5hbWUpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG9rZW4odHlwZTogVHlwZTxhbnk+KSB7XG4gIHJldHVybiAodHlwZSBhcyBhbnkpW1RPS0VOXTtcbn1cblxuZXhwb3J0IGVudW0gSG9zdFR5cGUge1xuICBEaXIgPSAnybVkaXInLFxuICBDbXAgPSAnybVjbXAnLFxufVxuXG50eXBlIElPID0ge3Byb3BOYW1lOiBzdHJpbmcsIHRlbXBsYXRlTmFtZTogc3RyaW5nfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1ldGE8VD4odHlwZTogVHlwZTxUPikge1xuICBpZiAoSG9zdFR5cGUuQ21wIGluIHR5cGUpIHtcbiAgICByZXR1cm4gdHlwZVtIb3N0VHlwZS5DbXBdO1xuICB9IGVsc2UgaWYgKEhvc3RUeXBlLkRpciBpbiB0eXBlKSB7XG4gICAgcmV0dXJuIHR5cGVbSG9zdFR5cGUuRGlyXTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5wdXRzPFQ+KHR5cGU6IFR5cGU8VD4pOiBJT1tdIHtcbiAgY29uc3QgbWV0YSA9IGdldE1ldGEodHlwZSk7XG4gIHJldHVybiBPYmplY3QuZW50cmllczxzdHJpbmc+KG1ldGFbJ2lucHV0cyddKVxuICAgIC5tYXAoKFt0ZW1wbGF0ZU5hbWUsIFtwcm9wTmFtZV1dKSA9PiAoe3Byb3BOYW1lLCB0ZW1wbGF0ZU5hbWV9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRwdXRzPFQ+KHR5cGU6IFR5cGU8VD4pOiBJT1tdIHtcbiAgY29uc3QgbWV0YSA9IGdldE1ldGEodHlwZSk7XG4gIHJldHVybiBPYmplY3QuZW50cmllczxzdHJpbmc+KG1ldGFbJ291dHB1dHMnXSlcbiAgICAubWFwKChbdGVtcGxhdGVOYW1lLCBwcm9wTmFtZV0pID0+ICh7cHJvcE5hbWUsIHRlbXBsYXRlTmFtZX0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0c0J5Q29tcG9uZW50UmVmPFQgZXh0ZW5kcyB7fSA9IGFueT4oY21wOiBDb21wb25lbnRSZWY8VD4pOiBJT1tdIHtcbiAgcmV0dXJuIGdldElucHV0cyhjbXAuaW5zdGFuY2UuY29uc3RydWN0b3IgYXMgVHlwZTxUPik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRwdXRzQnlJbnN0YW5jZTxUIGV4dGVuZHMge30gPSBhbnk+KGNtcDogQ29tcG9uZW50UmVmPFQ+KTogSU9bXSB7XG4gIHJldHVybiBnZXRPdXRwdXRzKGNtcC5pbnN0YW5jZS5jb25zdHJ1Y3RvciBhcyBUeXBlPFQ+KTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vIGhvc3Q6IHtuZ1NraXBIeWRyYXRpb246ICd0cnVlJ31cbn0pXG5leHBvcnQgY2xhc3MgSW5qZWN0YWJsZUNvbXBvbmVudDxUID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgcmVhZG9ubHkgI3BsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICByZWFkb25seSAjdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcmVhZG9ubHkgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcmVhZG9ubHkgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHJlYWRvbmx5ICNlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICNjb21wb25lbnQ6IENvbXBvbmVudFJlZjxUPiB8IG51bGwgPSBudWxsO1xuICAjY29tcG9uZW50TWlycm9yOiBDb21wb25lbnRNaXJyb3I8VD4gfCBudWxsID0gbnVsbDtcblxuICByZWFkb25seSBpbmplY3RhYmxlID0gaW5wdXQoZmFsc2UsIHt0cmFuc2Zvcm06ICh2YWx1ZTogYW55KSA9PiB2YWx1ZSA9PT0gJycgPyB0cnVlIDogdmFsdWUsIGFsaWFzOiAnaW5qZWN0YWJsZSd9KTtcbiAgLy8gcmVhZG9ubHkgX19hY3Rpb24gPSDJtW91dHB1dDxBY3Rpb24+KHthbGlhczogJ2FjdGlvbid9KTtcbiAgQE91dHB1dCgnYWN0aW9uJykgcmVhZG9ubHkgX19hY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPEFjdGlvbj4oKTtcblxuICBkaXNwYXRjaChhY3Rpb246IEFjdGlvbikge1xuICAgIHRoaXMuX19hY3Rpb24uZW1pdChhY3Rpb24pO1xuICB9XG5cbiAgZ2V0ICNpbnB1dHMoKTogSU9bXSB7XG4gICAgcmV0dXJuIGdldElucHV0cyh0aGlzLmNvbnN0cnVjdG9yIGFzIFR5cGU8VD4pO1xuICB9XG5cbiAgZ2V0ICNvdXRwdXRzKCk6IElPW10ge1xuICAgIHJldHVybiBnZXRPdXRwdXRzKHRoaXMuY29uc3RydWN0b3IgYXMgVHlwZTxUPik7XG4gICAgLy8gY29uc3QgaW1wbCA9IHRoaXMuI2NvbXBvbmVudE1pcnJvciEub3V0cHV0cztcbiAgICAvLyByZXR1cm4gYWJzLmZpbHRlcihhYnN0cmFjdE91dHB1dCA9PiBpbXBsLnNvbWUoaW1wbE91dHB1dCA9PiBpbXBsT3V0cHV0LnRlbXBsYXRlTmFtZSA9PT0gYWJzdHJhY3RPdXRwdXQudGVtcGxhdGVOYW1lKSk7XG4gIH1cblxuICAjc2V0QXR0cmlidXRlKCkge1xuICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gKHRoaXMuI2NvbXBvbmVudCEuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBhdHRyaWJ1dGVzOiBOYW1lZE5vZGVNYXAgPSB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LmF0dHJpYnV0ZXM7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlcy5pdGVtKGkpITtcbiAgICAgIGlmIChhdHRyLm5hbWUgPT09ICdpbmplY3RhYmxlJykge1xuICAgICAgICBob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2luamVjdGVkJywgJycpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2JpbmRJbnB1dHMoKSB7XG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiB0aGlzLiNpbnB1dHMpIHtcbiAgICAgIGlmIChpbnB1dC5wcm9wTmFtZSA9PT0gJ2luamVjdGFibGUnKSBjb250aW51ZTtcbiAgICAgIGNvbnN0IHZhbHVlT3JJbnB1dFZhbHVlRm4gPSB0aGlzW2lucHV0LnByb3BOYW1lXTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdHlwZW9mIHZhbHVlT3JJbnB1dFZhbHVlRm4gPT09ICdmdW5jdGlvbicgPyB2YWx1ZU9ySW5wdXRWYWx1ZUZuKCkgOiB2YWx1ZU9ySW5wdXRWYWx1ZUZuO1xuICAgICAgdGhpcy4jc2V0SW5wdXQoaW5wdXQsIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgcHJvcE5hbWVzKCkge1xuICAgIHJldHVybiB0aGlzLiNpbnB1dHMubWFwKGlucHV0ID0+IGlucHV0LnByb3BOYW1lKTtcbiAgfVxuXG4gIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKCkge1xuICAgIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKHRoaXMsIHRoaXMucHJvcE5hbWVzKTtcbiAgfVxuXG4gICNiaW5kT3V0cHV0cygpIHtcbiAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiB0aGlzLiNvdXRwdXRzKSB7XG4gICAgICAodGhpcy4jY29tcG9uZW50IS5pbnN0YW5jZSBhcyBhbnkpW291dHB1dC5wcm9wTmFtZV0/LnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKS5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHRoaXNbb3V0cHV0LnByb3BOYW1lXS5lbWl0KHZhbHVlKSk7XG4gICAgfVxuICB9XG5cbiAgI2JpbmRFdmVudHMoKSB7XG4gICAgZm9yIChjb25zdCBuYW1lIG9mIFsnY2xpY2snXSkge1xuICAgICAgdGhpcy4jY29tcG9uZW50LmluamVjdG9yLmdldChFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIobmFtZSwgKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQobmFtZSwge30pKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNzZXRJbnB1dChpbnB1dDoge3Byb3BOYW1lOiBzdHJpbmcsIHRlbXBsYXRlTmFtZTogc3RyaW5nfSwgdmFsdWU6IGFueSkge1xuICAgIHRoaXMuI2NvbXBvbmVudCEuc2V0SW5wdXQoaW5wdXQ/LnRlbXBsYXRlTmFtZSwgdmFsdWUpO1xuICB9XG4gIFxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5pbmplY3RhYmxlKCkgJiYgaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy4jcGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMuI2luamVjdG9yLmdldDxUeXBlRmFjdG9yeUFzeW5jPFQ+PihnZXRUb2tlbih0aGlzLmNvbnN0cnVjdG9yIGFzIGFueSkpKCkudGhlbih0eXBlID0+IHtcbiAgICAgICAgdGhpcy4jY29tcG9uZW50ID0gdGhpcy4jdmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQodHlwZSwge1xuICAgICAgICAgIHByb2plY3RhYmxlTm9kZXM6IFtcbiAgICAgICAgICAgIEFycmF5LmZyb20odGhpcy4jZWwubmF0aXZlRWxlbWVudC5jaGlsZE5vZGVzKVxuICAgICAgICAgIF0sXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLiNjb21wb25lbnRNaXJyb3IgPSByZWZsZWN0Q29tcG9uZW50VHlwZSh0eXBlKTtcbiAgICAgICAgdGhpcy4jYmluZElucHV0cygpO1xuICAgICAgICB0aGlzLiNiaW5kT3V0cHV0cygpO1xuICAgICAgICB0aGlzLiNiaW5kRXZlbnRzKCk7XG4gICAgICAgIHRoaXMuI3NldEF0dHJpYnV0ZSgpO1xuICAgICAgICAvLyB0aGlzLiN2aWV3Q29udGFpbmVyUmVmLnJlbW92ZSgwKTtcbiAgICAgICAgdGhpcy4jY29tcG9uZW50LmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy4jZWwubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAvLyB0aGlzLiNlbC5uYXRpdmVFbGVtZW50LnJlbW92ZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucHJveHlGYWtlQ29tcHV0ZWRJbnB1dHMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5pbmplY3RhYmxlKCkgJiYgdGhpcy4jY29tcG9uZW50TWlycm9yKSB7XG4gICAgICBmb3IgKGNvbnN0IGlucHV0IG9mIHRoaXMuI2lucHV0cykge1xuICAgICAgICBpZiAoaW5wdXQucHJvcE5hbWUgPT09ICdpbmplY3RhYmxlJykgcmV0dXJuO1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSBzaW1wbGVDaGFuZ2VzW2lucHV0LnByb3BOYW1lXSBhcyBTaW1wbGVDaGFuZ2U7XG4gICAgICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgICAgICB0aGlzLiNzZXRJbnB1dChpbnB1dCwgY2hhbmdlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { isObservable, lastValueFrom } from 'rxjs';
2
+ export async function wrapLoadChildren(loadChildrenCallback) {
3
+ const children = await loadChildrenCallback();
4
+ const _children = isObservable(children) ? await lastValueFrom(children) : children;
5
+ const __children = 'default' in _children ? _children.default : _children;
6
+ return __children;
7
+ }
8
+ export function recursiveWrapRoute(route, ...wrappers) {
9
+ const wrappedRoute = wrappers.reduce((acc, wrapper) => wrapper(acc), route);
10
+ return {
11
+ ...wrappedRoute,
12
+ children: wrappedRoute.children
13
+ ? recursiveWrapRoutes(wrappedRoute.children, ...wrappers)
14
+ : undefined,
15
+ loadChildren: wrappedRoute.loadChildren
16
+ ? () => wrapLoadChildren(wrappedRoute.loadChildren).then(routes => recursiveWrapRoutes(routes, ...wrappers))
17
+ : undefined,
18
+ };
19
+ }
20
+ export function recursiveWrapRoutes(routes, ...wrappers) {
21
+ return routes.map(route => recursiveWrapRoute(route, ...wrappers));
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvcmUvc3JjL2xpYi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUNwQyxvQkFBMEM7SUFFMUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO0lBQzlDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNwRixNQUFNLFVBQVUsR0FBRyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUUsT0FBTyxVQUFzQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBWSxFQUFFLEdBQUcsUUFBcUM7SUFDdkYsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RSxPQUFPO1FBQ0wsR0FBRyxZQUFZO1FBQ2YsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQzdCLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsUUFBUSxDQUFDO1lBQ3pELENBQUMsQ0FBQyxTQUFTO1FBQ2IsWUFBWSxFQUFFLFlBQVksQ0FBQyxZQUFZO1lBQ3JDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDNUcsQ0FBQyxDQUFDLFNBQVM7S0FDZCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsR0FBRyxRQUFxQztJQUMxRixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2FkQ2hpbGRyZW5DYWxsYmFjaywgUm91dGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBpc09ic2VydmFibGUsIGxhc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyYXBMb2FkQ2hpbGRyZW4oXG4gIGxvYWRDaGlsZHJlbkNhbGxiYWNrOiBMb2FkQ2hpbGRyZW5DYWxsYmFja1xuKTogUHJvbWlzZTxSb3V0ZXM+IHtcbiAgY29uc3QgY2hpbGRyZW4gPSBhd2FpdCBsb2FkQ2hpbGRyZW5DYWxsYmFjaygpO1xuICBjb25zdCBfY2hpbGRyZW4gPSBpc09ic2VydmFibGUoY2hpbGRyZW4pID8gYXdhaXQgbGFzdFZhbHVlRnJvbShjaGlsZHJlbikgOiBjaGlsZHJlbjtcbiAgY29uc3QgX19jaGlsZHJlbiA9ICdkZWZhdWx0JyBpbiBfY2hpbGRyZW4gPyBfY2hpbGRyZW4uZGVmYXVsdCA6IF9jaGlsZHJlbjtcbiAgcmV0dXJuIF9fY2hpbGRyZW4gYXMgbmV2ZXIgYXMgUHJvbWlzZTxSb3V0ZXM+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVjdXJzaXZlV3JhcFJvdXRlKHJvdXRlOiBSb3V0ZSwgLi4ud3JhcHBlcnM6ICgocm91dGU6IFJvdXRlKSA9PiBSb3V0ZSlbXSk6IFJvdXRlIHtcbiAgY29uc3Qgd3JhcHBlZFJvdXRlID0gd3JhcHBlcnMucmVkdWNlKChhY2MsIHdyYXBwZXIpID0+IHdyYXBwZXIoYWNjKSwgcm91dGUpO1xuICByZXR1cm4ge1xuICAgIC4uLndyYXBwZWRSb3V0ZSxcbiAgICBjaGlsZHJlbjogd3JhcHBlZFJvdXRlLmNoaWxkcmVuIFxuICAgICAgPyByZWN1cnNpdmVXcmFwUm91dGVzKHdyYXBwZWRSb3V0ZS5jaGlsZHJlbiwgLi4ud3JhcHBlcnMpXG4gICAgICA6IHVuZGVmaW5lZCxcbiAgICBsb2FkQ2hpbGRyZW46IHdyYXBwZWRSb3V0ZS5sb2FkQ2hpbGRyZW4gXG4gICAgICA/ICgpID0+IHdyYXBMb2FkQ2hpbGRyZW4od3JhcHBlZFJvdXRlLmxvYWRDaGlsZHJlbikudGhlbihyb3V0ZXMgPT4gcmVjdXJzaXZlV3JhcFJvdXRlcyhyb3V0ZXMsIC4uLndyYXBwZXJzKSlcbiAgICAgIDogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVjdXJzaXZlV3JhcFJvdXRlcyhyb3V0ZXM6IFJvdXRlcywgLi4ud3JhcHBlcnM6ICgocm91dGU6IFJvdXRlKSA9PiBSb3V0ZSlbXSk6IFJvdXRlcyB7XG4gIHJldHVybiByb3V0ZXMubWFwKHJvdXRlID0+IHJlY3Vyc2l2ZVdyYXBSb3V0ZShyb3V0ZSwgLi4ud3JhcHBlcnMpKTtcbn1cbiJdfQ==
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
57
57
  type: Pipe,
58
58
  args: [{ name: 'call', standalone: true, pure: true }]
59
59
  }] });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29yZS9zcmMvbGliL3NpZ25hbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixJQUFJLEVBQVUsUUFBUSxFQUFFLFFBQVEsRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXZHLFNBQVMsSUFBSSxDQUFJLGFBQTRCO0lBQzNDLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0FBQ3pFLENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsWUFBaUI7SUFDN0QsT0FBTyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7UUFDN0IsS0FBSyxFQUFFLFVBQVUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJO1lBQzlCLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLG1CQUF3QjtJQUNsRCxPQUFPLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztBQUMzRixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQVcsRUFBRSxNQUFnQjtJQUNuRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUVyRSxNQUFNLFVBQVUsT0FBTyxDQUFDLE1BQVcsRUFBRSxRQUFnQjtJQUNuRCxJQUFJLFlBQWlCLENBQUM7SUFDdEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO1FBQ3RDLEdBQUc7WUFDRCxPQUFPLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDN0IsS0FBSyxFQUFFLFVBQVUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJO29CQUM5QixNQUFNLGFBQWEsR0FBUSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDM0MsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ25FLENBQUM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsR0FBRyxDQUFDLEtBQUs7WUFDUCxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBSSxXQUFvQixFQUFFLE9BQWtDO0lBQ3RGLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFlLENBQUM7SUFDL0QsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNoQyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBSSxXQUFvQixFQUFFLE9BQWtDO0lBQ25GLE9BQU8sWUFBWSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUFjO0lBQzNDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFHRCxNQUFNLE9BQU8sUUFBUTtJQUNuQixTQUFTLENBQUksS0FBb0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQzt1R0FIVSxRQUFRO3FHQUFSLFFBQVE7OzJGQUFSLFFBQVE7a0JBRHBCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyZWF0ZUNvbXB1dGVkT3B0aW9ucywgUGlwZSwgU2lnbmFsLCBjb21wdXRlZCwgaXNTaWduYWwsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5mdW5jdGlvbiBjYWxsPFQ+KHZhbHVlT3JTaWduYWw6IFNpZ25hbDxUPiB8IFQpOiBUIHtcbiAgcmV0dXJuIGlzU2lnbmFsKHZhbHVlT3JTaWduYWwpID8gY2FsbCh2YWx1ZU9yU2lnbmFsKCkpIDogdmFsdWVPclNpZ25hbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRWYWx1ZUZuKGlucHV0VmFsdWVGbjogYW55KSB7XG4gIHJldHVybiBuZXcgUHJveHkoaW5wdXRWYWx1ZUZuLCB7XG4gICAgYXBwbHk6IGZ1bmN0aW9uICh0YXJnZXQsIF8sIGFyZ3MpIHtcbiAgICAgIHJldHVybiBjb21wdXRlRmFrZSh0YXJnZXQoLi4uYXJncykpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlRmFrZSh2YWx1ZU9yRmFrZUNvbXB1dGVkOiBhbnkpIHtcbiAgcmV0dXJuIGlzRmFrZUNvbXB1dGVkKHZhbHVlT3JGYWtlQ29tcHV0ZWQpID8gdmFsdWVPckZha2VDb21wdXRlZCgpIDogdmFsdWVPckZha2VDb21wdXRlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKHRhcmdldDogYW55LCBpbnB1dHM6IHN0cmluZ1tdKSB7XG4gIGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaXNTaWduYWwodGFyZ2V0W2lucHV0XSkpLmZvckVhY2goaW5wdXQgPT4ge1xuICAgIHRhcmdldFtpbnB1dF0gPSBwcm94eUZha2VDb21wdXRlZElucHV0VmFsdWVGbih0YXJnZXRbaW5wdXRdKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBGQUtFX0NPTVBVVEVEID0gLyogQF9fUFVSRV9fICovIFN5bWJvbCgnRkFLRV9DT01QVVRFRCcpO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZSh0YXJnZXQ6IGFueSwgcHJvcE5hbWU6IHN0cmluZykge1xuICBsZXQgaW5wdXRWYWx1ZUZuOiBhbnk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BOYW1lLCB7XG4gICAgZ2V0KCkge1xuICAgICAgcmV0dXJuIG5ldyBQcm94eShpbnB1dFZhbHVlRm4sIHtcbiAgICAgICAgYXBwbHk6IGZ1bmN0aW9uICh0YXJnZXQsIF8sIGFyZ3MpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZU9yU2lnbmFsOiBhbnkgPSB0YXJnZXQoLi4uYXJncyk7XG4gICAgICAgICAgcmV0dXJuIGlzU2lnbmFsKHZhbHVlT3JTaWduYWwpID8gdmFsdWVPclNpZ25hbCgpIDogdmFsdWVPclNpZ25hbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgICBzZXQodmFsdWUpIHtcbiAgICAgIGlucHV0VmFsdWVGbiA9IHZhbHVlO1xuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFrZUNvbXB1dGVkPFQ+KGNvbXB1dGF0aW9uOiAoKSA9PiBULCBvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFQ+KTogVCB7XG4gIGNvbnN0IF9jb21wdXRlZCA9IGNvbXB1dGVkKGNvbXB1dGF0aW9uLCBvcHRpb25zKSBhcyBuZXZlciBhcyBUO1xuICBfY29tcHV0ZWRbRkFLRV9DT01QVVRFRF0gPSB0cnVlO1xuICByZXR1cm4gX2NvbXB1dGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX2NvbXB1dGVkPFQ+KGNvbXB1dGF0aW9uOiAoKSA9PiBULCBvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFQ+KTogVCB7XG4gIHJldHVybiBmYWtlQ29tcHV0ZWQoY29tcHV0YXRpb24sIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlQ29tcHV0ZWQoX2NvbXB1dGVkOiBhbnkpOiBfY29tcHV0ZWQgaXMgUmV0dXJuVHlwZTx0eXBlb2YgY29tcHV0ZWQ+IHtcbiAgcmV0dXJuICEhX2NvbXB1dGVkPy5bRkFLRV9DT01QVVRFRF07XG59XG5cbkBQaXBlKHsgbmFtZTogJ2NhbGwnLCBzdGFuZGFsb25lOiB0cnVlLCBwdXJlOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBDYWxsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VD4odmFsdWU6IFNpZ25hbDxUPiB8IFQpOiBUIHtcbiAgICByZXR1cm4gY2FsbCh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29yZS9zcmMvbGliL3NpZ25hbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixJQUFJLEVBQVUsUUFBUSxFQUFFLFFBQVEsRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXZHLFNBQVMsSUFBSSxDQUFJLGFBQTRCO0lBQzNDLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0FBQ3pFLENBQUM7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsWUFBaUI7SUFDN0QsT0FBTyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7UUFDN0IsS0FBSyxFQUFFLFVBQVUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJO1lBQzlCLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFJLG1CQUFzQjtJQUNuRCxPQUFPLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsRUFBTyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztBQUNoRyxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQVcsRUFBRSxNQUFnQjtJQUNuRSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlELE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyw2QkFBNkIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUVyRSxNQUFNLFVBQVUsT0FBTyxDQUFDLE1BQVcsRUFBRSxRQUFnQjtJQUNuRCxJQUFJLFlBQWlCLENBQUM7SUFDdEIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFO1FBQ3RDLEdBQUc7WUFDRCxPQUFPLElBQUksS0FBSyxDQUFDLFlBQVksRUFBRTtnQkFDN0IsS0FBSyxFQUFFLFVBQVUsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJO29CQUM5QixNQUFNLGFBQWEsR0FBUSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDM0MsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ25FLENBQUM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsR0FBRyxDQUFDLEtBQUs7WUFDUCxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBSSxXQUFvQixFQUFFLE9BQWtDO0lBQ3RGLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFlLENBQUM7SUFDL0QsU0FBUyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNoQyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBSSxXQUFvQixFQUFFLE9BQWtDO0lBQ25GLE9BQU8sWUFBWSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUFjO0lBQzNDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFHRCxNQUFNLE9BQU8sUUFBUTtJQUNuQixTQUFTLENBQUksS0FBb0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQzt1R0FIVSxRQUFRO3FHQUFSLFFBQVE7OzJGQUFSLFFBQVE7a0JBRHBCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENyZWF0ZUNvbXB1dGVkT3B0aW9ucywgUGlwZSwgU2lnbmFsLCBjb21wdXRlZCwgaXNTaWduYWwsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5mdW5jdGlvbiBjYWxsPFQ+KHZhbHVlT3JTaWduYWw6IFNpZ25hbDxUPiB8IFQpOiBUIHtcbiAgcmV0dXJuIGlzU2lnbmFsKHZhbHVlT3JTaWduYWwpID8gY2FsbCh2YWx1ZU9yU2lnbmFsKCkpIDogdmFsdWVPclNpZ25hbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRWYWx1ZUZuKGlucHV0VmFsdWVGbjogYW55KSB7XG4gIHJldHVybiBuZXcgUHJveHkoaW5wdXRWYWx1ZUZuLCB7XG4gICAgYXBwbHk6IGZ1bmN0aW9uICh0YXJnZXQsIF8sIGFyZ3MpIHtcbiAgICAgIHJldHVybiBjb21wdXRlRmFrZSh0YXJnZXQoLi4uYXJncykpO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlRmFrZTxUPih2YWx1ZU9yRmFrZUNvbXB1dGVkOiBUKTogVCB7XG4gIHJldHVybiBpc0Zha2VDb21wdXRlZCh2YWx1ZU9yRmFrZUNvbXB1dGVkKSA/IHZhbHVlT3JGYWtlQ29tcHV0ZWQoKSBhcyBUIDogdmFsdWVPckZha2VDb21wdXRlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3h5RmFrZUNvbXB1dGVkSW5wdXRzKHRhcmdldDogYW55LCBpbnB1dHM6IHN0cmluZ1tdKSB7XG4gIGlucHV0cy5maWx0ZXIoaW5wdXQgPT4gaXNTaWduYWwodGFyZ2V0W2lucHV0XSkpLmZvckVhY2goaW5wdXQgPT4ge1xuICAgIHRhcmdldFtpbnB1dF0gPSBwcm94eUZha2VDb21wdXRlZElucHV0VmFsdWVGbih0YXJnZXRbaW5wdXRdKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBGQUtFX0NPTVBVVEVEID0gLyogQF9fUFVSRV9fICovIFN5bWJvbCgnRkFLRV9DT01QVVRFRCcpO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZSh0YXJnZXQ6IGFueSwgcHJvcE5hbWU6IHN0cmluZykge1xuICBsZXQgaW5wdXRWYWx1ZUZuOiBhbnk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHByb3BOYW1lLCB7XG4gICAgZ2V0KCkge1xuICAgICAgcmV0dXJuIG5ldyBQcm94eShpbnB1dFZhbHVlRm4sIHtcbiAgICAgICAgYXBwbHk6IGZ1bmN0aW9uICh0YXJnZXQsIF8sIGFyZ3MpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZU9yU2lnbmFsOiBhbnkgPSB0YXJnZXQoLi4uYXJncyk7XG4gICAgICAgICAgcmV0dXJuIGlzU2lnbmFsKHZhbHVlT3JTaWduYWwpID8gdmFsdWVPclNpZ25hbCgpIDogdmFsdWVPclNpZ25hbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSxcbiAgICBzZXQodmFsdWUpIHtcbiAgICAgIGlucHV0VmFsdWVGbiA9IHZhbHVlO1xuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmFrZUNvbXB1dGVkPFQ+KGNvbXB1dGF0aW9uOiAoKSA9PiBULCBvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFQ+KTogVCB7XG4gIGNvbnN0IF9jb21wdXRlZCA9IGNvbXB1dGVkKGNvbXB1dGF0aW9uLCBvcHRpb25zKSBhcyBuZXZlciBhcyBUO1xuICBfY29tcHV0ZWRbRkFLRV9DT01QVVRFRF0gPSB0cnVlO1xuICByZXR1cm4gX2NvbXB1dGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX2NvbXB1dGVkPFQ+KGNvbXB1dGF0aW9uOiAoKSA9PiBULCBvcHRpb25zPzogQ3JlYXRlQ29tcHV0ZWRPcHRpb25zPFQ+KTogVCB7XG4gIHJldHVybiBmYWtlQ29tcHV0ZWQoY29tcHV0YXRpb24sIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGYWtlQ29tcHV0ZWQoX2NvbXB1dGVkOiBhbnkpOiBfY29tcHV0ZWQgaXMgUmV0dXJuVHlwZTx0eXBlb2YgY29tcHV0ZWQ+IHtcbiAgcmV0dXJuICEhX2NvbXB1dGVkPy5bRkFLRV9DT01QVVRFRF07XG59XG5cbkBQaXBlKHsgbmFtZTogJ2NhbGwnLCBzdGFuZGFsb25lOiB0cnVlLCBwdXJlOiB0cnVlfSlcbmV4cG9ydCBjbGFzcyBDYWxsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm08VD4odmFsdWU6IFNpZ25hbDxUPiB8IFQpOiBUIHtcbiAgICByZXR1cm4gY2FsbCh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -6,6 +6,7 @@ import { validateSync } from 'class-validator';
6
6
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
7
  import { isPlatformBrowser } from '@angular/common';
8
8
  import { SIGNAL } from '@angular/core/primitives/signals';
9
+ import { isObservable, lastValueFrom } from 'rxjs';
9
10
  import { ActivatedRoute } from '@angular/router';
10
11
 
11
12
  class EffectMap extends Map {
@@ -72,7 +73,7 @@ function injectEffectReducer(injector = inject(Injector)) {
72
73
 
73
74
  class NgAtomicActionLogger {
74
75
  log(action, scope = 'default') {
75
- console.debug(action, scope);
76
+ console.info(`[NgAtomicActionLogger] ${action?.name}`, { action, scope });
76
77
  }
77
78
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NgAtomicActionLogger, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
78
79
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NgAtomicActionLogger, providedIn: 'root' });
@@ -157,8 +158,9 @@ function createAction(type, schema, options = {}) {
157
158
  create: (payload = {}, meta = {}) => ({
158
159
  id: type,
159
160
  payload,
160
- name: meta?.name ?? options.name ?? type,
161
- icon: meta?.icon ?? options.icon,
161
+ name: options.name ?? type,
162
+ icon: options.icon,
163
+ ...meta,
162
164
  }),
163
165
  };
164
166
  }
@@ -247,10 +249,16 @@ var HostType;
247
249
  HostType["Cmp"] = "\u0275cmp";
248
250
  })(HostType || (HostType = {}));
249
251
  function getMeta(type) {
250
- return type[HostType.Cmp] || type[HostType.Dir];
252
+ if (HostType.Cmp in type) {
253
+ return type[HostType.Cmp];
254
+ }
255
+ else if (HostType.Dir in type) {
256
+ return type[HostType.Dir];
257
+ }
251
258
  }
252
259
  function getInputs(type) {
253
- return Object.entries(getMeta(type)['inputs'])
260
+ const meta = getMeta(type);
261
+ return Object.entries(meta['inputs'])
254
262
  .map(([templateName, [propName]]) => ({ propName, templateName }));
255
263
  }
256
264
  function getOutputs(type) {
@@ -279,12 +287,10 @@ class InjectableComponent {
279
287
  this.__action.emit(action);
280
288
  }
281
289
  get #inputs() {
282
- const abs = getInputs(this.constructor);
283
- return abs;
290
+ return getInputs(this.constructor);
284
291
  }
285
292
  get #outputs() {
286
- const abs = getOutputs(this.constructor);
287
- return abs;
293
+ return getOutputs(this.constructor);
288
294
  // const impl = this.#componentMirror!.outputs;
289
295
  // return abs.filter(abstractOutput => impl.some(implOutput => implOutput.templateName === abstractOutput.templateName));
290
296
  }
@@ -307,7 +313,7 @@ class InjectableComponent {
307
313
  continue;
308
314
  const valueOrInputValueFn = this[input.propName];
309
315
  const value = typeof valueOrInputValueFn === 'function' ? valueOrInputValueFn() : valueOrInputValueFn;
310
- this.#component.setInput(input.templateName, value);
316
+ this.#setInput(input, value);
311
317
  }
312
318
  }
313
319
  get propNames() {
@@ -328,6 +334,9 @@ class InjectableComponent {
328
334
  });
329
335
  }
330
336
  }
337
+ #setInput(input, value) {
338
+ this.#component.setInput(input?.templateName, value);
339
+ }
331
340
  constructor() {
332
341
  this.proxyFakeComputedInputs();
333
342
  }
@@ -359,7 +368,7 @@ class InjectableComponent {
359
368
  return;
360
369
  const change = simpleChanges[input.propName];
361
370
  if (change) {
362
- this.#component.setInput(input.propName, change.currentValue);
371
+ this.#setInput(input, change.currentValue);
363
372
  }
364
373
  }
365
374
  }
@@ -406,6 +415,28 @@ function updateInput(instance, propName, updater) {
406
415
  }
407
416
  }
408
417
 
418
+ async function wrapLoadChildren(loadChildrenCallback) {
419
+ const children = await loadChildrenCallback();
420
+ const _children = isObservable(children) ? await lastValueFrom(children) : children;
421
+ const __children = 'default' in _children ? _children.default : _children;
422
+ return __children;
423
+ }
424
+ function recursiveWrapRoute(route, ...wrappers) {
425
+ const wrappedRoute = wrappers.reduce((acc, wrapper) => wrapper(acc), route);
426
+ return {
427
+ ...wrappedRoute,
428
+ children: wrappedRoute.children
429
+ ? recursiveWrapRoutes(wrappedRoute.children, ...wrappers)
430
+ : undefined,
431
+ loadChildren: wrappedRoute.loadChildren
432
+ ? () => wrapLoadChildren(wrappedRoute.loadChildren).then(routes => recursiveWrapRoutes(routes, ...wrappers))
433
+ : undefined,
434
+ };
435
+ }
436
+ function recursiveWrapRoutes(routes, ...wrappers) {
437
+ return routes.map(route => recursiveWrapRoute(route, ...wrappers));
438
+ }
439
+
409
440
  const NG_ATOMIC_DEBUG = new InjectionToken('NG_ATOMIC_DEBUG');
410
441
  function withNgAtomicDebug() {
411
442
  return { provide: NG_ATOMIC_DEBUG, useValue: true };
@@ -423,46 +454,54 @@ const DEBUG_CONFIG = {
423
454
  },
424
455
  excludes: ['frames', 'app', 'pages', 'atoms'],
425
456
  };
457
+ function getType(element) {
458
+ return element.tagName.toLowerCase().split('-')[0];
459
+ }
460
+ function getName(element) {
461
+ return element.tagName.toLowerCase();
462
+ }
463
+ function getLabel(element) {
464
+ const name = getName(element);
465
+ const type = getType(element);
466
+ if (DEBUG_CONFIG.excludes.includes(type))
467
+ return;
468
+ return `${name}${element.hasAttribute('injected') ? '[injected]' : ''}`;
469
+ }
426
470
  class DebugDirective {
427
471
  el = inject(ElementRef);
428
472
  platformId = inject(PLATFORM_ID);
429
- isDebug = inject(NG_ATOMIC_DEBUG, { optional: true }) ?? false;
473
+ isDebug = input(inject(NG_ATOMIC_DEBUG, { optional: true }) ?? false);
474
+ label = input(getLabel(this.el.nativeElement));
430
475
  ngOnInit() {
431
- if (isPlatformBrowser(this.platformId) && this.isDebug) {
432
- const name = this.el.nativeElement.tagName.toLowerCase();
433
- const type = name.split('-')[0];
434
- if (DEBUG_CONFIG.excludes.includes(type))
435
- return;
476
+ if (isPlatformBrowser(this.platformId) && this.isDebug()) {
477
+ const type = getType(this.el.nativeElement);
436
478
  const color = DEBUG_CONFIG.colors?.[type] ?? DEBUG_CONFIG.colors.default;
437
- // 1pxのアウトラインを設定
438
- this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;
439
- // 疑似要素でコンポーネント名を表示
440
- const labelEl = this.createLabelElement({
441
- name: `${name}${this.el.nativeElement.hasAttribute('injected') ? '[injected]' : ''}`,
442
- color
443
- });
444
- this.el.nativeElement.style.outlineOffset = '-1px';
445
- this.el.nativeElement.style.position = 'relative';
446
- this.el.nativeElement.appendChild(labelEl);
479
+ this.createLabelElement({ label: this.label(), color });
480
+ this.createOutline(color);
447
481
  }
448
482
  }
449
483
  createLabelElement(options) {
450
- const content = document.createElement('span');
451
- content.textContent = options.name;
452
- content.style.backgroundColor = `${options.color}`;
453
- content.style.color = '#fff';
454
- content.style.padding = '2px 4px';
455
- content.style.position = 'absolute';
456
- content.style.fontSize = '10px';
457
- content.style.top = '0';
458
- content.style.left = '0';
459
- content.style.zIndex = '9999';
460
- content.style.lineHeight = '1.5em';
461
- content.style.whiteSpace = 'nowrap';
462
- return content;
484
+ const el = document.createElement('span');
485
+ el.textContent = options.label;
486
+ el.style.backgroundColor = `${options.color}`;
487
+ el.style.color = '#fff';
488
+ el.style.padding = '2px 4px';
489
+ el.style.position = 'absolute';
490
+ el.style.fontSize = '10px';
491
+ el.style.top = '0';
492
+ el.style.left = '0';
493
+ el.style.zIndex = '9999';
494
+ el.style.lineHeight = '1.5em';
495
+ el.style.whiteSpace = 'nowrap';
496
+ this.el.nativeElement.appendChild(el);
497
+ }
498
+ createOutline(color) {
499
+ this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;
500
+ this.el.nativeElement.style.outlineOffset = '-1px';
501
+ this.el.nativeElement.style.position = 'relative';
463
502
  }
464
503
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: DebugDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
465
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: DebugDirective, isStandalone: true, selector: "debug", ngImport: i0 });
504
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.2", type: DebugDirective, isStandalone: true, selector: "debug", inputs: { isDebug: { classPropertyName: "isDebug", publicName: "isDebug", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
466
505
  }
467
506
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: DebugDirective, decorators: [{
468
507
  type: Directive,
@@ -537,5 +576,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
537
576
  * Generated bundle index. Do not edit.
538
577
  */
539
578
 
540
- export { CallPipe, DebugDirective, EFFECT_ENTRY, Effect, EffectMap, FAKE_COMPUTED, HostType, InjectableComponent, NG_ATOMIC_DEBUG, NgAtomicActionLogger, NgAtomicComponent, NgAtomicInjectorActionStore, NgAtomicRootActionStore, TOKEN, TokenizedType, _computed, applyToInput, compute, computeFake, createAction, fakeComputed, getInputs, getInputsByComponentRef, getMeta, getOutputs, getOutputsByInstance, getToken, injectEffectReducer, isFakeComputed, provideComponent, provideEffect, proxyFakeComputedInputValueFn, proxyFakeComputedInputs, resolveActions, updateInput, withNgAtomicDebug, wrapActions };
579
+ export { CallPipe, DebugDirective, EFFECT_ENTRY, Effect, EffectMap, FAKE_COMPUTED, HostType, InjectableComponent, NG_ATOMIC_DEBUG, NgAtomicActionLogger, NgAtomicComponent, NgAtomicInjectorActionStore, NgAtomicRootActionStore, TOKEN, TokenizedType, _computed, applyToInput, compute, computeFake, createAction, fakeComputed, getInputs, getInputsByComponentRef, getMeta, getOutputs, getOutputsByInstance, getToken, injectEffectReducer, isFakeComputed, provideComponent, provideEffect, proxyFakeComputedInputValueFn, proxyFakeComputedInputs, recursiveWrapRoute, recursiveWrapRoutes, resolveActions, updateInput, withNgAtomicDebug, wrapActions, wrapLoadChildren };
541
580
  //# sourceMappingURL=ng-atomic-core.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-atomic-core.mjs","sources":["../../../../../packages/@ng-atomic/core/src/lib/effect.ts","../../../../../packages/@ng-atomic/core/src/lib/action-store.ts","../../../../../packages/@ng-atomic/core/src/lib/action.ts","../../../../../packages/@ng-atomic/core/src/lib/signals.ts","../../../../../packages/@ng-atomic/core/src/lib/injectable-component.ts","../../../../../packages/@ng-atomic/core/src/lib/input.ts","../../../../../packages/@ng-atomic/core/src/lib/ng-atomic-debug.ts","../../../../../packages/@ng-atomic/core/src/lib/debug/debug.directive.ts","../../../../../packages/@ng-atomic/core/src/lib/ng-atomic-component.ts","../../../../../packages/@ng-atomic/core/src/ng-atomic-core.ts"],"sourcesContent":["import { InjectionToken, Injector, Provider, inject, runInInjectionContext } from \"@angular/core\";\nimport { Action } from \"./action\";\n\nexport interface EffectProps {\n dispatch: boolean;\n scope: string;\n accessor: (action: Action) => any;\n}\n\nexport class EffectMap extends Map<string, {key: string, props: EffectProps}> {\n override get(key: string, scope = 'host'): { key: string; props: EffectProps; } {\n return super.get(this.makeKey(key, scope))!; \n }\n\n override set(key: string, value: { key: string; props: EffectProps; }): this {\n return super.set(this.makeKey(key, value.props.scope), value);\n }\n\n override has(key: string, scope = 'host'): boolean {\n return super.has(this.makeKey(key, scope));\n }\n\n private makeKey(key: string, scope = 'host') {\n return `[${scope}]#${key}`;\n }\n}\n\nexport function Effect(id: string, {\n dispatch = false,\n scope = 'host',\n accessor = (action: Action) => action.payload,\n}: Partial<EffectProps> = {}) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n target['_effectMap'] ??= new EffectMap();\n target['_effectMap'].set(id, {key: propertyKey, props: {dispatch, scope, accessor}});\n };\n}\n\nexport interface EffectFunctionOptions {\n dispatch?: boolean;\n}\n\nexport interface EffectContext {\n injector?: Injector;\n}\n\nexport type EffectFunction = (payload?: any, context?: EffectContext) => any | Promise<any>;\nexport type EffectFunctionFactory = (hostInjector?: Injector) => EffectFunction;\n\nexport interface EffectEntry {\n\tactionIds: string | string[];\n effectFactory?: EffectFunctionFactory;\n options?: EffectFunctionOptions;\n}\n\nexport const EFFECT_ENTRY = new InjectionToken<EffectEntry>('[@ng-atomic/core] EFFECT_ENTRY');\n\nexport function provideEffect(\n ActionIds: string[] | string,\n _effectFactory: (injector: Injector) => EffectFunction,\n options: EffectFunctionOptions = {dispatch: false},\n): Provider {\n\treturn {\n\t\tprovide: EFFECT_ENTRY,\n\t\tuseFactory: (injector: Injector) => {\n return {\n actionIds: ActionIds,\n effectFactory: (hostInjector: Injector) => {\n return runInInjectionContext(hostInjector, () => {\n return _effectFactory(injector);\n });\n },\n options\n };\n },\n\t\tmulti: true,\n\t\tdeps: [Injector]\n\t};\n}\n\nexport function injectEffectReducer(injector: Injector = inject(Injector)) {\n\tconst effectEntries = injector.get<EffectEntry[]>(EFFECT_ENTRY, [], { optional: true });\n const effectEntryMap = new Map<string, {effectFactory: EffectFunction, options: EffectFunctionOptions}>();\n\n for (const entry of effectEntries) {\n const ids = Array.isArray(entry.actionIds) ? entry.actionIds : [entry.actionIds];\n for (const id of ids) {\n const effectFactory = () => entry.effectFactory(injector);\n effectEntryMap.set(id, { effectFactory, options: entry.options });\n }\n }\n\n return async (action: Action, hostInjector: Injector): Promise<{dispatch: boolean}> => {\n const entry = effectEntryMap.get(action.id);\n if (entry) {\n await runInInjectionContext(hostInjector, () => {\n const effect = entry?.effectFactory();\n return effect(action.payload, { injector });\n });\n return { dispatch: false };\n }\n return { dispatch: true };\n\t}\n}\n","import { EventEmitter, inject, Injectable, Injector } from \"@angular/core\";\nimport { Action } from \"./action\";\nimport { injectEffectReducer } from \"./effect\";\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicActionLogger {\n log(action: Action, scope = 'default') {\n console.debug(action, scope);\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicRootActionStore {\n protected logger = inject(NgAtomicActionLogger);\n protected readonly _actions$ = new EventEmitter<Action>();\n readonly actions$ = this._actions$.asObservable();\n\n constructor() {\n this.actions$.subscribe(action => this.logger.log(action, 'root'));\n }\n\n dispatch(action: Action) {\n this._actions$.emit(action);\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicInjectorActionStore {\n protected logger = inject(NgAtomicActionLogger);\n #rootActionStore = inject(NgAtomicRootActionStore);\n\n async dispatch(injector: Injector, action: Action, hostInjector: Injector = injector) {\n const _action = {...action, meta: { injector }};\n this.logger.log(_action, 'injector');\n\n const reducer = injectEffectReducer(injector);\n const effect = await reducer(_action, hostInjector);\n\n if (effect.dispatch) {\n const injector_ = injector.get(Injector, null, {skipSelf: true});\n if (injector_ && injector_ !== Injector.NULL) {\n await this.dispatch(injector_, _action, hostInjector);\n } else {\n await this.#rootActionStore.dispatch(_action);\n }\n }\n }\n}","import Ajv from \"ajv\";\nimport { ClassConstructor, plainToInstance } from \"class-transformer\";\nimport { validateSync } from \"class-validator\";\nimport { JsonSchema } from \"json-schema-library\";\n\nexport interface Action<T = any> {\n id: string;\n payload?: T;\n name?: string;\n icon?: string;\n color?: string;\n disabled?: boolean;\n children?: Action<T>[],\n meta?: {componentId?: string | number | null} | any;\n}\n\nexport type ActionsFactory<T = any> = (...args: any[]) => Action<T>[];\n\n/** @deprecated */\nexport type Actions = ActionsFactory | Action[];\n\nexport function resolveActions(actions: Actions, ...args: any[]) {\n if (typeof actions === 'function') {\n return actions(...args);\n }\n return actions;\n}\n\nexport function wrapActions(actions: Actions): ActionsFactory {\n return typeof actions === 'function' ? actions : () => actions;\n}\n\nexport interface CreateActionsOptions<P extends object = any> {\n validator?: (item: P) => null | string | string[];\n name?: string;\n icon?: string;\n}\n\nexport type ActionFactory<P extends object = any> = (payload?: P, meta?: CreateActionsOptions) => Action<P>;\n\nexport function createAction<P extends object = any>(\n type: string,\n schema: JsonSchema | ClassConstructor<P>,\n options: CreateActionsOptions<P> = {},\n): {validate: (item: P) => null | string | string[], create: ActionFactory<P>} { \n const defaultValidator = (item: P) => {\n if (typeof schema === 'object') {\n const _schema = {\n ...schema,\n required: schema.required.filter((key: string) => key in item),\n };\n const isValid = new Ajv().compile(_schema)(item);\n if (!isValid) return 'invalid';\n return null;\n } else {\n const errors = validateSync(plainToInstance(schema, {...item}) as object);\n if (errors.length) return 'invalid';\n return null;\n }\n }\n return {\n validate: options?.validator ?? defaultValidator,\n create: (payload: P = {} as any, meta: {name?: string, icon?: string} = {}): Action => ({\n id: type,\n payload,\n name: meta?.name ?? options.name ?? type,\n icon: meta?.icon ?? options.icon,\n }),\n }\n}\n","import { CreateComputedOptions, Pipe, Signal, computed, isSignal, PipeTransform } from \"@angular/core\";\n\nfunction call<T>(valueOrSignal: Signal<T> | T): T {\n return isSignal(valueOrSignal) ? call(valueOrSignal()) : valueOrSignal;\n}\n\nexport function proxyFakeComputedInputValueFn(inputValueFn: any) {\n return new Proxy(inputValueFn, {\n apply: function (target, _, args) {\n return computeFake(target(...args));\n }\n });\n}\n\nexport function computeFake(valueOrFakeComputed: any) {\n return isFakeComputed(valueOrFakeComputed) ? valueOrFakeComputed() : valueOrFakeComputed;\n}\n\nexport function proxyFakeComputedInputs(target: any, inputs: string[]) {\n inputs.filter(input => isSignal(target[input])).forEach(input => {\n target[input] = proxyFakeComputedInputValueFn(target[input]);\n });\n}\n\nexport const FAKE_COMPUTED = /* @__PURE__ */ Symbol('FAKE_COMPUTED');\n\nexport function compute(target: any, propName: string) {\n let inputValueFn: any;\n Object.defineProperty(target, propName, {\n get() {\n return new Proxy(inputValueFn, {\n apply: function (target, _, args) {\n const valueOrSignal: any = target(...args);\n return isSignal(valueOrSignal) ? valueOrSignal() : valueOrSignal;\n }\n });\n },\n set(value) {\n inputValueFn = value;\n },\n });\n}\n\nexport function fakeComputed<T>(computation: () => T, options?: CreateComputedOptions<T>): T {\n const _computed = computed(computation, options) as never as T;\n _computed[FAKE_COMPUTED] = true;\n return _computed;\n}\n\nexport function _computed<T>(computation: () => T, options?: CreateComputedOptions<T>): T {\n return fakeComputed(computation, options);\n}\n\nexport function isFakeComputed(_computed: any): _computed is ReturnType<typeof computed> {\n return !!_computed?.[FAKE_COMPUTED];\n}\n\n@Pipe({ name: 'call', standalone: true, pure: true})\nexport class CallPipe implements PipeTransform {\n transform<T>(value: Signal<T> | T): T {\n return call(value);\n }\n}\n","import {\n ComponentMirror, ComponentRef, DestroyRef,\n Directive,\n // ɵoutput,\n ElementRef, EmbeddedViewRef,\n InjectionToken, Injector, SimpleChange, SimpleChanges,\n Type, ViewContainerRef, inject, input, PLATFORM_ID,\n Output, EventEmitter\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { reflectComponentType, OnInit, OnChanges } from \"@angular/core\";\nimport { Action } from \"./action\";\n\nexport type TypeFactoryAsync<T> = () => Promise<Type<T>>;\n\nexport type TypeFactory<T> = () => (Type<T> | Promise<Type<T>>);\nimport { proxyFakeComputedInputs } from \"./signals\";\nimport { isPlatformBrowser } from \"@angular/common\";\n\nexport const TOKEN = 'Δtkn';\n\nexport function provideComponent<ABS = any, IMPL = any>(\n abstract: Type<ABS>,\n typeOrFactory: Type<IMPL> | TypeFactory<IMPL>,\n) {\n async function loadComponentType(): Promise<Type<IMPL>> {\n if (typeof typeOrFactory === 'function' && !typeOrFactory.prototype) {\n return await (typeOrFactory as TypeFactory<IMPL>)();\n } else {\n return typeOrFactory as Type<IMPL>;\n }\n }\n return { provide: (abstract as any)[TOKEN], useValue: loadComponentType };\n}\n\nexport function TokenizedType() {\n return function <T extends Type<any>>(type: T) {\n (type as any)[TOKEN] = new InjectionToken<T>(type.name);\n };\n}\n\nexport function getToken(type: Type<any>) {\n return (type as any)[TOKEN];\n}\n\nexport enum HostType {\n Dir = 'ɵdir',\n Cmp = 'ɵcmp',\n}\n\ntype IO = {propName: string, templateName: string};\n\nexport function getMeta<T>(type: Type<T>) {\n return (type as any)[HostType.Cmp] || (type as any)[HostType.Dir];\n}\n\nexport function getInputs<T>(type: Type<T>): IO[] {\n return Object.entries<string>(getMeta(type)['inputs'])\n .map(([templateName, [propName]]) => ({propName, templateName}));\n}\n\nexport function getOutputs<T>(type: Type<T>): IO[] {\n const meta = getMeta(type);\n return Object.entries<string>(meta['outputs'])\n .map(([templateName, propName]) => ({propName, templateName}));\n}\n\nexport function getInputsByComponentRef<T extends {} = any>(cmp: ComponentRef<T>): IO[] {\n return getInputs(cmp.instance.constructor as Type<T>);\n}\n\nexport function getOutputsByInstance<T extends {} = any>(cmp: ComponentRef<T>): IO[] {\n return getOutputs(cmp.instance.constructor as Type<T>);\n}\n\n@Directive({\n standalone: true,\n // host: {ngSkipHydration: 'true'}\n})\nexport class InjectableComponent<T = any> implements OnInit, OnChanges {\n readonly #platformId = inject(PLATFORM_ID);\n readonly #viewContainerRef = inject(ViewContainerRef);\n readonly #injector = inject(Injector);\n readonly #destroyRef = inject(DestroyRef);\n readonly #el: ElementRef<HTMLElement> = inject(ElementRef);\n #component: ComponentRef<T> | null = null;\n #componentMirror: ComponentMirror<T> | null = null;\n\n readonly injectable = input(false, {transform: (value: any) => value === '' ? true : value, alias: 'injectable'});\n // readonly __action = ɵoutput<Action>({alias: 'action'});\n @Output('action') readonly __action = new EventEmitter<Action>();\n\n dispatch(action: Action) {\n this.__action.emit(action);\n }\n\n get #inputs(): IO[] {\n const abs = getInputs(this.constructor as Type<T>);\n return abs;\n }\n\n get #outputs(): IO[] {\n const abs = getOutputs(this.constructor as Type<T>);\n return abs;\n // const impl = this.#componentMirror!.outputs;\n // return abs.filter(abstractOutput => impl.some(implOutput => implOutput.templateName === abstractOutput.templateName));\n }\n\n #setAttribute() {\n const hostElement = (this.#component!.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n const attributes: NamedNodeMap = this.#el.nativeElement.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i)!;\n if (attr.name === 'injectable') {\n hostElement.setAttribute('injected', '');\n } else {\n hostElement.setAttribute(attr.name, attr.value);\n }\n }\n }\n\n #bindInputs() {\n for (const input of this.#inputs) {\n if (input.propName === 'injectable') continue;\n const valueOrInputValueFn = this[input.propName];\n const value = typeof valueOrInputValueFn === 'function' ? valueOrInputValueFn() : valueOrInputValueFn;\n this.#component!.setInput(input.templateName, value);\n }\n }\n\n get propNames() {\n return this.#inputs.map(input => input.propName);\n }\n\n proxyFakeComputedInputs() {\n proxyFakeComputedInputs(this, this.propNames);\n }\n\n #bindOutputs() {\n for (const output of this.#outputs) {\n (this.#component!.instance as any)[output.propName]?.pipe(\n takeUntilDestroyed(this.#destroyRef)\n ).subscribe((value: any) => this[output.propName].emit(value));\n }\n }\n\n #bindEvents() {\n for (const name of ['click']) {\n this.#component.injector.get(ElementRef).nativeElement.addEventListener(name, (event) => {\n this.#el.nativeElement.dispatchEvent(new Event(name, {}));\n });\n }\n }\n \n constructor() {\n this.proxyFakeComputedInputs();\n }\n\n ngOnInit() {\n if (this.injectable() && isPlatformBrowser(this.#platformId)) {\n this.#injector.get<TypeFactoryAsync<T>>(getToken(this.constructor as any))().then(type => {\n this.#component = this.#viewContainerRef.createComponent(type, {\n projectableNodes: [\n Array.from(this.#el.nativeElement.childNodes)\n ],\n });\n this.#componentMirror = reflectComponentType(type);\n this.#bindInputs();\n this.#bindOutputs();\n this.#bindEvents();\n this.#setAttribute();\n // this.#viewContainerRef.remove(0);\n this.#component.changeDetectorRef.detectChanges();\n this.#el.nativeElement.style.display = 'none';\n // this.#el.nativeElement.remove();\n });\n }\n this.proxyFakeComputedInputs();\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (this.injectable() && this.#componentMirror) {\n for (const input of this.#inputs) {\n if (input.propName === 'injectable') return;\n const change = simpleChanges[input.propName] as SimpleChange;\n if (change) {\n this.#component!.setInput(input.propName, change.currentValue);\n }\n }\n }\n }\n}\n","import { InputSignal, Signal } from '@angular/core';\nimport { SIGNAL, SignalNode, signalSetFn } from '@angular/core/primitives/signals';\n\ninterface InputSignalNode<T, TransformT> extends SignalNode<T> {\n /**\n * User-configured transform that will run whenever a new value is applied\n * to the input signal node.\n */\n transformFn: ((value: TransformT) => T) | undefined;\n\n /**\n * Applies a new value to the input signal. Expects transforms to be run\n * manually before.\n *\n * This function is called by the framework runtime code whenever a binding\n * changes. The value can in practice be anything at runtime, but for typing\n * purposes we assume it's a valid `T` value. Type-checking will enforce that.\n */\n applyValueToInputSignal<T, TransformT>(node: InputSignalNode<T, TransformT>, value: T): void;\n}\n\nfunction applyValueToInputField<T>(\n instance: T,\n inputSignalNode: null | InputSignalNode<unknown, unknown>,\n privateName: string,\n value: unknown,\n) {\n if (inputSignalNode !== null) {\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n } else {\n (instance as any)[privateName] = value;\n }\n}\n\ntype InputSignalType<T> = T extends InputSignal<infer U> ? U : never;\n\nexport function applyToInput<T, K extends keyof T>(\n instance: T,\n propName: K,\n value: InputSignalType<T[K]>,\n) {\n\tconst inputSignalNode = (instance as any)[propName][SIGNAL] as InputSignalNode<unknown, unknown>;\n\tif (inputSignalNode !== null) {\n\t\tinputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n\t} else {\n\t\t(instance as any)[propName] = value;\n\t}\n}\n\nexport function updateInput<T, K extends keyof T>(\n instance: T,\n propName: K,\n updater: (value: InputSignalType<T[K]>) => InputSignalType<T[K]>,\n) {\n const inputSignalNode = (instance as any)[propName][SIGNAL] as InputSignalNode<unknown, unknown>;\n if (inputSignalNode !== null) {\n const value = updater((instance as any)[propName]());\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n } else {\n (instance as any)[propName] = updater((instance as any)[propName]);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NG_ATOMIC_DEBUG = new InjectionToken<boolean>('NG_ATOMIC_DEBUG');\nexport function withNgAtomicDebug() {\n return {provide: NG_ATOMIC_DEBUG, useValue: true};\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, inject, OnInit } from '@angular/core';\nimport { NG_ATOMIC_DEBUG } from '../ng-atomic-debug';\n\nconst DEBUG_CONFIG = {\n outline: '1px',\n colors: {\n 'templates': '#f00',\n 'organisms': '#0f0',\n 'molecules': '#00f',\n 'atoms': '#ff0',\n 'frames': 'transparent',\n 'default': '#000',\n },\n excludes: ['frames', 'app', 'pages', 'atoms'],\n};\n\n@Directive({standalone: true, selector: 'debug'})\nexport class DebugDirective implements OnInit {\n protected el: ElementRef<HTMLElement> = inject(ElementRef);\n protected platformId = inject(PLATFORM_ID);\n protected isDebug = inject(NG_ATOMIC_DEBUG, {optional: true}) ?? false;\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId) && this.isDebug) {\n const name = this.el.nativeElement.tagName.toLowerCase();\n const type = name.split('-')[0];\n if (DEBUG_CONFIG.excludes.includes(type)) return;\n const color = DEBUG_CONFIG.colors?.[type] ?? DEBUG_CONFIG.colors.default;\n\n // 1pxのアウトラインを設定\n this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;\n\n // 疑似要素でコンポーネント名を表示\n const labelEl = this.createLabelElement({\n name: `${name}${this.el.nativeElement.hasAttribute('injected') ? '[injected]' : ''}`,\n color\n });\n this.el.nativeElement.style.outlineOffset = '-1px';\n this.el.nativeElement.style.position = 'relative';\n this.el.nativeElement.appendChild(labelEl);\n }\n }\n\n protected createLabelElement(options: {\n name: string\n color: string\n }): HTMLElement {\n const content = document.createElement('span');\n content.textContent = options.name;\n content.style.backgroundColor = `${options.color}`;\n content.style.color = '#fff';\n content.style.padding = '2px 4px';\n content.style.position = 'absolute';\n content.style.fontSize = '10px';\n content.style.top = '0';\n content.style.left = '0';\n content.style.zIndex = '9999';\n content.style.lineHeight = '1.5em';\n content.style.whiteSpace = 'nowrap';\n return content;\n }\n}","import { ApplicationRef, DestroyRef, Directive, ElementRef, inject, Injector } from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Action } from \"./action\";\nimport { InjectableComponent } from \"./injectable-component\";\nimport { EffectMap } from \"./effect\";\nimport { NgAtomicActionLogger, NgAtomicInjectorActionStore, NgAtomicRootActionStore } from \"./action-store\";\nimport { DebugDirective } from './debug';\nimport { ActivatedRoute } from \"@angular/router\";\n\n\nfunction injectIsRouteComponent(component) {\n const route = inject(ActivatedRoute);\n const currentComponent = route.snapshot.component;\n return currentComponent === component.constructor;\n}\n\n@Directive({\n standalone: true,\n hostDirectives: [\n DebugDirective,\n ],\n})\nexport class NgAtomicComponent<T = any> extends InjectableComponent<T> {\n #rootActionStore = inject(NgAtomicRootActionStore);\n #injectorActionStore = inject(NgAtomicInjectorActionStore);\n #destroyRef = inject(DestroyRef);\n #el = inject(ElementRef);\n #injector = inject(Injector);\n #logger = inject(NgAtomicActionLogger);\n #isRouteComponent = injectIsRouteComponent(this);\n #appRef = inject(ApplicationRef);\n __injector = inject(Injector);\n\n get selector() {\n return this.#el.nativeElement.tagName.toLowerCase();\n }\n\n get #isBootstrapComponent() {\n return this.#appRef.components.some(component => component.instance === this);\n }\n\n constructor() {\n super();\n this.#rootActionStore.actions$.pipe(\n takeUntilDestroyed(this.#destroyRef),\n ).subscribe(action => this.effect(action, 'root'));\n }\n\n async dispatch(\n action: Action,\n scope = 'host',\n componentId: string | number | null = null,\n ) {\n const _action = {...action, meta: { componentId, selector: this.selector }};\n this.#logger.log(_action, scope);\n const dispatch = await this.effect(_action, scope);\n\n if (dispatch) {\n if (scope === 'root') {\n return this.#rootActionStore.dispatch(_action);\n } else if (this.#isRouteComponent || this.#isBootstrapComponent) {\n return this.#injectorActionStore.dispatch(this.#injector, _action);\n } else {\n return super.dispatch(_action);\n }\n }\n }\n\n protected async effect(action: Action, scope = 'host'): Promise<boolean> {\n // MEMO(@nontangent): _effectMapをpropertyに持つとEffectが機能しなくなる\n const effectMap: EffectMap = (this['_effectMap'] ?? new EffectMap());\n const effect = effectMap.get(action.id, scope);\n if (effect?.key && effect?.props?.scope === scope) {\n await this[effect.key](effect.props.accessor(action));\n return !!effect?.props?.dispatch;\n }\n return true;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DebugDirective"],"mappings":"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"}
1
+ {"version":3,"file":"ng-atomic-core.mjs","sources":["../../../../../packages/@ng-atomic/core/src/lib/effect.ts","../../../../../packages/@ng-atomic/core/src/lib/action-store.ts","../../../../../packages/@ng-atomic/core/src/lib/action.ts","../../../../../packages/@ng-atomic/core/src/lib/signals.ts","../../../../../packages/@ng-atomic/core/src/lib/injectable-component.ts","../../../../../packages/@ng-atomic/core/src/lib/input.ts","../../../../../packages/@ng-atomic/core/src/lib/route.ts","../../../../../packages/@ng-atomic/core/src/lib/ng-atomic-debug.ts","../../../../../packages/@ng-atomic/core/src/lib/debug/debug.directive.ts","../../../../../packages/@ng-atomic/core/src/lib/ng-atomic-component.ts","../../../../../packages/@ng-atomic/core/src/ng-atomic-core.ts"],"sourcesContent":["import { InjectionToken, Injector, Provider, inject, runInInjectionContext } from \"@angular/core\";\nimport { Action } from \"./action\";\n\nexport interface EffectProps {\n dispatch: boolean;\n scope: string;\n accessor: (action: Action) => any;\n}\n\nexport class EffectMap extends Map<string, {key: string, props: EffectProps}> {\n override get(key: string, scope = 'host'): { key: string; props: EffectProps; } {\n return super.get(this.makeKey(key, scope))!; \n }\n\n override set(key: string, value: { key: string; props: EffectProps; }): this {\n return super.set(this.makeKey(key, value.props.scope), value);\n }\n\n override has(key: string, scope = 'host'): boolean {\n return super.has(this.makeKey(key, scope));\n }\n\n private makeKey(key: string, scope = 'host') {\n return `[${scope}]#${key}`;\n }\n}\n\nexport function Effect(id: string, {\n dispatch = false,\n scope = 'host',\n accessor = (action: Action) => action.payload,\n}: Partial<EffectProps> = {}) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n target['_effectMap'] ??= new EffectMap();\n target['_effectMap'].set(id, {key: propertyKey, props: {dispatch, scope, accessor}});\n };\n}\n\nexport interface EffectFunctionOptions {\n dispatch?: boolean;\n}\n\nexport interface EffectContext {\n injector?: Injector;\n}\n\nexport type EffectFunction = (payload?: any, context?: EffectContext) => any | Promise<any>;\nexport type EffectFunctionFactory = (hostInjector?: Injector) => EffectFunction;\n\nexport interface EffectEntry {\n\tactionIds: string | string[];\n effectFactory?: EffectFunctionFactory;\n options?: EffectFunctionOptions;\n}\n\nexport const EFFECT_ENTRY = new InjectionToken<EffectEntry>('[@ng-atomic/core] EFFECT_ENTRY');\n\nexport function provideEffect(\n ActionIds: string[] | string,\n _effectFactory: (injector: Injector) => EffectFunction,\n options: EffectFunctionOptions = {dispatch: false},\n): Provider {\n\treturn {\n\t\tprovide: EFFECT_ENTRY,\n\t\tuseFactory: (injector: Injector) => {\n return {\n actionIds: ActionIds,\n effectFactory: (hostInjector: Injector) => {\n return runInInjectionContext(hostInjector, () => {\n return _effectFactory(injector);\n });\n },\n options\n };\n },\n\t\tmulti: true,\n\t\tdeps: [Injector]\n\t};\n}\n\nexport function injectEffectReducer(injector: Injector = inject(Injector)) {\n\tconst effectEntries = injector.get<EffectEntry[]>(EFFECT_ENTRY, [], { optional: true });\n const effectEntryMap = new Map<string, {effectFactory: EffectFunction, options: EffectFunctionOptions}>();\n\n for (const entry of effectEntries) {\n const ids = Array.isArray(entry.actionIds) ? entry.actionIds : [entry.actionIds];\n for (const id of ids) {\n const effectFactory = () => entry.effectFactory(injector);\n effectEntryMap.set(id, { effectFactory, options: entry.options });\n }\n }\n\n return async (action: Action, hostInjector: Injector): Promise<{dispatch: boolean}> => {\n const entry = effectEntryMap.get(action.id);\n if (entry) {\n await runInInjectionContext(hostInjector, () => {\n const effect = entry?.effectFactory();\n return effect(action.payload, { injector });\n });\n return { dispatch: false };\n }\n return { dispatch: true };\n\t}\n}\n","import { EventEmitter, inject, Injectable, Injector } from \"@angular/core\";\nimport { Action } from \"./action\";\nimport { injectEffectReducer } from \"./effect\";\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicActionLogger {\n log(action: Action, scope = 'default') {\n console.info(`[NgAtomicActionLogger] ${action?.name}`, {action, scope});\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicRootActionStore {\n protected logger = inject(NgAtomicActionLogger);\n protected readonly _actions$ = new EventEmitter<Action>();\n readonly actions$ = this._actions$.asObservable();\n\n constructor() {\n this.actions$.subscribe(action => this.logger.log(action, 'root'));\n }\n\n dispatch(action: Action) {\n this._actions$.emit(action);\n }\n}\n\n@Injectable({providedIn: 'root'})\nexport class NgAtomicInjectorActionStore {\n protected logger = inject(NgAtomicActionLogger);\n #rootActionStore = inject(NgAtomicRootActionStore);\n\n async dispatch(injector: Injector, action: Action, hostInjector: Injector = injector) {\n const _action = {...action, meta: { injector }};\n this.logger.log(_action, 'injector');\n\n const reducer = injectEffectReducer(injector);\n const effect = await reducer(_action, hostInjector);\n\n if (effect.dispatch) {\n const injector_ = injector.get(Injector, null, {skipSelf: true});\n if (injector_ && injector_ !== Injector.NULL) {\n await this.dispatch(injector_, _action, hostInjector);\n } else {\n await this.#rootActionStore.dispatch(_action);\n }\n }\n }\n}","import Ajv from \"ajv\";\nimport { ClassConstructor, plainToInstance } from \"class-transformer\";\nimport { validateSync } from \"class-validator\";\nimport { JsonSchema } from \"json-schema-library\";\n\nexport interface Action<T = any> {\n id: string;\n payload?: T;\n name?: string;\n icon?: string;\n color?: string;\n disabled?: boolean;\n children?: Action<T>[],\n meta?: {componentId?: string | number | null} | any;\n}\n\nexport type ActionsFactory<T = any> = (...args: any[]) => Action<T>[];\n\n/** @deprecated */\nexport type Actions = ActionsFactory | Action[];\n\nexport function resolveActions(actions: Actions, ...args: any[]) {\n if (typeof actions === 'function') {\n return actions(...args);\n }\n return actions;\n}\n\nexport function wrapActions(actions: Actions): ActionsFactory {\n return typeof actions === 'function' ? actions : () => actions;\n}\n\nexport interface CreateActionsOptions<P extends object = any> {\n validator?: (item: P) => null | string | string[];\n name?: string;\n icon?: string;\n}\n\nexport type ActionFactory<P extends object = any> = (payload?: P, meta?: CreateActionsOptions) => Action<P>;\n\nexport function createAction<P extends object = any>(\n type: string,\n schema: JsonSchema | ClassConstructor<P>,\n options: CreateActionsOptions<P> = {},\n): {validate: (item: P) => null | string | string[], create: ActionFactory<P>} { \n const defaultValidator = (item: P) => {\n if (typeof schema === 'object') {\n const _schema = {\n ...schema,\n required: schema.required.filter((key: string) => key in item),\n };\n const isValid = new Ajv().compile(_schema)(item);\n if (!isValid) return 'invalid';\n return null;\n } else {\n const errors = validateSync(plainToInstance(schema, {...item}) as object);\n if (errors.length) return 'invalid';\n return null;\n }\n }\n return {\n validate: options?.validator ?? defaultValidator,\n create: (payload: P = {} as any, meta: {name?: string, icon?: string} = {}): Action => ({\n id: type,\n payload,\n name: options.name ?? type,\n icon: options.icon,\n ...meta,\n }),\n }\n}\n","import { CreateComputedOptions, Pipe, Signal, computed, isSignal, PipeTransform } from \"@angular/core\";\n\nfunction call<T>(valueOrSignal: Signal<T> | T): T {\n return isSignal(valueOrSignal) ? call(valueOrSignal()) : valueOrSignal;\n}\n\nexport function proxyFakeComputedInputValueFn(inputValueFn: any) {\n return new Proxy(inputValueFn, {\n apply: function (target, _, args) {\n return computeFake(target(...args));\n }\n });\n}\n\nexport function computeFake<T>(valueOrFakeComputed: T): T {\n return isFakeComputed(valueOrFakeComputed) ? valueOrFakeComputed() as T : valueOrFakeComputed;\n}\n\nexport function proxyFakeComputedInputs(target: any, inputs: string[]) {\n inputs.filter(input => isSignal(target[input])).forEach(input => {\n target[input] = proxyFakeComputedInputValueFn(target[input]);\n });\n}\n\nexport const FAKE_COMPUTED = /* @__PURE__ */ Symbol('FAKE_COMPUTED');\n\nexport function compute(target: any, propName: string) {\n let inputValueFn: any;\n Object.defineProperty(target, propName, {\n get() {\n return new Proxy(inputValueFn, {\n apply: function (target, _, args) {\n const valueOrSignal: any = target(...args);\n return isSignal(valueOrSignal) ? valueOrSignal() : valueOrSignal;\n }\n });\n },\n set(value) {\n inputValueFn = value;\n },\n });\n}\n\nexport function fakeComputed<T>(computation: () => T, options?: CreateComputedOptions<T>): T {\n const _computed = computed(computation, options) as never as T;\n _computed[FAKE_COMPUTED] = true;\n return _computed;\n}\n\nexport function _computed<T>(computation: () => T, options?: CreateComputedOptions<T>): T {\n return fakeComputed(computation, options);\n}\n\nexport function isFakeComputed(_computed: any): _computed is ReturnType<typeof computed> {\n return !!_computed?.[FAKE_COMPUTED];\n}\n\n@Pipe({ name: 'call', standalone: true, pure: true})\nexport class CallPipe implements PipeTransform {\n transform<T>(value: Signal<T> | T): T {\n return call(value);\n }\n}\n","import {\n ComponentMirror, ComponentRef, DestroyRef,\n Directive,\n // ɵoutput,\n ElementRef, EmbeddedViewRef,\n InjectionToken, Injector, SimpleChange, SimpleChanges,\n Type, ViewContainerRef, inject, input, PLATFORM_ID,\n Output, EventEmitter\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { reflectComponentType, OnInit, OnChanges } from \"@angular/core\";\nimport { Action } from \"./action\";\n\nexport type TypeFactoryAsync<T> = () => Promise<Type<T>>;\n\nexport type TypeFactory<T> = () => (Type<T> | Promise<Type<T>>);\nimport { proxyFakeComputedInputs } from \"./signals\";\nimport { isPlatformBrowser } from \"@angular/common\";\n\nexport const TOKEN = 'Δtkn';\n\nexport function provideComponent<ABS = any, IMPL = any>(\n abstract: Type<ABS>,\n typeOrFactory: Type<IMPL> | TypeFactory<IMPL>,\n) {\n async function loadComponentType(): Promise<Type<IMPL>> {\n if (typeof typeOrFactory === 'function' && !typeOrFactory.prototype) {\n return await (typeOrFactory as TypeFactory<IMPL>)();\n } else {\n return typeOrFactory as Type<IMPL>;\n }\n }\n return { provide: (abstract as any)[TOKEN], useValue: loadComponentType };\n}\n\nexport function TokenizedType() {\n return function <T extends Type<any>>(type: T) {\n (type as any)[TOKEN] = new InjectionToken<T>(type.name);\n };\n}\n\nexport function getToken(type: Type<any>) {\n return (type as any)[TOKEN];\n}\n\nexport enum HostType {\n Dir = 'ɵdir',\n Cmp = 'ɵcmp',\n}\n\ntype IO = {propName: string, templateName: string};\n\nexport function getMeta<T>(type: Type<T>) {\n if (HostType.Cmp in type) {\n return type[HostType.Cmp];\n } else if (HostType.Dir in type) {\n return type[HostType.Dir];\n }\n}\n\nexport function getInputs<T>(type: Type<T>): IO[] {\n const meta = getMeta(type);\n return Object.entries<string>(meta['inputs'])\n .map(([templateName, [propName]]) => ({propName, templateName}));\n}\n\nexport function getOutputs<T>(type: Type<T>): IO[] {\n const meta = getMeta(type);\n return Object.entries<string>(meta['outputs'])\n .map(([templateName, propName]) => ({propName, templateName}));\n}\n\nexport function getInputsByComponentRef<T extends {} = any>(cmp: ComponentRef<T>): IO[] {\n return getInputs(cmp.instance.constructor as Type<T>);\n}\n\nexport function getOutputsByInstance<T extends {} = any>(cmp: ComponentRef<T>): IO[] {\n return getOutputs(cmp.instance.constructor as Type<T>);\n}\n\n@Directive({\n standalone: true,\n // host: {ngSkipHydration: 'true'}\n})\nexport class InjectableComponent<T = any> implements OnInit, OnChanges {\n readonly #platformId = inject(PLATFORM_ID);\n readonly #viewContainerRef = inject(ViewContainerRef);\n readonly #injector = inject(Injector);\n readonly #destroyRef = inject(DestroyRef);\n readonly #el: ElementRef<HTMLElement> = inject(ElementRef);\n #component: ComponentRef<T> | null = null;\n #componentMirror: ComponentMirror<T> | null = null;\n\n readonly injectable = input(false, {transform: (value: any) => value === '' ? true : value, 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 return getInputs(this.constructor as Type<T>);\n }\n\n get #outputs(): IO[] {\n return getOutputs(this.constructor as Type<T>);\n // const impl = this.#componentMirror!.outputs;\n // return abs.filter(abstractOutput => impl.some(implOutput => implOutput.templateName === abstractOutput.templateName));\n }\n\n #setAttribute() {\n const hostElement = (this.#component!.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n const attributes: NamedNodeMap = this.#el.nativeElement.attributes;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes.item(i)!;\n if (attr.name === 'injectable') {\n hostElement.setAttribute('injected', '');\n } else {\n hostElement.setAttribute(attr.name, attr.value);\n }\n }\n }\n\n #bindInputs() {\n for (const input of this.#inputs) {\n if (input.propName === 'injectable') continue;\n const valueOrInputValueFn = this[input.propName];\n const value = typeof valueOrInputValueFn === 'function' ? valueOrInputValueFn() : valueOrInputValueFn;\n this.#setInput(input, value);\n }\n }\n\n get propNames() {\n return this.#inputs.map(input => input.propName);\n }\n\n proxyFakeComputedInputs() {\n proxyFakeComputedInputs(this, this.propNames);\n }\n\n #bindOutputs() {\n for (const output of this.#outputs) {\n (this.#component!.instance as any)[output.propName]?.pipe(\n takeUntilDestroyed(this.#destroyRef)\n ).subscribe((value: any) => this[output.propName].emit(value));\n }\n }\n\n #bindEvents() {\n for (const name of ['click']) {\n this.#component.injector.get(ElementRef).nativeElement.addEventListener(name, (event) => {\n this.#el.nativeElement.dispatchEvent(new Event(name, {}));\n });\n }\n }\n\n #setInput(input: {propName: string, templateName: string}, value: any) {\n this.#component!.setInput(input?.templateName, value);\n }\n \n constructor() {\n this.proxyFakeComputedInputs();\n }\n\n ngOnInit() {\n if (this.injectable() && isPlatformBrowser(this.#platformId)) {\n this.#injector.get<TypeFactoryAsync<T>>(getToken(this.constructor as any))().then(type => {\n this.#component = this.#viewContainerRef.createComponent(type, {\n projectableNodes: [\n Array.from(this.#el.nativeElement.childNodes)\n ],\n });\n this.#componentMirror = reflectComponentType(type);\n this.#bindInputs();\n this.#bindOutputs();\n this.#bindEvents();\n this.#setAttribute();\n // this.#viewContainerRef.remove(0);\n this.#component.changeDetectorRef.detectChanges();\n this.#el.nativeElement.style.display = 'none';\n // this.#el.nativeElement.remove();\n });\n }\n this.proxyFakeComputedInputs();\n }\n\n ngOnChanges(simpleChanges: SimpleChanges) {\n if (this.injectable() && this.#componentMirror) {\n for (const input of this.#inputs) {\n if (input.propName === 'injectable') return;\n const change = simpleChanges[input.propName] as SimpleChange;\n if (change) {\n this.#setInput(input, change.currentValue);\n }\n }\n }\n }\n}\n","import { InputSignal, Signal } from '@angular/core';\nimport { SIGNAL, SignalNode, signalSetFn } from '@angular/core/primitives/signals';\n\ninterface InputSignalNode<T, TransformT> extends SignalNode<T> {\n /**\n * User-configured transform that will run whenever a new value is applied\n * to the input signal node.\n */\n transformFn: ((value: TransformT) => T) | undefined;\n\n /**\n * Applies a new value to the input signal. Expects transforms to be run\n * manually before.\n *\n * This function is called by the framework runtime code whenever a binding\n * changes. The value can in practice be anything at runtime, but for typing\n * purposes we assume it's a valid `T` value. Type-checking will enforce that.\n */\n applyValueToInputSignal<T, TransformT>(node: InputSignalNode<T, TransformT>, value: T): void;\n}\n\nfunction applyValueToInputField<T>(\n instance: T,\n inputSignalNode: null | InputSignalNode<unknown, unknown>,\n privateName: string,\n value: unknown,\n) {\n if (inputSignalNode !== null) {\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n } else {\n (instance as any)[privateName] = value;\n }\n}\n\ntype InputSignalType<T> = T extends InputSignal<infer U> ? U : never;\n\nexport function applyToInput<T, K extends keyof T>(\n instance: T,\n propName: K,\n value: InputSignalType<T[K]>,\n) {\n\tconst inputSignalNode = (instance as any)[propName][SIGNAL] as InputSignalNode<unknown, unknown>;\n\tif (inputSignalNode !== null) {\n\t\tinputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n\t} else {\n\t\t(instance as any)[propName] = value;\n\t}\n}\n\nexport function updateInput<T, K extends keyof T>(\n instance: T,\n propName: K,\n updater: (value: InputSignalType<T[K]>) => InputSignalType<T[K]>,\n) {\n const inputSignalNode = (instance as any)[propName][SIGNAL] as InputSignalNode<unknown, unknown>;\n if (inputSignalNode !== null) {\n const value = updater((instance as any)[propName]());\n inputSignalNode.applyValueToInputSignal(inputSignalNode, value);\n } else {\n (instance as any)[propName] = updater((instance as any)[propName]);\n }\n}\n","import { LoadChildrenCallback, Route, Routes } from '@angular/router';\nimport { isObservable, lastValueFrom } from 'rxjs';\n\nexport async function wrapLoadChildren(\n loadChildrenCallback: LoadChildrenCallback\n): Promise<Routes> {\n const children = await loadChildrenCallback();\n const _children = isObservable(children) ? await lastValueFrom(children) : children;\n const __children = 'default' in _children ? _children.default : _children;\n return __children as never as Promise<Routes>;\n}\n\nexport function recursiveWrapRoute(route: Route, ...wrappers: ((route: Route) => Route)[]): Route {\n const wrappedRoute = wrappers.reduce((acc, wrapper) => wrapper(acc), route);\n return {\n ...wrappedRoute,\n children: wrappedRoute.children \n ? recursiveWrapRoutes(wrappedRoute.children, ...wrappers)\n : undefined,\n loadChildren: wrappedRoute.loadChildren \n ? () => wrapLoadChildren(wrappedRoute.loadChildren).then(routes => recursiveWrapRoutes(routes, ...wrappers))\n : undefined,\n };\n}\n\nexport function recursiveWrapRoutes(routes: Routes, ...wrappers: ((route: Route) => Route)[]): Routes {\n return routes.map(route => recursiveWrapRoute(route, ...wrappers));\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const NG_ATOMIC_DEBUG = new InjectionToken<boolean>('NG_ATOMIC_DEBUG');\nexport function withNgAtomicDebug() {\n return {provide: NG_ATOMIC_DEBUG, useValue: true};\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Directive, ElementRef, PLATFORM_ID, inject, OnInit, input } from '@angular/core';\nimport { NG_ATOMIC_DEBUG } from '../ng-atomic-debug';\n\nconst DEBUG_CONFIG = {\n outline: '1px',\n colors: {\n 'templates': '#f00',\n 'organisms': '#0f0',\n 'molecules': '#00f',\n 'atoms': '#ff0',\n 'frames': 'transparent',\n 'default': '#000',\n },\n excludes: ['frames', 'app', 'pages', 'atoms'],\n};\n\nfunction getType(element: HTMLElement): string {\n return element.tagName.toLowerCase().split('-')[0];\n}\n\nfunction getName(element: HTMLElement): string {\n return element.tagName.toLowerCase();\n}\n\nfunction getLabel(element: HTMLElement): string {\n const name = getName(element);\n const type = getType(element);\n if (DEBUG_CONFIG.excludes.includes(type)) return;\n return `${name}${element.hasAttribute('injected') ? '[injected]' : ''}`;\n}\n\n@Directive({standalone: true, selector: 'debug'})\nexport class DebugDirective implements OnInit {\n protected el: ElementRef<HTMLElement> = inject(ElementRef);\n protected platformId = inject(PLATFORM_ID);\n protected isDebug = input(inject(NG_ATOMIC_DEBUG, {optional: true}) ?? false);\n protected label = input(getLabel(this.el.nativeElement));\n\n ngOnInit() {\n if (isPlatformBrowser(this.platformId) && this.isDebug()) {\n const type = getType(this.el.nativeElement);\n const color = DEBUG_CONFIG.colors?.[type] ?? DEBUG_CONFIG.colors.default;\n this.createLabelElement({ label: this.label(), color });\n this.createOutline(color);\n }\n }\n\n protected createLabelElement(options: {\n label: string\n color: string\n }) {\n const el = document.createElement('span');\n el.textContent = options.label;\n el.style.backgroundColor = `${options.color}`;\n el.style.color = '#fff';\n el.style.padding = '2px 4px';\n el.style.position = 'absolute';\n el.style.fontSize = '10px';\n el.style.top = '0';\n el.style.left = '0';\n el.style.zIndex = '9999';\n el.style.lineHeight = '1.5em';\n el.style.whiteSpace = 'nowrap';\n this.el.nativeElement.appendChild(el);\n }\n\n protected createOutline(color: string) {\n this.el.nativeElement.style.outline = `${DEBUG_CONFIG.outline} solid ${color}`;\n this.el.nativeElement.style.outlineOffset = '-1px';\n this.el.nativeElement.style.position = 'relative';\n }\n}","import { ApplicationRef, DestroyRef, Directive, ElementRef, inject, Injector } from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { Action } from \"./action\";\nimport { InjectableComponent } from \"./injectable-component\";\nimport { EffectMap } from \"./effect\";\nimport { NgAtomicActionLogger, NgAtomicInjectorActionStore, NgAtomicRootActionStore } from \"./action-store\";\nimport { DebugDirective } from './debug';\nimport { ActivatedRoute } from \"@angular/router\";\n\n\nfunction injectIsRouteComponent(component) {\n const route = inject(ActivatedRoute);\n const currentComponent = route.snapshot.component;\n return currentComponent === component.constructor;\n}\n\n@Directive({\n standalone: true,\n hostDirectives: [\n DebugDirective,\n ],\n})\nexport class NgAtomicComponent<T = any> extends InjectableComponent<T> {\n #rootActionStore = inject(NgAtomicRootActionStore);\n #injectorActionStore = inject(NgAtomicInjectorActionStore);\n #destroyRef = inject(DestroyRef);\n #el = inject(ElementRef);\n #injector = inject(Injector);\n #logger = inject(NgAtomicActionLogger);\n #isRouteComponent = injectIsRouteComponent(this);\n #appRef = inject(ApplicationRef);\n __injector = inject(Injector);\n\n get selector() {\n return this.#el.nativeElement.tagName.toLowerCase();\n }\n\n get #isBootstrapComponent() {\n return this.#appRef.components.some(component => component.instance === this);\n }\n\n constructor() {\n super();\n this.#rootActionStore.actions$.pipe(\n takeUntilDestroyed(this.#destroyRef),\n ).subscribe(action => this.effect(action, 'root'));\n }\n\n async dispatch(\n action: Action,\n scope = 'host',\n componentId: string | number | null = null,\n ) {\n const _action = {...action, meta: { componentId, selector: this.selector }};\n this.#logger.log(_action, scope);\n const dispatch = await this.effect(_action, scope);\n\n if (dispatch) {\n if (scope === 'root') {\n return this.#rootActionStore.dispatch(_action);\n } else if (this.#isRouteComponent || this.#isBootstrapComponent) {\n return this.#injectorActionStore.dispatch(this.#injector, _action);\n } else {\n return super.dispatch(_action);\n }\n }\n }\n\n protected async effect(action: Action, scope = 'host'): Promise<boolean> {\n // MEMO(@nontangent): _effectMapをpropertyに持つとEffectが機能しなくなる\n const effectMap: EffectMap = (this['_effectMap'] ?? new EffectMap());\n const effect = effectMap.get(action.id, scope);\n if (effect?.key && effect?.props?.scope === scope) {\n await this[effect.key](effect.props.accessor(action));\n return !!effect?.props?.dispatch;\n }\n return true;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.DebugDirective"],"mappings":"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"}
@@ -3,12 +3,14 @@ import * as i0 from "@angular/core";
3
3
  export declare class DebugDirective implements OnInit {
4
4
  protected el: ElementRef<HTMLElement>;
5
5
  protected platformId: Object;
6
- protected isDebug: boolean;
6
+ protected isDebug: import("@angular/core").InputSignal<boolean>;
7
+ protected label: import("@angular/core").InputSignal<string>;
7
8
  ngOnInit(): void;
8
9
  protected createLabelElement(options: {
9
- name: string;
10
+ label: string;
10
11
  color: string;
11
- }): HTMLElement;
12
+ }): void;
13
+ protected createOutline(color: string): void;
12
14
  static ɵfac: i0.ɵɵFactoryDeclaration<DebugDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<DebugDirective, "debug", never, {}, {}, never, never, true, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DebugDirective, "debug", never, { "isDebug": { "alias": "isDebug"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
16
  }
package/lib/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export * from './action';
3
3
  export * from './effect';
4
4
  export * from './injectable-component';
5
5
  export * from './input';
6
+ export * from './route';
6
7
  export * from './ng-atomic-component';
7
8
  export * from './signals';
8
9
  export * from './debug';
@@ -19,7 +19,7 @@ type IO = {
19
19
  propName: string;
20
20
  templateName: string;
21
21
  };
22
- export declare function getMeta<T>(type: Type<T>): any;
22
+ export declare function getMeta<T>(type: Type<T>): unknown;
23
23
  export declare function getInputs<T>(type: Type<T>): IO[];
24
24
  export declare function getOutputs<T>(type: Type<T>): IO[];
25
25
  export declare function getInputsByComponentRef<T extends {} = any>(cmp: ComponentRef<T>): IO[];
package/lib/route.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { LoadChildrenCallback, Route, Routes } from '@angular/router';
2
+ export declare function wrapLoadChildren(loadChildrenCallback: LoadChildrenCallback): Promise<Routes>;
3
+ export declare function recursiveWrapRoute(route: Route, ...wrappers: ((route: Route) => Route)[]): Route;
4
+ export declare function recursiveWrapRoutes(routes: Routes, ...wrappers: ((route: Route) => Route)[]): Routes;
package/lib/signals.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { CreateComputedOptions, Signal, computed, PipeTransform } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export declare function proxyFakeComputedInputValueFn(inputValueFn: any): any;
4
- export declare function computeFake(valueOrFakeComputed: any): any;
4
+ export declare function computeFake<T>(valueOrFakeComputed: T): T;
5
5
  export declare function proxyFakeComputedInputs(target: any, inputs: string[]): void;
6
6
  export declare const FAKE_COMPUTED: unique symbol;
7
7
  export declare function compute(target: any, propName: string): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-atomic/core",
3
- "version": "18.10.0",
3
+ "version": "18.12.0",
4
4
  "homepage": "https://github.com/xx-machina/plaform/tree/main/packages/@ng-atomic/core",
5
5
  "repository": {
6
6
  "type": "git",