fix(checkout-data-access, checkout-reward-shopping-cart, checkout-reward-selection-dialog): Show Low Stock message inside Dialog, Adjusted Item Identifyer so that mergedItems inside reward-selection-dialog service works properly, Adjusted Error Message Logic and Quantity Select Logic based on purchasing Options for Abholung
Ref: #5523
fix(shared-filter, reward-catalog): Added Branch Filter Toggle to Reward HSC View, Adjusted Controls Panel Filter Styling and Layout to fix mobile issues and added spacing to order-by-toolbar
Refs: #5514, #5475
♻️ refactor(core-navigation): remove library and use TabService directly
Remove @isa/core/navigation library entirely as it was just a thin
wrapper around TabService.patchTabMetadata(). Consumers now use
TabService directly for scoped metadata operations.
Changes:
- Delete libs/core/navigation/ (~12 files, ~2900 LOC removed)
- Update 6 consumer components to use TabService directly
- Remove @isa/core/navigation path alias from tsconfig.base.json
- All operations now synchronous (removed async/await)
Migration pattern:
- preserveContext() → patchTabMetadata(tabId, { [scope]: data })
- restoreContext() → activatedTab()?.metadata?.[scope]
- restoreAndClearContext() → get + patchTabMetadata(tabId, { [scope]: null })
Refs #5502
fix(ui-layout, input-controls-dropdown, oms-return-details): prevent stale scroll events from closing dropdown on open
Delay scroll listener registration using requestAnimationFrame when
activating CloseOnScrollDirective. This prevents stale scroll events
still in the event queue from immediately triggering closeOnScroll
when opening the dropdown after scrolling.
Also adds conditional rendering for product format and publication date
in return-details-order-group-item component.
Refs: #5513
✨ feat(navigation): implement title management and enhance tab system
This commit introduces a comprehensive title management system and extends
the tab functionality with subtitle support, improving navigation clarity
and user experience across the application.
Key changes:
Title Management System:
- Add @isa/common/title-management library with dual approach:
- IsaTitleStrategy for route-based static titles
- usePageTitle() for component-based dynamic titles
- Implement TitleRegistryService for nested component hierarchies
- Automatic ISA prefix addition and TabService integration
- Comprehensive test coverage (1,158 lines of tests)
Tab System Enhancement:
- Add subtitle field to tab schema for additional context
- Update TabService API (addTab, patchTab) to support subtitles
- Extend Zod schemas with subtitle validation
- Update documentation with usage examples
Routing Modernization:
- Consolidate route guards using ActivateProcessIdWithConfigKeyGuard
- Replace 4+ specific guards with generic config-key-based approach
- Add title attributes to 100+ routes across all modules
- Remove deprecated ProcessIdGuard in favor of ActivateProcessIdGuard
Code Cleanup:
- Remove deprecated preview component and related routes
- Clean up unused imports and exports
- Update TypeScript path aliases
Dependencies:
- Update package.json and package-lock.json
- Add @isa/common/title-management to tsconfig path mappings
Refs: #5351, #5418, #5419, #5420
- Add --amend option with safety rules to commit command
- Add logging skill cross-references to angular-template and html-template
- Fix logging skill name from logging-helper to logging
- Add extended thinking triggers, context monitoring, and code investigation
rules to CLAUDE.md
feature(crm-data-access): Added check in customer resource if customerId has changed to prevent flickering in the view after Filter changes etc.
Ref: #5478
feature(checkout-reward, core-tabs): Added back button and configured it so it can accept optional route to navigate. Added orderNumber and orderDate to reward order confirmation
Ref: #5456
feature(ui-modal): add QR code display for URLs in dialog modals
Add automatic URL detection and QR code rendering in dialog modals:
- Parse dialog content to extract URLs (http/https)
- Display extracted URLs as QR codes using angularx-qrcode library
- Split content around URL to show text before and after the QR code
- Auto-detect URLs by default, with optional showUrlAsQrCode override
- Add comprehensive unit tests for URL parsing helpers
Ref: #5511
Customer Card Copy-to-Clipboard (#5508)
- Click on card number copies it to clipboard using Angular CDK Clipboard
- Shows success tooltip confirmation positioned on the right
- Tooltip auto-dismisses after 3 seconds
Card Stack Carousel Improvements (#5509)
- Fix card centering by using afterNextRender instead of AfterViewInit
- Add ResizeObserver to handle dynamic size changes
- Disable transforms until natural position is measured (prevents initial jump)
- Center single card in carousel view
Tooltip Enhancements
- Add success variant with green styling (isa-accent-green)
- Add position input (left | right | top | bottom)
- Add fade in/out CSS keyframes animations (150ms)
- Respect prefers-reduced-motion for accessibility
Related Tasks
- Closes#5508
- Refs #5509
feat(checkout): add branch selection to reward catalog
- Add new select-branch-dropdown library with BranchDropdownComponent
and SelectedBranchDropdownComponent for branch selection
- Extend DropdownButtonComponent with filter and option subcomponents
- Integrate branch selection into reward catalog page
- Add BranchesResource for fetching available branches
- Update CheckoutMetadataService with branch selection persistence
- Add comprehensive tests for dropdown components
Related work items: #5464
fix(shared-barcode, crm-customer-card): improve barcode rendering with transparent SVG background
Enhance barcode component flexibility by separating container and SVG
background colors. The SVG barcode now defaults to transparent background
while maintaining container background control, enabling better integration
with various card designs.
Changes:
- Add separate svgBackground input for SVG element (default: transparent)
- Keep background input for container styling (default: #ffffff)
- Add containerWidth and containerHeight inputs for flexible sizing
- Update customer card to remove explicit white background on barcode
- Add opacity styling for inactive customer cards
- Enhance test coverage for new background and sizing inputs
The separation of concerns allows the barcode to adapt to parent container
backgrounds while maintaining consistent rendering across different contexts.
Ref: #5498