diff --git a/libs/oms/feature/return-process/eslint.config.mjs b/libs/oms/feature/return-process/eslint.config.mjs index 7323f5897..5b279e694 100644 --- a/libs/oms/feature/return-process/eslint.config.mjs +++ b/libs/oms/feature/return-process/eslint.config.mjs @@ -12,7 +12,7 @@ export default [ 'error', { type: 'attribute', - prefix: 'lib', + prefix: 'oms-feature', style: 'camelCase', }, ], @@ -20,7 +20,7 @@ export default [ 'error', { type: 'element', - prefix: 'lib', + prefix: 'oms-feature', style: 'kebab-case', }, ], diff --git a/libs/oms/feature/return-process/src/lib/return-process-feature.component.html b/libs/oms/feature/return-process/src/lib/return-process-feature.component.html index 64e281835..8de4c17ed 100644 --- a/libs/oms/feature/return-process/src/lib/return-process-feature.component.html +++ b/libs/oms/feature/return-process/src/lib/return-process-feature.component.html @@ -16,6 +16,8 @@ @if (returnProcesses(); as processes) { @for (process of processes; track process.id) { - + } } diff --git a/libs/oms/feature/return-process/src/lib/return-process-feature.component.ts b/libs/oms/feature/return-process/src/lib/return-process-feature.component.ts index 151f83dc0..160b9b9a8 100644 --- a/libs/oms/feature/return-process/src/lib/return-process-feature.component.ts +++ b/libs/oms/feature/return-process/src/lib/return-process-feature.component.ts @@ -1,4 +1,9 @@ -import { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + computed, + inject, +} from '@angular/core'; import { ButtonComponent } from '@isa/ui/buttons'; import { NgIconComponent, provideIcons } from '@ng-icons/core'; import { isaActionChevronLeft } from '@isa/icons'; @@ -8,7 +13,7 @@ import { ReturnProcessItemComponent } from './return-process-item/return-process import { Location } from '@angular/common'; @Component({ - selector: 'lib-return-process-feature', + selector: 'oms-feature-return-process-feature', templateUrl: './return-process-feature.component.html', styleUrls: ['./return-process-feature.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/oms/feature/return-process/src/lib/return-process-item/return-process-item.component.html b/libs/oms/feature/return-process/src/lib/return-process-item/return-process-item.component.html index 2fc25b2ec..18be7daf5 100644 --- a/libs/oms/feature/return-process/src/lib/return-process-item/return-process-item.component.html +++ b/libs/oms/feature/return-process/src/lib/return-process-item/return-process-item.component.html @@ -4,7 +4,10 @@

Rückgabe informationen

@if (progress(); as progress) { - + }
-
+
{{ product.contributors }}
-
+
{{ product.name }}
@@ -32,19 +39,23 @@
- + >
@switch (eligible.state) { @case ('eligible') { -
+
Artikel bereit für Rückgabe
} @case ('not-eligible') { -
+
{{ eligible.reason }}
diff --git a/libs/oms/feature/return-process/src/lib/return-process-item/return-process-item.component.ts b/libs/oms/feature/return-process/src/lib/return-process-item/return-process-item.component.ts index 7e6dfa0d9..956f1ac70 100644 --- a/libs/oms/feature/return-process/src/lib/return-process-item/return-process-item.component.ts +++ b/libs/oms/feature/return-process/src/lib/return-process-item/return-process-item.component.ts @@ -1,14 +1,24 @@ -import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + computed, + inject, + input, +} from '@angular/core'; import { ProductImageDirective } from '@isa/shared/product-image'; import { ReturnProcessService, ReturnProcessStore } from '@isa/oms/data-access'; import { NgIconComponent, provideIcons } from '@ng-icons/core'; -import { ProductFormatIconGroup, isaActionCheck, isaActionClose } from '@isa/icons'; +import { + ProductFormatIconGroup, + isaActionCheck, + isaActionClose, +} from '@isa/icons'; import { LowerCasePipe } from '@angular/common'; import { ReturnProcessQuestionsComponent } from '../return-process-questions/return-process-questions.component'; import { ProgressBarComponent } from '@isa/ui/progress-bar'; @Component({ - selector: 'lib-return-process-item', + selector: 'oms-feature-return-process-item', templateUrl: './return-process-item.component.html', styleUrls: ['./return-process-item.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, @@ -20,7 +30,9 @@ import { ProgressBarComponent } from '@isa/ui/progress-bar'; ReturnProcessQuestionsComponent, ProgressBarComponent, ], - providers: [provideIcons({ ...ProductFormatIconGroup, isaActionCheck, isaActionClose })], + providers: [ + provideIcons({ ...ProductFormatIconGroup, isaActionCheck, isaActionClose }), + ], }) export class ReturnProcessItemComponent { #returnProcessService = inject(ReturnProcessService); @@ -33,7 +45,9 @@ export class ReturnProcessItemComponent { }); progress = computed(() => { - return this.#returnProcessService.returnProcessQuestionsProgress(this.returnProcess()); + return this.#returnProcessService.returnProcessQuestionsProgress( + this.returnProcess(), + ); }); eligibleForReturn = computed(() => { diff --git a/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-product-question/return-process-product-question.component.ts b/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-product-question/return-process-product-question.component.ts index f5a8bfcdc..162db144e 100644 --- a/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-product-question/return-process-product-question.component.ts +++ b/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-product-question/return-process-product-question.component.ts @@ -1,4 +1,11 @@ -import { ChangeDetectionStrategy, Component, effect, inject, input, signal } from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + effect, + inject, + input, + signal, +} from '@angular/core'; import { AbstractControl, FormControl, @@ -7,16 +14,25 @@ import { ValidatorFn, Validators, } from '@angular/forms'; -import { Product, ReturnProcessProductQuestion, ReturnProcessStore } from '@isa/oms/data-access'; +import { + Product, + ReturnProcessProductQuestion, + ReturnProcessStore, +} from '@isa/oms/data-access'; import { TextButtonComponent } from '@isa/ui/buttons'; -import { InputControlDirective, TextFieldComponent } from '@isa/ui/input-controls'; +import { + InputControlDirective, + TextFieldComponent, +} from '@isa/ui/input-controls'; import { rxMethod } from '@ngrx/signals/rxjs-interop'; import { filter, pipe, switchMap, tap } from 'rxjs'; import { CatalougeSearchService } from '@isa/catalogue/data-access'; import { tapResponse } from '@ngrx/operators'; import { ProductImageDirective } from '@isa/shared/product-image'; -const eanValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => { +const eanValidator: ValidatorFn = ( + control: AbstractControl, +): ValidationErrors | null => { const value = control.value; if (value && !/^[0-9]{13}$/.test(value)) { return { invalidEan: true }; @@ -25,7 +41,7 @@ const eanValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | }; @Component({ - selector: 'lib-return-process-product-question', + selector: 'oms-feature-return-process-product-question', templateUrl: './return-process-product-question.component.html', styleUrls: ['./return-process-product-question.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, @@ -53,9 +69,8 @@ export class ReturnProcessProductQuestionComponent { constructor() { effect(() => { - const product = this.#returnProcessStore.entityMap()[this.processId()]?.answers[ - this.question().key - ] as Product; + const product = this.#returnProcessStore.entityMap()[this.processId()] + ?.answers[this.question().key] as Product; if (product) { this.control.setValue(product.ean); diff --git a/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-questions.component.html b/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-questions.component.html index 8c120d3c2..dbbcd2f65 100644 --- a/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-questions.component.html +++ b/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-questions.component.html @@ -2,7 +2,9 @@
-
Um welches Produkt handelt es sich?
+
+ Um welches Produkt handelt es sich? +
@switch (question.type) { @case ('select') { - + > } @case ('product') { - + > } @default { {{ question | json }} diff --git a/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-questions.component.ts b/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-questions.component.ts index ffd9263db..e3ef7cf7b 100644 --- a/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-questions.component.ts +++ b/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-questions.component.ts @@ -1,5 +1,11 @@ import { JsonPipe, KeyValue } from '@angular/common'; -import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + computed, + inject, + input, +} from '@angular/core'; import { ReturnProcess, ReturnProcessQuestion, @@ -8,10 +14,13 @@ import { } from '@isa/oms/data-access'; import { ReturnProcessSelectQuestionComponent } from './return-process-select-question/return-process-select-question.component'; import { ReturnProcessProductQuestionComponent } from './return-process-product-question/return-process-product-question.component'; -import { DropdownButtonComponent, DropdownOptionComponent } from '@isa/ui/input-controls'; +import { + DropdownButtonComponent, + DropdownOptionComponent, +} from '@isa/ui/input-controls'; @Component({ - selector: 'lib-return-process-questions', + selector: 'oms-feature-return-process-questions', templateUrl: './return-process-questions.component.html', styleUrls: ['./return-process-questions.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, @@ -42,7 +51,10 @@ export class ReturnProcessQuestionsComponent { // Provide an empty array fallback return []; } - return this.#returnProcessService.activeReturnProcessQuestions(currentProcess) ?? []; + return ( + this.#returnProcessService.activeReturnProcessQuestions(currentProcess) ?? + [] + ); }); // Also strongly type if `availableCategories` is an array of strings @@ -51,7 +63,10 @@ export class ReturnProcessQuestionsComponent { }); setProductCategory(category: string | undefined) { - this.#returnProcessStore.setProductCategory(this.returnProcessId(), category); + this.#returnProcessStore.setProductCategory( + this.returnProcessId(), + category, + ); } productCategoryDropdown = computed(() => { @@ -59,7 +74,10 @@ export class ReturnProcessQuestionsComponent { if (!currentProcess) { return undefined; } - return currentProcess.productCategory || currentProcess.receiptItem.features?.['category']; + return ( + currentProcess.productCategory || + currentProcess.receiptItem.features?.['category'] + ); }); // Return false or display a fallback UI if no returnProcess is found diff --git a/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-select-question/return-process-select-question.component.ts b/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-select-question/return-process-select-question.component.ts index f606e4cf8..55caa2047 100644 --- a/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-select-question/return-process-select-question.component.ts +++ b/libs/oms/feature/return-process/src/lib/return-process-questions/return-process-select-question/return-process-select-question.component.ts @@ -1,11 +1,20 @@ -import { ChangeDetectionStrategy, Component, effect, inject, input } from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + effect, + inject, + input, +} from '@angular/core'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { FormControl, ReactiveFormsModule, Validators } from '@angular/forms'; -import { ReturnProcessSelectQuestion, ReturnProcessStore } from '@isa/oms/data-access'; +import { + ReturnProcessSelectQuestion, + ReturnProcessStore, +} from '@isa/oms/data-access'; import { ChipsComponent, ChipOptionComponent } from '@isa/ui/input-controls'; @Component({ - selector: 'lib-return-process-select-question', + selector: 'oms-feature-return-process-select-question', templateUrl: './return-process-select-question.component.html', styleUrls: ['./return-process-select-question.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, @@ -19,20 +28,31 @@ export class ReturnProcessSelectQuestionComponent { question = input.required(); - control = new FormControl(undefined, [Validators.required]); + control = new FormControl(undefined, [ + Validators.required, + ]); constructor() { this.control.valueChanges.pipe(takeUntilDestroyed()).subscribe((value) => { if (this.control.valid) { - this.#returnProcessStore.setAnswer(this.processId(), this.question().key, value); + this.#returnProcessStore.setAnswer( + this.processId(), + this.question().key, + value, + ); } else { - this.#returnProcessStore.removeAnswer(this.processId(), this.question().key); + this.#returnProcessStore.removeAnswer( + this.processId(), + this.question().key, + ); } }); effect(() => { const value = - this.#returnProcessStore.entityMap()[this.processId()]?.answers[this.question().key]; + this.#returnProcessStore.entityMap()[this.processId()]?.answers[ + this.question().key + ]; if (value !== this.control.value) { this.control.setValue(value as string); }