The folder now equals the layer, as CLAUDE.md decision 2 requires. 33 directories move by git mv (25 flat, plus upload/'s 8 subfolders split across all three layers). 28 distinct @shared/ui/* specifiers rewrite across 73 files, longest-first. Five relative imports inside upload/ become @shared/ui aliases because their sibling now lives in a different layer; two stay relative because both ends stay in the same layer. Four .mdx docs get their seven broken story imports fixed; atomic-design.mdx's page-shell import is untouched, because layout/ does not move. No component, template, story title, or layer-tag comment changes. That is RD-28's job. Verified against the ticket's acceptance commands: the 26 flat directories become exactly 3 layer folders with the counts the ticket names, only three @shared/ui/* prefixes remain (atoms, molecules, organisms), the .mdx import count holds at 7, and the relative-import count inside ui/ drops from 7 to 2 as decision 4 requires. The @shared/ui/ occurrence count moves from 200 to 205: decision 4 mandates turning 5 of those 7 relative imports into @shared/ui/* aliases, which decision 3's "200 before, 200 after" check does not account for. The 5-occurrence gap is exactly the 5 conversions decision 4 names, not a lost or duplicated specifier. npm run ci --full passes: lint, typecheck, dep:check, format, tokens, seam, both apps' + both libraries' tests, both apps' localized build, audit, backend tests, all three generated-artifact drift checks, and both Storybook instances' build + axe-core a11y suite (67+45 suites, 198+112 tests, all green). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
80 lines
3.4 KiB
TypeScript
80 lines
3.4 KiB
TypeScript
import { Component, computed, inject } from '@angular/core';
|
|
import { HeadingComponent } from '@shared/ui/atoms/heading/heading.component';
|
|
import { ApplicationListComponent } from '@shared/ui/molecules/application-list/application-list.component';
|
|
import { ApplicationLinkComponent } from '@shared/ui/molecules/application-link/application-link.component';
|
|
import { FeatureFlagStore } from '@shared/application/feature-flags.store';
|
|
import { FLAG_INSCHRIJVING_OPEN } from '@shared/domain/feature-flag';
|
|
|
|
/** Section: "Wat wilt u doen?" — the portal's primary transactional actions (see
|
|
CIBG's componenten/aanvragen). The core pages live in the header nav now; the
|
|
teaching pages (concepts/brief) are only reachable from here. */
|
|
@Component({
|
|
selector: 'app-wat-wilt-u-doen-section',
|
|
imports: [HeadingComponent, ApplicationListComponent, ApplicationLinkComponent],
|
|
template: `
|
|
<section>
|
|
<app-heading [level]="2" i18n="@@dashboard.watWiltUDoen">Wat wilt u doen?</app-heading>
|
|
<app-application-list class="app-section">
|
|
@for (a of acties(); track a.to) {
|
|
<li
|
|
app-application-link
|
|
[heading]="a.titel"
|
|
[subtitle]="a.tekst"
|
|
[cta]="a.actie"
|
|
[to]="a.to"
|
|
></li>
|
|
}
|
|
</app-application-list>
|
|
</section>
|
|
`,
|
|
})
|
|
export class WatWiltUDoenSection {
|
|
private flags = inject(FeatureFlagStore);
|
|
|
|
private readonly allActies = [
|
|
{
|
|
to: '/registreren',
|
|
titel: $localize`:@@dashboard.actie.inschrijven.titel:Inschrijven`,
|
|
tekst: $localize`:@@dashboard.actie.inschrijven.tekst:Schrijf u in in het BIG-register via de registratiewizard.`,
|
|
actie: $localize`:@@dashboard.actie.inschrijven.actie:Start inschrijving`,
|
|
},
|
|
{
|
|
to: '/herregistratie',
|
|
titel: $localize`:@@dashboard.actie.herregistratie.titel:Herregistratie aanvragen`,
|
|
tekst: $localize`:@@dashboard.actie.herregistratie.tekst:Verleng uw registratie voor de komende periode.`,
|
|
actie: $localize`:@@dashboard.actie.herregistratie.actie:Vraag aan`,
|
|
},
|
|
{
|
|
to: '/intake',
|
|
titel: $localize`:@@dashboard.actie.intake.titel:Herregistratie-intake`,
|
|
tekst: $localize`:@@dashboard.actie.intake.tekst:Vragenlijst met vertakkingen.`,
|
|
actie: $localize`:@@dashboard.actie.intake.actie:Start intake`,
|
|
},
|
|
{
|
|
to: '/registratie',
|
|
titel: $localize`:@@dashboard.actie.wijzigen.titel:Gegevens wijzigen`,
|
|
tekst: $localize`:@@dashboard.actie.wijzigen.tekst:Bekijk uw gegevens of geef een wijziging door.`,
|
|
actie: $localize`:@@dashboard.actie.wijzigen.actie:Bekijk gegevens`,
|
|
},
|
|
{
|
|
to: '/concepts',
|
|
titel: $localize`:@@dashboard.actie.concepten.titel:Functionele patronen`,
|
|
tekst: $localize`:@@dashboard.actie.concepten.tekst:Bekijk de FP/TEA-bouwstenen van deze POC.`,
|
|
actie: $localize`:@@dashboard.actie.concepten.actie:Bekijk patronen`,
|
|
},
|
|
{
|
|
to: '/brief',
|
|
titel: $localize`:@@dashboard.actie.brief.titel:Brief opstellen`,
|
|
tekst: $localize`:@@dashboard.actie.brief.tekst:Stel een brief samen uit vaste en vrije onderdelen.`,
|
|
actie: $localize`:@@dashboard.actie.brief.actie:Start brief`,
|
|
},
|
|
];
|
|
|
|
/** Hide "Inschrijven" when self-service registration is flagged off. */
|
|
protected readonly acties = computed(() =>
|
|
this.allActies.filter(
|
|
(a) => a.to !== '/registreren' || this.flags.enabled(FLAG_INSCHRIJVING_OPEN),
|
|
),
|
|
);
|
|
}
|