Merge branch 'main' into next

This commit is contained in:
Erik Tiekstra
2021-11-18 12:30:21 +01:00
5 changed files with 17 additions and 22 deletions

View File

@@ -127,25 +127,18 @@
[afLabel]="activitiesFormArrayMetadata[i].name" [afLabel]="activitiesFormArrayMetadata[i].name"
></digi-ng-form-checkbox> ></digi-ng-form-checkbox>
<div class="periodisk-redovisning-form__activity-details" *ngIf="isSelected.currentValue"> <div class="periodisk-redovisning-form__activity-details" *ngIf="isSelected.currentValue">
<div class="periodisk-redovisning-form__activity-group"> <ui-input
<digi-form-input class="periodisk-redovisning-form__activity-hours"
class="periodisk-redovisning-form__activity-hours" formControlName="hours"
af-label="Antal timmar under perioden" uiType="number"
af-type="number" [uiMin]="0"
af-max="200" [uiMax]="200"
af-min="0" uiLabel="Antal timmar under perioden"
[afValidation]="activityHoursIsInvalid(activityFormGroup) ? 'error' : 'neutral'" [uiRequired]="true"
formControlName="hours" [uiAnnounceIfOptional]="true"
></digi-form-input> [uiInvalid]="activityHoursIsInvalid(activityFormGroup)"
<div aria-atomic="true" role="alert"> [uiValidationMessage]="activityFormGroup.errors?.hours"
<digi-form-validation-message ></ui-input>
*ngIf="activityHoursIsInvalid(activityFormGroup)"
af-variation="error"
>
{{activityFormGroup.errors.hours}}
</digi-form-validation-message>
</div>
</div>
<div class="periodisk-redovisning-form__activity-group"> <div class="periodisk-redovisning-form__activity-group">
<digi-ng-form-checkbox <digi-ng-form-checkbox

View File

@@ -2,7 +2,7 @@ export interface PeriodiskRedovisningFormActivity {
isSelected: boolean; isSelected: boolean;
performedRemotely: boolean; performedRemotely: boolean;
performedPhysically: boolean; performedPhysically: boolean;
hours: string; hours: number;
} }
export interface PeriodiskRedovisningFormData { export interface PeriodiskRedovisningFormData {

View File

@@ -7,6 +7,7 @@ import { ReactiveFormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { BackLinkModule } from '@msfa-shared/components/back-link/back-link.module'; import { BackLinkModule } from '@msfa-shared/components/back-link/back-link.module';
import { LayoutModule } from '@msfa-shared/components/layout/layout.module'; import { LayoutModule } from '@msfa-shared/components/layout/layout.module';
import { UiInputModule } from '@ui/input/input.module';
import { UiLoaderModule } from '@ui/loader/loader.module'; import { UiLoaderModule } from '@ui/loader/loader.module';
import { UiRadiobuttonGroupModule } from '@ui/radiobutton-group/radiobutton-group.module'; import { UiRadiobuttonGroupModule } from '@ui/radiobutton-group/radiobutton-group.module';
import { UiSkeletonModule } from '@ui/skeleton/skeleton.module'; import { UiSkeletonModule } from '@ui/skeleton/skeleton.module';
@@ -32,6 +33,7 @@ import { PeriodiskRedovisningFormService } from './periodisk-redovisning-form.se
DigiNgFormSelectModule, DigiNgFormSelectModule,
DigiNgFormCheckboxModule, DigiNgFormCheckboxModule,
UiRadiobuttonGroupModule, UiRadiobuttonGroupModule,
UiInputModule,
], ],
providers: [PeriodiskRedovisningFormService], providers: [PeriodiskRedovisningFormService],
exports: [PeriodiskRedovisningFormComponent], exports: [PeriodiskRedovisningFormComponent],

View File

@@ -47,7 +47,7 @@ export class PeriodiskRedovisningValidator {
}; };
} }
const isValidHours = hours?.length > 0 && Number.isInteger(+hours) && +hours >= 0 && +hours <= 200; const isValidHours = Number.isInteger(hours) && hours >= 0 && hours <= 200;
if (isSelected && !isValidHours) { if (isSelected && !isValidHours) {
errors = { errors = {

View File

@@ -75,7 +75,7 @@ export class InputComponent implements AfterViewInit, ControlValueAccessor, OnCh
} }
checkForChange(rawValue: string): void { checkForChange(rawValue: string): void {
const value = this.uiType === UiInputType.NUMBER ? +rawValue : rawValue; const value = this.uiType === UiInputType.NUMBER ? (rawValue !== '' ? +rawValue : null) : rawValue;
if (this._value !== value) { if (this._value !== value) {
if (this.onChange) { if (this.onChange) {
this.onChange(value); this.onChange(value);