@onemrvapublic/design-system 20.7.0-develop.3 → 20.7.0-develop.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -213,7 +213,14 @@ class IbanRendererComponent extends JsonFormsControl {
213
213
  this.readonly = input(false, ...(ngDevMode ? [{ debugName: "readonly" }] : []));
214
214
  this.isUpdating = signal(false, ...(ngDevMode ? [{ debugName: "isUpdating" }] : []));
215
215
  this.getEventValue = (event) => {
216
- return event?.target?.value;
216
+ if (typeof event === 'string') {
217
+ return event.replace(/\s/g, '');
218
+ }
219
+ if (event && typeof event.value === 'string') {
220
+ return event.value.replace(/\s/g, '');
221
+ }
222
+ const raw = event?.target?.value;
223
+ return typeof raw === 'string' ? raw.replace(/\s/g, '') : raw;
217
224
  };
218
225
  this.validator = (control) => {
219
226
  if (this.isUpdating()) {
@@ -245,36 +252,14 @@ class IbanRendererComponent extends JsonFormsControl {
245
252
  this.form.setValue(this.data);
246
253
  this.form.setValidators([Validators.required, this.validator]);
247
254
  }
248
- onChange(event) {
249
- const ibanValue = this.buildIbanValue(event);
250
- const modifiedEvent = {
251
- ...event,
252
- target: { ...event.target, value: ibanValue },
253
- };
254
- super.onChange(modifiedEvent);
255
- }
256
- buildIbanValue(event) {
257
- let builtValue = event?.currentTarget?.innerText;
258
- if (event?.data === null) {
259
- builtValue = builtValue + event?.target?.value?.slice(0, -1);
260
- }
261
- else {
262
- builtValue =
263
- builtValue + event?.target?.value.toString().replace(/\s/g, '');
264
- if (event?.target?.value?.toString().length < 14) {
265
- builtValue = builtValue + event?.data;
266
- }
267
- }
268
- return builtValue;
269
- }
270
255
  setErrorValue() {
271
256
  this.isUpdating.set(true);
272
257
  try {
273
258
  // Get existing errors
274
259
  const currentState = this.jsonFormsService.getState();
275
- console.debug('setErrorValue->Current state:', currentState);
260
+ //console.debug('setErrorValue->Current state:', currentState);
276
261
  const currentErrors = currentState?.jsonforms?.core?.['errors'] ?? [];
277
- console.debug('setErrorValue->Existing JSONForms errors:', currentErrors);
262
+ //console.debug('setErrorValue->Existing JSONForms errors:', currentErrors);
278
263
  const instancePath = JsonFormsSchemaPathUtil.extractStepKey(this.uischema?.scope);
279
264
  // Add the IBAN error
280
265
  const ibanError = {
@@ -286,7 +271,7 @@ class IbanRendererComponent extends JsonFormsControl {
286
271
  };
287
272
  // Combine IBAN errors with existing errors of jsonforms
288
273
  const updatedErrors = [...currentErrors, ibanError];
289
- console.debug('setErrorValue->All errors:', updatedErrors);
274
+ //console.debug('setErrorValue->All errors:', updatedErrors);
290
275
  const updateAction = Actions.updateErrors(updatedErrors);
291
276
  this.jsonFormsService.updateCore(updateAction);
292
277
  }
@@ -403,9 +388,9 @@ class NissRendererComponent extends JsonFormsControl {
403
388
  try {
404
389
  // Get existing errors
405
390
  const currentState = this.jsonFormsService.getState();
406
- console.debug('setErrorValue->Current state:', currentState);
391
+ //console.debug('setErrorValue->Current state:', currentState);
407
392
  const currentErrors = currentState?.jsonforms?.core?.['errors'] ?? [];
408
- console.debug('setErrorValue->Existing JSONForms errors:', currentErrors);
393
+ //console.debug('setErrorValue->Existing JSONForms errors:', currentErrors);
409
394
  const instancePath = JsonFormsSchemaPathUtil.extractStepKey(this.uischema?.scope);
410
395
  // Add the SSIN errors
411
396
  const ssinError = {
@@ -417,7 +402,7 @@ class NissRendererComponent extends JsonFormsControl {
417
402
  };
418
403
  // Combine SSIN errors with existing errors of jsonforms
419
404
  const updatedErrors = [...currentErrors, ssinError];
420
- console.debug('setErrorValue->All errors:', updatedErrors);
405
+ //console.debug('setErrorValue->All errors:', updatedErrors);
421
406
  const updateAction = Actions.updateErrors(updatedErrors);
422
407
  this.jsonFormsService.updateCore(updateAction);
423
408
  }
@@ -451,8 +436,30 @@ const nissControlTester = rankWith(10,
451
436
  scopeEndsWith('ssin'));
452
437
 
453
438
  class PhoneRendererComponent extends JsonFormsControl {
439
+ constructor() {
440
+ super(...arguments);
441
+ this.getEventValue = (event) => {
442
+ return event?.target?.value;
443
+ };
444
+ this.validator = (control) => {
445
+ const value = control.value;
446
+ if (value === null || value === undefined || value === '')
447
+ return null;
448
+ if (typeof value !== 'string')
449
+ return { phone: true };
450
+ // Basic international phone validation: starts with '+' or digit, min 6 digits when spaces removed
451
+ const normalized = value.replace(/\s+/g, '');
452
+ const isValid = /^\+?\d{6,}$/.test(normalized);
453
+ return isValid ? null : { phone: true };
454
+ };
455
+ }
456
+ ngOnInit() {
457
+ super.ngOnInit();
458
+ this.form.setValue(this.data);
459
+ this.form.setValidators([Validators.required, this.validator]);
460
+ }
454
461
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PhoneRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
455
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: PhoneRendererComponent, isStandalone: true, selector: "app-phone-renderer", usesInheritance: true, ngImport: i0, template: "@if (!hidden) {\n <mat-form-field>\n <mat-label>Phone number</mat-label>\n\n <onemrva-mat-input-phone\n [formControl]=\"form\"\n placeholder=\"+32 475 12 23 34\"\n ></onemrva-mat-input-phone>\n\n <mat-hint>hint</mat-hint>\n @if (form.invalid) {\n <mat-error>\n {{ 'input.phone.invalid' | translate }}\n </mat-error>\n }\n </mat-form-field>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: OnemrvaMatInputPhoneComponent, selector: "onemrva-mat-input-phone", inputs: ["noEntriesFoundLabel", "placeholderLabel", "searchAriaLabel", "label", "defaultPrefix", "value", "readonly", "disabled", "placeholder", "required"], outputs: ["getCountry"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
462
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.4", type: PhoneRendererComponent, isStandalone: true, selector: "app-phone-renderer", usesInheritance: true, ngImport: i0, template: "@if (!hidden) {\n <mat-form-field>\n <mat-label>Phone number</mat-label>\n\n <onemrva-mat-input-phone\n [formControl]=\"form\"\n placeholder=\"+32 475 12 23 34\"\n ></onemrva-mat-input-phone>\n\n <mat-hint>hint</mat-hint>\n @if (form.invalid) {\n <mat-error>\n {{ 'input.phone.invalid' | translate }}\n </mat-error>\n }\n </mat-form-field>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: OnemrvaMatInputPhoneComponent, selector: "onemrva-mat-input-phone", inputs: ["noEntriesFoundLabel", "placeholderLabel", "searchAriaLabel", "defaultPrefix", "value", "readonly", "disabled", "placeholder", "required"], outputs: ["getCountry"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatInputModule }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
456
463
  }
457
464
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.4", ngImport: i0, type: PhoneRendererComponent, decorators: [{
458
465
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"onemrvapublic-design-system-jsonform-renderers.mjs","sources":["../../../../projects/onemrva/design-system/jsonform-renderers/checkbox-renderer/checkbox-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/checkbox-renderer/checkbox-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/datepicker-renderer/datepicker-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/datepicker-renderer/datepicker-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/util/jsonforms-schema-path.util.ts","../../../../projects/onemrva/design-system/jsonform-renderers/iban-renderer/iban-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/iban-renderer/iban-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/label-renderer/label-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/label-renderer/label-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/niss-renderer/niss-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/niss-renderer/niss-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/phone-renderer/phone-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/phone-renderer/phone-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/radio-button-renderer/radio-button.renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/radio-button-renderer/radio-button.renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/readonly-control-renderer/readonly-control-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/readonly-control-renderer/readonly-control-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/select-renderer/select-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/select-renderer/select-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/onemrvapublic-design-system-jsonform-renderers.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\nimport { isBooleanControl, RankedTester, rankWith } from '@jsonforms/core';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\n\n@Component({\n selector: 'app-demo-checkbox',\n templateUrl: './checkbox-renderer.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatCheckboxModule,\n TranslatePipe,\n JsonFormsAngularMaterialModule,\n ],\n})\nexport class CheckboxRendererComponent extends JsonFormsControl {\n @Input()\n color: OnemrvaMatColor = '';\n @Input()\n indeterminate = false;\n\n override getEventValue = (event: any) => {\n return event;\n };\n\n onCheckboxChange(value: boolean): void {\n this.onChange(value);\n }\n}\n\nexport const checkboxTester: RankedTester = rankWith(3, isBooleanControl);\n","@if (!hidden) {\n <mat-checkbox\n [color]=\"color\"\n [checked]=\"!!data\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"!enabled\"\n (change)=\"onCheckboxChange($event.checked)\"\n >{{ uischema.i18n + '' | translate }}</mat-checkbox\n >\n @if (error) {\n <mat-error> {{ error }}</mat-error>\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n isDateControl,\n RankedTester,\n rankWith,\n JsonFormsState,\n StatePropsOfControl,\n} from '@jsonforms/core';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport {\n MatDatepicker,\n MatDatepickerInput,\n} from '@angular/material/datepicker';\nimport { MatFormField } from '@angular/material/form-field';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\nimport { OnemrvaMatDatepickerHeaderComponent } from '@onemrvapublic/design-system/mat-datepicker-header';\nimport {\n provideLuxonDateAdapter,\n LuxonDateAdapter,\n} from '@angular/material-luxon-adapter';\nimport { DateAdapter } from '@angular/material/core';\nimport { DateTime } from 'luxon';\n\nconst defaultDateFormat = 'yyyy-MM-dd';\n\n@Component({\n selector: 'app-date-picker-renderer',\n templateUrl: './datepicker-renderer.component.html',\n styleUrl: './datepicker-renderer.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [provideLuxonDateAdapter()],\n imports: [MatFormField, MatDatepickerInput, JsonFormsAngularMaterialModule],\n})\nexport class DatepickerRendererComponent extends JsonFormsControl {\n focused = false;\n startView: 'month' | 'year' | 'multi-year' = 'month';\n panelClass = '';\n views: string[] = ['year', 'month', 'day'];\n\n protected readonly OnemrvaMatDatepickerHeaderComponent =\n OnemrvaMatDatepickerHeaderComponent;\n\n // Make maxDate dynamic instead of readonly\n maxDate: Date | null = null;\n minDate: Date | null = null;\n\n private dateAdapter = inject(DateAdapter<any>) as LuxonDateAdapter;\n\n override getEventValue = (event: any) => {\n const value = event.value ? event.value : event;\n return this.dateAdapter.format(value, this.getSaveFormat());\n };\n\n protected override mapToProps(state: JsonFormsState): StatePropsOfControl {\n const props = super.mapToProps(state);\n\n // Get save format from UI schema options or use default\n const saveFormat = this.uischema?.options?.['dateSaveFormat']\n ? this.uischema.options['dateSaveFormat']\n : defaultDateFormat;\n\n // Get views from UI schema options\n this.views = this.uischema?.options?.['views']\n ? this.uischema.options['views']\n : ['year', 'month', 'day'];\n\n // Set min and max dates from UI schema options\n this.setDateLimits();\n\n this.setViewProperties();\n\n // Get display format from UI schema options\n const dateFormat = this.uischema?.options?.['dateFormat'];\n if (dateFormat) {\n this.dateAdapter.setLocale(this.jsonFormsService.getLocale() || 'en');\n }\n\n // Parse the data using the save format\n let parsedDate = null;\n if (props.data) {\n try {\n parsedDate = this.dateAdapter.parse(props.data, saveFormat);\n } catch (error) {\n console.warn('Failed to parse date:', props.data, error);\n }\n }\n\n return { ...props, data: parsedDate };\n }\n\n private setDateLimits(): void {\n const options = this.uischema?.options;\n\n if (options?.['maxDate']) {\n this.maxDate = this.parseDate(options['maxDate']);\n }\n\n if (options?.['minDate']) {\n this.minDate = this.parseDate(options['minDate']);\n }\n }\n\n private parseDate(dateValue: any): Date | null {\n if (dateValue === 'today') {\n return new Date();\n } else if (dateValue === 'tomorrow') {\n const tomorrow = new Date();\n tomorrow.setDate(tomorrow.getDate() + 1);\n return tomorrow;\n } else if (dateValue === 'yesterday') {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n return yesterday;\n } else if (typeof dateValue === 'string') {\n try {\n const luxonDate = this.dateAdapter.parse(\n dateValue,\n this.getSaveFormat(),\n );\n // Convert Luxon DateTime to JavaScript Date\n return luxonDate ? this.luxonToDate(luxonDate) : null;\n } catch (error) {\n console.warn('Failed to parse date:', dateValue, error);\n return null;\n }\n } else if (dateValue instanceof Date) {\n return dateValue;\n }\n\n return null;\n }\n\n private luxonToDate(luxonDateTime: DateTime): Date {\n return luxonDateTime.toJSDate();\n }\n\n yearSelected($event: any, datepicker: MatDatepicker<any>) {\n if (!this.views.includes('day') && !this.views.includes('month')) {\n this.onChange($event);\n datepicker.close();\n }\n }\n\n monthSelected($event: any, datepicker: MatDatepicker<any>) {\n if (!this.views.includes('day')) {\n this.onChange($event);\n datepicker.close();\n }\n }\n\n setViewProperties() {\n if (!this.views.includes('day')) {\n this.startView = 'multi-year' as const;\n this.panelClass = 'no-panel-navigation';\n } else {\n this.startView = 'month' as const;\n }\n }\n\n private getSaveFormat(): string {\n return this.uischema?.options?.['dateSaveFormat'] || defaultDateFormat;\n }\n}\n\nexport const DatePickerRendererTester: RankedTester = rankWith(\n 3,\n isDateControl,\n);\n","<mat-form-field\n class=\"date-control-renderer\"\n [ngStyle]=\"{ display: hidden ? 'none' : '' }\"\n>\n <mat-label>{{ label }}</mat-label>\n <input\n matInput\n (dateChange)=\"onChange($event)\"\n [id]=\"id\"\n [formControl]=\"form\"\n [matDatepicker]=\"datepicker\"\n (focus)=\"focused = true\"\n (focusout)=\"focused = false\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker\n #picker\n [calendarHeaderComponent]=\"OnemrvaMatDatepickerHeaderComponent\"\n #datepicker\n [startView]=\"startView\"\n [panelClass]=\"panelClass\"\n (yearSelected)=\"yearSelected($event, picker)\"\n (monthSelected)=\"monthSelected($event, picker)\"\n ></mat-datepicker>\n @if (shouldShowUnfocusedDescription() || focused) {\n <mat-hint>{{ description }}</mat-hint>\n }\n @if (error) {\n <mat-error>{{ error }}</mat-error>\n }\n</mat-form-field>\n","/**\n * Utility for manipulating and extracting information\n * from schema and scope paths in JsonForms\n */\nexport class JsonFormsSchemaPathUtil {\n private static readonly PROPERTY_PATH_REGEX =\n /\\/properties\\/([^/]+)(?:\\/properties\\/([^/]+))?/;\n\n /**\n * Extracts the step key from a UI Schema scope path\n * @param scope The scope path (e.g. \"/properties/childInfo/properties/ssin\")\n * @returns The extracted step key (e.g. \"/childInfo/ssin\")\n */\n public static extractStepKey(scope?: string): string {\n // Get the \"childInfo\" and the \"ssin\"\n const regex = new RegExp(JsonFormsSchemaPathUtil.PROPERTY_PATH_REGEX);\n const matches = regex.exec(scope ?? '');\n if (!matches) {\n return '';\n }\n\n // If we have both parts (childInfo + ssin)\n if (matches[2]) {\n return `/${matches[1]}/${matches[2]}`;\n }\n\n // If we have only the first part (childInfo)\n return `/${matches[1]}`;\n }\n}\n","import { Component, input, signal } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { bankAccountValidator } from '@onemrvapublic/design-system/shared';\nimport { OnemrvaMatInputIbanComponent } from '@onemrvapublic/design-system/mat-input-iban';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport {\n Actions,\n RankedTester,\n rankWith,\n scopeEndsWith,\n} from '@jsonforms/core';\nimport { JsonFormsSchemaPathUtil } from '../util/jsonforms-schema-path.util';\nimport { ErrorObject } from 'ajv';\n\n@Component({\n selector: 'app-iban-renderer',\n templateUrl: 'iban-renderer.component.html',\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n OnemrvaMatInputIbanComponent,\n TranslatePipe,\n ],\n standalone: true,\n})\nexport class IbanRendererComponent extends JsonFormsControl {\n readonly = input(false);\n private readonly isUpdating = signal(false);\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.form.setValue(this.data);\n this.form.setValidators([Validators.required, this.validator]);\n }\n\n override onChange(event: any): void {\n const ibanValue = this.buildIbanValue(event);\n const modifiedEvent = {\n ...event,\n target: { ...event.target, value: ibanValue },\n };\n super.onChange(modifiedEvent);\n }\n\n private buildIbanValue(event: any) {\n let builtValue: string = event?.currentTarget?.innerText;\n if (event?.data === null) {\n builtValue = builtValue + event?.target?.value?.slice(0, -1);\n } else {\n builtValue =\n builtValue + event?.target?.value.toString().replace(/\\s/g, '');\n if (event?.target?.value?.toString().length < 14) {\n builtValue = builtValue + event?.data;\n }\n }\n return builtValue;\n }\n\n override getEventValue = (event: any) => {\n return event?.target?.value;\n };\n\n override validator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n if (this.isUpdating()) {\n return null;\n }\n\n const value = control.value;\n\n // Verify if error is undefined, null or empty\n if (!value || typeof value !== 'string') {\n //console.debug('Invalid IBAN value: ' + value);\n return null;\n } else {\n //console.debug('Valid IBAN value: ' + value);\n }\n\n if (value.length !== 2) {\n const tempControl = new FormControl(value);\n const ibanValidator = bankAccountValidator();\n const result = ibanValidator(tempControl);\n if (result) {\n this.setErrorValue();\n return result;\n }\n }\n return null;\n };\n\n private setErrorValue() {\n this.isUpdating.set(true);\n try {\n // Get existing errors\n const currentState = this.jsonFormsService.getState();\n console.debug('setErrorValue->Current state:', currentState);\n\n const currentErrors = currentState?.jsonforms?.core?.['errors'] ?? [];\n console.debug('setErrorValue->Existing JSONForms errors:', currentErrors);\n const instancePath = JsonFormsSchemaPathUtil.extractStepKey(\n this.uischema?.scope,\n );\n\n // Add the IBAN error\n const ibanError: ErrorObject = {\n instancePath: instancePath,\n message: 'Numéro IBAN invalide',\n keyword: 'custom-renderer',\n schemaPath: this.uischema?.scope ?? '',\n params: {},\n };\n\n // Combine IBAN errors with existing errors of jsonforms\n const updatedErrors = [...currentErrors, ibanError];\n console.debug('setErrorValue->All errors:', updatedErrors);\n\n const updateAction = Actions.updateErrors(updatedErrors);\n this.jsonFormsService.updateCore(updateAction);\n } finally {\n this.isUpdating.set(false);\n }\n }\n}\n\nexport const ibanControlTester: RankedTester = rankWith(\n 10,\n scopeEndsWith('iban'),\n);\n","@if (!hidden) {\n <mat-form-field>\n <mat-label>IBAN</mat-label>\n\n <onemrva-mat-input-iban [formControl]=\"form\" (input)=\"onChange($event)\">\n </onemrva-mat-input-iban>\n\n @if (form.hasError('required')) {\n <mat-error>\n {{ 'error.required' | translate }}\n </mat-error>\n } @else if (form.hasError('WrongBBANLength')) {\n <mat-error>\n {{ 'error.iban.length' | translate }}\n </mat-error>\n } @else if (form.hasError('NoIBANCountry')) {\n <mat-error> NoIBANCountry </mat-error>\n } @else if (\n !form.hasError('WrongBBANLength') &&\n (form.hasError('WrongBBANFormat') ||\n form.hasError('WrongAccountBankBranchChecksum') ||\n form.hasError('WrongIBANChecksum'))\n ) {\n <mat-error>\n {{ 'error.iban.invalid' | translate }}\n </mat-error>\n }\n </mat-form-field>\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n JsonFormsAngularService,\n JsonFormsBaseRenderer,\n} from '@jsonforms/angular';\nimport {\n JsonFormsState,\n LabelElement,\n mapStateToLabelProps,\n OwnPropsOfLabel,\n RankedTester,\n rankWith,\n uiTypeIs,\n} from '@jsonforms/core';\nimport { MatLabel } from '@angular/material/form-field';\n\n@Component({\n selector: 'app-label-renderer',\n templateUrl: './label-renderer.component.html',\n styleUrl: './label-renderer.component.scss',\n standalone: true,\n imports: [CommonModule, MatLabel],\n})\nexport class LabelRendererComponent\n extends JsonFormsBaseRenderer<LabelElement>\n implements OnInit\n{\n jsonFormsService = inject(JsonFormsAngularService);\n\n label: string | undefined;\n visible: boolean | undefined;\n\n ngOnInit() {\n this.addSubscription(\n this.jsonFormsService.$state.subscribe({\n next: (state: JsonFormsState) => {\n const props = mapStateToLabelProps(\n state,\n this.getOwnProps() as OwnPropsOfLabel,\n );\n this.label = props.text;\n this.visible = props.visible;\n },\n }),\n );\n }\n\n get labelStyle(): Record<string, string> {\n return {\n fontSize: `${this.fontSize}px`,\n fontWeight: `${this.fontWeight}`,\n };\n }\n\n get fontWeight(): boolean {\n return this.uischema.options?.['fontWeight'] ?? 'normal';\n }\n\n get fontSize(): number {\n return this.uischema.options?.['textSize'] ?? 20;\n }\n}\n\nexport const customLabelTester: RankedTester = rankWith(5, uiTypeIs('Label'));\n","@if (visible) {\n <mat-label [ngStyle]=\"labelStyle\">\n {{ label }}\n </mat-label>\n}\n","import { Component, inject, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { JsonFormsAngularService, JsonFormsControl } from '@jsonforms/angular';\nimport {\n Actions,\n RankedTester,\n rankWith,\n scopeEndsWith,\n} from '@jsonforms/core';\nimport { MatError, MatFormField, MatLabel } from '@angular/material/form-field';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\nimport {\n NISS_MASK,\n OnemrvaValidators,\n} from '@onemrvapublic/design-system/shared';\nimport {\n AbstractControl,\n FormControl,\n ValidationErrors,\n ValidatorFn,\n} from '@angular/forms';\nimport { ErrorObject } from 'ajv';\nimport { JsonFormsSchemaPathUtil } from '../util/jsonforms-schema-path.util';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-niss-renderer',\n templateUrl: './niss-renderer.component.html',\n styleUrl: './niss-renderer.component.scss',\n standalone: true,\n imports: [\n CommonModule,\n MatFormField,\n MatLabel,\n MatError,\n JsonFormsAngularMaterialModule,\n NgxMaskDirective,\n TranslatePipe,\n ],\n providers: [provideNgxMask()],\n})\nexport class NissRendererComponent extends JsonFormsControl {\n nissMask = NISS_MASK;\n private readonly isUpdating = signal(false);\n\n override jsonFormsService = inject(JsonFormsAngularService);\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.form.setValue(this.data);\n this.form.setValidators(this.validator);\n }\n\n override getEventValue = (event: any) => {\n return event?.target?.value;\n };\n\n override onChange(event: any): void {\n const formattedValue = this.getEventValue(event);\n const rawValue = formattedValue.replace(/[^0-9]/g, '');\n\n // Display formatted value\n this.form.setValue(formattedValue);\n\n // Store raw value\n const modifiedEvent = {\n ...event,\n target: { ...event.target, value: rawValue },\n };\n super.onChange(modifiedEvent);\n }\n\n private setErrorValue(error: any) {\n this.isUpdating.set(true);\n try {\n // Get existing errors\n const currentState = this.jsonFormsService.getState();\n console.debug('setErrorValue->Current state:', currentState);\n\n const currentErrors = currentState?.jsonforms?.core?.['errors'] ?? [];\n console.debug('setErrorValue->Existing JSONForms errors:', currentErrors);\n const instancePath = JsonFormsSchemaPathUtil.extractStepKey(\n this.uischema?.scope,\n );\n\n // Add the SSIN errors\n const ssinError: ErrorObject = {\n instancePath: instancePath,\n message: 'Numéro XXXX invalide',\n keyword: 'custom-renderer',\n schemaPath: this.uischema?.scope ?? '',\n params: {},\n };\n\n // Combine SSIN errors with existing errors of jsonforms\n const updatedErrors = [...currentErrors, ssinError];\n console.debug('setErrorValue->All errors:', updatedErrors);\n\n const updateAction = Actions.updateErrors(updatedErrors);\n this.jsonFormsService.updateCore(updateAction);\n } finally {\n this.isUpdating.set(false);\n }\n }\n\n isSsinError() {\n const errors = this.form.errors;\n return (\n errors !== null &&\n Object.keys(errors).length > 0 &&\n Object.keys(errors)[0].startsWith('niss')\n );\n }\n\n override validator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n if (this.isUpdating()) {\n return null;\n }\n\n const value = control.value;\n\n // Verify if error is undefined, null or empty\n if (!value || typeof value !== 'string') {\n console.debug('Invalid NISS value: ' + value);\n return null;\n } else {\n console.debug('Valid NISS value: ' + value);\n }\n\n const cleanValue = value.toString().trim();\n if (!cleanValue) {\n return null;\n }\n\n const tempControl = new FormControl(cleanValue);\n const nissValidator = OnemrvaValidators.niss();\n\n const result = nissValidator(tempControl);\n\n if (result) {\n this.setErrorValue(result);\n return result;\n }\n\n return null;\n };\n}\n\nexport const nissControlTester: RankedTester = rankWith(\n 10,\n // TODO : Why format =\"ssin\" is not reconized !!!!\n scopeEndsWith('ssin'),\n);\n","<mat-form-field>\n <mat-label>{{ label }}</mat-label>\n <input\n id=\"{{ id }}\"\n matInput\n [formControl]=\"form\"\n (input)=\"onChange($event)\"\n [mask]=\"nissMask\"\n />\n</mat-form-field>\n\n@if (isSsinError()) {\n <mat-error>{{ 'error.ssin' | translate }}</mat-error>\n}\n","import { Component } from '@angular/core';\nimport { OnemrvaMatInputPhoneComponent } from '@onemrvapublic/design-system/mat-input-phone';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport { RankedTester, rankWith, scopeEndsWith } from '@jsonforms/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-phone-renderer',\n standalone: true,\n imports: [\n TranslatePipe,\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n OnemrvaMatInputPhoneComponent,\n FormsModule,\n MatInputModule,\n TranslatePipe,\n ],\n templateUrl: './phone-renderer.component.html',\n})\nexport class PhoneRendererComponent extends JsonFormsControl {}\n\nexport const phoneControllerTester: RankedTester = rankWith(\n 8,\n scopeEndsWith('phone'),\n);\n","@if (!hidden) {\n <mat-form-field>\n <mat-label>Phone number</mat-label>\n\n <onemrva-mat-input-phone\n [formControl]=\"form\"\n placeholder=\"+32 475 12 23 34\"\n ></onemrva-mat-input-phone>\n\n <mat-hint>hint</mat-hint>\n @if (form.invalid) {\n <mat-error>\n {{ 'input.phone.invalid' | translate }}\n </mat-error>\n }\n </mat-form-field>\n}\n","import { Component } from '@angular/core';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport { isEnabled, UISchemaElement } from '@jsonforms/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\nimport { MatRadioButton, MatRadioGroup } from '@angular/material/radio';\nimport { MatError } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-radio-button-renderer',\n templateUrl: './radio-button.renderer.component.html',\n styleUrl: './radio-button.renderer.component.scss',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatError,\n JsonFormsAngularMaterialModule,\n MatRadioGroup,\n FormsModule,\n MatRadioButton,\n ],\n})\nexport class RadioButtonRendererComponent extends JsonFormsControl {\n options: string[] = [];\n\n override mapAdditionalProps() {\n if (this.scopedSchema && this.scopedSchema.enum) {\n this.options = this.scopedSchema.enum;\n }\n }\n\n get isControlDisable(): boolean {\n try {\n const state = this.jsonFormsService.getState();\n const ajv = state?.jsonforms?.core?.ajv;\n\n // May not call isEnabled if ajv is undefined\n if (!ajv) {\n return true;\n }\n\n return !isEnabled(\n this.uischema,\n state?.jsonforms?.core?.data ?? {},\n '',\n ajv,\n );\n } catch {\n return true;\n }\n }\n}\n\nexport const radioButtonTester = (uischema: UISchemaElement) => {\n if (uischema.type === 'Control' && uischema.options?.['format'] === 'radio') {\n return 11;\n }\n return -1;\n};\n","@if (!hidden) {\n <mat-radio-group\n [(ngModel)]=\"data\"\n (change)=\"onChange($event)\"\n disabled=\"{{ isControlDisable }}\"\n class=\"vertical-radio-group\"\n >\n <mat-radio-button *ngFor=\"let option of options\" [value]=\"option\">\n {{ uischema.i18n + '.' + option | translate }}\n </mat-radio-button>\n @if (error) {\n <mat-error> {{ error }}</mat-error>\n }\n </mat-radio-group>\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { JsonFormsAngularService, JsonFormsControl } from '@jsonforms/angular';\nimport {\n and,\n isControl,\n optionIs,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatLabel } from '@angular/material/form-field';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\nimport { TranslateService } from '@ngx-translate/core';\nimport { OnemrvaNissPipe } from '@onemrvapublic/design-system/shared';\n\n@Component({\n selector: 'app-readonly-control-renderer',\n templateUrl: './readonly-control-renderer.component.html',\n styleUrl: './readonly-control-renderer.component.scss',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n MatLabel,\n JsonFormsAngularMaterialModule,\n ],\n providers: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ReadonlyControlRendererComponent extends JsonFormsControl {\n private readonly translate = inject(TranslateService);\n private readonly onemrvaNissPipe = inject(OnemrvaNissPipe);\n\n override mapAdditionalProps() {\n if (this.needsTranslation()) {\n const translationKey = this.uischema.i18n + '.' + this.form.value;\n const translatedValue = this.translate.instant(translationKey);\n this.form.patchValue(translatedValue);\n }\n\n if (this.isNiss()) {\n const formattedNiss = this.onemrvaNissPipe.transform(this.form.value);\n this.form.patchValue(formattedNiss);\n }\n\n if (this.isIban()) {\n const formattedIban = this.formatIban(this.form.value);\n this.form.patchValue(formattedIban);\n }\n\n // if (this.isDate()) {\n // const formattedDate = moment(this.form.value).format('DD/MM/YYYY');\n // this.form.patchValue(formattedDate);\n // }\n }\n\n private formatIban(iban: string): string {\n const cleanIban = iban.replace(/\\s+/g, '');\n return cleanIban.replace(/(.{4})/g, '$1 ').trim();\n }\n\n private hasValueAndSchema(): boolean {\n return !!this.form.value && !!this.scopedSchema;\n }\n\n private isIban(): boolean {\n return (\n this.hasValueAndSchema() &&\n !!this.uischema.scope &&\n this.uischema.scope.endsWith('/iban')\n );\n }\n\n private isDate(): boolean {\n return this.hasValueAndSchema() && this.scopedSchema.format === 'date';\n }\n\n private isNiss(): boolean {\n return (\n this.hasValueAndSchema() &&\n !!this.uischema.scope &&\n this.uischema.scope.endsWith('/ssin')\n );\n }\n\n private needsTranslation(): boolean {\n const isEnum = this.hasValueAndSchema() && !!this.scopedSchema.enum;\n const isBooleanType =\n this.scopedSchema !== undefined &&\n this.scopedSchema.type?.[0] === 'boolean';\n return isEnum || isBooleanType;\n }\n}\n\nexport const readonlyControlTester: RankedTester = rankWith(\n 11,\n and(isControl, optionIs('readonly', true)),\n);\n","<div class=\"summary-grid\">\n <mat-label class=\"column1\">{{ label }}</mat-label>\n <input class=\"column2 mat-typography\" [id]=\"id\" [formControl]=\"form\" />\n</div>\n","import { Component, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport {\n ControlProps,\n isEnumControl,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatOption } from '@angular/material/core';\nimport { MatSelect } from '@angular/material/select';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\n\n@Component({\n selector: 'app-enum-renderer',\n templateUrl: './select-renderer.component.html',\n styleUrl: './select-renderer.component.scss',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatFormField,\n MatLabel,\n MatOption,\n MatSelect,\n JsonFormsAngularMaterialModule,\n ],\n})\nexport class EnumRendererComponent extends JsonFormsControl {\n options = signal<string[]>([]);\n\n override mapAdditionalProps(props: ControlProps) {\n this.options.set(this.scopedSchema?.enum || []);\n super.mapAdditionalProps(props);\n }\n}\n\nexport const enumControlTester: RankedTester = rankWith(10, isEnumControl);\n","<mat-form-field appearance=\"outline\">\n <mat-label>{{ label }}</mat-label>\n <mat-select\n [(value)]=\"data\"\n (selectionChange)=\"onChange($event)\"\n [formControl]=\"form\"\n >\n @for (value of options(); track value) {\n <mat-option [value]=\"value\">\n {{ uischema.i18n + '.' + value | translate }}\n </mat-option>\n }\n </mat-select>\n</mat-form-field>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i5","i3"],"mappings":"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"}
1
+ {"version":3,"file":"onemrvapublic-design-system-jsonform-renderers.mjs","sources":["../../../../projects/onemrva/design-system/jsonform-renderers/checkbox-renderer/checkbox-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/checkbox-renderer/checkbox-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/datepicker-renderer/datepicker-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/datepicker-renderer/datepicker-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/util/jsonforms-schema-path.util.ts","../../../../projects/onemrva/design-system/jsonform-renderers/iban-renderer/iban-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/iban-renderer/iban-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/label-renderer/label-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/label-renderer/label-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/niss-renderer/niss-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/niss-renderer/niss-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/phone-renderer/phone-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/phone-renderer/phone-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/radio-button-renderer/radio-button.renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/radio-button-renderer/radio-button.renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/readonly-control-renderer/readonly-control-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/readonly-control-renderer/readonly-control-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/select-renderer/select-renderer.component.ts","../../../../projects/onemrva/design-system/jsonform-renderers/select-renderer/select-renderer.component.html","../../../../projects/onemrva/design-system/jsonform-renderers/onemrvapublic-design-system-jsonform-renderers.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { OnemrvaMatColor } from '@onemrvapublic/design-system/utils';\nimport { isBooleanControl, RankedTester, rankWith } from '@jsonforms/core';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\n\n@Component({\n selector: 'app-demo-checkbox',\n templateUrl: './checkbox-renderer.component.html',\n standalone: true,\n imports: [\n CommonModule,\n MatCheckboxModule,\n TranslatePipe,\n JsonFormsAngularMaterialModule,\n ],\n})\nexport class CheckboxRendererComponent extends JsonFormsControl {\n @Input()\n color: OnemrvaMatColor = '';\n @Input()\n indeterminate = false;\n\n override getEventValue = (event: any) => {\n return event;\n };\n\n onCheckboxChange(value: boolean): void {\n this.onChange(value);\n }\n}\n\nexport const checkboxTester: RankedTester = rankWith(3, isBooleanControl);\n","@if (!hidden) {\n <mat-checkbox\n [color]=\"color\"\n [checked]=\"!!data\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"!enabled\"\n (change)=\"onCheckboxChange($event.checked)\"\n >{{ uischema.i18n + '' | translate }}</mat-checkbox\n >\n @if (error) {\n <mat-error> {{ error }}</mat-error>\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ViewEncapsulation,\n inject,\n} from '@angular/core';\nimport {\n isDateControl,\n RankedTester,\n rankWith,\n JsonFormsState,\n StatePropsOfControl,\n} from '@jsonforms/core';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport {\n MatDatepicker,\n MatDatepickerInput,\n} from '@angular/material/datepicker';\nimport { MatFormField } from '@angular/material/form-field';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\nimport { OnemrvaMatDatepickerHeaderComponent } from '@onemrvapublic/design-system/mat-datepicker-header';\nimport {\n provideLuxonDateAdapter,\n LuxonDateAdapter,\n} from '@angular/material-luxon-adapter';\nimport { DateAdapter } from '@angular/material/core';\nimport { DateTime } from 'luxon';\n\nconst defaultDateFormat = 'yyyy-MM-dd';\n\n@Component({\n selector: 'app-date-picker-renderer',\n templateUrl: './datepicker-renderer.component.html',\n styleUrl: './datepicker-renderer.component.scss',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [provideLuxonDateAdapter()],\n imports: [MatFormField, MatDatepickerInput, JsonFormsAngularMaterialModule],\n})\nexport class DatepickerRendererComponent extends JsonFormsControl {\n focused = false;\n startView: 'month' | 'year' | 'multi-year' = 'month';\n panelClass = '';\n views: string[] = ['year', 'month', 'day'];\n\n protected readonly OnemrvaMatDatepickerHeaderComponent =\n OnemrvaMatDatepickerHeaderComponent;\n\n // Make maxDate dynamic instead of readonly\n maxDate: Date | null = null;\n minDate: Date | null = null;\n\n private dateAdapter = inject(DateAdapter<any>) as LuxonDateAdapter;\n\n override getEventValue = (event: any) => {\n const value = event.value ? event.value : event;\n return this.dateAdapter.format(value, this.getSaveFormat());\n };\n\n protected override mapToProps(state: JsonFormsState): StatePropsOfControl {\n const props = super.mapToProps(state);\n\n // Get save format from UI schema options or use default\n const saveFormat = this.uischema?.options?.['dateSaveFormat']\n ? this.uischema.options['dateSaveFormat']\n : defaultDateFormat;\n\n // Get views from UI schema options\n this.views = this.uischema?.options?.['views']\n ? this.uischema.options['views']\n : ['year', 'month', 'day'];\n\n // Set min and max dates from UI schema options\n this.setDateLimits();\n\n this.setViewProperties();\n\n // Get display format from UI schema options\n const dateFormat = this.uischema?.options?.['dateFormat'];\n if (dateFormat) {\n this.dateAdapter.setLocale(this.jsonFormsService.getLocale() || 'en');\n }\n\n // Parse the data using the save format\n let parsedDate = null;\n if (props.data) {\n try {\n parsedDate = this.dateAdapter.parse(props.data, saveFormat);\n } catch (error) {\n console.warn('Failed to parse date:', props.data, error);\n }\n }\n\n return { ...props, data: parsedDate };\n }\n\n private setDateLimits(): void {\n const options = this.uischema?.options;\n\n if (options?.['maxDate']) {\n this.maxDate = this.parseDate(options['maxDate']);\n }\n\n if (options?.['minDate']) {\n this.minDate = this.parseDate(options['minDate']);\n }\n }\n\n private parseDate(dateValue: any): Date | null {\n if (dateValue === 'today') {\n return new Date();\n } else if (dateValue === 'tomorrow') {\n const tomorrow = new Date();\n tomorrow.setDate(tomorrow.getDate() + 1);\n return tomorrow;\n } else if (dateValue === 'yesterday') {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n return yesterday;\n } else if (typeof dateValue === 'string') {\n try {\n const luxonDate = this.dateAdapter.parse(\n dateValue,\n this.getSaveFormat(),\n );\n // Convert Luxon DateTime to JavaScript Date\n return luxonDate ? this.luxonToDate(luxonDate) : null;\n } catch (error) {\n console.warn('Failed to parse date:', dateValue, error);\n return null;\n }\n } else if (dateValue instanceof Date) {\n return dateValue;\n }\n\n return null;\n }\n\n private luxonToDate(luxonDateTime: DateTime): Date {\n return luxonDateTime.toJSDate();\n }\n\n yearSelected($event: any, datepicker: MatDatepicker<any>) {\n if (!this.views.includes('day') && !this.views.includes('month')) {\n this.onChange($event);\n datepicker.close();\n }\n }\n\n monthSelected($event: any, datepicker: MatDatepicker<any>) {\n if (!this.views.includes('day')) {\n this.onChange($event);\n datepicker.close();\n }\n }\n\n setViewProperties() {\n if (!this.views.includes('day')) {\n this.startView = 'multi-year' as const;\n this.panelClass = 'no-panel-navigation';\n } else {\n this.startView = 'month' as const;\n }\n }\n\n private getSaveFormat(): string {\n return this.uischema?.options?.['dateSaveFormat'] || defaultDateFormat;\n }\n}\n\nexport const DatePickerRendererTester: RankedTester = rankWith(\n 3,\n isDateControl,\n);\n","<mat-form-field\n class=\"date-control-renderer\"\n [ngStyle]=\"{ display: hidden ? 'none' : '' }\"\n>\n <mat-label>{{ label }}</mat-label>\n <input\n matInput\n (dateChange)=\"onChange($event)\"\n [id]=\"id\"\n [formControl]=\"form\"\n [matDatepicker]=\"datepicker\"\n (focus)=\"focused = true\"\n (focusout)=\"focused = false\"\n [max]=\"maxDate\"\n [min]=\"minDate\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker\n #picker\n [calendarHeaderComponent]=\"OnemrvaMatDatepickerHeaderComponent\"\n #datepicker\n [startView]=\"startView\"\n [panelClass]=\"panelClass\"\n (yearSelected)=\"yearSelected($event, picker)\"\n (monthSelected)=\"monthSelected($event, picker)\"\n ></mat-datepicker>\n @if (shouldShowUnfocusedDescription() || focused) {\n <mat-hint>{{ description }}</mat-hint>\n }\n @if (error) {\n <mat-error>{{ error }}</mat-error>\n }\n</mat-form-field>\n","/**\n * Utility for manipulating and extracting information\n * from schema and scope paths in JsonForms\n */\nexport class JsonFormsSchemaPathUtil {\n private static readonly PROPERTY_PATH_REGEX =\n /\\/properties\\/([^/]+)(?:\\/properties\\/([^/]+))?/;\n\n /**\n * Extracts the step key from a UI Schema scope path\n * @param scope The scope path (e.g. \"/properties/childInfo/properties/ssin\")\n * @returns The extracted step key (e.g. \"/childInfo/ssin\")\n */\n public static extractStepKey(scope?: string): string {\n // Get the \"childInfo\" and the \"ssin\"\n const regex = new RegExp(JsonFormsSchemaPathUtil.PROPERTY_PATH_REGEX);\n const matches = regex.exec(scope ?? '');\n if (!matches) {\n return '';\n }\n\n // If we have both parts (childInfo + ssin)\n if (matches[2]) {\n return `/${matches[1]}/${matches[2]}`;\n }\n\n // If we have only the first part (childInfo)\n return `/${matches[1]}`;\n }\n}\n","import { Component, input, signal } from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { bankAccountValidator } from '@onemrvapublic/design-system/shared';\nimport { OnemrvaMatInputIbanComponent } from '@onemrvapublic/design-system/mat-input-iban';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport {\n Actions,\n RankedTester,\n rankWith,\n scopeEndsWith,\n} from '@jsonforms/core';\nimport { JsonFormsSchemaPathUtil } from '../util/jsonforms-schema-path.util';\nimport { ErrorObject } from 'ajv';\n\n@Component({\n selector: 'app-iban-renderer',\n templateUrl: 'iban-renderer.component.html',\n imports: [\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n OnemrvaMatInputIbanComponent,\n TranslatePipe,\n ],\n standalone: true,\n})\nexport class IbanRendererComponent extends JsonFormsControl {\n readonly = input(false);\n private readonly isUpdating = signal(false);\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.form.setValue(this.data);\n this.form.setValidators([Validators.required, this.validator]);\n }\n\n override getEventValue = (event: any) => {\n if (typeof event === 'string') {\n return event.replace(/\\s/g, '');\n }\n if (event && typeof event.value === 'string') {\n return event.value.replace(/\\s/g, '');\n }\n const raw = event?.target?.value;\n return typeof raw === 'string' ? raw.replace(/\\s/g, '') : raw;\n };\n\n override validator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n if (this.isUpdating()) {\n return null;\n }\n\n const value = control.value;\n\n // Verify if error is undefined, null or empty\n if (!value || typeof value !== 'string') {\n //console.debug('Invalid IBAN value: ' + value);\n return null;\n } else {\n //console.debug('Valid IBAN value: ' + value);\n }\n\n if (value.length !== 2) {\n const tempControl = new FormControl(value);\n const ibanValidator = bankAccountValidator();\n const result = ibanValidator(tempControl);\n if (result) {\n this.setErrorValue();\n return result;\n }\n }\n return null;\n };\n\n private setErrorValue() {\n this.isUpdating.set(true);\n try {\n // Get existing errors\n const currentState = this.jsonFormsService.getState();\n //console.debug('setErrorValue->Current state:', currentState);\n\n const currentErrors = currentState?.jsonforms?.core?.['errors'] ?? [];\n //console.debug('setErrorValue->Existing JSONForms errors:', currentErrors);\n const instancePath = JsonFormsSchemaPathUtil.extractStepKey(\n this.uischema?.scope,\n );\n\n // Add the IBAN error\n const ibanError: ErrorObject = {\n instancePath: instancePath,\n message: 'Numéro IBAN invalide',\n keyword: 'custom-renderer',\n schemaPath: this.uischema?.scope ?? '',\n params: {},\n };\n\n // Combine IBAN errors with existing errors of jsonforms\n const updatedErrors = [...currentErrors, ibanError];\n //console.debug('setErrorValue->All errors:', updatedErrors);\n\n const updateAction = Actions.updateErrors(updatedErrors);\n this.jsonFormsService.updateCore(updateAction);\n } finally {\n this.isUpdating.set(false);\n }\n }\n}\n\nexport const ibanControlTester: RankedTester = rankWith(\n 10,\n scopeEndsWith('iban'),\n);\n","@if (!hidden) {\n <mat-form-field>\n <mat-label>IBAN</mat-label>\n\n <onemrva-mat-input-iban [formControl]=\"form\" (input)=\"onChange($event)\">\n </onemrva-mat-input-iban>\n\n @if (form.hasError('required')) {\n <mat-error>\n {{ 'error.required' | translate }}\n </mat-error>\n } @else if (form.hasError('WrongBBANLength')) {\n <mat-error>\n {{ 'error.iban.length' | translate }}\n </mat-error>\n } @else if (form.hasError('NoIBANCountry')) {\n <mat-error> NoIBANCountry </mat-error>\n } @else if (\n !form.hasError('WrongBBANLength') &&\n (form.hasError('WrongBBANFormat') ||\n form.hasError('WrongAccountBankBranchChecksum') ||\n form.hasError('WrongIBANChecksum'))\n ) {\n <mat-error>\n {{ 'error.iban.invalid' | translate }}\n </mat-error>\n }\n </mat-form-field>\n}\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n JsonFormsAngularService,\n JsonFormsBaseRenderer,\n} from '@jsonforms/angular';\nimport {\n JsonFormsState,\n LabelElement,\n mapStateToLabelProps,\n OwnPropsOfLabel,\n RankedTester,\n rankWith,\n uiTypeIs,\n} from '@jsonforms/core';\nimport { MatLabel } from '@angular/material/form-field';\n\n@Component({\n selector: 'app-label-renderer',\n templateUrl: './label-renderer.component.html',\n styleUrl: './label-renderer.component.scss',\n standalone: true,\n imports: [CommonModule, MatLabel],\n})\nexport class LabelRendererComponent\n extends JsonFormsBaseRenderer<LabelElement>\n implements OnInit\n{\n jsonFormsService = inject(JsonFormsAngularService);\n\n label: string | undefined;\n visible: boolean | undefined;\n\n ngOnInit() {\n this.addSubscription(\n this.jsonFormsService.$state.subscribe({\n next: (state: JsonFormsState) => {\n const props = mapStateToLabelProps(\n state,\n this.getOwnProps() as OwnPropsOfLabel,\n );\n this.label = props.text;\n this.visible = props.visible;\n },\n }),\n );\n }\n\n get labelStyle(): Record<string, string> {\n return {\n fontSize: `${this.fontSize}px`,\n fontWeight: `${this.fontWeight}`,\n };\n }\n\n get fontWeight(): boolean {\n return this.uischema.options?.['fontWeight'] ?? 'normal';\n }\n\n get fontSize(): number {\n return this.uischema.options?.['textSize'] ?? 20;\n }\n}\n\nexport const customLabelTester: RankedTester = rankWith(5, uiTypeIs('Label'));\n","@if (visible) {\n <mat-label [ngStyle]=\"labelStyle\">\n {{ label }}\n </mat-label>\n}\n","import { Component, inject, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { JsonFormsAngularService, JsonFormsControl } from '@jsonforms/angular';\nimport {\n Actions,\n RankedTester,\n rankWith,\n scopeEndsWith,\n} from '@jsonforms/core';\nimport { MatError, MatFormField, MatLabel } from '@angular/material/form-field';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\nimport {\n NISS_MASK,\n OnemrvaValidators,\n} from '@onemrvapublic/design-system/shared';\nimport {\n AbstractControl,\n FormControl,\n ValidationErrors,\n ValidatorFn,\n} from '@angular/forms';\nimport { ErrorObject } from 'ajv';\nimport { JsonFormsSchemaPathUtil } from '../util/jsonforms-schema-path.util';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-niss-renderer',\n templateUrl: './niss-renderer.component.html',\n styleUrl: './niss-renderer.component.scss',\n standalone: true,\n imports: [\n CommonModule,\n MatFormField,\n MatLabel,\n MatError,\n JsonFormsAngularMaterialModule,\n NgxMaskDirective,\n TranslatePipe,\n ],\n providers: [provideNgxMask()],\n})\nexport class NissRendererComponent extends JsonFormsControl {\n nissMask = NISS_MASK;\n private readonly isUpdating = signal(false);\n\n override jsonFormsService = inject(JsonFormsAngularService);\n\n override ngOnInit(): void {\n super.ngOnInit();\n this.form.setValue(this.data);\n this.form.setValidators(this.validator);\n }\n\n override getEventValue = (event: any) => {\n return event?.target?.value;\n };\n\n override onChange(event: any): void {\n const formattedValue = this.getEventValue(event);\n const rawValue = formattedValue.replace(/[^0-9]/g, '');\n\n // Display formatted value\n this.form.setValue(formattedValue);\n\n // Store raw value\n const modifiedEvent = {\n ...event,\n target: { ...event.target, value: rawValue },\n };\n super.onChange(modifiedEvent);\n }\n\n private setErrorValue(error: any) {\n this.isUpdating.set(true);\n try {\n // Get existing errors\n const currentState = this.jsonFormsService.getState();\n //console.debug('setErrorValue->Current state:', currentState);\n\n const currentErrors = currentState?.jsonforms?.core?.['errors'] ?? [];\n //console.debug('setErrorValue->Existing JSONForms errors:', currentErrors);\n const instancePath = JsonFormsSchemaPathUtil.extractStepKey(\n this.uischema?.scope,\n );\n\n // Add the SSIN errors\n const ssinError: ErrorObject = {\n instancePath: instancePath,\n message: 'Numéro XXXX invalide',\n keyword: 'custom-renderer',\n schemaPath: this.uischema?.scope ?? '',\n params: {},\n };\n\n // Combine SSIN errors with existing errors of jsonforms\n const updatedErrors = [...currentErrors, ssinError];\n //console.debug('setErrorValue->All errors:', updatedErrors);\n\n const updateAction = Actions.updateErrors(updatedErrors);\n this.jsonFormsService.updateCore(updateAction);\n } finally {\n this.isUpdating.set(false);\n }\n }\n\n isSsinError() {\n const errors = this.form.errors;\n return (\n errors !== null &&\n Object.keys(errors).length > 0 &&\n Object.keys(errors)[0].startsWith('niss')\n );\n }\n\n override validator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n if (this.isUpdating()) {\n return null;\n }\n\n const value = control.value;\n\n // Verify if error is undefined, null or empty\n if (!value || typeof value !== 'string') {\n console.debug('Invalid NISS value: ' + value);\n return null;\n } else {\n console.debug('Valid NISS value: ' + value);\n }\n\n const cleanValue = value.toString().trim();\n if (!cleanValue) {\n return null;\n }\n\n const tempControl = new FormControl(cleanValue);\n const nissValidator = OnemrvaValidators.niss();\n\n const result = nissValidator(tempControl);\n\n if (result) {\n this.setErrorValue(result);\n return result;\n }\n\n return null;\n };\n}\n\nexport const nissControlTester: RankedTester = rankWith(\n 10,\n // TODO : Why format =\"ssin\" is not reconized !!!!\n scopeEndsWith('ssin'),\n);\n","<mat-form-field>\n <mat-label>{{ label }}</mat-label>\n <input\n id=\"{{ id }}\"\n matInput\n [formControl]=\"form\"\n (input)=\"onChange($event)\"\n [mask]=\"nissMask\"\n />\n</mat-form-field>\n\n@if (isSsinError()) {\n <mat-error>{{ 'error.ssin' | translate }}</mat-error>\n}\n","import { Component } from '@angular/core';\nimport {\n AbstractControl,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { OnemrvaMatInputPhoneComponent } from '@onemrvapublic/design-system/mat-input-phone';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport { RankedTester, rankWith, scopeEndsWith } from '@jsonforms/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-phone-renderer',\n standalone: true,\n imports: [\n TranslatePipe,\n CommonModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n OnemrvaMatInputPhoneComponent,\n FormsModule,\n MatInputModule,\n TranslatePipe,\n ],\n templateUrl: './phone-renderer.component.html',\n})\nexport class PhoneRendererComponent extends JsonFormsControl {\n override ngOnInit(): void {\n super.ngOnInit();\n this.form.setValue(this.data);\n this.form.setValidators([Validators.required, this.validator]);\n }\n\n override getEventValue = (event: any) => {\n return event?.target?.value;\n };\n\n override validator: ValidatorFn = (\n control: AbstractControl,\n ): ValidationErrors | null => {\n const value: unknown = control.value;\n if (value === null || value === undefined || value === '') return null;\n if (typeof value !== 'string') return { phone: true };\n\n // Basic international phone validation: starts with '+' or digit, min 6 digits when spaces removed\n const normalized = value.replace(/\\s+/g, '');\n const isValid = /^\\+?\\d{6,}$/.test(normalized);\n return isValid ? null : { phone: true };\n };\n}\n\nexport const phoneControllerTester: RankedTester = rankWith(\n 8,\n scopeEndsWith('phone'),\n);\n","@if (!hidden) {\n <mat-form-field>\n <mat-label>Phone number</mat-label>\n\n <onemrva-mat-input-phone\n [formControl]=\"form\"\n placeholder=\"+32 475 12 23 34\"\n ></onemrva-mat-input-phone>\n\n <mat-hint>hint</mat-hint>\n @if (form.invalid) {\n <mat-error>\n {{ 'input.phone.invalid' | translate }}\n </mat-error>\n }\n </mat-form-field>\n}\n","import { Component } from '@angular/core';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport { isEnabled, UISchemaElement } from '@jsonforms/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\nimport { MatRadioButton, MatRadioGroup } from '@angular/material/radio';\nimport { MatError } from '@angular/material/form-field';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'app-radio-button-renderer',\n templateUrl: './radio-button.renderer.component.html',\n styleUrl: './radio-button.renderer.component.scss',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatError,\n JsonFormsAngularMaterialModule,\n MatRadioGroup,\n FormsModule,\n MatRadioButton,\n ],\n})\nexport class RadioButtonRendererComponent extends JsonFormsControl {\n options: string[] = [];\n\n override mapAdditionalProps() {\n if (this.scopedSchema && this.scopedSchema.enum) {\n this.options = this.scopedSchema.enum;\n }\n }\n\n get isControlDisable(): boolean {\n try {\n const state = this.jsonFormsService.getState();\n const ajv = state?.jsonforms?.core?.ajv;\n\n // May not call isEnabled if ajv is undefined\n if (!ajv) {\n return true;\n }\n\n return !isEnabled(\n this.uischema,\n state?.jsonforms?.core?.data ?? {},\n '',\n ajv,\n );\n } catch {\n return true;\n }\n }\n}\n\nexport const radioButtonTester = (uischema: UISchemaElement) => {\n if (uischema.type === 'Control' && uischema.options?.['format'] === 'radio') {\n return 11;\n }\n return -1;\n};\n","@if (!hidden) {\n <mat-radio-group\n [(ngModel)]=\"data\"\n (change)=\"onChange($event)\"\n disabled=\"{{ isControlDisable }}\"\n class=\"vertical-radio-group\"\n >\n <mat-radio-button *ngFor=\"let option of options\" [value]=\"option\">\n {{ uischema.i18n + '.' + option | translate }}\n </mat-radio-button>\n @if (error) {\n <mat-error> {{ error }}</mat-error>\n }\n </mat-radio-group>\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { JsonFormsAngularService, JsonFormsControl } from '@jsonforms/angular';\nimport {\n and,\n isControl,\n optionIs,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatLabel } from '@angular/material/form-field';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\nimport { TranslateService } from '@ngx-translate/core';\nimport { OnemrvaNissPipe } from '@onemrvapublic/design-system/shared';\n\n@Component({\n selector: 'app-readonly-control-renderer',\n templateUrl: './readonly-control-renderer.component.html',\n styleUrl: './readonly-control-renderer.component.scss',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n MatLabel,\n JsonFormsAngularMaterialModule,\n ],\n providers: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ReadonlyControlRendererComponent extends JsonFormsControl {\n private readonly translate = inject(TranslateService);\n private readonly onemrvaNissPipe = inject(OnemrvaNissPipe);\n\n override mapAdditionalProps() {\n if (this.needsTranslation()) {\n const translationKey = this.uischema.i18n + '.' + this.form.value;\n const translatedValue = this.translate.instant(translationKey);\n this.form.patchValue(translatedValue);\n }\n\n if (this.isNiss()) {\n const formattedNiss = this.onemrvaNissPipe.transform(this.form.value);\n this.form.patchValue(formattedNiss);\n }\n\n if (this.isIban()) {\n const formattedIban = this.formatIban(this.form.value);\n this.form.patchValue(formattedIban);\n }\n\n // if (this.isDate()) {\n // const formattedDate = moment(this.form.value).format('DD/MM/YYYY');\n // this.form.patchValue(formattedDate);\n // }\n }\n\n private formatIban(iban: string): string {\n const cleanIban = iban.replace(/\\s+/g, '');\n return cleanIban.replace(/(.{4})/g, '$1 ').trim();\n }\n\n private hasValueAndSchema(): boolean {\n return !!this.form.value && !!this.scopedSchema;\n }\n\n private isIban(): boolean {\n return (\n this.hasValueAndSchema() &&\n !!this.uischema.scope &&\n this.uischema.scope.endsWith('/iban')\n );\n }\n\n private isDate(): boolean {\n return this.hasValueAndSchema() && this.scopedSchema.format === 'date';\n }\n\n private isNiss(): boolean {\n return (\n this.hasValueAndSchema() &&\n !!this.uischema.scope &&\n this.uischema.scope.endsWith('/ssin')\n );\n }\n\n private needsTranslation(): boolean {\n const isEnum = this.hasValueAndSchema() && !!this.scopedSchema.enum;\n const isBooleanType =\n this.scopedSchema !== undefined &&\n this.scopedSchema.type?.[0] === 'boolean';\n return isEnum || isBooleanType;\n }\n}\n\nexport const readonlyControlTester: RankedTester = rankWith(\n 11,\n and(isControl, optionIs('readonly', true)),\n);\n","<div class=\"summary-grid\">\n <mat-label class=\"column1\">{{ label }}</mat-label>\n <input class=\"column2 mat-typography\" [id]=\"id\" [formControl]=\"form\" />\n</div>\n","import { Component, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { JsonFormsControl } from '@jsonforms/angular';\nimport {\n ControlProps,\n isEnumControl,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatOption } from '@angular/material/core';\nimport { MatSelect } from '@angular/material/select';\nimport { JsonFormsAngularMaterialModule } from '@jsonforms/angular-material';\n\n@Component({\n selector: 'app-enum-renderer',\n templateUrl: './select-renderer.component.html',\n styleUrl: './select-renderer.component.scss',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatFormField,\n MatLabel,\n MatOption,\n MatSelect,\n JsonFormsAngularMaterialModule,\n ],\n})\nexport class EnumRendererComponent extends JsonFormsControl {\n options = signal<string[]>([]);\n\n override mapAdditionalProps(props: ControlProps) {\n this.options.set(this.scopedSchema?.enum || []);\n super.mapAdditionalProps(props);\n }\n}\n\nexport const enumControlTester: RankedTester = rankWith(10, isEnumControl);\n","<mat-form-field appearance=\"outline\">\n <mat-label>{{ label }}</mat-label>\n <mat-select\n [(value)]=\"data\"\n (selectionChange)=\"onChange($event)\"\n [formControl]=\"form\"\n >\n @for (value of options(); track value) {\n <mat-option [value]=\"value\">\n {{ uischema.i18n + '.' + value | translate }}\n </mat-option>\n }\n </mat-select>\n</mat-form-field>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i5","i3"],"mappings":"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"}