diff --git a/src/app/home-page/top-level-community-list/top-level-community-list.component.html b/src/app/home-page/top-level-community-list/top-level-community-list.component.html index 064b308ed5..71ffee7dc6 100644 --- a/src/app/home-page/top-level-community-list/top-level-community-list.component.html +++ b/src/app/home-page/top-level-community-list/top-level-community-list.component.html @@ -1,9 +1,10 @@

- - {{'home.top-level-communities.head' | translate}} + + {{'home.top-level-communities.head' | translate}}

{{'home.top-level-communities.help' | translate}}

{{ content | translate }}
- - - - - - - - - - - - - - - diff --git a/src/app/shared/context-help-wrapper/context-help-wrapper.component.scss b/src/app/shared/context-help-wrapper/context-help-wrapper.component.scss index 30bbac02ff..a58feda71f 100644 --- a/src/app/shared/context-help-wrapper/context-help-wrapper.component.scss +++ b/src/app/shared/context-help-wrapper/context-help-wrapper.component.scss @@ -3,21 +3,23 @@ } .ds-context-help-icon { - position: absolute; - top: 0; + position: absolute; + top: 0; + cursor: pointer; + color: var(--bs-info); + background-color: var(--bs-white); + font-size: 16px; // not relative, because we don't want the icon to resize based on the container + line-height: 1; + border-radius: 50%; } + .ds-context-help-icon-left { left: var(--ds-context-x-offset); - color: var(--bs-info); - background-color: var(--bs-white); - font-size: (--dscontext-help-icon-size); - line-height: 1; - border-radius: 50%; } .ds-context-help-icon-right { - right: var(--ds-context-icon-width); + right: calc(-1 * var(--ds-context-help-icon-size)); } ::ng-deep .tooltip-inner { diff --git a/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts b/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts index b39c2b2f06..bed977f858 100644 --- a/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts +++ b/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts @@ -1,23 +1,20 @@ import { Component, Input, OnInit, TemplateRef } from '@angular/core'; import { PlacementArray } from '@ng-bootstrap/ng-bootstrap/util/positioning'; +import { PlacementDir } from './placement-dir.model'; + +// export type PlacementDir = 'left' | 'right'; -export type PlacementDir = 'left' | 'right'; @Component({ selector: 'ds-context-help-wrapper', templateUrl: './context-help-wrapper.component.html', - styleUrls: ['./context-help-wrapper.component.scss'] + styleUrls: ['./context-help-wrapper.component.scss'], }) -export class ContextHelpWrapperComponent implements OnInit { +export class ContextHelpWrapperComponent { @Input() templateRef: TemplateRef; @Input() content: string; - @Input() tooltipPlacement: PlacementArray; // TODO: type - // @Input('iconPlacement') iconPlacement: string; + @Input() tooltipPlacement: PlacementArray; + @Input() iconPlacement: PlacementDir; constructor() { } - - ngOnInit(): void { - // console.log("In ContextHelpWrapperComponent.ngOnInit:", this.content); // XXX - } - } diff --git a/src/app/shared/context-help-wrapper/placement-dir.model.ts b/src/app/shared/context-help-wrapper/placement-dir.model.ts new file mode 100644 index 0000000000..a02c3e3ec9 --- /dev/null +++ b/src/app/shared/context-help-wrapper/placement-dir.model.ts @@ -0,0 +1 @@ +export type PlacementDir = 'left' | 'right'; diff --git a/src/app/shared/context-help.directive.ts b/src/app/shared/context-help.directive.ts index 712950a6f1..2473b6505d 100644 --- a/src/app/shared/context-help.directive.ts +++ b/src/app/shared/context-help.directive.ts @@ -1,29 +1,39 @@ -import { ComponentFactoryResolver, ComponentRef, Directive, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; +import { ComponentFactoryResolver, ComponentRef, Directive, ElementRef, Input, OnChanges, OnInit, TemplateRef, ViewContainerRef } from '@angular/core'; import { PlacementArray } from '@ng-bootstrap/ng-bootstrap/util/positioning'; -import { ContextHelpWrapperComponent, PlacementDir } from './context-help-wrapper/context-help-wrapper.component'; +import { ContextHelpWrapperComponent } from './context-help-wrapper/context-help-wrapper.component'; +import { PlacementDir } from './context-help-wrapper/placement-dir.model'; + +export type ContextHelpDirectiveInput = { + content: string, + tooltipPlacement?: PlacementArray, + iconPlacement?: PlacementDir +} @Directive({ - selector: '[dsContextHelp]' + selector: '[dsContextHelp]', }) -export class ContextHelpDirective implements OnInit { - @Input('dsContextHelp') content: string; - @Input('dsTooltipPlacement') tooltipPlacement: PlacementArray; - // @Input('iconPlacement') iconPlacement: PlacementDir; +export class ContextHelpDirective implements OnChanges { + @Input() dsContextHelp: string | ContextHelpDirectiveInput; protected wrapper: ComponentRef; constructor( private templateRef: TemplateRef, private viewContainerRef: ViewContainerRef, - private componentFactoryResolver: ComponentFactoryResolver + private componentFactoryResolver: ComponentFactoryResolver, ){} - ngOnInit() { + ngOnChanges() { + const input: ContextHelpDirectiveInput = typeof(this.dsContextHelp) === 'string' + ? {content: this.dsContextHelp} + : this.dsContextHelp; + const factory = this.componentFactoryResolver.resolveComponentFactory(ContextHelpWrapperComponent); this.wrapper = this.viewContainerRef.createComponent(factory); this.wrapper.instance.templateRef = this.templateRef; - this.wrapper.instance.content = this.content; - this.wrapper.instance.tooltipPlacement = this.tooltipPlacement; + this.wrapper.instance.content = input.content; + this.wrapper.instance.tooltipPlacement = input.tooltipPlacement; + this.wrapper.instance.iconPlacement = input.iconPlacement; } } diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 0b51ba131c..d97da4562b 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -180,6 +180,7 @@ import { LogInOidcComponent } from './log-in/methods/oidc/log-in-oidc.component' import { ContextHelpDirective } from './context-help.directive'; import { ContextHelpWrapperComponent } from './context-help-wrapper/context-help-wrapper.component'; + const MODULES = [ // Do NOT include UniversalModule, HttpModule, or JsonpModule here CommonModule, diff --git a/src/styles/_custom_variables.scss b/src/styles/_custom_variables.scss index 15c595a564..2013562dec 100644 --- a/src/styles/_custom_variables.scss +++ b/src/styles/_custom_variables.scss @@ -87,5 +87,5 @@ --ds-search-form-scope-max-width: 150px; --ds-context-x-offset: -16px; - --dscontext-help-icon-size: 16px; + --ds-context-help-icon-size: 16px; }