Start application

This commit is contained in:
Lallois
2025-11-13 15:40:43 +01:00
commit 91876effb4
38 changed files with 9938 additions and 0 deletions

323
.gitignore vendored Normal file
View File

@@ -0,0 +1,323 @@
# Created by https://www.toptal.com/developers/gitignore/api/angular,node,webstorm+all,visualstudiocode,windows,linux
# Edit at https://www.toptal.com/developers/gitignore?templates=angular,node,webstorm+all,visualstudiocode,windows,linux
### Angular ###
## Angular ##
# compiled output
dist/
tmp/
app/**/*.js
app/**/*.js.map
# dependencies
node_modules/
bower_components/
# IDEs and editors
.idea/
# misc
.sass-cache/
connect.lock/
coverage/
libpeerconnection.log/
npm-debug.log
testem.log
typings/
.angular/
# e2e
e2e/*.js
e2e/*.map
# System Files
.DS_Store/
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
### Node Patch ###
# Serverless Webpack directories
.webpack/
# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide
### WebStorm+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
.idea/sonarlint/
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### WebStorm+all Patch ###
# Ignore everything but code style settings and run configurations
# that are supposed to be shared within teams.
.idea/*
!.idea/codeStyles
!.idea/runConfigurations
### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# End of https://www.toptal.com/developers/gitignore/api/angular,node,webstorm+all,visualstudiocode,windows,linux

4
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
"recommendations": ["angular.ng-template"]
}

13
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,13 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "ng serve",
"type": "chrome",
"request": "launch",
"preLaunchTask": "npm: start",
"url": "http://localhost:4200/"
}
]
}

24
.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,24 @@
{
// For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "start",
"isBackground": true,
"problemMatcher": {
"owner": "typescript",
"pattern": "$tsc",
"background": {
"activeOnStart": true,
"beginsPattern": {
"regexp": "(.*?)"
},
"endsPattern": {
"regexp": "bundle generation complete"
}
}
}
}
]
}

59
README.md Normal file
View File

@@ -0,0 +1,59 @@
# ApiLibraryFrontend
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.3.9.
## Development server
To start a local development server, run:
```bash
ng serve
```
Once the server is running, open your browser and navigate to `http://localhost:4200/`. The application will automatically reload whenever you modify any of the source files.
## Code scaffolding
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
```bash
ng generate component component-name
```
For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
```bash
ng generate --help
```
## Building
To build the project run:
```bash
ng build
```
This will compile your project and store the build artifacts in the `dist/` directory. By default, the production build optimizes your application for performance and speed.
## Running unit tests
To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
```bash
ng test
```
## Running end-to-end tests
For end-to-end (e2e) testing, run:
```bash
ng e2e
```
Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
## Additional Resources
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.

107
angular.json Normal file
View File

@@ -0,0 +1,107 @@
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"api-library-frontend": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"skipTests": true
},
"@schematics/angular:class": {
"skipTests": true
},
"@schematics/angular:directive": {
"skipTests": true
},
"@schematics/angular:guard": {
"skipTests": true
},
"@schematics/angular:interceptor": {
"skipTests": true
},
"@schematics/angular:pipe": {
"skipTests": true
},
"@schematics/angular:resolver": {
"skipTests": true
},
"@schematics/angular:service": {
"skipTests": true
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular/build:application",
"options": {
"browser": "src/main.ts",
"polyfills": [
"zone.js"
],
"tsConfig": "tsconfig.app.json",
"assets": [
{
"glob": "**/*",
"input": "public"
},
{
"glob": "**/*",
"input": "./node_modules/@ant-design/icons-angular/src/inline-svg/",
"output": "/assets/"
}
],
"styles": [
"src/theme.less",
"src/styles.css"
]
},
"configurations": {
"production": {
"budgets": [
{
"type": "initial",
"maximumWarning": "2MB",
"maximumError": "5MB"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kB",
"maximumError": "10kB"
}
],
"outputHashing": "all"
},
"development": {
"optimization": false,
"extractLicenses": false,
"sourceMap": true
}
},
"defaultConfiguration": "production"
},
"serve": {
"builder": "@angular/build:dev-server",
"configurations": {
"production": {
"buildTarget": "api-library-frontend:build:production"
},
"development": {
"buildTarget": "api-library-frontend:build:development"
}
},
"defaultConfiguration": "development"
},
"extract-i18n": {
"builder": "@angular/build:extract-i18n"
}
}
}
},
"cli": {
"analytics": false
}
}

86
logo.svg Normal file
View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 473.931 473.931" xml:space="preserve">
<circle style="fill:#357180;" cx="236.966" cy="236.966" r="236.966"/>
<path style="fill:#036A7B;" d="M139.942,330.659c0,17.65-14.301,31.947-31.947,31.947l0,0c-17.642,0-17.586-14.297-17.586-31.947
v-0.673c0-17.642-0.056-31.943,17.586-31.943l0,0c17.646,0,31.947,14.301,31.947,31.943L139.942,330.659L139.942,330.659z"/>
<rect x="114.457" y="306.637" style="fill:#CDCDCE;" width="251.11" height="46.308"/>
<g>
<rect x="114.457" y="306.226" style="fill:#D7D7D7;" width="251.11" height="6.26"/>
<rect x="114.457" y="319.958" style="fill:#D7D7D7;" width="251.11" height="6.256"/>
<rect x="114.457" y="333.129" style="fill:#D7D7D7;" width="251.11" height="6.26"/>
<rect x="114.457" y="346.412" style="fill:#D7D7D7;" width="251.11" height="6.26"/>
</g>
<g>
<path style="fill:#028CA3;" d="M378.835,303.06c0,2.724-1.609,4.932-3.585,4.932H110.513c-1.983,0-3.592-2.211-3.592-4.932l0,0
c0-2.728,1.609-4.932,3.592-4.932H375.25C377.226,298.128,378.835,300.336,378.835,303.06L378.835,303.06z"/>
<path style="fill:#028CA3;" d="M378.835,357.626c0,2.728-1.609,4.932-3.585,4.932H110.513c-1.983,0-3.592-2.208-3.592-4.932l0,0
c0-2.724,1.609-4.932,3.592-4.932H375.25C377.226,352.691,378.835,354.902,378.835,357.626L378.835,357.626z"/>
<rect x="106.921" y="302.693" style="fill:#028CA3;" width="10.769" height="55.277"/>
</g>
<path style="fill:#1D8D45;" d="M323.067,268.486c0,16.303,13.216,29.508,29.511,29.508l0,0c16.295,0,16.247-13.201,16.247-29.508
v-0.625c0-16.292,0.052-29.508-16.247-29.508l0,0c-16.292,0-29.511,13.212-29.511,29.508V268.486z"/>
<rect x="117.764" y="246.301" style="fill:#CDCDCE;" width="228.846" height="42.772"/>
<g>
<rect x="117.764" y="245.912" style="fill:#D7D7D7;" width="228.846" height="5.781"/>
<rect x="117.764" y="258.593" style="fill:#D7D7D7;" width="228.846" height="5.781"/>
<rect x="117.764" y="270.791" style="fill:#D7D7D7;" width="228.846" height="5.781"/>
<rect x="117.764" y="283.064" style="fill:#D7D7D7;" width="228.846" height="5.781"/>
</g>
<g>
<path style="fill:#21AC4B;" d="M105.495,242.99c0,2.518,1.482,4.557,3.315,4.557h241.445c1.826,0,3.315-2.039,3.315-4.557l0,0
c0-2.511-1.485-4.55-3.315-4.55H108.81C106.981,238.44,105.495,240.479,105.495,242.99L105.495,242.99z"/>
<path style="fill:#21AC4B;" d="M105.495,293.391c0,2.518,1.482,4.557,3.315,4.557h241.445c1.826,0,3.315-2.039,3.315-4.557l0,0
c0-2.514-1.485-4.557-3.315-4.557H108.81C106.981,288.838,105.495,290.881,105.495,293.391L105.495,293.391z"/>
<rect x="343.643" y="242.649" style="fill:#21AC4B;" width="9.942" height="51.06"/>
</g>
<path style="fill:#8C402B;" d="M310.48,213.561c0,13.732,11.117,24.845,24.845,24.845l0,0c13.721,0,13.68-11.113,13.68-24.845
v-0.528c0-13.721,0.041-24.853-13.68-24.853l0,0c-13.729,0-24.845,11.132-24.845,24.853V213.561z"/>
<rect x="133.701" y="194.871" style="fill:#CDCDCE;" width="196.592" height="36.018"/>
<g>
<rect x="133.701" y="194.534" style="fill:#D7D7D7;" width="196.592" height="4.864"/>
<rect x="133.701" y="205.224" style="fill:#D7D7D7;" width="196.592" height="4.868"/>
<rect x="133.701" y="215.488" style="fill:#D7D7D7;" width="196.592" height="4.864"/>
<rect x="133.701" y="225.815" style="fill:#D7D7D7;" width="196.592" height="4.864"/>
</g>
<g>
<path style="fill:#BB5538;" d="M123.373,192.087c0,2.118,1.253,3.839,2.788,3.839h207.211c1.542,0,2.788-1.721,2.788-3.839l0,0
c0-2.114-1.246-3.828-2.788-3.828H126.161C124.623,188.259,123.373,189.973,123.373,192.087L123.373,192.087z"/>
<path style="fill:#BB5538;" d="M123.373,234.534c0,2.114,1.253,3.828,2.788,3.828h207.211c1.542,0,2.788-1.714,2.788-3.828l0,0
c0-2.118-1.246-3.839-2.788-3.839H126.161C124.623,230.695,123.373,232.416,123.373,234.534L123.373,234.534z"/>
<rect x="327.778" y="191.803" style="fill:#BB5538;" width="8.37" height="42.989"/>
</g>
<path style="fill:#036A7B;" d="M148.638,163.212c0,13.732-11.117,24.845-24.845,24.845l0,0c-13.721,0-13.676-11.113-13.676-24.845
v-0.528c0-13.721-0.045-24.849,13.676-24.849l0,0c13.729,0,24.845,11.128,24.845,24.849V163.212z"/>
<rect x="128.825" y="144.533" style="fill:#CDCDCE;" width="221.063" height="36.018"/>
<g>
<rect x="128.825" y="144.204" style="fill:#D7D7D7;" width="221.063" height="4.868"/>
<rect x="128.825" y="154.871" style="fill:#D7D7D7;" width="221.063" height="4.864"/>
<rect x="128.825" y="165.161" style="fill:#D7D7D7;" width="221.063" height="4.872"/>
<rect x="128.825" y="175.474" style="fill:#D7D7D7;" width="221.063" height="4.868"/>
</g>
<g>
<path style="fill:#028CA3;" d="M360.212,141.742c0,2.122-1.253,3.839-2.788,3.839H125.749c-1.542,0-2.788-1.717-2.788-3.839l0,0
c0-2.114,1.246-3.832,2.788-3.832h231.675C358.958,137.91,360.212,139.628,360.212,141.742L360.212,141.742z"/>
<path style="fill:#028CA3;" d="M360.212,184.188c0,2.114-1.253,3.832-2.788,3.832H125.749c-1.542,0-2.788-1.717-2.788-3.832l0,0
c0-2.118,1.246-3.839,2.788-3.839h231.675C358.958,180.349,360.212,182.07,360.212,184.188L360.212,184.188z"/>
<rect x="122.962" y="141.461" style="fill:#028CA3;" width="8.37" height="42.989"/>
</g>
<path style="fill:#8C402B;" d="M172.798,118.644c0,10.589-8.572,19.162-19.162,19.162l0,0c-10.582,0-10.556-8.572-10.556-19.162
v-0.408c0-10.585-0.026-19.165,10.556-19.165l0,0c10.589,0,19.162,8.58,19.162,19.165V118.644z"/>
<rect x="157.528" y="104.234" style="fill:#CDCDCE;" width="154.759" height="27.779"/>
<g>
<rect x="157.528" y="103.976" style="fill:#D7D7D7;" width="154.759" height="3.742"/>
<rect x="157.528" y="112.215" style="fill:#D7D7D7;" width="154.759" height="3.742"/>
<rect x="157.528" y="120.148" style="fill:#D7D7D7;" width="154.759" height="3.742"/>
<rect x="157.528" y="128.08" style="fill:#D7D7D7;" width="154.759" height="3.742"/>
</g>
<g>
<path style="fill:#BB5538;" d="M320.239,102.086c0,1.635-0.969,2.96-2.151,2.96H155.145c-1.19,0-2.152-1.325-2.152-2.96l0,0
c0-1.635,0.962-2.96,2.152-2.96h162.942C319.269,99.127,320.239,100.451,320.239,102.086L320.239,102.086z"/>
<path style="fill:#BB5538;" d="M320.239,134.823c0,1.631-0.969,2.952-2.151,2.952H155.145c-1.19,0-2.152-1.325-2.152-2.952l0,0
c0-1.639,0.962-2.963,2.152-2.963h162.942C319.269,131.86,320.239,133.184,320.239,134.823L320.239,134.823z"/>
<rect x="152.993" y="101.851" style="fill:#BB5538;" width="6.458" height="33.159"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

8926
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

45
package.json Normal file
View File

@@ -0,0 +1,45 @@
{
"name": "api-library-frontend",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"watch": "ng build --watch --configuration development"
},
"prettier": {
"printWidth": 100,
"singleQuote": true,
"overrides": [
{
"files": "*.html",
"options": {
"parser": "angular"
}
}
]
},
"private": true,
"dependencies": {
"@angular/common": "^20.3.0",
"@angular/compiler": "^20.3.0",
"@angular/core": "^20.3.0",
"@angular/forms": "^20.3.0",
"@angular/platform-browser": "^20.3.0",
"@angular/router": "^20.3.0",
"@tailwindcss/postcss": "^4.1.17",
"ng-zorro-antd": "^20.4.0",
"postcss": "^8.5.6",
"rxjs": "~7.8.0",
"tailwindcss": "^4.1.17",
"tslib": "^2.3.0",
"zone.js": "~0.15.0"
},
"devDependencies": {
"@angular/build": "^20.3.9",
"@angular/cli": "^20.3.9",
"@angular/compiler-cli": "^20.3.0",
"less": "^4.2.0",
"typescript": "~5.9.2"
}
}

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

86
public/logo.svg Normal file
View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="0 0 473.931 473.931" xml:space="preserve">
<circle style="fill:#357180;" cx="236.966" cy="236.966" r="236.966"/>
<path style="fill:#036A7B;" d="M139.942,330.659c0,17.65-14.301,31.947-31.947,31.947l0,0c-17.642,0-17.586-14.297-17.586-31.947
v-0.673c0-17.642-0.056-31.943,17.586-31.943l0,0c17.646,0,31.947,14.301,31.947,31.943L139.942,330.659L139.942,330.659z"/>
<rect x="114.457" y="306.637" style="fill:#CDCDCE;" width="251.11" height="46.308"/>
<g>
<rect x="114.457" y="306.226" style="fill:#D7D7D7;" width="251.11" height="6.26"/>
<rect x="114.457" y="319.958" style="fill:#D7D7D7;" width="251.11" height="6.256"/>
<rect x="114.457" y="333.129" style="fill:#D7D7D7;" width="251.11" height="6.26"/>
<rect x="114.457" y="346.412" style="fill:#D7D7D7;" width="251.11" height="6.26"/>
</g>
<g>
<path style="fill:#028CA3;" d="M378.835,303.06c0,2.724-1.609,4.932-3.585,4.932H110.513c-1.983,0-3.592-2.211-3.592-4.932l0,0
c0-2.728,1.609-4.932,3.592-4.932H375.25C377.226,298.128,378.835,300.336,378.835,303.06L378.835,303.06z"/>
<path style="fill:#028CA3;" d="M378.835,357.626c0,2.728-1.609,4.932-3.585,4.932H110.513c-1.983,0-3.592-2.208-3.592-4.932l0,0
c0-2.724,1.609-4.932,3.592-4.932H375.25C377.226,352.691,378.835,354.902,378.835,357.626L378.835,357.626z"/>
<rect x="106.921" y="302.693" style="fill:#028CA3;" width="10.769" height="55.277"/>
</g>
<path style="fill:#1D8D45;" d="M323.067,268.486c0,16.303,13.216,29.508,29.511,29.508l0,0c16.295,0,16.247-13.201,16.247-29.508
v-0.625c0-16.292,0.052-29.508-16.247-29.508l0,0c-16.292,0-29.511,13.212-29.511,29.508V268.486z"/>
<rect x="117.764" y="246.301" style="fill:#CDCDCE;" width="228.846" height="42.772"/>
<g>
<rect x="117.764" y="245.912" style="fill:#D7D7D7;" width="228.846" height="5.781"/>
<rect x="117.764" y="258.593" style="fill:#D7D7D7;" width="228.846" height="5.781"/>
<rect x="117.764" y="270.791" style="fill:#D7D7D7;" width="228.846" height="5.781"/>
<rect x="117.764" y="283.064" style="fill:#D7D7D7;" width="228.846" height="5.781"/>
</g>
<g>
<path style="fill:#21AC4B;" d="M105.495,242.99c0,2.518,1.482,4.557,3.315,4.557h241.445c1.826,0,3.315-2.039,3.315-4.557l0,0
c0-2.511-1.485-4.55-3.315-4.55H108.81C106.981,238.44,105.495,240.479,105.495,242.99L105.495,242.99z"/>
<path style="fill:#21AC4B;" d="M105.495,293.391c0,2.518,1.482,4.557,3.315,4.557h241.445c1.826,0,3.315-2.039,3.315-4.557l0,0
c0-2.514-1.485-4.557-3.315-4.557H108.81C106.981,288.838,105.495,290.881,105.495,293.391L105.495,293.391z"/>
<rect x="343.643" y="242.649" style="fill:#21AC4B;" width="9.942" height="51.06"/>
</g>
<path style="fill:#8C402B;" d="M310.48,213.561c0,13.732,11.117,24.845,24.845,24.845l0,0c13.721,0,13.68-11.113,13.68-24.845
v-0.528c0-13.721,0.041-24.853-13.68-24.853l0,0c-13.729,0-24.845,11.132-24.845,24.853V213.561z"/>
<rect x="133.701" y="194.871" style="fill:#CDCDCE;" width="196.592" height="36.018"/>
<g>
<rect x="133.701" y="194.534" style="fill:#D7D7D7;" width="196.592" height="4.864"/>
<rect x="133.701" y="205.224" style="fill:#D7D7D7;" width="196.592" height="4.868"/>
<rect x="133.701" y="215.488" style="fill:#D7D7D7;" width="196.592" height="4.864"/>
<rect x="133.701" y="225.815" style="fill:#D7D7D7;" width="196.592" height="4.864"/>
</g>
<g>
<path style="fill:#BB5538;" d="M123.373,192.087c0,2.118,1.253,3.839,2.788,3.839h207.211c1.542,0,2.788-1.721,2.788-3.839l0,0
c0-2.114-1.246-3.828-2.788-3.828H126.161C124.623,188.259,123.373,189.973,123.373,192.087L123.373,192.087z"/>
<path style="fill:#BB5538;" d="M123.373,234.534c0,2.114,1.253,3.828,2.788,3.828h207.211c1.542,0,2.788-1.714,2.788-3.828l0,0
c0-2.118-1.246-3.839-2.788-3.839H126.161C124.623,230.695,123.373,232.416,123.373,234.534L123.373,234.534z"/>
<rect x="327.778" y="191.803" style="fill:#BB5538;" width="8.37" height="42.989"/>
</g>
<path style="fill:#036A7B;" d="M148.638,163.212c0,13.732-11.117,24.845-24.845,24.845l0,0c-13.721,0-13.676-11.113-13.676-24.845
v-0.528c0-13.721-0.045-24.849,13.676-24.849l0,0c13.729,0,24.845,11.128,24.845,24.849V163.212z"/>
<rect x="128.825" y="144.533" style="fill:#CDCDCE;" width="221.063" height="36.018"/>
<g>
<rect x="128.825" y="144.204" style="fill:#D7D7D7;" width="221.063" height="4.868"/>
<rect x="128.825" y="154.871" style="fill:#D7D7D7;" width="221.063" height="4.864"/>
<rect x="128.825" y="165.161" style="fill:#D7D7D7;" width="221.063" height="4.872"/>
<rect x="128.825" y="175.474" style="fill:#D7D7D7;" width="221.063" height="4.868"/>
</g>
<g>
<path style="fill:#028CA3;" d="M360.212,141.742c0,2.122-1.253,3.839-2.788,3.839H125.749c-1.542,0-2.788-1.717-2.788-3.839l0,0
c0-2.114,1.246-3.832,2.788-3.832h231.675C358.958,137.91,360.212,139.628,360.212,141.742L360.212,141.742z"/>
<path style="fill:#028CA3;" d="M360.212,184.188c0,2.114-1.253,3.832-2.788,3.832H125.749c-1.542,0-2.788-1.717-2.788-3.832l0,0
c0-2.118,1.246-3.839,2.788-3.839h231.675C358.958,180.349,360.212,182.07,360.212,184.188L360.212,184.188z"/>
<rect x="122.962" y="141.461" style="fill:#028CA3;" width="8.37" height="42.989"/>
</g>
<path style="fill:#8C402B;" d="M172.798,118.644c0,10.589-8.572,19.162-19.162,19.162l0,0c-10.582,0-10.556-8.572-10.556-19.162
v-0.408c0-10.585-0.026-19.165,10.556-19.165l0,0c10.589,0,19.162,8.58,19.162,19.165V118.644z"/>
<rect x="157.528" y="104.234" style="fill:#CDCDCE;" width="154.759" height="27.779"/>
<g>
<rect x="157.528" y="103.976" style="fill:#D7D7D7;" width="154.759" height="3.742"/>
<rect x="157.528" y="112.215" style="fill:#D7D7D7;" width="154.759" height="3.742"/>
<rect x="157.528" y="120.148" style="fill:#D7D7D7;" width="154.759" height="3.742"/>
<rect x="157.528" y="128.08" style="fill:#D7D7D7;" width="154.759" height="3.742"/>
</g>
<g>
<path style="fill:#BB5538;" d="M320.239,102.086c0,1.635-0.969,2.96-2.151,2.96H155.145c-1.19,0-2.152-1.325-2.152-2.96l0,0
c0-1.635,0.962-2.96,2.152-2.96h162.942C319.269,99.127,320.239,100.451,320.239,102.086L320.239,102.086z"/>
<path style="fill:#BB5538;" d="M320.239,134.823c0,1.631-0.969,2.952-2.151,2.952H155.145c-1.19,0-2.152-1.325-2.152-2.952l0,0
c0-1.639,0.962-2.963,2.152-2.963h162.942C319.269,131.86,320.239,133.184,320.239,134.823L320.239,134.823z"/>
<rect x="152.993" y="101.851" style="fill:#BB5538;" width="6.458" height="33.159"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

19
src/app/app.config.ts Normal file
View File

@@ -0,0 +1,19 @@
import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZoneChangeDetection } from '@angular/core';
import { provideRouter } from '@angular/router';
import { routes } from './app.routes';
import { fr_FR, provideNzI18n } from 'ng-zorro-antd/i18n';
import { registerLocaleData } from '@angular/common';
import fr from '@angular/common/locales/fr';
import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';
import { provideHttpClient } from '@angular/common/http';
registerLocaleData(fr);
export const appConfig: ApplicationConfig = {
providers: [
provideBrowserGlobalErrorListeners(),
provideZoneChangeDetection({ eventCoalescing: true }),
provideRouter(routes), provideNzI18n(fr_FR), provideAnimationsAsync(), provideHttpClient()
]
};

46
src/app/app.css Normal file
View File

@@ -0,0 +1,46 @@
:host {
display: flex;
}
.app-layout {
height: 100vh;
}
.top-nav {
line-height: 64px;
}
.logo {
float: left;
height: 64px;
padding-right: 24px;
line-height: 64px;
background: #001529;
}
.logo img {
display: inline-block;
height: 32px;
width: 32px;
vertical-align: middle;
}
.logo h1 {
display: inline-block;
margin: 0 0 0 15px;
color: #fff;
font-weight: 600;
font-size: 20px;
font-family: Avenir,Helvetica Neue,Arial,Helvetica,sans-serif;
vertical-align: middle;
}
nz-content {
padding: 24px 50px;
}
.inner-content {
padding: 24px;
background: #fff;
height: 100%;
}

21
src/app/app.html Normal file
View File

@@ -0,0 +1,21 @@
<nz-layout class="app-layout">
<nz-header>
<div class="logo">
<a>
<img src="../logo.svg" alt="logo">
<h1>Pyrofêtes P4</h1>
</a>
</div>
<ul nz-menu class="top-nav" nzTheme="dark" nzMode="horizontal">
<li nz-menu-item routerLinkActive="ant-menu-item-selected" routerLink="/customers">Clients</li>
<li nz-menu-item routerLinkActive="ant-menu-item-selected" routerLink="/providers">Prestataires</li>
<li nz-menu-item routerLinkActive="ant-menu-item-selected" routerLink="/staff">Artificiers</li>
<li nz-menu-item routerLinkActive="ant-menu-item-selected" routerLink="/opportunities">Opportunités</li>
</ul>
</nz-header>
<nz-content>
<div class="inner-content">
<router-outlet></router-outlet>
</div>
</nz-content>
</nz-layout>

29
src/app/app.routes.ts Normal file
View File

@@ -0,0 +1,29 @@
import { Routes } from '@angular/router';
export const routes: Routes = [
{
path: '',
pathMatch: 'full',
redirectTo: '/customers'
},
{
path:'customers',
loadComponent: () => import('./pages/customers/customers').then(x => x.Customers)
},
{
path:'staff',
loadComponent: () => import('./pages/staff/staff').then(x => x.Staff)
},
{
path:'opportunities',
loadComponent: () => import('./pages/opportunities/opportunities').then(x => x.Opportunities)
},
{
path:'providers',
loadComponent: () => import('./pages/providers/providers').then(x => x.Providers)
}
];

12
src/app/app.ts Normal file
View File

@@ -0,0 +1,12 @@
import { Component } from '@angular/core';
import {RouterLink, RouterLinkActive, RouterOutlet} from '@angular/router';
import { NzLayoutModule } from 'ng-zorro-antd/layout';
import { NzMenuModule } from 'ng-zorro-antd/menu';
@Component({
selector: 'app-root',
imports: [RouterOutlet, NzLayoutModule, NzMenuModule, RouterLinkActive, RouterLink],
templateUrl: './app.html',
styleUrl: './app.css'
})
export class App {}

View File

View File

@@ -0,0 +1 @@
<p>customers works!</p>

View File

@@ -0,0 +1,11 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-customers',
imports: [],
templateUrl: './customers.html',
styleUrl: './customers.css',
})
export class Customers {
}

View File

@@ -0,0 +1 @@
<p>opportunities works!</p>

View File

@@ -0,0 +1,11 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-opportunities',
imports: [],
templateUrl: './opportunities.html',
styleUrl: './opportunities.css',
})
export class Opportunities {
}

View File

View File

@@ -0,0 +1 @@
<p>providers works!</p>

View File

@@ -0,0 +1,11 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-providers',
imports: [],
templateUrl: './providers.html',
styleUrl: './providers.css',
})
export class Providers {
}

View File

View File

@@ -0,0 +1 @@
<p>staff works!</p>

View File

@@ -0,0 +1,11 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-staff',
imports: [],
templateUrl: './staff.html',
styleUrl: './staff.css',
})
export class Staff {
}

View File

View File

@@ -0,0 +1 @@
<router-outlet/>

View File

@@ -0,0 +1,6 @@
import { Routes } from '@angular/router';
import { Welcome } from './welcome';
export const WELCOME_ROUTES: Routes = [
{ path: '', component: Welcome },
];

View File

@@ -0,0 +1,14 @@
import { Component } from '@angular/core';
import {RouterOutlet} from "@angular/router";
@Component({
selector: 'app-welcome',
imports: [
RouterOutlet
],
templateUrl: './welcome.html',
styleUrl: './welcome.css'
})
export class Welcome {
}

13
src/index.html Normal file
View File

@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Pyrofètes Frontend</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root></app-root>
</body>
</html>

6
src/main.ts Normal file
View File

@@ -0,0 +1,6 @@
import { bootstrapApplication } from '@angular/platform-browser';
import { appConfig } from './app/app.config';
import { App } from './app/app';
bootstrapApplication(App, appConfig)
.catch((err) => console.error(err));

4
src/styles.css Normal file
View File

@@ -0,0 +1,4 @@
/* You can add global styles to this file, and also import other style files */
@layer theme, base, components, utilities;
@import "tailwindcss/theme.css" layer(theme);
@import "tailwindcss/utilities.css" layer(utilities) important;

9
src/theme.less Normal file
View File

@@ -0,0 +1,9 @@
// Custom Theming for NG-ZORRO
// For more information: https://ng.ant.design/docs/customize-theme/en
@import "../node_modules/ng-zorro-antd/ng-zorro-antd.less";
// Override less variables to here
// View all variables: https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/components/style/themes/default.less
// @primary-color: #1890ff;

15
tsconfig.app.json Normal file
View File

@@ -0,0 +1,15 @@
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
"types": []
},
"include": [
"src/**/*.ts"
],
"exclude": [
"src/**/*.spec.ts"
]
}

22
tsconfig.json Normal file
View File

@@ -0,0 +1,22 @@
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
{
"compileOnSave": false,
"compilerOptions": {
"skipLibCheck": true,
"isolatedModules": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "ES2022",
"module": "preserve"
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false
},
"files": [],
"references": [
{
"path": "./tsconfig.app.json"
}
]
}