From 80861a41a0940e245c04383e7442094a2a809571 Mon Sep 17 00:00:00 2001 From: Dafnik Date: Fri, 29 Mar 2024 15:35:17 +0100 Subject: [PATCH 1/5] feat: layout v2 Signed-off-by: Dafnik --- .github/workflows/preview.yml | 62 +++ compose-local-dev.yml | 6 + package.json | 3 +- pnpm-lock.yaml | 242 ++--------- src/app/_shared/EnvironmentHelper.ts | 4 +- src/app/_shared/custom-title.strategy.ts | 4 +- src/app/_shared/form.ts | 9 +- .../ui/app-download-btn-list.component.ts | 4 +- .../ui/footer/about-modal.component.ts | 4 +- src/app/_shared/ui/footer/footer.component.ts | 18 +- .../_shared/ui/theme-switcher.component.ts | 44 ++ src/app/_shared/waiterrobot-backend.d.ts | 11 + .../dead-letter-view.component.ts | 2 +- .../dead-letters/dead-letters.component.ts | 215 +++++----- .../_services/system-notifications.service.ts | 2 +- .../system-notification-edit.component.ts | 2 +- .../system-notifications.component.ts | 222 +++++----- .../tmp-notification-view.component.ts | 6 +- .../tmp-notifications.component.ts | 124 +++--- .../users/user-edit/user-edit.component.ts | 2 +- src/app/home/_admin/users/users.component.ts | 156 +++---- .../active-system-notifications.component.ts | 39 ++ src/app/home/_layout/_components/colors.ts | 146 +++++++ .../maintenance-warning.component.ts | 34 ++ .../_components/mobile-nav.component.ts | 52 +++ .../home/_layout/_components/nav.component.ts | 331 +++++++++++++++ .../network-offline-warning.component.ts | 17 + .../_components/profile-menu.component.ts | 143 +++++++ .../_layout/_components/switcher.component.ts | 246 +++++++++++ .../system-notification-alert.component.ts | 4 +- .../_components/theme-picker.component.ts} | 2 +- .../active-system-notifications.service.ts | 0 src/app/home/_layout/home.layout.html | 291 ------------- src/app/home/_layout/home.layout.ts | 185 -------- src/app/home/_layout/home.layout2.ts | 114 +++++ .../components/action-dropdown.component.ts | 10 +- .../components/blankslate.component.ts | 29 ++ .../button/app-back-button.component.ts | 2 +- .../button/app-qr-code-button.component.ts | 4 +- .../button/app-selectable-btn.component.ts | 50 --- .../color/color-picker.component.ts | 38 +- .../app-navbar-scrollable.component.css | 98 ----- .../app-navbar-scrollable.component.html | 129 ------ .../app-navbar-scrollable.component.ts | 186 -------- .../components/question-dialog.component.ts | 4 +- .../form/app-order-mode-switch.component.ts | 3 +- src/app/home/_shared/form/edit.ts | 5 +- .../layouts/app-list-nav-items.component.ts | 122 ------ ...entities-header-with-placeholder.layout.ts | 28 -- .../home/_shared/layouts/entities.layout.ts | 24 -- .../list/abstract-models-list.component.ts | 94 ----- src/app/home/_shared/list/index.ts | 6 + .../home/_shared/list/inject-table-delete.ts | 81 ++++ .../home/_shared/list/inject-table-filter.ts | 25 ++ .../home/_shared/list/inject-table-order.ts | 58 +++ .../home/_shared/list/inject-table-select.ts | 76 ++++ src/app/home/_shared/list/inject-table.ts | 114 +++++ .../home/_shared/list/list-order-styles.ts | 32 ++ .../abstract-models-list-by-id.component.ts | 65 --- ...t-models-with-name-list-by-id.component.ts | 16 - ...tract-models-list-with-delete.component.ts | 87 ---- ...me-list-with-delete-and-order.component.ts | 84 ---- ...ls-with-name-list-with-delete.component.ts | 16 - ...-with-number-list-with-delete.component.ts | 17 - src/app/home/_shared/name-map.ts | 5 + src/app/home/_shared/services/filter.ts | 4 +- .../_shared/services/getOrderBySelected.ts | 23 - .../services/injectActivatedRouteIdParam.ts | 2 +- src/app/home/_shared/stop-propagation.ts | 12 - .../app-bill-payment-state-badge.component.ts | 2 +- .../app-bill-refresh-button.component.ts | 2 +- .../bills/all-unpaid-reasons.component.ts | 178 -------- src/app/home/bills/bills.component.ts | 19 +- src/app/home/bills/bills.layout.ts | 29 -- src/app/home/bills/bills.routes.ts | 3 +- .../unpaid-reason-edit.component.ts | 5 +- .../home/bills/unpaid-reasons.component.ts | 183 ++++++++ .../_services/getEventsOrderedBySelected.ts | 15 - .../events/event-edit/event-edit.component.ts | 15 +- src/app/home/events/events.component.ts | 255 +++++------ src/app/home/events/events.layout.ts | 37 ++ src/app/home/events/events.routes.ts | 11 +- src/app/home/home.routes.ts | 45 +- .../app-order-refresh-button.component.ts | 2 +- .../app-order-products-list.component.ts | 6 +- src/app/home/orders/order-info.component.ts | 2 +- src/app/home/orders/orders.service.ts | 7 +- .../home/orders/orders/orders.component.html | 58 ++- .../home/orders/orders/orders.component.ts | 7 +- .../_services/organisations-users.service.ts | 74 +++- .../organisation-edit-stripe.component.ts | 224 ---------- .../organisation-edit-users.component.ts | 139 ------ .../organisation-user-add-modal.component.ts | 37 +- .../organisation-users-settings.component.ts | 174 ++++++++ .../organisation-edit.component.ts | 107 +---- .../organisations/organisations.component.ts | 165 ++++---- src/app/home/printers/mediators.component.ts | 129 +++--- .../printer-edit/printer-edit.component.ts | 8 +- .../printers/printers-batch-update.modal.ts | 6 +- src/app/home/printers/printers.component.ts | 244 ++++++----- src/app/home/printers/printers.layout.ts | 31 -- src/app/home/printers/printers.routes.ts | 1 - .../product-edit-form.component.ts | 6 +- .../product-edit/product-edit.component.ts | 10 +- .../product-group-edit.component.ts | 10 +- .../home/products/product-groups.component.ts | 297 +++++++------ .../products/products-by-group.component.ts | 298 ------------- src/app/home/products/products.component.ts | 399 +++++++++++------- src/app/home/products/products.layout.ts | 86 ++-- src/app/home/products/products.routes.ts | 49 +-- src/app/home/qr-code.component.ts | 2 +- src/app/home/select-dialog-view.component.ts | 151 ------- .../settings-grid.component.ts} | 93 ++-- src/app/home/settings/settings.component.ts | 41 ++ src/app/home/settings/settings.routes.ts | 8 + .../stripe/stripe-account-modal.component.ts} | 11 +- .../stripe-account-state-badge.component.ts | 6 +- .../stripe/stripe-settings.component.ts | 231 ++++++++++ src/app/home/start/start.component.html | 2 +- .../home/statistics/blur-toggle.component.ts | 3 +- .../components/count-card.component.ts | 39 +- .../components/timeline.component.ts | 6 +- .../home/statistics/statistics.component.ts | 56 +-- src/app/home/statistics/statistics.module.ts | 2 - .../home/tables/_services/tables.service.ts | 1 + .../table-edit/table-edit-form.component.ts | 2 +- .../tables/table-edit/table-edit.component.ts | 8 +- .../table-group-edit.component.ts | 8 +- src/app/home/tables/table-groups.component.ts | 100 +++-- .../home/tables/tables-by-group.component.ts | 277 ------------ .../tables/tables-print-qr-codes.modal.ts | 25 +- src/app/home/tables/tables.component.ts | 150 ++++--- src/app/home/tables/tables.layout.ts | 109 ++--- src/app/home/tables/tables.routes.ts | 44 +- .../home/user-settings/sessions.component.ts | 173 ++++---- .../user-settings/user-settings.layout.ts | 29 -- .../user-settings/user-settings.routes.ts | 1 - ...ate-organisation-waiters-edit.component.ts | 17 +- ...uplicate-organisation-waiters.component.ts | 110 ++--- .../waiter-edit/waiter-edit.component.ts | 2 +- .../waiter-edit/waiter-sessions.component.ts | 96 +++-- .../waiters/waiters-by-event.component.ts | 214 ---------- src/app/home/waiters/waiters.component.ts | 344 ++++++++------- src/app/home/waiters/waiters.layout.ts | 57 +-- src/app/home/waiters/waiters.routes.ts | 41 +- src/app/maxi/maxi.layout.ts | 42 +- src/app/outside/info/info.component.ts | 4 +- .../account-not-activated-dialog.component.ts | 4 +- .../login/password-change-dialog.component.ts | 6 +- src/app/outside/outside.layout.ts | 51 +-- src/app/system-info.component.ts | 10 +- src/assets/i18n/de.json | 52 +-- src/environments/IEnvironment.ts | 2 +- src/environments/environment.lava.ts | 2 +- src/environments/environment.local-lava.ts | 2 +- src/environments/environment.local.ts | 2 +- src/environments/environment.prod.ts | 1 + src/environments/environment.ts | 2 +- src/main.ts | 2 +- src/styles.scss | 43 +- 160 files changed, 4844 insertions(+), 5510 deletions(-) create mode 100644 .github/workflows/preview.yml create mode 100644 src/app/_shared/ui/theme-switcher.component.ts create mode 100644 src/app/home/_layout/_components/active-system-notifications.component.ts create mode 100644 src/app/home/_layout/_components/colors.ts create mode 100644 src/app/home/_layout/_components/maintenance-warning.component.ts create mode 100644 src/app/home/_layout/_components/mobile-nav.component.ts create mode 100644 src/app/home/_layout/_components/nav.component.ts create mode 100644 src/app/home/_layout/_components/network-offline-warning.component.ts create mode 100644 src/app/home/_layout/_components/profile-menu.component.ts create mode 100644 src/app/home/_layout/_components/switcher.component.ts rename src/app/home/{_admin/system-notifications => _layout}/_components/system-notification-alert.component.ts (96%) rename src/app/home/{home-theme.component.ts => _layout/_components/theme-picker.component.ts} (93%) rename src/app/home/{_admin/system-notifications => _layout}/_services/active-system-notifications.service.ts (100%) delete mode 100644 src/app/home/_layout/home.layout.html delete mode 100644 src/app/home/_layout/home.layout.ts create mode 100644 src/app/home/_layout/home.layout2.ts create mode 100644 src/app/home/_shared/components/blankslate.component.ts delete mode 100644 src/app/home/_shared/components/button/app-selectable-btn.component.ts delete mode 100644 src/app/home/_shared/components/navbar-scrollable/app-navbar-scrollable.component.css delete mode 100644 src/app/home/_shared/components/navbar-scrollable/app-navbar-scrollable.component.html delete mode 100644 src/app/home/_shared/components/navbar-scrollable/app-navbar-scrollable.component.ts delete mode 100644 src/app/home/_shared/layouts/app-list-nav-items.component.ts delete mode 100644 src/app/home/_shared/layouts/entities-header-with-placeholder.layout.ts delete mode 100644 src/app/home/_shared/layouts/entities.layout.ts delete mode 100644 src/app/home/_shared/list/abstract-models-list.component.ts create mode 100644 src/app/home/_shared/list/index.ts create mode 100644 src/app/home/_shared/list/inject-table-delete.ts create mode 100644 src/app/home/_shared/list/inject-table-filter.ts create mode 100644 src/app/home/_shared/list/inject-table-order.ts create mode 100644 src/app/home/_shared/list/inject-table-select.ts create mode 100644 src/app/home/_shared/list/inject-table.ts create mode 100644 src/app/home/_shared/list/list-order-styles.ts delete mode 100644 src/app/home/_shared/list/models-list-by-id/abstract-models-list-by-id.component.ts delete mode 100644 src/app/home/_shared/list/models-list-by-id/abstract-models-with-name-list-by-id.component.ts delete mode 100644 src/app/home/_shared/list/models-list-with-delete/abstract-models-list-with-delete.component.ts delete mode 100644 src/app/home/_shared/list/models-list-with-delete/abstract-models-with-name-list-with-delete-and-order.component.ts delete mode 100644 src/app/home/_shared/list/models-list-with-delete/abstract-models-with-name-list-with-delete.component.ts delete mode 100644 src/app/home/_shared/list/models-list-with-delete/abstract-models-with-number-list-with-delete.component.ts create mode 100644 src/app/home/_shared/name-map.ts delete mode 100644 src/app/home/_shared/services/getOrderBySelected.ts delete mode 100644 src/app/home/_shared/stop-propagation.ts delete mode 100644 src/app/home/bills/all-unpaid-reasons.component.ts delete mode 100644 src/app/home/bills/bills.layout.ts create mode 100644 src/app/home/bills/unpaid-reasons.component.ts delete mode 100644 src/app/home/events/_services/getEventsOrderedBySelected.ts create mode 100644 src/app/home/events/events.layout.ts delete mode 100644 src/app/home/organisations/organisation-edit/organisation-edit-stripe/organisation-edit-stripe.component.ts delete mode 100644 src/app/home/organisations/organisation-edit/organisation-edit-users/organisation-edit-users.component.ts create mode 100644 src/app/home/organisations/organisation-edit/organisation-edit-users/organisation-users-settings.component.ts delete mode 100644 src/app/home/printers/printers.layout.ts delete mode 100644 src/app/home/products/products-by-group.component.ts delete mode 100644 src/app/home/select-dialog-view.component.ts rename src/app/home/{organisations/organisation-edit/organisation-edit-settings.component.ts => settings/settings-grid.component.ts} (73%) create mode 100644 src/app/home/settings/settings.component.ts create mode 100755 src/app/home/settings/settings.routes.ts rename src/app/home/{organisations/organisation-edit/organisation-edit-stripe/organisation-stripe-account-modal.component.ts => settings/stripe/stripe-account-modal.component.ts} (95%) rename src/app/home/{organisations/organisation-edit/organisation-edit-stripe => settings/stripe}/stripe-account-state-badge.component.ts (93%) create mode 100644 src/app/home/settings/stripe/stripe-settings.component.ts delete mode 100644 src/app/home/tables/tables-by-group.component.ts delete mode 100644 src/app/home/user-settings/user-settings.layout.ts delete mode 100644 src/app/home/waiters/waiters-by-event.component.ts diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml new file mode 100644 index 00000000..99642566 --- /dev/null +++ b/.github/workflows/preview.yml @@ -0,0 +1,62 @@ +name: preview + +on: [pull_request] + +# This allows a subsequently queued workflow run to interrupt previous runs +concurrency: + group: 'preview-${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + +jobs: + build-lava: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: dafnik/setup-node-pnpm@v3 + with: + install-ignore-scripts: true + + - name: Build + run: pnpm build:lava + + - name: Upload lava build artifact + uses: actions/upload-artifact@v4 + with: + name: lava + path: dist + + # Deploy job + deploy-lava-preview: + name: Deploy lava preview + needs: build-lava + + permissions: + pull-requests: write + actions: read + + # Deploy to the preview environment + environment: + name: preview-${{ github.event.number }} + url: ${{ steps.deploy-preview.outputs.url }} + + runs-on: ubuntu-latest + steps: + - uses: actions/download-artifact@v4 + with: + name: lava + path: dist + + - name: deploy preview + id: deploy-preview + uses: dafnik/ssp@v1 + with: + host: preview.dafnik.me + username: ${{ secrets.PREVIEW_SSH_USER }} + key: ${{ secrets.PREVIEW_SSH_PRIVATE_KEY }} + port: ${{ secrets.PREVIEW_SSH_PORT }} + source: dist/* + target: /var/www/share/preview + strip_components: 3 diff --git a/compose-local-dev.yml b/compose-local-dev.yml index 906b9282..6a4c5fac 100644 --- a/compose-local-dev.yml +++ b/compose-local-dev.yml @@ -79,6 +79,12 @@ services: - RATE_LIMIT_ENABLED=true - RATE_LIMIT_DURATION_IN_SECONDS=120 - RATE_LIMIT_TRIES=40 + - STRIPE_ENABLED=false + - STRIPE_KEYS_SECRET=sk_test + - STRIPE_KEYS_PUBLISHABLE=pk_test + - STRIPE_WEBHOOK_SEED_ENABLED=false + - STRIPE_WEBHOOK_URL=https://not-existing.kellner.team/api/v1/public/webhooks/stripe + - STRIPE_WEBHOOK_SECRET=testabc networks: - kellner-backend # No healthcheck possible as the container is distroless and therefor has no bash nor other tools to make requests diff --git a/package.json b/package.json index a909e934..cbff8e90 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "build:stats": "rm -rf ./dist/WaiterRobot-Web/ && mkdir -p ./dist/WaiterRobot-Web && ng build --stats-json", "analyze": "npm run build:stats && source-map-explorer dist/WaiterRobot-Web/**/*.js", "tsc:check": "tsc", + "ci": "pnpm lint && pnpm format", "lint": "eslint '**/*.{js,ts,html,json,md}' --fix", "lint:check": "eslint '**/*.{js,ts,html,json,md}'", "format:check": "prettier --check .", @@ -50,7 +51,7 @@ "jspdf": "2.5.1", "ng2-pdfjs-viewer": "^17.0.3", "ngx-print": "^1.5.1", - "ngxtension": "3.0.1", + "ngxtension": "3.2.0", "rxjs": "7.8.1", "tslib": "2.6.2", "zone.js": "0.14.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9898a05f..9dc0c674 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,8 +93,8 @@ importers: specifier: ^1.5.1 version: 1.5.1 ngxtension: - specifier: 3.0.1 - version: 3.0.1(@angular/common@17.3.6(@angular/core@17.3.6(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.6(rxjs@7.8.1)(zone.js@0.14.4))(@use-gesture/vanilla@10.3.1)(rxjs@7.8.1) + specifier: 3.2.0 + version: 3.2.0(@angular/common@17.3.6(@angular/core@17.3.6(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.6(rxjs@7.8.1)(zone.js@0.14.4))(@use-gesture/vanilla@10.3.1)(rxjs@7.8.1) rxjs: specifier: 7.8.1 version: 7.8.1 @@ -1690,144 +1690,72 @@ packages: resolution: {integrity: sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==} engines: {node: ^16.14.0 || >=18.0.0} - '@nrwl/devkit@17.3.2': - resolution: {integrity: sha512-31wh7dDZPM1YUCfhhk/ioHnUeoPIlKYLFLW0fGdw76Ow2nmTqrmxha2m0CSIR1/9En9GpYut2IdUdNh9CctNlA==} - '@nrwl/devkit@18.3.5': resolution: {integrity: sha512-DIvChKMe4q8CtIsbrumL/aYgf85H5vlT6eF3jnCCWORj6LTwoHtK8Q9ky1+uM82KIM0gaKd32NVDw+w64scHyg==} - '@nrwl/tao@17.3.2': - resolution: {integrity: sha512-5uvpSmij0J9tteFV/0M/024K+H/o3XAlqtSdU8j03Auj1IleclSLF2yCTuIo7pYXhG3cgx1+nR+3nMs1QVAdUA==} - hasBin: true - '@nrwl/tao@18.3.5': resolution: {integrity: sha512-gB7Vxa6FReZZEGva03Eh+84W8BSZOjsNyXboglOINu6d8iZZ0eotSXGziKgjpkj3feZ1ofKZMs0PRObVAOROVw==} hasBin: true - '@nx/devkit@17.3.2': - resolution: {integrity: sha512-gbOIhwrZKCSSFFbh6nE6LLCvAU7mhSdBSnRiS14YBwJJMu4CRJ0IcaFz58iXqGWZefMivKtkNFtx+zqwUC4ziw==} - peerDependencies: - nx: '>= 16 <= 18' - '@nx/devkit@18.3.5': resolution: {integrity: sha512-9I0L17t0MN87fL4m4MjDiBxJIx7h5RQY/pTYtt5TBjye0ANb165JeE4oh3ibzfjMzXv42Aej2Gm+cOuSPwzT9g==} peerDependencies: nx: '>= 16 <= 19' - '@nx/nx-darwin-arm64@17.3.2': - resolution: {integrity: sha512-hn12o/tt26Pf4wG+8rIBgNIEZq5BFlHLv3scNrgKbd5SancHlTbY4RveRGct737UQ/78GCMCgMDRgNdagbCr6w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - '@nx/nx-darwin-arm64@18.3.5': resolution: {integrity: sha512-4I5UpZ/x2WO9OQyETXKjaYhXiZKUTYcLPewruRMODWu6lgTM9hHci0SqMQB+TWe3f80K8VT8J8x3+uJjvllGlg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@nx/nx-darwin-x64@17.3.2': - resolution: {integrity: sha512-5F28wrfE7yU60MzEXGjndy1sPJmNMIaV2W/g82kTXzxAbGHgSjwrGFmrJsrexzLp9oDlWkbc6YmInKV8gmmIaQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - '@nx/nx-darwin-x64@18.3.5': resolution: {integrity: sha512-Drn6jOG237AD/s6OWPt06bsMj0coGKA5Ce1y5gfLhptOGk4S4UPE/Ay5YCjq+/yhTo1gDHzCHxH0uW2X9MN9Fg==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@nx/nx-freebsd-x64@17.3.2': - resolution: {integrity: sha512-07MMTfsJooONqL1Vrm5L6qk/gzmSrYLazjkiTmJz+9mrAM61RdfSYfO3mSyAoyfgWuQ5yEvfI56P036mK8aoPg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - '@nx/nx-freebsd-x64@18.3.5': resolution: {integrity: sha512-8tA8Yw0Iir4liFjffIFS5THTS3TtWY/No2tkVj91gwy/QQ/otvKbOyc5RCIPpbZU6GS3ZWfG92VyCSm06dtMFg==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@nx/nx-linux-arm-gnueabihf@17.3.2': - resolution: {integrity: sha512-gQxMF6U/h18Rz+FZu50DZCtfOdk27hHghNh3d3YTeVsrJTd1SmUQbYublmwU/ia1HhFS8RVI8GvkaKt5ph0HoA==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - '@nx/nx-linux-arm-gnueabihf@18.3.5': resolution: {integrity: sha512-BrPGAHM9FCGkB9/hbvlJhe+qtjmvpjIjYixGIlUxL3gGc8E/ucTyCnz5pRFFPFQlBM7Z/9XmbHvGPoUi/LYn5A==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@nx/nx-linux-arm64-gnu@17.3.2': - resolution: {integrity: sha512-X20wiXtXmKlC01bpVEREsRls1uVOM22xDTpqILvVty6+P+ytEYFR3Vs5EjDtzBKF51wjrwf03rEoToZbmgM8MA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - '@nx/nx-linux-arm64-gnu@18.3.5': resolution: {integrity: sha512-/Xd0Q3LBgJeigJqXC/Jck/9l5b+fK+FCM0nRFMXgPXrhZPhoxWouFkoYl2F1Ofr+AQf4jup4DkVTB5r98uxSCA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-arm64-musl@17.3.2': - resolution: {integrity: sha512-yko3Xsezkn4tjeudZYLjxFl07X/YB84K+DLK7EFyh9elRWV/8VjFcQmBAKUS2r9LfaEMNXq8/vhWMOWYyWBrIA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - '@nx/nx-linux-arm64-musl@18.3.5': resolution: {integrity: sha512-r18qd7pUrl1haAZ/e9Q+xaFTsLJnxGARQcf/Y76q+K2psKmiUXoRlqd3HAOw43KTllaUJ5HkzLq2pIwg3p+xBw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@nx/nx-linux-x64-gnu@17.3.2': - resolution: {integrity: sha512-RiPvvQMmlZmDu9HdT6n6sV0+fEkyAqR5VocrD5ZAzEzFIlh4dyVLripFR3+MD+QhIhXyPt/hpri1kq9sgs4wnw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - '@nx/nx-linux-x64-gnu@18.3.5': resolution: {integrity: sha512-vYrikG6ff4I9cvr3Ysk3y3gjQ9cDcvr3iAr+4qqcQ4qVE+OLL2++JDS6xfPvG/TbS3GTQpyy2STRBwiHgxTeJw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-linux-x64-musl@17.3.2': - resolution: {integrity: sha512-PWfVGmFsFJi+N1Nljg/jTKLHdufpGuHlxyfHqhDso/o4Qc0exZKSeZ1C63WkD7eTcT5kInifTQ/PffLiIDE3MA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - '@nx/nx-linux-x64-musl@18.3.5': resolution: {integrity: sha512-6np86lcYy3+x6kkW/HrBHIdNWbUu/MIsvMuNH5UXgyFs60l5Z7Cocay2f7WOaAbTLVAr0W7p4RxRPamHLRwWFA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@nx/nx-win32-arm64-msvc@17.3.2': - resolution: {integrity: sha512-O+4FFPbQz1mqaIj+SVE02ppe7T9ELj7Z5soQct5TbRRhwjGaw5n5xaPPBW7jUuQe2L5htid1E82LJyq3JpVc8A==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - '@nx/nx-win32-arm64-msvc@18.3.5': resolution: {integrity: sha512-H3p2ZVhHV1WQWTICrQUTplOkNId0y3c23X3A2fXXFDbWSBs0UgW7m55LhMcA9p0XZ7wDHgh+yFtVgu55TXLjug==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@nx/nx-win32-x64-msvc@17.3.2': - resolution: {integrity: sha512-4hQm+7coy+hBqGY9J709hz/tUPijhf/WS7eML2r2xBmqBew3PMHfeZuaAAYWN690nIsu0WX3wyDsNjulR8HGPQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - '@nx/nx-win32-x64-msvc@18.3.5': resolution: {integrity: sha512-xFwKVTIXSgjdfxkpriqHv5NpmmFILTrWLEkUGSoimuRaAm1u15YWx/VmaUQ+UWuJnmgqvB/so4SMHSfNkq3ijA==} engines: {node: '>= 10'} @@ -2011,8 +1939,8 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} - '@ts-morph/common@0.22.0': - resolution: {integrity: sha512-HqNBuV/oIlMKdkLshXd1zKBqNQCsuPEsgQOkfFQ/eUKjRlwndXW1AjN9LVkBEIukm00gGXSRmfkl0Wv5VXLnlw==} + '@ts-morph/common@0.23.0': + resolution: {integrity: sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==} '@tufjs/canonical-json@2.0.0': resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} @@ -2719,8 +2647,8 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - code-block-writer@12.0.0: - resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} + code-block-writer@13.0.1: + resolution: {integrity: sha512-c5or4P6erEA69TxaxTNcHUNcIn+oyxSRTOWV+pSYF+z4epXqNvwvJ70XPGjPNgue83oAFAPBRQYwpAJ/Hpe/Sg==} color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -4692,14 +4620,17 @@ packages: ngx-print@1.5.1: resolution: {integrity: sha512-hrFMZCIAIyxXHnSWEgztJ1CQnelO306A23EVhRcbLgeZPdU8CBE6ixILTna/qf5ZbLv07vxWMm+UxbPcxNvOrA==} - ngxtension@3.0.1: - resolution: {integrity: sha512-B3OFu9b0ubwZZUckoECuuwizgLBkUDLgr1Y3FJmGTQDxXbyTEXhgKbRA9AbsoPpYNDinvmRvObklirE9pIfggA==} + ngxtension@3.2.0: + resolution: {integrity: sha512-wdUWPLPvatNXCy7NkmHv/kDxWRCA2eaHPnYaQuthbqIE3NTvn/nMOfd5eZ9ON6gOBjXVMtRiy7ETCNWG4+1VZg==} engines: {node: '>=18'} peerDependencies: '@angular/common': '>=16.0.0' '@angular/core': '>=16.0.0' '@use-gesture/vanilla': ^10.0.0 rxjs: ^6.0.0 || ^7.0.0 + peerDependenciesMeta: + '@use-gesture/vanilla': + optional: true nice-napi@1.0.2: resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} @@ -4817,18 +4748,6 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nx@17.3.2: - resolution: {integrity: sha512-QjF1gnwKebQISvATrSbW7dsmIcLbA0fcyDyxLo5wVHx/MIlcaIb/lLYaPTld73ZZ6svHEZ6n2gOkhMitmkIPQA==} - hasBin: true - peerDependencies: - '@swc-node/register': ^1.6.7 - '@swc/core': ^1.3.85 - peerDependenciesMeta: - '@swc-node/register': - optional: true - '@swc/core': - optional: true - nx@18.3.5: resolution: {integrity: sha512-wWcvwoTgiT5okdrG0RIWm1tepC17bDmSpw+MrOxnjfBjARQNTURkiq4U6cxjCVsCxNHxCrlAaBSQLZeBgJZTzQ==} hasBin: true @@ -5846,8 +5765,8 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-morph@21.0.1: - resolution: {integrity: sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==} + ts-morph@22.0.0: + resolution: {integrity: sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==} tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -7897,27 +7816,12 @@ snapshots: - bluebird - supports-color - '@nrwl/devkit@17.3.2(nx@17.3.2)': - dependencies: - '@nx/devkit': 17.3.2(nx@17.3.2) - transitivePeerDependencies: - - nx - '@nrwl/devkit@18.3.5(nx@18.3.5)': dependencies: '@nx/devkit': 18.3.5(nx@18.3.5) transitivePeerDependencies: - nx - '@nrwl/tao@17.3.2': - dependencies: - nx: 17.3.2 - tslib: 2.6.2 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug - '@nrwl/tao@18.3.5': dependencies: nx: 18.3.5 @@ -7927,18 +7831,6 @@ snapshots: - '@swc/core' - debug - '@nx/devkit@17.3.2(nx@17.3.2)': - dependencies: - '@nrwl/devkit': 17.3.2(nx@17.3.2) - ejs: 3.1.10 - enquirer: 2.3.6 - ignore: 5.3.1 - nx: 17.3.2 - semver: 7.6.2 - tmp: 0.2.3 - tslib: 2.6.2 - yargs-parser: 21.1.1 - '@nx/devkit@18.3.5(nx@18.3.5)': dependencies: '@nrwl/devkit': 18.3.5(nx@18.3.5) @@ -7951,63 +7843,33 @@ snapshots: tslib: 2.6.2 yargs-parser: 21.1.1 - '@nx/nx-darwin-arm64@17.3.2': - optional: true - '@nx/nx-darwin-arm64@18.3.5': optional: true - '@nx/nx-darwin-x64@17.3.2': - optional: true - '@nx/nx-darwin-x64@18.3.5': optional: true - '@nx/nx-freebsd-x64@17.3.2': - optional: true - '@nx/nx-freebsd-x64@18.3.5': optional: true - '@nx/nx-linux-arm-gnueabihf@17.3.2': - optional: true - '@nx/nx-linux-arm-gnueabihf@18.3.5': optional: true - '@nx/nx-linux-arm64-gnu@17.3.2': - optional: true - '@nx/nx-linux-arm64-gnu@18.3.5': optional: true - '@nx/nx-linux-arm64-musl@17.3.2': - optional: true - '@nx/nx-linux-arm64-musl@18.3.5': optional: true - '@nx/nx-linux-x64-gnu@17.3.2': - optional: true - '@nx/nx-linux-x64-gnu@18.3.5': optional: true - '@nx/nx-linux-x64-musl@17.3.2': - optional: true - '@nx/nx-linux-x64-musl@18.3.5': optional: true - '@nx/nx-win32-arm64-msvc@17.3.2': - optional: true - '@nx/nx-win32-arm64-msvc@18.3.5': optional: true - '@nx/nx-win32-x64-msvc@17.3.2': - optional: true - '@nx/nx-win32-x64-msvc@18.3.5': optional: true @@ -8173,7 +8035,7 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@ts-morph/common@0.22.0': + '@ts-morph/common@0.23.0': dependencies: fast-glob: 3.3.2 minimatch: 9.0.4 @@ -8485,11 +8347,13 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@use-gesture/core@10.3.1': {} + '@use-gesture/core@10.3.1': + optional: true '@use-gesture/vanilla@10.3.1': dependencies: '@use-gesture/core': 10.3.1 + optional: true '@vitejs/plugin-basic-ssl@1.1.0(vite@5.1.7(@types/node@20.12.12)(less@4.2.0)(sass@1.71.1)(terser@5.29.1))': dependencies: @@ -9038,7 +8902,7 @@ snapshots: clone@1.0.4: {} - code-block-writer@12.0.0: {} + code-block-writer@13.0.1: {} color-convert@1.9.3: dependencies: @@ -11233,16 +11097,18 @@ snapshots: dependencies: tslib: 2.6.2 - ngxtension@3.0.1(@angular/common@17.3.6(@angular/core@17.3.6(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.6(rxjs@7.8.1)(zone.js@0.14.4))(@use-gesture/vanilla@10.3.1)(rxjs@7.8.1): + ngxtension@3.2.0(@angular/common@17.3.6(@angular/core@17.3.6(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1))(@angular/core@17.3.6(rxjs@7.8.1)(zone.js@0.14.4))(@use-gesture/vanilla@10.3.1)(rxjs@7.8.1): dependencies: + '@angular-eslint/bundled-angular-compiler': 17.3.0 '@angular/common': 17.3.6(@angular/core@17.3.6(rxjs@7.8.1)(zone.js@0.14.4))(rxjs@7.8.1) '@angular/core': 17.3.6(rxjs@7.8.1)(zone.js@0.14.4) - '@nx/devkit': 17.3.2(nx@17.3.2) - '@use-gesture/vanilla': 10.3.1 - nx: 17.3.2 + '@nx/devkit': 18.3.5(nx@18.3.5) + nx: 18.3.5 rxjs: 7.8.1 - ts-morph: 21.0.1 + ts-morph: 22.0.0 tslib: 2.6.2 + optionalDependencies: + '@use-gesture/vanilla': 10.3.1 transitivePeerDependencies: - '@swc-node/register' - '@swc/core' @@ -11385,56 +11251,6 @@ snapshots: dependencies: boolbase: 1.0.0 - nx@17.3.2: - dependencies: - '@nrwl/tao': 17.3.2 - '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.0-rc.46 - '@zkochan/js-yaml': 0.0.6 - axios: 1.7.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - cliui: 8.0.1 - dotenv: 16.3.2 - dotenv-expand: 10.0.0 - enquirer: 2.3.6 - figures: 3.2.0 - flat: 5.0.2 - fs-extra: 11.2.0 - ignore: 5.3.1 - jest-diff: 29.7.0 - js-yaml: 4.1.0 - jsonc-parser: 3.2.0 - lines-and-columns: 2.0.4 - minimatch: 9.0.3 - node-machine-id: 1.1.12 - npm-run-path: 4.0.1 - open: 8.4.2 - ora: 5.3.0 - semver: 7.6.2 - string-width: 4.2.3 - strong-log-transformer: 2.1.0 - tar-stream: 2.2.0 - tmp: 0.2.3 - tsconfig-paths: 4.2.0 - tslib: 2.6.2 - yargs: 17.7.2 - yargs-parser: 21.1.1 - optionalDependencies: - '@nx/nx-darwin-arm64': 17.3.2 - '@nx/nx-darwin-x64': 17.3.2 - '@nx/nx-freebsd-x64': 17.3.2 - '@nx/nx-linux-arm-gnueabihf': 17.3.2 - '@nx/nx-linux-arm64-gnu': 17.3.2 - '@nx/nx-linux-arm64-musl': 17.3.2 - '@nx/nx-linux-x64-gnu': 17.3.2 - '@nx/nx-linux-x64-musl': 17.3.2 - '@nx/nx-win32-arm64-msvc': 17.3.2 - '@nx/nx-win32-x64-msvc': 17.3.2 - transitivePeerDependencies: - - debug - nx@18.3.5: dependencies: '@nrwl/tao': 18.3.5 @@ -11597,7 +11413,7 @@ snapshots: bl: 4.1.0 chalk: 4.1.2 cli-cursor: 3.1.0 - cli-spinners: 2.6.1 + cli-spinners: 2.9.2 is-interactive: 1.0.0 log-symbols: 4.1.0 strip-ansi: 6.0.1 @@ -12636,10 +12452,10 @@ snapshots: dependencies: typescript: 5.3.3 - ts-morph@21.0.1: + ts-morph@22.0.0: dependencies: - '@ts-morph/common': 0.22.0 - code-block-writer: 12.0.0 + '@ts-morph/common': 0.23.0 + code-block-writer: 13.0.1 tsconfig-paths@3.15.0: dependencies: diff --git a/src/app/_shared/EnvironmentHelper.ts b/src/app/_shared/EnvironmentHelper.ts index cd6fa9d7..19ef9364 100644 --- a/src/app/_shared/EnvironmentHelper.ts +++ b/src/app/_shared/EnvironmentHelper.ts @@ -25,7 +25,7 @@ export class EnvironmentHelper { return environment.logoUrl ?? '/assets/logo.svg'; } - public static getTitlePrefix(): string { - return environment.titlePrefix ?? 'my.kellner.team'; + public static getTitleSuffix(): string { + return environment.titleSuffix; } } diff --git a/src/app/_shared/custom-title.strategy.ts b/src/app/_shared/custom-title.strategy.ts index 39906768..f05ad5e6 100644 --- a/src/app/_shared/custom-title.strategy.ts +++ b/src/app/_shared/custom-title.strategy.ts @@ -11,7 +11,7 @@ import {EnvironmentHelper} from './EnvironmentHelper'; providedIn: 'root', }) export class CustomTitleStrategy extends TitleStrategy { - titlePrefix = EnvironmentHelper.getTitlePrefix(); + titlePrefix = EnvironmentHelper.getTitleSuffix(); translocoService = inject(TranslocoService); title = inject(Title); @@ -26,7 +26,7 @@ export class CustomTitleStrategy extends TitleStrategy { .selectTranslate(title) .pipe(first()) .subscribe((translation) => { - this.title.setTitle(`${this.titlePrefix} - ${translation}`); + this.title.setTitle(`${translation} • ${this.titlePrefix}`); }); } } diff --git a/src/app/_shared/form.ts b/src/app/_shared/form.ts index 2476e80a..d4e09561 100644 --- a/src/app/_shared/form.ts +++ b/src/app/_shared/form.ts @@ -65,7 +65,9 @@ export function injectOnSubmit @@ -59,7 +59,7 @@ export interface appDownload { placement="bottom" [copyable]="appLink.link" [ngbTooltip]="'COPIED' | transloco" - (click)="c.copy(t)" + (mousedown)="c.copy(t)" > diff --git a/src/app/_shared/ui/footer/about-modal.component.ts b/src/app/_shared/ui/footer/about-modal.component.ts index f4e49223..c394d02c 100755 --- a/src/app/_shared/ui/footer/about-modal.component.ts +++ b/src/app/_shared/ui/footer/about-modal.component.ts @@ -17,7 +17,7 @@ import {EnvironmentHelper} from '../../EnvironmentHelper'; template: ` `, standalone: true, diff --git a/src/app/_shared/ui/footer/footer.component.ts b/src/app/_shared/ui/footer/footer.component.ts index fe73ba36..510b24db 100644 --- a/src/app/_shared/ui/footer/footer.component.ts +++ b/src/app/_shared/ui/footer/footer.component.ts @@ -14,11 +14,11 @@ import {injectWindow} from 'dfx-helper'; template: `