1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-22 19:23:52 +00:00

[SG-998] Move vault folder into app folder for web (#4824)

* Move vault folder into app folder for web

* Remove extra line is oss module
This commit is contained in:
Robyn MacCallum
2023-02-22 11:21:32 -05:00
committed by GitHub
parent 6f58d44833
commit c594f23121
88 changed files with 49 additions and 52 deletions

View File

@@ -0,0 +1,53 @@
<div class="modal fade" role="dialog" aria-modal="true" aria-labelledby="confirmUserTitle">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<form class="modal-content" #form (ngSubmit)="submit()">
<div class="modal-header">
<h1 class="modal-title" id="confirmUserTitle">
{{ "passwordConfirmation" | i18n }}
</h1>
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
{{ "passwordConfirmationDesc" | i18n }}
<div class="form-group">
<label for="masterPassword">{{ "masterPass" | i18n }}</label>
<div class="d-flex">
<input
id="masterPassword"
type="{{ showPassword ? 'text' : 'password' }}"
name="MasterPassword"
class="text-monospace form-control"
[(ngModel)]="masterPassword"
required
appAutofocus
appInputVerbatim
/>
<button
type="button"
class="ml-1 btn btn-link"
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword()"
>
<i
class="bwi bwi-lg"
aria-hidden="true"
[ngClass]="{ 'bwi-eye': !showPassword, 'bwi-eye-slash': showPassword }"
></i>
</button>
</div>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit">
<span>{{ "ok" | i18n }}</span>
</button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">
{{ "cancel" | i18n }}
</button>
</div>
</form>
</div>
</div>

View File

@@ -0,0 +1,8 @@
import { Component } from "@angular/core";
import { PasswordRepromptComponent as BasePasswordRepromptComponent } from "@bitwarden/angular/vault/components/password-reprompt.component";
@Component({
templateUrl: "password-reprompt.component.html",
})
export class PasswordRepromptComponent extends BasePasswordRepromptComponent {}

View File

@@ -0,0 +1,19 @@
import { Component } from "@angular/core";
import { MessagingService } from "@bitwarden/common/abstractions/messaging.service";
@Component({
selector: "app-premium-badge",
template: `
<button type="button" *appNotPremium bitBadge badgeType="success" (click)="premiumRequired()">
{{ "premium" | i18n }}
</button>
`,
})
export class PremiumBadgeComponent {
constructor(private messagingService: MessagingService) {}
premiumRequired() {
this.messagingService.send("premiumRequired");
}
}

View File

@@ -0,0 +1,61 @@
import { Meta, moduleMetadata, Story } from "@storybook/angular";
import { JslibModule } from "@bitwarden/angular/jslib.module";
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
import { MessagingService } from "@bitwarden/common/abstractions/messaging.service";
import { StateService } from "@bitwarden/common/abstractions/state.service";
import { StorageOptions } from "@bitwarden/common/models/domain/storage-options";
import { BadgeModule, I18nMockService } from "@bitwarden/components";
import { PremiumBadgeComponent } from "./premium-badge.component";
class MockMessagingService implements MessagingService {
send(subscriber: string, arg?: any) {
alert("Clicked on badge");
}
}
class MockedStateService implements Partial<StateService> {
async getCanAccessPremium(options?: StorageOptions) {
return false;
}
}
export default {
title: "Web/Premium Badge",
component: PremiumBadgeComponent,
decorators: [
moduleMetadata({
imports: [JslibModule, BadgeModule],
providers: [
{
provide: I18nService,
useFactory: () => {
return new I18nMockService({
premium: "Premium",
});
},
},
{
provide: MessagingService,
useFactory: () => {
return new MockMessagingService();
},
},
{
provide: StateService,
useFactory: () => {
return new MockedStateService();
},
},
],
}),
],
} as Meta;
const Template: Story<PremiumBadgeComponent> = (args: PremiumBadgeComponent) => ({
props: args,
});
export const Primary = Template.bind({});
Primary.args = {};