bitwarden-browser/libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog....

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

245 lines
7.7 KiB
TypeScript
Raw Normal View History

import { DialogModule } from "@angular/cdk/dialog";
Feature/SG-878 - Add open simple dialog method on dialog service (#4425) * SG-878 - First draft - Dialog service now has backwards compatible method for opening a configurable simple dialog. * SG-878 - People comp - test cases for simple dialog method - more testing required * SG-878 - Much more simple dialog work - investigating different approaches to see what will work best. Lots of WIP on this one. Includes first draft but working solution for solving placeholder support for non-localized strings. * SG-878 - (1) Broke out enums and types into separate files for better single responsibility (2) Allow null cancelButtonText for single accept button support * SG-878 - Configurable simple dialog - removed separate comp approach as it is a maint problem to have simple dialog implemented in two places. * SG-878 - Added js doc comments for dialog service openSimpleDialog method * SG-878 - Don't export ConfigurableSimpleDialogComp as only dialogService should use it * SG-878 - (1) Refactor configurable simple dialog to reduce icon class repetition in html (2) Update simple dialog options to use new Translation interface and update comp to properly process placeholders again * SG-878 - Reverting all simple dialog changes as, per discussion with Oscar, going to use composition and go with configurable-simple-dialog comp for use in the dialog service * SG-878 - Testing latest simple dialog changes * SG-878 - Update simple-dialog-options * SG-878 - (1) People & collections component now use dialogService.openSimpleDialog vs custom org upgrade dialog comp (2) Rename configurable-simple-dialog to simple-configurable-dialog for better folder placement * SG-878 - Update formatting of Simple dialog options js doc comments * SG-878 - Remove test code * SG-878 -Remove org upgrade dialog component as it has been replaced with dialog service openSimpleDialog method call * SG-878 - Move models to be near where they are used which is in the simple-configurable-dialog folder. * SG-878 - Refactor icon classes into simple getter per Oscar's suggestions * SG-878 - Refactor Translation placeholderValues to be just placeholders * SG-878 - Refactor Simple Dialog Options to remove isLocalized as it doesn't buy us that much to have it. We can just check if a passed in value is a string or a Translation object to determine if we need to translate it. * SG-878 - Dialog Svc - remove backdrop classes from openSimpleDialog method as standard open method applies them * SG-878 - (1) Refactor simple configurable dialog to use comp properties instead of re-using option props (2) Reduce html complexity (3) Create translate func for code simplification (4) Remove isTranslation type guard as simple object check is sufficient * SG-668 - Refactoring collections & people comps use of dialog service openSimpleDialog to condense options per PR feedback * SG-878 - SimpleConfigDialog - (1) Footer classes were missing so btns were not spaced out properly (2) cancel btn text fixed to reference component property * SG-878 - First pass at creating a storybook example for the new openSimpleDialog method on the dialogService. * SG-878 - SimpleConfigurableDialog storybook - now displays callout with dialog results for better example * SG-878 - SimpleConfigurableDialog - use text-main tailwind class for h2s so that text is colored properly on black background * SG-878 - SimpleConfigurableDialog - Remove unstyled buttons and colored text and replace with plain secondary buttons to fix visibility issues on dark background. * Update libs/components/src/dialog/simple-configurable-dialog/models/simple-dialog-type.enum.ts SG-878 - Remove early commentary about use of simple-dialog-type enum Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.html SG-878 - SimpleConfigurableDialog html - consolidate title html to 1 line Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigurableDialog comp ts - remove unnecessary comment. Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigDialog comp - remove unnecessary comment Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * SG-668 / SG-878 - Migrate Free Org Upgrade Flows logic from deprecated collections component to vault component * SG-878 - Refactor the free org upgrade dialog to leverage separate methods to improve code and decrease cyclomatic complexity Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2023-01-24 22:38:14 +01:00
import { Component } from "@angular/core";
import { Meta, StoryObj, moduleMetadata } from "@storybook/angular";
Feature/SG-878 - Add open simple dialog method on dialog service (#4425) * SG-878 - First draft - Dialog service now has backwards compatible method for opening a configurable simple dialog. * SG-878 - People comp - test cases for simple dialog method - more testing required * SG-878 - Much more simple dialog work - investigating different approaches to see what will work best. Lots of WIP on this one. Includes first draft but working solution for solving placeholder support for non-localized strings. * SG-878 - (1) Broke out enums and types into separate files for better single responsibility (2) Allow null cancelButtonText for single accept button support * SG-878 - Configurable simple dialog - removed separate comp approach as it is a maint problem to have simple dialog implemented in two places. * SG-878 - Added js doc comments for dialog service openSimpleDialog method * SG-878 - Don't export ConfigurableSimpleDialogComp as only dialogService should use it * SG-878 - (1) Refactor configurable simple dialog to reduce icon class repetition in html (2) Update simple dialog options to use new Translation interface and update comp to properly process placeholders again * SG-878 - Reverting all simple dialog changes as, per discussion with Oscar, going to use composition and go with configurable-simple-dialog comp for use in the dialog service * SG-878 - Testing latest simple dialog changes * SG-878 - Update simple-dialog-options * SG-878 - (1) People & collections component now use dialogService.openSimpleDialog vs custom org upgrade dialog comp (2) Rename configurable-simple-dialog to simple-configurable-dialog for better folder placement * SG-878 - Update formatting of Simple dialog options js doc comments * SG-878 - Remove test code * SG-878 -Remove org upgrade dialog component as it has been replaced with dialog service openSimpleDialog method call * SG-878 - Move models to be near where they are used which is in the simple-configurable-dialog folder. * SG-878 - Refactor icon classes into simple getter per Oscar's suggestions * SG-878 - Refactor Translation placeholderValues to be just placeholders * SG-878 - Refactor Simple Dialog Options to remove isLocalized as it doesn't buy us that much to have it. We can just check if a passed in value is a string or a Translation object to determine if we need to translate it. * SG-878 - Dialog Svc - remove backdrop classes from openSimpleDialog method as standard open method applies them * SG-878 - (1) Refactor simple configurable dialog to use comp properties instead of re-using option props (2) Reduce html complexity (3) Create translate func for code simplification (4) Remove isTranslation type guard as simple object check is sufficient * SG-668 - Refactoring collections & people comps use of dialog service openSimpleDialog to condense options per PR feedback * SG-878 - SimpleConfigDialog - (1) Footer classes were missing so btns were not spaced out properly (2) cancel btn text fixed to reference component property * SG-878 - First pass at creating a storybook example for the new openSimpleDialog method on the dialogService. * SG-878 - SimpleConfigurableDialog storybook - now displays callout with dialog results for better example * SG-878 - SimpleConfigurableDialog - use text-main tailwind class for h2s so that text is colored properly on black background * SG-878 - SimpleConfigurableDialog - Remove unstyled buttons and colored text and replace with plain secondary buttons to fix visibility issues on dark background. * Update libs/components/src/dialog/simple-configurable-dialog/models/simple-dialog-type.enum.ts SG-878 - Remove early commentary about use of simple-dialog-type enum Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.html SG-878 - SimpleConfigurableDialog html - consolidate title html to 1 line Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigurableDialog comp ts - remove unnecessary comment. Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigDialog comp - remove unnecessary comment Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * SG-668 / SG-878 - Migrate Free Org Upgrade Flows logic from deprecated collections component to vault component * SG-878 - Refactor the free org upgrade dialog to leverage separate methods to improve code and decrease cyclomatic complexity Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2023-01-24 22:38:14 +01:00
import { SimpleDialogType, SimpleDialogOptions } from "@bitwarden/angular/services/dialog";
Feature/SG-878 - Add open simple dialog method on dialog service (#4425) * SG-878 - First draft - Dialog service now has backwards compatible method for opening a configurable simple dialog. * SG-878 - People comp - test cases for simple dialog method - more testing required * SG-878 - Much more simple dialog work - investigating different approaches to see what will work best. Lots of WIP on this one. Includes first draft but working solution for solving placeholder support for non-localized strings. * SG-878 - (1) Broke out enums and types into separate files for better single responsibility (2) Allow null cancelButtonText for single accept button support * SG-878 - Configurable simple dialog - removed separate comp approach as it is a maint problem to have simple dialog implemented in two places. * SG-878 - Added js doc comments for dialog service openSimpleDialog method * SG-878 - Don't export ConfigurableSimpleDialogComp as only dialogService should use it * SG-878 - (1) Refactor configurable simple dialog to reduce icon class repetition in html (2) Update simple dialog options to use new Translation interface and update comp to properly process placeholders again * SG-878 - Reverting all simple dialog changes as, per discussion with Oscar, going to use composition and go with configurable-simple-dialog comp for use in the dialog service * SG-878 - Testing latest simple dialog changes * SG-878 - Update simple-dialog-options * SG-878 - (1) People & collections component now use dialogService.openSimpleDialog vs custom org upgrade dialog comp (2) Rename configurable-simple-dialog to simple-configurable-dialog for better folder placement * SG-878 - Update formatting of Simple dialog options js doc comments * SG-878 - Remove test code * SG-878 -Remove org upgrade dialog component as it has been replaced with dialog service openSimpleDialog method call * SG-878 - Move models to be near where they are used which is in the simple-configurable-dialog folder. * SG-878 - Refactor icon classes into simple getter per Oscar's suggestions * SG-878 - Refactor Translation placeholderValues to be just placeholders * SG-878 - Refactor Simple Dialog Options to remove isLocalized as it doesn't buy us that much to have it. We can just check if a passed in value is a string or a Translation object to determine if we need to translate it. * SG-878 - Dialog Svc - remove backdrop classes from openSimpleDialog method as standard open method applies them * SG-878 - (1) Refactor simple configurable dialog to use comp properties instead of re-using option props (2) Reduce html complexity (3) Create translate func for code simplification (4) Remove isTranslation type guard as simple object check is sufficient * SG-668 - Refactoring collections & people comps use of dialog service openSimpleDialog to condense options per PR feedback * SG-878 - SimpleConfigDialog - (1) Footer classes were missing so btns were not spaced out properly (2) cancel btn text fixed to reference component property * SG-878 - First pass at creating a storybook example for the new openSimpleDialog method on the dialogService. * SG-878 - SimpleConfigurableDialog storybook - now displays callout with dialog results for better example * SG-878 - SimpleConfigurableDialog - use text-main tailwind class for h2s so that text is colored properly on black background * SG-878 - SimpleConfigurableDialog - Remove unstyled buttons and colored text and replace with plain secondary buttons to fix visibility issues on dark background. * Update libs/components/src/dialog/simple-configurable-dialog/models/simple-dialog-type.enum.ts SG-878 - Remove early commentary about use of simple-dialog-type enum Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.html SG-878 - SimpleConfigurableDialog html - consolidate title html to 1 line Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigurableDialog comp ts - remove unnecessary comment. Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigDialog comp - remove unnecessary comment Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * SG-668 / SG-878 - Migrate Free Org Upgrade Flows logic from deprecated collections component to vault component * SG-878 - Refactor the free org upgrade dialog to leverage separate methods to improve code and decrease cyclomatic complexity Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2023-01-24 22:38:14 +01:00
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
import { ButtonModule } from "../../button";
import { CalloutModule } from "../../callout";
import { IconButtonModule } from "../../icon-button";
import { SharedModule } from "../../shared/shared.module";
import { I18nMockService } from "../../utils/i18n-mock.service";
import { DialogService } from "../dialog.service";
import { DialogCloseDirective } from "../directives/dialog-close.directive";
import { DialogTitleContainerDirective } from "../directives/dialog-title-container.directive";
import { SimpleDialogComponent } from "../simple-dialog/simple-dialog.component";
@Component({
template: `
<h2 class="tw-text-main">Dialog Type Examples:</h2>
<div class="tw-mb-4 tw-flex tw-flex-row tw-gap-2">
<button
bitButton
buttonType="primary"
(click)="openSimpleConfigurableDialog(primaryLocalizedSimpleDialogOpts)"
>
Open Primary Type Simple Dialog
</button>
<button
bitButton
buttonType="secondary"
(click)="openSimpleConfigurableDialog(successLocalizedSimpleDialogOpts)"
>
Open Success Type Simple Dialog
</button>
<button
bitButton
buttonType="secondary"
(click)="openSimpleConfigurableDialog(infoLocalizedSimpleDialogOpts)"
>
Open Info Type Simple Dialog
</button>
<button
bitButton
buttonType="secondary"
(click)="openSimpleConfigurableDialog(warningLocalizedSimpleDialogOpts)"
>
Open Warning Type Simple Dialog
</button>
<button
bitButton
buttonType="secondary"
(click)="openSimpleConfigurableDialog(dangerLocalizedSimpleDialogOpts)"
>
Open Danger Type Simple Dialog
</button>
</div>
<h2 class="tw-text-main">Custom Button Examples:</h2>
<div class="tw-mb-4 tw-flex tw-flex-row tw-gap-2">
<button
bitButton
buttonType="primary"
(click)="openSimpleConfigurableDialog(primaryAcceptBtnOverrideSimpleDialogOpts)"
>
Open Simple Dialog with custom accept button text
</button>
<button
bitButton
buttonType="primary"
(click)="openSimpleConfigurableDialog(primaryCustomBtnsSimpleDialogOpts)"
>
Open Simple Dialog with 2 custom buttons
</button>
<button
bitButton
buttonType="primary"
(click)="openSimpleConfigurableDialog(primarySingleBtnSimpleDialogOpts)"
>
Open Single Button Simple Dialog
</button>
</div>
<h2 class="tw-text-main">Custom Icon Example:</h2>
<div class="tw-mb-4 tw-flex tw-flex-row tw-gap-2">
<button
bitButton
buttonType="primary"
(click)="openSimpleConfigurableDialog(primaryCustomIconSimpleDialogOpts)"
>
Open Simple Dialog with custom icon
</button>
</div>
<h2 class="tw-text-main">Additional Examples:</h2>
<div class="tw-mb-4 tw-flex tw-flex-row tw-gap-2">
<button
bitButton
buttonType="primary"
(click)="openSimpleConfigurableDialog(primaryDisableCloseSimpleDialogOpts)"
>
Open Simple Dialog with backdrop click / escape key press disabled
</button>
</div>
<bit-callout *ngIf="showCallout" [type]="calloutType" title="Dialog Close Result">
{{ dialogCloseResult }}
Feature/SG-878 - Add open simple dialog method on dialog service (#4425) * SG-878 - First draft - Dialog service now has backwards compatible method for opening a configurable simple dialog. * SG-878 - People comp - test cases for simple dialog method - more testing required * SG-878 - Much more simple dialog work - investigating different approaches to see what will work best. Lots of WIP on this one. Includes first draft but working solution for solving placeholder support for non-localized strings. * SG-878 - (1) Broke out enums and types into separate files for better single responsibility (2) Allow null cancelButtonText for single accept button support * SG-878 - Configurable simple dialog - removed separate comp approach as it is a maint problem to have simple dialog implemented in two places. * SG-878 - Added js doc comments for dialog service openSimpleDialog method * SG-878 - Don't export ConfigurableSimpleDialogComp as only dialogService should use it * SG-878 - (1) Refactor configurable simple dialog to reduce icon class repetition in html (2) Update simple dialog options to use new Translation interface and update comp to properly process placeholders again * SG-878 - Reverting all simple dialog changes as, per discussion with Oscar, going to use composition and go with configurable-simple-dialog comp for use in the dialog service * SG-878 - Testing latest simple dialog changes * SG-878 - Update simple-dialog-options * SG-878 - (1) People & collections component now use dialogService.openSimpleDialog vs custom org upgrade dialog comp (2) Rename configurable-simple-dialog to simple-configurable-dialog for better folder placement * SG-878 - Update formatting of Simple dialog options js doc comments * SG-878 - Remove test code * SG-878 -Remove org upgrade dialog component as it has been replaced with dialog service openSimpleDialog method call * SG-878 - Move models to be near where they are used which is in the simple-configurable-dialog folder. * SG-878 - Refactor icon classes into simple getter per Oscar's suggestions * SG-878 - Refactor Translation placeholderValues to be just placeholders * SG-878 - Refactor Simple Dialog Options to remove isLocalized as it doesn't buy us that much to have it. We can just check if a passed in value is a string or a Translation object to determine if we need to translate it. * SG-878 - Dialog Svc - remove backdrop classes from openSimpleDialog method as standard open method applies them * SG-878 - (1) Refactor simple configurable dialog to use comp properties instead of re-using option props (2) Reduce html complexity (3) Create translate func for code simplification (4) Remove isTranslation type guard as simple object check is sufficient * SG-668 - Refactoring collections & people comps use of dialog service openSimpleDialog to condense options per PR feedback * SG-878 - SimpleConfigDialog - (1) Footer classes were missing so btns were not spaced out properly (2) cancel btn text fixed to reference component property * SG-878 - First pass at creating a storybook example for the new openSimpleDialog method on the dialogService. * SG-878 - SimpleConfigurableDialog storybook - now displays callout with dialog results for better example * SG-878 - SimpleConfigurableDialog - use text-main tailwind class for h2s so that text is colored properly on black background * SG-878 - SimpleConfigurableDialog - Remove unstyled buttons and colored text and replace with plain secondary buttons to fix visibility issues on dark background. * Update libs/components/src/dialog/simple-configurable-dialog/models/simple-dialog-type.enum.ts SG-878 - Remove early commentary about use of simple-dialog-type enum Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.html SG-878 - SimpleConfigurableDialog html - consolidate title html to 1 line Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigurableDialog comp ts - remove unnecessary comment. Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigDialog comp - remove unnecessary comment Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * SG-668 / SG-878 - Migrate Free Org Upgrade Flows logic from deprecated collections component to vault component * SG-878 - Refactor the free org upgrade dialog to leverage separate methods to improve code and decrease cyclomatic complexity Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2023-01-24 22:38:14 +01:00
</bit-callout>
`,
})
class StoryDialogComponent {
primaryLocalizedSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("primaryTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.PRIMARY,
};
successLocalizedSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("successTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.SUCCESS,
};
infoLocalizedSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("infoTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.INFO,
};
warningLocalizedSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("warningTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.WARNING,
};
dangerLocalizedSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("dangerTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.DANGER,
};
primarySingleBtnSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("primaryTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.PRIMARY,
acceptButtonText: "Ok",
cancelButtonText: null,
};
primaryCustomBtnsSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("primaryTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.PRIMARY,
acceptButtonText: this.i18nService.t("accept"),
cancelButtonText: this.i18nService.t("decline"),
};
primaryAcceptBtnOverrideSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("primaryTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.PRIMARY,
acceptButtonText: "Ok",
};
primaryCustomIconSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("primaryTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.PRIMARY,
icon: "bwi-family",
};
primaryDisableCloseSimpleDialogOpts: SimpleDialogOptions = {
title: this.i18nService.t("primaryTypeSimpleDialog"),
content: this.i18nService.t("dialogContent"),
type: SimpleDialogType.PRIMARY,
disableClose: true,
};
showCallout = false;
calloutType = "info";
dialogCloseResult: boolean;
Feature/SG-878 - Add open simple dialog method on dialog service (#4425) * SG-878 - First draft - Dialog service now has backwards compatible method for opening a configurable simple dialog. * SG-878 - People comp - test cases for simple dialog method - more testing required * SG-878 - Much more simple dialog work - investigating different approaches to see what will work best. Lots of WIP on this one. Includes first draft but working solution for solving placeholder support for non-localized strings. * SG-878 - (1) Broke out enums and types into separate files for better single responsibility (2) Allow null cancelButtonText for single accept button support * SG-878 - Configurable simple dialog - removed separate comp approach as it is a maint problem to have simple dialog implemented in two places. * SG-878 - Added js doc comments for dialog service openSimpleDialog method * SG-878 - Don't export ConfigurableSimpleDialogComp as only dialogService should use it * SG-878 - (1) Refactor configurable simple dialog to reduce icon class repetition in html (2) Update simple dialog options to use new Translation interface and update comp to properly process placeholders again * SG-878 - Reverting all simple dialog changes as, per discussion with Oscar, going to use composition and go with configurable-simple-dialog comp for use in the dialog service * SG-878 - Testing latest simple dialog changes * SG-878 - Update simple-dialog-options * SG-878 - (1) People & collections component now use dialogService.openSimpleDialog vs custom org upgrade dialog comp (2) Rename configurable-simple-dialog to simple-configurable-dialog for better folder placement * SG-878 - Update formatting of Simple dialog options js doc comments * SG-878 - Remove test code * SG-878 -Remove org upgrade dialog component as it has been replaced with dialog service openSimpleDialog method call * SG-878 - Move models to be near where they are used which is in the simple-configurable-dialog folder. * SG-878 - Refactor icon classes into simple getter per Oscar's suggestions * SG-878 - Refactor Translation placeholderValues to be just placeholders * SG-878 - Refactor Simple Dialog Options to remove isLocalized as it doesn't buy us that much to have it. We can just check if a passed in value is a string or a Translation object to determine if we need to translate it. * SG-878 - Dialog Svc - remove backdrop classes from openSimpleDialog method as standard open method applies them * SG-878 - (1) Refactor simple configurable dialog to use comp properties instead of re-using option props (2) Reduce html complexity (3) Create translate func for code simplification (4) Remove isTranslation type guard as simple object check is sufficient * SG-668 - Refactoring collections & people comps use of dialog service openSimpleDialog to condense options per PR feedback * SG-878 - SimpleConfigDialog - (1) Footer classes were missing so btns were not spaced out properly (2) cancel btn text fixed to reference component property * SG-878 - First pass at creating a storybook example for the new openSimpleDialog method on the dialogService. * SG-878 - SimpleConfigurableDialog storybook - now displays callout with dialog results for better example * SG-878 - SimpleConfigurableDialog - use text-main tailwind class for h2s so that text is colored properly on black background * SG-878 - SimpleConfigurableDialog - Remove unstyled buttons and colored text and replace with plain secondary buttons to fix visibility issues on dark background. * Update libs/components/src/dialog/simple-configurable-dialog/models/simple-dialog-type.enum.ts SG-878 - Remove early commentary about use of simple-dialog-type enum Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.html SG-878 - SimpleConfigurableDialog html - consolidate title html to 1 line Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigurableDialog comp ts - remove unnecessary comment. Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigDialog comp - remove unnecessary comment Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * SG-668 / SG-878 - Migrate Free Org Upgrade Flows logic from deprecated collections component to vault component * SG-878 - Refactor the free org upgrade dialog to leverage separate methods to improve code and decrease cyclomatic complexity Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2023-01-24 22:38:14 +01:00
constructor(public dialogService: DialogService, private i18nService: I18nService) {}
async openSimpleConfigurableDialog(opts: SimpleDialogOptions) {
this.dialogCloseResult = await this.dialogService.openSimpleDialog(opts);
this.showCallout = true;
if (this.dialogCloseResult) {
this.calloutType = "success";
} else {
this.calloutType = "info";
}
Feature/SG-878 - Add open simple dialog method on dialog service (#4425) * SG-878 - First draft - Dialog service now has backwards compatible method for opening a configurable simple dialog. * SG-878 - People comp - test cases for simple dialog method - more testing required * SG-878 - Much more simple dialog work - investigating different approaches to see what will work best. Lots of WIP on this one. Includes first draft but working solution for solving placeholder support for non-localized strings. * SG-878 - (1) Broke out enums and types into separate files for better single responsibility (2) Allow null cancelButtonText for single accept button support * SG-878 - Configurable simple dialog - removed separate comp approach as it is a maint problem to have simple dialog implemented in two places. * SG-878 - Added js doc comments for dialog service openSimpleDialog method * SG-878 - Don't export ConfigurableSimpleDialogComp as only dialogService should use it * SG-878 - (1) Refactor configurable simple dialog to reduce icon class repetition in html (2) Update simple dialog options to use new Translation interface and update comp to properly process placeholders again * SG-878 - Reverting all simple dialog changes as, per discussion with Oscar, going to use composition and go with configurable-simple-dialog comp for use in the dialog service * SG-878 - Testing latest simple dialog changes * SG-878 - Update simple-dialog-options * SG-878 - (1) People & collections component now use dialogService.openSimpleDialog vs custom org upgrade dialog comp (2) Rename configurable-simple-dialog to simple-configurable-dialog for better folder placement * SG-878 - Update formatting of Simple dialog options js doc comments * SG-878 - Remove test code * SG-878 -Remove org upgrade dialog component as it has been replaced with dialog service openSimpleDialog method call * SG-878 - Move models to be near where they are used which is in the simple-configurable-dialog folder. * SG-878 - Refactor icon classes into simple getter per Oscar's suggestions * SG-878 - Refactor Translation placeholderValues to be just placeholders * SG-878 - Refactor Simple Dialog Options to remove isLocalized as it doesn't buy us that much to have it. We can just check if a passed in value is a string or a Translation object to determine if we need to translate it. * SG-878 - Dialog Svc - remove backdrop classes from openSimpleDialog method as standard open method applies them * SG-878 - (1) Refactor simple configurable dialog to use comp properties instead of re-using option props (2) Reduce html complexity (3) Create translate func for code simplification (4) Remove isTranslation type guard as simple object check is sufficient * SG-668 - Refactoring collections & people comps use of dialog service openSimpleDialog to condense options per PR feedback * SG-878 - SimpleConfigDialog - (1) Footer classes were missing so btns were not spaced out properly (2) cancel btn text fixed to reference component property * SG-878 - First pass at creating a storybook example for the new openSimpleDialog method on the dialogService. * SG-878 - SimpleConfigurableDialog storybook - now displays callout with dialog results for better example * SG-878 - SimpleConfigurableDialog - use text-main tailwind class for h2s so that text is colored properly on black background * SG-878 - SimpleConfigurableDialog - Remove unstyled buttons and colored text and replace with plain secondary buttons to fix visibility issues on dark background. * Update libs/components/src/dialog/simple-configurable-dialog/models/simple-dialog-type.enum.ts SG-878 - Remove early commentary about use of simple-dialog-type enum Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.html SG-878 - SimpleConfigurableDialog html - consolidate title html to 1 line Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigurableDialog comp ts - remove unnecessary comment. Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigDialog comp - remove unnecessary comment Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * SG-668 / SG-878 - Migrate Free Org Upgrade Flows logic from deprecated collections component to vault component * SG-878 - Refactor the free org upgrade dialog to leverage separate methods to improve code and decrease cyclomatic complexity Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2023-01-24 22:38:14 +01:00
}
}
export default {
title: "Component Library/Dialogs/Service/SimpleConfigurable",
component: StoryDialogComponent,
decorators: [
moduleMetadata({
declarations: [DialogCloseDirective, DialogTitleContainerDirective, SimpleDialogComponent],
imports: [SharedModule, IconButtonModule, ButtonModule, DialogModule, CalloutModule],
providers: [
DialogService,
{
provide: I18nService,
useFactory: () => {
return new I18nMockService({
primaryTypeSimpleDialog: "Primary Type Simple Dialog",
successTypeSimpleDialog: "Success Type Simple Dialog",
infoTypeSimpleDialog: "Info Type Simple Dialog",
warningTypeSimpleDialog: "Warning Type Simple Dialog",
dangerTypeSimpleDialog: "Danger Type Simple Dialog",
dialogContent: "Dialog content goes here",
yes: "Yes",
no: "No",
ok: "Ok",
cancel: "Cancel",
accept: "Accept",
decline: "Decline",
});
},
},
],
}),
],
parameters: {
design: {
type: "figma",
url: "https://www.figma.com/file/Zt3YSeb6E6lebAffrNLa0h/Tailwind-Component-Library",
},
},
} as Meta;
type Story = StoryObj<StoryDialogComponent>;
Feature/SG-878 - Add open simple dialog method on dialog service (#4425) * SG-878 - First draft - Dialog service now has backwards compatible method for opening a configurable simple dialog. * SG-878 - People comp - test cases for simple dialog method - more testing required * SG-878 - Much more simple dialog work - investigating different approaches to see what will work best. Lots of WIP on this one. Includes first draft but working solution for solving placeholder support for non-localized strings. * SG-878 - (1) Broke out enums and types into separate files for better single responsibility (2) Allow null cancelButtonText for single accept button support * SG-878 - Configurable simple dialog - removed separate comp approach as it is a maint problem to have simple dialog implemented in two places. * SG-878 - Added js doc comments for dialog service openSimpleDialog method * SG-878 - Don't export ConfigurableSimpleDialogComp as only dialogService should use it * SG-878 - (1) Refactor configurable simple dialog to reduce icon class repetition in html (2) Update simple dialog options to use new Translation interface and update comp to properly process placeholders again * SG-878 - Reverting all simple dialog changes as, per discussion with Oscar, going to use composition and go with configurable-simple-dialog comp for use in the dialog service * SG-878 - Testing latest simple dialog changes * SG-878 - Update simple-dialog-options * SG-878 - (1) People & collections component now use dialogService.openSimpleDialog vs custom org upgrade dialog comp (2) Rename configurable-simple-dialog to simple-configurable-dialog for better folder placement * SG-878 - Update formatting of Simple dialog options js doc comments * SG-878 - Remove test code * SG-878 -Remove org upgrade dialog component as it has been replaced with dialog service openSimpleDialog method call * SG-878 - Move models to be near where they are used which is in the simple-configurable-dialog folder. * SG-878 - Refactor icon classes into simple getter per Oscar's suggestions * SG-878 - Refactor Translation placeholderValues to be just placeholders * SG-878 - Refactor Simple Dialog Options to remove isLocalized as it doesn't buy us that much to have it. We can just check if a passed in value is a string or a Translation object to determine if we need to translate it. * SG-878 - Dialog Svc - remove backdrop classes from openSimpleDialog method as standard open method applies them * SG-878 - (1) Refactor simple configurable dialog to use comp properties instead of re-using option props (2) Reduce html complexity (3) Create translate func for code simplification (4) Remove isTranslation type guard as simple object check is sufficient * SG-668 - Refactoring collections & people comps use of dialog service openSimpleDialog to condense options per PR feedback * SG-878 - SimpleConfigDialog - (1) Footer classes were missing so btns were not spaced out properly (2) cancel btn text fixed to reference component property * SG-878 - First pass at creating a storybook example for the new openSimpleDialog method on the dialogService. * SG-878 - SimpleConfigurableDialog storybook - now displays callout with dialog results for better example * SG-878 - SimpleConfigurableDialog - use text-main tailwind class for h2s so that text is colored properly on black background * SG-878 - SimpleConfigurableDialog - Remove unstyled buttons and colored text and replace with plain secondary buttons to fix visibility issues on dark background. * Update libs/components/src/dialog/simple-configurable-dialog/models/simple-dialog-type.enum.ts SG-878 - Remove early commentary about use of simple-dialog-type enum Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.html SG-878 - SimpleConfigurableDialog html - consolidate title html to 1 line Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigurableDialog comp ts - remove unnecessary comment. Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.service.stories.ts SG-878 - SimpleConfigDialog storybook fixes Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * Update libs/components/src/dialog/simple-configurable-dialog/simple-configurable-dialog.component.ts SG-878 - SimpleConfigDialog comp - remove unnecessary comment Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com> * SG-668 / SG-878 - Migrate Free Org Upgrade Flows logic from deprecated collections component to vault component * SG-878 - Refactor the free org upgrade dialog to leverage separate methods to improve code and decrease cyclomatic complexity Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>
2023-01-24 22:38:14 +01:00
export const Default: Story = {};