1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-17 16:53:34 +00:00

Merge branch 'feature/org-admin-refresh' into EC-8-restructure-tabs

This commit is contained in:
Shane Melton
2022-07-26 15:27:33 -07:00
422 changed files with 22952 additions and 23987 deletions

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Sıradan çıxarılmış Təşkilatlardakı elementlərə müraciət edilə bilmir. Kömək üçün Təşkilatınızın sahibi ilə əlaqə saxlayın."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -430,7 +430,7 @@
"message": "Повторното въвеждане на главната парола е задължително."
},
"masterPasswordMinlength": {
"message": "Master password must be at least 8 characters long."
"message": "Главната парола трябва да е дълга поне 8 знака."
},
"masterPassDoesntMatch": {
"message": "Главната парола и потвърждението ѝ не съвпадат."
@@ -1969,9 +1969,12 @@
"message": "Грешка с конектора за ключове: уверете се, че конекторът за ключове е наличен и работи правилно."
},
"organizationIsDisabled": {
"message": "Organization is disabled."
"message": "Организацията е изключена."
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
"message": "Записите в изключени организации не са достъпни. Свържете се със собственика на организацията си за помощ."
},
"cardBrandMir": {
"message": "Мир"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -11,28 +11,28 @@
"description": "Extension description"
},
"loginOrCreateNewAccount": {
"message": "Log in or create a new account to access your secure vault."
"message": "Prijavite se ili napravite novi račun da biste pristupili svom sigurnom trezoru."
},
"createAccount": {
"message": "Create Account"
"message": "Napravi račun"
},
"login": {
"message": "Log In"
"message": "Prijavite se"
},
"enterpriseSingleSignOn": {
"message": "Enterprise Single Sign-On"
},
"cancel": {
"message": "Cancel"
"message": "Otkaži"
},
"close": {
"message": "Close"
"message": "Zatvori"
},
"submit": {
"message": "Submit"
"message": "Potvrdi"
},
"emailAddress": {
"message": "Email Address"
"message": "E-Mail adresa"
},
"masterPass": {
"message": "Master Password"
@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1969,9 +1969,12 @@
"message": "Error del connector de claus: assegureu-vos que el connector de claus està disponible i funcionant correctament."
},
"organizationIsDisabled": {
"message": "Organization is disabled."
"message": "L'organització està inhabilitada."
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
"message": "No es pot accedir als elements de les organitzacions inhabilitades. Poseu-vos en contacte amb el propietari de la vostra organització per obtenir ajuda."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -424,13 +424,13 @@
"message": "Ugyldig e-mailadresse."
},
"masterPasswordRequired": {
"message": "Master password is required."
"message": "Hovedadgangskode er påkrævet."
},
"confirmMasterPasswordRequired": {
"message": "Master password retype is required."
"message": "Hovedadgangskode kræves angivet igen."
},
"masterPasswordMinlength": {
"message": "Master password must be at least 8 characters long."
"message": "Hovedadgangskode skal være mindst 8 tegn."
},
"masterPassDoesntMatch": {
"message": "De to adgangskoder matcher ikke."
@@ -571,10 +571,10 @@
"description": "This is the folder for uncategorized items"
},
"enableAddLoginNotification": {
"message": "Bed om at tilføje login"
"message": "Spørg om at tilføje login"
},
"addLoginNotificationDesc": {
"message": "Bed om at tilføje et element, hvis et ikke findes i din boks."
"message": "Spørg om at tilføje et element, hvis et ikke findes i din boks."
},
"showCardsCurrentTab": {
"message": "Vis kort på fanebladet"
@@ -1484,7 +1484,7 @@
"message": "Ved at markere dette felt accepterer du følgende:"
},
"acceptPoliciesRequired": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
"message": "Tjenestevilkår og fortrolighedspolitik er ikke blevet accepteret."
},
"termsOfService": {
"message": "Servicevilkår"
@@ -1969,9 +1969,12 @@
"message": "Key Connector-fejl: Sørg for, at Key Connector er tilgængelig og fungerer korrekt."
},
"organizationIsDisabled": {
"message": "Organization is disabled."
"message": "Organisationen er deaktiveret."
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
"message": "Elementer i deaktiverede organisationer kan ikke tilgås. Kontakt din organisationsejer for at få hjælp."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Auf Einträge in deaktivierten Organisationen kann nicht zugegriffen werden. Kontaktiere deinen Organisationseigentümer für Unterstützung."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organisations cannot be accessed. Contact your Organisation owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1969,9 +1969,12 @@
"message": "Error en el conector de claves: asegúrate de que el conector de claves está disponible y que funciona correctamente."
},
"organizationIsDisabled": {
"message": "Organization is disabled."
"message": "La organización está desactivada."
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
"message": "No se puede acceder a los elementos de las organizaciones desactivadas. Póngase en contacto con el personal propietario de la organización para obtener ayuda."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Organisatsiooni alla kuuluvatele kirjetele ei ole ligipääsu. Kontakteeru oma organisatsiooni omanikuga."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -157,7 +157,7 @@
"description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing."
},
"twoStepLogin": {
"message": "Bi urratseko egiaztatzea"
"message": "Bi urratseko saio hasiera"
},
"logOut": {
"message": "Itxi saioa"
@@ -491,7 +491,7 @@
"message": "Zure pasahitz nagusia alda dezakezu bitwarden.com webgunean. Orain joan nahi duzu webgunera?"
},
"twoStepLoginConfirmation": {
"message": "Bi urratseko egiaztatzea dela eta, zure kontua seguruagoa da, beste aplikazio/gailu batekin saioa hastea eskatzen baitizu; adibidez, segurtasun kode, baimentze aplikazio, SMS, telefono dei edo posta elektroniko bidez. Bi urratseko egiaztatzea bitwarden.com webgunean aktibatu daiteke. Orain joan nahi duzu webgunera?"
"message": "Bi urratseko saio hasiera dela eta, zure kontua seguruagoa da, beste aplikazio/gailu batekin saioa hastea eskatzen baitizu; adibidez, segurtasun kode, autentifikazio aplikazio, SMS, telefono dei edo email bidez. Bi urratseko saio hasiera bitwarden.com webgunean aktibatu daiteke. Orain joan nahi duzu webgunera?"
},
"editedFolder": {
"message": "Karpeta editatuta"
@@ -705,7 +705,7 @@
"message": "Gehiago ikasi"
},
"authenticatorKeyTotp": {
"message": "Baimentze kodea (TOTP)"
"message": "Autentifikazio giltza (TOTP)"
},
"verificationCodeTotp": {
"message": "Egiaztatze kodea"
@@ -771,7 +771,7 @@
"message": "Eranskinentzako 1GB-eko enkriptatutako biltegia."
},
"ppremiumSignUpTwoStep": {
"message": "YubiKey, FIDO U2F eta Duo bezalako saio-hasieratarako bi urratseko egiaztatze aukerak."
"message": "YubiKey, FIDO U2F eta Duo bezalako bi urratseko saio hasierarako aukera gehigarriak."
},
"ppremiumSignUpReports": {
"message": "Pasahitzaren higienea, kontuaren egoera eta datu-bortxaketen txostenak, kutxa gotorra seguru mantentzeko."
@@ -813,7 +813,7 @@
"message": "Kopiatu TOTO automatikoki"
},
"disableAutoTotpCopyDesc": {
"message": "Saio-hasiera batek baimentze-kodea badu, TOTP egiaztatze-kodea arbelean automatikoki kopiatuko da saio-hasiera bat auto-betetzean."
"message": "Saio hasiera batek autentifikazio giltza badu, TOTP egiaztatze kodea arbelean automatikoki kopiatuko da saio hasiera bat auto-betetzean."
},
"enableAutoBiometricsPrompt": {
"message": "Biometria eskatu saioa hastean"
@@ -825,7 +825,7 @@
"message": "Premium bazkidetza beharrezkoa da ezaugarri hau erabiltzeko."
},
"enterVerificationCodeApp": {
"message": "Sartu zure baimentze-aplikazioaren 6 digituko egiaztatze-kodea."
"message": "Sartu zure autentifikazio aplikazioaren 6 digituko egiaztatze kodea."
},
"enterVerificationCodeEmail": {
"message": "Sartu $EMAIL$-era bidalitako 6 digituko egiaztatze-kodea.",
@@ -852,13 +852,13 @@
"message": "Berbidali email bidezko egiaztatze-kodea."
},
"useAnotherTwoStepMethod": {
"message": "Erabili bi urratseko egiaztatzeko beste modu bat."
"message": "Erabili bi urratseko saio hasierarako beste modu bat"
},
"insertYubiKey": {
"message": "Sartu zure YubiKey-a ordenagailuko USB portuan, ondoren, sakatu bere botoia."
"message": "Sartu zure YubiKey-a ordenagailuko USB atakan, ondoren, sakatu bere botoia."
},
"insertU2f": {
"message": "Sartu zure segurtasun giltza ordenagailuaren USB portuan. Botoia badu, sakatu ezazu."
"message": "Sartu zure segurtasun giltza ordenagailuaren USB atakan. Botoia badu, sakatu ezazu."
},
"webAuthnNewTab": {
"message": "WebAuthn 2FA egiaztatzea hasteko. Egin klik beheko botoian fitxa berria irekitzeko eta jarraitu fitxa berriko jarraibideei."
@@ -867,19 +867,19 @@
"message": "Ireki fitxa berria"
},
"webAuthnAuthenticate": {
"message": "WebAuthn baimendu"
"message": "WebAuthn autentifikatu"
},
"loginUnavailable": {
"message": "Ez dago eskuragarri saio-hasierarik"
},
"noTwoStepProviders": {
"message": "Kontu honek bi urratseko egiaztatzea du gaituta, baina konfiguratutako bi urratseko egiaztatzea ez da web-nabigatzaile honekin bateragarria."
"message": "Kontu honek bi urratseko saio hasiera du gaituta, baina ezarritako bi urratserako hornitzailea ez da web-nabigatzaile honekin bateragarria."
},
"noTwoStepProviders2": {
"message": "Mesedez, erabili nabigatzaile bateragarri bat (adibidez, Chrome) eta/edo gehitu bateragarritasun obea duten nabigatzaile bidezko (baimentze-aplikazio gisa) baimentze modu gehigarriak."
"message": "Mesedez, erabili nabigatzaile bateragarri bat (adibidez, Chrome) eta/edo gehitu bateragarritasun obea duten nabigatzaile bidezko (autentifikazio aplikazio gisa) autentifikazio modu gehigarriak."
},
"twoStepOptions": {
"message": "Bi urratseko egiaztatzearen aukerak"
"message": "Bi urratseko saio hasieraren aukerak"
},
"recoveryCodeDesc": {
"message": "Bi urratseko egiaztatzeko modu guztietarako sarbidea galdu duzu? Erabili zure berreskuratze-kodea zure kontuko bi urratseko egiaztatze hornitzaile guztiak desaktibatzeko."
@@ -888,10 +888,10 @@
"message": "Berreskuratze-kodea"
},
"authenticatorAppTitle": {
"message": "Baimentze aplikazioa"
"message": "Autentifikazio aplikazioa"
},
"authenticatorAppDesc": {
"message": "Erabili baimentze-aplikazio bat (adibidez, Authy edo Google Authenticator) denboran oinarritutako egiaztatze-kodeak sortzeko.",
"message": "Erabili autentifikazio aplikazio bat (adibidez, Authy edo Google Authenticator) denboran oinarritutako egiaztatze-kodeak sortzeko.",
"description": "'Authy' and 'Google Authenticator' are product names and should not be translated."
},
"yubiKeyTitle": {
@@ -1421,7 +1421,7 @@
"message": "Elementua berreskuratua"
},
"vaultTimeoutLogOutConfirmation": {
"message": "Saioa ixteak kutxa gotorreko sarrera guztia kenduko du eta itxaronaldiaren ondoren lineako baimentzea eskatuko du. Ziur zaude hau egin nahi duzula?"
"message": "Saioa ixteak kutxa gotorreko sarrera guztia kenduko du eta itxaronaldiaren ondoren lineako autentifikazioa eskatuko du. Ziur zaude hau egin nahi duzula?"
},
"vaultTimeoutLogOutConfirmationTitle": {
"message": "Baieztatu itxarote denboraren ekintza"
@@ -1886,7 +1886,7 @@
"message": "Ziur al zaude erakundea utzi nahi duzula?"
},
"leftOrganization": {
"message": "Erakundea utzi egin duzu."
"message": "Erakundea utzi duzu."
},
"toggleCharacterCount": {
"message": "Karaktere kontaketak txandakatu"
@@ -1969,9 +1969,12 @@
"message": "Errore bat gertatu da konektore giltzan: ziurtatu giltza konektorea erabilgarri dagoela eta behar bezala dabilela."
},
"organizationIsDisabled": {
"message": "Organization is disabled."
"message": "Erakundea desgaituta dago."
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
"message": "Ezin da sartu desgaitutako erakundeetako elementuetara. Laguntza lortzeko, jarri harremanetan zure erakundearekin."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -430,7 +430,7 @@
"message": "تایپ مجدد گذرواژه اصلی نیاز است."
},
"masterPasswordMinlength": {
"message": "Master password must be at least 8 characters long."
"message": "طول کلمه عبور اصلی باید حداقل ۸ کاراکتر باشد."
},
"masterPassDoesntMatch": {
"message": "کلمه عبور اصلی با تکرار کلمه عبور اصلی مطابقت ندارد."
@@ -1969,9 +1969,12 @@
"message": "خطای Key Connector: مطمئن شوید که Key Connector در دسترس است و به درستی کار می کند."
},
"organizationIsDisabled": {
"message": "Organization is disabled."
"message": "سازمان از کار افتاده است."
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
"message": "موارد موجود در سازمان‌های غیرفعال، قابل دسترسی نیستند. برای دریافت کمک با مالک سازمان خود تماس بگیرید."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Käytöstä poistettujen organisaatioiden kohteet eivät ole käytettävissä. Ole yhteydessä organisaation omistajaan saadaksesi apua."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "A letiltott szervezetek elemei nem érhetők el. Vegyük fel a kapcsolatot a szervezet tulajdonosával segítségért."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Non è possibile accedere agli oggetti nelle organizzazioni disabilitate. Contatta il proprietario della tua organizzazione per ricevere assistenza."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "無効な組織のアイテムにアクセスすることはできません。組織の所有者に連絡してください。"
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Atspējotu apvienību vienumiem nevar piekļūt. Jāsazinās ar apvienības īpašnieku, lai iegūtu palīdzību."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Je kunt uitgeschakelde items in een organisatie niet benaderen. Neem contact op met de eigenaar van je organisatie voor hulp."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Nie można uzyskać dostępu do elementów w wyłączonych organizacjach. Skontaktuj się z właścicielem organizacji, aby uzyskać pomoc."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Articolele din Organizațiile dezactivate nu pot fi accesate. Contactați proprietarul Organizației pentru asistență."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Доступ к элементам в отключенных организациях невозможен. Обратитесь за помощью к владельцу организации."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "K položkám vo vypnutej organizácii nie je možné pristupovať. Požiadajte o pomoc vlastníka organizácie."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1969,9 +1969,12 @@
"message": "Key Connector грешка: будите сигурни да је Key Connector доступан и да ради."
},
"organizationIsDisabled": {
"message": "Organization is disabled."
"message": "Организација је онемогућена."
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
"message": "Није могуће приступити ставкама у онемогућене организације. Обратите се власнику организације за помоћ."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -424,13 +424,13 @@
"message": "Ogiltig e-postadress."
},
"masterPasswordRequired": {
"message": "Master password is required."
"message": "Huvudlösenord krävs."
},
"confirmMasterPasswordRequired": {
"message": "Master password retype is required."
"message": "Huvudlösenord måste anges igen."
},
"masterPasswordMinlength": {
"message": "Master password must be at least 8 characters long."
"message": "Huvudlösenordet måste vara minst 8 tecken långt."
},
"masterPassDoesntMatch": {
"message": "Bekräftelsen för huvudlösenordet stämde ej."
@@ -571,7 +571,7 @@
"description": "This is the folder for uncategorized items"
},
"enableAddLoginNotification": {
"message": "Ask to add login"
"message": "Be om att lägga till inloggning"
},
"addLoginNotificationDesc": {
"message": "Aviseringar för nya inloggningar frågar dig om du vill lägga till en inloggning automatiskt till ditt valv, när du använder en inloggning som inte redan finns i ditt valv."
@@ -603,10 +603,10 @@
"message": "Spara"
},
"enableChangedPasswordNotification": {
"message": "Ask to update existing login"
"message": "Be om att uppdatera befintlig inloggning"
},
"changedPasswordNotificationDesc": {
"message": "Ask to update a login's password when a change is detected on a website."
"message": "Be om att uppdatera ett lösenord när en ändring upptäcks på en webbplats."
},
"notificationChangeDesc": {
"message": "Vill du uppdatera det här lösenordet i Bitwarden?"
@@ -615,7 +615,7 @@
"message": "Uppdatera"
},
"enableContextMenuItem": {
"message": "Show context menu options"
"message": "Visa alternativ för snabbmenyn"
},
"contextMenuItemDesc": {
"message": "Use a secondary click to access password generation and matching logins for the website. "
@@ -810,13 +810,13 @@
"message": "Uppdatering färdig"
},
"enableAutoTotpCopy": {
"message": "Copy TOTP automatically"
"message": "Kopiera TOTP automatiskt"
},
"disableAutoTotpCopyDesc": {
"message": "Om din inloggning har en autentiseringsnyckel kopplad till den, kommer TOTP-verifieringskoden att automatiskt kopieras till urklipp när du automatiskt fyller i inloggningen."
},
"enableAutoBiometricsPrompt": {
"message": "Ask for biometrics on launch"
"message": "Be om biometri vid start"
},
"premiumRequired": {
"message": "Premium krävs"
@@ -1037,16 +1037,16 @@
"message": "Den här webbläsaren kan inte bearbeta U2F-förfrågningar i detta popup-fönster. Vill du öppna ett nytt fönster så att du kan logga in med U2F?"
},
"enableFavicon": {
"message": "Show website icons"
"message": "Visa webbplatsikoner"
},
"faviconDesc": {
"message": "Show a recognizable image next to each login."
"message": "Visa en identifierbar bild bredvid varje inloggning."
},
"enableBadgeCounter": {
"message": "Show badge counter"
"message": "Visa aktivitetsräknaren"
},
"badgeCounterDesc": {
"message": "Indicate how many logins you have for the current web page."
"message": "Visa hur många inloggningar du har för den aktuella webbsidan."
},
"cardholderName": {
"message": "Kortinnehavarens namn"
@@ -1484,7 +1484,7 @@
"message": "Genom att markera denna ruta godkänner du följande:"
},
"acceptPoliciesRequired": {
"message": "Terms of Service and Privacy Policy have not been acknowledged."
"message": "Användarvillkoren och Integritetspolicyn har inte accepterats."
},
"termsOfService": {
"message": "Användarvillkor"
@@ -1850,7 +1850,7 @@
}
},
"vaultTimeoutTooLarge": {
"message": "Your vault timeout exceeds the restrictions set by your organization."
"message": "Ditt valvs tidsgräns överskrider de begränsningar som fastställts av din organisation."
},
"vaultExportDisabled": {
"message": "Valvexport inaktiverad"
@@ -1969,9 +1969,12 @@
"message": "Key Connector-fel: säkerställ att Key Connector är tillgänglig och fungerar korrekt."
},
"organizationIsDisabled": {
"message": "Organization is disabled."
"message": "Organisationen är inaktiverad."
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
"message": "Objekt i inaktiverade organisationer är inte åtkomliga. Kontakta organisationens ägare för att få hjälp."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Devre dışı kuruluşlardaki kayıtlara erişilemez. Destek almak için kuruluş sahibinizle iletişime geçin."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Записи у вимкнених організаціях недоступні. Зверніться до власника вашої організації для отримання допомоги."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "Items in disabled Organizations cannot be accessed. Contact your Organization owner for assistance."
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -618,7 +618,7 @@
"message": "显示上下文菜单选项"
},
"contextMenuItemDesc": {
"message": "使用辅助点击来访问网站的密码生成和匹配的登录项目。 "
"message": "使用辅助点击来访问密码生成和匹配的网站登录项目。 "
},
"defaultUriMatchDetection": {
"message": "默认 URI 匹配检测",
@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "无法访问已禁用组织中的项目。请联系您的组织所有者获取协助。"
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -618,7 +618,7 @@
"message": "顯示內容選單選項"
},
"contextMenuItemDesc": {
"message": "使用輔助點選(右鍵選單)來存取網站的密碼產生和匹配的登入項目。 "
"message": "使用輔助點選(右鍵選單)來存取密碼產生和匹配的網站登入項目。 "
},
"defaultUriMatchDetection": {
"message": "預設的 URI 一致性偵測",
@@ -1973,5 +1973,8 @@
},
"disabledOrganizationFilterError": {
"message": "無法存取已停用組織中的項目。請聯絡您組織的擁有者以獲取協助。"
},
"cardBrandMir": {
"message": "Mir"
}
}

View File

@@ -517,7 +517,7 @@ export default class MainBackground {
}
async bootstrap() {
this.containerService.attachToWindow(window);
this.containerService.attachToGlobal(window);
await this.stateService.init();

View File

@@ -156,7 +156,7 @@ export class BrowserApi {
static reloadExtension(win: Window) {
if (win != null) {
return win.location.reload(true);
return (win.location as any).reload(true);
} else {
return chrome.runtime.reload();
}

View File

@@ -87,7 +87,7 @@ button.neutral {
}
}
@media (print) {
@media print {
body {
display: none;
}

View File

@@ -1,13 +1,13 @@
<form #form (ngSubmit)="submit()">
<header>
<div class="left">
<a routerLink="/home">{{ "close" | i18n }}</a>
<button type="button" routerLink="/home">{{ "close" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ "appName" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "save" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>

View File

@@ -1,13 +1,13 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<a routerLink="/login">{{ "cancel" | i18n }}</a>
<button type="button" routerLink="/login">{{ "cancel" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ "passwordHint" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "submit" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>

View File

@@ -2,15 +2,17 @@
<div class="content">
<div class="logo-image"></div>
<p class="lead text-center">{{ "loginOrCreateNewAccount" | i18n }}</p>
<a class="btn primary block" routerLink="/login"
><b>{{ "login" | i18n }}</b></a
>
<button type="button" class="btn primary block" routerLink="/login">
<b>{{ "login" | i18n }}</b>
</button>
<button type="button" (click)="launchSsoBrowser()" class="btn block">
<i class="bwi bwi-bank" aria-hidden="true"></i> {{ "enterpriseSingleSignOn" | i18n }}
</button>
<a class="btn block" routerLink="/register">{{ "createAccount" | i18n }}</a>
<button type="button" class="btn block" routerLink="/register">
{{ "createAccount" | i18n }}
</button>
</div>
</div>
<a routerLink="/environment" class="settings-icon">
<button type="button" routerLink="/environment" class="settings-icon">
<i class="bwi bwi-cog-f bwi-lg" aria-hidden="true"></i><span>&nbsp;{{ "settings" | i18n }}</span>
</a>
</button>

View File

@@ -5,7 +5,7 @@
<span class="title">{{ "verifyIdentity" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick *ngIf="!hideInput">{{ "unlock" | i18n }}</button>
<button type="submit" *ngIf="!hideInput">{{ "unlock" | i18n }}</button>
</div>
</header>
<main tabindex="-1">
@@ -41,7 +41,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword()"
[attr.aria-pressed]="showPassword"

View File

@@ -1,13 +1,13 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<a routerLink="/home">{{ "cancel" | i18n }}</a>
<button type="button" routerLink="/home">{{ "cancel" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ "appName" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "login" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>
@@ -46,7 +46,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword()"
[attr.aria-pressed]="showPassword"
@@ -65,7 +64,7 @@
</div>
</div>
<p class="text-center">
<a routerLink="/hint">{{ "getMasterPasswordHint" | i18n }}</a>
<button type="button" routerLink="/hint">{{ "getMasterPasswordHint" | i18n }}</button>
</p>
<app-private-mode-warning></app-private-mode-warning>
</main>

View File

@@ -1,13 +1,13 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise" [formGroup]="formGroup">
<header>
<div class="left">
<a routerLink="/home">{{ "cancel" | i18n }}</a>
<button type="button" routerLink="/home">{{ "cancel" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ "createAccount" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "submit" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>
@@ -46,7 +46,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword()"
[attr.aria-pressed]="showPassword"
@@ -94,7 +93,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword()"
[attr.aria-pressed]="showPassword"

View File

@@ -1,5 +1,5 @@
import { Component } from "@angular/core";
import { FormBuilder } from "@angular/forms";
import { UntypedFormBuilder } from "@angular/forms";
import { Router } from "@angular/router";
import { RegisterComponent as BaseRegisterComponent } from "@bitwarden/angular/components/register.component";
@@ -21,7 +21,7 @@ import { StateService } from "@bitwarden/common/abstractions/state.service";
export class RegisterComponent extends BaseRegisterComponent {
constructor(
formValidationErrorService: FormValidationErrorsService,
formBuilder: FormBuilder,
formBuilder: UntypedFormBuilder,
authService: AuthService,
router: Router,
i18nService: I18nService,

View File

@@ -1,13 +1,13 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<a routerLink="/home">{{ "cancel" | i18n }}</a>
<button type="button" routerLink="/home">{{ "cancel" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ "setMasterPassword" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "submit" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>
@@ -64,7 +64,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword(false)"
[attr.aria-pressed]="showPassword"
@@ -116,7 +115,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword(true)"
[attr.aria-pressed]="showPassword"

View File

@@ -1,6 +1,6 @@
<header>
<div class="left">
<a routerLink="/2fa">{{ "close" | i18n }}</a>
<button type="button" routerLink="/2fa">{{ "close" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ "twoStepOptions" | i18n }}</span>

View File

@@ -1,7 +1,7 @@
<form id="two-factor-page" #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<a routerLink="/login">{{ "back" | i18n }}</a>
<button type="button" routerLink="/login">{{ "back" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ title }}</span>
@@ -9,7 +9,6 @@
<div class="right">
<button
type="submit"
appBlurClick
[disabled]="form.loading"
*ngIf="
selectedProviderType != null &&

View File

@@ -7,7 +7,7 @@
<span class="title">{{ "updateMasterPassword" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "submit" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>
@@ -53,7 +53,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword(false)"
[attr.aria-pressed]="showPassword"
@@ -100,7 +99,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword(true)"
[attr.aria-pressed]="showPassword"

View File

@@ -239,7 +239,6 @@ registerLocaleData(localeZhTw, "zh-TW");
RemovePasswordComponent,
VaultSelectComponent,
],
entryComponents: [],
providers: [CurrencyPipe, DatePipe],
bootstrap: [AppComponent],
})

View File

@@ -23,7 +23,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword()"
[attr.aria-pressed]="showPassword"
@@ -43,7 +42,7 @@
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" appBlurClick>
<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">

View File

@@ -25,7 +25,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="toggleVisibility()"
[attr.aria-pressed]="showPin"
@@ -53,7 +52,7 @@
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit" appBlurClick>
<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">

View File

@@ -1,7 +1,7 @@
<header>
<div class="left">
<app-pop-out [show]="!comingFromAddEdit"></app-pop-out>
<button type="button" appBlurClick (click)="close()" *ngIf="comingFromAddEdit">
<button type="button" (click)="close()" *ngIf="comingFromAddEdit">
{{ "cancel" | i18n }}
</button>
</div>
@@ -9,7 +9,7 @@
<span class="title">{{ "generator" | i18n }}</span>
</h1>
<div class="right">
<button type="button" appBlurClick (click)="select()" *ngIf="comingFromAddEdit">
<button type="button" (click)="select()" *ngIf="comingFromAddEdit">
{{ "select" | i18n }}
</button>
</div>
@@ -33,7 +33,6 @@
<button
type="button"
appStopClick
appBlurClick
appA11yTitle="{{ 'regeneratePassword' | i18n }}"
(click)="regenerate()"
>
@@ -56,7 +55,6 @@
<button
type="button"
appStopClick
appBlurClick
appA11yTitle="{{ 'regenerateUsername' | i18n }}"
(click)="regenerate()"
[disabled]="form.loading"

View File

@@ -1,6 +1,6 @@
<header>
<div class="left">
<button type="button" appBlurClick type="button" (click)="close()">
<button type="button" type="button" (click)="close()">
<span class="header-icon" aria-hidden="true"><i class="bwi bwi-angle-left"></i></span>
<span>{{ "back" | i18n }}</span>
</button>
@@ -9,7 +9,7 @@
<span class="title">{{ "passwordHistory" | i18n }}</span>
</h1>
<div class="right">
<button type="button" appBlurClick type="button" (click)="clear()">
<button type="button" type="button" (click)="clear()">
{{ "clear" | i18n }}
</button>
</div>

View File

@@ -1,4 +1,3 @@
import "core-js/stable";
import "date-input-polyfill";
import "web-animations-js";
import "zone.js/dist/zone";

View File

@@ -56,7 +56,7 @@ app-home {
margin-top: 10px;
}
a.settings-icon {
button.settings-icon {
position: absolute;
top: 10px;
left: 10px;

View File

@@ -11,4 +11,4 @@
@import "plugins.scss";
@import "environment.scss";
@import "pages.scss";
@import "~@angular/cdk/overlay-prebuilt.css";
@import "@angular/cdk/overlay-prebuilt.css";

View File

@@ -1,13 +1,13 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<button type="button" appBlurClick (click)="cancel()">{{ "cancel" | i18n }}</button>
<button type="button" (click)="cancel()">{{ "cancel" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ title }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading || disableSend">
<button type="submit" [disabled]="form.loading || disableSend">
<span [hidden]="form.loading">{{ "save" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>
@@ -226,7 +226,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePasswordVisible()"
[attr.aria-pressed]="showPassword"
@@ -300,7 +299,6 @@
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="delete()"
[appApiAction]="deletePromise"
#deleteBtn

View File

@@ -18,7 +18,6 @@
<div class="right">
<button
type="button"
appBlurClick
(click)="addSend()"
appA11yTitle="{{ 'addSend' | i18n }}"
[disabled]="disableSend"
@@ -56,7 +55,6 @@
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectType(sendType.Text)"
>
<div class="row-main">
@@ -70,7 +68,6 @@
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectType(sendType.File)"
>
<div class="row-main">

View File

@@ -1,6 +1,6 @@
<header>
<div class="left">
<button type="button" appBlurClick (click)="back()">
<button type="button" (click)="back()">
<span class="header-icon"><i class="bwi bwi-angle-left" aria-hidden="true"></i></span>
<span>{{ "back" | i18n }}</span>
</button>
@@ -21,7 +21,6 @@
<div class="right">
<button
type="button"
appBlurClick
(click)="addSend()"
appA11yTitle="{{ 'addSend' | i18n }}"
[disabled]="disableSend"

View File

@@ -1,16 +1,16 @@
<form #form (ngSubmit)="submit()">
<header>
<div class="left">
<a routerLink="/tabs/settings">
<button type="button" routerLink="/tabs/settings">
<span class="header-icon"><i class="bwi bwi-angle-left" aria-hidden="true"></i></span>
<span>{{ "back" | i18n }}</span>
</a>
</button>
</div>
<h1 class="center">
<span class="title">{{ "excludedDomains" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick>{{ "save" | i18n }}</button>
<button type="submit">{{ "save" | i18n }}</button>
</div>
</header>
<main tabindex="-1">
@@ -73,7 +73,6 @@
<button
type="button"
appStopClick
appBlurClick
(click)="addUri()"
class="box-content-row box-content-row-newmulti"
>

View File

@@ -22,6 +22,7 @@ const BroadcasterSubscriptionId = "excludedDomains";
})
export class ExcludedDomainsComponent implements OnInit, OnDestroy {
excludedDomains: ExcludedDomain[] = [];
existingExcludedDomains: ExcludedDomain[] = [];
currentUris: string[];
loadCurrentUrisTimeout: number;
@@ -39,6 +40,7 @@ export class ExcludedDomainsComponent implements OnInit, OnDestroy {
if (savedDomains) {
for (const uri of Object.keys(savedDomains)) {
this.excludedDomains.push({ uri: uri, showCurrentUris: false });
this.existingExcludedDomains.push({ uri: uri, showCurrentUris: false });
}
}
@@ -78,20 +80,27 @@ export class ExcludedDomainsComponent implements OnInit, OnDestroy {
async submit() {
const savedDomains: { [name: string]: null } = {};
const newExcludedDomains = this.getNewlyAddedDomians(this.excludedDomains);
for (const domain of this.excludedDomains) {
if (domain.uri && domain.uri !== "") {
const validDomain = Utils.getHostname(domain.uri);
if (!validDomain) {
this.platformUtilsService.showToast(
"error",
null,
this.i18nService.t("excludedDomainsInvalidDomain", domain.uri)
);
return;
const resp = newExcludedDomains.filter((e) => e.uri === domain.uri);
if (resp.length === 0) {
savedDomains[domain.uri] = null;
} else {
if (domain.uri && domain.uri !== "") {
const validDomain = Utils.getHostname(domain.uri);
if (!validDomain) {
this.platformUtilsService.showToast(
"error",
null,
this.i18nService.t("excludedDomainsInvalidDomain", domain.uri)
);
return;
}
savedDomains[validDomain] = null;
}
savedDomains[validDomain] = null;
}
}
await this.stateService.setNeverDomains(savedDomains);
this.router.navigate(["/tabs/settings"]);
}
@@ -100,6 +109,14 @@ export class ExcludedDomainsComponent implements OnInit, OnDestroy {
return index;
}
getNewlyAddedDomians(domain: ExcludedDomain[]): ExcludedDomain[] {
const result = this.excludedDomains.filter(
(newDomain) =>
!this.existingExcludedDomains.some((oldDomain) => newDomain.uri === oldDomain.uri)
);
return result;
}
toggleUriInput(domain: ExcludedDomain) {
domain.showCurrentUris = !domain.showCurrentUris;
}

View File

@@ -1,16 +1,16 @@
<form (ngSubmit)="submit()" [formGroup]="exportForm">
<header>
<div class="left">
<a routerLink="/tabs/settings">
<button type="button" routerLink="/tabs/settings">
<span class="header-icon" aria-hidden="true"><i class="bwi bwi-angle-left"></i></span>
<span>{{ "back" | i18n }}</span>
</a>
</button>
</div>
<h1 class="center">
<span class="title">{{ "exportVault" | i18n }}</span>
</h1>
<div class="right">
<button appBlurClick type="submit" [disabled]="!exportForm.enabled">
<button type="submit" [disabled]="!exportForm.enabled">
{{ "submit" | i18n }}
</button>
</div>

View File

@@ -1,5 +1,5 @@
import { Component } from "@angular/core";
import { FormBuilder } from "@angular/forms";
import { UntypedFormBuilder } from "@angular/forms";
import { Router } from "@angular/router";
import { ExportComponent as BaseExportComponent } from "@bitwarden/angular/components/export.component";
@@ -28,7 +28,7 @@ export class ExportComponent extends BaseExportComponent {
private router: Router,
logService: LogService,
userVerificationService: UserVerificationService,
formBuilder: FormBuilder,
formBuilder: UntypedFormBuilder,
fileDownloadService: FileDownloadService
) {
super(

View File

@@ -1,13 +1,13 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<a routerLink="/folders">{{ "cancel" | i18n }}</a>
<button type="button" routerLink="/folders">{{ "cancel" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ title }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "save" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>
@@ -34,7 +34,6 @@
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="delete()"
[appApiAction]="deletePromise"
#deleteBtn

View File

@@ -1,20 +1,15 @@
<header>
<div class="left">
<a routerLink="/tabs/settings">
<button type="button" routerLink="/tabs/settings">
<span class="header-icon"><i class="bwi bwi-angle-left" aria-hidden="true"></i></span>
<span>{{ "back" | i18n }}</span>
</a>
</button>
</div>
<h1 class="center">
<span class="title">{{ "folders" | i18n }}</span>
</h1>
<div class="right">
<button
type="button"
appBlurClick
(click)="addFolder()"
appA11yTitle="{{ 'addFolder' | i18n }}"
>
<button type="button" (click)="addFolder()" appA11yTitle="{{ 'addFolder' | i18n }}">
<i class="bwi bwi-plus bwi-lg bwi-fw" aria-hidden="true"></i>
</button>
</div>

View File

@@ -1,9 +1,9 @@
<header>
<div class="left">
<a routerLink="/tabs/settings">
<button type="button" routerLink="/tabs/settings">
<span class="header-icon"><i class="bwi bwi-angle-left" aria-hidden="true"></i></span>
<span>{{ "back" | i18n }}</span>
</a>
</button>
</div>
<h1 class="center">
<span class="title">{{ "options" | i18n }}</span>

View File

@@ -1,9 +1,9 @@
<header>
<div class="left">
<a routerLink="/tabs/settings">
<button type="button" routerLink="/tabs/settings">
<span class="header-icon"><i class="bwi bwi-angle-left" aria-hidden="true"></i></span>
<span>{{ "back" | i18n }}</span>
</a>
</button>
</div>
<h1 class="center">
<span class="title">{{ "premiumMembership" | i18n }}</span>
@@ -42,13 +42,12 @@
</li>
</ul>
<p class="text-center lead">{{ priceString }}</p>
<button type="button" class="btn primary block" appBlurClick (click)="purchase()">
<button type="button" class="btn primary block" (click)="purchase()">
<b>{{ "premiumPurchase" | i18n }}</b>
</button>
<button
#refreshBtn
type="button"
appBlurClick
(click)="refresh()"
[disabled]="refreshBtn.loading"
[appApiAction]="refreshPromise"
@@ -65,7 +64,7 @@
<ng-container *ngIf="isPremium">
<p class="text-center lead">{{ "premiumCurrentMember" | i18n }}</p>
<p class="text-center">{{ "premiumCurrentMemberThanks" | i18n }}</p>
<button type="button" class="btn block primary" appBlurClick (click)="manage()">
<button type="button" class="btn block primary" (click)="manage()">
<b>{{ "premiumManage" | i18n }}</b>
</button>
</ng-container>

View File

@@ -11,18 +11,30 @@
<div class="box list">
<h2 class="box-header">{{ "manage" | i18n }}</h2>
<div class="box-content single-line">
<a class="box-content-row box-content-row-flex text-default" routerLink="/folders">
<button
type="button"
class="box-content-row box-content-row-flex text-default"
routerLink="/folders"
>
<div class="row-main">{{ "folders" | i18n }}</div>
<i class="bwi bwi-angle-right bwi-lg row-sub-icon" aria-hidden="true"></i>
</a>
<a class="box-content-row box-content-row-flex text-default" routerLink="/sync">
</button>
<button
type="button"
class="box-content-row box-content-row-flex text-default"
routerLink="/sync"
>
<div class="row-main">{{ "sync" | i18n }}</div>
<i class="bwi bwi-angle-right bwi-lg row-sub-icon" aria-hidden="true"></i>
</a>
<a class="box-content-row box-content-row-flex text-default" routerLink="/excluded-domains">
</button>
<button
type="button"
class="box-content-row box-content-row-flex text-default"
routerLink="/excluded-domains"
>
<div class="row-main">{{ "excludedDomains" | i18n }}</div>
<i class="bwi bwi-angle-right bwi-lg row-sub-icon" aria-hidden="true"></i>
</a>
</button>
</div>
</div>
<div class="box list">
@@ -77,7 +89,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="lock()"
>
<div class="row-main">{{ "lockNow" | i18n }}</div>
@@ -87,7 +98,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="twoStep()"
>
<div class="row-main">{{ "twoStepLogin" | i18n }}</div>
@@ -98,7 +108,7 @@
<div class="box list">
<h2 class="box-header">{{ "account" | i18n }}</h2>
<div class="box-content single-line">
<a class="box-content-row" routerLink="/premium">
<button type="button" class="box-content-row" routerLink="/premium">
<div class="row-main">
<div class="icon text-primary">
<i class="bwi bwi-fw bwi-lg bwi-star-f" aria-hidden="true"></i>
@@ -108,12 +118,11 @@
>
</div>
<span><i class="bwi bwi-angle-right bwi-lg row-sub-icon" aria-hidden="true"></i></span>
</a>
</button>
<button
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="changePassword()"
*ngIf="showChangeMasterPass"
>
@@ -124,7 +133,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="fingerprint()"
>
<div class="row-main">{{ "fingerprintPhrase" | i18n }}</div>
@@ -134,7 +142,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="logOut()"
>
<div class="row-main">{{ "logOut" | i18n }}</div>
@@ -149,7 +156,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="import()"
>
<div class="row-main">{{ "importItems" | i18n }}</div>
@@ -159,7 +165,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="export()"
>
<div class="row-main">{{ "exportVault" | i18n }}</div>
@@ -169,7 +174,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="webVault()"
>
<div class="row-main">{{ "bitWebVault" | i18n }}</div>
@@ -180,15 +184,18 @@
<div class="box list">
<h2 class="box-header">{{ "other" | i18n }}</h2>
<div class="box-content single-line">
<a class="box-content-row box-content-row-flex text-default" routerLink="/options">
<button
type="button"
class="box-content-row box-content-row-flex text-default"
routerLink="/options"
>
<div class="row-main">{{ "options" | i18n }}</div>
<i class="bwi bwi-angle-right bwi-lg row-sub-icon" aria-hidden="true"></i>
</a>
</button>
<button
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="about()"
>
<div class="row-main">{{ "about" | i18n }}</div>
@@ -198,7 +205,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="share()"
>
<div class="row-main">{{ "learnOrg" | i18n }}</div>
@@ -208,7 +214,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="help()"
>
<div class="row-main">{{ "helpFeedback" | i18n }}</div>
@@ -218,7 +223,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="rate()"
>
<div class="row-main">{{ "rateExtension" | i18n }}</div>

View File

@@ -1,5 +1,5 @@
import { Component, ElementRef, OnInit, ViewChild } from "@angular/core";
import { FormControl } from "@angular/forms";
import { UntypedFormControl } from "@angular/forms";
import { Router } from "@angular/router";
import Swal from "sweetalert2";
@@ -50,7 +50,7 @@ export class SettingsComponent implements OnInit {
previousVaultTimeout: number = null;
showChangeMasterPass = true;
vaultTimeout: FormControl = new FormControl(null);
vaultTimeout: UntypedFormControl = new UntypedFormControl(null);
constructor(
private platformUtilsService: PlatformUtilsService,

View File

@@ -1,9 +1,9 @@
<header>
<div class="left">
<a routerLink="/tabs/settings">
<button type="button" routerLink="/tabs/settings">
<span class="header-icon"><i class="bwi bwi-angle-left" aria-hidden="true"></i></span>
<span>{{ "back" | i18n }}</span>
</a>
</button>
</div>
<h1 class="center">
<span class="title">{{ "sync" | i18n }}</span>

View File

@@ -4,6 +4,7 @@
<ul>
<li routerLinkActive="active" #rlaCurrentTab="routerLinkActive" *ngIf="showCurrentTab">
<button
type="button"
routerLink="current"
appA11yTitle="{{ 'currentTab' | i18n }}"
[attr.aria-pressed]="rlaCurrentTab.isActive"
@@ -13,6 +14,7 @@
</li>
<li routerLinkActive="active" #rlaMyVault="routerLinkActive">
<button
type="button"
routerLink="vault"
appA11yTitle="{{ 'myVault' | i18n }}"
[attr.aria-pressed]="rlaMyVault.isActive"
@@ -22,6 +24,7 @@
</li>
<li routerLinkActive="active" #rlaSend="routerLinkActive">
<button
type="button"
routerLink="send"
appA11yTitle="{{ 'send' | i18n }}"
[attr.aria-pressed]="rlaSend.isActive"
@@ -31,6 +34,7 @@
</li>
<li routerLinkActive="active" #rlaGenerator="routerLinkActive">
<button
type="button"
routerLink="generator"
appA11yTitle="{{ 'passGen' | i18n }}"
[attr.aria-pressed]="rlaGenerator.isActive"
@@ -40,6 +44,7 @@
</li>
<li routerLinkActive="active" #rlaSettings="routerLinkActive">
<button
type="button"
routerLink="settings"
appA11yTitle="{{ 'settings' | i18n }}"
[attr.aria-pressed]="rlaSettings.isActive"

View File

@@ -83,7 +83,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="toggleFieldValue(f)"
[attr.aria-pressed]="f.showValue"

View File

@@ -1,13 +1,13 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<button type="button" appBlurClick (click)="cancel()">{{ "cancel" | i18n }}</button>
<button type="button" (click)="cancel()">{{ "cancel" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ title }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "save" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>
@@ -51,7 +51,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'generateUsername' | i18n }}"
(click)="generateUsername()"
>
@@ -77,7 +76,6 @@
type="button"
#checkPasswordBtn
class="row-btn btn"
appBlurClick
appA11yTitle="{{ 'checkPassword' | i18n }}"
(click)="checkPassword()"
[appApiAction]="checkPasswordPromise"
@@ -99,7 +97,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="togglePassword()"
*ngIf="cipher.viewPassword"
@@ -115,7 +112,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'generatePassword' | i18n }}"
(click)="generatePassword()"
*ngIf="cipher.viewPassword"
@@ -165,7 +161,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="toggleCardNumber()"
[attr.aria-pressed]="showCardNumber"
@@ -219,7 +214,6 @@
type="button"
class="row-btn"
appStopClick
appBlurClick
appA11yTitle="{{ 'toggleVisibility' | i18n }}"
(click)="toggleCardCode()"
[attr.aria-pressed]="showCardCode"
@@ -486,7 +480,6 @@
<button
type="button"
appStopClick
appBlurClick
(click)="addUri()"
class="box-content-row box-content-row-newmulti"
>
@@ -546,7 +539,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="attachments()"
*ngIf="editMode && showAttachments && !cloneMode"
>
@@ -566,7 +558,6 @@
type="button"
class="box-content-row box-content-row-flex text-default"
appStopClick
appBlurClick
(click)="editCollections()"
*ngIf="editMode && cipher.organizationId && !cloneMode"
>
@@ -641,7 +632,6 @@
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="delete()"
[appApiAction]="deletePromise"
#deleteBtn

View File

@@ -1,10 +1,10 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<button type="button" appBlurClick (click)="close()" *ngIf="openedAttachmentsInPopup">
<button type="button" (click)="close()" *ngIf="openedAttachmentsInPopup">
{{ "close" | i18n }}
</button>
<button type="button" appBlurClick (click)="back()" *ngIf="!openedAttachmentsInPopup">
<button type="button" (click)="back()" *ngIf="!openedAttachmentsInPopup">
<span class="header-icon"><i class="bwi bwi-angle-left" aria-hidden="true"></i></span>
<span>{{ "back" | i18n }}</span>
</button>
@@ -13,7 +13,7 @@
<span class="title">{{ "attachments" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "save" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>
@@ -33,7 +33,6 @@
class="row-btn btn"
type="button"
appStopClick
appBlurClick
appA11yTitle="{{ 'deleteAttachment' | i18n }}"
(click)="delete(a)"
#deleteBtn

View File

@@ -1,6 +1,6 @@
<header>
<div class="left">
<button type="button" appBlurClick (click)="back()">
<button type="button" (click)="back()">
<span class="header-icon"><i class="bwi bwi-angle-left" aria-hidden="true"></i></span>
<span>{{ "back" | i18n }}</span>
</button>
@@ -19,7 +19,7 @@
<i class="bwi bwi-search" aria-hidden="true"></i>
</div>
<div class="right">
<button type="button" appBlurClick (click)="addCipher()" appA11yTitle="{{ 'addItem' | i18n }}">
<button type="button" (click)="addCipher()" appA11yTitle="{{ 'addItem' | i18n }}">
<i class="bwi bwi-plus bwi-lg bwi-fw" aria-hidden="true"></i>
</button>
</div>
@@ -40,7 +40,6 @@
*ngFor="let f of nestedFolders"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectFolder(f.node)"
>
<div class="row-main">
@@ -63,7 +62,6 @@
*ngFor="let c of nestedCollections"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectCollection(c.node)"
>
<div class="row-main">

View File

@@ -1,7 +1,7 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<button type="button" appBlurClick (click)="back()">
<button type="button" (click)="back()">
<span class="header-icon"><i class="bwi bwi-angle-left" aria-hidden="true"></i></span>
<span>{{ "back" | i18n }}</span>
</button>
@@ -10,7 +10,7 @@
<span class="title">{{ "collections" | i18n }}</span>
</h1>
<div class="right">
<button type="submit" appBlurClick [disabled]="form.loading">
<button type="submit" [disabled]="form.loading">
<span [hidden]="form.loading">{{ "save" | i18n }}</span>
<i class="bwi bwi-spinner bwi-lg bwi-spin" [hidden]="!form.loading" aria-hidden="true"></i>
</button>

View File

@@ -4,7 +4,6 @@
<app-pop-out *ngIf="!inSidebar"></app-pop-out>
<button
type="button"
appBlurClick
(click)="refresh()"
appA11yTitle="{{ 'refresh' | i18n }}"
*ngIf="inSidebar"
@@ -25,7 +24,7 @@
<i class="bwi bwi-search" aria-hidden="true"></i>
</div>
<div class="right">
<button type="button" appBlurClick (click)="addCipher()" appA11yTitle="{{ 'addItem' | i18n }}">
<button type="button" (click)="addCipher()" appA11yTitle="{{ 'addItem' | i18n }}">
<i class="bwi bwi-plus bwi-lg bwi-fw" aria-hidden="true"></i>
</button>
</div>

View File

@@ -1,6 +1,6 @@
<header>
<div class="left">
<button type="button" appBlurClick (click)="close()">{{ "close" | i18n }}</button>
<button type="button" (click)="close()">{{ "close" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ "passwordHistory" | i18n }}</span>

View File

@@ -1,7 +1,7 @@
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise">
<header>
<div class="left">
<button type="button" appBlurClick (click)="cancel()">{{ "cancel" | i18n }}</button>
<button type="button" (click)="cancel()">{{ "cancel" | i18n }}</button>
</div>
<h1 class="center">
<span class="title">{{ "moveToOrganization" | i18n }}</span>
@@ -9,7 +9,6 @@
<div class="right">
<button
type="submit"
appBlurClick
[disabled]="form.loading || !canSave"
*ngIf="organizations && organizations.length"
>

View File

@@ -17,7 +17,7 @@
<i class="bwi bwi-search"></i>
</div>
<div class="right">
<button type="button" appBlurClick (click)="addCipher()" appA11yTitle="{{ 'addItem' | i18n }}">
<button type="button" (click)="addCipher()" appA11yTitle="{{ 'addItem' | i18n }}">
<i class="bwi bwi-plus bwi-lg bwi-fw" aria-hidden="true"></i>
</button>
</div>
@@ -61,7 +61,6 @@
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectType(cipherType.Login)"
>
<div class="row-main">
@@ -75,7 +74,6 @@
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectType(cipherType.Card)"
>
<div class="row-main">
@@ -89,7 +87,6 @@
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectType(cipherType.Identity)"
>
<div class="row-main">
@@ -103,7 +100,6 @@
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectType(cipherType.SecureNote)"
>
<div class="row-main">
@@ -126,7 +122,6 @@
*ngFor="let f of nestedFolders"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectFolder(f.node)"
>
<div class="row-main">
@@ -151,7 +146,6 @@
*ngFor="let nestedCollection of nestedCollections"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectCollection(nestedCollection.node)"
>
<div class="row-main">
@@ -187,13 +181,7 @@
<span class="flex-right">{{ deletedCount }}</span>
</h2>
<div class="box-content single-line">
<button
type="button"
class="box-content-row"
appStopClick
appBlurClick
(click)="selectTrash()"
>
<button type="button" class="box-content-row" appStopClick (click)="selectTrash()">
<div class="row-main">
<div class="icon"><i class="bwi bwi-fw bwi-lg bwi-trash"></i></div>
<span class="text">{{ "trash" | i18n }}</span>

View File

@@ -58,7 +58,7 @@
class="bwi bwi-fw bwi-family"
aria-hidden="true"
></i>
<span>&nbsp;{{ organization.name | ellipsis: 21:true }}</span>
<span>&nbsp;{{ organization.name | ellipsis: (organization.enabled ? 21 : 18):true }}</span>
<i
*ngIf="!organization.enabled"
class="bwi bwi-fw bwi-exclamation-triangle text-danger"

Some files were not shown because too many files have changed in this diff Show More