1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-06-21 09:45:05 +02:00

[PM-1877] Spellcheck (#5237)

* Bug fix: "vaule" -> "value"

* Bug fix: "aria-descibedby" -> "aria-describedby"

* Bug fix: "chararacter" -> "character"

* Fix typos in comments

* Fix typos in documentation

* Fix typo in test description

* Fix typos in sample data: "childen" -> "children"

* Fix typos in sample data: "pargraphs" -> "paragraphs"

* Fixes to test data: "Additinoal", "Informaion" -> "Additional", "Information"

* Fix typo in test data: "dolhpin" -> "dolphin"

* Fix typo in local variable: "attachement" -> "attachment"

* Fix typo in method name: "detachOrganizastion" -> "detachOrganization"

* Fix typo in method name: "getNewlyAddedDomians" -> "getNewlyAddedDomains"

* Fix typo: "EncyptedMessageResponse" -> "EncryptedMessageResponse"

* Fix typo: "miliseconds" -> "milliseconds"

* Fix typo: "authResponsePushNotifiction" -> "authResponsePushNotification"

* Fix typo: "getPushNotifcationObs" -> "getPushNotificationObs"

* Fix typo: "ExpriationDate" -> "ExpirationDate"

* Fix typo: "OrganizationUserResetPasswordDetailsReponse" -> "OrganizationUserResetPasswordDetailsResponse"

* Fix typo: "DISPLAY_TITLE_ATTRIBUE" -> "DISPLAY_TITLE_ATTRIBUTE"

* Fix typo: "credentialretreivalCommandHandler" -> "credentialRetrievalCommandHandler"

* Fix typo: "buildLoginCredntials" -> "buildLoginCredentials"

* Fix typo: "_mappedCredentialsColums" -> "_mappedCredentialsColumns"

* Fix typo: "_mappedPersonalInfoAsIdentiyColumns" -> "_mappedPersonalInfoAsIdentityColumns"

* Fix typo in input name: "StroageGbAdjustment" -> "StorageGbAdjustment"

* Fix typo in const: "encryptionAlogrithm" -> "encryptionAlgorithm"

---------

Co-authored-by: Daniel James Smith <djsmith@web.de>
This commit is contained in:
Jim Hays 2023-04-26 06:16:07 -04:00 committed by GitHub
parent ab25c69cdf
commit 9f7bf1132b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
50 changed files with 81 additions and 81 deletions

View File

@ -5,7 +5,7 @@ export function registerAlarms() {
}
/**
* Creates staggered alarms that periodically (1min) raise OnAlarm events. The staggering is calculated based on the numnber of alarms passed in.
* Creates staggered alarms that periodically (1min) raise OnAlarm events. The staggering is calculated based on the number of alarms passed in.
* @param numberOfAlarms Number of named alarms, that shall be registered
* @example
* // alarmsToBeCreated(2) results in 2 alarms separated by 30 seconds

View File

@ -146,7 +146,7 @@ export class CipherContextMenuHandler {
const authStatus = await this.authService.getAuthStatus();
await MainContextMenuHandler.removeAll();
if (authStatus !== AuthenticationStatus.Unlocked) {
// Should I pass in the auth status or even have two seperate methods for this
// Should I pass in the auth status or even have two separate methods for this
// on MainContextMenuHandler
await this.mainContextMenuHandler.noAccess();
return;

View File

@ -440,7 +440,7 @@
// get proper page title. maybe they are using the special meta tag?
var theTitle = document.querySelector('[data-onepassword-title]')
if (theTitle && theTitle.dataset[DISPLAY_TITLE_ATTRIBUE]) {
if (theTitle && theTitle.dataset[DISPLAY_TITLE_ATTRIBUTE]) {
pageDetails.displayTitle = theTitle.dataset.onepasswordTitle;
}

View File

@ -44,7 +44,7 @@ export default class AutofillField {
*/
"label-top": string;
/**
* The contatenated `innerText` or `textContent` of all elements that are HTML labels for the field
* The concatenated `innerText` or `textContent` of all elements that are HTML labels for the field
*/
"label-tag": string;
/**

View File

@ -80,7 +80,7 @@ export class ExcludedDomainsComponent implements OnInit, OnDestroy {
async submit() {
const savedDomains: { [name: string]: null } = {};
const newExcludedDomains = this.getNewlyAddedDomians(this.excludedDomains);
const newExcludedDomains = this.getNewlyAddedDomains(this.excludedDomains);
for (const domain of this.excludedDomains) {
const resp = newExcludedDomains.filter((e) => e.uri === domain.uri);
if (resp.length === 0) {
@ -109,7 +109,7 @@ export class ExcludedDomainsComponent implements OnInit, OnDestroy {
return index;
}
getNewlyAddedDomians(domain: ExcludedDomain[]): ExcludedDomain[] {
getNewlyAddedDomains(domain: ExcludedDomain[]): ExcludedDomain[] {
const result = this.excludedDomains.filter(
(newDomain) =>
!this.existingExcludedDomains.some((oldDomain) => newDomain.uri === oldDomain.uri)

View File

@ -420,7 +420,7 @@ export default class BrowserPlatformUtilsService implements PlatformUtilsService
autofillCommand = (await browser.commands.getAll()).find(
(c) => c.name === "autofill_login"
).shortcut;
// Firefox is returing Ctrl instead of Cmd for the modifier key on macOS if
// Firefox is returning Ctrl instead of Cmd for the modifier key on macOS if
// the command is the default one set on installation.
if (
(await browser.runtime.getPlatformInfo()).os === "mac" &&

View File

@ -12,7 +12,7 @@ export default class VaultTimeoutService extends BaseVaultTimeoutService {
}
}
// This is a work-around to safari adding an arbitary delay to setTimeout and
// This is a work-around to safari adding an arbitrary delay to setTimeout and
// setIntervals. It works by calling the native extension which sleeps for 10s,
// efficiently replicating setInterval.
async checkSafari() {

View File

@ -94,7 +94,7 @@ export class SendAddEditComponent extends BaseAddEditComponent {
}
async ngOnInit() {
// File visilibity
// File visibility
this.isFirefox = this.platformUtilsService.isFirefox();
this.inPopout = this.popupUtilsService.inPopout(window);
this.inSidebar = this.popupUtilsService.inSidebar(window);

View File

@ -47,7 +47,7 @@ const { name } = argv;
const response = await nativeMessageService.credentialCreation(handshakeResponse.sharedKey, {
name: name,
userName: "SuperAwesomeUser",
password: "dolhpin",
password: "dolphin",
uri: "google.com",
userId: activeUser.id,
} as CredentialCreatePayload);

View File

@ -128,7 +128,7 @@ export default class IPCService {
this.getSocket().emit("message", message);
try {
// Since we can not guarentee that a response message will ever be sent, we put a timeout
// Since we can not guarantee that a response message will ever be sent, we put a timeout
// on messages
return race({
promise: deferred.getPromise(),

View File

@ -1,5 +1,5 @@
export const applicationName = "Native Messaging Test Runner";
export const encryptionAlogrithm = "sha1";
export const encryptionAlgorithm = "sha1";
export const testRsaPublicKey =
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl0Vawl/toXzkEvB82FEtqHP" +
"4xlU2ab/v0crqIfXfIoWF/XXdHGIdrZeilnRXPPJT1B9dTsasttEZNnua/0Rek/cjNDHtzT52irfoZYS7X6HNIfOi54Q+egP" +

View File

@ -161,7 +161,7 @@ export class AccountSwitcherComponent implements OnInit, OnDestroy {
continue;
}
// environmentUrls are stored on disk and must be retrieved seperatly from the in memory state offered from subscribing to accounts
// environmentUrls are stored on disk and must be retrieved separately from the in memory state offered from subscribing to accounts
baseAccounts[userId].settings.environmentUrls = await this.stateService.getEnvironmentUrls({
userId: userId,
});

View File

@ -44,7 +44,7 @@ export class EncryptedMessageHandlerService {
return await this.statusCommandHandler();
}
case "bw-credential-retrieval": {
return await this.credentialretreivalCommandHandler(payload as CredentialRetrievePayload);
return await this.credentialRetrievalCommandHandler(payload as CredentialRetrievePayload);
}
case "bw-credential-create": {
return await this.credentialCreateCommandHandler(payload as CredentialCreatePayload);
@ -100,7 +100,7 @@ export class EncryptedMessageHandlerService {
);
}
private async credentialretreivalCommandHandler(
private async credentialRetrievalCommandHandler(
payload: CredentialRetrievePayload
): Promise<CipherResponse[] | UserStatusErrorResponse> {
if (payload.uri == null) {

View File

@ -181,7 +181,7 @@ export class PeopleComponent
if (response != null) {
this.organization.hasPublicAndPrivateKeys =
response.publicKey != null && response.privateKey != null;
await this.syncService.fullSync(true); // Replace oganizations with new data
await this.syncService.fullSync(true); // Replace organizations with new data
} else {
throw new Error(this.i18nService.t("resetPasswordOrgKeysError"));
}

View File

@ -70,7 +70,7 @@ import { WebPlatformUtilsService } from "./web-platform-utils.service";
{
provide: SECURE_STORAGE,
// TODO: platformUtilsService.isDev has a helper for this, but using that service here results in a circular dependency.
// We have a tech debt item in the backlog to break up platformUtilsService, but in the meantime simply checking the environement here is less cumbersome.
// We have a tech debt item in the backlog to break up platformUtilsService, but in the meantime simply checking the environment here is less cumbersome.
useClass: process.env.NODE_ENV === "development" ? HtmlStorageService : MemoryStorageService,
},
{

View File

@ -13,7 +13,7 @@
id="storageAdjustment"
class="form-control"
type="number"
name="StroageGbAdjustment"
name="StorageGbAdjustment"
[(ngModel)]="storageAdjustment"
min="0"
max="99"

View File

@ -294,7 +294,7 @@ export class ChangePasswordComponent extends BaseChangePasswordComponent {
const response = await this.organizationApiService.getKeys(org.id);
const publicKey = Utils.fromB64ToArray(response?.publicKey);
// Re-enroll - encrpyt user's encKey.key with organization public key
// Re-enroll - encrypt user's encKey.key with organization public key
const encryptedKey = await this.cryptoService.rsaEncrypt(encKey.key, publicKey.buffer);
// Create/Execute request

View File

@ -264,14 +264,14 @@ function createCipherView(i: number, deleted = false): CipherView {
if (i === 0) {
// Old attachment
const attachement = new AttachmentView();
const attachment = new AttachmentView();
view.organizationId = null;
view.collectionIds = [];
view.attachments = [attachement];
view.attachments = [attachment];
} else if (i % 5 === 0) {
const attachement = new AttachmentView();
attachement.key = new SymmetricCryptoKey(new ArrayBuffer(32));
view.attachments = [attachement];
const attachment = new AttachmentView();
attachment.key = new SymmetricCryptoKey(new ArrayBuffer(32));
view.attachments = [attachment];
}
return view;

View File

@ -26,7 +26,7 @@ export class VaultHeaderComponent {
*/
@Input() loading: boolean;
/** Current active fitler */
/** Current active filter */
@Input() filter: RoutedVaultFilterModel;
/**

View File

@ -46,7 +46,7 @@
</div>
<div class="btn-col">
<button
[attr.aria-descibedby]="'recoveryCodeTitle' | i18n"
[attr.aria-describedby]="'recoveryCodeTitle' | i18n"
type="button"
class="btn btn-outline-secondary btn-sm"
(click)="recover()"

View File

@ -165,7 +165,7 @@ export class ClientsComponent implements OnInit {
return false;
}
this.actionPromise = this.webProviderService.detachOrganizastion(
this.actionPromise = this.webProviderService.detachOrganization(
this.providerId,
organization.id
);

View File

@ -28,7 +28,7 @@ export class WebProviderService {
return response;
}
async detachOrganizastion(providerId: string, organizationId: string): Promise<any> {
async detachOrganization(providerId: string, organizationId: string): Promise<any> {
await this.apiService.deleteProviderOrganization(providerId, organizationId);
await this.syncService.fullSync(true);
}

View File

@ -43,7 +43,7 @@ export class AccessSelectorComponent implements OnInit {
static readonly projectIcon = "bwi-collection";
/**
* Emits the selected itemss on submit.
* Emits the selected items on submit.
*/
@Output() onCreateAccessPolicies = new EventEmitter<SelectItemView[]>();
@Output() onDeleteAccessPolicy = new EventEmitter<AccessSelectorRowView>();

View File

@ -74,7 +74,7 @@ export class LoginWithDeviceComponent
//gets signalR push notification
this.authService
.getPushNotifcationObs$()
.getPushNotificationObs$()
.pipe(takeUntil(this.destroy$))
.subscribe((id) => {
this.confirmResponse(id);
@ -126,7 +126,7 @@ export class LoginWithDeviceComponent
return;
}
const credentials = await this.buildLoginCredntials(requestId, response);
const credentials = await this.buildLoginCredentials(requestId, response);
const loginResponse = await this.authService.logIn(credentials);
if (loginResponse.requiresTwoFactor) {
@ -189,7 +189,7 @@ export class LoginWithDeviceComponent
);
}
private async buildLoginCredntials(
private async buildLoginCredentials(
requestId: string,
response: AuthRequestResponse
): Promise<PasswordlessLogInCredentials> {

View File

@ -17,7 +17,7 @@ export class ColorPasswordPipe implements PipeTransform {
protected generateTemplate(
password: string,
templateGenerator: (chararacter: string, type: string, index?: number) => string
templateGenerator: (character: string, type: string, index?: number) => string
) {
// Convert to an array to handle cases that stings have special characters, ie: emoji.
const passwordArray = Array.from(password);

View File

@ -24,7 +24,7 @@ $card-icons-dark: (
);
.credit-card-icon {
display: block; // Resolves the parent container being slighly to big
display: block; // Resolves the parent container being slightly to big
height: 19px;
width: 24px;
background-size: contain;

View File

@ -211,7 +211,7 @@ export class GeneratorComponent implements OnInit {
}
private normalizePasswordOptions() {
// Application level normalize options depedent on class variables
// Application level normalize options dependent on class variables
this.passwordOptions.ambiguous = !this.avoidAmbiguous;
if (

View File

@ -22,7 +22,7 @@ enum BrowserPath {
enum DateField {
DeletionDate = "deletion",
ExpriationDate = "expiration",
ExpirationDate = "expiration",
}
// Value = hours
@ -135,10 +135,10 @@ export class EffluxDatesComponent implements OnInit {
}
default: {
const now = new Date();
const miliseconds = now.setTime(
const milliseconds = now.setTime(
now.getTime() + (this.selectedDeletionDatePreset.value as number) * 60 * 60 * 1000
);
return new Date(miliseconds).toString();
return new Date(milliseconds).toString();
}
}
}
@ -166,10 +166,10 @@ export class EffluxDatesComponent implements OnInit {
}
default: {
const now = new Date();
const miliseconds = now.setTime(
const milliseconds = now.setTime(
now.getTime() + (this.selectedExpirationDatePreset.value as number) * 60 * 60 * 1000
);
return new Date(miliseconds).toString();
return new Date(milliseconds).toString();
}
}
}
@ -180,7 +180,7 @@ export class EffluxDatesComponent implements OnInit {
}
get safariExpirationTimePresetOptions() {
return this.safariTimePresetOptions(DateField.ExpriationDate);
return this.safariTimePresetOptions(DateField.ExpirationDate);
}
private get nextWeek(): Date {
@ -285,7 +285,7 @@ export class EffluxDatesComponent implements OnInit {
// loop through each hour on a 12 hour system
for (let h = 1; h <= 12; h++) {
// loop through each minute in the hour using the skip to incriment
// loop through each minute in the hour using the skip to increment
for (let m = 0; m < 60; m += minuteIncrementer) {
// init the final strings that will be added to the lists
let hour = h.toString();
@ -333,7 +333,7 @@ export class EffluxDatesComponent implements OnInit {
// determine if an unsupported value already exists on the send & add that to the top of the option list
// example: if the Send was created with a different client
if (field === DateField.ExpriationDate && this.initialExpirationDate != null && this.editMode) {
if (field === DateField.ExpirationDate && this.initialExpirationDate != null && this.editMode) {
const previousValue: TimeOption = {
twelveHour: this.datePipe.transform(this.initialExpirationDate, "hh:mm a"),
twentyFourHour: this.datePipe.transform(this.initialExpirationDate, "HH:mm"),

View File

@ -1,7 +1,7 @@
/**
* The inbuilt toEqual() matcher will always return TRUE when provided with 2 ArrayBuffers.
* This is because an ArrayBuffer must be wrapped in a new Uint8Array to be accessible.
* This custom matcher will automatically instantiate a new Uint8Array on the recieved value
* This custom matcher will automatically instantiate a new Uint8Array on the received value
* (and optionally, the expected value) and then call toEqual() on the resulting Uint8Arrays.
*/
export const toEqualBuffer: jest.CustomMatcher = function (

View File

@ -15,7 +15,7 @@ import {
OrganizationUserBulkPublicKeyResponse,
OrganizationUserBulkResponse,
OrganizationUserDetailsResponse,
OrganizationUserResetPasswordDetailsReponse,
OrganizationUserResetPasswordDetailsResponse,
OrganizationUserUserDetailsResponse,
} from "./responses";
@ -65,7 +65,7 @@ export abstract class OrganizationUserService {
abstract getOrganizationUserResetPasswordDetails(
organizationId: string,
id: string
): Promise<OrganizationUserResetPasswordDetailsReponse>;
): Promise<OrganizationUserResetPasswordDetailsResponse>;
/**
* Create new organization user invite(s) for the specified organization

View File

@ -63,7 +63,7 @@ export class OrganizationUserDetailsResponse extends OrganizationUserResponse {
}
}
export class OrganizationUserResetPasswordDetailsReponse extends BaseResponse {
export class OrganizationUserResetPasswordDetailsResponse extends BaseResponse {
kdf: KdfType;
kdfIterations: number;
kdfMemory?: number;

View File

@ -347,7 +347,7 @@ export abstract class StateService<T extends Account = Account> {
setTwoFactorToken: (value: string, options?: StorageOptions) => Promise<void>;
getUserId: (options?: StorageOptions) => Promise<string>;
getUsesKeyConnector: (options?: StorageOptions) => Promise<boolean>;
setUsesKeyConnector: (vaule: boolean, options?: StorageOptions) => Promise<void>;
setUsesKeyConnector: (value: boolean, options?: StorageOptions) => Promise<void>;
getVaultTimeout: (options?: StorageOptions) => Promise<number>;
setVaultTimeout: (value: number, options?: StorageOptions) => Promise<void>;
getVaultTimeoutAction: (options?: StorageOptions) => Promise<string>;

View File

@ -37,11 +37,11 @@ export abstract class AuthService {
authingWithPassword: () => boolean;
authingWithPasswordless: () => boolean;
getAuthStatus: (userId?: string) => Promise<AuthenticationStatus>;
authResponsePushNotifiction: (notification: AuthRequestPushNotification) => Promise<any>;
authResponsePushNotification: (notification: AuthRequestPushNotification) => Promise<any>;
passwordlessLogin: (
id: string,
key: string,
requestApproved: boolean
) => Promise<AuthRequestResponse>;
getPushNotifcationObs$: () => Observable<any>;
getPushNotificationObs$: () => Observable<any>;
}

View File

@ -277,11 +277,11 @@ export class AuthService implements AuthServiceAbstraction {
return this.cryptoService.makeKey(masterPassword, email, kdf, kdfConfig);
}
async authResponsePushNotifiction(notification: AuthRequestPushNotification): Promise<any> {
async authResponsePushNotification(notification: AuthRequestPushNotification): Promise<any> {
this.pushNotificationSubject.next(notification.id);
}
getPushNotifcationObs$(): Observable<any> {
getPushNotificationObs$(): Observable<any> {
return this.pushNotificationSubject.asObservable();
}

View File

@ -3,7 +3,7 @@ export class WindowState {
height?: number;
isMaximized?: boolean;
// TODO: displayBounds is an Electron.Rectangle.
// We need to establish some kind of client-specific global state, similiar to the way we already extend a base Account.
// We need to establish some kind of client-specific global state, similar to the way we already extend a base Account.
displayBounds: any;
x?: number;
y?: number;

View File

@ -53,7 +53,7 @@ export class AnonymousHubService implements AnonymousHubServiceAbstraction {
}
private async ProcessNotification(notification: NotificationResponse) {
await this.authService.authResponsePushNotifiction(
await this.authService.authResponsePushNotification(
notification.payload as AuthRequestPushNotification
);
}

View File

@ -15,7 +15,7 @@ import {
OrganizationUserBulkPublicKeyResponse,
OrganizationUserBulkResponse,
OrganizationUserDetailsResponse,
OrganizationUserResetPasswordDetailsReponse,
OrganizationUserResetPasswordDetailsResponse,
OrganizationUserUserDetailsResponse,
} from "../../abstractions/organization-user/responses";
import { ListResponse } from "../../models/response/list.response";
@ -88,7 +88,7 @@ export class OrganizationUserServiceImplementation implements OrganizationUserSe
async getOrganizationUserResetPasswordDetails(
organizationId: string,
id: string
): Promise<OrganizationUserResetPasswordDetailsReponse> {
): Promise<OrganizationUserResetPasswordDetailsResponse> {
const r = await this.apiService.send(
"GET",
"/organizations/" + organizationId + "/users/" + id + "/reset-password-details",
@ -96,7 +96,7 @@ export class OrganizationUserServiceImplementation implements OrganizationUserSe
true,
true
);
return new OrganizationUserResetPasswordDetailsReponse(r);
return new OrganizationUserResetPasswordDetailsResponse(r);
}
postOrganizationUserInvite(

View File

@ -105,7 +105,7 @@ export class StateService<
}
// FIXME: This should be refactored into AuthService or a similar service,
// as checking for the existance of the crypto key is a low level
// as checking for the existence of the crypto key is a low level
// implementation detail.
this.activeAccountUnlockedSubject.next((await this.getCryptoMasterKey()) != null);
})
@ -1555,7 +1555,7 @@ export class StateService<
async setEnvironmentUrls(value: EnvironmentUrls, options?: StorageOptions): Promise<void> {
// Global values are set on each change and the current global settings are passed to any newly authed accounts.
// This is to allow setting environement values before an account is active, while still allowing individual accounts to have their own environments.
// This is to allow setting environment values before an account is active, while still allowing individual accounts to have their own environments.
const globals = await this.getGlobals(
this.reconcileOptions(options, await this.defaultOnDiskOptions())
);

View File

@ -153,7 +153,7 @@ export class SendApiService implements SendApiServiceAbstraction {
await this.sendService.upsert(data);
}
// Send File Upload methoids
// Send File Upload methods
private async upload(sendData: [Send, EncArrayBuffer]): Promise<SendResponse> {
const request = new SendRequest(sendData[0], sendData[1]?.buffer.byteLength);

View File

@ -34,7 +34,7 @@ export class BitSubmitDirective implements OnInit, OnDestroy {
.pipe(
filter(() => !this.disabled),
switchMap(() => {
// Calling functionToObservable exectues the sync part of the handler
// Calling functionToObservable executes the sync part of the handler
// allowing the function to check form validity before it gets disabled.
const awaitable = functionToObservable(this.handler);

View File

@ -90,7 +90,7 @@ const InlineTemplate: Story = (args) => ({
props: args,
template: `
<span class="tw-text-main">
On the internet pargraphs often contain <a bitLink href="#">inline links</a>, but few know that <button bitLink>buttons</button> can be used for similar purposes.
On the internet paragraphs often contain <a bitLink href="#">inline links</a>, but few know that <button bitLink>buttons</button> can be used for similar purposes.
</span>
`,
});

View File

@ -145,7 +145,7 @@ $ng-dropdown-shadow: rgb(var(--color-secondary-100)) !default;
&.ng-select-disabled {
> .ng-select-container .ng-value-container .ng-value {
background-color: $ng-select-disabled-text;
border: 0px solid $ng-select-border; // Removing border on slected value when disabled
border: 0px solid $ng-select-border; // Removing border on selected value when disabled
.ng-value-label {
padding: 0 5px;
}

View File

@ -57,18 +57,18 @@ export const Tree: Story<NavGroupComponent> = (args) => ({
template: `
<bit-nav-group text="Tree example" icon="bwi-collection" [open]="true">
<bit-nav-group text="Level 1 - with children (empty)" route="#" icon="bwi-collection" variant="tree"></bit-nav-group>
<bit-nav-item text="Level 1 - no childen" route="#" icon="bwi-collection" variant="tree"></bit-nav-item>
<bit-nav-item text="Level 1 - no children" route="#" icon="bwi-collection" variant="tree"></bit-nav-item>
<bit-nav-group text="Level 1 - with children" route="#" icon="bwi-collection" variant="tree" [open]="true">
<bit-nav-group text="Level 2 - with children" route="#" icon="bwi-collection" variant="tree" [open]="true">
<bit-nav-item text="Level 3 - no childen, no icon" route="#" variant="tree"></bit-nav-item>
<bit-nav-item text="Level 3 - no children, no icon" route="#" variant="tree"></bit-nav-item>
<bit-nav-group text="Level 3 - with children" route="#" icon="bwi-collection" variant="tree" [open]="true">
<bit-nav-item text="Level 4 - no childen, no icon" route="#" variant="tree"></bit-nav-item>
<bit-nav-item text="Level 4 - no children, no icon" route="#" variant="tree"></bit-nav-item>
</bit-nav-group>
</bit-nav-group>
<bit-nav-group text="Level 2 - with children (empty)" route="#" icon="bwi-collection" variant="tree" [open]="true"></bit-nav-group>
<bit-nav-item text="Level 2 - no childen" route="#" icon="bwi-collection" variant="tree"></bit-nav-item>
<bit-nav-item text="Level 2 - no children" route="#" icon="bwi-collection" variant="tree"></bit-nav-item>
</bit-nav-group>
<bit-nav-item text="Level 1 - no childen" route="#" icon="bwi-collection" variant="tree"></bit-nav-item>
<bit-nav-item text="Level 1 - no children" route="#" icon="bwi-collection" variant="tree"></bit-nav-item>
</bit-nav-group>
`,
});

View File

@ -58,7 +58,7 @@ Both the disabled and loading states use the default states color with a 60%
## Block
Typically button widths expand with thier text. In some causes though buttons may need to be block where the width is fixed and the text wraps to 2 lines if exceeding the buttons width.
Typically button widths expand with their text. In some causes though buttons may need to be block where the width is fixed and the text wraps to 2 lines if exceeding the buttons width.
<Story id="component-library-button--block" />

View File

@ -10,7 +10,7 @@ All tables should have a visible horizontal header and label for each column.
<Story id="component-library-table--default" />
The below code is the absolute minimum required to create a table. However we stronly advice you to
The below code is the absolute minimum required to create a table. However we strongly advise you to
use the `dataSource` input to provide a data source for your table. This allows you to easily sort
data.

View File

@ -71,7 +71,7 @@ export class ToggleComponent<TValue> {
"!tw-mb-0",
// Fix for badge being pushed slightly lower when inside a button.
// Insipired by bootstrap, which does the same.
// Inspired by bootstrap, which does the same.
"[&>[bitBadge]]:tw-relative",
"[&>[bitBadge]]:tw--top-px",
];

View File

@ -172,7 +172,7 @@ describe("VaultExportService", () => {
);
});
it("exports unecrypted user ciphers", async () => {
it("exports unencrypted user ciphers", async () => {
cipherService.getAllDecrypted().resolves(UserCipherViews.slice(0, 1));
const actual = await exportService.getExport("json");
@ -188,7 +188,7 @@ describe("VaultExportService", () => {
expectEqualCiphers(UserCipherDomains.slice(0, 1), actual);
});
it("does not unecrypted export trashed user items", async () => {
it("does not unencrypted export trashed user items", async () => {
cipherService.getAllDecrypted().resolves(UserCipherViews);
const actual = await exportService.getExport("json");

View File

@ -133,7 +133,7 @@ function expectIdCard(cipher: CipherView) {
function expectTaxNumber(cipher: CipherView) {
expect(cipher.type).toBe(CipherType.Identity);
expect(cipher.name).toBe("Tax number ID card");
expect(cipher.notes).toBe("Additinoal information text field");
expect(cipher.notes).toBe("Additional information text field");
expect(cipher.identity.fullName).toBe("Joe M User");
expect(cipher.identity.firstName).toBe("Joe");
@ -405,7 +405,7 @@ function expectSoftwareLicense(cipher: CipherView) {
function expectTourVisa(cipher: CipherView) {
expect(cipher.type).toBe(CipherType.Identity);
expect(cipher.name).toBe("Tour visa ID card");
expect(cipher.notes).toBe("Additional Informaion text");
expect(cipher.notes).toBe("Additional Information text");
expect(cipher.identity.fullName).toBe("Joe M User");
expect(cipher.identity.firstName).toBe("Joe");

View File

@ -4,7 +4,7 @@ Joe User's nickname,active,someTag,Driver's License,123456,Joe M User,02/02/2022
Passport ID card,active,someTag,Passport,1234567,Joe M User,03/07/2022,03/07/2028,United States,Additional information field
Social Security ID card,active,someTag,Social Security,123455678,Joe M User,03/07/2022,03/07/2028,United States,Additional information field text
ID card type ID card,active,someTag,ID Card,1234566,Joe M User,03/07/2022,03/07/2028,United States,Additional Information field text
Tax number ID card,active,someTag,Tax Number,12345678,Joe M User,03/07/2022,03/07/2028,United States,Additinoal information text field
Tax number ID card,active,someTag,Tax Number,12345678,Joe M User,03/07/2022,03/07/2028,United States,Additional information text field
Bank account ID card,active,someTag,Bank Account,12344556677,Joe M User,03/07/2022,03/07/2028,United States,Additional text information here
Insurance card ID card,active,someTag,Insurance Card,123456677,Joe M User,03/07/2022,03/07/2022,United States,Additional information text goes here
Health card Id card,active,someTag,Health Card,1234670,Joe M User,03/07/2022,03/07/2028,United States,More info
@ -13,4 +13,4 @@ Database ID card,active,someTag,Database,12345089u,Joe M User,03/07/2022,03/07/2
Outdoor license ID card,active,someTag,Outdoor License,123890090,Joe M User,03/07/2022,03/07/2028,United States,Additional info
Reward program Id card,active,someTag,Reward Program,12345890b,Joe M User,03/07/2022,03/07/2028,United States,1234890
Software license ID card,active,someTag,Software License,1234567c,Joe M User,03/07/2022,03/07/2028,United States,"It seems like the fields don't change, which makes it pretty useless that they have so many ID card types."
Tour visa ID card,active,someTag,Tour Visa,123456lkhj,Joe M User,03/07/2022,03/07/2028,United States,Additional Informaion text`;
Tour visa ID card,active,someTag,Tour Visa,123456lkhj,Joe M User,03/07/2022,03/07/2028,United States,Additional Information text`;

View File

@ -17,7 +17,7 @@ import {
SecureNoteRecord,
} from "./types/dashlane-csv-types";
const _mappedCredentialsColums = new Set([
const _mappedCredentialsColumns = new Set([
"title",
"note",
"username",
@ -27,7 +27,7 @@ const _mappedCredentialsColums = new Set([
"category",
]);
const _mappedPersonalInfoAsIdentiyColumns = new Set([
const _mappedPersonalInfoAsIdentityColumns = new Set([
"type",
"title",
"first_name",
@ -123,7 +123,7 @@ export class DashlaneCsvImporter extends BaseImporter implements Importer {
cipher.login.totp = row.otpSecret;
cipher.login.uris = this.makeUriArray(row.url);
this.importUnmappedFields(cipher, row, _mappedCredentialsColums);
this.importUnmappedFields(cipher, row, _mappedCredentialsColumns);
}
parsePaymentRecord(cipher: CipherView, row: PaymentsRecord) {
@ -249,7 +249,7 @@ export class DashlaneCsvImporter extends BaseImporter implements Importer {
break;
}
this.importUnmappedFields(cipher, row, _mappedPersonalInfoAsIdentiyColumns);
this.importUnmappedFields(cipher, row, _mappedPersonalInfoAsIdentityColumns);
}
parseSecureNoteRecords(cipher: CipherView, row: SecureNoteRecord) {