up build conf csc
This commit is contained in:
parent
4994c9b12a
commit
eaa0752845
19 changed files with 5150 additions and 13670 deletions
59
README.md
59
README.md
|
@ -1,6 +1,65 @@
|
|||
# Implémentation d'essai du design system
|
||||
|
||||
initialiser une app Angular latest,
|
||||
importer le dépot ng-demo
|
||||
et utiliser ses composants.
|
||||
|
||||
Faire un store redux pour les applications.
|
||||
|
||||
# déploiement docker
|
||||
|
||||
Pour lancer l'application dans Docker :
|
||||
|
||||
1. **Construire l'image Docker**
|
||||
Placez-vous à la racine du projet et exécutez :
|
||||
```
|
||||
docker build -t eqlair-app .
|
||||
```
|
||||
|
||||
2. **Lancer le conteneur**
|
||||
```
|
||||
docker run -p 4300:80 eqlair-app
|
||||
```
|
||||
|
||||
3. **Accéder à l'application**
|
||||
Ouvrez votre navigateur à l'adresse :
|
||||
[http://localhost:4200](http://localhost:4200)
|
||||
|
||||
> **Remarque :**
|
||||
> - Assurez-vous que le `Dockerfile` est présent à la racine du projet.
|
||||
> - Adaptez les ports si nécessaire selon la configuration de votre application Angular.
|
||||
> - Pour le développement, vous pouvez monter le dossier local en volume pour bénéficier du hot-reload.
|
||||
|
||||
---
|
||||
|
||||
## Se connecter dans le conteneur pour lister les dossiers
|
||||
|
||||
Pour ouvrir un shell dans le conteneur en cours d'exécution et lister les dossiers:
|
||||
|
||||
1. **Lancer le conteneur en mode interactif (optionnel)**
|
||||
Pour démarrer le conteneur avec un shell bash:
|
||||
```
|
||||
docker run -it eqlair-app bash
|
||||
```
|
||||
Vous serez alors directement dans le shell du conteneur.
|
||||
|
||||
2. **Se connecter à un conteneur déjà lancé**
|
||||
- Listez les conteneurs en cours:
|
||||
```
|
||||
docker ps
|
||||
```
|
||||
- Repérez l'`CONTAINER ID` de votre conteneur, puis exécutez:
|
||||
```
|
||||
docker exec -it <CONTAINER_ID> bash
|
||||
```
|
||||
- Une fois dans le shell, vous pouvez lister les dossiers avec:
|
||||
```
|
||||
ls -al
|
||||
```
|
||||
|
||||
> **Astuce:**
|
||||
> Si `bash` n'est pas disponible dans l'image, essayez avec `sh`:
|
||||
> ```
|
||||
> docker exec -it <CONTAINER_ID> sh
|
||||
> ```
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
{
|
||||
"type": "initial",
|
||||
"maximumWarning": "500kB",
|
||||
"maximumError": "1MB"
|
||||
"maximumError": "2MB"
|
||||
},
|
||||
{
|
||||
"type": "anyComponentStyle",
|
||||
|
|
|
@ -19,4 +19,5 @@ import {RouterOutlet} from '@angular/router';
|
|||
})
|
||||
export class App {
|
||||
protected readonly title = signal('Exemple de Boutons');
|
||||
|
||||
}
|
||||
|
|
2992
my-workspace/package-lock.json
generated
2992
my-workspace/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -20,7 +20,11 @@
|
|||
]
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"@angular/build": "^20.1.5",
|
||||
"@angular/cli": "^20.1.4",
|
||||
"@angular/compiler-cli": "^20.1.0",
|
||||
"@angular/common": "^20.1.0",
|
||||
"@angular/compiler": "^20.1.0",
|
||||
"@angular/core": "^20.1.0",
|
||||
|
@ -28,12 +32,7 @@
|
|||
"@angular/platform-browser": "^20.1.0",
|
||||
"@angular/router": "^20.1.0",
|
||||
"rxjs": "~7.8.0",
|
||||
"tslib": "^2.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular/build": "^20.1.5",
|
||||
"@angular/cli": "^20.1.4",
|
||||
"@angular/compiler-cli": "^20.1.0",
|
||||
"tslib": "^2.3.0",
|
||||
"@types/jasmine": "~5.1.0",
|
||||
"angular-eslint": "20.1.1",
|
||||
"eslint": "^9.29.0",
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
import {Component} from '@angular/core';
|
||||
import {FormsModule} from '@angular/forms';
|
||||
import {MainButton} from '../main-button/main-button';
|
||||
import {NgClass} from '@angular/common';
|
||||
import {CommonModule, NgClass} from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'sae-feedback-button',
|
||||
imports: [
|
||||
FormsModule,
|
||||
MainButton,
|
||||
NgClass
|
||||
NgClass, CommonModule
|
||||
],
|
||||
templateUrl: './feedback-button.html',
|
||||
styleUrl: './feedback-button.scss'
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
import {Component, Input} from '@angular/core';
|
||||
// import {NgClass} from '@angular/common/directives';
|
||||
|
||||
export type ButtonKindType = '' | 'primary' | 'secondary' | 'ghost' | 'link';
|
||||
export type ButtonSizeType = '' | 'large' | 'medium' | 'small' | 'extrasm';
|
||||
|
@ -8,9 +7,7 @@ export type inconPositionKindType = '' | 'left' | 'right';
|
|||
@Component({
|
||||
selector: 'sae-m-button',
|
||||
standalone: true,
|
||||
imports: [
|
||||
// NgClass,
|
||||
],
|
||||
imports: [],
|
||||
templateUrl: './main-button.html',
|
||||
styleUrl: './main-button.scss'
|
||||
})
|
||||
|
|
|
@ -3,5 +3,8 @@
|
|||
"dest": "../../dist/sae-lib",
|
||||
"lib": {
|
||||
"entryFile": "src/public-api.ts"
|
||||
}
|
||||
},
|
||||
"allowedNonPeerDependencies": [
|
||||
"tslib"
|
||||
]
|
||||
}
|
||||
|
|
9995
my-workspace/projects/sae-lib/node_modules/.package-lock.json
generated
vendored
9995
my-workspace/projects/sae-lib/node_modules/.package-lock.json
generated
vendored
File diff suppressed because it is too large
Load diff
|
@ -9,10 +9,10 @@
|
|||
"@ngrx/store-devtools": "^20.0.0",
|
||||
"bulma": "^1.0.4",
|
||||
"remixicon": "^4.6.0",
|
||||
"tslib": "^2.3.0",
|
||||
"shepherd.js": "^14.5.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": "^2.3.0"
|
||||
},
|
||||
"sideEffects": false,
|
||||
"exports": {
|
||||
|
@ -21,7 +21,5 @@
|
|||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"bulma": "^1.0.4",
|
||||
"remixicon": "^4.6.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
{"key":"session","content":{"id":"Ix3wDFMRlQ2Zb5GmhrBfX","lastUsed":1754405232545}}
|
|
@ -1 +0,0 @@
|
|||
{"key":"telemetry-notification-date","content":1754405143553}
|
|
@ -1 +0,0 @@
|
|||
{"key":"lastEvents","content":{"boot":{"body":{"eventType":"boot","eventId":"xZYdPksHczA1INX7AsvlL","sessionId":"Ix3wDFMRlQ2Zb5GmhrBfX","payload":{"eventType":"init"},"context":{"isTTY":true,"platform":"Linux","nodeVersion":"24.4.1","storybookVersion":"9.1.1"}},"timestamp":1754405218145},"error":{"body":{"eventType":"error","eventId":"sLDTulcRmqzFEhxw8n1nC","sessionId":"Ix3wDFMRlQ2Zb5GmhrBfX","metadata":{"generatedAt":1754405232095,"userSince":1751030635227,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"testPackages":{},"hasRouterPackage":false,"packageManager":{"type":"npm","agent":"npm","nodeLinker":"node_modules"},"storybookVersionSpecifier":"9.1.1","language":"javascript"},"payload":{"name":"Error","eventType":"init","error":{"handled":true,"cause":{"handled":true,"cause":{"data":{"path":"$SNIP/angular.json"},"fromStorybook":true,"category":"CLI_INIT","documentation":"https://storybook.js.org/docs/faq#error-no-angularjson-file-found","code":2}},"message":"Error: SB_CLI_INIT_0002 (MissingAngularJsonError): An angular.json file was not found in the current working directory: $SNIP/angular.json\nStorybook needs it to work properly, so please rerun the command at the root of your project, where the angular.json file is located.\n\nMore info: https://storybook.js.org/docs/faq#error-no-angularjson-file-found\n","stack":"Error: Error: SB_CLI_INIT_0002 (MissingAngularJsonError): An angular.json file was not found in the current working directory: $SNIP/angular.json\nStorybook needs it to work properly, so please rerun the command at the root of your project, where the angular.json file is located.\n\nMore info: https://storybook.js.org/docs/faq#error-no-angularjson-file-found\n\n at installStorybook (file://$SNIP/cipherbliss/.npm/_npx/05823ecb1a3a987d/node_modules/create-storybook/dist/chunk-EIBBKXWT.js:2853:53)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async doInitiate (file://$SNIP/cipherbliss/.npm/_npx/05823ecb1a3a987d/node_modules/create-storybook/dist/chunk-EIBBKXWT.js:2870:310)\n at async withTelemetry (file://$SNIP/cipherbliss/.npm/_npx/05823ecb1a3a987d/node_modules/create-storybook/dist/chunk-EIBBKXWT.js:2742:2188)\n at async initiate (file://$SNIP/cipherbliss/.npm/_npx/05823ecb1a3a987d/node_modules/create-storybook/dist/chunk-EIBBKXWT.js:2908:236)\n at async _Command.<anonymous> (file://$SNIP/cipherbliss/.npm/_npx/05823ecb1a3a987d/node_modules/create-storybook/dist/bin/index.js:31:3332)","name":"Error"},"errorHash":"8e2e1e9640fa0a66c85f2cb312b42344ba3d4a586a97c1aa5a55969aa686ec1b","isErrorInstance":true},"context":{"isTTY":true,"platform":"Linux","nodeVersion":"24.4.1","storybookVersion":"9.1.1","anonymousId":"1f591bee98f0761149174fc6a5049f3bef2293872eb41a69c3addbc772a09109"}},"timestamp":1754405232545},"init-step":{"body":{"eventType":"init-step","eventId":"pxN60qk8IZ79gGUKSuD4z","sessionId":"Ix3wDFMRlQ2Zb5GmhrBfX","metadata":{"generatedAt":1754405218747,"userSince":1751030635227,"hasCustomBabel":false,"hasCustomWebpack":false,"hasStaticDirs":false,"hasStorybookEslint":false,"refCount":0,"testPackages":{},"hasRouterPackage":false,"packageManager":{"type":"npm","agent":"npm","nodeLinker":"node_modules"},"storybookVersionSpecifier":"9.1.1","language":"javascript"},"payload":{"step":"install-type","installType":"recommended"},"context":{"isTTY":true,"platform":"Linux","nodeVersion":"24.4.1","storybookVersion":"9.1.1","cliVersion":"9.1.1","anonymousId":"1f591bee98f0761149174fc6a5049f3bef2293872eb41a69c3addbc772a09109"}},"timestamp":1754405222674}}}
|
|
@ -1 +0,0 @@
|
|||
#prefix=/home/tykayn/.npm-global
|
15
sae-csc/csc_static.html
Normal file
15
sae-csc/csc_static.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<script type="module" src="/@vite/client"></script>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<title>Implem</title>
|
||||
<base href="/">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
<link rel="stylesheet" href="styles.css"></head>
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
<script src="polyfills.js" type="module"></script><script src="main.js" type="module"></script></body>
|
||||
</html>
|
5679
sae-csc/package-lock.json
generated
5679
sae-csc/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1,16 +1,14 @@
|
|||
{
|
||||
"name": "implem",
|
||||
"name": "sae-csc",
|
||||
"version": "0.0.0",
|
||||
"scripts": {
|
||||
"link-sae-lib": "bash ./scripts/link-sae-lib.sh",
|
||||
"postinstall": "npm run link-sae-lib",
|
||||
"ng": "ng",
|
||||
"start": "ng serve",
|
||||
"build": "ng build",
|
||||
"watch": "ng build --watch --configuration development",
|
||||
"test": "ng test",
|
||||
"storybook": "ng run implem:storybook",
|
||||
"build-storybook": "ng run implem:build-storybook"
|
||||
"storybook": "ng run sae-csc:storybook",
|
||||
"build-storybook": "ng run sae-csc:build-storybook"
|
||||
},
|
||||
"prettier": {
|
||||
"overrides": [
|
||||
|
@ -25,7 +23,6 @@
|
|||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular/common": "^20.1.0",
|
||||
"sae-lib": "file:../my-workspace/projects/sae-lib",
|
||||
"@angular/compiler": "^20.1.0",
|
||||
"@angular/core": "^20.1.0",
|
||||
"@angular/forms": "^20.1.0",
|
||||
|
@ -35,6 +32,8 @@
|
|||
"remixicon": "^4.6.0",
|
||||
"rxjs": "~7.8.0",
|
||||
"tslib": "^2.3.0",
|
||||
"shepherd.js": "^14.5.1",
|
||||
"sae-lib": "file:../my-workspace/dist/sae-lib",
|
||||
"zone.js": "~0.15.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@ -46,7 +45,7 @@
|
|||
"@storybook/addon-docs": "^9.1.1",
|
||||
"@storybook/angular": "^9.1.1",
|
||||
"@types/jasmine": "~5.1.0",
|
||||
"bulma": "^1.0.4 ",
|
||||
"bulma": "^1.0.4",
|
||||
"jasmine-core": "~5.8.0",
|
||||
"karma": "~6.4.0",
|
||||
"karma-chrome-launcher": "~3.2.0",
|
||||
|
@ -54,6 +53,7 @@
|
|||
"karma-jasmine": "~5.1.0",
|
||||
"karma-jasmine-html-reporter": "~2.1.0",
|
||||
"storybook": "^9.1.1",
|
||||
"typescript": "~5.8.2"
|
||||
"typescript": "~5.8.2",
|
||||
"remixicon": "^4.6.0"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
<div class="translate-texts is-{{disabled? 'disabled' : 'enabled'}}">
|
||||
<div class="translate-texts is-{{disabled? 'disabled' : 'enabled'}} {{fromTextFocused? 'is-focused' : ''}} {{!researchLaunched? 'has-shadow' : ''}}">
|
||||
|
||||
<div [ngClass]="{
|
||||
'is-focused' : fromTextFocused,
|
||||
'has-shadow' : !researchLaunched,
|
||||
}" id="fromText">
|
||||
|
||||
<div class="" id="fromText">
|
||||
|
||||
@if (!fileIsUploaded || !appState.fromText.length || !fromTextFocused) {
|
||||
<!-- @if (appState.fromText.length == 0) {-->
|
||||
|
@ -41,9 +39,8 @@
|
|||
}
|
||||
<!-- delete button from_text-->
|
||||
|
||||
<button (click)="emptyText('fromText')" [ngClass]="{
|
||||
'is-visible' : appState.fromText.length
|
||||
}" class="delete-button button">x
|
||||
<button (click)="emptyText('fromText')" class="{{appState.fromText.length ? 'is-visible' : ''}}
|
||||
delete-button button">x
|
||||
</button>
|
||||
@if (!fileIsUploaded) {
|
||||
<textarea
|
||||
|
@ -60,9 +57,8 @@
|
|||
}
|
||||
</div>
|
||||
|
||||
<div [ngClass]="{
|
||||
'is-focused' : toTextFocused
|
||||
}" id="toText">
|
||||
<div class="{{toTextFocused ? 'is-focused' : '' }} {{loadingResume ? 'has-shadow' : ''}}" id="toText">
|
||||
|
||||
|
||||
@if (loadingResume) {
|
||||
<div class="loading-container">
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
import {Component, EventEmitter, Inject, Input, Output} from '@angular/core';
|
||||
import {FormsModule} from '@angular/forms';
|
||||
import {DOCUMENT, NgClass} from '@angular/common';
|
||||
import {DOCUMENT} from '@angular/common';
|
||||
import {Store} from '@ngrx/store';
|
||||
import {ActionTypes, StateInterface} from './../../redux/reducers';
|
||||
|
||||
@Component({
|
||||
selector: 'sae-translate-texts',
|
||||
imports: [FormsModule, NgClass],
|
||||
imports: [FormsModule],
|
||||
templateUrl: './translate-texts.html',
|
||||
styleUrl: './translate-texts.scss'
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue