RED-8882 - Help Mode design improvements
This commit is contained in:
parent
252c261621
commit
0021307c71
@ -3,7 +3,6 @@ import { IconButtonComponent, IconButtonTypes } from '../buttons';
|
|||||||
import { randomString } from '../utils';
|
import { randomString } from '../utils';
|
||||||
import { NgIf, NgStyle } from '@angular/common';
|
import { NgIf, NgStyle } from '@angular/common';
|
||||||
import { MatIconModule } from '@angular/material/icon';
|
import { MatIconModule } from '@angular/material/icon';
|
||||||
import { IqserHelpModeModule } from '../help-mode';
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'iqser-empty-state [text]',
|
selector: 'iqser-empty-state [text]',
|
||||||
@ -11,7 +10,7 @@ import { IqserHelpModeModule } from '../help-mode';
|
|||||||
styleUrls: ['./empty-state.component.scss'],
|
styleUrls: ['./empty-state.component.scss'],
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
standalone: true,
|
standalone: true,
|
||||||
imports: [NgStyle, MatIconModule, NgIf, IconButtonComponent, IqserHelpModeModule],
|
imports: [NgStyle, MatIconModule, NgIf, IconButtonComponent],
|
||||||
})
|
})
|
||||||
export class EmptyStateComponent implements OnInit {
|
export class EmptyStateComponent implements OnInit {
|
||||||
readonly iconButtonTypes = IconButtonTypes;
|
readonly iconButtonTypes = IconButtonTypes;
|
||||||
|
|||||||
@ -7,5 +7,5 @@
|
|||||||
{{ 'help-mode.options.do-not-show-again' | translate }}
|
{{ 'help-mode.options.do-not-show-again' | translate }}
|
||||||
</mat-checkbox>
|
</mat-checkbox>
|
||||||
</div>
|
</div>
|
||||||
<iqser-circle-button class="dialog-close" icon="iqser:close" mat-dialog-close></iqser-circle-button>
|
<iqser-circle-button class="dialog-close" icon="iqser:close" (action)="close()"></iqser-circle-button>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@ -1,40 +1,43 @@
|
|||||||
import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core';
|
||||||
import { IqserDialogComponent } from '../../dialog';
|
import { BaseDialogComponent } from '../../dialog';
|
||||||
|
import { MatDialogRef } from '@angular/material/dialog';
|
||||||
|
|
||||||
const HIGHER_CDK_OVERLAY_CONTAINER_ZINDEX = '1200';
|
const HIGHER_CDK_OVERLAY_CONTAINER_ZINDEX = '1200';
|
||||||
const DEFAULT_CDK_OVERLAY_CONTAINER_ZINDEX = '800';
|
const DEFAULT_CDK_OVERLAY_CONTAINER_ZINDEX = '800';
|
||||||
|
|
||||||
interface HelpModeDialogData {}
|
|
||||||
interface HelpModeDialogResult {}
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
templateUrl: './help-mode-dialog.component.html',
|
templateUrl: './help-mode-dialog.component.html',
|
||||||
styleUrls: ['./help-mode-dialog.component.scss'],
|
styleUrls: ['./help-mode-dialog.component.scss'],
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
})
|
})
|
||||||
export class HelpModeDialogComponent
|
export class HelpModeDialogComponent extends BaseDialogComponent implements OnInit, OnDestroy {
|
||||||
extends IqserDialogComponent<HelpModeDialogComponent, HelpModeDialogData, HelpModeDialogResult>
|
|
||||||
implements OnInit, OnDestroy
|
|
||||||
{
|
|
||||||
protected doNotShowAgainOption = false;
|
protected doNotShowAgainOption = false;
|
||||||
|
|
||||||
constructor() {
|
constructor(protected readonly _dialogRef: MatDialogRef<HelpModeDialogComponent>) {
|
||||||
super();
|
super(_dialogRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.#setCdkOverlayContainerZIndex(HIGHER_CDK_OVERLAY_CONTAINER_ZINDEX);
|
this._setCdkOverlayContainerZIndex(HIGHER_CDK_OVERLAY_CONTAINER_ZINDEX);
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnDestroy(): void {
|
ngOnDestroy(): void {
|
||||||
this.#setCdkOverlayContainerZIndex(DEFAULT_CDK_OVERLAY_CONTAINER_ZINDEX);
|
this._setCdkOverlayContainerZIndex(DEFAULT_CDK_OVERLAY_CONTAINER_ZINDEX);
|
||||||
}
|
}
|
||||||
|
|
||||||
setDoNotShowAgainOption(checked: boolean): void {
|
setDoNotShowAgainOption(checked: boolean): void {
|
||||||
this.doNotShowAgainOption = checked;
|
this.doNotShowAgainOption = checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
#setCdkOverlayContainerZIndex(zIndex: string): void {
|
save() {
|
||||||
|
this.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
close() {
|
||||||
|
return this._dialogRef.close(this.doNotShowAgainOption);
|
||||||
|
}
|
||||||
|
|
||||||
|
private _setCdkOverlayContainerZIndex(zIndex: string): void {
|
||||||
const cdkOverlayContainer = document.querySelector<HTMLElement>('.cdk-overlay-container');
|
const cdkOverlayContainer = document.querySelector<HTMLElement>('.cdk-overlay-container');
|
||||||
if (cdkOverlayContainer) {
|
if (cdkOverlayContainer) {
|
||||||
cdkOverlayContainer.style.zIndex = zIndex;
|
cdkOverlayContainer.style.zIndex = zIndex;
|
||||||
|
|||||||
@ -1,22 +1,22 @@
|
|||||||
import { ModuleWithProviders, NgModule } from '@angular/core';
|
import { ModuleWithProviders, NgModule } from '@angular/core';
|
||||||
import { CommonModule } from '@angular/common';
|
import { CommonModule } from '@angular/common';
|
||||||
import { TranslateModule } from '@ngx-translate/core';
|
import { TranslateModule } from '@ngx-translate/core';
|
||||||
import { HelpModeDialogComponent } from './help-mode-dialog/help-mode-dialog.component';
|
|
||||||
import { HelpModeComponent } from './help-mode/help-mode.component';
|
import { HelpModeComponent } from './help-mode/help-mode.component';
|
||||||
import { HelpButtonComponent } from './help-button/help-button.component';
|
import { HelpButtonComponent } from './help-button/help-button.component';
|
||||||
import { HelpModeKey, HelpModeService } from './help-mode.service';
|
import { HelpModeKey, HelpModeService } from './help-mode.service';
|
||||||
import { MatDialogModule } from '@angular/material/dialog';
|
|
||||||
import { CircleButtonComponent } from '../buttons';
|
import { CircleButtonComponent } from '../buttons';
|
||||||
import { HELP_MODE_KEYS } from './tokens';
|
import { HELP_MODE_KEYS } from './tokens';
|
||||||
import { MatSlideToggle } from '@angular/material/slide-toggle';
|
import { MatSlideToggle } from '@angular/material/slide-toggle';
|
||||||
import { MatIcon } from '@angular/material/icon';
|
import { MatIcon } from '@angular/material/icon';
|
||||||
import { MatCheckbox } from '@angular/material/checkbox';
|
import { MatCheckbox } from '@angular/material/checkbox';
|
||||||
|
import { HelpModeDialogComponent } from './help-mode-dialog/help-mode-dialog.component';
|
||||||
|
import { MatDialogClose } from '@angular/material/dialog';
|
||||||
|
|
||||||
const components = [HelpModeComponent, HelpModeDialogComponent, HelpButtonComponent];
|
const components = [HelpModeComponent, HelpButtonComponent, HelpModeDialogComponent];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [...components],
|
declarations: [...components],
|
||||||
imports: [CommonModule, MatDialogModule, TranslateModule, CircleButtonComponent, MatSlideToggle, MatIcon, MatCheckbox],
|
imports: [CommonModule, TranslateModule, CircleButtonComponent, MatSlideToggle, MatIcon, MatCheckbox, MatDialogClose],
|
||||||
exports: [...components],
|
exports: [...components],
|
||||||
})
|
})
|
||||||
export class IqserHelpModeModule {
|
export class IqserHelpModeModule {
|
||||||
|
|||||||
@ -1,5 +1,4 @@
|
|||||||
import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';
|
import { Inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';
|
||||||
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { BehaviorSubject, firstValueFrom } from 'rxjs';
|
import { BehaviorSubject, firstValueFrom } from 'rxjs';
|
||||||
import { HelpModeDialogComponent } from './help-mode-dialog/help-mode-dialog.component';
|
import { HelpModeDialogComponent } from './help-mode-dialog/help-mode-dialog.component';
|
||||||
@ -18,7 +17,8 @@ import {
|
|||||||
WEB_VIEWER_ELEMENTS,
|
WEB_VIEWER_ELEMENTS,
|
||||||
} from './utils/constants';
|
} from './utils/constants';
|
||||||
import { getConfig } from '../services';
|
import { getConfig } from '../services';
|
||||||
import { IqserDialog } from '../dialog';
|
import { UserPreferenceService } from '../../../../../apps/red-ui/src/app/users/user-preference.service';
|
||||||
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
|
|
||||||
export interface Helper {
|
export interface Helper {
|
||||||
readonly element: HTMLElement;
|
readonly element: HTMLElement;
|
||||||
@ -51,9 +51,10 @@ export class HelpModeService {
|
|||||||
constructor(
|
constructor(
|
||||||
@Inject(HELP_MODE_KEYS) private readonly _keys: HelpModeKey[],
|
@Inject(HELP_MODE_KEYS) private readonly _keys: HelpModeKey[],
|
||||||
@Inject(MANUAL_BASE_URL) private readonly _manualBaseURL: string,
|
@Inject(MANUAL_BASE_URL) private readonly _manualBaseURL: string,
|
||||||
private readonly _iqserDialog: IqserDialog,
|
private readonly _dialog: MatDialog,
|
||||||
private readonly _rendererFactory: RendererFactory2,
|
private readonly _rendererFactory: RendererFactory2,
|
||||||
private readonly _translateService: TranslateService,
|
private readonly _translateService: TranslateService,
|
||||||
|
private readonly _userPreferencesService: UserPreferenceService,
|
||||||
) {
|
) {
|
||||||
this.#renderer = this._rendererFactory.createRenderer(null, null);
|
this.#renderer = this._rendererFactory.createRenderer(null, null);
|
||||||
}
|
}
|
||||||
@ -66,16 +67,21 @@ export class HelpModeService {
|
|||||||
return this.#helpModeDialogIsOpened$.getValue();
|
return this.#helpModeDialogIsOpened$.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
openHelpModeDialog() {
|
async openHelpModeDialog() {
|
||||||
this.#helpModeDialogIsOpened$.next(true);
|
if (!this._userPreferencesService.getHelpModeDialog()) {
|
||||||
|
this.#helpModeDialogIsOpened$.next(true);
|
||||||
|
|
||||||
this._iqserDialog.open(HelpModeDialogComponent, {
|
const ref = this._dialog.open(HelpModeDialogComponent, {
|
||||||
width: '600px',
|
width: '600px',
|
||||||
});
|
});
|
||||||
|
|
||||||
// firstValueFrom(ref.afterClosed()).then(() => {
|
firstValueFrom(ref.afterClosed()).then(result => {
|
||||||
// this.#helpModeDialogIsOpened$.next(false);
|
this.#helpModeDialogIsOpened$.next(false);
|
||||||
// });
|
if (result) {
|
||||||
|
this._userPreferencesService.toggleHelpModeDialog();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
activateHelpMode(dialogMode: boolean = false): void {
|
activateHelpMode(dialogMode: boolean = false): void {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user