- Simplified print dialog logic in `PrintInvoiceFromOrderItems.vue` using dynamic URL-based receipts and onload handling.
- Enhanced service worker caching configuration in `vite.config.js` with specific caching rules for assets, API responses, images, and HTML files.
- Updated `ViewportHeader.vue` with visibility toggle and responsiveness improvements.
- Adjusted camera capture delays in `PosDepartmentStepMobileFlow.vue` for better user experience.
- Refactored department order views to manage display states for print receipt mode.
- Introduced `NavigationMenuUpdates.vue` for update management.
- Added "Check for Updates" button to `MobileNavigation.vue`.
- Integrated version checking, changelog display, and cache-clearing utilities.
- Integrated build date, version, and commit hash generation in `vite.config.js`.
- Enhanced `MobileNavigation.vue` to display build metadata and development mode info.
- Added type definitions in `env.d.ts` for environment variables.
- Added SweetAlert error notifications for untrusted QR codes in `LoginQR.vue`.
- Updated `LoginForm.vue` to hide the QR code login button on desktop.
- Enhanced POS mobile flow in `PosDepartmentStepMobileFlow.vue` with sound feedback for successful scans.
- Implemented camera delay logic for improved capture management in `PosDepartmentStepMobile1.vue`.
- Removed unused element in `PWADownload.vue` and adjusted geolocation visibility in `PosDepartmentStepMobile1Location.vue`.
- Implemented QR code scanning and detection using `vue-qrcode-reader` in `LoginQR.vue`.
- Added token extraction and application logic for seamless login flow.
- Enhanced error handling for scanning issues and invalid QR codes.
- Updated `LoginForm.vue` to include a QR code login button.
- Added session handling updates with SweetAlert integration and improved error notifications.
- Bumped dependencies with `@vueuse/integrations` and `vue-qrcode-reader` support.
- Added geolocation integration to detect user's proximity to departments.
- Implemented `attemptAutoSelectDepartment` logic in `DefaultPage.vue` for mobile flow.
- Enhanced `locations` object in `PosDepartmentStepMobileFlow.vue` with timeout and distance calculation utilities.
- Updated mobile POS views to handle department redirection dynamically.
- Updated `PosLocation.vue` to use `Date` for `timestamp` and defined location structure.
- Added geolocation watcher in `PosDepartmentStepMobile1Location.vue` for real-time updates and manual triggers.
- Introduced centralized location management in `PosDepartmentStepMobileFlow.vue` with `locations` object and utility methods.
- Enhanced `NavigationMenuDepartment.vue` to integrate department distance calculation relative to the user's location.
- Introduced geolocation functionality in `PosDepartmentStepMobile1Location.vue` for latitude, longitude, and error reporting.
- Added `PosLocation` type in `PosLocation.vue` to define location data with coordinates.
- Updated `PosDepartmentStepMobile1.vue` to include location display component.
- Add `PosDepartmentStepMobileFixedBottomControl.vue` for consistent bottom control layout.
- Implement overflow control in `ViewportHeaderSettings.vue` with `isOverflowVisible`.
- Enhance `PosPopup.vue` with `defineComponent` and dynamic popup content.
- Add scroll prevention for mobile scanning views in `PosDepartmentStepMobile1.vue`.
- Improve registration number UI in `PosDepartmentStepMobile1RegistrationNumbers.vue`.
- Refactor service worker updates and PWA behavior in `main.js`.
- Update routing default path in `router.js`.
- Improve scanner UI in `ScannerOutline.vue` with responsive dimensions.
- Replace `export` with `const` declarations for internal functions and references.
- Introduce `type` imports for cleaner type separation and improved readability.
- Update explicit object structures with simplified reactivity handling.
- Modularize `reset`, `popups`, and transaction-related logic for better maintainability.
- Introduced "Suggested" category logic in `PosDepartmentStepMobile2Categories.vue` for displaying recommended options.
- Added `fetchSuggestedProducts` function in `PosDepartmentStepMobile2Products.vue` with API integration for vehicle-based product suggestions.
- Enhanced category selection watcher to handle suggested products dynamically.
- Updated `PosDepartmentStepMobile1RegistrationNumbers.vue` with improved styling and `vehicles` reference for registration flow.
- Introduced local state for search results to prevent UI "blinking" during updates.
- Added watcher on `isSearching` for smoother result application.
- Updated template bindings and conditions for improved search result rendering.
- Introduced `style` prop in `PosPopup.vue` for customizable CSS styling.
- Updated `PosDepartmentStepMobilePopupRenderer.vue` to apply dynamic styles to popup content.
- Enhanced `PosDepartmentStepMobileFlow.vue` with `style` object configuration for popups.
- Refactored `PosDepartmentStepMobilePopupSelectCustomer.vue` template for improved structure and readability.
- Introduced invoicing queue management with features to handle bulk invoice processing and progress tracking (`InvoicingBillingPeriodImportInvoiceQueue.vue`).
- Enhanced `ObjectsGlobal.vue` with additional language keys for new invoicing terms and functionalities.
- Updated `InvoicingBillingPeriodViewAll.vue` with new quick actions for invoicing, transaction validation, and queue integration.
- Added methods in `Orders.vue` to fetch multiple objects by IDs for improved batch processing.
- Improved UI/UX with loading indicators, success tags, and progress bar for queue status.
- Introduced new features including "Send as is," "Unlink," "Remove special arrangements," and "Reset prices to defaults" for collected order invoices.
- Updated `ObjectsGlobal.vue` with new language keys for additional economic terms.
- Added confirmation dialogs for dangerous actions with Swal integration.
- Refactored related functions in `CollectedOrderInvoices.vue` for extended API handling and dynamic payload updates.
- Enhanced UI actions and dropdown options for improved invoice management workflows.
- Introduce `PosCustomerSuggestion` type for customer suggestion handling in search results.
- Add dynamic customer suggestion rendering in `VehicleCustomerSuggestionsPos.vue` and integrate `onClickSuggestion` logic in `PosDepartmentStepMobilePopupSelectCustomer.vue`.
- Enhance `setValueUserInput` in `PosDepartmentStep1MobileManualInput.vue` for better registration number management and auto-selection.
- Update `PosSearchResult` type with `customerSuggestions` field for historical billing data.
- Refactor vehicle state and status handling for improved registration and customer selection workflows.
- Improve layout responsiveness in `VehicleCustomerSuggestionsPos.vue` with updated CSS classes.
- Simplify and modularize addon handling logic using reusable `mapAddonsWithQuantity` utility.
- Enhance readability and maintainability with streamlined conditional checks and flow.
- Improve logging for primary item transitions and addon merging.
- Add `PosCashier` type in `PosCashier.vue` and integrate optional `cashier` field in `PosOrderItem` for cashier details within orders.
- Extend `PosDepartmentStepMobile2.vue` with methods to fetch and handle last vehicle orders (`fetchLastOrder`, `fetchLastOrderItems`) and dynamic state updates for last orders.
- Implement watchers for `primaryItem` and `lastOrders` in `PosDepartmentStepMobileFlow.vue` to enhance order item and state handling logic.
- Update `PosDepartmentStepMobile2LastOrder.vue` to support custom date formatting using session utilities.
- Add helper functions and utilities for vehicle and order management, including `selectLastVehicleOrder` and enhanced addon handling.
- Introduce `lastOrder` prop in `PosDepartmentStepMobile2LastOrder.vue` for handling last vehicle orders.
- Add computed properties for dynamic label (`displayLabel`) and subtitle (`displaySubtitle`) updates based on `lastOrder`.
- Update `PosSearchResult` and `PosVehicle` types to include `lastOrderId` and `washSubscription` fields.
- Refactor `onAutomaticSelection` in `PosDepartmentStepMobile1.vue` to enhance vehicle selection logic with additional metadata.
- Introduce detailed properties for order items, including product details, notes, pricing, and timestamps.
- Add support for optional fields to accommodate dynamic order item customization.
- Introduce `PosOrder` type with detailed properties including IDs, timestamps, and order item associations.
- Add support for dynamic order customization with optional fields and item arrays.
- Introduce `lastVehicleOrders` for storing historical data of vehicle orders.
- Add methods `setLastVehicleOrder` and `getLastVehicleOrder` for managing vehicle order state.
- Implement `resetLastVehicleOrders` for clearing vehicle order history.
- Update reset functionality to include resetting last vehicle orders.
- Enhance persistence mechanism with last vehicle orders storage and restoration support.
- Add watchers for last vehicle orders to trigger state saving.
- 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.
- Add product selection event handling with `@addProduct` in `PosDepartmentStepMobile2Products.vue` and child components.
- Enhance `PosDepartmentStepMobile2Addons` with support for dynamic addon rendering.
- Adjust `vehicleSelection` default state in `PosDepartmentStepMobileFlow.vue`.
- Refactor button click functionality and product addition logic in `PosDepartmentStep2MobileVehicleSelection.vue`.
- 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.
- Add real-time frame capture, automatic vehicle lookup, and registration assignment in `PosDepartmentStepMobile1.vue`.
- Integrate `RegistrationNumberSearchResult.vue` for auto-selection and improved search handling.
- Extend `ScannerCamera.vue` with interval-based frame capture and lifecycle handling for camera mount/unmount.
- Improve active vehicle state management, indexing, and UI responsiveness for multi-vehicle workflows.
- Add computed properties and dynamic customer status handling for seamless integration of license plate recognition results.
- Introduce `OpenAI` module in `superUser` with configuration management (`Config.vue`, `OpenAI.vue`).
- Add `ConfigurationOpenAI.vue` for superuser dashboard, enabling settings management for OpenAI integration.
- Update `router.js` and superuser navigation for OpenAI configuration paths.
- Enhance `SuperUserDashboardConfigurationNavigation.vue` with OpenAI entry.
- Integrate general settings and API key handling in the OpenAI configuration UI.
- Introduce product and category-related components including `GenericTag.vue`, `PosDepartmentStepMobile2Categories.vue`, and `PosDepartmentStepMobile2Products.vue`.
- Enhance `PosDepartmentStepMobile2.vue` with vehicle selection, long-press functionality for primary products, and dynamic product rendering.
- Add `PosProduct` and `PosCategory` object types for structuring API calls and maintaining state.
- Refactor UI for consistent styling and streamlined user interaction with category-based product listing.
- 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.
- Introduce `BarcodeScanner.vue` and `VerifiedCustomer.vue` for improved visual elements in the POS module.
- Implement manual registration input flow in `PosDepartmentStepMobile1.vue` with `PosDepartmentStep1MobileManualInput.vue` for enhanced user flexibility.
- Add responsive button width adjustments in `GenericButton.vue` for consistent styling.
- Refine `ScannerCamera.vue` frame capture logic and improve header background integration with `ViewportHeaderSettings.vue`.
- Ensure dynamic background color via `Viewport.vue`.
- Enhance `ScannerCamera.vue` with `update:frame` event for real-time frame data emission.
- Add `parseImage` method in `PosDepartmentStepMobile1.vue` for image parsing and server-side license plate recognition API call.
- Improve video resolution, canvas handling, and frame capturing logic in `ScannerCamera.vue`.
- Update UI with fixed background styling, semi-transparent overlay, and improved scanner visibility.
- Refactor canvas dimensions to match video size dynamically and optimize frame rendering for better performance.
- Introduce `OcrSpace` module in `superUser` with configuration management (`Config.vue`).
- Add `ConfigurationOcrSpace.vue` for superuser dashboard, enabling settings management for OcrSpace integration.
- Update `router.js` and superuser navigation for OcrSpace configuration paths.
- Enhance `SuperUserDashboardConfigurationNavigation.vue` with OcrSpace entry.
- Integrate general settings and API key handling in the OcrSpace configuration UI.
- Adjust image range for focused testing on a single image.
- Add grayscale conversion to canvas for better OCR accuracy.
- Increase canvas resolution and styling for grid generation.
- Optimize combined canvas handling for license plate detection.
- Remove redundant console logs for cleaner debugging.
- Introduce `ReaderTest.vue` for handling canvas-based image processing and OCR integration.
- Add `ReaderReliabilityTest.vue` as a test page for reader reliability under department dashboards.
- Implement `LetterReader.vue` for real-time license plate recognition using `tesseract.js` and video feed.
- Enhance `ScannerCamera.vue` with improved frame capturing logic.
- Add `PosDepartmentStepMobile1.vue` for mobile-specific POS workflows with registration number inputs.
- Implement header transparency logic with `isTransparent` state in `ViewportHeaderSettings.vue`.
- Update `MobileHeader.vue` styling for better visual clarity using blur and transparency effects.
- Extend `PosDepartmentMVP.vue` with responsive design using `ViewportResponsiveWrapper`.
- Enhance `ScannerCamera.vue` and `ScannerOutline.vue` with surrounding blur effects for improved UI/UX focus during scanning.
- Introduce `DesktopHeader.vue` for improved navigation on larger screens.
- Add `Logout.vue` to handle user logout with redirection to login.
- Update `router.js` to include logout route.
- Enhance `NavigationMenuItemsAdmin.vue` with a "Sign out" menu option.
- Refactor `NavigationMenuItem.vue` to handle visibility based on item type.
- Update `LoginQR.vue` with new text for better user clarity.
- Introduce `NavigationMenuDepartment.vue` for selecting and switching between departments.
- Enhance `SessionUser.vue` with `selectDepartment` method for URL updates and access control.
- Update `NavigationMenuItemsAdmin.vue` with `type: 'department'` entries and improved department-specific routing.
- Refactor `NavigationItem.vue` with new `type` property for navigation flexibility.
- Integrate department selection into `MobileHeader.vue` for responsive usage.
- Extend `NavigationMenuItemsAdmin.vue` with new menu entries and permission-based visibility.
- Implement badge structure and default badge logic for `NavigationItem.vue`.
- Update `AdminLeftMenu.vue` permissions for better control.
- Add computed visibility and badge display logic in `NavigationMenuItem.vue`.
- Enhance app initialization in `App.vue` with `onMounted` lifecycle method.
- Introduce `NavigationMenuItemsAdmin.vue` and `NavigationMenuAdmin.vue` for admin-specific navigation.
- Improve computed logic in `NavigationMenuItems.vue` with `routeStartsWithAdmin` for better route handling.
- Wrap content in `Viewport` for improved layout in `DefaultPageWrapper.vue`.
- Update `FormDisplay.vue` to support multiple select fields.
- Adjust styling and slot behavior across various components for flexibility and responsiveness.
- Wrap `Login.vue` in `Viewport` for responsive design.
- Add external redirect logic to `Register.vue` and replace static content with `PageLoader`.
- Update `NavigationMenuItemsGuest.vue` with new menu options (`Opret bruger`, `Book vask med reference`).
- Introduce `NavigationMenuItems.vue` for managing navigation menu structure.
- Add new modular components for mobile navigation (`MobileNavigation`, `MobileHeader`) with expandable menu functionality.
- Incorporate `ViewportHeaderSettings.vue` to manage header state and actions.
- Implement guest-specific navigation with `NavigationMenuItemsGuest.vue` and `NavigationMenuGuest.vue`.
- Enhance `XLVaskPage.vue` by wrapping the dashboard in a responsive `Viewport`.
- Refactor header alignment and add toggle functionality for mobile navigation menus in `MobileHeader.vue`.
- Introduce `ScannerInstructions.vue` for user guidance during scanning.
- Add `GenericButton.vue` as a flexible button component with default, disabled, and white styles.
- Implement `ScannerCamera.vue` to handle camera activation and video frame capture.
- Update `LoginQR.vue` with scanner, instructions, and button integrations.
- Add `tesseract.js` dependency in `package.json` and `package-lock.json` for future OCR capabilities.
- Introduce `LoginQR.vue` with QR-based login layout.
- Add scanner outline components (`ScannerOutlineTopLeft`, `ScannerOutlineTopRight`, `ScannerOutlineBottomLeft`, `ScannerOutlineBottomRight`, and `ScannerOutlineLoader`) to enhance the QR scanning interface.
- Include reusable `ScannerOutline` for structured scanning visuals.
- Update `router.js` to add `/login/qr` route with guest middleware.
- Clean up imports in `App.vue` for consistency.
- Introduce reusable viewport components (`Viewport`, `ViewportTypes`, `ViewportResponsiveWrapper`) for responsive layouts.
- Add separate content components for mobile, tablet, and desktop (`MobileContent`, `TabletContent`, `DesktopContent`, `DefaultContent`).
- Implement `ViewportHeader` with `MobileHeader` for mobile navigation support.
- Replace `GuestDashboardPageWrapper` with `Viewport` in `PWADownload.vue` for better adaptability.
- Refine layout logic and improve maintainability across updated components.
- Integrate `vite-plugin-pwa` with automatic updates and manifest configuration for PWA support.
- Create `PWADownload.vue` component to guide users on installing the app.
- Add `/download` route in `router.js` for accessing the PWA download page.
- Improve responsive layout handling in `DefaultPageWrapper.vue` for better mobile adaptation.
- Update dependencies in `package.json` and `package-lock.json` to reflect PWA integration.
- Add `defineComponent` and `setup` to standardize component declarations across multiple components.
- Introduce `scheduleReload` in `XLVaskUsagePagination` for better date filter handling.
- Update `PaginationDisplayTemplateDate` logic to emit formatted date on selection with improved logging.
- Enhance type safety using `RouteLocationRaw` in `NavigationItem.vue`.
- Add empty `<template>` sections where necessary for consistency.
- Refine `PaginationDisplayIsSmall` with `defineComponent` and props for better adaptability.
- Introduce `regret` translation key in `ObjectsGlobal.vue`.
- Update logic in `XLVaskUsagePagination` to set filters for `date_from` and `date_to`.
- Adjust `isNotEqual` action in `XLVaskUsageOrdersTable` to toggle comparing state and use the new `regret` translation dynamically.
- Refine comments and UI labels for enhanced clarity.
- Integrate `InvoicingBillingPeriodInvoiceProgressBar` for improved visual feedback during invoicing processes.
- Implement reusable date selection components with `PaginationDisplayTemplateDate` and `PaginationDisplayTemplateDates` for enhanced flexibility in date filtering.
- Add `NavigationMenuSuperUser` to improve navigation structure for superuser dashboard.
- Refactor related components with helper methods for better maintainability.
- Include `vue-toast-notification` to provide dynamic notifications.
- Update translations and adjust UI components to align with new functionality.
- General fixes to maintain code modularity and reusability.
- Streamline access control logic in middleware files with new `hasToken` and `canAccessGuest` methods.
- Rework `DefaultPage` to dynamically redirect users based on hierarchical access levels.
- Improve guest user redirection by integrating query-based redirect paths.
- Enhance maintainability and reduce reliance on `localStorage` for session validation.
- Refactor `getPicture` method into a new `Piktogrammer.vue` module to improve reusability.
- Introduce `XLVaskUsagePagination` and `DepartmentPosSyncDuplicates` for enhanced pagination and duplicate management.
- Update `router.js` to include new routes for managing duplicates under POS sync.
- Clean up unused image imports in `SelectProductsFormPOS.vue`, utilizing the new picture module.
- General fixes and adjustments to improve modularity and maintainability.