mirror of
https://github.com/bitwarden/clients.git
synced 2026-07-07 21:10:55 +08:00
* Rename service-factory folder
* Move cryptographic service factories
* Move crypto models
* Move crypto services
* Move domain base class
* Platform code owners
* Move desktop log services
* Move log files
* Establish component library ownership
* Move background listeners
* Move background background
* Move localization to Platform
* Move browser alarms to Platform
* Move browser state to Platform
* Move CLI state to Platform
* Move Desktop native concerns to Platform
* Move flag and misc to Platform
* Lint fixes
* Move electron state to platform
* Move web state to Platform
* Move lib state to Platform
* Fix broken tests
* Rename interface to idiomatic TS
* `npm run prettier` 🤖
* Resolve review feedback
* Set platform as owners of web core and shared
* Expand moved services
* Fix test types
---------
Co-authored-by: Hinton <hinton@users.noreply.github.com>
79 lines
2.2 KiB
TypeScript
79 lines
2.2 KiB
TypeScript
import { Component, Input, OnInit } from "@angular/core";
|
|
|
|
import { MasterPasswordPolicyOptions } from "@bitwarden/common/admin-console/models/domain/master-password-policy-options";
|
|
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
|
|
|
|
@Component({
|
|
selector: "app-callout",
|
|
templateUrl: "callout.component.html",
|
|
})
|
|
export class CalloutComponent implements OnInit {
|
|
@Input() type = "info";
|
|
@Input() icon: string;
|
|
@Input() title: string;
|
|
@Input() clickable: boolean;
|
|
@Input() enforcedPolicyOptions: MasterPasswordPolicyOptions;
|
|
@Input() enforcedPolicyMessage: string;
|
|
@Input() useAlertRole = false;
|
|
|
|
calloutStyle: string;
|
|
|
|
constructor(private i18nService: I18nService) {}
|
|
|
|
ngOnInit() {
|
|
this.calloutStyle = this.type;
|
|
|
|
if (this.enforcedPolicyMessage === undefined) {
|
|
this.enforcedPolicyMessage = this.i18nService.t("masterPasswordPolicyInEffect");
|
|
}
|
|
|
|
if (this.type === "warning" || this.type === "danger") {
|
|
if (this.type === "danger") {
|
|
this.calloutStyle = "danger";
|
|
}
|
|
if (this.title === undefined) {
|
|
this.title = this.i18nService.t("warning");
|
|
}
|
|
if (this.icon === undefined) {
|
|
this.icon = "bwi-exclamation-triangle";
|
|
}
|
|
} else if (this.type === "error") {
|
|
this.calloutStyle = "danger";
|
|
if (this.title === undefined) {
|
|
this.title = this.i18nService.t("error");
|
|
}
|
|
if (this.icon === undefined) {
|
|
this.icon = "bwi-error";
|
|
}
|
|
} else if (this.type === "tip") {
|
|
this.calloutStyle = "success";
|
|
if (this.title === undefined) {
|
|
this.title = this.i18nService.t("tip");
|
|
}
|
|
if (this.icon === undefined) {
|
|
this.icon = "bwi-lightbulb";
|
|
}
|
|
}
|
|
}
|
|
|
|
getPasswordScoreAlertDisplay() {
|
|
if (this.enforcedPolicyOptions == null) {
|
|
return "";
|
|
}
|
|
|
|
let str: string;
|
|
switch (this.enforcedPolicyOptions.minComplexity) {
|
|
case 4:
|
|
str = this.i18nService.t("strong");
|
|
break;
|
|
case 3:
|
|
str = this.i18nService.t("good");
|
|
break;
|
|
default:
|
|
str = this.i18nService.t("weak");
|
|
break;
|
|
}
|
|
return str + " (" + this.enforcedPolicyOptions.minComplexity + ")";
|
|
}
|
|
}
|