From 09706515ba1feb0d44c02485bee9782f63a5978f Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Wed, 12 Oct 2022 12:23:24 +0300 Subject: [PATCH 1/3] Search Input: Add icon position and focus state --- .../search-input/search-input.component.ts | 6 +- utils/smooth-scroll.ts | 72 ++++++++++--------- 2 files changed, 42 insertions(+), 36 deletions(-) diff --git a/sharedComponents/search-input/search-input.component.ts b/sharedComponents/search-input/search-input.component.ts index 705f91a6..af744175 100644 --- a/sharedComponents/search-input/search-input.component.ts +++ b/sharedComponents/search-input/search-input.component.ts @@ -18,7 +18,8 @@ import {ClickEvent} from "../../utils/click/click-outside-or-esc.directive"; selector: '[search-input]', template: `
-
+
-
+
@@ -43,6 +44,7 @@ import {ClickEvent} from "../../utils/click/click-outside-or-esc.directive"; export class SearchInputComponent implements OnInit { @Input() disabled: boolean = false; @Input() searchInputClass: string = 'inner'; + @Input() iconPosition: 'left' | 'right' = 'right'; @Input() searchControl: AbstractControl; @Input() value: string; @Output() valueChange = new EventEmitter(); diff --git a/utils/smooth-scroll.ts b/utils/smooth-scroll.ts index 9a34eace..78cb44e0 100644 --- a/utils/smooth-scroll.ts +++ b/utils/smooth-scroll.ts @@ -10,51 +10,55 @@ export class SmoothScroll { private readonly sub; private lastComponent; private currentComponent: string; + private extraOffset: number = 0; constructor(private router: Router) { if (typeof window !== "undefined") { this.sub = router.events.subscribe(event => { if (event instanceof ActivationStart) { + this.extraOffset = event.snapshot.data.extraOffset?event.snapshot.data.extraOffset:0; if(event.snapshot.component instanceof Type) { this.currentComponent = event.snapshot.component.name; } } else if (event instanceof NavigationEnd) { - if (this.interval) { - clearInterval(this.interval); - } - const fragment = router.parseUrl(router.url).fragment; - if (this.lastComponent !== this.currentComponent) { - window.scrollTo({top: 0}); - } - if (fragment) { - let i = 0; - this.interval = setInterval(() => { - i++; - const element = document.getElementById(fragment); - if (element) { - if (this.interval) { + if(!this.router.getCurrentNavigation().extras?.state?.disableScroll) { + if (this.interval) { + clearInterval(this.interval); + } + const fragment = router.parseUrl(router.url).fragment; + if (this.lastComponent !== this.currentComponent) { + window.scrollTo({top: 0}); + } + if (fragment) { + let i = 0; + this.interval = setInterval(() => { + i++; + const element = document.getElementById(fragment); + if (element) { + if (this.interval) { + clearInterval(this.interval); + } + const yOffset = -100 - this.extraOffset; + let position = 0; + let interval = setInterval(() => { + if (position !== element.getBoundingClientRect().top) { + position = element.getBoundingClientRect().top; + } else { + clearInterval(interval); + const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset; + window.scrollTo({top: y, behavior: 'smooth'}); + } + }, 50); + } + if (i > 4 && this.interval) { clearInterval(this.interval); } - const yOffset = -100; - let position = 0; - let interval = setInterval(() => { - if (position !== element.getBoundingClientRect().top) { - position = element.getBoundingClientRect().top; - } else { - clearInterval(interval); - const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset; - window.scrollTo({top: y, behavior: 'smooth'}); - } - }, 50); - } - if (i > 4 && this.interval) { - clearInterval(this.interval); - } - }, 100); - } else { - setTimeout( () => { - window.scrollTo({top: 0, behavior: 'smooth'}); - }, 0); + }, 100); + } else { + setTimeout( () => { + window.scrollTo({top: 0, behavior: 'smooth'}); + }, 0); + } } this.lastComponent = this.currentComponent; } From 427e9105140fabb99f59693c94bc3b70db159901 Mon Sep 17 00:00:00 2001 From: Alex Martzios Date: Wed, 12 Oct 2022 15:30:39 +0300 Subject: [PATCH 2/3] create hasQuickContact behaviour subject for disabling in specific routes --- .../sidebar/layout.service.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/dashboard/sharedComponents/sidebar/layout.service.ts b/dashboard/sharedComponents/sidebar/layout.service.ts index 0265b3f8..993d76bd 100644 --- a/dashboard/sharedComponents/sidebar/layout.service.ts +++ b/dashboard/sharedComponents/sidebar/layout.service.ts @@ -36,10 +36,14 @@ export class LayoutService { * Add isSmallScreen: true on data of route config, if screen is small. */ private isSmallScreenSubject: BehaviorSubject = new BehaviorSubject(false); - + /** + * Add hasQuickContact: false on data of route config, if the quick-contact fixed button is not needed. + */ + private hasQuickContactSubject: BehaviorSubject = new BehaviorSubject(true); /** * Add activeMenuItem: string on data of route config, if page should activate a specific MenuItem and route url does not match. */ + private activeMenuItemSubject: BehaviorSubject = new BehaviorSubject(""); /** @@ -100,6 +104,12 @@ export class LayoutService { this.setSmallScreen(true); } else { this.setSmallScreen(false); + } + if (data['hasQuickContact'] !== undefined && + data['hasQuickContact'] === false) { + this.setHasQuickContact(false); + } else { + this.setHasQuickContact(true); } if (data['activeMenuItem'] !== undefined && data['activeMenuItem'] !== null) { @@ -168,6 +178,14 @@ export class LayoutService { this.isSmallScreenSubject.next(value); } + get hasQuickContact(): Observable { + return this.hasQuickContactSubject.asObservable(); + } + + setHasQuickContact(value: boolean) { + this.hasQuickContactSubject.next(value); + } + get activeMenuItem(): string { return this.activeMenuItemSubject.getValue(); } From d720178db3b563583bec05689dee9639af43117c Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Wed, 12 Oct 2022 16:36:33 +0300 Subject: [PATCH 3/3] [Explore]: orcid-work.component.ts: [Bug fix] Added [size]="'small'" input to | environment.ts: Updated port of orcidAPIURL (standalone service). --- orcid/orcid-work.component.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/orcid/orcid-work.component.ts b/orcid/orcid-work.component.ts index 250bec59..b05596c2 100644 --- a/orcid/orcid-work.component.ts +++ b/orcid/orcid-work.component.ts @@ -25,7 +25,7 @@ declare var UIkit: any; - + Add to  ORCID  @@ -41,7 +41,7 @@ declare var UIkit: any; - + Delete from  ORCID  @@ -64,7 +64,7 @@ declare var UIkit: any; + [top_margin]="false" [size]="'small'"> + [top_margin]="false" [size]="'small'"> @@ -121,7 +121,7 @@ declare var UIkit: any; [class]="'uk-button uk-button-default action uk-flex uk-flex-middle '+ ((showLoading || !putCodes || putCodes.length == 0) ? 'uk-disabled' : '')"> - + View ORCID work @@ -133,7 +133,7 @@ declare var UIkit: any; - + Update ORCID work @@ -143,7 +143,7 @@ declare var UIkit: any; - + Add to ORCID @@ -153,7 +153,7 @@ declare var UIkit: any; - + Delete from ORCID