Merged PR 1919: feat(remission): add impediment management and UI enhancements for remission...

feat(remission): add impediment management and UI enhancements for remission list

Implement comprehensive impediment handling for return items and suggestions
with enhanced user interface components and improved data access layer.

Key additions:
- Add impediment update schema and validation for return items
- Implement RemissionReturnReceiptService with full CRUD operations
- Create RemissionListItemComponent with actions and selection capabilities
- Add ProductInfoComponent with responsive layout and labeling
- Enhance UI Dialog system with improved injection patterns and testing
- Add comprehensive test coverage for all new components and services
- Implement proper data attributes for E2E testing support

Technical improvements:
- Follow SOLID principles with clear separation of concerns
- Use OnPush change detection strategy for optimal performance
- Implement proper TypeScript typing with Zod schema validation
- Add comprehensive JSDoc documentation for all public APIs
- Use modern Angular signals and computed properties for state management

Refs: #5275, #5038
This commit is contained in:
Nino Righi
2025-08-14 14:05:01 +00:00
committed by Andreas Schickinger
parent 0740273dbc
commit 514715589b
29 changed files with 832 additions and 116 deletions

View File

@@ -1,22 +1,29 @@
import { argsToTemplate, type Meta, type StoryObj } from '@storybook/angular';
import { LabelAppearance, LabelComponent } from '@isa/ui/label';
import { Labeltype, LabelPriority, LabelComponent } from '@isa/ui/label';
type UiLabelInputs = {
appearance: LabelAppearance;
type: Labeltype;
priority: LabelPriority;
};
const meta: Meta<UiLabelInputs> = {
component: LabelComponent,
title: 'ui/label/Label',
argTypes: {
appearance: {
type: {
control: { type: 'select' },
options: Object.values(LabelAppearance),
description: 'Determines the label appearance',
options: Object.values(Labeltype),
description: 'Determines the label type',
},
priority: {
control: { type: 'select' },
options: Object.values(LabelPriority),
description: 'Determines the label priority',
},
},
args: {
appearance: 'primary',
type: 'tag',
priority: 'high',
},
render: (args) => ({
props: args,