renommage de lib, rendre buildable

This commit is contained in:
Tykayn 2025-08-08 10:57:00 +02:00 committed by tykayn
parent 1706c64713
commit a89007a81b
9896 changed files with 478996 additions and 496 deletions

View file

@ -0,0 +1,12 @@
import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZoneChangeDetection } from '@angular/core';
import { provideRouter } from '@angular/router';
import { routes } from './app.routes';
export const appConfig: ApplicationConfig = {
providers: [
provideBrowserGlobalErrorListeners(),
provideZoneChangeDetection({ eventCoalescing: true }),
provideRouter(routes)
]
};

13
sae-csc/src/app/app.html Normal file
View file

@ -0,0 +1,13 @@
<html>
<head>
<title>CSC implémentation</title>
</head>
<body>
<router-outlet/>
<h1>
<img src="csc_logo.svg" alt="logo">
CSC
</h1>
</body>
</html>

View file

@ -0,0 +1,18 @@
import {Routes} from '@angular/router';
import {Main} from './pages/main/main';
import {Admin} from './pages/admin/admin';
import {SimilarCases} from './pages/similar-cases/similar-cases';
export const routes: Routes = [{
path: '',
component: Main
},
{
path: 'admin',
component: Admin
},
{
path: 'similar-cases',
component: SimilarCases
},
];

0
sae-csc/src/app/app.scss Normal file
View file

View file

@ -0,0 +1,23 @@
import { TestBed } from '@angular/core/testing';
import { App } from './app';
describe('App', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [App],
}).compileComponents();
});
it('should create the app', () => {
const fixture = TestBed.createComponent(App);
const app = fixture.componentInstance;
expect(app).toBeTruthy();
});
it('should render title', () => {
const fixture = TestBed.createComponent(App);
fixture.detectChanges();
const compiled = fixture.nativeElement as HTMLElement;
expect(compiled.querySelector('h1')?.textContent).toContain('Hello, implem');
});
});

12
sae-csc/src/app/app.ts Normal file
View file

@ -0,0 +1,12 @@
import { Component, signal } from '@angular/core';
import { RouterOutlet } from '@angular/router';
@Component({
selector: 'app-root',
imports: [RouterOutlet],
templateUrl: './app.html',
styleUrl: './app.scss'
})
export class App {
protected readonly title = signal('implem');
}

View file

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

View file

View file

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Admin } from './admin';
describe('Admin', () => {
let component: Admin;
let fixture: ComponentFixture<Admin>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [Admin]
})
.compileComponents();
fixture = TestBed.createComponent(Admin);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

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

View file

@ -0,0 +1,37 @@
<div id="main_page">
<app-top-navigation></app-top-navigation>
<main>
<h2 class="title">
CSC Solution Matcher helps match client questions with similar previous cases using
<span class="magic-text">
AI technology
<i class="ri-sparkling-fill"></i>
</span>
</h2>
<!-- traduction de requête-->
<div id="translation_request">
<div class="helper">
Original question
<i class="ri-arrow-right-line"></i>
</div>
<sae-translate-texts></sae-translate-texts>
</div>
<!-- analyse de question-->
<div id="question_alaysis">
<!--filters-->
<!-- advanced filters-->
<sae-filters-group></sae-filters-group>
</div>
</main>
<footer>
<!-- bottom nav -->
<!-- bottom fixed bar -->
<!-- search button-->
<app-bottom-navigation></app-bottom-navigation>
</footer>
</div>

View file

@ -0,0 +1,3 @@
.magic-text{
color: #EEA100;
}

View file

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { Main } from './main';
describe('Main', () => {
let component: Main;
let fixture: ComponentFixture<Main>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [Main]
})
.compileComponents();
fixture = TestBed.createComponent(Main);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,21 @@
import { Component } from '@angular/core';
import {TopNavigation} from '../../shared/navigation/top-navigation/top-navigation';
import {TranslateTexts} from '../../../../../my-workspace/projects/sae-lib/translate-texts/translate-texts';
import {FiltersGroup} from '../../../../../my-workspace/projects/sae-lib/filters/filters-group/filters-group';
import {BottomNavigation} from '../../shared/navigation/bottom-navigation/bottom-navigation';
@Component({
selector: 'app-main',
imports: [
TopNavigation,
TranslateTexts,
FiltersGroup,
BottomNavigation
],
templateUrl: './main.html',
styleUrl: './main.scss'
})
export class Main {
}

View file

@ -0,0 +1,34 @@
<div class="case-result">
<!--case result-->
<div class="title">
-7B / 72-21-02 / Booster blades stg 3 / LPC STG.3 BLADES DISLOCATION / 894773
<div class="button button-toggle chevron">v</div>
</div>
<div class="row tabs">
<div class="tab-item" (click)="selectCaseTab('information')">
<i class="ri-file-list-2-line"></i>
<div class="label">
Information
</div>
</div>
</div>
<div class="row selected-tab-content">
AIs summary : Work stoppage case for CFM56-7B engine (ESN: 894773) at MTU Zhuhai. LPC Stage 3 blade platform
dislocation detected during shop visit BSI. Maximum dislocation: 1.22mm axial, 0.63mm radial. Customer requests
evaluation, acceptance criteria, or DICA for further action. No corresponding limits in AMM 72-00-00 BSI inspection
chapter.
</div>
<div class="row case-more-infos">
<div class="info-item">
<span class="label">Date :</span>
<span class="value">2023-12-12</span>
</div>
<div class="info-item">
<span class="label">Chrono ID :</span>
<span class="value">CSC/CFM/2023-10/00446-A</span>
</div>
</div>
</div>

View file

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CaseResult } from './case-result';
describe('CaseResult', () => {
let component: CaseResult;
let fixture: ComponentFixture<CaseResult>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [CaseResult]
})
.compileComponents();
fixture = TestBed.createComponent(CaseResult);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,17 @@
import { Component } from '@angular/core';
@Component({
selector: 'app-case-result',
imports: [],
templateUrl: './case-result.html',
styleUrl: './case-result.scss'
})
export class CaseResult {
public activeTab:string = ''
selectCaseTab(activeTab: string) {
console.log('todo')
this.activeTab = activeTab
}
}

View file

@ -0,0 +1,96 @@
<div class="similar-cases">
<header>
<div class="row">
<button class="button">
toggle
</button>
<div class="title-box">
Work stoppage case for CFM56-7B engine (ESN: 802379)...
</div>
<div class="buttons">
<button class="button">
new question
</button>
<button class="button">
Search similar cases
</button>
</div>
</div>
<div class="row filters-row">
<sae-filters-group></sae-filters-group>
</div>
</header>
<main>
<div class="row bot-talks">
<sae-bot-talks></sae-bot-talks>
</div>
<div class="tabs-container">
<div class="tabs-selector">
<div class="columns">
<div class="column">
<div class="tab-button is-active">
Similar cases
</div>
</div>
<div class="column">
<div class="tab-button is-active">
Technical manual
</div>
</div>
</div>
</div>
<div class="tabs-body">
@if (displayedTab == 'similar-cases') {
<div id="similar_cases_tab">
<div class="top-bar">
<!-- <input type="text" class="search-input" [(ngModel)]="searchInput">-->
<div class="chips-container">
<button class="button chips">
DICA
</button>
</div>
</div>
<div class="row">
<div class="columns">
<div class="found-infos column">
24 cases found, 3 cases suggested by AI
</div>
<div class="toggle-ai-suggestion column">
AI suggestions
<!-- applied-->
<!-- disabled-->
</div>
</div>
</div>
<div class="row cases-results">
<!-- boucle des résultats-->
<app-case-result></app-case-result>
</div>
</div>
} @else {
<div id="technical_manuals_tab">
<sae-bot-talks></sae-bot-talks>
</div>
}
</div>
</div>
</main>
<footer>
<app-bottom-navigation></app-bottom-navigation>
</footer>
</div>

View file

@ -0,0 +1,3 @@
.toggle-ai-suggestion{
color: #FEAD02;
}

View file

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { SimilarCases } from './similar-cases';
describe('SimilarCases', () => {
let component: SimilarCases;
let fixture: ComponentFixture<SimilarCases>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [SimilarCases]
})
.compileComponents();
fixture = TestBed.createComponent(SimilarCases);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,25 @@
import { Component } from '@angular/core';
import {FiltersGroup} from '../../../../../my-workspace/projects/sae-lib/filters/filters-group/filters-group';
import {BotTalks} from '../../../../../my-workspace/projects/sae-lib/chatbot/bot-talks/bot-talks';
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
import {CaseResult} from './case-result/case-result';
import {BottomNavigation} from '../../shared/navigation/bottom-navigation/bottom-navigation';
@Component({
selector: 'app-similar-cases',
imports: [
FiltersGroup,
BotTalks,
// ReactiveFormsModule,
CaseResult,
BottomNavigation,
// FormsModule
],
templateUrl: './similar-cases.html',
styleUrl: './similar-cases.scss'
})
export class SimilarCases {
public searchInput: string = '';
public displayedTab: 'similar-cases' | 'technical-manual' = 'similar-cases';
}

View file

@ -0,0 +1,15 @@
<div class="bottom-navigation">
<nav class="navigation">
<a class="nav-item">
privacy policy
</a>
<a class="nav-item">
contact
</a>
</nav>
<div class="fixed-navigation">
<button class="next-step" routerLink="similar-cases">
Search similar cases
</button>
</div>
</div>

View file

@ -0,0 +1,14 @@
.next-step{
color: var(--color-text-invert, #FFF);
text-align: center;
leading-trim: both;
text-edge: cap;
/* Text/text-button */
font-family: var(--Fonts-Font-text, Barlow);
font-size: var(--Font-Base, 14px);
font-style: normal;
font-weight: 600;
line-height: 100%; /* 14px */
letter-spacing: 1.12px;
}

View file

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { BottomNavigation } from './bottom-navigation';
describe('BottomNavigation', () => {
let component: BottomNavigation;
let fixture: ComponentFixture<BottomNavigation>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [BottomNavigation]
})
.compileComponents();
fixture = TestBed.createComponent(BottomNavigation);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,14 @@
import { Component } from '@angular/core';
import {RouterLink} from '@angular/router';
@Component({
selector: 'app-bottom-navigation',
imports: [
RouterLink
],
templateUrl: './bottom-navigation.html',
styleUrl: './bottom-navigation.scss'
})
export class BottomNavigation {
}

View file

@ -0,0 +1,51 @@
<div class="top-navigation">
<nav class="navbar" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="https://cipherbliss.com">
<img src="safran_logo.svg" alt="logo">
</a>
<a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false"
data-target="navbarBasicExample">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
<div id="navbarBasicExample" class="navbar-menu">
<div class="navbar-end">
<a class="navbar-item" routerLink="home" routerLinkActive="active-link">
<img src="csc_logo.svg" alt="logo">
CSC Solution Matcher
</a>
<a class="navbar-item">
Home
</a>
<a class="navbar-item">
Admin
</a>
<a class="navbar-item">
Quick Start
</a>
<a class="navbar-item">
<!-- exit-->
<i class="ri-door-line"></i>
</a>
<a class="navbar-item">
<!-- user -->
borhène
</a>
</div>
</div>
</nav>
</div>

View file

@ -0,0 +1,23 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { TopNavigation } from './top-navigation';
describe('TopNavigation', () => {
let component: TopNavigation;
let fixture: ComponentFixture<TopNavigation>;
beforeEach(async () => {
await TestBed.configureTestingModule({
imports: [TopNavigation]
})
.compileComponents();
fixture = TestBed.createComponent(TopNavigation);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});

View file

@ -0,0 +1,15 @@
import {Component} from '@angular/core';
import {RouterLink, RouterLinkActive} from '@angular/router';
@Component({
selector: 'app-top-navigation',
imports: [
RouterLink,
RouterLinkActive
],
templateUrl: './top-navigation.html',
styleUrl: './top-navigation.scss'
})
export class TopNavigation {
}

View file

@ -0,0 +1,14 @@
// libs
@use 'remixicon/fonts/remixicon.scss';
@use 'bulma/sass/base/minireset.scss';
@use 'bulma/sass/grid/_index.scss';
@use 'bulma/sass/components/navbar.scss';
// dev tools
//@use '_app.scss';
@use '_global.scss';
@use '_debug.scss';
@use '_variables.scss';

View file

View file

@ -0,0 +1,5 @@
body{
background: #dedede;
margin: 0 auto;
padding: 1rem 3rem;
}

View file