renommage de lib, rendre buildable
This commit is contained in:
parent
1706c64713
commit
a89007a81b
9896 changed files with 478996 additions and 496 deletions
12
sae-csc/src/app/app.config.ts
Normal file
12
sae-csc/src/app/app.config.ts
Normal 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
13
sae-csc/src/app/app.html
Normal 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>
|
18
sae-csc/src/app/app.routes.ts
Normal file
18
sae-csc/src/app/app.routes.ts
Normal 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
0
sae-csc/src/app/app.scss
Normal file
23
sae-csc/src/app/app.spec.ts
Normal file
23
sae-csc/src/app/app.spec.ts
Normal 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
12
sae-csc/src/app/app.ts
Normal 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');
|
||||
}
|
1
sae-csc/src/app/pages/admin/admin.html
Normal file
1
sae-csc/src/app/pages/admin/admin.html
Normal file
|
@ -0,0 +1 @@
|
|||
<p>admin works!</p>
|
0
sae-csc/src/app/pages/admin/admin.scss
Normal file
0
sae-csc/src/app/pages/admin/admin.scss
Normal file
23
sae-csc/src/app/pages/admin/admin.spec.ts
Normal file
23
sae-csc/src/app/pages/admin/admin.spec.ts
Normal 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();
|
||||
});
|
||||
});
|
11
sae-csc/src/app/pages/admin/admin.ts
Normal file
11
sae-csc/src/app/pages/admin/admin.ts
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-admin',
|
||||
imports: [],
|
||||
templateUrl: './admin.html',
|
||||
styleUrl: './admin.scss'
|
||||
})
|
||||
export class Admin {
|
||||
|
||||
}
|
37
sae-csc/src/app/pages/main/main.html
Normal file
37
sae-csc/src/app/pages/main/main.html
Normal 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>
|
3
sae-csc/src/app/pages/main/main.scss
Normal file
3
sae-csc/src/app/pages/main/main.scss
Normal file
|
@ -0,0 +1,3 @@
|
|||
.magic-text{
|
||||
color: #EEA100;
|
||||
}
|
23
sae-csc/src/app/pages/main/main.spec.ts
Normal file
23
sae-csc/src/app/pages/main/main.spec.ts
Normal 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();
|
||||
});
|
||||
});
|
21
sae-csc/src/app/pages/main/main.ts
Normal file
21
sae-csc/src/app/pages/main/main.ts
Normal 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 {
|
||||
|
||||
}
|
|
@ -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">
|
||||
AI’s 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>
|
|
@ -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();
|
||||
});
|
||||
});
|
|
@ -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
|
||||
}
|
||||
}
|
96
sae-csc/src/app/pages/similar-cases/similar-cases.html
Normal file
96
sae-csc/src/app/pages/similar-cases/similar-cases.html
Normal 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>
|
3
sae-csc/src/app/pages/similar-cases/similar-cases.scss
Normal file
3
sae-csc/src/app/pages/similar-cases/similar-cases.scss
Normal file
|
@ -0,0 +1,3 @@
|
|||
.toggle-ai-suggestion{
|
||||
color: #FEAD02;
|
||||
}
|
23
sae-csc/src/app/pages/similar-cases/similar-cases.spec.ts
Normal file
23
sae-csc/src/app/pages/similar-cases/similar-cases.spec.ts
Normal 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();
|
||||
});
|
||||
});
|
25
sae-csc/src/app/pages/similar-cases/similar-cases.ts
Normal file
25
sae-csc/src/app/pages/similar-cases/similar-cases.ts
Normal 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';
|
||||
|
||||
}
|
|
@ -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>
|
|
@ -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;
|
||||
}
|
|
@ -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();
|
||||
});
|
||||
});
|
|
@ -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 {
|
||||
|
||||
}
|
|
@ -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>
|
|
@ -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();
|
||||
});
|
||||
});
|
|
@ -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 {
|
||||
|
||||
}
|
14
sae-csc/src/app/styles/_app.scss
Normal file
14
sae-csc/src/app/styles/_app.scss
Normal 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';
|
||||
|
0
sae-csc/src/app/styles/_debug.scss
Normal file
0
sae-csc/src/app/styles/_debug.scss
Normal file
5
sae-csc/src/app/styles/_global.scss
Normal file
5
sae-csc/src/app/styles/_global.scss
Normal file
|
@ -0,0 +1,5 @@
|
|||
body{
|
||||
background: #dedede;
|
||||
margin: 0 auto;
|
||||
padding: 1rem 3rem;
|
||||
}
|
0
sae-csc/src/app/styles/_variables.scss
Normal file
0
sae-csc/src/app/styles/_variables.scss
Normal file
Loading…
Add table
Add a link
Reference in a new issue