diff --git a/ui/ui-frontend-common/src/app/modules/account/account-information-tab/account-information-tab.component.spec.ts b/ui/ui-frontend-common/src/app/modules/account/account-information-tab/account-information-tab.component.spec.ts index 85bc1b535a1e2b5720e82e877c02ddf4d25a6858..e6b3493be6bd6a103810ac568fab58959db0fd4e 100644 --- a/ui/ui-frontend-common/src/app/modules/account/account-information-tab/account-information-tab.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/account/account-information-tab/account-information-tab.component.spec.ts @@ -43,6 +43,7 @@ import { of } from 'rxjs'; import { NavbarStubComponent, VitamUIFieldErrorStubComponent } from '../../../../../testing/src/public_api'; import { EditableFieldModule } from '../../components/editable-field/editable-field.module'; import { SlideToggleModule } from '../../components/slide-toggle/slide-toggle.module'; +import { WINDOW_LOCATION } from '../../injection-tokens'; import { AccountService } from '../account.service'; import { AccountInformationTabComponent } from './account-information-tab.component'; @@ -68,7 +69,10 @@ describe('AccountInformationTabComponent', () => { VitamUIFieldErrorStubComponent, NavbarStubComponent, ], - providers: [{ provide: AccountService, useValue: accountServiceSpy }] + providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, + { provide: AccountService, useValue: accountServiceSpy } + ], }) .compileComponents(); })); diff --git a/ui/ui-frontend-common/src/app/modules/components/cancelled-snack-bar/cancelled-snack-bar.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/cancelled-snack-bar/cancelled-snack-bar.component.spec.ts index 6b6bba0ad9d309023d75128299e6b65d2bfce065..0d7718e1e976312ad79a60bc72fdad59edc5e50d 100644 --- a/ui/ui-frontend-common/src/app/modules/components/cancelled-snack-bar/cancelled-snack-bar.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/cancelled-snack-bar/cancelled-snack-bar.component.spec.ts @@ -34,9 +34,12 @@ * The fact that you are presently reading this means that you have had * knowledge of the CeCILL-C license and that you accept its terms. */ + +import { HttpClientTestingModule } from '@angular/common/http/testing'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { MatSnackBarRef } from '@angular/material/snack-bar'; - +import { TranslateModule } from '@ngx-translate/core'; +import { WINDOW_LOCATION } from '../../injection-tokens'; import { CancelledSnackBarComponent } from './cancelled-snack-bar.component'; describe('CancelledSnackBarComponent', () => { @@ -45,12 +48,17 @@ describe('CancelledSnackBarComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ CancelledSnackBarComponent ], + declarations: [CancelledSnackBarComponent], + imports: [ + HttpClientTestingModule, + TranslateModule.forRoot(), + ], providers: [ - { provide: MatSnackBarRef, useValue: { close: () => {} } }, + { provide: WINDOW_LOCATION, useValue: {} }, + { provide: MatSnackBarRef, useValue: { close: () => { } } }, ] }) - .compileComponents(); + .compileComponents(); })); beforeEach(() => { diff --git a/ui/ui-frontend-common/src/app/modules/components/cancelled-snack-bar/cancelled-snack-bar.module.ts b/ui/ui-frontend-common/src/app/modules/components/cancelled-snack-bar/cancelled-snack-bar.module.ts index cafd2ad95b62a86df964d3c862847e7478a18aeb..18be4377a6eabdfb69a444550168acfc5fc132d6 100644 --- a/ui/ui-frontend-common/src/app/modules/components/cancelled-snack-bar/cancelled-snack-bar.module.ts +++ b/ui/ui-frontend-common/src/app/modules/components/cancelled-snack-bar/cancelled-snack-bar.module.ts @@ -37,12 +37,15 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { MatDialogModule } from '@angular/material/dialog'; +import { TranslateModule } from '@ngx-translate/core'; import { CancelledSnackBarComponent } from './cancelled-snack-bar.component'; + @NgModule({ imports: [ CommonModule, MatDialogModule, + TranslateModule, ], declarations: [ CancelledSnackBarComponent, diff --git a/ui/ui-frontend-common/src/app/modules/components/download-snack-bar/download-snack-bar.module.ts b/ui/ui-frontend-common/src/app/modules/components/download-snack-bar/download-snack-bar.module.ts index b0ed386fcfeac948f48f9e3170886db04d17406a..54189110e330b66af397da5b519f0a9870badc37 100644 --- a/ui/ui-frontend-common/src/app/modules/components/download-snack-bar/download-snack-bar.module.ts +++ b/ui/ui-frontend-common/src/app/modules/components/download-snack-bar/download-snack-bar.module.ts @@ -38,6 +38,7 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { MatDialogModule } from '@angular/material/dialog'; import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { TranslateModule } from '@ngx-translate/core'; import { DownloadSnackBarComponent } from '../download-snack-bar/download-snack-bar.component'; @NgModule({ @@ -45,6 +46,7 @@ import { DownloadSnackBarComponent } from '../download-snack-bar/download-snack- CommonModule, MatDialogModule, MatProgressBarModule, + TranslateModule, ], declarations: [ DownloadSnackBarComponent, diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-field.module.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-field.module.ts index 6fc7ce54cbfd134c20654b5155276895a74190f5..5b6eaa2552aec8825f98c9391e6b89e5d19c4501 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-field.module.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-field.module.ts @@ -43,7 +43,7 @@ import { MatButtonToggleModule } from '@angular/material/button-toggle'; import { MatDialogModule } from '@angular/material/dialog'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatSelectModule } from '@angular/material/select'; - +import { TranslateModule } from '@ngx-translate/core'; import { ConfirmDialogModule } from '../confirm-dialog/confirm-dialog.module'; import { EditableDurationInputComponent } from './editable-duration-input/editable-duration-input.component'; import { HumanizedDurationPipe } from './editable-duration-input/humanized-duration.pipe'; @@ -61,6 +61,7 @@ import { EmailsInputModule } from './emails-input/emails-input.module'; import { LevelInputModule } from './level-input/level-input.module'; import { MultipleEmailInputComponent } from './multiple-email-input/multiple-email-input.component'; + @NgModule({ imports: [ CommonModule, @@ -75,7 +76,8 @@ import { MultipleEmailInputComponent } from './multiple-email-input/multiple-ema EmailsInputModule, LevelInputModule, MatInputModule, - MatFormFieldModule + MatFormFieldModule, + TranslateModule ], declarations: [ EditableButtonToggleComponent, diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-file/editable-file.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-file/editable-file.component.spec.ts index 362ba11cf98289d1ff5a18af32bb64ab64664a63..589d99cde5159bb7615224e8823706c2d4f8b042 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-file/editable-file.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-file/editable-file.component.spec.ts @@ -36,14 +36,17 @@ */ /* tslint:disable:no-magic-numbers */ import { OverlayContainer, OverlayModule } from '@angular/cdk/overlay'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; import { Component, ViewChild } from '@angular/core'; import { ComponentFixture, inject, TestBed, waitForAsync } from '@angular/core/testing'; import { AbstractControl, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { TranslateModule } from '@ngx-translate/core'; import { of } from 'rxjs'; +import { WINDOW_LOCATION } from '../../../injection-tokens'; import { newFile } from '../../../models'; import { VitamUIFieldErrorComponent } from '../../vitamui-field-error/vitamui-field-error.component'; import { EditableFileComponent } from './editable-file.component'; @@ -87,6 +90,11 @@ describe('EditableFileComponent', () => { OverlayModule, MatProgressSpinnerModule, NoopAnimationsModule, + HttpClientTestingModule, + TranslateModule.forRoot(), + ], + providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, ], declarations: [ TesthostComponent, diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-level-input/editable-level-input.component.html b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-level-input/editable-level-input.component.html index 5e417819398f63023435696e7e8caa620442cdd9..fdf0f43db1b61bc21a9cb227f8984e7beef42ad6 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-level-input/editable-level-input.component.html +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-level-input/editable-level-input.component.html @@ -27,7 +27,7 @@ <div *ngIf="disabled" class="read-only-field"> <div> - <label i18n="Admin profile level@@subLevel">Sous niveau</label> + <label>{{'LEVEL-INPUT.SUBLEVEL' | translate }}</label> <div> <span>{{control.value | subLevel:prefix }}</span></div> </div> </div> diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-level-input/editable-level-input.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-level-input/editable-level-input.component.spec.ts index 4927f61645875509478103b663cbe11bbc612e03..a8a7348ac5e579e2420a29c1f6195564459da93d 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-level-input/editable-level-input.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-level-input/editable-level-input.component.spec.ts @@ -36,8 +36,10 @@ */ import { OverlayModule } from '@angular/cdk/overlay'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; import { ReactiveFormsModule } from '@angular/forms'; - +import { TranslateModule } from '@ngx-translate/core'; +import { WINDOW_LOCATION } from '../../../injection-tokens'; import { LevelInputModule } from '../level-input/level-input.module'; import { EditableLevelInputComponent } from './editable-level-input.component'; import { SubLevelPipe } from './sub-level.pipe'; @@ -52,10 +54,18 @@ describe('EditableLevelInputComponent', () => { ReactiveFormsModule, OverlayModule, LevelInputModule, + HttpClientTestingModule, + HttpClientTestingModule, + TranslateModule.forRoot(), ], - declarations: [ EditableLevelInputComponent, SubLevelPipe ] + declarations: [ + EditableLevelInputComponent, + SubLevelPipe], + providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, + ] }) - .compileComponents(); + .compileComponents(); })); beforeEach(() => { diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-select/editable-select.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-select/editable-select.component.spec.ts index 4b79b66d9be5a9e7e62c1a8c7bc2302f4cc40c61..205c2bf6a8e4241671df2b862d4bbaf22a6790a1 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-select/editable-select.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/editable-select/editable-select.component.spec.ts @@ -36,6 +36,7 @@ */ /* tslint:disable:no-magic-numbers */ import { OverlayContainer, OverlayModule } from '@angular/cdk/overlay'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; import { Component, NO_ERRORS_SCHEMA, ViewChild } from '@angular/core'; import { ComponentFixture, inject, TestBed, waitForAsync } from '@angular/core/testing'; import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms'; @@ -43,7 +44,8 @@ import { MatDialogModule } from '@angular/material/dialog'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatSelectModule } from '@angular/material/select'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; - +import { TranslateModule } from '@ngx-translate/core'; +import { WINDOW_LOCATION } from '../../../injection-tokens'; import { EditableOptionComponent } from './editable-option.component'; import { EditableSelectComponent } from './editable-select.component'; @@ -79,6 +81,11 @@ describe('EditableSelectComponent', () => { MatSelectModule, NoopAnimationsModule, MatDialogModule, + HttpClientTestingModule, + TranslateModule.forRoot(), + ], + providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, ], declarations: [ TesthostComponent, diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/emails-input/emails-input.module.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/emails-input/emails-input.module.ts index 014dc07885d5bece650e64e3eaf364fc58d94445..4b74172107f90e6bfa732f0bad02abd7c1f27435 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/emails-input/emails-input.module.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/emails-input/emails-input.module.ts @@ -39,6 +39,7 @@ import { NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule, MatInputModule } from '@angular/material'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { TranslateModule } from '@ngx-translate/core'; import { EmailsInputComponent } from './emails-input.component'; @NgModule({ @@ -47,7 +48,8 @@ import { EmailsInputComponent } from './emails-input.component'; ReactiveFormsModule, MatProgressSpinnerModule, MatButtonModule, - MatInputModule + MatInputModule, + TranslateModule ], declarations: [EmailsInputComponent], exports: [EmailsInputComponent] diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.html b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.html index 90acb216810681d02bfe0bb2d767fe8e88c9701a..7f60a7be1354b1d0667355336eb20b827df6c834 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.html +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.html @@ -1,7 +1,7 @@ <div *ngIf="!isEditableComponent" class="vitamui-input" [class.disabled]="disabled"> - <label i18n="@@subLevelLevelInputComponent">Sous niveau<span *ngIf="required" class="required-marker">*</span></label> + <label>{{'LEVEL-INPUT.SUBLEVEL' | translate }}<span *ngIf="required" class="required-marker">*</span></label> <input [disabled]="disabled" [required]="required" [(ngModel)]="subLevel" (ngModelChange)="onValueChange($event)" - (blur)="onBlur()" (focus)="onFocus()" maxlength="250" i18n-placeholder="Admin profile level@@adminProfileSubLevel"> + (blur)="onBlur()" (focus)="onFocus()" maxlength="250"> </div> <div *ngIf="!isEditableComponent" class="vitamui-input-errors"> @@ -10,5 +10,5 @@ <div *ngIf="isEditableComponent"> <input [disabled]="disabled" [required]="required" [(ngModel)]="subLevel" (ngModelChange)="onValueChange($event)" - (blur)="onBlur()" maxlength="250" (focus)="onFocus()" i18n-placeholder="Admin profile level@@adminProfileSubLevel"> + (blur)="onBlur()" maxlength="250" (focus)="onFocus()"> </div> \ No newline at end of file diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.spec.ts index bd4cc896390bd5b34e2a1f826027a159607b2335..36cc6673717f20960149311484c55a05bf22a287 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.spec.ts @@ -35,8 +35,10 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; import { FormsModule } from '@angular/forms'; - +import { TranslateModule } from '@ngx-translate/core'; +import { WINDOW_LOCATION } from '../../../injection-tokens'; import { LevelInputComponent } from './level-input.component'; describe('LevelInputComponent', () => { @@ -45,10 +47,17 @@ describe('LevelInputComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - imports: [FormsModule], - declarations: [ LevelInputComponent ] + imports: [ + FormsModule, + HttpClientTestingModule, + TranslateModule.forRoot() + ], + providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, + ], + declarations: [LevelInputComponent], }) - .compileComponents(); + .compileComponents(); })); beforeEach(() => { diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.ts index 50850daf5e190c95bc2350d4e57466788fe95e30..a30242cabbf5627ee0b6f78abc03df7dbd219875 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.component.ts @@ -41,8 +41,6 @@ import { Component, forwardRef, HostBinding, Input, OnInit } from '@angular/core import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { extractSubLevel } from '../../../utils'; - - export const LEVEL_INPUT_VALUE_ACCESSOR: any = { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => LevelInputComponent), diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.module.spec.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.module.spec.ts index 38ab7cda39b7054f4ab57f7666201f6bdde854d2..fbaa01b4d3d9735d9e27914bb1f7c62e346a06a0 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.module.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.module.spec.ts @@ -34,16 +34,22 @@ * The fact that you are presently reading this means that you have had * knowledge of the CeCILL-C license and that you accept its terms. */ + + +import { TranslateModule } from '@ngx-translate/core'; import { LevelInputModule } from './level-input.module'; -describe('LevelInputModule', () => { +describe('LevelInputComponent', () => { let levelInputModule: LevelInputModule; + let translateModule: TranslateModule; beforeEach(() => { levelInputModule = new LevelInputModule(); + translateModule = new TranslateModule(); }); - it('should create an instance', () => { + it('should create', () => { expect(levelInputModule).toBeTruthy(); + expect(translateModule).toBeTruthy(); }); }); diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.module.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.module.ts index 218a730119530b73172ca4a59db1e483a3397b31..edc6996577ecf68d0742c264240d6dfb323c557c 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.module.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/level-input/level-input.module.ts @@ -37,13 +37,15 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; +import { TranslateModule } from '@ngx-translate/core'; import { LevelInputComponent } from './level-input.component'; @NgModule({ imports: [ CommonModule, - FormsModule + FormsModule, + TranslateModule, ], declarations: [LevelInputComponent], exports: [LevelInputComponent] diff --git a/ui/ui-frontend-common/src/app/modules/components/editable-field/multiple-email-input/multiple-email-input.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/editable-field/multiple-email-input/multiple-email-input.component.spec.ts index 1850004a4349132c9a258e30b139f63b43cc8e4d..4e07f49c1c1275bf6413929417ff3a5f8c1f75ec 100644 --- a/ui/ui-frontend-common/src/app/modules/components/editable-field/multiple-email-input/multiple-email-input.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/editable-field/multiple-email-input/multiple-email-input.component.spec.ts @@ -38,13 +38,16 @@ /* tslint:disable:no-magic-numbers */ import { OverlayContainer, OverlayModule } from '@angular/cdk/overlay'; +import { HttpClientTestingModule } from '@angular/common/http/testing'; import { Component, ViewChild } from '@angular/core'; import { ComponentFixture, inject, TestBed, waitForAsync } from '@angular/core/testing'; import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { TranslateModule } from '@ngx-translate/core'; // import { FlowValidators } from '../../../flow/flow.validators'; +import { WINDOW_LOCATION } from '../../../injection-tokens'; import { EmailsInputModule } from '../emails-input/emails-input.module'; import { MultipleEmailInputComponent } from './multiple-email-input.component'; @@ -80,13 +83,16 @@ describe('MultipleEmailInputComponent', () => { ReactiveFormsModule, MatProgressSpinnerModule, EmailsInputModule, - BrowserAnimationsModule + BrowserAnimationsModule, + HttpClientTestingModule, + TranslateModule.forRoot(), ], declarations: [ TesthostComponent, MultipleEmailInputComponent, ], providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, // { provide: FlowValidators, useValue: flowValidatorsSpy }, ] }) diff --git a/ui/ui-frontend-common/src/app/modules/components/role-toggle/role-toggle.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/role-toggle/role-toggle.component.spec.ts index e7177c4a2850a3588fa37ef34a0fd6064c58d021..f80793e9de3242f9ce774bdaa7f45e2f296aa3d3 100644 --- a/ui/ui-frontend-common/src/app/modules/components/role-toggle/role-toggle.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/role-toggle/role-toggle.component.spec.ts @@ -36,12 +36,13 @@ */ // tslint:disable:no-magic-numbers +import { HttpClientTestingModule } from '@angular/common/http/testing'; import { Component } from '@angular/core'; import { async, ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { FormsModule } from '@angular/forms'; import { By } from '@angular/platform-browser'; import { TranslateModule } from '@ngx-translate/core'; - +import { WINDOW_LOCATION } from '../../injection-tokens'; import { SlideToggleComponent } from '../slide-toggle/slide-toggle.component'; import { RoleToggleComponent } from './role-toggle.component'; import { RoleComponent } from './role.component'; @@ -69,7 +70,12 @@ describe('RoleToggleComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - imports: [FormsModule, TranslateModule.forRoot()], + imports: [FormsModule, + HttpClientTestingModule, + TranslateModule.forRoot()], + providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, + ], declarations: [TesthostComponent, RoleToggleComponent, RoleComponent, SlideToggleComponent] }) .compileComponents(); diff --git a/ui/ui-frontend-common/src/app/modules/components/slide-toggle/slide-toggle.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/slide-toggle/slide-toggle.component.spec.ts index 69d01841d64ea37fa582128f1c9e9537e5b34b31..10d34a9566638e37a1c6ad0f35a082bc25607fba 100644 --- a/ui/ui-frontend-common/src/app/modules/components/slide-toggle/slide-toggle.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/slide-toggle/slide-toggle.component.spec.ts @@ -34,11 +34,14 @@ * The fact that you are presently reading this means that you have had * knowledge of the CeCILL-C license and that you accept its terms. */ + +import { HttpClientTestingModule } from '@angular/common/http/testing'; import { Component } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { FormsModule } from '@angular/forms'; import { TranslateModule } from '@ngx-translate/core'; +import { WINDOW_LOCATION } from '../../injection-tokens'; import { SlideToggleComponent } from './slide-toggle.component'; @Component({ @@ -57,7 +60,10 @@ describe('SlideToggleComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - imports: [FormsModule, TranslateModule.forRoot()], + imports: [FormsModule, HttpClientTestingModule, TranslateModule.forRoot()], + providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, + ], declarations: [ TesthostComponent, SlideToggleComponent ], }) .compileComponents(); diff --git a/ui/ui-frontend-common/src/app/modules/components/slide-toggle/slide-toggle.module.ts b/ui/ui-frontend-common/src/app/modules/components/slide-toggle/slide-toggle.module.ts index 977ce3663a5faf0a3a70dea7e5a0ca4960abd551..4c3d607d7665ccc765c775027a000134e0eddb06 100644 --- a/ui/ui-frontend-common/src/app/modules/components/slide-toggle/slide-toggle.module.ts +++ b/ui/ui-frontend-common/src/app/modules/components/slide-toggle/slide-toggle.module.ts @@ -36,7 +36,7 @@ */ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { TranslateVitamModule } from '../translate/translate-vitam.module'; +import { TranslateModule } from '@ngx-translate/core'; import { SlideToggleComponent } from './slide-toggle.component'; @@ -44,7 +44,7 @@ import { SlideToggleComponent } from './slide-toggle.component'; declarations: [SlideToggleComponent], imports: [ CommonModule, - TranslateVitamModule, + TranslateModule, ], exports: [SlideToggleComponent] }) diff --git a/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.component.spec.ts index f8331750cd36efb7dddf9049d1cb302edd5e59c1..85c2790a5524a65b93d824580df5c06726b98cce 100644 --- a/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.component.spec.ts @@ -36,12 +36,15 @@ */ /* tslint:disable: no-magic-numbers */ +import { HttpClientTestingModule } from '@angular/common/http/testing'; import { Component, ViewChild } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { TranslateModule } from '@ngx-translate/core'; import { input } from '../../../../../testing/src'; +import { WINDOW_LOCATION } from '../../injection-tokens'; import { VitamUIListInputComponent } from './vitamui-list-input.component'; @Component({ template: '<vitamui-common-list-input [(ngModel)]="values" [validator]="validators"></vitamui-common-list-input>'}) @@ -63,9 +66,13 @@ describe('VitamUIListInputComponent', () => { FormsModule, ReactiveFormsModule, MatProgressSpinnerModule, + HttpClientTestingModule, + TranslateModule.forRoot(), ], declarations: [ TestHostComponent, VitamUIListInputComponent ], - providers: [] + providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, + ] }) .compileComponents(); })); diff --git a/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.component.ts b/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.component.ts index 9558ed3a2d82e28e808b4979081d25735e7630c9..86bc2432ad592846e031176597b7144cf6725bd2 100644 --- a/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.component.ts +++ b/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.component.ts @@ -40,6 +40,7 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion'; import { ENTER } from '@angular/cdk/keycodes'; import { AfterContentInit, Component, ContentChildren, forwardRef, Input, QueryList } from '@angular/core'; import { AsyncValidatorFn, ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR, ValidatorFn, Validators } from '@angular/forms'; + import { VitamUIFieldErrorComponent } from '../vitamui-field-error/vitamui-field-error.component'; diff --git a/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.module.ts b/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.module.ts index ef292566eb4e0b252b70ed06267ab266baeca917..0fc8689fce5feea136432488dab32164c68eb036 100644 --- a/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.module.ts +++ b/ui/ui-frontend-common/src/app/modules/components/vitamui-list-input/vitamui-list-input.module.ts @@ -38,6 +38,7 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { TranslateModule } from '@ngx-translate/core'; import { VitamUIListInputComponent } from './vitamui-list-input.component'; @@ -46,6 +47,7 @@ import { VitamUIListInputComponent } from './vitamui-list-input.component'; CommonModule, ReactiveFormsModule, MatProgressSpinnerModule, + TranslateModule ], declarations: [VitamUIListInputComponent], exports: [VitamUIListInputComponent] diff --git a/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.component.spec.ts b/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.component.spec.ts index 6a44bcb036a9a78655b9502b2395e61479175156..0c891bff72730b27d1016aac78c851b2d4ee0a42 100644 --- a/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.component.spec.ts @@ -36,7 +36,9 @@ */ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar'; - +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { TranslateModule } from '@ngx-translate/core'; +import { WINDOW_LOCATION } from '../../injection-tokens'; import { VitamUISnackBarComponent } from './vitamui-snack-bar.component'; describe('VitamUISnackbarComponent', () => { @@ -45,8 +47,13 @@ describe('VitamUISnackbarComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ + imports: [ + HttpClientTestingModule, + TranslateModule.forRoot(), + ], declarations: [ VitamUISnackBarComponent ], providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, { provide: MAT_SNACK_BAR_DATA, useValue: {} }, { provide: MatSnackBarRef, useValue: { dismiss: () => {} } }, ] diff --git a/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.component.ts b/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.component.ts index b47a1ee7fbdad4c7bfb1771c660208ae7837d9ce..73f17a8f0859cfe5961e88a8f7fa80ffd3fe7b10 100644 --- a/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.component.ts +++ b/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.component.ts @@ -44,7 +44,7 @@ import { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar' }) export class VitamUISnackBarComponent { - constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any, private matSnackBarRef: MatSnackBarRef<VitamUISnackBarComponent>) {} + constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any, private matSnackBarRef: MatSnackBarRef<VitamUISnackBarComponent>) { } close() { this.matSnackBarRef.dismiss(); diff --git a/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.module.ts b/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.module.ts index 7da749e638e604816050bba0a2aedc9c9dd7700e..612b0ec323c0a2d5ee8f97c3aea79c9cd593aaa3 100644 --- a/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.module.ts +++ b/ui/ui-frontend-common/src/app/modules/components/vitamui-snack-bar/vitamui-snack-bar.module.ts @@ -36,13 +36,14 @@ */ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; - +import { TranslateModule } from '@ngx-translate/core'; import { VitamUISnackBarComponent } from './vitamui-snack-bar.component'; import { VitamUISnackBar } from './vitamui-snack-bar.service'; @NgModule({ imports: [ CommonModule, + TranslateModule, ], declarations: [VitamUISnackBarComponent], exports: [VitamUISnackBarComponent], diff --git a/ui/ui-frontend-common/src/app/modules/subrogation/notification-snack-bar/notification-snack-bar.component.spec.ts b/ui/ui-frontend-common/src/app/modules/subrogation/notification-snack-bar/notification-snack-bar.component.spec.ts index cca04110922efd4fd976884f234b050cf1cc6313..bf2c91703c54765a793ead7206a0d6a34dfbd2af 100644 --- a/ui/ui-frontend-common/src/app/modules/subrogation/notification-snack-bar/notification-snack-bar.component.spec.ts +++ b/ui/ui-frontend-common/src/app/modules/subrogation/notification-snack-bar/notification-snack-bar.component.spec.ts @@ -36,7 +36,9 @@ */ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar'; - +import { HttpClientTestingModule } from '@angular/common/http/testing'; +import { TranslateModule } from '@ngx-translate/core'; +import { WINDOW_LOCATION } from '../../injection-tokens'; import { NotificationSnackBarComponent } from './notification-snack-bar.component'; describe('NotificationSnackBarComponent', () => { @@ -45,10 +47,15 @@ describe('NotificationSnackBarComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ + imports: [ + HttpClientTestingModule, + TranslateModule.forRoot(), + ], declarations: [ NotificationSnackBarComponent, ], providers: [ + { provide: WINDOW_LOCATION, useValue: {} }, { provide: MAT_SNACK_BAR_DATA, useValue: {} }, { provide: MatSnackBarRef, useValue: {} }, ] diff --git a/ui/ui-frontend/projects/starter-kit/src/app/app.module.ts b/ui/ui-frontend/projects/starter-kit/src/app/app.module.ts index 466a59cfa26adf5ac872dc8a180c41ccc36463a7..76e11d591f6bb969264223f699ff66db17a4d95e 100644 --- a/ui/ui-frontend/projects/starter-kit/src/app/app.module.ts +++ b/ui/ui-frontend/projects/starter-kit/src/app/app.module.ts @@ -35,6 +35,7 @@ * knowledge of the CeCILL-C license and that you accept its terms. */ import { registerLocaleData } from '@angular/common'; +import { HttpClient } from '@angular/common/http'; import { default as localeFr } from '@angular/common/locales/fr'; import { LOCALE_ID, NgModule } from '@angular/core'; import { MatCardModule, MatListModule, MatSidenavModule } from '@angular/material'; @@ -42,8 +43,16 @@ import { MatDialogModule } from '@angular/material/dialog'; import { MatSnackBarModule } from '@angular/material/snack-bar'; import { BrowserModule, Title } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { TranslateLoader, TranslateModule } from '@ngx-translate/core'; import { QuicklinkModule } from 'ngx-quicklink'; -import { BASE_URL, ENVIRONMENT, InjectorModule, LoggerModule, VitamUICommonModule, WINDOW_LOCATION } from 'ui-frontend-common'; +import { + BASE_URL, + ENVIRONMENT, + InjectorModule, + LoggerModule, + TranslateVitamModule, + VitamUICommonModule, + WINDOW_LOCATION } from 'ui-frontend-common'; import { environment } from '../environments/environment'; import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; @@ -71,6 +80,14 @@ registerLocaleData(localeFr, 'fr'); AppRoutingModule, StarterKitModule, LoggerModule.forRoot(), + TranslateModule.forChild({ + loader: { + provide: TranslateLoader, + useFactory: TranslateVitamModule.httpLoaderChildFactory, + deps: [HttpClient] + }, + isolate: false, + }), QuicklinkModule, ButtonsModule, MiscellaneousModule, diff --git a/ui/ui-frontend/projects/starter-kit/src/app/components/buttons/buttons.component.html b/ui/ui-frontend/projects/starter-kit/src/app/components/buttons/buttons.component.html index a0cd86eae09cf3b2d735bb16d0aae37ed5945760..02684350041d125e77e0a7fe64b64ab6421e1edd 100644 --- a/ui/ui-frontend/projects/starter-kit/src/app/components/buttons/buttons.component.html +++ b/ui/ui-frontend/projects/starter-kit/src/app/components/buttons/buttons.component.html @@ -1,105 +1,105 @@ <div class="d-flex flex-column"> <div class="row m-0"> <button class="btn primary" (click)="onClick()"> - Primary default + {{'BUTTON.Primary' | translate}} </button> <button class="btn primary" (click)="onClick()"> - <span>Primary default</span> + <span>{{'BUTTON.Primary' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button class="btn primary" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>Primary default</span> + <span>{{'BUTTON.Primary' | translate}}</span> </button> </div> <div class="row m-0"> <button class="btn secondary" (click)="onClick()"> - Secondary default + {{'BUTTON.Secondary' | translate}} </button> <button class="btn secondary" (click)="onClick()"> - <span>Secondary default</span> + <span>{{'BUTTON.Secondary' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button class="btn secondary" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>Secondary default</span> + <span>{{'BUTTON.Secondary' | translate}}</span> </button> </div> <div class="row m-0"> <button disabled class="btn" (click)="onClick()"> - disabled + {{'BUTTON.Disabled_label' | translate}} </button> <button disabled class="btn" (click)="onClick()"> - <span>disabled</span> + <span>{{'BUTTON.Disabled_label' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button disabled class="btn" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>disabled</span> + <span>{{'BUTTON.Disabled_label' | translate}}</span> </button> </div> <div class="row m-0"> <button class="btn link" (click)="onClick()"> - <span>Tertiary default</span> + <span>{{'BUTTON.Tertiary' | translate}}</span> </button> <button class="btn link" (click)="onClick()"> - <span>Tertiary default</span> + <span>{{'BUTTON.Tertiary' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button class="btn link" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>Tertiary default</span> + <span>{{'BUTTON.Tertiary' | translate}}</span> </button> <button class="btn link" disabled (click)="onClick()"> - Tertiary default + {{'BUTTON.Tertiary' | translate}} </button> </div> <div class="row m-0"> <button class="btn outline outline-primary" (click)="onClick()"> - Primary outline default + {{'BUTTON.Primary_outline' | translate}} </button> <button class="btn outline outline-primary" (click)="onClick()"> - <span>Primary outline default</span> + <span> {{'BUTTON.Primary_outline' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button class="btn outline outline-primary" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>Primary outline default</span> + <span> {{'BUTTON.Primary_outline' | translate}}</span> </button> </div> <div class="row m-0"> <button class="btn outline outline-secondary" (click)="onClick()"> - Secondary outline default + {{'BUTTON.Secondary_outline' | translate}} </button> <button class="btn outline outline-secondary" (click)="onClick()"> - <span>Secondary outline default</span> + <span> {{'BUTTON.Secondary_outline' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button class="btn outline outline-secondary" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>Secondary outline default</span> + <span> {{'BUTTON.Secondary_outline' | translate}}</span> </button> <button class="btn outline outline" disabled (click)="onClick()"> - Outline disabled + {{'BUTTON.Disabled_outline' | translate}} </button> </div> @@ -107,71 +107,71 @@ <div class="row m-0"> <button class="btn contrast contrast-primary" (click)="onClick()"> - Contrast Primary default + {{'BUTTON.Primary_contrast' | translate}} </button> <button class="btn contrast contrast-primary" (click)="onClick()"> - <span>Contrast Primary default</span> + <span>{{'BUTTON.Primary_contrast' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button class="btn contrast contrast-primary" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>Contrast Primary default</span> + <span>{{'BUTTON.Primary_contrast' | translate}}</span> </button> </div> <div class="row m-0"> <button class="btn contrast contrast-secondary" (click)="onClick()"> - Contrast Secondary default + {{'BUTTON.Secondary_contrast' | translate}} </button> <button class="btn contrast contrast-secondary" (click)="onClick()"> - <span>Contrast Secondary default</span> + <span>{{'BUTTON.Secondary_contrast' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button class="btn contrast contrast-secondary" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>Contrast Secondary default</span> + <span>{{'BUTTON.Secondary_contrast' | translate}}</span> </button> </div> <div class="row m-0"> <button class="btn contrast-outline contrast-outline-primary" (click)="onClick()"> - Contrast primary outline default + {{'BUTTON.Primary_contrast_outline' | translate}} </button> <button class="btn contrast-outline contrast-outline-primary" (click)="onClick()"> - <span>Contrast primary outline default</span> + <span>{{'BUTTON.Primary_contrast_outline' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button class="btn contrast-outline contrast-outline-primary" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>Contrast primary outline default</span> + <span>{{'BUTTON.Primary_contrast_outline' | translate}}</span> </button> </div> <div class="row m-0"> <button class="btn contrast-outline contrast-outline-secondary" (click)="onClick()"> - Contrast secondary outline default + {{'BUTTON.Secondary_contrast_outline' | translate}} </button> <button class="btn contrast-outline contrast-outline-secondary" (click)="onClick()"> - <span>Contrast secondary outline default</span> + <span>{{'BUTTON.Secondary_contrast_outline' | translate}}</span> <i class="material-icons">keyboard_arrow_right</i> </button> <button class="btn contrast-outline contrast-outline-secondary" (click)="onClick()"> <i class="material-icons">keyboard_arrow_left</i> - <span>Contrast secondary outline default</span> + <span>{{'BUTTON.Secondary_contrast_outline' | translate}}</span> </button> </div> <div class="row m-0"> <button class="btn contrast" disabled (click)="onClick()"> - Contrast disabled + {{'BUTTON.Disabled_contrast' | translate}} </button> <button class="btn contrast-outline" disabled (click)="onClick()"> - Contrast outline disabled + {{'BUTTON.Disabled_contrast_outline' | translate}} </button> </div> </div> @@ -253,38 +253,4 @@ </button> </div> </div> - - <div class="col-12"> - <mat-button-toggle-group [formControl]="control" class="vitamui-button-toggle-group mr-4"> - <mat-button-toggle [value]="'FIRST'"> - <span>First</span> - </mat-button-toggle> - <mat-button-toggle [value]="'MIDDLE'"> - <span>Middle</span> - </mat-button-toggle> - <mat-button-toggle [value]="'LAST'"> - <span>Last</span> - </mat-button-toggle> - </mat-button-toggle-group> - - <mat-button-toggle-group disabled [formControl]="control" class="vitamui-button-toggle-group disabled"> - <mat-button-toggle [value]="'FIRST'"> - <span>First</span> - </mat-button-toggle> - <mat-button-toggle [value]="'MIDDLE'"> - <span>Middle</span> - </mat-button-toggle> - <mat-button-toggle [value]="'LAST'"> - <span>Last</span> - </mat-button-toggle> - </mat-button-toggle-group> - - <div class="mt-4"> - <vitamui-common-slide-toggle class="mr-3">Slide Toggle</vitamui-common-slide-toggle> - <vitamui-common-slide-toggle class="mr-3" [checked]="true" [disabled]="true">Slide Toggle disabled - </vitamui-common-slide-toggle> - <vitamui-common-slide-toggle class="mr-3" [checked]="false" [disabled]="true">Slide Toggle disabled - </vitamui-common-slide-toggle> - </div> - </div> </div> \ No newline at end of file diff --git a/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.html b/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.html index 21ca9ae7bbc955374ea962f736d4a7adca2e7384..d0ca589362ad53106bfb5d29e3fbbbe7857a9b08 100644 --- a/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.html +++ b/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.html @@ -1,51 +1,234 @@ -<vitamui-common-input [formControl]="streetEmpty" - placeholder="N° et nom de rue" -></vitamui-common-input> - -<vitamui-common-input [formControl]="street" - placeholder="N° et nom de rue" -></vitamui-common-input> - -<vitamui-common-input disabled [formControl]="street" - placeholder="N° et nom de rue" -></vitamui-common-input> - -<vitamui-common-editable-input [formControl]="streetEmpty" [label]="'Editable input'"></vitamui-common-editable-input> - -<vitamui-common-editable-input [formControl]="street" [label]="'Editable input disabled'" [disabled]="true"></vitamui-common-editable-input> - -<vitamui-common-editable-email-input [formControl]="email" [label]="'Editable email'" [domains]="['test.fr', 'test.com', 'test.de']"></vitamui-common-editable-email-input> - -<vitamui-common-editable-email-input [formControl]="email" [label]="'Editable email disabled'" [domains]="['test.fr', 'test.com', 'test.de']" [disabled]="true"></vitamui-common-editable-email-input> - -<vitamui-common-editable-select [formControl]="country" [label]="'County select'"> -<vitamui-common-editable-option value="GB" content="Royaume Uni"></vitamui-common-editable-option> -<vitamui-common-editable-option value="FR" content="France"></vitamui-common-editable-option> -<vitamui-common-editable-option value="DE" content="Allemagne"></vitamui-common-editable-option> -</vitamui-common-editable-select> - -<vitamui-common-editable-select [formControl]="country" [label]="'County select disabled'" [disabled]="true"> -<vitamui-common-editable-option value="GB" content="Royaume Uni"></vitamui-common-editable-option> -<vitamui-common-editable-option value="FR" content="France"></vitamui-common-editable-option> -<vitamui-common-editable-option value="DE" content="Allemagne"></vitamui-common-editable-option> -</vitamui-common-editable-select> - -<vitamui-common-editable-textarea [formControl]="street" [label]="'Textarea'"></vitamui-common-editable-textarea> - -<vitamui-common-editable-textarea [formControl]="streetEmpty" [label]="'Textarea disabled'" [disabled]="true"></vitamui-common-editable-textarea> - -<vitamui-common-multiple-email-input [label]="'Multiple email'"></vitamui-common-multiple-email-input> - -<vitamui-common-editable-level-input [label]="'Editable level input'"></vitamui-common-editable-level-input> - -<vitamui-common-editable-level-input [label]="'Disabled level input'" [disabled]="true"></vitamui-common-editable-level-input> - -<vitamui-common-editable-toggle-group [label]="'Toggle Group'"> -<vitamui-common-editable-button-toggle value="Value 1" content="Label 1"></vitamui-common-editable-button-toggle> -<vitamui-common-editable-button-toggle value="Value 2" content="Label 2"></vitamui-common-editable-button-toggle> -<vitamui-common-editable-button-toggle value="Value 3" content="Label 3"></vitamui-common-editable-button-toggle> -</vitamui-common-editable-toggle-group> - -<vitamui-common-editable-duration-input [label]="'Duration input'"></vitamui-common-editable-duration-input> - -<vitamui-common-editable-file [label]="'File upload'"></vitamui-common-editable-file> \ No newline at end of file +<div class="d-flex flex-column"> + <h1>Simple</h1> + <div class="d-flex flex-column contrast-container"> + <div class="row m-0 pl-3 pr-3 mt-4"> + <vitamui-common-input [formControl]="streetEmpty" placeholder="N° et nom de rue"></vitamui-common-input> + <vitamui-common-input [formControl]="street" placeholder="N° et nom de rue"></vitamui-common-input> + <vitamui-common-input disabled [formControl]="street" placeholder="N° et nom de rue"></vitamui-common-input> + </div> + <div class="row m-0"> + <div class="col-8"> + <vitamui-common-editable-input [formControl]="streetEmpty" [label]="'Editable input'"> + </vitamui-common-editable-input> + </div> + <vitamui-common-editable-input [formControl]="street" [label]="'Editable input disabled'" [disabled]="true"> + </vitamui-common-editable-input> + </div> + </div> + <h1>Email</h1> + <div class="d-flex flex-column contrast-container"> + <div class="row m-0 pl-3 mt-4"> + + <vitamui-common-input class="field-email" [formControl]="emailFirstPart" placeholder="Adresse e-mail"> + </vitamui-common-input> + + <span class="d-flex mx-2 mt-1 layer text-center">@</span> + + <mat-form-field class="field-domain vitamui-mat-select"> + <mat-select [formControl]="domain" panelClass="vitamui-mat-select"> + <mat-option value="test.fr">test.fr</mat-option> + <mat-option value="test2.com">test2.com</mat-option> + </mat-select> + <div class="select-arrow"> + <i class="material-icons">keyboard_arrow_up</i> + <i class="material-icons">keyboard_arrow_down</i> + </div> + </mat-form-field> + </div> + <div class="row m-0 "> + <div class="col-8"> + <vitamui-common-editable-email-input [formControl]="email" [label]="'Editable email'" + [domains]="['test.fr', 'test.com', 'test.de']"></vitamui-common-editable-email-input> + </div> + <vitamui-common-editable-email-input [formControl]="email" [label]="'Editable email disabled'" + [domains]="['test.fr', 'test.com', 'test.de']" [disabled]="true"></vitamui-common-editable-email-input> + + </div> + <div class="row m-0"> + <div class="col-8"> + <vitamui-common-multiple-email-input [formControl]="emails" [label]="'Editale multiple email input'"> + </vitamui-common-multiple-email-input> + </div> + <vitamui-common-multiple-email-input [formControl]="emails" + [label]="'Editable multiple email input disabled'" [disabled]="true"> + </vitamui-common-multiple-email-input> + </div> + </div> + + <h1>List</h1> + <div class="d-flex flex-column contrast-container"> + <div class="row m-0 pl-3 pr-3 mt-4"> + <vitamui-common-list-input [formControl]="list" [placeholder]="'Multiple input'"> + </vitamui-common-list-input> + </div> + </div> + <h1>Select</h1> + <div class="d-flex flex-column contrast-container"> + <div class="row m-0 mt-4"> + <div class="col-8"> + <mat-form-field class="mr-3 field-domain vitamui-mat-select"> + <mat-select [formControl]="country" panelClass="vitamui-mat-select"> + <mat-option value="FR">France</mat-option> + <mat-option value="GB">Royaume Uni</mat-option> + <mat-option value="DE">Allemagne</mat-option> + </mat-select> + <div class="select-arrow"> + <i class="material-icons">keyboard_arrow_up</i> + <i class="material-icons">keyboard_arrow_down</i> + </div> + </mat-form-field> + </div> + <mat-form-field class="mr-3 field-domain vitamui-mat-select"> + <mat-select [formControl]="country" panelClass="vitamui-mat-select" disabled> + <mat-option value="FR" [disabled]="true">France</mat-option> + <mat-option value="GB" [disabled]="true">Royaume Uni</mat-option> + <mat-option value="DE" [disabled]="true">Allemagne</mat-option> + </mat-select> + <div class="select-arrow"> + <i class="material-icons">keyboard_arrow_up</i> + <i class="material-icons">keyboard_arrow_down</i> + </div> + </mat-form-field> + + </div> + <div class="row m-0 mt-4"> + <div class="col-8"> + <vitamui-common-editable-select [formControl]="country" [label]="'Editable select'"> + <vitamui-common-editable-option value="GB" content="Royaume Uni"></vitamui-common-editable-option> + <vitamui-common-editable-option value="FR" content="France"></vitamui-common-editable-option> + <vitamui-common-editable-option value="DE" content="Allemagne"></vitamui-common-editable-option> + </vitamui-common-editable-select> + </div> + <vitamui-common-editable-select [formControl]="country" [label]="'Editable select disabled'" + [disabled]="true"> + <vitamui-common-editable-option value="GB" content="Royaume Uni"></vitamui-common-editable-option> + <vitamui-common-editable-option value="FR" content="France"></vitamui-common-editable-option> + <vitamui-common-editable-option value="DE" content="Allemagne"></vitamui-common-editable-option> + </vitamui-common-editable-select> + </div> + </div> + <h1>Textarea</h1> + <div class="d-flex flex-column contrast-container"> + <div class="row m-0 mt-4"> + <div class="col-8"> + <vitamui-common-textarea [formControl]="textarea" placeholder="Textarea"> + </vitamui-common-textarea> + </div> + <vitamui-common-textarea [formControl]="textarea" placeholder="Textarea" disabled> + </vitamui-common-textarea> + </div> + <div class="row m-0"> + <div class="col-8"> + <vitamui-common-editable-textarea [formControl]="textarea" [label]="'Editable textarea'"> + </vitamui-common-editable-textarea> + </div> + <vitamui-common-editable-textarea [formControl]="textarea" [label]="'Editable textarea disabled'" + [disabled]="true"> + </vitamui-common-editable-textarea> + </div> + </div> + + <h1>Level</h1> + <div class="d-flex flex-column contrast-container"> + <div class="row m-0 mt-4 pl-3"> + <vitamui-common-level-input></vitamui-common-level-input> + </div> + <div class="row m-0"> + <div class="col-8"> + <vitamui-common-editable-level-input [label]="'Editable level input'"> + </vitamui-common-editable-level-input> + </div> + <vitamui-common-editable-level-input [formControl]="level" [label]="'Editable level input disabled'" + [disabled]="true"> + </vitamui-common-editable-level-input> + </div> + </div> + <h1>Toggle</h1> + <div class="row m-0 contrast-container"> + <div class="col-12 mt-4"> + <vitamui-common-slide-toggle class="mr-3">Slide Toggle</vitamui-common-slide-toggle> + <vitamui-common-slide-toggle class="mr-3" [checked]="true" [disabled]="true">Slide Toggle disabled</vitamui-common-slide-toggle> + <vitamui-common-slide-toggle class="mr-3" [checked]="false" [disabled]="true">Slide Toggle disabled</vitamui-common-slide-toggle> + </div> + + </div> + <h1>Toggle Group</h1> + <div class="d-flex flex-column contrast-container"> + <div class="row m-0 mt-4 pl-3"> + <mat-button-toggle-group [formControl]="control" class="vitamui-button-toggle-group mr-4"> + <mat-button-toggle [value]="'FIRST'"> + <span>First</span> + </mat-button-toggle> + <mat-button-toggle [value]="'MIDDLE'"> + <span>Middle</span> + </mat-button-toggle> + <mat-button-toggle [value]="'LAST'"> + <span>Last</span> + </mat-button-toggle> + </mat-button-toggle-group> + + <mat-button-toggle-group disabled [formControl]="control" class="vitamui-button-toggle-group disabled"> + <mat-button-toggle [value]="'FIRST'"> + <span>First</span> + </mat-button-toggle> + <mat-button-toggle [value]="'MIDDLE'"> + <span>Middle</span> + </mat-button-toggle> + <mat-button-toggle [value]="'LAST'"> + <span>Last</span> + </mat-button-toggle> + </mat-button-toggle-group> + </div> + <div class="row m-0"> + <div class="col-8 mt-4"> + <vitamui-common-editable-toggle-group [formControl]="toggle" [label]="'Editable toggle Group'"> + <vitamui-common-editable-button-toggle value="Value 1" content="Label 1"> + </vitamui-common-editable-button-toggle> + <vitamui-common-editable-button-toggle value="Value 2" content="Label 2"> + </vitamui-common-editable-button-toggle> + <vitamui-common-editable-button-toggle value="Value 3" content="Label 3"> + </vitamui-common-editable-button-toggle> + </vitamui-common-editable-toggle-group> + </div> + <div class="mt-4"> + <vitamui-common-editable-toggle-group [formControl]="toggle" [label]="'Editable toggle Group disabled'" + [disabled]="true"> + <vitamui-common-editable-button-toggle value="Value 1" content="Label 1"> + </vitamui-common-editable-button-toggle> + <vitamui-common-editable-button-toggle value="Value 2" content="Label 2"> + </vitamui-common-editable-button-toggle> + <vitamui-common-editable-button-toggle value="Value 3" content="Label 3"> + </vitamui-common-editable-button-toggle> + </vitamui-common-editable-toggle-group> + </div> + </div> + </div> + <h1>Duration</h1> + <div class="d-flex flex-column contrast-container"> + <div class="row m-0 mt-4 pl-3"> + <vitamui-common-vitamui-duration-input [formControl]="duration"> + </vitamui-common-vitamui-duration-input> + </div> + <div class="row m-0 mt-4"> + <div class="col-8"> + <vitamui-common-editable-duration-input [formControl]="duration" [label]="'Editable duration input'"> + </vitamui-common-editable-duration-input> + </div> + <vitamui-common-editable-duration-input [formControl]="duration" + [label]="'Editable duration input disabled'" [disabled]="true"></vitamui-common-editable-duration-input> + + </div> + </div> + <h1>File</h1> + <div class="row m-0 contrast-container"> + <div class="col-8 mt-4"> + <vitamui-common-editable-file [formControl]="file" [label]="'Editable file upload'"> + </vitamui-common-editable-file> + </div> + <div class="mt-4"> + <vitamui-common-editable-file [formControl]="file" [label]="'Editable file upload disabled'" + [disabled]="true"> + </vitamui-common-editable-file> + </div> + </div> +</div> \ No newline at end of file diff --git a/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.scss b/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.scss index c110bb980b5c67a8a6e7ab723171baa6619ac672..16ba8c992aadbd72b50fef0845b370e3315d2290 100644 --- a/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.scss +++ b/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.scss @@ -1,5 +1,32 @@ +@import '~ui-frontend-common/sass/variables/colors'; + :host { + + display: flex; + + + .layer { + width: 33px; + height: 39px; + font-family: Roboto; + font-size: 30px; + font-weight: normal; + font-style: normal; + font-stretch: normal; + line-height: normal; + letter-spacing: -0.8px; + text-align: left; + margin-left: 20px; + } + vitamui-common-input:not(:last-child) { margin-right: 2rem; } + + .contrast-container { + background-color: $white; + border: 1px solid var(--vitamui-grey-200); + border-radius: 10px; + } + } \ No newline at end of file diff --git a/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.ts b/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.ts index 9e4c35393e8248603456ab2ca8d529b1b228a582..6af294853f7fa20d679abcd99c6108def7578b65 100644 --- a/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.ts +++ b/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.component.ts @@ -8,13 +8,36 @@ import { FormControl, Validators } from '@angular/forms'; }) export class InputsComponent implements OnInit { + public control = new FormControl(); + public streetEmpty = new FormControl('', [Validators.maxLength(3)]); public street = new FormControl('azerty', [Validators.maxLength(3)]); - public email = new FormControl('azerty', [Validators.maxLength(10)]); - public country = new FormControl('France', [Validators.maxLength(10)]); + public emailFirstPart = new FormControl('azerty', [Validators.maxLength(25)]); + public email = new FormControl('azerty@test.fr', [Validators.maxLength(25)]); + public domain = new FormControl('test.fr', [Validators.maxLength(10)]); + public emails = new FormControl(["azerty@test.fr" ,"azerty@test2.com"], [Validators.maxLength(30)]); + public list = new FormControl(["azerty1" ,"azerty2"], [Validators.maxLength(30)]); + public country = new FormControl('FR', [Validators.maxLength(10)]); + public textarea = new FormControl('name\naddress\ncity', [Validators.maxLength((25))]); + public level = new FormControl('LEVEL', [Validators.maxLength((10))]); + public toggle = new FormControl('Value 3'); + public duration = new FormControl( {days: 5, hours:10, minutes:5}); + public file = new FormControl( new File(['test'],"test",{type: 'text/plain'})); constructor() { } + onChange = (_: any) => {}; + onTouched = () => {}; + + + registerOnChange(fn: any): void { + this.onChange = fn; + } + + registerOnTouched(fn: any): void { + this.onTouched = fn; + } + ngOnInit() { } } diff --git a/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.module.ts b/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.module.ts index 207101a2c84091804d391b7068e8dd838292871b..cd929f3fbe0c057e31b5cd3fc8eefba9790e3287 100644 --- a/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.module.ts +++ b/ui/ui-frontend/projects/starter-kit/src/app/components/inputs/inputs.module.ts @@ -1,9 +1,10 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; +import { MatButtonToggleModule } from '@angular/material'; import { VitamUICommonModule } from 'ui-frontend-common'; import { InputsComponent } from './inputs.component'; - +import { MatSelectModule } from '@angular/material/select'; @NgModule({ @@ -12,7 +13,9 @@ import { InputsComponent } from './inputs.component'; CommonModule, VitamUICommonModule, ReactiveFormsModule, + MatSelectModule, + MatButtonToggleModule, ], exports: [InputsComponent] }) -export class InputsModule { } +export class InputsModule { } \ No newline at end of file diff --git a/ui/ui-frontend/projects/starter-kit/src/assets/i18n/en.json b/ui/ui-frontend/projects/starter-kit/src/assets/i18n/en.json index 7a73a41bfdf76d6f793007240d80983a52f15f97..a001257b7139692707571ce48fb39e22b37e8a15 100644 --- a/ui/ui-frontend/projects/starter-kit/src/assets/i18n/en.json +++ b/ui/ui-frontend/projects/starter-kit/src/assets/i18n/en.json @@ -1,2 +1,17 @@ { + "BUTTON": { + "Primary": "Primary default", + "Primary_outline": "Primary outline default", + "Primary_contrast": "Contrast Primary default", + "Primary_contrast_outline": "Contrast primary outline default", + "Secondary": "Secondary default", + "Secondary_outline": "Secondary outline default", + "Secondary_contrast": "Contrast Secondary default", + "Secondary_contrast_outline": "Contrast secondary outline default", + "Tertiary": "Tertiary default", + "Disabled_label": "disabled", + "Disabled_outline": "Outline disabled", + "Disabled_contrast": "Contrast disabled", + "Disabled_contrast_outline": "Contrast outline disabled" + } } \ No newline at end of file diff --git a/ui/ui-frontend/projects/starter-kit/src/assets/i18n/fr.json b/ui/ui-frontend/projects/starter-kit/src/assets/i18n/fr.json index 7a73a41bfdf76d6f793007240d80983a52f15f97..c421f07cb5edb6e8149c21e37737968662eac397 100644 --- a/ui/ui-frontend/projects/starter-kit/src/assets/i18n/fr.json +++ b/ui/ui-frontend/projects/starter-kit/src/assets/i18n/fr.json @@ -1,2 +1,17 @@ { + "BUTTON": { + "Primary": "Primaire par défaut", + "Primary_outline": "Contour Primaire par défaut", + "Primary_contrast": "Contraste Primaire par défaut", + "Primary_contrast_outline": "Contour contrasté Primaire par défaut", + "Secondary": "Secondaire par défaut", + "Secondary_outline": "Contour Secondaire par défaut", + "Secondary_contrast": "Contraste Secondaire par défaut", + "Secondary_contrast_outline": "Contour contrasté secondaire par défaut", + "Tertiary": "Tertiaire par défaut", + "Disabled_label": "désactivé", + "Disabled_outline": "Contour désactivé", + "Disabled_contrast": "Contraste désactivé", + "Disabled_contrast_outline": "Contour contrasté désactivé" + } } \ No newline at end of file