{ "pipes": [], "interfaces": [ { "name": "Aantekening", "id": "interface-Aantekening-ad224cc8184441fa9923164457d2a4916359232fbcc5bc89a42031573682d3c39f25d7596de394302d8d9e7a7c2157118f79ba2c6dc80ebbf36b836a6d7db8df", "file": "src/app/core/models.ts", "deprecated": false, "deprecationMessage": "", "type": "interface", "sourceCode": "export type RegistrationStatus = 'Geregistreerd' | 'Doorgehaald' | 'Geschorst';\n\nexport interface Registration {\n bigNummer: string;\n naam: string;\n beroep: string; // arts, verpleegkundige, apotheker, ...\n status: RegistrationStatus;\n registratiedatum: string; // ISO date\n herregistratieDatum: string;\n geboortedatum: string;\n}\n\nexport interface Aantekening {\n type: string; // specialisme of aantekening\n omschrijving: string;\n datum: string;\n}\n", "properties": [ { "name": "datum", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 16 }, { "name": "omschrijving", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 15 }, { "name": "type", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 14 } ], "indexSignatures": [], "kind": 172, "methods": [], "extends": [] }, { "name": "Registration", "id": "interface-Registration-ad224cc8184441fa9923164457d2a4916359232fbcc5bc89a42031573682d3c39f25d7596de394302d8d9e7a7c2157118f79ba2c6dc80ebbf36b836a6d7db8df", "file": "src/app/core/models.ts", "deprecated": false, "deprecationMessage": "", "type": "interface", "sourceCode": "export type RegistrationStatus = 'Geregistreerd' | 'Doorgehaald' | 'Geschorst';\n\nexport interface Registration {\n bigNummer: string;\n naam: string;\n beroep: string; // arts, verpleegkundige, apotheker, ...\n status: RegistrationStatus;\n registratiedatum: string; // ISO date\n herregistratieDatum: string;\n geboortedatum: string;\n}\n\nexport interface Aantekening {\n type: string; // specialisme of aantekening\n omschrijving: string;\n datum: string;\n}\n", "properties": [ { "name": "beroep", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 6 }, { "name": "bigNummer", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 4 }, { "name": "geboortedatum", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 10 }, { "name": "herregistratieDatum", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 9 }, { "name": "naam", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 5 }, { "name": "registratiedatum", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 8 }, { "name": "status", "deprecated": false, "deprecationMessage": "", "type": "RegistrationStatus", "indexKey": "", "optional": false, "description": "", "line": 7 } ], "indexSignatures": [], "kind": 172, "methods": [], "extends": [] } ], "injectables": [ { "name": "RegistrationService", "id": "injectable-RegistrationService-5839a5301ce57f9632e3d5d7716d2c847c4d606b9d9fe4c66c60accb5b5f8558c192b30eacda70cdce4fe1519baab9db11cdcc2d05f9fef144c727798da8d53a", "file": "src/app/core/registration.service.ts", "properties": [ { "name": "http", "defaultValue": "inject(HttpClient)", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 8, "modifierKind": [ 123 ] } ], "methods": [ { "name": "getAantekeningen", "args": [], "optional": false, "returnType": "Observable", "typeParameters": [], "line": 14, "deprecated": false, "deprecationMessage": "" }, { "name": "getRegistration", "args": [], "optional": false, "returnType": "Observable", "typeParameters": [], "line": 10, "deprecated": false, "deprecationMessage": "" } ], "deprecated": false, "deprecationMessage": "", "description": "", "rawdescription": "\n", "sourceCode": "import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Registration, Aantekening } from './models';\n\n@Injectable({ providedIn: 'root' })\nexport class RegistrationService {\n private http = inject(HttpClient);\n\n getRegistration(): Observable {\n return this.http.get('mock/registration.json');\n }\n\n getAantekeningen(): Observable {\n return this.http.get('mock/notes.json');\n }\n}\n", "extends": [], "type": "injectable" } ], "guards": [], "interceptors": [], "classes": [], "directives": [], "components": [ { "name": "AlertComponent", "id": "component-AlertComponent-7d03ee2c0179c2f8d44795112c823951406810027571b5471bc765873f1aeaee550dcb89c6ebd8514ee36f2d96c8c6ba118293bf44a4a1316f61e91fa3c06f4e", "file": "src/app/atoms/alert/alert.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-alert", "styleUrls": [], "styles": [], "template": "\n \n\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "type", "defaultValue": "'info'", "deprecated": false, "deprecationMessage": "", "type": "AlertType", "indexKey": "", "optional": false, "description": "", "line": 21, "required": false } ], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [], "description": "

Atom: alert/message banner.

\n", "rawdescription": "\nAtom: alert/message banner.", "type": "component", "sourceCode": "import { Component, input } from '@angular/core';\n\ntype AlertType = 'info' | 'ok' | 'warning' | 'error';\n\n/** Atom: alert/message banner. */\n@Component({\n selector: 'app-alert',\n template: `\n \n \n \n `,\n})\nexport class AlertComponent {\n type = input('info');\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "App", "id": "component-App-a5889755e6aaa6ebd2f471f1253c27e411d38a42361e18619621ef0e6c5a91de3cf6ba4ace13bbe1756691f1f5e80728717fd18aab2cef50180bd579fa218a6d", "file": "src/app/app.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-root", "styleUrls": [], "styles": [], "template": "", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "RouterOutlet" } ], "description": "", "rawdescription": "\n", "type": "component", "sourceCode": "import { Component } from '@angular/core';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n imports: [RouterOutlet],\n template: '',\n})\nexport class App {}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "ButtonComponent", "id": "component-ButtonComponent-6eb936521438d91cc3a2276d1b8e366496e907e8a01d7b84b327c3cc31fa1dfadbb9502c6646472736722cf7ced9950fcaa4d8435ddf28224b3e7c9b7bd29505", "file": "src/app/atoms/button/button.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-button", "styleUrls": [], "styles": [], "template": "\n \n\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "disabled", "defaultValue": "false", "deprecated": false, "deprecationMessage": "", "indexKey": "", "optional": false, "description": "", "line": 25, "required": false }, { "name": "type", "defaultValue": "'button'", "deprecated": false, "deprecationMessage": "", "type": "\"button\" | \"submit\"", "indexKey": "", "optional": false, "description": "", "line": 24, "required": false }, { "name": "variant", "defaultValue": "'primary'", "deprecated": false, "deprecationMessage": "", "type": "Variant", "indexKey": "", "optional": false, "description": "", "line": 23, "required": false } ], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [], "description": "

Atom: button. Thin wrapper over the Utrecht/RHC button CSS.

\n", "rawdescription": "\nAtom: button. Thin wrapper over the Utrecht/RHC button CSS.", "type": "component", "sourceCode": "import { Component, input } from '@angular/core';\n\ntype Variant = 'primary' | 'secondary' | 'subtle' | 'danger';\n\n/** Atom: button. Thin wrapper over the Utrecht/RHC button CSS. */\n@Component({\n selector: 'app-button',\n template: `\n \n \n \n `,\n})\nexport class ButtonComponent {\n variant = input('primary');\n type = input<'button' | 'submit'>('button');\n disabled = input(false);\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "ChangeRequestFormComponent", "id": "component-ChangeRequestFormComponent-81277b5d39f6d8389da0d8313e3b14f50df8058e30513eca8776b01c490aed300ca483ab7ea00363d41e0a98360a792cc030698f4bf3918e14719ce4b08f64fa", "file": "src/app/organisms/change-request-form/change-request-form.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-change-request-form", "styleUrls": [], "styles": [], "template": "Adreswijziging doorgeven\n
\n \n \n \n \n \n \n \n \n \n
\n Wijziging indienen\n
\n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [], "outputsClass": [ { "name": "submitted", "deprecated": false, "deprecationMessage": "", "type": "void", "indexKey": "", "optional": false, "description": "", "line": 36, "required": false } ], "propertiesClass": [ { "name": "city", "defaultValue": "''", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 34 }, { "name": "street", "defaultValue": "''", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 32 }, { "name": "streetError", "defaultValue": "signal('')", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 35 }, { "name": "zip", "defaultValue": "''", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 33 } ], "methodsClass": [ { "name": "onSubmit", "args": [], "optional": false, "returnType": "void", "typeParameters": [], "line": 38, "deprecated": false, "deprecationMessage": "" } ], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "FormsModule", "type": "module" }, { "name": "FormFieldComponent", "type": "component" }, { "name": "TextInputComponent", "type": "component" }, { "name": "ButtonComponent", "type": "component" }, { "name": "HeadingComponent", "type": "component" } ], "description": "

Organism: change-request (adreswijziging) form. Reuses the same form-field\nmolecule + text-input/button atoms as the login form.

\n", "rawdescription": "\nOrganism: change-request (adreswijziging) form. Reuses the same form-field\nmolecule + text-input/button atoms as the login form.", "type": "component", "sourceCode": "import { Component, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormFieldComponent } from '../../molecules/form-field/form-field.component';\nimport { TextInputComponent } from '../../atoms/text-input/text-input.component';\nimport { ButtonComponent } from '../../atoms/button/button.component';\nimport { HeadingComponent } from '../../atoms/heading/heading.component';\n\n/** Organism: change-request (adreswijziging) form. Reuses the same form-field\n molecule + text-input/button atoms as the login form. */\n@Component({\n selector: 'app-change-request-form',\n imports: [FormsModule, FormFieldComponent, TextInputComponent, ButtonComponent, HeadingComponent],\n template: `\n Adreswijziging doorgeven\n
\n \n \n \n \n \n \n \n \n \n
\n Wijziging indienen\n
\n
\n `,\n})\nexport class ChangeRequestFormComponent {\n street = '';\n zip = '';\n city = '';\n streetError = signal('');\n submitted = output();\n\n onSubmit() {\n if (!this.street.trim()) { this.streetError.set('Vul straat en huisnummer in.'); return; }\n this.streetError.set('');\n this.submitted.emit();\n }\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "DashboardPage", "id": "component-DashboardPage-19084a8e5fb5e2539b690f3df46c4d7b9e30e6194b619a119113b3528c732259cd43608a582ad6356673a06802d7c741fcd8900d619a2641581adc22496aa404", "file": "src/app/pages/dashboard/dashboard.page.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-dashboard-page", "styleUrls": [], "styles": [], "template": "\n Mijn BIG-registratie\n\n @if (reg$ | async; as reg) {\n \n }\n\n
\n Specialismen en aantekeningen\n @if (notes$ | async; as notes) {\n \n }\n
\n\n

\n Gegevens bekijken of een wijziging doorgeven →\n

\n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [], "outputsClass": [], "propertiesClass": [ { "name": "notes$", "defaultValue": "this.svc.getAantekeningen()", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 37 }, { "name": "reg$", "defaultValue": "this.svc.getRegistration()", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 36 }, { "name": "svc", "defaultValue": "inject(RegistrationService)", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 35, "modifierKind": [ 123 ] } ], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "AsyncPipe", "type": "pipe" }, { "name": "PageLayoutComponent", "type": "component" }, { "name": "HeadingComponent", "type": "component" }, { "name": "LinkComponent", "type": "component" }, { "name": "RegistrationSummaryComponent", "type": "component" }, { "name": "RegistrationTableComponent", "type": "component" } ], "description": "", "rawdescription": "\n", "type": "component", "sourceCode": "import { Component, inject } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { PageLayoutComponent } from '../../templates/page-layout/page-layout.component';\nimport { HeadingComponent } from '../../atoms/heading/heading.component';\nimport { LinkComponent } from '../../atoms/link/link.component';\nimport { RegistrationSummaryComponent } from '../../organisms/registration-summary/registration-summary.component';\nimport { RegistrationTableComponent } from '../../organisms/registration-table/registration-table.component';\nimport { RegistrationService } from '../../core/registration.service';\n\n@Component({\n selector: 'app-dashboard-page',\n imports: [AsyncPipe, PageLayoutComponent, HeadingComponent, LinkComponent, RegistrationSummaryComponent, RegistrationTableComponent],\n template: `\n \n Mijn BIG-registratie\n\n @if (reg$ | async; as reg) {\n \n }\n\n
\n Specialismen en aantekeningen\n @if (notes$ | async; as notes) {\n \n }\n
\n\n

\n Gegevens bekijken of een wijziging doorgeven →\n

\n
\n `,\n})\nexport class DashboardPage {\n private svc = inject(RegistrationService);\n reg$ = this.svc.getRegistration();\n notes$ = this.svc.getAantekeningen();\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "DataRowComponent", "id": "component-DataRowComponent-bf012e0b5e277c5c6d53311a7649373316677ab4f6d5ba0b313f5eaeb5a061ea55cb08b0af237c487dcc3be5b15014d5c2b21b6f6903ff7689881fc8607eb1b2", "file": "src/app/molecules/data-row/data-row.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-data-row", "styleUrls": [], "styles": [], "template": "
\n
{{ key() }}
\n
{{ value() }}
\n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "key", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 15, "required": true }, { "name": "value", "defaultValue": "''", "deprecated": false, "deprecationMessage": "", "type": "string | null", "indexKey": "", "optional": false, "description": "", "line": 16, "required": false } ], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [], "description": "

Molecule: one key/value row inside an RHC data-summary.\nWrap several of these in .rhc-data-summary (see registration-summary).

\n", "rawdescription": "\nMolecule: one key/value row inside an RHC data-summary.\nWrap several of these in .rhc-data-summary (see registration-summary).", "type": "component", "sourceCode": "import { Component, input } from '@angular/core';\n\n/** Molecule: one key/value row inside an RHC data-summary.\n Wrap several of these in .rhc-data-summary (see registration-summary). */\n@Component({\n selector: 'app-data-row',\n template: `\n
\n
{{ key() }}
\n
{{ value() }}
\n
\n `,\n})\nexport class DataRowComponent {\n key = input.required();\n value = input('');\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "FormFieldComponent", "id": "component-FormFieldComponent-9f7fb7fac967056161f8440bccbd87825bc2897463f63a612a12ac6154cfaa4e17a2a6469fbe936deba74319ac6029c6aa024abfc07095b226f5980e654cb12c", "file": "src/app/molecules/form-field/form-field.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-form-field", "styleUrls": [], "styles": [], "template": "
\n \n @if (description()) {\n
{{ description() }}
\n }\n \n @if (error()) {\n
{{ error() }}
\n }\n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "description", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 23, "required": false }, { "name": "error", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 24, "required": false }, { "name": "fieldId", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 22, "required": true }, { "name": "label", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 21, "required": true } ], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [], "description": "

Molecule: form field = label + projected control + optional error/description.\nReused by both the login form and the change-request form.

\n", "rawdescription": "\nMolecule: form field = label + projected control + optional error/description.\nReused by both the login form and the change-request form.", "type": "component", "sourceCode": "import { Component, input } from '@angular/core';\n\n/** Molecule: form field = label + projected control + optional error/description.\n Reused by both the login form and the change-request form. */\n@Component({\n selector: 'app-form-field',\n template: `\n
\n \n @if (description()) {\n
{{ description() }}
\n }\n \n @if (error()) {\n
{{ error() }}
\n }\n
\n `,\n})\nexport class FormFieldComponent {\n label = input.required();\n fieldId = input.required();\n description = input();\n error = input();\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "HeadingComponent", "id": "component-HeadingComponent-dd6481ed78575bd2b94402bca9393970625d00c82519874b750b121317b776eeffba477c24eff95dc07a1fb77990ad12eee11c678dfe83611f6d658a01b66a10", "file": "src/app/atoms/heading/heading.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-heading", "styleUrls": [], "styles": [], "template": "@switch (level()) {\n @case (1) {

}\n @case (2) {

}\n @case (3) {

}\n @case (4) {

}\n @default {
}\n}\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "level", "defaultValue": "2", "deprecated": false, "deprecationMessage": "", "type": "1 | 2 | 3 | 4 | 5", "indexKey": "", "optional": false, "description": "", "line": 17, "required": false } ], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [], "description": "

Atom: heading. Renders the right h1..h5 with RHC heading styling.

\n", "rawdescription": "\nAtom: heading. Renders the right h1..h5 with RHC heading styling.", "type": "component", "sourceCode": "import { Component, input } from '@angular/core';\n\n/** Atom: heading. Renders the right h1..h5 with RHC heading styling. */\n@Component({\n selector: 'app-heading',\n template: `\n @switch (level()) {\n @case (1) {

}\n @case (2) {

}\n @case (3) {

}\n @case (4) {

}\n @default {
}\n }\n `,\n})\nexport class HeadingComponent {\n level = input<1 | 2 | 3 | 4 | 5>(2);\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "LinkComponent", "id": "component-LinkComponent-81d97782386b884f56c43d583cbf6d1005dda96974f169366a9af853aeb8b8f4e99f9cce2f9a7ef0fdafce32f51e6049483a44ab35614c486f82535b65ce2818", "file": "src/app/atoms/link/link.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-link", "styleUrls": [], "styles": [], "template": "", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "to", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 11, "required": true } ], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "RouterLink" } ], "description": "

Atom: link. Internal router link styled as an RHC/Utrecht link.

\n", "rawdescription": "\nAtom: link. Internal router link styled as an RHC/Utrecht link.", "type": "component", "sourceCode": "import { Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n/** Atom: link. Internal router link styled as an RHC/Utrecht link. */\n@Component({\n selector: 'app-link',\n imports: [RouterLink],\n template: ``,\n})\nexport class LinkComponent {\n to = input.required();\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "LoginFormComponent", "id": "component-LoginFormComponent-da74a7fb3744fc3f15a9ce619398901ae87d71828357d6ac859efc66fac2a719775242f52a74b18094846c25f96708d539b2f0e42f50443076c041469e1b40c9", "file": "src/app/organisms/login-form/login-form.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-login-form", "styleUrls": [], "styles": [], "template": "
\n Inloggen\n

Log in op uw persoonlijke BIG-register omgeving.

\n\n \n \n \n\n \n \n \n\n
\n Inloggen met DigiD\n
\n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [], "outputsClass": [ { "name": "submit", "deprecated": false, "deprecationMessage": "", "type": "void", "indexKey": "", "optional": false, "description": "", "line": 34, "required": false } ], "propertiesClass": [ { "name": "bsn", "defaultValue": "''", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 32 }, { "name": "password", "defaultValue": "''", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 33 } ], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "FormsModule", "type": "module" }, { "name": "FormFieldComponent", "type": "component" }, { "name": "TextInputComponent", "type": "component" }, { "name": "ButtonComponent", "type": "component" }, { "name": "HeadingComponent", "type": "component" } ], "description": "

Organism: DigiD-style mock login. No real auth — just composes atoms/molecules.

\n", "rawdescription": "\nOrganism: DigiD-style mock login. No real auth — just composes atoms/molecules.", "type": "component", "sourceCode": "import { Component, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FormFieldComponent } from '../../molecules/form-field/form-field.component';\nimport { TextInputComponent } from '../../atoms/text-input/text-input.component';\nimport { ButtonComponent } from '../../atoms/button/button.component';\nimport { HeadingComponent } from '../../atoms/heading/heading.component';\n\n/** Organism: DigiD-style mock login. No real auth — just composes atoms/molecules. */\n@Component({\n selector: 'app-login-form',\n imports: [FormsModule, FormFieldComponent, TextInputComponent, ButtonComponent, HeadingComponent],\n template: `\n
\n Inloggen\n

Log in op uw persoonlijke BIG-register omgeving.

\n\n \n \n \n\n \n \n \n\n
\n Inloggen met DigiD\n
\n
\n `,\n})\nexport class LoginFormComponent {\n bsn = '';\n password = '';\n submit = output();\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "LoginPage", "id": "component-LoginPage-5a16ef82d7e89717373df4c887dd02a573fb48c2529540e1a60b2205f7a971c4180f68fb069750bb9f704d1b50f04024f6ae5121e0dfff74fb7ccb5085a714c7", "file": "src/app/pages/login/login.page.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-login-page", "styleUrls": [], "styles": [], "template": "\n \n\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [], "outputsClass": [], "propertiesClass": [ { "name": "router", "defaultValue": "inject(Router)", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 16, "modifierKind": [ 123 ] } ], "methodsClass": [ { "name": "login", "args": [], "optional": false, "returnType": "void", "typeParameters": [], "line": 17, "deprecated": false, "deprecationMessage": "" } ], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "PageLayoutComponent", "type": "component" }, { "name": "LoginFormComponent", "type": "component" } ], "description": "", "rawdescription": "\n", "type": "component", "sourceCode": "import { Component, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { PageLayoutComponent } from '../../templates/page-layout/page-layout.component';\nimport { LoginFormComponent } from '../../organisms/login-form/login-form.component';\n\n@Component({\n selector: 'app-login-page',\n imports: [PageLayoutComponent, LoginFormComponent],\n template: `\n \n \n \n `,\n})\nexport class LoginPage {\n private router = inject(Router);\n login() { this.router.navigate(['/dashboard']); }\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "PageLayoutComponent", "id": "component-PageLayoutComponent-784f601fe164e2ffc90b8d66eb224bb86616cc1928d5ffae5e954be4144bc9c13c3995cfb5185c472a833a8ef036b380c3cc47deb85b3393c5523eadfb9fdf4c", "file": "src/app/templates/page-layout/page-layout.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-page-layout", "styleUrls": [], "styles": [], "template": "Naar de inhoud\n
\n \n
\n \n
\n \n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "SiteHeaderComponent", "type": "component" }, { "name": "SiteFooterComponent", "type": "component" } ], "description": "

Template: header + centered content + footer. Wraps every page.

\n", "rawdescription": "\nTemplate: header + centered content + footer. Wraps every page.", "type": "component", "sourceCode": "import { Component } from '@angular/core';\nimport { SiteHeaderComponent } from '../../organisms/site-header/site-header.component';\nimport { SiteFooterComponent } from '../../organisms/site-footer/site-footer.component';\n\n/** Template: header + centered content + footer. Wraps every page. */\n@Component({\n selector: 'app-page-layout',\n imports: [SiteHeaderComponent, SiteFooterComponent],\n template: `\n Naar de inhoud\n
\n \n
\n \n
\n \n
\n `,\n})\nexport class PageLayoutComponent {}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "RegistrationDetailPage", "id": "component-RegistrationDetailPage-83fe905f772b92eb3dfe113706becf0888d5e66b0af5376d769f8aeac2e8c41152512488fdff2a42cf0a4c3049840684e9b5872e6e380e355d7a6adc2b425508", "file": "src/app/pages/registration-detail/registration-detail.page.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-registration-detail-page", "styleUrls": [], "styles": [], "template": "\n

← Terug naar overzicht

\n Mijn gegevens\n\n @if (reg$ | async; as reg) {\n \n }\n\n
\n @if (submitted()) {\n Uw adreswijziging is ontvangen. U ontvangt binnen 5 werkdagen bericht.\n } @else {\n \n }\n
\n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [], "outputsClass": [], "propertiesClass": [ { "name": "reg$", "defaultValue": "this.svc.getRegistration()", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 35 }, { "name": "submitted", "defaultValue": "signal(false)", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 36 }, { "name": "svc", "defaultValue": "inject(RegistrationService)", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 34, "modifierKind": [ 123 ] } ], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "AsyncPipe", "type": "pipe" }, { "name": "PageLayoutComponent", "type": "component" }, { "name": "HeadingComponent", "type": "component" }, { "name": "LinkComponent", "type": "component" }, { "name": "AlertComponent", "type": "component" }, { "name": "RegistrationSummaryComponent", "type": "component" }, { "name": "ChangeRequestFormComponent", "type": "component" } ], "description": "", "rawdescription": "\n", "type": "component", "sourceCode": "import { Component, inject, signal } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { PageLayoutComponent } from '../../templates/page-layout/page-layout.component';\nimport { HeadingComponent } from '../../atoms/heading/heading.component';\nimport { LinkComponent } from '../../atoms/link/link.component';\nimport { AlertComponent } from '../../atoms/alert/alert.component';\nimport { RegistrationSummaryComponent } from '../../organisms/registration-summary/registration-summary.component';\nimport { ChangeRequestFormComponent } from '../../organisms/change-request-form/change-request-form.component';\nimport { RegistrationService } from '../../core/registration.service';\n\n@Component({\n selector: 'app-registration-detail-page',\n imports: [AsyncPipe, PageLayoutComponent, HeadingComponent, LinkComponent, AlertComponent, RegistrationSummaryComponent, ChangeRequestFormComponent],\n template: `\n \n

← Terug naar overzicht

\n Mijn gegevens\n\n @if (reg$ | async; as reg) {\n \n }\n\n
\n @if (submitted()) {\n Uw adreswijziging is ontvangen. U ontvangt binnen 5 werkdagen bericht.\n } @else {\n \n }\n
\n
\n `,\n})\nexport class RegistrationDetailPage {\n private svc = inject(RegistrationService);\n reg$ = this.svc.getRegistration();\n submitted = signal(false);\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "RegistrationSummaryComponent", "id": "component-RegistrationSummaryComponent-eb956e029fecdfc5c3173f0c48515cad94e7bb8023ebcc4d0a37ae311c0b39c215fb46643ac356b4dd5c0f4ead6123e79f4f7aeecc3b631eff0269e9f1a3e914", "file": "src/app/organisms/registration-summary/registration-summary.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-registration-summary", "styleUrls": [], "styles": [], "template": "
\n
\n \n \n \n \n \n \n \n \n
\n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "reg", "deprecated": false, "deprecationMessage": "", "type": "Registration", "indexKey": "", "optional": false, "description": "", "line": 27, "required": true } ], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "DatePipe", "type": "pipe" }, { "name": "DataRowComponent", "type": "component" }, { "name": "StatusBadgeComponent", "type": "component" } ], "description": "

Organism: registration summary card. Composes data-row molecules + status-badge atom.

\n", "rawdescription": "\nOrganism: registration summary card. Composes data-row molecules + status-badge atom.", "type": "component", "sourceCode": "import { Component, input } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { Registration } from '../../core/models';\nimport { DataRowComponent } from '../../molecules/data-row/data-row.component';\nimport { StatusBadgeComponent } from '../../atoms/status-badge/status-badge.component';\n\n/** Organism: registration summary card. Composes data-row molecules + status-badge atom. */\n@Component({\n selector: 'app-registration-summary',\n imports: [DatePipe, DataRowComponent, StatusBadgeComponent],\n template: `\n
\n
\n \n \n \n \n \n \n \n \n
\n
\n `,\n})\nexport class RegistrationSummaryComponent {\n reg = input.required();\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "RegistrationTableComponent", "id": "component-RegistrationTableComponent-53e1c5109b067c2b72ccd183e6350c59ea4bbd34a8f40a0f4e50c59d6165f5f8040177f74a592be42b8e571c4530ad2bf60c4a3a712689c82460997cb91ed770", "file": "src/app/organisms/registration-table/registration-table.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-registration-table", "styleUrls": [], "styles": [], "template": "
\n \n \n \n \n \n \n \n \n \n @for (row of rows(); track row.omschrijving) {\n \n \n \n \n \n }\n \n
TypeOmschrijvingDatum
{{ row.type }}{{ row.omschrijving }}{{ row.datum | date:'mediumDate' }}
\n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "rows", "deprecated": false, "deprecationMessage": "", "type": "Aantekening[]", "indexKey": "", "optional": false, "description": "", "line": 33, "required": true } ], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "DatePipe", "type": "pipe" } ], "description": "

Organism: table of specialismen/aantekeningen.

\n", "rawdescription": "\nOrganism: table of specialismen/aantekeningen.", "type": "component", "sourceCode": "import { Component, input } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { Aantekening } from '../../core/models';\n\n/** Organism: table of specialismen/aantekeningen. */\n@Component({\n selector: 'app-registration-table',\n imports: [DatePipe],\n template: `\n
\n \n \n \n \n \n \n \n \n \n @for (row of rows(); track row.omschrijving) {\n \n \n \n \n \n }\n \n
TypeOmschrijvingDatum
{{ row.type }}{{ row.omschrijving }}{{ row.datum | date:'mediumDate' }}
\n
\n `,\n})\nexport class RegistrationTableComponent {\n rows = input.required();\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "SiteFooterComponent", "id": "component-SiteFooterComponent-dc3de1b2d9be1f7a72a4e3a9fd3142ebdb33517cce05255f998242a83990eaf63b332a255e230f3731501ba731180500ce3d11212f17eb6a1dda6f57ac694ef6", "file": "src/app/organisms/site-footer/site-footer.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-site-footer", "styleUrls": [], "styles": [], "template": "
\n
\n BIG-register\n CIBG — Ministerie van Volksgezondheid, Welzijn en Sport\n Demo / POC — geen echte gegevens\n
\n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [], "description": "

Organism: site footer.

\n", "rawdescription": "\nOrganism: site footer.", "type": "component", "sourceCode": "import { Component } from '@angular/core';\n\n/** Organism: site footer. */\n@Component({\n selector: 'app-site-footer',\n template: `\n
\n
\n BIG-register\n CIBG — Ministerie van Volksgezondheid, Welzijn en Sport\n Demo / POC — geen echte gegevens\n
\n
\n `,\n})\nexport class SiteFooterComponent {}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "SiteHeaderComponent", "id": "component-SiteHeaderComponent-868e8e5af92fdf7923a2d989c5dcc13b193e2e09e186d8197937817cabc5bd13a676c11db35f4738ea9167b4425ad1fea6e7bd0b5f798983202b7bb99a37734a", "file": "src/app/organisms/site-header/site-header.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-site-header", "styleUrls": [], "styles": [], "template": "
\n \n
\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "subtitle", "defaultValue": "'Mijn omgeving'", "deprecated": false, "deprecationMessage": "", "indexKey": "", "optional": false, "description": "", "line": 24, "required": false } ], "outputsClass": [], "propertiesClass": [], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [ { "name": "RouterLink" } ], "description": "

Organism: site header with Rijksoverheid-style wordmark + title.\nponytail: text wordmark instead of the licensed Rijksoverheid logo.

\n", "rawdescription": "\nOrganism: site header with Rijksoverheid-style wordmark + title.\nponytail: text wordmark instead of the licensed Rijksoverheid logo.", "type": "component", "sourceCode": "import { Component, input } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\n/** Organism: site header with Rijksoverheid-style wordmark + title.\n ponytail: text wordmark instead of the licensed Rijksoverheid logo. */\n@Component({\n selector: 'app-site-header',\n imports: [RouterLink],\n template: `\n
\n \n
\n `,\n})\nexport class SiteHeaderComponent {\n subtitle = input('Mijn omgeving');\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "StatusBadgeComponent", "id": "component-StatusBadgeComponent-e270c2a0e9f8ec765c9d423e1c4da0d6382ccb17085bddde9037a26a5886b83b2d829f8b4c21c47ffa068508c621ba511b4fd5094c8784fffc43edc781ce95d0", "file": "src/app/atoms/status-badge/status-badge.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [], "selector": "app-status-badge", "styleUrls": [], "styles": [], "template": "\n \n {{ status() }}\n\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "status", "deprecated": false, "deprecationMessage": "", "type": "RegistrationStatus", "indexKey": "", "optional": false, "description": "", "line": 16, "required": true } ], "outputsClass": [], "propertiesClass": [ { "name": "color", "defaultValue": "computed(() => ({\n Geregistreerd: 'var(--rhc-color-groen-500)',\n Doorgehaald: 'var(--rhc-color-rood-500)',\n Geschorst: 'var(--rhc-color-oranje-500)',\n }[this.status()]))", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 17 } ], "methodsClass": [], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [], "description": "

Atom: status badge = colored RHC dot-badge + label. Hand-built to show how\nyou compose a new atom from design tokens (dot color driven per status).

\n", "rawdescription": "\nAtom: status badge = colored RHC dot-badge + label. Hand-built to show how\nyou compose a new atom from design tokens (dot color driven per status).", "type": "component", "sourceCode": "import { Component, computed, input } from '@angular/core';\nimport { RegistrationStatus } from '../../core/models';\n\n/** Atom: status badge = colored RHC dot-badge + label. Hand-built to show how\n you compose a new atom from design tokens (dot color driven per status). */\n@Component({\n selector: 'app-status-badge',\n template: `\n \n \n {{ status() }}\n \n `,\n})\nexport class StatusBadgeComponent {\n status = input.required();\n color = computed(() => ({\n Geregistreerd: 'var(--rhc-color-groen-500)',\n Doorgehaald: 'var(--rhc-color-rood-500)',\n Geschorst: 'var(--rhc-color-oranje-500)',\n }[this.status()]));\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [] }, { "name": "TextInputComponent", "id": "component-TextInputComponent-9d0cd6c2d7892958e9a016b570670f0186d410ea16a22925126f9eeea1aa178f081a4e5647af633f8a0bc1c458422a9f30169f159f930e9048702995fbb827e6", "file": "src/app/atoms/text-input/text-input.component.ts", "encapsulation": [], "entryComponents": [], "inputs": [], "outputs": [], "providers": [ { "name": ")" } ], "selector": "app-text-input", "styleUrls": [], "styles": [], "template": "\n", "templateUrl": [], "viewProviders": [], "hostDirectives": [], "inputsClass": [ { "name": "inputId", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 25, "required": false }, { "name": "invalid", "defaultValue": "false", "deprecated": false, "deprecationMessage": "", "indexKey": "", "optional": false, "description": "", "line": 24, "required": false }, { "name": "placeholder", "defaultValue": "''", "deprecated": false, "deprecationMessage": "", "indexKey": "", "optional": false, "description": "", "line": 23, "required": false }, { "name": "type", "defaultValue": "'text'", "deprecated": false, "deprecationMessage": "", "type": "\"text\" | \"password\" | \"email\"", "indexKey": "", "optional": false, "description": "", "line": 22, "required": false } ], "outputsClass": [], "propertiesClass": [ { "name": "disabled", "defaultValue": "false", "deprecated": false, "deprecationMessage": "", "type": "unknown", "indexKey": "", "optional": false, "description": "", "line": 28 }, { "name": "onChange", "defaultValue": "() => {...}", "deprecated": false, "deprecationMessage": "", "type": "function", "indexKey": "", "optional": false, "description": "", "line": 29 }, { "name": "onTouched", "defaultValue": "() => {...}", "deprecated": false, "deprecationMessage": "", "type": "function", "indexKey": "", "optional": false, "description": "", "line": 30 }, { "name": "value", "defaultValue": "''", "deprecated": false, "deprecationMessage": "", "type": "string", "indexKey": "", "optional": false, "description": "", "line": 27 } ], "methodsClass": [ { "name": "onInput", "args": [ { "name": "e", "type": "Event", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "" } ], "optional": false, "returnType": "void", "typeParameters": [], "line": 32, "deprecated": false, "deprecationMessage": "", "jsdoctags": [ { "name": "e", "type": "Event", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "", "tagName": { "text": "param" } } ] }, { "name": "registerOnChange", "args": [ { "name": "fn", "type": "function", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "", "function": [ { "name": "v", "type": "string", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "" } ] } ], "optional": false, "returnType": "void", "typeParameters": [], "line": 37, "deprecated": false, "deprecationMessage": "", "jsdoctags": [ { "name": "fn", "type": "function", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "", "function": [ { "name": "v", "type": "string", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "" } ], "tagName": { "text": "param" } } ] }, { "name": "registerOnTouched", "args": [ { "name": "fn", "type": "function", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "", "function": [] } ], "optional": false, "returnType": "void", "typeParameters": [], "line": 38, "deprecated": false, "deprecationMessage": "", "jsdoctags": [ { "name": "fn", "type": "function", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "", "function": [], "tagName": { "text": "param" } } ] }, { "name": "setDisabledState", "args": [ { "name": "d", "type": "boolean", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "" } ], "optional": false, "returnType": "void", "typeParameters": [], "line": 39, "deprecated": false, "deprecationMessage": "", "jsdoctags": [ { "name": "d", "type": "boolean", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "", "tagName": { "text": "param" } } ] }, { "name": "writeValue", "args": [ { "name": "v", "type": "string", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "" } ], "optional": false, "returnType": "void", "typeParameters": [], "line": 36, "deprecated": false, "deprecationMessage": "", "jsdoctags": [ { "name": "v", "type": "string", "optional": false, "dotDotDotToken": false, "deprecated": false, "deprecationMessage": "", "tagName": { "text": "param" } } ] } ], "deprecated": false, "deprecationMessage": "", "hostBindings": [], "hostListeners": [], "standalone": false, "imports": [], "description": "

Atom: text input. Utrecht textbox wired up as a form control (ngModel/reactive).

\n", "rawdescription": "\nAtom: text input. Utrecht textbox wired up as a form control (ngModel/reactive).", "type": "component", "sourceCode": "import { Component, forwardRef, input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/** Atom: text input. Utrecht textbox wired up as a form control (ngModel/reactive). */\n@Component({\n selector: 'app-text-input',\n template: `\n \n `,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TextInputComponent), multi: true }],\n})\nexport class TextInputComponent implements ControlValueAccessor {\n type = input<'text' | 'password' | 'email'>('text');\n placeholder = input('');\n invalid = input(false);\n inputId = input();\n\n value = '';\n disabled = false;\n onChange: (v: string) => void = () => {};\n onTouched: () => void = () => {};\n\n onInput(e: Event) {\n this.value = (e.target as HTMLInputElement).value;\n this.onChange(this.value);\n }\n writeValue(v: string) { this.value = v ?? ''; }\n registerOnChange(fn: (v: string) => void) { this.onChange = fn; }\n registerOnTouched(fn: () => void) { this.onTouched = fn; }\n setDisabledState(d: boolean) { this.disabled = d; }\n}\n", "assetsDirs": [], "styleUrlsData": "", "stylesData": "", "extends": [], "implements": [ "ControlValueAccessor" ] } ], "modules": [], "miscellaneous": { "variables": [ { "name": "appConfig", "ctype": "miscellaneous", "subtype": "variable", "file": "src/app/app.config.ts", "deprecated": false, "deprecationMessage": "", "type": "ApplicationConfig", "defaultValue": "{\n providers: [\n provideBrowserGlobalErrorListeners(),\n provideRouter(routes),\n provideHttpClient(),\n { provide: LOCALE_ID, useValue: 'nl' },\n ]\n}" }, { "name": "routes", "ctype": "miscellaneous", "subtype": "variable", "file": "src/app/app.routes.ts", "deprecated": false, "deprecationMessage": "", "type": "Routes", "defaultValue": "[\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n { path: 'login', loadComponent: () => \"import('./pages/login/login.page').then(m => m.LoginPage)\" },\n { path: 'dashboard', loadComponent: () => \"import('./pages/dashboard/dashboard.page').then(m => m.DashboardPage)\" },\n { path: 'registratie', loadComponent: () => \"import('./pages/registration-detail/registration-detail.page').then(m => m.RegistrationDetailPage)\" },\n { path: '**', redirectTo: 'login' },\n]" } ], "functions": [], "typealiases": [ { "name": "AlertType", "ctype": "miscellaneous", "subtype": "typealias", "rawtype": "\"info\" | \"ok\" | \"warning\" | \"error\"", "file": "src/app/atoms/alert/alert.component.ts", "deprecated": false, "deprecationMessage": "", "description": "", "kind": 193 }, { "name": "RegistrationStatus", "ctype": "miscellaneous", "subtype": "typealias", "rawtype": "\"Geregistreerd\" | \"Doorgehaald\" | \"Geschorst\"", "file": "src/app/core/models.ts", "deprecated": false, "deprecationMessage": "", "description": "", "kind": 193 }, { "name": "Variant", "ctype": "miscellaneous", "subtype": "typealias", "rawtype": "\"primary\" | \"secondary\" | \"subtle\" | \"danger\"", "file": "src/app/atoms/button/button.component.ts", "deprecated": false, "deprecationMessage": "", "description": "", "kind": 193 } ], "enumerations": [], "groupedVariables": { "src/app/app.config.ts": [ { "name": "appConfig", "ctype": "miscellaneous", "subtype": "variable", "file": "src/app/app.config.ts", "deprecated": false, "deprecationMessage": "", "type": "ApplicationConfig", "defaultValue": "{\n providers: [\n provideBrowserGlobalErrorListeners(),\n provideRouter(routes),\n provideHttpClient(),\n { provide: LOCALE_ID, useValue: 'nl' },\n ]\n}" } ], "src/app/app.routes.ts": [ { "name": "routes", "ctype": "miscellaneous", "subtype": "variable", "file": "src/app/app.routes.ts", "deprecated": false, "deprecationMessage": "", "type": "Routes", "defaultValue": "[\n { path: '', pathMatch: 'full', redirectTo: 'login' },\n { path: 'login', loadComponent: () => \"import('./pages/login/login.page').then(m => m.LoginPage)\" },\n { path: 'dashboard', loadComponent: () => \"import('./pages/dashboard/dashboard.page').then(m => m.DashboardPage)\" },\n { path: 'registratie', loadComponent: () => \"import('./pages/registration-detail/registration-detail.page').then(m => m.RegistrationDetailPage)\" },\n { path: '**', redirectTo: 'login' },\n]" } ] }, "groupedFunctions": {}, "groupedEnumerations": {}, "groupedTypeAliases": { "src/app/atoms/alert/alert.component.ts": [ { "name": "AlertType", "ctype": "miscellaneous", "subtype": "typealias", "rawtype": "\"info\" | \"ok\" | \"warning\" | \"error\"", "file": "src/app/atoms/alert/alert.component.ts", "deprecated": false, "deprecationMessage": "", "description": "", "kind": 193 } ], "src/app/core/models.ts": [ { "name": "RegistrationStatus", "ctype": "miscellaneous", "subtype": "typealias", "rawtype": "\"Geregistreerd\" | \"Doorgehaald\" | \"Geschorst\"", "file": "src/app/core/models.ts", "deprecated": false, "deprecationMessage": "", "description": "", "kind": 193 } ], "src/app/atoms/button/button.component.ts": [ { "name": "Variant", "ctype": "miscellaneous", "subtype": "typealias", "rawtype": "\"primary\" | \"secondary\" | \"subtle\" | \"danger\"", "file": "src/app/atoms/button/button.component.ts", "deprecated": false, "deprecationMessage": "", "description": "", "kind": 193 } ] } }, "routes": { "name": "", "kind": "module", "children": [ { "name": "login", "kind": "route-path", "filename": "src/app/app.routes.ts" }, { "name": "dashboard", "kind": "route-path", "filename": "src/app/app.routes.ts" }, { "name": "registratie", "kind": "route-path", "filename": "src/app/app.routes.ts" }, { "name": "**", "kind": "route-path", "filename": "src/app/app.routes.ts" }, { "name": "login", "kind": "route-redirect", "filename": "src/app/app.routes.ts" }, { "name": "login", "kind": "route-redirect", "filename": "src/app/app.routes.ts" } ] }, "coverage": { "count": 24, "status": "low", "files": [ { "filePath": "src/app/app.config.ts", "type": "variable", "linktype": "miscellaneous", "linksubtype": "variable", "name": "appConfig", "coveragePercent": 0, "coverageCount": "0/1", "status": "low" }, { "filePath": "src/app/app.routes.ts", "type": "variable", "linktype": "miscellaneous", "linksubtype": "variable", "name": "routes", "coveragePercent": 0, "coverageCount": "0/1", "status": "low" }, { "filePath": "src/app/app.ts", "type": "component", "linktype": "component", "name": "App", "coveragePercent": 0, "coverageCount": "0/1", "status": "low" }, { "filePath": "src/app/atoms/alert/alert.component.ts", "type": "component", "linktype": "component", "name": "AlertComponent", "coveragePercent": 50, "coverageCount": "1/2", "status": "medium" }, { "filePath": "src/app/atoms/alert/alert.component.ts", "type": "type alias", "linktype": "miscellaneous", "linksubtype": "typealias", "name": "AlertType", "coveragePercent": 0, "coverageCount": "0/1", "status": "low" }, { "filePath": "src/app/atoms/button/button.component.ts", "type": "component", "linktype": "component", "name": "ButtonComponent", "coveragePercent": 25, "coverageCount": "1/4", "status": "low" }, { "filePath": "src/app/atoms/button/button.component.ts", "type": "type alias", "linktype": "miscellaneous", "linksubtype": "typealias", "name": "Variant", "coveragePercent": 0, "coverageCount": "0/1", "status": "low" }, { "filePath": "src/app/atoms/heading/heading.component.ts", "type": "component", "linktype": "component", "name": "HeadingComponent", "coveragePercent": 50, "coverageCount": "1/2", "status": "medium" }, { "filePath": "src/app/atoms/link/link.component.ts", "type": "component", "linktype": "component", "name": "LinkComponent", "coveragePercent": 50, "coverageCount": "1/2", "status": "medium" }, { "filePath": "src/app/atoms/status-badge/status-badge.component.ts", "type": "component", "linktype": "component", "name": "StatusBadgeComponent", "coveragePercent": 33, "coverageCount": "1/3", "status": "medium" }, { "filePath": "src/app/atoms/text-input/text-input.component.ts", "type": "component", "linktype": "component", "name": "TextInputComponent", "coveragePercent": 7, "coverageCount": "1/14", "status": "low" }, { "filePath": "src/app/core/models.ts", "type": "interface", "linktype": "interface", "name": "Aantekening", "coveragePercent": 0, "coverageCount": "0/4", "status": "low" }, { "filePath": "src/app/core/models.ts", "type": "interface", "linktype": "interface", "name": "Registration", "coveragePercent": 0, "coverageCount": "0/8", "status": "low" }, { "filePath": "src/app/core/models.ts", "type": "type alias", "linktype": "miscellaneous", "linksubtype": "typealias", "name": "RegistrationStatus", "coveragePercent": 0, "coverageCount": "0/1", "status": "low" }, { "filePath": "src/app/core/registration.service.ts", "type": "injectable", "linktype": "injectable", "name": "RegistrationService", "coveragePercent": 0, "coverageCount": "0/4", "status": "low" }, { "filePath": "src/app/molecules/data-row/data-row.component.ts", "type": "component", "linktype": "component", "name": "DataRowComponent", "coveragePercent": 33, "coverageCount": "1/3", "status": "medium" }, { "filePath": "src/app/molecules/form-field/form-field.component.ts", "type": "component", "linktype": "component", "name": "FormFieldComponent", "coveragePercent": 20, "coverageCount": "1/5", "status": "low" }, { "filePath": "src/app/organisms/change-request-form/change-request-form.component.ts", "type": "component", "linktype": "component", "name": "ChangeRequestFormComponent", "coveragePercent": 14, "coverageCount": "1/7", "status": "low" }, { "filePath": "src/app/organisms/login-form/login-form.component.ts", "type": "component", "linktype": "component", "name": "LoginFormComponent", "coveragePercent": 25, "coverageCount": "1/4", "status": "low" }, { "filePath": "src/app/organisms/registration-summary/registration-summary.component.ts", "type": "component", "linktype": "component", "name": "RegistrationSummaryComponent", "coveragePercent": 50, "coverageCount": "1/2", "status": "medium" }, { "filePath": "src/app/organisms/registration-table/registration-table.component.ts", "type": "component", "linktype": "component", "name": "RegistrationTableComponent", "coveragePercent": 50, "coverageCount": "1/2", "status": "medium" }, { "filePath": "src/app/organisms/site-footer/site-footer.component.ts", "type": "component", "linktype": "component", "name": "SiteFooterComponent", "coveragePercent": 100, "coverageCount": "1/1", "status": "very-good" }, { "filePath": "src/app/organisms/site-header/site-header.component.ts", "type": "component", "linktype": "component", "name": "SiteHeaderComponent", "coveragePercent": 50, "coverageCount": "1/2", "status": "medium" }, { "filePath": "src/app/pages/dashboard/dashboard.page.ts", "type": "component", "linktype": "component", "name": "DashboardPage", "coveragePercent": 0, "coverageCount": "0/4", "status": "low" }, { "filePath": "src/app/pages/login/login.page.ts", "type": "component", "linktype": "component", "name": "LoginPage", "coveragePercent": 0, "coverageCount": "0/3", "status": "low" }, { "filePath": "src/app/pages/registration-detail/registration-detail.page.ts", "type": "component", "linktype": "component", "name": "RegistrationDetailPage", "coveragePercent": 0, "coverageCount": "0/4", "status": "low" }, { "filePath": "src/app/templates/page-layout/page-layout.component.ts", "type": "component", "linktype": "component", "name": "PageLayoutComponent", "coveragePercent": 100, "coverageCount": "1/1", "status": "very-good" } ] } }