From d5a01b167388ea15ec0611ab85ff050909c3a8cd Mon Sep 17 00:00:00 2001 From: kaw67872 <kawtar.laariche@iais.fraunhofer.de> Date: Wed, 15 May 2024 13:23:38 +0200 Subject: [PATCH] #19: create custom drop down menu --- .../version-dropdown.component.scss | 47 +++++++++++++++++++ .../version-dropdown.component.spec.ts | 23 +++++++++ .../version-dropdown.component.ts | 31 ++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 src/app/shared/components/version-dropdown/version-dropdown.component.scss create mode 100644 src/app/shared/components/version-dropdown/version-dropdown.component.spec.ts create mode 100644 src/app/shared/components/version-dropdown/version-dropdown.component.ts diff --git a/src/app/shared/components/version-dropdown/version-dropdown.component.scss b/src/app/shared/components/version-dropdown/version-dropdown.component.scss new file mode 100644 index 0000000..92f55c5 --- /dev/null +++ b/src/app/shared/components/version-dropdown/version-dropdown.component.scss @@ -0,0 +1,47 @@ +.version-container button .material-icons { + font-size: 20px !important; +} + +.version-container button { + position: relative; + font-size: 12px; + font-weight: 600; + padding-left: 8px; + padding-right: 8px; + font-family: "Open Sans", sans-serif; + border: 1px solid #d5d5d5; +} + +.version-button { + border-radius: 2px !important; +} + +.selected { + background: url("../../../../assets/images/validate_icon.png") no-repeat 95% + center; + background-color: #fff; +} + +.mdc-list { + padding: 0px; + margin: 0px; +} + +.mdc-list-item { + padding-left: 10px; +} +.mat-mdc-raised-button { + --mdc-protected-button-container-height: 30px; +} + +::ng-deep.mat-mdc-menu-content { + padding: 0px !important; +} +.mdc-list-item--with-one-line { + height: 40px !important; + border-radius: 0px !important; +} + +::ng-deep.mat-mdc-menu-panel { + width: 200px !important; +} diff --git a/src/app/shared/components/version-dropdown/version-dropdown.component.spec.ts b/src/app/shared/components/version-dropdown/version-dropdown.component.spec.ts new file mode 100644 index 0000000..d08979c --- /dev/null +++ b/src/app/shared/components/version-dropdown/version-dropdown.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { VersionDropdownComponent } from './version-dropdown.component'; + +describe('VersionDropdownComponent', () => { + let component: VersionDropdownComponent; + let fixture: ComponentFixture<VersionDropdownComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [VersionDropdownComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(VersionDropdownComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/components/version-dropdown/version-dropdown.component.ts b/src/app/shared/components/version-dropdown/version-dropdown.component.ts new file mode 100644 index 0000000..7b33521 --- /dev/null +++ b/src/app/shared/components/version-dropdown/version-dropdown.component.ts @@ -0,0 +1,31 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { MatMenuModule } from '@angular/material/menu'; +import { Revision } from '../../models'; +import { MatListModule } from '@angular/material/list'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; + +@Component({ + selector: 'gp-version-dropdown', + standalone: true, + imports: [ + CommonModule, + MatMenuModule, + MatListModule, + MatButtonModule, + MatIconModule, + ], + templateUrl: './version-dropdown.component.html', + styleUrl: './version-dropdown.component.scss', +}) +export class VersionDropdownComponent { + @Input() selectedDefaultRevision!: Revision; + @Input() revisionsList!: Revision[]; + @Output() revisionChange: EventEmitter<Revision> = + new EventEmitter<Revision>(); + + onChangeVersion(revision: Revision) { + this.revisionChange.emit(revision); + } +} -- GitLab