diff --git a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list-container/collaboration-list-container.component.html b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list-container/collaboration-list-container.component.html index 193c7bed96797ce45ed2985027e96e87b32d4c19..31b668b27ed3a68f5e9f477279a31d9da75140e7 100644 --- a/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list-container/collaboration-list-container.component.html +++ b/alfa-client/libs/collaboration/src/lib/collaboration-in-vorgang-container/collaboration-list-container/collaboration-list-container.component.html @@ -2,7 +2,7 @@ @for(collaboration of collaborations; track collaboration.zustaendigeStelle){ @if(isOrganisationsEinheit(collaboration)){ <alfa-organisations-einheit-list-item-container - [zustaendigeStelleResourceUri] = "collaboration.zustaendigeStelle" + [organisationsEinheitResourceUri]="collaboration.zustaendigeStelle" data-test-id="organisations-einheit-list-item" > <alfa-collaboration-request [collaboration]="collaboration"/> @@ -10,7 +10,7 @@ } @if(isExterneFachstelle(collaboration)){ <alfa-externe-fachstelle-list-item-container - [zustaendigeStelleResourceUri] = "collaboration.zustaendigeStelle" + [externeFachstelleResourceUri] = "collaboration.zustaendigeStelle" data-test-id="externe-fachstelle-list-item" > <alfa-collaboration-request [collaboration]="collaboration"/> diff --git a/alfa-client/libs/externe-fachstelle-shared/.eslintrc.json b/alfa-client/libs/externe-fachstelle-shared/.eslintrc.json new file mode 100644 index 0000000000000000000000000000000000000000..b953e5d37d40148217ab14a01859ea0cb43d9ebc --- /dev/null +++ b/alfa-client/libs/externe-fachstelle-shared/.eslintrc.json @@ -0,0 +1,33 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts"], + "extends": ["plugin:@nx/angular", "plugin:@angular-eslint/template/process-inline-templates"], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "lib", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "lib", + "style": "kebab-case" + } + ] + } + }, + { + "files": ["*.html"], + "extends": ["plugin:@nx/angular-template"], + "rules": {} + } + ] +} diff --git a/alfa-client/libs/externe-fachstelle-shared/README.md b/alfa-client/libs/externe-fachstelle-shared/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a4fdfbae7ccdb38ba3c32d6ce362939dcfea797c --- /dev/null +++ b/alfa-client/libs/externe-fachstelle-shared/README.md @@ -0,0 +1,7 @@ +# externe-fachstelle-shared + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test externe-fachstelle-shared` to execute the unit tests. diff --git a/alfa-client/libs/externe-fachstelle-shared/jest.config.ts b/alfa-client/libs/externe-fachstelle-shared/jest.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..321388b287187df0ed066b00efd6716431ab7a16 --- /dev/null +++ b/alfa-client/libs/externe-fachstelle-shared/jest.config.ts @@ -0,0 +1,21 @@ +export default { + displayName: 'externe-fachstelle-shared', + preset: '../../jest.preset.js', + setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'], + coverageDirectory: '../../coverage/libs/externe-fachstelle-shared', + transform: { + '^.+\\.(ts|mjs|js|html)$': [ + 'jest-preset-angular', + { + tsconfig: '<rootDir>/tsconfig.spec.json', + stringifyContentPathRegex: '\\.(html|svg)$', + }, + ], + }, + transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'], + snapshotSerializers: [ + 'jest-preset-angular/build/serializers/no-ng-attributes', + 'jest-preset-angular/build/serializers/ng-snapshot', + 'jest-preset-angular/build/serializers/html-comment', + ], +}; diff --git a/alfa-client/libs/externe-fachstelle-shared/project.json b/alfa-client/libs/externe-fachstelle-shared/project.json new file mode 100644 index 0000000000000000000000000000000000000000..e9172474937fac28e4ed17b094fbee5f24a024e1 --- /dev/null +++ b/alfa-client/libs/externe-fachstelle-shared/project.json @@ -0,0 +1,22 @@ +{ + "name": "externe-fachstelle-shared", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/externe-fachstelle-shared/src", + "prefix": "alfa", + "projectType": "library", + "tags": [], + "targets": { + "test": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "options": { + "tsConfig": "libs/externe-fachstelle-shared/tsconfig.spec.json", + "jestConfig": "libs/externe-fachstelle-shared/jest.config.ts" + } + }, + "lint": { + "executor": "@nx/eslint:lint", + "outputs": ["{options.outputFile}"] + } + } +} diff --git a/alfa-client/libs/externe-fachstelle-shared/src/index.ts b/alfa-client/libs/externe-fachstelle-shared/src/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..df6d664a0acf84e56bffd755e96ac5803f518850 --- /dev/null +++ b/alfa-client/libs/externe-fachstelle-shared/src/index.ts @@ -0,0 +1 @@ +export * from './lib/externe-fachstelle-resource.service'; diff --git a/alfa-client/libs/zustaendige-stelle-shared/src/lib/zustaendige-stelle-resource.service.spec.ts b/alfa-client/libs/externe-fachstelle-shared/src/lib/externe-fachstelle-resource.service.spec.ts similarity index 75% rename from alfa-client/libs/zustaendige-stelle-shared/src/lib/zustaendige-stelle-resource.service.spec.ts rename to alfa-client/libs/externe-fachstelle-shared/src/lib/externe-fachstelle-resource.service.spec.ts index ee02181ff180148ba142ad1c8e7f2f2f364f616e..d2fa0f86a7dd1fb592c214d048caae584bc70a8b 100644 --- a/alfa-client/libs/zustaendige-stelle-shared/src/lib/zustaendige-stelle-resource.service.spec.ts +++ b/alfa-client/libs/externe-fachstelle-shared/src/lib/externe-fachstelle-resource.service.spec.ts @@ -3,10 +3,10 @@ import { ResourceListService } from '@alfa-client/tech-shared'; import { mock, Mock } from '@alfa-client/test-utils'; import { TestBed } from '@angular/core/testing'; import { faker } from '@faker-js/faker/locale/de'; -import { ZustaendigeStelleResourceService } from './zustaendige-stelle-resource.service'; +import { ExterneFachstelleResourceService } from './externe-fachstelle-resource.service'; -describe('ZustaendigeStelleResourceService', () => { - let service: ZustaendigeStelleResourceService; +describe('externeFachstelleResourceService', () => { + let service: ExterneFachstelleResourceService; let collaborationListResourceService: Mock<CollaborationListResourceService>; const resourceUri = faker.internet.url(); @@ -17,21 +17,21 @@ describe('ZustaendigeStelleResourceService', () => { TestBed.configureTestingModule({ providers: [ - ZustaendigeStelleResourceService, + ExterneFachstelleResourceService, { provide: CollaborationListResourceService, useValue: collaborationListResourceService }, ], }); - service = TestBed.inject(ZustaendigeStelleResourceService); + service = TestBed.inject(ExterneFachstelleResourceService); }); it('should be created', () => { expect(service).toBeTruthy(); }); - describe('getLinkedResource', () => { + describe('getOrganisationsEinheit', () => { it('should call collaborationListService getLinkedResource', () => { - service.getLinkedResource(resourceUri); + service.getExterneFachstelle(resourceUri); expect(collaborationListResourceService.getLinkedResource).toHaveBeenCalledWith(resourceUri); }); diff --git a/alfa-client/libs/zustaendige-stelle-shared/src/lib/zustaendige-stelle-resource.service.ts b/alfa-client/libs/externe-fachstelle-shared/src/lib/externe-fachstelle-resource.service.ts similarity index 59% rename from alfa-client/libs/zustaendige-stelle-shared/src/lib/zustaendige-stelle-resource.service.ts rename to alfa-client/libs/externe-fachstelle-shared/src/lib/externe-fachstelle-resource.service.ts index 9c8527bd8fd387d751371f97eda7c6fbab0506ff..241728abe5f58dcf19622f256c4a1016ec7a2187 100644 --- a/alfa-client/libs/zustaendige-stelle-shared/src/lib/zustaendige-stelle-resource.service.ts +++ b/alfa-client/libs/externe-fachstelle-shared/src/lib/externe-fachstelle-resource.service.ts @@ -1,14 +1,14 @@ import { CollaborationListResourceService } from '@alfa-client/collaboration-shared'; import { StateResource } from '@alfa-client/tech-shared'; +import { ExterneFachstelleResource } from '@alfa-client/zustaendige-stelle-shared'; import { inject, Injectable } from '@angular/core'; -import { Resource } from '@ngxp/rest'; import { Observable } from 'rxjs'; @Injectable() -export class ZustaendigeStelleResourceService { +export class ExterneFachstelleResourceService { private collaborationListResourceService = inject(CollaborationListResourceService); - getLinkedResource<F extends Resource>(resourceUri: string): Observable<StateResource<F>> { - return this.collaborationListResourceService.getLinkedResource<F>(resourceUri); + getExterneFachstelle(resourceUri: string): Observable<StateResource<ExterneFachstelleResource>> { + return this.collaborationListResourceService.getLinkedResource<ExterneFachstelleResource>(resourceUri); } } diff --git a/alfa-client/libs/externe-fachstelle-shared/src/test-setup.ts b/alfa-client/libs/externe-fachstelle-shared/src/test-setup.ts new file mode 100644 index 0000000000000000000000000000000000000000..c408668266d2fec3a9803c0ec044bc163fb987fe --- /dev/null +++ b/alfa-client/libs/externe-fachstelle-shared/src/test-setup.ts @@ -0,0 +1,12 @@ +import '@testing-library/jest-dom'; +import 'jest-preset-angular/setup-jest'; + +import { getTestBed } from '@angular/core/testing'; +import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; + +getTestBed().resetTestEnvironment(); +getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: { destroyAfterEach: false }, + errorOnUnknownProperties: true, + errorOnUnknownElements: true, +}); diff --git a/alfa-client/libs/externe-fachstelle-shared/tsconfig.json b/alfa-client/libs/externe-fachstelle-shared/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..7cc6baf2f58ed5ccfba098131996f579979e9f18 --- /dev/null +++ b/alfa-client/libs/externe-fachstelle-shared/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "compilerOptions": { + "target": "es2022" + } +} diff --git a/alfa-client/libs/externe-fachstelle-shared/tsconfig.lib.json b/alfa-client/libs/externe-fachstelle-shared/tsconfig.lib.json new file mode 100644 index 0000000000000000000000000000000000000000..464f01e6b2b218c0f70e15ac25dd8580bdc38f6e --- /dev/null +++ b/alfa-client/libs/externe-fachstelle-shared/tsconfig.lib.json @@ -0,0 +1,19 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "target": "es2015", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"] + }, + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableResourceInlining": true + }, + "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"], + "include": ["**/*.ts"] +} diff --git a/alfa-client/libs/externe-fachstelle-shared/tsconfig.spec.json b/alfa-client/libs/externe-fachstelle-shared/tsconfig.spec.json new file mode 100644 index 0000000000000000000000000000000000000000..3a690070a7f5e48080dd36522d6a0db384d940aa --- /dev/null +++ b/alfa-client/libs/externe-fachstelle-shared/tsconfig.spec.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"], + "target": "ES2022", + "useDefineForClassFields": false + }, + "files": ["src/test-setup.ts"], + "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"] +} diff --git a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.html b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.html index 8a4fd49ad5a58a9a4011a2f65865a5a2ea203a7d..692d4c37bf16026abb0e8348d4f59bcafdeb7f29 100644 --- a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.html +++ b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.html @@ -1,7 +1,3 @@ -<ozgcloud-spinner [stateResource]="externeFachstelleStateResource"> - @if(externeFachstelleStateResource.resource){ - <alfa-externe-fachstelle-list-item [externeFachstelle]="externeFachstelleStateResource.resource"> - <ng-content /> - </alfa-externe-fachstelle-list-item> - } -</ozgcloud-spinner> +<alfa-externe-fachstelle-list-item [externeFachstelleStateResource]="externeFachstelleStateResource$ | async"> + <ng-content /> +</alfa-externe-fachstelle-list-item> \ No newline at end of file diff --git a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.spec.ts b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.spec.ts index 8d7cdd1e657ec1233e2e5466bb860c92ceaaa690..b3114d31bc3eaaac0bffed0d9cf0d737e9c18d96 100644 --- a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.spec.ts +++ b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.spec.ts @@ -1,8 +1,8 @@ -import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ExterneFachstelleResourceService } from '@alfa-client/externe-fachstelle-shared'; import { createStateResource } from '@alfa-client/tech-shared'; import { mock, Mock } from '@alfa-client/test-utils'; -import { ZustaendigeStelleResourceService } from 'libs/zustaendige-stelle-shared/src/lib/zustaendige-stelle-resource.service'; import { createExterneFachstelle } from 'libs/zustaendige-stelle-shared/test/externe-fachstelle'; import { of } from 'rxjs'; import { ExterneFachstelleListItemContainerComponent } from './externe-fachstelle-list-item-container.component'; @@ -11,21 +11,21 @@ describe('ExterneFachstelleListItemContainerComponent', () => { let component: ExterneFachstelleListItemContainerComponent; let fixture: ComponentFixture<ExterneFachstelleListItemContainerComponent>; - let zustaendigeStelleResourceService: Mock<ZustaendigeStelleResourceService>; + let externeFachstelleResourceService: Mock<ExterneFachstelleResourceService>; const externeFachstelle = createExterneFachstelle(); const externeFachstelleStateResource = createStateResource(externeFachstelle); beforeEach(async () => { - zustaendigeStelleResourceService = { - ...mock(ZustaendigeStelleResourceService), - getLinkedResource: jest.fn().mockReturnValue(of(externeFachstelleStateResource)), + externeFachstelleResourceService = { + ...mock(ExterneFachstelleResourceService), + getExterneFachstelle: jest.fn().mockReturnValue(of(externeFachstelleStateResource)), }; await TestBed.configureTestingModule({ imports: [ExterneFachstelleListItemContainerComponent] }) .overrideComponent(ExterneFachstelleListItemContainerComponent, { set: { - providers: [{ provide: ZustaendigeStelleResourceService, useValue: zustaendigeStelleResourceService }], + providers: [{ provide: ExterneFachstelleResourceService, useValue: externeFachstelleResourceService }], }, }) .compileComponents(); @@ -40,27 +40,10 @@ describe('ExterneFachstelleListItemContainerComponent', () => { }); describe('ngOnInit', () => { - it('should call getOrganisationsEinheit', () => { - const getOrganisationsEinheitSpy = jest.spyOn(component, 'getExterneFachstelle'); - + it('should call externeFachstelleResourceService getExterneFachstelle Resource', () => { component.ngOnInit(); - expect(getOrganisationsEinheitSpy).toHaveBeenCalled; + expect(externeFachstelleResourceService.getExterneFachstelle).toHaveBeenCalled(); }); }); - - describe('getExterneFachstelle', () => { - it('should call zustaendigeStelleResourceService getLinked Resource', () => { - component.ngOnInit(); - - expect(zustaendigeStelleResourceService.getLinkedResource).toHaveBeenCalled(); - }); - - it('should get externeFachstelle', fakeAsync(() => { - component.ngOnInit(); - tick(); - - expect(component.externeFachstelleStateResource).toBe(externeFachstelleStateResource); - })); - }); }); diff --git a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.ts b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.ts index fa0aa73aa3397c03754cbba202621207faf0506c..f902b18cc6d5f50f9d636066ae0f56ce63e46c24 100644 --- a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.ts +++ b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item-container.component.ts @@ -1,38 +1,31 @@ +import { ExterneFachstelleResourceService } from '@alfa-client/externe-fachstelle-shared'; import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared'; -import { UiModule } from '@alfa-client/ui'; -import { ExterneFachstelleResource, ZustaendigeStelleResourceService } from '@alfa-client/zustaendige-stelle-shared'; +import { ExterneFachstelleResource } from '@alfa-client/zustaendige-stelle-shared'; +import { CommonModule } from '@angular/common'; import { Component, inject, Input, OnInit } from '@angular/core'; import { ResourceUri } from '@ngxp/rest'; -import { isNil } from 'lodash-es'; +import { Observable, of } from 'rxjs'; import { ExterneFachstelleListItemComponent } from './externe-fachstelle-list-item/externe-fachstelle-list-item.component'; @Component({ selector: 'alfa-externe-fachstelle-list-item-container', standalone: true, - imports: [ExterneFachstelleListItemComponent, UiModule], - providers: [ZustaendigeStelleResourceService], + imports: [CommonModule, ExterneFachstelleListItemComponent], + providers: [ExterneFachstelleResourceService], templateUrl: './externe-fachstelle-list-item-container.component.html', styleUrl: './externe-fachstelle-list-item-container.component.scss', }) export class ExterneFachstelleListItemContainerComponent implements OnInit { - private zustaendigeStelleResourceService: ZustaendigeStelleResourceService = inject(ZustaendigeStelleResourceService); + private externeFachstelleResourceService: ExterneFachstelleResourceService = inject(ExterneFachstelleResourceService); - @Input() zustaendigeStelleResourceUri: ResourceUri; + @Input() externeFachstelleResourceUri: ResourceUri; - externeFachstelleStateResource: StateResource<ExterneFachstelleResource> = createEmptyStateResource(); + externeFachstelleStateResource$: Observable<StateResource<ExterneFachstelleResource>> = + of(createEmptyStateResource<ExterneFachstelleResource>()); ngOnInit() { - this.getExterneFachstelle(); + this.externeFachstelleStateResource$ = this.externeFachstelleResourceService.getExterneFachstelle( + this.externeFachstelleResourceUri, + ); } - - getExterneFachstelle() { - this.zustaendigeStelleResourceService - .getLinkedResource<ExterneFachstelleResource>(this.zustaendigeStelleResourceUri) - .subscribe((stateResource) => { - this.externeFachstelleStateResource = stateResource; - }); - } - - protected readonly isNaN = isNaN; - protected readonly isNil = isNil; } diff --git a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.html b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.html index 42b74616c6e656c638a976cc680da4c0422175e3..dccd1f674994ac6f110c1a93c53fcba67ee9ab72 100644 --- a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.html +++ b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.html @@ -1,16 +1,20 @@ -<div class="border border-grayborder bg-background-100 p-4 shadow shadow-grayborder"> - <div class="flex flex-1 gap-6"> - <div class="flex flex-1 gap-3"> - <ods-external-unit-icon /> - <div class="flex flex-1 flex-col text-base"> - <p class="text-primary">Externe Fachstelle</p> - <p class="text-text font-bold">{{ externeFachstelle.name }}</p> +<ozgcloud-spinner [stateResource]="externeFachstelleStateResource"> + @if (externeFachstelleStateResource.resource; as resource) { + <div class="border border-grayborder bg-background-100 p-4 shadow shadow-grayborder"> + <div class="flex flex-1 gap-6"> + <div class="flex flex-1 gap-3"> + <ods-external-unit-icon /> + <div class="flex flex-1 flex-col text-base"> + <p class="text-primary">Externe Fachstelle</p> + <p class="text-text font-bold">{{ resource.name }}</p> + </div> + </div> + <div class="flex-1"> + <div class="block">{{ resource.anschrift }}</div> + <div class="block">Email: {{ resource.email }}</div> + </div> </div> + <ng-content /> </div> - <div class="flex-1"> - <div class="block">{{ externeFachstelle.anschrift }}</div> - <div class="block">Email: {{ externeFachstelle.email }}</div> - </div> - </div> - <ng-content/> -</div> + } +</ozgcloud-spinner> diff --git a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.spec.ts b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.spec.ts index b9d04c2a4947c3bf9df0b2de18081fbebacb17a1..5d78cea53d3030937c85d2c66e7a065243ca9fda 100644 --- a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.spec.ts +++ b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.spec.ts @@ -1,5 +1,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { createStateResource, StateResource } from '@alfa-client/tech-shared'; import { ExterneFachstelleResource } from '@alfa-client/zustaendige-stelle-shared'; import { toResource } from 'libs/tech-shared/test/resource'; import { createExterneFachstelle } from 'libs/zustaendige-stelle-shared/test/externe-fachstelle'; @@ -10,6 +11,7 @@ describe('ExterneFachstelleListItemComponent', () => { let fixture: ComponentFixture<ExterneFachstelleListItemComponent>; const externeFachstelle: ExterneFachstelleResource = toResource(createExterneFachstelle()); + const externeFachstelleState: StateResource<ExterneFachstelleResource> = createStateResource(externeFachstelle); beforeEach(async () => { await TestBed.configureTestingModule({ @@ -18,7 +20,7 @@ describe('ExterneFachstelleListItemComponent', () => { fixture = TestBed.createComponent(ExterneFachstelleListItemComponent); component = fixture.componentInstance; - component.externeFachstelle = externeFachstelle; + component.externeFachstelleStateResource = externeFachstelleState; fixture.detectChanges(); }); diff --git a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.ts b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.ts index c3be9086a4895d5cb36dacc4758ee7693ef85aa6..dfa121e96837efeb14af42d139bfb12ee7b47bc3 100644 --- a/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.ts +++ b/alfa-client/libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component.ts @@ -1,3 +1,5 @@ +import { StateResource } from '@alfa-client/tech-shared'; +import { UiModule } from '@alfa-client/ui'; import { ExterneFachstelleResource } from '@alfa-client/zustaendige-stelle-shared'; import { Component, Input } from '@angular/core'; import { ExternalUnitIconComponent, PublicAdministrationIconComponent } from '@ods/system'; @@ -5,10 +7,10 @@ import { ExternalUnitIconComponent, PublicAdministrationIconComponent } from '@o @Component({ selector: 'alfa-externe-fachstelle-list-item', standalone: true, - imports: [PublicAdministrationIconComponent, ExternalUnitIconComponent], + imports: [PublicAdministrationIconComponent, ExternalUnitIconComponent, UiModule], templateUrl: './externe-fachstelle-list-item.component.html', styleUrl: './externe-fachstelle-list-item.component.scss', }) export class ExterneFachstelleListItemComponent { - @Input() externeFachstelle: ExterneFachstelleResource; + @Input() externeFachstelleStateResource: StateResource<ExterneFachstelleResource>; } diff --git a/alfa-client/libs/externe-fachstelle/src/test-setup.ts b/alfa-client/libs/externe-fachstelle/src/test-setup.ts index 03a84127dca1b63fa485fc51d162cec76921b596..c408668266d2fec3a9803c0ec044bc163fb987fe 100644 --- a/alfa-client/libs/externe-fachstelle/src/test-setup.ts +++ b/alfa-client/libs/externe-fachstelle/src/test-setup.ts @@ -1,26 +1,3 @@ -/* - * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ import '@testing-library/jest-dom'; import 'jest-preset-angular/setup-jest'; diff --git a/alfa-client/libs/organisations-einheit-shared/.eslintrc.json b/alfa-client/libs/organisations-einheit-shared/.eslintrc.json new file mode 100644 index 0000000000000000000000000000000000000000..b953e5d37d40148217ab14a01859ea0cb43d9ebc --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/.eslintrc.json @@ -0,0 +1,33 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*"], + "overrides": [ + { + "files": ["*.ts"], + "extends": ["plugin:@nx/angular", "plugin:@angular-eslint/template/process-inline-templates"], + "rules": { + "@angular-eslint/directive-selector": [ + "error", + { + "type": "attribute", + "prefix": "lib", + "style": "camelCase" + } + ], + "@angular-eslint/component-selector": [ + "error", + { + "type": "element", + "prefix": "lib", + "style": "kebab-case" + } + ] + } + }, + { + "files": ["*.html"], + "extends": ["plugin:@nx/angular-template"], + "rules": {} + } + ] +} diff --git a/alfa-client/libs/organisations-einheit-shared/README.md b/alfa-client/libs/organisations-einheit-shared/README.md new file mode 100644 index 0000000000000000000000000000000000000000..547b880702166961734aa02432e2c0c99a585d5f --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/README.md @@ -0,0 +1,7 @@ +# organisations-einheit-shared + +This library was generated with [Nx](https://nx.dev). + +## Running unit tests + +Run `nx test organisations-einheit-shared` to execute the unit tests. diff --git a/alfa-client/libs/organisations-einheit-shared/jest.config.ts b/alfa-client/libs/organisations-einheit-shared/jest.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..02c5e876cde8bafdb85a41cce363cd62343481fb --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/jest.config.ts @@ -0,0 +1,21 @@ +export default { + displayName: 'organisations-einheit-shared', + preset: '../../jest.preset.js', + setupFilesAfterEnv: ['<rootDir>/src/test-setup.ts'], + coverageDirectory: '../../coverage/libs/organisations-einheit-shared', + transform: { + '^.+\\.(ts|mjs|js|html)$': [ + 'jest-preset-angular', + { + tsconfig: '<rootDir>/tsconfig.spec.json', + stringifyContentPathRegex: '\\.(html|svg)$', + }, + ], + }, + transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)'], + snapshotSerializers: [ + 'jest-preset-angular/build/serializers/no-ng-attributes', + 'jest-preset-angular/build/serializers/ng-snapshot', + 'jest-preset-angular/build/serializers/html-comment', + ], +}; diff --git a/alfa-client/libs/organisations-einheit-shared/project.json b/alfa-client/libs/organisations-einheit-shared/project.json new file mode 100644 index 0000000000000000000000000000000000000000..e90e8c4db621944785370a8cdd0300a56afe45f2 --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/project.json @@ -0,0 +1,22 @@ +{ + "name": "organisations-einheit-shared", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "libs/organisations-einheit-shared/src", + "prefix": "alfa", + "projectType": "library", + "tags": [], + "targets": { + "test": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/{projectRoot}"], + "options": { + "tsConfig": "libs/organisations-einheit-shared/tsconfig.spec.json", + "jestConfig": "libs/organisations-einheit-shared/jest.config.ts" + } + }, + "lint": { + "executor": "@nx/eslint:lint", + "outputs": ["{options.outputFile}"] + } + } +} diff --git a/alfa-client/libs/organisations-einheit-shared/src/index.ts b/alfa-client/libs/organisations-einheit-shared/src/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..e4eb22d93c7255a283414670958912bc7022f28d --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/src/index.ts @@ -0,0 +1 @@ +export * from './lib/organisations-einheit-resource.service'; diff --git a/alfa-client/libs/organisations-einheit-shared/src/lib/organisations-einheit-resource.service.spec.ts b/alfa-client/libs/organisations-einheit-shared/src/lib/organisations-einheit-resource.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..35b493a26600d5421be996df95e66e967ae8ce66 --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/src/lib/organisations-einheit-resource.service.spec.ts @@ -0,0 +1,39 @@ +import { CollaborationListResourceService } from '@alfa-client/collaboration-shared'; +import { ResourceListService } from '@alfa-client/tech-shared'; +import { mock, Mock } from '@alfa-client/test-utils'; +import { TestBed } from '@angular/core/testing'; +import { faker } from '@faker-js/faker/locale/de'; +import { OrganisationsEinheitResourceService } from './organisations-einheit-resource.service'; + +describe('externeFachstelleResourceService', () => { + let service: OrganisationsEinheitResourceService; + let collaborationListResourceService: Mock<CollaborationListResourceService>; + + const resourceUri = faker.internet.url(); + + beforeEach(() => { + // todo: repariere mock funktion zum mocken extendeter Klassen? Dann kann hier auch CollaborationListResourceService verwendet werden + collaborationListResourceService = mock(ResourceListService); + + TestBed.configureTestingModule({ + providers: [ + OrganisationsEinheitResourceService, + { provide: CollaborationListResourceService, useValue: collaborationListResourceService }, + ], + }); + + service = TestBed.inject(OrganisationsEinheitResourceService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); + + describe('getOrganisationsEinheit', () => { + it('should call collaborationListService getLinkedResource', () => { + service.getOrganisationsEinheit(resourceUri); + + expect(collaborationListResourceService.getLinkedResource).toHaveBeenCalledWith(resourceUri); + }); + }); +}); diff --git a/alfa-client/libs/organisations-einheit-shared/src/lib/organisations-einheit-resource.service.ts b/alfa-client/libs/organisations-einheit-shared/src/lib/organisations-einheit-resource.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..6ce86469eabfbe4bd953b5c0e69dd6a887cdf851 --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/src/lib/organisations-einheit-resource.service.ts @@ -0,0 +1,14 @@ +import { CollaborationListResourceService } from '@alfa-client/collaboration-shared'; +import { StateResource } from '@alfa-client/tech-shared'; +import { OrganisationsEinheitResource } from '@alfa-client/zustaendige-stelle-shared'; +import { inject, Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; + +@Injectable() +export class OrganisationsEinheitResourceService { + private collaborationListResourceService = inject(CollaborationListResourceService); + + getOrganisationsEinheit(resourceUri: string): Observable<StateResource<OrganisationsEinheitResource>> { + return this.collaborationListResourceService.getLinkedResource<OrganisationsEinheitResource>(resourceUri); + } +} diff --git a/alfa-client/libs/organisations-einheit-shared/src/test-setup.ts b/alfa-client/libs/organisations-einheit-shared/src/test-setup.ts new file mode 100644 index 0000000000000000000000000000000000000000..c408668266d2fec3a9803c0ec044bc163fb987fe --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/src/test-setup.ts @@ -0,0 +1,12 @@ +import '@testing-library/jest-dom'; +import 'jest-preset-angular/setup-jest'; + +import { getTestBed } from '@angular/core/testing'; +import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; + +getTestBed().resetTestEnvironment(); +getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + teardown: { destroyAfterEach: false }, + errorOnUnknownProperties: true, + errorOnUnknownElements: true, +}); diff --git a/alfa-client/libs/organisations-einheit-shared/tsconfig.json b/alfa-client/libs/organisations-einheit-shared/tsconfig.json new file mode 100644 index 0000000000000000000000000000000000000000..7cc6baf2f58ed5ccfba098131996f579979e9f18 --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "compilerOptions": { + "target": "es2022" + } +} diff --git a/alfa-client/libs/organisations-einheit-shared/tsconfig.lib.json b/alfa-client/libs/organisations-einheit-shared/tsconfig.lib.json new file mode 100644 index 0000000000000000000000000000000000000000..464f01e6b2b218c0f70e15ac25dd8580bdc38f6e --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/tsconfig.lib.json @@ -0,0 +1,19 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "target": "es2015", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2018"] + }, + "angularCompilerOptions": { + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "enableResourceInlining": true + }, + "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"], + "include": ["**/*.ts"] +} diff --git a/alfa-client/libs/organisations-einheit-shared/tsconfig.spec.json b/alfa-client/libs/organisations-einheit-shared/tsconfig.spec.json new file mode 100644 index 0000000000000000000000000000000000000000..3a690070a7f5e48080dd36522d6a0db384d940aa --- /dev/null +++ b/alfa-client/libs/organisations-einheit-shared/tsconfig.spec.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"], + "target": "ES2022", + "useDefineForClassFields": false + }, + "files": ["src/test-setup.ts"], + "include": ["**/*.spec.ts", "**/*.d.ts", "jest.config.ts"] +} diff --git a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.html b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.html index 8baad311c25b61c4fc462ba5dc05ba3326bd870a..fb9f5afd36f5f354c9e3dbee3b558431ef598c00 100644 --- a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.html +++ b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.html @@ -1,7 +1,3 @@ -<ozgcloud-spinner [stateResource]="organisationsEinheitStateResource"> - @if(organisationsEinheitStateResource.resource){ - <alfa-organisations-einheit-list-item [organisationsEinheit]="organisationsEinheitStateResource.resource"> - <ng-content /> - </alfa-organisations-einheit-list-item> - } -</ozgcloud-spinner> \ No newline at end of file +<alfa-organisations-einheit-list-item [organisationsEinheitStateResource]="organisationsEinheitStateResource$ | async"> + <ng-content /> +</alfa-organisations-einheit-list-item> diff --git a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.spec.ts b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.spec.ts index 299f0da625eb1d9a59c10a186ba3b62c47d4aeaf..d54a577a0369f42f139a0d9a5aedc7cd7f44cec9 100644 --- a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.spec.ts +++ b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.spec.ts @@ -1,9 +1,9 @@ +import { OrganisationsEinheitResourceService } from '@alfa-client/organisations-einheit-shared'; import { createStateResource, StateResource } from '@alfa-client/tech-shared'; import { mock, Mock } from '@alfa-client/test-utils'; import { OrganisationsEinheitResource } from '@alfa-client/zustaendige-stelle-shared'; -import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; import { toResource } from 'libs/tech-shared/test/resource'; -import { ZustaendigeStelleResourceService } from 'libs/zustaendige-stelle-shared/src/lib/zustaendige-stelle-resource.service'; import { createOrganisationsEinheit } from 'libs/zustaendige-stelle-shared/test/organisations-einheit'; import { of } from 'rxjs'; import { OrganisationsEinheitListItemContainerComponent } from './organisations-einheit-list-item-container.component'; @@ -12,22 +12,22 @@ describe('OrganisationsEinheitListItemContainerComponent', () => { let component: OrganisationsEinheitListItemContainerComponent; let fixture: ComponentFixture<OrganisationsEinheitListItemContainerComponent>; - let zustaendigeStelleResourceService: Mock<ZustaendigeStelleResourceService>; + let organisationsEinheitResourceService: Mock<OrganisationsEinheitResourceService>; const organisationsEinheit: OrganisationsEinheitResource = toResource(createOrganisationsEinheit()); const organisationsEInheitStateResource: StateResource<OrganisationsEinheitResource> = createStateResource(organisationsEinheit); beforeEach(async () => { - zustaendigeStelleResourceService = { - ...mock(ZustaendigeStelleResourceService), - getLinkedResource: jest.fn().mockReturnValue(of(organisationsEInheitStateResource)), + organisationsEinheitResourceService = { + ...mock(OrganisationsEinheitResourceService), + getOrganisationsEinheit: jest.fn().mockReturnValue(of(organisationsEInheitStateResource)), }; await TestBed.configureTestingModule({ imports: [OrganisationsEinheitListItemContainerComponent] }) .overrideComponent(OrganisationsEinheitListItemContainerComponent, { set: { - providers: [{ provide: ZustaendigeStelleResourceService, useValue: zustaendigeStelleResourceService }], + providers: [{ provide: OrganisationsEinheitResourceService, useValue: organisationsEinheitResourceService }], }, }) .compileComponents(); @@ -42,27 +42,10 @@ describe('OrganisationsEinheitListItemContainerComponent', () => { }); describe('ngOnInit', () => { - it('should call getOrganisationsEinheit', () => { - const getOrganisationsEinheitSpy = jest.spyOn(component, 'getOrganisationsEinheit'); - + it('should call organisationsEinheitResourceService getOrganisationsEinheit Resource', () => { component.ngOnInit(); - expect(getOrganisationsEinheitSpy).toHaveBeenCalled; + expect(organisationsEinheitResourceService.getOrganisationsEinheit).toHaveBeenCalled(); }); }); - - describe('getOrganisationsEinheit', () => { - it('should call zustaendigeStelleResourceService getLinked Resource', () => { - component.ngOnInit(); - - expect(zustaendigeStelleResourceService.getLinkedResource).toHaveBeenCalled(); - }); - - it('should get organisationEinheit', fakeAsync(() => { - component.ngOnInit(); - tick(); - - expect(component.organisationsEinheitStateResource.resource).toBe(organisationsEinheit); - })); - }); }); diff --git a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.ts b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.ts index ec901cffd70301f40e54d25630140868a6fc6437..9ed50c0dd72ebd711da566e9af3f41d83c9d8597 100644 --- a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.ts +++ b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item-container.component.ts @@ -1,36 +1,31 @@ -import { StateResource } from '@alfa-client/tech-shared'; -import { UiModule } from '@alfa-client/ui'; -import { OrganisationsEinheitResource, ZustaendigeStelleResourceService } from '@alfa-client/zustaendige-stelle-shared'; +import { OrganisationsEinheitResourceService } from '@alfa-client/organisations-einheit-shared'; +import { createEmptyStateResource, StateResource } from '@alfa-client/tech-shared'; +import { OrganisationsEinheitResource } from '@alfa-client/zustaendige-stelle-shared'; import { CommonModule } from '@angular/common'; import { Component, inject, Input, OnInit } from '@angular/core'; import { ResourceUri } from '@ngxp/rest'; -import { ExterneFachstelleListItemComponent } from 'libs/externe-fachstelle/src/lib/externe-fachstelle-list-item-container/externe-fachstelle-list-item/externe-fachstelle-list-item.component'; +import { Observable, of } from 'rxjs'; import { OrganisationsEinheitListItemComponent } from './organisations-einheit-list-item/organisations-einheit-list-item.component'; @Component({ selector: 'alfa-organisations-einheit-list-item-container', standalone: true, - imports: [CommonModule, OrganisationsEinheitListItemComponent, ExterneFachstelleListItemComponent, UiModule], - providers: [ZustaendigeStelleResourceService], + imports: [CommonModule, OrganisationsEinheitListItemComponent], + providers: [OrganisationsEinheitResourceService], templateUrl: './organisations-einheit-list-item-container.component.html', styleUrl: './organisations-einheit-list-item-container.component.scss', }) export class OrganisationsEinheitListItemContainerComponent implements OnInit { - private zustaendigeStelleResourceService: ZustaendigeStelleResourceService = inject(ZustaendigeStelleResourceService); + private organisationsEinheitResourceService: OrganisationsEinheitResourceService = inject(OrganisationsEinheitResourceService); - @Input() zustaendigeStelleResourceUri: ResourceUri; + @Input() organisationsEinheitResourceUri: ResourceUri; - organisationsEinheitStateResource: StateResource<OrganisationsEinheitResource>; + organisationsEinheitStateResource$: Observable<StateResource<OrganisationsEinheitResource>> = + of(createEmptyStateResource<OrganisationsEinheitResource>()); ngOnInit() { - this.getOrganisationsEinheit(); - } - - getOrganisationsEinheit() { - this.zustaendigeStelleResourceService - .getLinkedResource<OrganisationsEinheitResource>(this.zustaendigeStelleResourceUri) - .subscribe((stateResource) => { - this.organisationsEinheitStateResource = stateResource; - }); + this.organisationsEinheitStateResource$ = this.organisationsEinheitResourceService.getOrganisationsEinheit( + this.organisationsEinheitResourceUri, + ); } } diff --git a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.html b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.html index badba55542735895c351ce80b554fe2253ecfd8c..e90fbe36c0802141c9ef87719df5fa2add8add61 100644 --- a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.html +++ b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.html @@ -1,15 +1,19 @@ -<div class="border border-grayborder bg-background-100 p-4 shadow shadow-grayborder"> - <div class="flex flex-1 gap-6"> - <div class="flex flex-1 gap-3"> - <ods-public-administration-icon /> - <div class="flex flex-1 flex-col text-base"> - <p class="text-primary">Organisationseinheit</p> - <p class="text-text font-bold">{{ organisationsEinheit.name }}</p> +<ozgcloud-spinner [stateResource]="organisationsEinheitStateResource"> + @if (organisationsEinheitStateResource.resource; as resource) { + <div class="border border-grayborder bg-background-100 p-4 shadow shadow-grayborder"> + <div class="flex flex-1 gap-6"> + <div class="flex flex-1 gap-3"> + <ods-public-administration-icon /> + <div class="flex flex-1 flex-col text-base"> + <p class="text-primary">Organisationseinheit</p> + <p class="text-text font-bold">{{ resource.name }}</p> + </div> + </div> + <div class="flex-1"> + <div class="block">{{ formatAnschrift(resource.anschrift) }}</div> + </div> </div> + <ng-content /> </div> - <div class="flex-1"> - <div class="block">{{ formatAnschrift(organisationsEinheit.anschrift) }}</div> - </div> - </div> - <ng-content/> -</div> + } +</ozgcloud-spinner> \ No newline at end of file diff --git a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.spec.ts b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.spec.ts index ada0466b2bebee3cae9f26c4cebaa27fae32be97..5982e818f36bd67e592538be278768d22634d2a8 100644 --- a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.spec.ts +++ b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.spec.ts @@ -1,5 +1,8 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { createStateResource, StateResource } from '@alfa-client/tech-shared'; +import { OrganisationsEinheitResource } from '@alfa-client/zustaendige-stelle-shared'; +import { toResource } from 'libs/tech-shared/test/resource'; import { createOrganisationsEinheit } from 'libs/zustaendige-stelle-shared/test/organisations-einheit'; import { OrganisationsEinheitListItemComponent } from './organisations-einheit-list-item.component'; @@ -7,7 +10,9 @@ describe('OrganisationsEinheitListItemComponent', () => { let component: OrganisationsEinheitListItemComponent; let fixture: ComponentFixture<OrganisationsEinheitListItemComponent>; - const organisationsEinheit = createOrganisationsEinheit(); + const organisationsEinheitResource: OrganisationsEinheitResource = toResource(createOrganisationsEinheit()); + const organisationsEinheitStateResource: StateResource<OrganisationsEinheitResource> = + createStateResource(organisationsEinheitResource); beforeEach(async () => { await TestBed.configureTestingModule({ @@ -16,7 +21,7 @@ describe('OrganisationsEinheitListItemComponent', () => { fixture = TestBed.createComponent(OrganisationsEinheitListItemComponent); component = fixture.componentInstance; - component.organisationsEinheit = organisationsEinheit; + component.organisationsEinheitStateResource = organisationsEinheitStateResource; fixture.detectChanges(); }); diff --git a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.ts b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.ts index 7172e32452e27a0169338a62274b321ba0ef65ef..eaeb036fed30eff0e0bce1ffdf9428a24a9896cd 100644 --- a/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.ts +++ b/alfa-client/libs/organisations-einheit/src/lib/organisations-einheit-list-item-container/organisations-einheit-list-item/organisations-einheit-list-item.component.ts @@ -1,4 +1,6 @@ -import { OrganisationsEinheit } from '@alfa-client/zustaendige-stelle-shared'; +import { StateResource } from '@alfa-client/tech-shared'; +import { UiModule } from '@alfa-client/ui'; +import { OrganisationsEinheitResource } from '@alfa-client/zustaendige-stelle-shared'; import { Component, Input } from '@angular/core'; import { ExternalUnitIconComponent, PublicAdministrationIconComponent } from '@ods/system'; import { formatAnschrift } from '../../organisations-einheit.util'; @@ -6,11 +8,11 @@ import { formatAnschrift } from '../../organisations-einheit.util'; @Component({ selector: 'alfa-organisations-einheit-list-item', standalone: true, - imports: [ExternalUnitIconComponent, PublicAdministrationIconComponent], + imports: [ExternalUnitIconComponent, PublicAdministrationIconComponent, UiModule], templateUrl: './organisations-einheit-list-item.component.html', styleUrl: './organisations-einheit-list-item.component.scss', }) export class OrganisationsEinheitListItemComponent { - @Input() organisationsEinheit: OrganisationsEinheit; + @Input() organisationsEinheitStateResource: StateResource<OrganisationsEinheitResource>; protected readonly formatAnschrift = formatAnschrift; } diff --git a/alfa-client/libs/zustaendige-stelle-shared/src/index.ts b/alfa-client/libs/zustaendige-stelle-shared/src/index.ts index 61f2d6239e3f96548c5168e7748e8cecae54b8ff..a7848f376a7054d248e5aecc97aff7a3b5a3fe76 100644 --- a/alfa-client/libs/zustaendige-stelle-shared/src/index.ts +++ b/alfa-client/libs/zustaendige-stelle-shared/src/index.ts @@ -3,7 +3,6 @@ export * from './lib/externe-fachstelle/externe-fachstelle.service'; export * from './lib/organisations-einheit/organisations-einheit-resource-search.service'; export * from './lib/organisations-einheit/organisations-einheit.model'; export * from './lib/organisations-einheit/organisations-einheit.service'; -export * from './lib/zustaendige-stelle-resource.service'; export * from './lib/zustaendige-stelle-shared.module'; export * from './lib/zustaendige-stelle.service'; export * from './lib/zustaendige-stelle.token'; diff --git a/alfa-client/package-lock.json b/alfa-client/package-lock.json index 04d669b344edd35238983c2f5560fc9939058646..4a32b4ed0480728b868f4017337097aeb5aa6695 100644 --- a/alfa-client/package-lock.json +++ b/alfa-client/package-lock.json @@ -76,6 +76,9 @@ "@storybook/addon-interactions": "^8.3.5", "@storybook/angular": "^8.3.5", "@storybook/core-server": "^8.3.5", + "@swc-node/register": "~1.9.1", + "@swc/core": "~1.5.7", + "@swc/helpers": "~0.5.11", "@testing-library/jest-dom": "^6.4.5", "@types/file-saver": "2.0.7", "@types/jest": "29.5.13", @@ -1475,7 +1478,6 @@ "version": "18.2.8", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@angular/compiler/-/compiler-18.2.8.tgz", "integrity": "sha512-JRedHNfK1CCPVyeGQB5w3WBYqMA6X8Q240CkvjlGfn0pVXihf9DWk3nkSQJVgYxpvpHfxdgjaYZ5IpMzlkmkhw==", - "license": "MIT", "peer": true, "dependencies": { "tslib": "^2.3.0" @@ -6237,11 +6239,10 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.18.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/config-array/-/config-array-0.18.0.tgz", - "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "version": "0.19.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", "dev": true, - "license": "Apache-2.0", "peer": true, "dependencies": { "@eslint/object-schema": "^2.1.4", @@ -6257,7 +6258,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -6269,7 +6269,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -6279,11 +6278,10 @@ } }, "node_modules/@eslint/core": { - "version": "0.7.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/core/-/core-0.7.0.tgz", - "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "version": "0.9.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", "dev": true, - "license": "Apache-2.0", "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -6415,18 +6413,16 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/object-schema/-/object-schema-2.1.4.tgz", "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, - "license": "Apache-2.0", "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", - "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", + "version": "0.2.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", "dev": true, - "license": "Apache-2.0", "peer": true, "dependencies": { "levn": "^0.4.1" @@ -6480,7 +6476,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@humanfs/core/-/core-0.19.1.tgz", "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, - "license": "Apache-2.0", "peer": true, "engines": { "node": ">=18.18.0" @@ -6491,7 +6486,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@humanfs/node/-/node-0.16.6.tgz", "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, - "license": "Apache-2.0", "peer": true, "dependencies": { "@humanfs/core": "^0.19.1", @@ -6501,6 +6495,20 @@ "node": ">=18.18.0" } }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -6559,11 +6567,10 @@ "license": "BSD-3-Clause" }, "node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "version": "0.4.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, - "license": "Apache-2.0", "peer": true, "engines": { "node": ">=18.18" @@ -8677,11 +8684,10 @@ } }, "node_modules/@nx/devkit": { - "version": "20.0.6", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@nx/devkit/-/devkit-20.0.6.tgz", - "integrity": "sha512-vUjVVEJgfq/roCzDDZDXduwnhVXl1MM5No2UELUka2oNBK09pPigdFxzUNh8XvmOyFskCGDTLKH/dAO5yTD5Bg==", + "version": "20.1.4", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@nx/devkit/-/devkit-20.1.4.tgz", + "integrity": "sha512-Opz7eRPmpt3e4SGkbwZbE9Bg3MhKeivh1QTNCj4tQVAB4gucz0lW/F3mdtRDFdj6gUbqIc5rRrbO/DGlNaEzYw==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "ejs": "^3.1.7", @@ -8769,11 +8775,10 @@ } }, "node_modules/@nx/eslint-plugin/node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "version": "3.2.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "ajv": "^6.12.4", @@ -8798,7 +8803,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -8810,7 +8814,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/globals/-/globals-14.0.0.tgz", "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=18" @@ -8824,7 +8827,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -8834,11 +8836,10 @@ } }, "node_modules/@nx/eslint-plugin/node_modules/@eslint/js": { - "version": "9.13.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/js/-/js-9.13.0.tgz", - "integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==", + "version": "9.16.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@eslint/js/-/js-9.16.0.tgz", + "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -8988,7 +8989,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -9006,37 +9006,35 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "Python-2.0", "peer": true }, "node_modules/@nx/eslint-plugin/node_modules/eslint": { - "version": "9.13.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/eslint/-/eslint-9.13.0.tgz", - "integrity": "sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==", + "version": "9.16.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/eslint/-/eslint-9.16.0.tgz", + "integrity": "sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.18.0", - "@eslint/core": "^0.7.0", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.13.0", - "@eslint/plugin-kit": "^0.2.0", - "@humanfs/node": "^0.16.5", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.16.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.1", + "@humanwhocodes/retry": "^0.4.1", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.5", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.1.0", - "eslint-visitor-keys": "^4.1.0", - "espree": "^10.2.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -9050,8 +9048,7 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" @@ -9076,7 +9073,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "balanced-match": "^1.0.0", @@ -9088,7 +9084,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "Apache-2.0", "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -9102,7 +9097,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -9116,7 +9110,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/espree/-/espree-10.3.0.tgz", "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, - "license": "BSD-2-Clause", "peer": true, "dependencies": { "acorn": "^8.14.0", @@ -9135,7 +9128,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, - "license": "Apache-2.0", "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -9149,7 +9141,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/file-entry-cache/-/file-entry-cache-8.0.0.tgz", "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "flat-cache": "^4.0.0" @@ -9163,7 +9154,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/flat-cache/-/flat-cache-4.0.1.tgz", "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "flatted": "^3.2.9", @@ -9191,7 +9181,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "argparse": "^2.0.1" @@ -9205,7 +9194,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "license": "MIT", "peer": true }, "node_modules/@nx/eslint/node_modules/@nx/devkit": { @@ -12400,17 +12388,268 @@ "dev": true, "license": "MIT" }, + "node_modules/@swc-node/core": { + "version": "1.13.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc-node/core/-/core-1.13.3.tgz", + "integrity": "sha512-OGsvXIid2Go21kiNqeTIn79jcaX4l0G93X2rAnas4LFoDyA9wAwVK7xZdm+QsKoMn5Mus2yFLCc4OtX2dD/PWA==", + "devOptional": true, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@swc/core": ">= 1.4.13", + "@swc/types": ">= 0.1" + } + }, + "node_modules/@swc-node/register": { + "version": "1.9.2", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc-node/register/-/register-1.9.2.tgz", + "integrity": "sha512-BBjg0QNuEEmJSoU/++JOXhrjWdu3PTyYeJWsvchsI0Aqtj8ICkz/DqlwtXbmZVZ5vuDPpTfFlwDBZe81zgShMA==", + "devOptional": true, + "dependencies": { + "@swc-node/core": "^1.13.1", + "@swc-node/sourcemap-support": "^0.5.0", + "colorette": "^2.0.20", + "debug": "^4.3.4", + "pirates": "^4.0.6", + "tslib": "^2.6.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@swc/core": ">= 1.4.13", + "typescript": ">= 4.3" + } + }, + "node_modules/@swc-node/sourcemap-support": { + "version": "0.5.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc-node/sourcemap-support/-/sourcemap-support-0.5.1.tgz", + "integrity": "sha512-JxIvIo/Hrpv0JCHSyRpetAdQ6lB27oFYhv0PKCNf1g2gUXOjpeR1exrXccRxLMuAV5WAmGFBwRnNOJqN38+qtg==", + "devOptional": true, + "dependencies": { + "source-map-support": "^0.5.21", + "tslib": "^2.6.3" + } + }, + "node_modules/@swc/core": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core/-/core-1.5.29.tgz", + "integrity": "sha512-nvTtHJI43DUSOAf3h9XsqYg8YXKc0/N4il9y4j0xAkO0ekgDNo+3+jbw6MInawjKJF9uulyr+f5bAutTsOKVlw==", + "devOptional": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.8" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.5.29", + "@swc/core-darwin-x64": "1.5.29", + "@swc/core-linux-arm-gnueabihf": "1.5.29", + "@swc/core-linux-arm64-gnu": "1.5.29", + "@swc/core-linux-arm64-musl": "1.5.29", + "@swc/core-linux-x64-gnu": "1.5.29", + "@swc/core-linux-x64-musl": "1.5.29", + "@swc/core-win32-arm64-msvc": "1.5.29", + "@swc/core-win32-ia32-msvc": "1.5.29", + "@swc/core-win32-x64-msvc": "1.5.29" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.29.tgz", + "integrity": "sha512-6F/sSxpHaq3nzg2ADv9FHLi4Fu2A8w8vP8Ich8gIl16D2htStlwnaPmCLjRswO+cFkzgVqy/l01gzNGWd4DFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-darwin-x64/-/core-darwin-x64-1.5.29.tgz", + "integrity": "sha512-rF/rXkvUOTdTIfoYbmszbSUGsCyvqACqy1VeP3nXONS+LxFl4bRmRcUTRrblL7IE5RTMCKUuPbqbQSE2hK7bqg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.29.tgz", + "integrity": "sha512-2OAPL8iWBsmmwkjGXqvuUhbmmoLxS1xNXiMq87EsnCNMAKohGc7wJkdAOUL6J/YFpean/vwMWg64rJD4pycBeg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.29.tgz", + "integrity": "sha512-eH/Q9+8O5qhSxMestZnhuS1xqQMr6M7SolZYxiXJqxArXYILLCF+nq2R9SxuMl0CfjHSpb6+hHPk/HXy54eIRA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.29.tgz", + "integrity": "sha512-TERh2OICAJz+SdDIK9+0GyTUwF6r4xDlFmpoiHKHrrD/Hh3u+6Zue0d7jQ/he/i80GDn4tJQkHlZys+RZL5UZg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.29.tgz", + "integrity": "sha512-WMDPqU7Ji9dJpA+Llek2p9t7pcy7Bob8ggPUvgsIlv3R/eesF9DIzSbrgl6j3EAEPB9LFdSafsgf6kT/qnvqFg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.29.tgz", + "integrity": "sha512-DO14glwpdKY4POSN0201OnGg1+ziaSVr6/RFzuSLggshwXeeyVORiHv3baj7NENhJhWhUy3NZlDsXLnRFkmhHQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.29.tgz", + "integrity": "sha512-V3Y1+a1zG1zpYXUMqPIHEMEOd+rHoVnIpO/KTyFwAmKVu8v+/xPEVx/AGoYE67x4vDAAvPQrKI3Aokilqa5yVg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.29.tgz", + "integrity": "sha512-OrM6yfXw4wXhnVFosOJzarw0Fdz5Y0okgHfn9oFbTPJhoqxV5Rdmd6kXxWu2RiVKs6kGSJFZXHDeUq2w5rTIMg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.5.29", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.29.tgz", + "integrity": "sha512-eD/gnxqKyZQQR0hR7TMkIlJ+nCF9dzYmVVNbYZWuA1Xy94aBPUsEk3Uw3oG7q6R3ErrEUPP0FNf2ztEnv+I+dw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "devOptional": true + }, "node_modules/@swc/helpers": { "version": "0.5.13", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/helpers/-/helpers-0.5.13.tgz", "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.4.0" } }, + "node_modules/@swc/types": { + "version": "0.1.17", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@swc/types/-/types-0.1.17.tgz", + "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", + "devOptional": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, "node_modules/@testing-library/dom": { "version": "10.4.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@testing-library/dom/-/dom-10.4.0.tgz", @@ -15296,7 +15535,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true, - "license": "ISC", "peer": true }, "node_modules/browserify-aes": { @@ -16959,10 +17197,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "license": "MIT", + "version": "7.0.6", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -17706,7 +17943,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/decamelize/-/decamelize-4.0.0.tgz", "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -22587,7 +22823,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", "dev": true, - "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -22605,7 +22840,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, - "license": "MIT", "optional": true, "peer": true, "dependencies": { @@ -25504,11 +25738,10 @@ } }, "node_modules/mocha": { - "version": "10.8.1", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/mocha/-/mocha-10.8.1.tgz", - "integrity": "sha512-WxSpEWgF03HfgNKBuysfK40DUaOSVX5zxgLDoieMGO+zyE69iq2eQ1vBypvIJ5mOPKpuVAqWiTbt4Orj7L6wVw==", + "version": "10.8.2", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "ansi-colors": "^4.1.3", @@ -25545,7 +25778,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true, - "license": "Python-2.0", "peer": true }, "node_modules/mocha/node_modules/cliui": { @@ -25553,7 +25785,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "string-width": "^4.2.0", @@ -25567,7 +25798,6 @@ "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -25588,7 +25818,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "argparse": "^2.0.1" @@ -25602,7 +25831,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, - "license": "ISC", "peer": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -25616,7 +25844,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "ansi-regex": "^5.0.1" @@ -25630,7 +25857,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "has-flag": "^4.0.0" @@ -25647,7 +25873,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -25666,7 +25891,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "cliui": "^7.0.2", @@ -25686,7 +25910,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "license": "ISC", "peer": true, "engines": { "node": ">=10" @@ -35138,7 +35361,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/workerpool/-/workerpool-6.5.1.tgz", "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true, - "license": "Apache-2.0", "peer": true }, "node_modules/wrap-ansi": { @@ -35345,7 +35567,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs-unparser/-/yargs-unparser-2.0.0.tgz", "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", "dev": true, - "license": "MIT", "peer": true, "dependencies": { "camelcase": "^6.0.0", @@ -35362,7 +35583,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=10" @@ -35376,7 +35596,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, - "license": "MIT", "peer": true, "engines": { "node": ">=8" diff --git a/alfa-client/package.json b/alfa-client/package.json index 5806078d52df813db93d93474ea05b6a89b9a5ec..0c26c4909b6d63d63da512feebd86bea5fb041ba 100644 --- a/alfa-client/package.json +++ b/alfa-client/package.json @@ -118,6 +118,9 @@ "@storybook/addon-interactions": "^8.3.5", "@storybook/angular": "^8.3.5", "@storybook/core-server": "^8.3.5", + "@swc-node/register": "~1.9.1", + "@swc/core": "~1.5.7", + "@swc/helpers": "~0.5.11", "@testing-library/jest-dom": "^6.4.5", "@types/file-saver": "2.0.7", "@types/jest": "29.5.13", @@ -160,4 +163,4 @@ "ts-node": "10.9.1", "typescript": "5.5.4" } -} \ No newline at end of file +} diff --git a/alfa-client/tsconfig.base.json b/alfa-client/tsconfig.base.json index 8d48c33ad2bcd00c0ffd23c8bbdb61b96033863a..c5305dcc83a25e9d9243459743806ce905bdbaa8 100644 --- a/alfa-client/tsconfig.base.json +++ b/alfa-client/tsconfig.base.json @@ -29,6 +29,7 @@ "@alfa-client/common": ["libs/common/src/index.ts"], "@alfa-client/environment-shared": ["libs/environment-shared/src/index.ts"], "@alfa-client/externe-fachstelle": ["libs/externe-fachstelle/src/index.ts"], + "@alfa-client/externe-fachstelle-shared": ["libs/externe-fachstelle-shared/src/index.ts"], "@alfa-client/forwarding": ["libs/forwarding/src/index.ts"], "@alfa-client/forwarding-shared": ["libs/forwarding-shared/src/index.ts"], "@alfa-client/hint": ["libs/hint/src/index.ts"], @@ -42,6 +43,7 @@ "@alfa-client/navigation": ["libs/navigation/src/index.ts"], "@alfa-client/navigation-shared": ["libs/navigation-shared/src/index.ts"], "@alfa-client/organisations-einheit": ["libs/organisations-einheit/src/index.ts"], + "@alfa-client/organisations-einheit-shared": ["libs/organisations-einheit-shared/src/index.ts"], "@alfa-client/postfach": ["libs/postfach/src/index.ts"], "@alfa-client/postfach-shared": ["libs/postfach-shared/src/index.ts"], "@alfa-client/resource-redirect": ["libs/resource-redirect/src/index.ts"], @@ -64,7 +66,7 @@ "@alfa-client/zustaendige-stelle-shared": ["libs/zustaendige-stelle-shared/src/index.ts"], "@ods/component": ["libs/design-component/src/index.ts"], "@ods/system": ["libs/design-system/src/index.ts"], - "authentication": ["libs/authentication/src/index.ts"] + "authentication": ["libs/authentication/src/index.ts"], } }, "exclude": ["node_modules", "tmp"]