From b39b458f4f928f2715fbc33ccff479930e46ae9b Mon Sep 17 00:00:00 2001 From: Jeppe Bundgaard Date: Mon, 13 Apr 2026 09:13:27 +0200 Subject: [PATCH] Add `.prettierrc.json` and refactor test files for improved formatting consistency: - Introduced `.prettierrc.json` to enforce consistent code formatting across the project. - Updated unit and e2e test files to address formatting issues, improve readability, and ensure alignment with the new Prettier configuration. --- .github/workflows/tests.yml | 19 + .prettierrc.json | 6 + package-lock.json | 142 +- package.json | 3 + .../department/pos/PosOrderItemsCurrent.vue | 12 +- .../pos/order/PosDesktopOrderWorkspace.vue | 23 +- .../pos/steps/PosDepartmentStep2.vue | 20 +- .../edgeGateway/EdgeGatewayTerminal.vue | 29 +- .../edgeGateway/EdgeGatewayWorkspace.vue | 43 +- src/components/shop/POSDepartmentProcess.vue | 76 +- src/composables/useEdgeGatewayTerminal.js | 423 +++--- src/services/edgeGateways.js | 28 + .../modules/Pos/posRouteState.js | 2 +- tests/e2e/admin-bookings-mobile.spec.ts | 15 +- tests/e2e/admin-daily-report.spec.ts | 238 ++-- tests/e2e/admin-department-visibility.spec.ts | 51 +- tests/e2e/admin-overview-mobile.spec.ts | 68 +- tests/e2e/admin-overview-night-washes.spec.ts | 84 +- tests/e2e/admin-pos-orders.spec.ts | 689 ++++----- tests/e2e/adminModuleGoals.spec.ts | 372 ++--- tests/e2e/change-invoice-collection.spec.ts | 4 +- tests/e2e/connectivityIssue.spec.ts | 46 +- tests/e2e/economic-queue-workflow.spec.js | 361 +++-- tests/e2e/edge-gateways.smoke.spec.js | 13 +- tests/e2e/example.spec.ts | 14 +- tests/e2e/fixtures/authHelpers.ts | 56 +- tests/e2e/fixtures/index.ts | 4 +- tests/e2e/fixtures/otp.ts | 8 +- tests/e2e/fixtures/testData.ts | 141 +- tests/e2e/invoice-distribution.smoke.spec.js | 27 +- .../invoice-transfer-queue-history.spec.js | 574 ++++---- tests/e2e/invoicing-period.smoke.spec.js | 162 +-- tests/e2e/passkeyAuth.spec.ts | 107 +- tests/e2e/pos-customer-rules.spec.js | 6 +- tests/e2e/pos-flow.spec.js | 368 +++-- tests/e2e/pos-mobile-card-payments.spec.js | 65 +- tests/e2e/pos-mobile-order-flow.spec.js | 195 ++- tests/e2e/pos.visual.spec.js | 228 +-- ...d-items-desktop-chromium-desktop-win32.png | Bin 63159 -> 59487 bytes ...-step-2-desktop-chromium-desktop-win32.png | Bin 51365 -> 50161 bytes tests/e2e/release/helpers.ts | 31 +- tests/e2e/release/release.live-smoke.spec.ts | 23 +- tests/e2e/release/release.local-prod.spec.ts | 55 +- tests/e2e/self-serve-wash.spec.js | 98 +- tests/e2e/subuserProfileContact.spec.ts | 103 +- tests/e2e/subuserProfileGrant.spec.ts | 27 +- tests/e2e/subuserProfileInformation.spec.ts | 115 +- tests/e2e/subuserProfileSecurity.spec.ts | 212 +-- tests/e2e/subuserProfileUsername.spec.ts | 27 +- .../e2e/superuser-customer-complaints.spec.ts | 14 +- .../e2e/superuser-system-status.smoke.spec.js | 12 +- tests/e2e/support/mobilePos.js | 708 +++++---- tests/e2e/support/network.js | 1259 ++++++++++------- tests/e2e/twoFactorAuth.spec.ts | 106 +- tests/e2e/userAuth.spec.ts | 141 +- tests/e2e/userBookWash.spec.ts | 40 +- tests/e2e/userBookings.spec.ts | 64 +- tests/e2e/userHome.spec.ts | 26 +- tests/e2e/userInvoices.spec.ts | 37 +- tests/e2e/userMyWashStart.spec.ts | 22 +- tests/e2e/userProfileInvoicing.spec.ts | 37 +- tests/e2e/userProfileNotifications.spec.ts | 113 +- tests/e2e/userProfileSecurity.spec.ts | 300 ++-- tests/e2e/userProfileVisibility.spec.ts | 26 +- tests/e2e/userVehicles.spec.ts | 88 +- tests/e2e/workfeed-config.smoke.spec.js | 7 +- .../unit/action-settings-wheel-button.spec.js | 9 +- tests/unit/authenticated-request.spec.js | 66 +- tests/unit/axios-request-queue.spec.js | 16 +- .../collected-order-invoice-overview.spec.js | 30 +- ...lected-order-invoice-queue-history.spec.js | 33 +- ...llected-order-invoice-stripe-queue.spec.js | 12 +- ...ted-order-invoices-closed-at-modal.spec.js | 66 +- ...department-daily-report-complaints.spec.js | 49 +- ...tment-daily-report-object.behavior.spec.js | 123 +- .../department-gates-config-modal.spec.js | 82 +- ...artment-modules-display-self-serve.spec.js | 22 +- ...epartment-modules-setup-self-serve.spec.js | 9 +- ...partment-outside-gate-capabilities.spec.js | 16 +- tests/unit/department-outside-hours.spec.js | 79 +- ...tment-overview-navigation.behavior.spec.js | 27 +- ...ment-overview-period-sync.behavior.spec.js | 95 +- .../department-self-serve-enabled.spec.js | 5 +- tests/unit/department-weather.spec.js | 18 +- tests/unit/economic-transfer-queue.spec.js | 99 +- tests/unit/edge-gateway-service.spec.js | 12 +- tests/unit/edge-gateway-workspace.spec.js | 12 +- tests/unit/goal-criteria-payload.spec.js | 152 +- tests/unit/goal-progress-resolver.spec.js | 138 +- tests/unit/helpers/mountWithApp.js | 19 +- tests/unit/i18n-bookings.spec.js | 2 +- tests/unit/invoice-distribution-api.spec.js | 170 +-- .../invoice-distribution-calculations.spec.js | 154 +- tests/unit/invoice-distribution-i18n.spec.js | 101 +- ...oicing-billing-period-calculations.spec.js | 8 +- ...cing-period-queue-refresh.behavior.spec.js | 55 +- ...oicing-period-queue-state.behavior.spec.js | 84 +- tests/unit/my-wash-start.spec.js | 12 +- tests/unit/navigation-menu-department.spec.js | 1 - ...vigation-menu-items-admin-contract.spec.js | 26 +- tests/unit/orders-items.spec.js | 32 +- tests/unit/origin-migration.spec.js | 5 +- tests/unit/paginated-list-export.spec.js | 76 +- tests/unit/pos-department-process.spec.js | 76 +- .../pos-last-scanned-license-plates.spec.js | 20 +- tests/unit/pos-route-state.spec.js | 37 +- tests/unit/request-queue-progress.spec.js | 91 +- tests/unit/self-serve-alignment.spec.js | 24 +- .../self-serve-connectivity-relay.spec.js | 189 +-- .../self-serve-machine-connectivity.spec.js | 86 +- ...erve-machine-department-self-serve.spec.js | 54 +- .../self-serve-machine-relay-controls.spec.js | 24 +- ...elf-serve-pagination-machine-scope.spec.js | 16 +- tests/unit/self-serve-questions-step.spec.js | 12 +- tests/unit/self-serve-services.spec.js | 13 +- .../self-serve-studio-condition-scope.spec.js | 14 +- .../self-serve-studio-question-scope.spec.js | 22 +- tests/unit/self-serve-studio-refresh.spec.js | 8 +- .../unit/self-serve-studio-task-scope.spec.js | 96 +- ...lf-serve-studio-vehicle-type-scope.spec.js | 32 +- tests/unit/self-serve-task-list.spec.js | 10 +- .../self-serve-tasks-payload-contract.spec.js | 10 +- tests/unit/self-serve-try-modal.spec.js | 50 +- tests/unit/self-serve-vehicle-step.spec.js | 3 +- ...sion-token-initialization-contract.spec.js | 171 ++- tests/unit/setup.js | 6 +- ...eruser-department-modules-workfeed.spec.js | 9 +- ...uperuser-invoice-distribution-view.spec.js | 211 +-- tests/unit/superuser-invoices-view.spec.js | 101 +- .../superuser-system-status-dashboard.spec.js | 4 +- .../unit/superuser-vehicle-analytics.spec.js | 128 +- tests/unit/superuser-vehicle-view.spec.js | 88 +- ...tem-search-department-goal-support.spec.js | 78 +- .../unit/system-search-modal-contract.spec.js | 179 +-- .../unit/system-search-route-contract.spec.js | 30 +- .../system-search-support-registry.spec.js | 476 +++---- tests/unit/system-search-ui-support.spec.js | 120 +- tests/unit/table-excel-export-service.spec.js | 60 +- tests/unit/table-standards-contract.spec.js | 58 +- tests/unit/use-edge-gateway-terminal.spec.js | 194 +-- tests/unit/use-self-serve-logic.spec.js | 108 +- tests/unit/use-wash-departments.spec.js | 42 +- tests/unit/use-wash-flow-state.spec.js | 4 +- tests/unit/use-wash-session-actions.spec.js | 36 +- tests/unit/weatherapi-module.spec.js | 6 +- tests/unit/weatherapi-wiring.spec.js | 23 +- tests/unit/workfeed-module.spec.js | 16 +- tests/unit/workfeed-wiring.spec.js | 23 +- tests/unit/xlvask-usage-filters.spec.js | 4 +- 149 files changed, 7212 insertions(+), 6178 deletions(-) create mode 100644 .prettierrc.json diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9f87bb53..6b8c540e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,7 +9,26 @@ on: - cron: "0 2 * * *" jobs: + format-tests: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + + - name: Install dependencies + run: npm ci --legacy-peer-deps + + - name: Check frontend test formatting + run: npm run format:tests:check + build-and-unit: + needs: format-tests runs-on: ubuntu-latest steps: - name: Checkout repository diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 00000000..4f310576 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "endOfLine": "lf", + "tabWidth": 2, + "printWidth": 120, + "semi": true +} diff --git a/package-lock.json b/package-lock.json index 47c8b384..b78e8ccb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,6 +70,7 @@ "@vue/test-utils": "^2.4.6", "jsdom": "^29.0.0", "otpauth": "^9.5.0", + "prettier": "2.8.8", "sass-embedded": "^1.81.0", "vite": "7.1.11", "vite-plugin-pwa": "^1.0.2", @@ -228,8 +229,8 @@ "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -259,6 +260,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -554,6 +556,7 @@ "version": "7.29.2", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.28.6", @@ -1962,7 +1965,7 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.11.0.tgz", "integrity": "sha512-sBXGT13cpmPR5BMgHE6UEEfEaShh5Ror6rfN3yEK5si7QVrtZg8LEPQb0VVhiLRUslD2yLnXtnRzG035J/mZXQ==", - "devOptional": true, + "dev": true, "license": "(Apache-2.0 AND BSD-3-Clause)" }, "node_modules/@creativebulma/bulma-badge": { @@ -2066,7 +2069,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=20.19.0" }, @@ -2115,7 +2117,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=20.19.0" } @@ -2127,6 +2128,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2143,6 +2145,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2159,6 +2162,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2175,6 +2179,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2191,6 +2196,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2207,6 +2213,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2223,6 +2230,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2239,6 +2247,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2255,6 +2264,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2271,6 +2281,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2287,6 +2298,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2303,6 +2315,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2319,6 +2332,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2335,6 +2349,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2351,6 +2366,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2367,6 +2383,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2383,6 +2400,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2399,6 +2417,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2415,6 +2434,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2431,6 +2451,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2447,6 +2468,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2463,6 +2485,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2479,6 +2502,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2495,6 +2519,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2511,6 +2536,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2553,7 +2579,6 @@ "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-6.1.20.tgz", "integrity": "sha512-1cukXLlePFiJ8YKXn/4tMKsy0etxYLCkXk8nUCFi11nRONF2Ba2CD5b21/ovtOO2tL6afTJfwmc1ed3HG7eB1g==", "license": "MIT", - "peer": true, "dependencies": { "preact": "~10.12.1" } @@ -2797,7 +2822,6 @@ "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.22.12.tgz", "integrity": "sha512-xcmww1O/JFP2MrlGUMd3Q78S3Qu6W3mYTXYuIqFq33EorgYHV/HqymHfXy9GjiCJ7OI+7lWx6nYFOzU7M4rd1Q==", "license": "MIT", - "peer": true, "dependencies": { "@jimp/core": "^0.22.12" } @@ -2834,7 +2858,6 @@ "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.22.12.tgz", "integrity": "sha512-xslz2ZoFZOPLY8EZ4dC29m168BtDx95D6K80TzgUi8gqT7LY6CsajWO0FAxDwHz6h0eomHMfyGX0stspBrTKnQ==", "license": "MIT", - "peer": true, "dependencies": { "@jimp/utils": "^0.22.12" }, @@ -2847,7 +2870,6 @@ "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.22.12.tgz", "integrity": "sha512-S0vJADTuh1Q9F+cXAwFPlrKWzDj2F9t/9JAbUvaaDuivpyWuImEKXVz5PUZw2NbpuSHjwssbTpOZ8F13iJX4uw==", "license": "MIT", - "peer": true, "dependencies": { "@jimp/utils": "^0.22.12" }, @@ -2872,7 +2894,6 @@ "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.22.12.tgz", "integrity": "sha512-xImhTE5BpS8xa+mAN6j4sMRWaUgUDLoaGHhJhpC+r7SKKErYDR0WQV4yCE4gP+N0gozD0F3Ka1LUSaMXrn7ZIA==", "license": "MIT", - "peer": true, "dependencies": { "@jimp/utils": "^0.22.12", "tinycolor2": "^1.6.0" @@ -2916,7 +2937,6 @@ "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.22.12.tgz", "integrity": "sha512-FNuUN0OVzRCozx8XSgP9MyLGMxNHHJMFt+LJuFjn1mu3k0VQxrzqbN06yIl46TVejhyAhcq5gLzqmSCHvlcBVw==", "license": "MIT", - "peer": true, "dependencies": { "@jimp/utils": "^0.22.12" }, @@ -3040,7 +3060,6 @@ "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.22.12.tgz", "integrity": "sha512-3NyTPlPbTnGKDIbaBgQ3HbE6wXbAlFfxHVERmrbqAi8R3r6fQPxpCauA8UVDnieg5eo04D0T8nnnNIX//i/sXg==", "license": "MIT", - "peer": true, "dependencies": { "@jimp/utils": "^0.22.12" }, @@ -3053,7 +3072,6 @@ "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.22.12.tgz", "integrity": "sha512-9YNEt7BPAFfTls2FGfKBVgwwLUuKqy+E8bDGGEsOqHtbuhbshVGxN2WMZaD4gh5IDWvR+emmmPPWGgaYNYt1gA==", "license": "MIT", - "peer": true, "dependencies": { "@jimp/utils": "^0.22.12" }, @@ -3069,7 +3087,6 @@ "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.22.12.tgz", "integrity": "sha512-dghs92qM6MhHj0HrV2qAwKPMklQtjNpoYgAB94ysYpsXslhRTiPisueSIELRwZGEr0J0VUxpUY7HgJwlSIgGZw==", "license": "MIT", - "peer": true, "dependencies": { "@jimp/utils": "^0.22.12" }, @@ -3204,6 +3221,7 @@ "version": "2.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -3223,7 +3241,7 @@ "version": "0.3.11", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -3932,6 +3950,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3945,6 +3964,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3958,6 +3978,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3971,6 +3992,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3984,6 +4006,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3997,6 +4020,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4010,6 +4034,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4023,6 +4048,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4036,6 +4062,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4049,6 +4076,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4062,6 +4090,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4075,6 +4104,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4088,6 +4118,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4101,6 +4132,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4114,6 +4146,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4127,6 +4160,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4140,6 +4174,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4153,6 +4188,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4166,6 +4202,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4179,6 +4216,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4192,6 +4230,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4205,6 +4244,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4218,6 +4258,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4231,6 +4272,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -4359,6 +4401,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, "license": "MIT" }, "node_modules/@types/event-calendar__core": { @@ -5330,9 +5373,8 @@ "version": "8.16.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "devOptional": true, + "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -5367,7 +5409,6 @@ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -5461,8 +5502,7 @@ "version": "5.10.4", "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-5.10.4.tgz", "integrity": "sha512-gt0VUqZ2+mr25ScbUcKZgJr96jKYm4vjOcxEWCEh/E5F4dWqhyo3dBhPRvNNnkKiWxkMd2cBwj3ZYH3rK39fkA==", - "license": "SEE LICENSE IN LICENSE", - "peer": true + "license": "SEE LICENSE IN LICENSE" }, "node_modules/aria-query": { "version": "5.3.1", @@ -5586,7 +5626,6 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", "license": "MIT", - "peer": true, "dependencies": { "follow-redirects": "^1.15.11", "form-data": "^4.0.5", @@ -5801,7 +5840,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -5886,8 +5924,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/bulma/-/bulma-1.0.4.tgz", "integrity": "sha512-Ffb6YGXDiZYX3cqvSbHWqQ8+LkX6tVoTcZuVB3lm93sbAVXlO0D6QlOTMnV6g18gILpAXqkG2z9hf9z4hCjz2g==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/bulma-block-list": { "version": "1.1.0", @@ -6145,7 +6182,6 @@ "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz", "integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==", "license": "MIT", - "peer": true, "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -6334,7 +6370,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/colors": { @@ -6408,6 +6444,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, "license": "MIT" }, "node_modules/copy-anything": { @@ -6559,7 +6596,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -6748,7 +6784,6 @@ "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-sfc": "2.7.16", "csstype": "^3.1.0" @@ -7186,6 +7221,7 @@ "version": "0.25.12", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -7230,6 +7266,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -7507,6 +7544,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -7761,6 +7799,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -7854,6 +7893,7 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -8277,8 +8317,7 @@ "version": "6.2.2", "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.2.tgz", "integrity": "sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/ieee754": { "version": "1.2.1", @@ -9183,6 +9222,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -9543,16 +9583,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "license": "MIT", - "peer": true, - "engines": { - "node": "*" - } - }, "node_modules/mrmime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", @@ -10117,6 +10147,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "devOptional": true, "license": "MIT", "engines": { "node": ">=12" @@ -10250,8 +10281,8 @@ "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "devOptional": true, "license": "MIT", - "optional": true, "bin": { "prettier": "bin-prettier.js" }, @@ -10345,7 +10376,6 @@ "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", "license": "MIT", - "peer": true, "dependencies": { "dijkstrajs": "^1.0.1", "pngjs": "^5.0.0", @@ -10699,8 +10729,8 @@ "version": "4.60.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.0.tgz", "integrity": "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ==", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -10747,6 +10777,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -10884,7 +10915,6 @@ "resolved": "https://registry.npmjs.org/sass/-/sass-1.98.0.tgz", "integrity": "sha512-+4N/u9dZ4PrgzGgPlKnaaRQx64RO0JBKs9sDhQ2pLgN6JQZ25uPQZKQYaBJU48Kd5BxgXoJ4e09Dq7nMcOUW3A==", "license": "MIT", - "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.1.5", @@ -10904,9 +10934,8 @@ "version": "1.98.0", "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.98.0.tgz", "integrity": "sha512-Do7u6iRb6K+lrllcTkB1BXcHwOxcKe3rEfOF/GcCLE2w3WpddakRAosJOHFUR37DpsvimQXEt5abs3NzUjEIqg==", - "devOptional": true, + "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@bufbuild/protobuf": "^2.5.0", "colorjs.io": "^0.5.0", @@ -11253,7 +11282,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -11546,7 +11575,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -11557,7 +11586,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -11967,7 +11996,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "sync-message-port": "^1.0.0" @@ -11980,7 +12009,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.2.0.tgz", "integrity": "sha512-gAQ9qrUN/UCypHtGFbbe7Rc/f9bzO88IwrG8TDo/aMKAApKyD6E3W4Cm0EfhfBb6Z6SKt59tTCTfD+n1xmAvMg==", - "devOptional": true, + "dev": true, "license": "MIT", "engines": { "node": ">=16.0.0" @@ -12077,7 +12106,7 @@ "version": "5.46.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", - "devOptional": true, + "dev": true, "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -12096,7 +12125,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/tesseract.js": { @@ -12188,6 +12217,7 @@ "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -12646,15 +12676,15 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/vite": { "version": "7.1.11", "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.11.tgz", "integrity": "sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==", + "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -13476,6 +13506,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -14047,7 +14078,6 @@ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -14107,7 +14137,6 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.31.tgz", "integrity": "sha512-iV/sU9SzOlmA/0tygSmjkEN6Jbs3nPoIPFhCMLD2STrjgOU8DX7ZtzMhg4ahVwf5Rp9KoFzcXeB1ZrVbLBp5/Q==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.31", "@vue/compiler-sfc": "3.5.31", @@ -14795,7 +14824,6 @@ "integrity": "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "rollup": "dist/bin/rollup" }, diff --git a/package.json b/package.json index 6a25f97e..b21525b4 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,8 @@ "dev": "vite", "build": "vite build", "build:dev": "vite build --mode development", + "format:tests": "prettier --write \"tests/**/*.{js,ts}\"", + "format:tests:check": "prettier --check \"tests/**/*.{js,ts}\"", "preview": "vite preview", "preview:prod": "npm run build && npm run preview -- --host 127.0.0.1 --port 4173", "test:unit": "vitest run", @@ -84,6 +86,7 @@ "@vue/test-utils": "^2.4.6", "jsdom": "^29.0.0", "otpauth": "^9.5.0", + "prettier": "2.8.8", "sass-embedded": "^1.81.0", "vite": "7.1.11", "vite-plugin-pwa": "^1.0.2", diff --git a/src/components/displays/department/pos/PosOrderItemsCurrent.vue b/src/components/displays/department/pos/PosOrderItemsCurrent.vue index a39750c4..b223c0e6 100644 --- a/src/components/displays/department/pos/PosOrderItemsCurrent.vue +++ b/src/components/displays/department/pos/PosOrderItemsCurrent.vue @@ -12,6 +12,7 @@ const props = defineProps({ loadOrderItems: Function, editPossible: Boolean, isLarge: Boolean, + stackMetadata: Boolean, reg_1: String, reg_2: String, reg_3: String, @@ -58,6 +59,7 @@ const rootClasses = computed(() => ({ 'pos-order-items--large': isLarge, 'pos-order-items--order-detail': isOrderDetailVariant.value, 'pos-order-items--sidebar': isSidebarVariant.value, + 'pos-order-items--stacked-metadata': props.stackMetadata, })); const titleClasses = computed(() => ({ title: true, @@ -367,7 +369,7 @@ const deleteOrderItem = async (orderItemId) => { height="1.5rem" skeleton-class="is-size-4" > - {{ displayCustomerName }} + {{ displayCustomerName }}

{ margin: 0; } +.pos-order-items--order-detail.pos-order-items--stacked-metadata .pos-order-metadata-grid { + grid-template-columns: minmax(0, 1fr); + grid-template-areas: + "license-plates" + "reference" + "note"; +} + .pos-order-items__footer { padding: 0 1.25rem 0.4rem; } diff --git a/src/components/displays/department/pos/order/PosDesktopOrderWorkspace.vue b/src/components/displays/department/pos/order/PosDesktopOrderWorkspace.vue index 704d2da3..4be22cb0 100644 --- a/src/components/displays/department/pos/order/PosDesktopOrderWorkspace.vue +++ b/src/components/displays/department/pos/order/PosDesktopOrderWorkspace.vue @@ -158,6 +158,7 @@ watch(normalizedOrderId, async (nextOrderId, previousOrderId) => { :orderId="orderId" :loadOrderItems="loadOrderItems" :editPossible="editPossible" + :stackMetadata="showCatalogPane" variant="order-detail" > + +

@@ -258,17 +267,29 @@ watch(normalizedOrderId, async (nextOrderId, previousOrderId) => { width: 100%; } +.pos-order-detail__order-footer { + min-width: 0; +} + .pos-order-detail--editing { grid-template-columns: minmax(0, 1fr); } .pos-order-detail__workspace--editing { - grid-template-columns: minmax(24rem, 0.95fr) minmax(32rem, 1.15fr); + grid-template-columns: minmax(0, 1fr) minmax(20rem, 23.75rem); +} + +.pos-order-detail__order-footer--editing { + grid-column: 2; } @media screen and (max-width: 1023px) { .pos-order-detail__workspace--editing { grid-template-columns: 1fr; } + + .pos-order-detail__order-footer--editing { + grid-column: auto; + } } diff --git a/src/components/displays/department/pos/steps/PosDepartmentStep2.vue b/src/components/displays/department/pos/steps/PosDepartmentStep2.vue index eddba2d5..32e34f87 100644 --- a/src/components/displays/department/pos/steps/PosDepartmentStep2.vue +++ b/src/components/displays/department/pos/steps/PosDepartmentStep2.vue @@ -29,12 +29,14 @@ setProductsCategory(null); :showCatalogPane="true" :showCustomerRail="false" > -