- Introduced `orders-draft-count-refresh.spec.js` for testing `Orders` navigation hooks on customer changes and order deletions.
- Enhanced `use-draft-transaction-customer.spec.js` with tests for clearing cached fallback customers.
- Updated POS mobile components with accessibility labels and localization for image viewer and customer suggestion buttons.
- Added support for `vehicleCustomerSuggestionsGet` handling in e2e mocks and tests.
- Introduced `repairText` and `containsSuspiciousEncoding` utilities for handling corrupted text encodings.
- Added unit tests (`encoding-repair.spec.js`) to validate encoding repair and encoding marker detection.
- Integrated encoding check into unit test workflows (`text:check-encoding` and `text:fix-encoding` scripts).
- Replaced corrupted strings across multiple components and locales with proper UTF-8 encodings.
- Updated `PayWithStripeButton` to handle setup requirements and improved error state handling.
- Enhanced POS mobile popup completion flow with added callback support and fallback actions.
- Introduced booking safety seal and improved step navigation logic.
- Added new e2e tests for booking confirmation, order completion, and error scenarios.
- Adjusted POS e2e and visual tests for updated workflows and UI changes.
- Refactored POS component logic for consistency and improved readability.
- Improved error state management with `normalizeErrorState` and `clearErrorState` utilities.
- Enhanced Stripe payment flow with clear status messaging and support for terminal setup requirements.
- Updated POS component templates (`PosDepartmentStep3.vue`, `PayWithStripeButton.vue`) for better error messages and UX.
- Added `pos-step-4` navigation and tests in e2e flows.
- Introduced utility `toPositiveInteger` for robust numeric validation in bookings.
- Introduced `mobileOrderCompletion.js` for mobile order metadata handling with safety seal syncing, metadata persistence, and booking linking utilities.
- Added tests for Subuser navigation menu (`navigation-menu-items-user-subusers.spec.js`) to validate links and permission gating.
- Created unit and end-to-end tests for Subuser grant permissions and management, including permission nodes and invites (`subuser-grant-permission-nodes.spec.js`, `subuser-management.spec.ts`).
- Implemented `SubuserCompleteRegistrationPage.vue` with validation, token handling, and registration flow for Subuser setup.
- Enhanced Playwright e2e tests for Subuser features (`subuserCompleteRegistration.spec.ts`).
- Replaced repetitive department module URL logic with `buildDepartmentModulePath` utility in `DepartmentModulesDisplay.vue`.
- Enhanced layouts and responsive behavior across components, including `PosDepartmentStep1MobileTransactionHistory.vue` and `DepartmentDailyReport.vue`.
- Removed unused `SuperuserInvoicingLocalStore.vue` and refactored to `SuperuserInvoicingLocalStore.ts`.
- Updated media query handling and card layout adjustments in `DepartmentDailyReport.vue`.
- Added new Playwright configurations (`playwright.prod.config.ts` and `playwright.live.config.ts`) for e2e release workflows.
- Extended e2e and unit test coverage for mobile POS and department modules.
- Introduced employee fixtures in `mobilePos.js` for testing workflows involving employee data.
- Enhanced `PosDepartmentStep1MobileCustomerNotes.vue` with translated labels and data-test attributes.
- Added e2e tests for customer notes popup and translated label validation.
- Improved alignment and responsiveness for `PaginationDisplayGeneralSearchReload.vue` and related e2e tests.
- Updated button logic and styles in `GenericButton.vue` and other mobile POS components for consistent UI behavior.
- Implemented `departmentDailyReportComplaintCustomers.js` module for handling customer complaint data, including search, normalization, and API integration.
- Added `EdgeGatewayTerminal.vue` for root shell access with session approval, dynamic status handling, and user feedback.
- Developed `mobilePos.js` for simulating mobile POS fixtures and workflows in e2e tests.
- Introduced relevant e2e and unit tests to ensure functionality and error handling across modules.
- Introduced e2e test for "Change Invoice Collection" in `change-invoice-collection.spec.ts`.
- Added unit tests for `CollectedOrderInvoiceOverview.vue` including edit flow for `closed_at`.
- Implemented tests for queue reliability, state handling, and customer actions:
- `CollectedOrderInvoicesQueueHistory.vue`: polling, error handling, richer diagnostics, and retry logic.
- `InvoicingBillingPeriod` views: refresh and queue state handling.
- Enhanced test coverage for Stripe queue functionality and related actions.
- Remove `playwright.config.js` to clean up configuration.
- Add new E2E test suites (`admin-pos-orders`, `admin-module-goals`, `admin-module-pos-mobile-order-flow`) to structure Admin module tests.
- Introduce reusable authentication and data seeding utilities in `fixtures` for streamlined test flows and maintainability.
- Add `originMigration.js` for handling allowed origins, standalone contexts, and redirect routes.
- Create `OutdatedGateway.vue` and `OutdatedInstallation.vue` error views with timer-based redirection and user instructions.
- Update router to include `/outdated-installation` and `/outdated-gateway` paths.
- Implement unit tests for migration utility methods and route guards.
- Remove debug `console.log` statements across multiple components.
- Enhance `useSelfServeLogic.js` with `setSummaryVisibleQuestions` for streamlined question visibility and ordering updates.
- Update logic to retain preview questions when summary data is unavailable.
- Add unit test to validate fallback behavior and preview question handling.
- Prevent duplicate POS orders by introducing `isCreatingOrder` flag in `POSDepartmentProcess.vue`.
- Adjust `PosDepartmentStepMobileButtonNextStep.vue` to reflect button loading state during order creation.
- Replaced hardcoded text with dynamic translations using `useI18n` or global `i18n` in multiple components and dashboards.
- Localized buttons, placeholders, labels, table headers, error messages, and object metadata, enhancing multilingual support.
- Improved maintainability by introducing and centralizing new translation keys.
- Introduced `isDark` prop in `PosDepartmentStepMobileButtonNextStep` for dynamic dark mode styling.
- Added `blurAmount` and `smoothBlur` props to `PosDepartmentStepMobileFixedBottomControl` for customizable blur effects.
- Updated `PosDepartmentStepMobile2.vue` to utilize the new `isDark` prop for styling.
- Introduced `isClickCancelled` to prevent overlapping click and long press events.
- Added `cancelOnClick()` and `onLongPress()` methods for improved button interaction handling.
- Updated `LongPressListener` integration to trigger long press actions.
- Wrapped `PosDepartmentStepMobileButtonNextStep` in `LongPressListener` for custom interactions.
- Enhanced `LongPressListener.vue` with pointer leave handling, dynamic styles, and property watching.
- Updated button layout in `PosDepartmentStepMobile1.vue` to enhance responsiveness.
- Added error messaging for failed transactions and unknown errors in `SessionUser.ObjectsGlobal.vue`.
- Enhanced transaction handling with error validation and recovery logic in `PosDepartmentStep1MobileTransactionHistory.vue`.
- Introduced `awaitBookingCompletion` utility for booking wait states in `PosDepartmentStepMobileButtonNextStep.vue`.
- Updated transaction history visuals to display error states and warnings, including refined badge styling in `PosDepartmentStepMobileAttachments.vue`.
- Improved metadata management by adding `loadingState` and associated logic in `PosDepartmentStepMobileFlow.vue`.
- Adjusted popup visuals and actions with updated styles and button configurations.
- Introduced `handheld_pending_order` and `confirmation_needed` translations in `SessionUser.ObjectsGlobal.vue`.
- Added handheld status indicator and confirmation logic in `PosDepartmentStepMobileTransactionHistory.vue` and `PosDepartmentStepMobileButtonNextStep.vue`.
- Enhanced `nextStep` and `createOrder` functions across components to handle mobile-specific order creation.
- Updated order table visuals and logic in `ordersTable.vue` to display handheld status with warnings and confirmation prompts.
- Added `toWordsWithTime` utility for date formatting in `SessionUser.vue`.
- Improved transaction history view in `PosDepartmentStep1MobileTransactionHistory.vue` with customer data retrieval, periodic refresh, and localized messages.
- Updated header transparency logic using `isAnyActive` view state in `PosDepartmentStepMobileFlow.vue`.
- Refined Danish translations across multiple components.
- Adjusted `reference` handling in `PosDepartmentStepMobileButtonNextStep.vue` for vehicle-based defaults.
- Implemented transaction history management, including storage, retrieval, clearing, and auto-cleanup mechanisms in `PosDepartmentStepMobileFlow.vue`.
- Added `PosDepartmentStep1MobileTransactionHistory.vue` for viewing past transactions.
- Updated `PosDepartmentStepMobileAttachments.vue` to display transaction count and provide quick access to history.
- Enhanced flow reset functionality to optionally clear transaction history with `resetPos` changes.
- Updated Danish translations for prompts, titles, and labels in `LoginQR.vue`, `ScannerInstructions`, and other UI elements.
- Added `PosDepartmentStepMobilePopupAddProductNote.vue` for managing product notes via popups.
- Updated `PosProduct` to include optional `notes` field in product definition.
- Modified additional item logic in `PosDepartmentStepMobileFlow.vue` to handle product notes and quantities.
- Enhanced `PosDepartmentStepMobile2AdditionalItems.vue` with dynamic toggles, improved layout, and localized labels.
- Updated translations and button labels for additional item actions.
- Adjusted `WhiteBoxCard.vue` to support `forceState` prop for toggle control.
- Introduced `PosDepartmentStepMobile2AdditionalItems.vue` for managing additional items in transactions.
- Added `additionalItemSelection` view to `PosDepartmentStepMobileFlow.vue` for enhanced item selection.
- Enhanced `PosDepartmentStepMobile2Products.vue` with support for displaying products as addons.
- Implemented reusable addon conversion logic for managing products as additional items.
- Updated `WhiteBoxCard.vue` to emit toggle events for improved interaction.
- Refactored button logic in `PosDepartmentStepMobileButtonNextStep.vue` to handle custom actions and disable states.
- Adjusted prop handling and event logic in multiple components for seamless addon integration.
- Added `PosDepartmentStepMobileAttachments.vue` and `PosDepartmentStepMobileAttachmentsDisplay.vue` for attachment handling in the mobile flow.
- Implemented attachment management logic, including adding, removing, and uploading attachments in `PosDepartmentStepMobileFlow.vue`.
- Updated button and popup labels with localized translations.
- Enhanced camera integration to include attachment support and added visual indicators for attachments in the UI.
- Introduced `PosDepartmentStepMobile2ProductRecommendations.vue` for displaying suggested products based on department and vehicle data.
- Updated button labels and prompts in `PosDepartmentStepMobileButtonNextStep.vue` with localized translations.
- Enhanced category handling in `PosDepartmentStepMobile2Categories.vue` to auto-select category `6` (if available).
- Removed debug values and unused imports across various components for cleaner implementation.
- Eliminated unused imports such as `GenericButton`, `SuccessCheck`, and `Swal` from multiple files.
- Removed redundant variable `status` in `RegistrationNumberSearchResult.vue`.
- Simplified component scripts by cleaning up unnecessary code and imports.
- Simplified reference resolution logic with a new `resolveReferenceFromSources` helper.
- Replaced error popups with `Swal`-based prompts for better user interaction.
- Enhanced `validateReferenceRequirements` to handle missing references more gracefully.
- Improved step flow by integrating `finalizeStep1` for streamlined completion.
- Introduced `PosDepartmentStepMobilePopupError.vue` for displaying error messages in popups.
- Added `PosActionButton` type and integrated reusable action buttons with popups.
- Enhanced popup system to support footer action buttons and improved context-based popup customization.
- Implemented reference validation logic in `PosDepartmentStepMobileButtonNextStep.vue` to ensure mandatory fields are completed before proceeding.
- Introduced `complete_booking` popup for handling booking completion, including form submission via `PosDepartmentStepMobilePopupCompleteBooking.vue`.
- Enhanced `PosPopup.vue` to support new `PopupComponentKey` for `complete_booking`.
- Updated `Orders.vue` with `booking_id` field and associated operations for enhanced booking management.
- Modified `PosDepartmentStepMobileButtonNextStep.vue` with logic to handle booking completion before order processing.
- Consolidated booking status checks using `isBookingCompleted` in `Bookings.vue`.
- Improved success alert behavior in `FormDisplay.vue` with a configurable visibility option.
- Added logic to dynamically update `reference` and `notes` fields in `PosDepartmentStepMobile2.vue` using metadata and order details.
- Introduced `updateReference` and `updateNotes` functions to streamline field updates.
- Enhanced button enablement handling in `PosDepartmentStepMobileButtonNextStep.vue` based on customer selection and registration number validation.
- Improved `ControlFieldInput` bindings for `reference` and `notes` fields to leverage metadata updates.
- Implement `onBeforeComplete` for order item validation and creation during transaction processing in `PosDepartmentStepMobile2.vue`.
- Introduce addon item handling and related item associations within transaction workflows.
- Enhance `PosDepartmentStepMobileButtonNextStep.vue` with `onBeforeStep` hook for pre-step validations and dynamic state updates.
- Add customizable popup header visibility with `hideHeader` prop in `WhiteBoxCard.vue`.
- Refactor popup rendering logic with enhanced dynamic content handling for completed transactions.
- Introduce `reset_all_values` method in `POSDepartmentProcess.vue` for resetting the POS state after transaction completion.
- Add `SuccessCheck.vue` icon for completed transaction UI updates.
- Introduce centralized popup logic in `PosDepartmentStepMobileFlow.vue`, supporting selectable and reusable popups (`select_customer`, `completed_transaction`).
- Add `PosPopup` and `PopupComponentKey` types for improved popup component integration.
- Implement new components: `PosDepartmentStepMobilePopupRenderer`, `PosDepartmentStepMobilePopupSelectCustomer`, and `PosDepartmentStepMobilePopupCompletedTransaction`.
- Update customer interaction in `PosDepartmentStepMobileButtonNextStep.vue` with popup triggers for step validation.
- Enhance customer targeting with dynamic search management in `ControlFieldInputSearchResults.vue`.
- Refactor `RegistrationNumberSearchResult.vue` to ensure consistent search type definitions.
- Adjust vehicle and product workflows for seamless popup integration and improved user interaction.
- Add metadata management (`notes`, `reference`, `customerId`, etc.) for improved state handling in `PosDepartmentStepMobileFlow.vue`.
- Update status handling with `VehicleStatusKey` across components for consistency.
- Replace static background icons with dynamic component resolution (`statusKeyToComponent`) for customer and registration status.
- Refactor and enhance `PosDepartmentStepMobileButtonNextStep.vue` with lifecycle functions for step and customer synchronization.
- Introduce persistence mechanism in `PosDepartmentStepMobileFlow.vue` for metadata and vehicle state via localStorage.
- Consolidate vehicle and customer state management logic for clarity and integration.
- Improve vehicle registration management with dynamic indexing and automatic selection in `PosDepartmentStepMobile1.vue`.
- Add computed properties and dynamic customer modification handling based on active vehicle index.
- Extend `RegistrationNumberSearchResult.vue` with conditional customer selection logic.
- Update `ScannerCamera.vue` for configurable image capture delays and lifecycle improvements.
- Refactor `PosDepartmentStepMobileFlow.vue` with additional utility methods for vehicle and camera handling.
- Integrate new logic in `PosDepartmentStepMobileButtonNextStep.vue` for improved step transitions.
- Introduce `PosDepartmentStepMobile2.vue` with conditional rendering for mobile POS workflows.
- Extend registration input fields with search results and improved handling in `PosDepartmentStepMobile1RegistrationNumberInputField.vue`.
- Update `PosDepartmentStep1MobileManualInput.vue` with the ability to manage registration numbers dynamically and handle null values.
- Add `RegistrationNumberSearchResult.vue` for displaying and selecting search results.
- Refactor icons, focus management, and UI styling for better responsiveness and user experience.