diff --git a/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.ts b/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.ts index 04a9f704dac2d4a0c93dd9a8794376f21dfa7b65..a8c309a368e22aeb3f5d031287781f1107b234c2 100644 --- a/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.ts +++ b/alfa-client/libs/design-system/src/lib/icons/accessibility-icon/accessibility-icon.component.ts @@ -11,6 +11,7 @@ import { iconVariants, IconVariants } from '../iconVariants'; viewBox="0 0 26 26" [ngClass]="[twMerge(iconVariants({ size }), 'fill-neutral-500 dark:fill-neutral-400', class)]" xmlns="http://www.w3.org/2000/svg" + aria-hidden="true" > <rect x="2" y="2" width="22" height="22" rx="11" /> <path diff --git a/alfa-client/libs/design-system/src/lib/link/link.component.ts b/alfa-client/libs/design-system/src/lib/link/link.component.ts index 1d11015962993c60b5c4eea6b5687f6500a76d81..3331d0c65b04128f6954a52a2a22b43da50308e2 100644 --- a/alfa-client/libs/design-system/src/lib/link/link.component.ts +++ b/alfa-client/libs/design-system/src/lib/link/link.component.ts @@ -9,7 +9,12 @@ import { twMerge } from 'tailwind-merge'; template: `<a [target]="openInNewTab ? '_blank' : '_self'" [href]="url" - [class]="twMerge('block rounded text-text outline-2 outline-offset-2 outline-focus focus-visible:outline', class)" + [class]=" + twMerge( + 'block rounded border-2 border-transparent text-text outline-2 outline-offset-2 outline-focus hover:border-primary-600 focus-visible:border-transparent focus-visible:outline', + class + ) + " [attr.data-test-id]="linkTestId" (focus)="isFocused = true" (blur)="isFocused = false" diff --git a/alfa-client/libs/design-system/src/lib/tooltip/tooltip.directive.spec.ts b/alfa-client/libs/design-system/src/lib/tooltip/tooltip.directive.spec.ts index e39f39af4d4342b92c643cb8156c7c49ed77fcd2..0ada2b5b0fa9611d30710bcb7884cd5b3fa59692 100644 --- a/alfa-client/libs/design-system/src/lib/tooltip/tooltip.directive.spec.ts +++ b/alfa-client/libs/design-system/src/lib/tooltip/tooltip.directive.spec.ts @@ -61,6 +61,16 @@ describe('TooltipDirective', () => { expect(directive).toBeTruthy(); }); + describe('ngAfterViewInit', () => { + it('should create tooltip', () => { + directive.createTooltip = jest.fn(); + + directive.ngAfterViewInit(); + + expect(directive.createTooltip).toHaveBeenCalled(); + }); + }); + describe('ngOnDestroy', () => { it('should destroy tooltip', () => { directive.destroy = jest.fn(); diff --git a/alfa-client/libs/design-system/src/lib/tooltip/tooltip.directive.ts b/alfa-client/libs/design-system/src/lib/tooltip/tooltip.directive.ts index 09d7958f93cd817c6cc8fba64f329e9684902c1c..d94abe415abd835cff2f6a596d599a409d6e575e 100644 --- a/alfa-client/libs/design-system/src/lib/tooltip/tooltip.directive.ts +++ b/alfa-client/libs/design-system/src/lib/tooltip/tooltip.directive.ts @@ -24,6 +24,7 @@ import { isEscapeKey, isNotNull } from '@alfa-client/tech-shared'; import { InteractivityChecker } from '@angular/cdk/a11y'; import { + AfterViewInit, ComponentRef, Directive, ElementRef, @@ -31,7 +32,6 @@ import { inject, Input, OnDestroy, - OnInit, Renderer2, ViewContainerRef, } from '@angular/core'; @@ -44,7 +44,7 @@ const OUTLINE_INDENT = 4; // Outline offset (2) + outline width (2) selector: '[tooltip]', standalone: true, }) -export class TooltipDirective implements OnInit, OnDestroy { +export class TooltipDirective implements AfterViewInit, OnDestroy { @Input() tooltip: string = ''; componentRef: ComponentRef<TooltipComponent> = null; @@ -56,7 +56,7 @@ export class TooltipDirective implements OnInit, OnDestroy { public renderer: Renderer2 = inject(Renderer2); public interactivityChecker: InteractivityChecker = inject(InteractivityChecker); - ngOnInit(): void { + ngAfterViewInit(): void { this.createTooltip(); } diff --git a/alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.spec.ts b/alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.spec.ts index 5238a23c74cd94b4b5a4004bcc2d46e7b7eb3e18..76fac14c0bfe11b7f9b97a634e922aad14a417ca 100644 --- a/alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.spec.ts +++ b/alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.spec.ts @@ -80,7 +80,6 @@ describe('ListResourceService', () => { beforeEach(() => { service.listResource.next(listStateResource); - service.handleNullConfigResource = jest.fn(); service.handleChanges = jest.fn(); isInvalidResourceCombinationSpy = jest.spyOn(ResourceUtil, 'isInvalidResourceCombination').mockReturnValue(true); }); @@ -92,13 +91,6 @@ describe('ListResourceService', () => { expect(service.handleChanges).toHaveBeenCalledWith(listStateResource, baseResource); })); - it('should handle null configresource', fakeAsync(() => { - service.getList().subscribe(); - tick(); - - expect(service.handleNullConfigResource).toHaveBeenCalledWith(baseResource); - })); - it('should call isInvalidResourceCombinationSpy', fakeAsync(() => { service.getList().subscribe(); tick(); diff --git a/alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.ts b/alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.ts index 8dba0ba6790fe0a0eab24eb04299722e787e5809..50cee3aa72fb828211d7a70dadc5cdca3d5f55c2 100644 --- a/alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.ts +++ b/alfa-client/libs/tech-shared/src/lib/resource/list-resource.service.ts @@ -35,7 +35,6 @@ import { createStateResource, doIfLoadingRequired, getEmbeddedResources, - isEmptyStateResource, isInvalidResourceCombination, isLoadingRequired, isStateResoureStable, @@ -67,7 +66,6 @@ export class ResourceListService<B extends Resource, T extends ListResource, I e tap(([stateResource, configResource]) => { this.handleChanges(stateResource, configResource); }), - tap(([, configResource]) => this.handleNullConfigResource(configResource)), filter(([stateResource]) => !isInvalidResourceCombination(stateResource, this.baseResource)), mapToFirst<T, B>(), startWith(createEmptyStateResource<T>(true)), @@ -103,20 +101,10 @@ export class ResourceListService<B extends Resource, T extends ListResource, I e return isNotNull(configResource) && isLoadingRequired(stateResource) && this.hasListLinkRel(); } - handleNullConfigResource(configResource: B): void { - if (this.shouldClearStateResource(configResource)) { - this.clearCurrentListResource(); - } - } - private clearCurrentListResource(): void { this.listResource.next(createEmptyStateResource()); } - shouldClearStateResource(configResource: B): boolean { - return isNull(configResource) && !isEmptyStateResource(this.listResource.value); - } - public create(toCreate: unknown): Observable<Resource> { this.verifyBeforeCreation(); return this.repository.createResource(this.buildCreateResourceData(toCreate, this.config.createLinkRel));