Merged PR 1904: feat(utils-ean-validation, remission-list): add EAN validation library and im...

feat(utils-ean-validation, remission-list): add EAN validation library and implement exact search

Create new EAN validation utility library with validator function and isEan helper.
Implement exact search functionality for remission lists that bypasses filters
when scanning EAN codes or performing exact searches.

Changes:
- Add new utils/ean-validation library with EAN regex validation
- Export eanValidator for Angular reactive forms integration
- Export isEan utility function for EAN validation checks
- Configure library with Vitest for testing
- Update remission list resource to support exact search mode
- Clear filters and orderBy when performing EAN-based searches
- Add data attributes to product info component for E2E testing

Ref: #5128
This commit is contained in:
Nino Righi
2025-08-01 13:22:41 +00:00
committed by Patrick Brix
parent d7d535c10d
commit 14a5a67a1e
19 changed files with 34964 additions and 34729 deletions

View File

@@ -8,14 +8,7 @@ import {
signal,
viewChild,
} from '@angular/core';
import {
AbstractControl,
FormControl,
ReactiveFormsModule,
ValidationErrors,
ValidatorFn,
Validators,
} from '@angular/forms';
import { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';
import {
Product,
ReturnProcessProductQuestion,
@@ -39,16 +32,7 @@ import { isaActionScanner } from '@isa/icons';
import { ScannerButtonComponent } from '@isa/shared/scanner';
import { ProductRouterLinkDirective } from '@isa/shared/product-router-link';
import { toSignal } from '@angular/core/rxjs-interop';
const eanValidator: ValidatorFn = (
control: AbstractControl,
): ValidationErrors | null => {
const value = control.value;
if (value && !/^[0-9]{13}$/.test(value)) {
return { invalidEan: true };
}
return null;
};
import { eanValidator } from '@isa/utils/ean-validation';
@Component({
selector: 'oms-feature-return-process-product-question',