mirror of
https://github.com/bitwarden/browser.git
synced 2025-01-20 21:01:29 +01:00
Merged with master and fixed conflicts
This commit is contained in:
commit
1b0d84ff0f
@ -27,3 +27,5 @@ apps/cli/config/config.js
|
||||
tailwind.config.js
|
||||
libs/components/tailwind.config.base.js
|
||||
libs/components/tailwind.config.js
|
||||
|
||||
scripts/*.js
|
||||
|
3
.github/CODEOWNERS
vendored
3
.github/CODEOWNERS
vendored
@ -52,3 +52,6 @@ libs/common/src/admin-console @bitwarden/team-admin-console-dev
|
||||
apps/web/src/app/billing @bitwarden/team-billing-dev
|
||||
libs/angular/src/billing @bitwarden/team-billing-dev
|
||||
libs/common/src/billing @bitwarden/team-billing-dev
|
||||
|
||||
## Platform team files ##
|
||||
libs/components @bitwarden/team-platform-dev
|
||||
|
9
.github/renovate.json
vendored
9
.github/renovate.json
vendored
@ -29,13 +29,18 @@
|
||||
"matchUpdateTypes": ["minor", "patch"]
|
||||
},
|
||||
{
|
||||
"packageNames": ["typescript"],
|
||||
"matchPackageNames": ["typescript"],
|
||||
"matchUpdateTypes": ["major", "minor"],
|
||||
"enabled": false
|
||||
},
|
||||
{
|
||||
"packageNames": ["typescript"],
|
||||
"matchPackageNames": ["typescript"],
|
||||
"matchUpdateTypes": "patch"
|
||||
},
|
||||
{
|
||||
"groupName": "jest",
|
||||
"matchPackageNames": ["@types/jest", "jest", "ts-jest", "jest-preset-angular"],
|
||||
"matchUpdateTypes": "major"
|
||||
}
|
||||
],
|
||||
"ignoreDeps": [
|
||||
|
2
.github/whitelist-capital-letters.txt
vendored
2
.github/whitelist-capital-letters.txt
vendored
@ -23,8 +23,6 @@
|
||||
./libs/angular/src/validators/inputsFieldMatch.validator.ts
|
||||
./libs/angular/src/validators/notAllowedValueAsync.validator.ts
|
||||
./libs/angular/src/services/theming/themeBuilder.ts
|
||||
./libs/angular/src/interfaces/selectOptions.ts
|
||||
./libs/components/src/stories/Introduction.stories.mdx
|
||||
./libs/common/src/misc/nodeUtils.ts
|
||||
./libs/common/src/misc/linkedFieldOption.decorator.ts
|
||||
./libs/common/src/misc/serviceUtils.ts
|
||||
|
2
.github/workflows/brew-bump-cli.yml
vendored
2
.github/workflows/brew-bump-cli.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "brew-bump-workflow-pat"
|
||||
|
2
.github/workflows/brew-bump-desktop.yml
vendored
2
.github/workflows/brew-bump-desktop.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "brew-bump-workflow-pat"
|
||||
|
6
.github/workflows/build-browser.yml
vendored
6
.github/workflows/build-browser.yml
vendored
@ -354,13 +354,13 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "crowdin-api-token"
|
||||
|
||||
- name: Upload Sources
|
||||
uses: crowdin/github-action@3cabba4ddfd0579a1236b3fb68405236dc489ccc # v1.8.0
|
||||
uses: crowdin/github-action@102b5aa21783a64027193ef802a616140a1ca102 # v1.8.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
|
||||
@ -416,7 +416,7 @@ jobs:
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
if: failure()
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "devops-alerts-slack-webhook-url"
|
||||
|
2
.github/workflows/build-cli.yml
vendored
2
.github/workflows/build-cli.yml
vendored
@ -404,7 +404,7 @@ jobs:
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
if: failure()
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "devops-alerts-slack-webhook-url"
|
||||
|
10
.github/workflows/build-desktop.yml
vendored
10
.github/workflows/build-desktop.yml
vendored
@ -277,7 +277,7 @@ jobs:
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Install AST
|
||||
uses: bitwarden/gh-actions/install-ast@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/install-ast@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
|
||||
- name: Set up environmentF
|
||||
run: choco install checksum --no-progress
|
||||
@ -302,7 +302,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "code-signing-vault-url,
|
||||
@ -1190,13 +1190,13 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "crowdin-api-token"
|
||||
|
||||
- name: Upload Sources
|
||||
uses: crowdin/github-action@3cabba4ddfd0579a1236b3fb68405236dc489ccc # v1.8.0
|
||||
uses: crowdin/github-action@102b5aa21783a64027193ef802a616140a1ca102 # v1.8.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
|
||||
@ -1269,7 +1269,7 @@ jobs:
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
if: failure()
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "devops-alerts-slack-webhook-url"
|
||||
|
12
.github/workflows/build-web.yml
vendored
12
.github/workflows/build-web.yml
vendored
@ -84,6 +84,8 @@ jobs:
|
||||
npm_command: "build:bit:poc"
|
||||
- name: "ee"
|
||||
npm_command: "build:bit:ee"
|
||||
- name: "eudevtest"
|
||||
npm_command: "build:bit:eudevtest"
|
||||
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
@ -235,7 +237,7 @@ jobs:
|
||||
|
||||
- name: Retrieve github PAT secrets
|
||||
id: retrieve-secret-pat
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "github-pat-bitwarden-devops-bot-repo-scope"
|
||||
@ -243,7 +245,7 @@ jobs:
|
||||
- name: Setup DCT
|
||||
if: ${{ env.is_publish_branch == 'true' }}
|
||||
id: setup-dct
|
||||
uses: bitwarden/gh-actions/setup-docker-trust@82bfda66185116020992660f6c73aa53277d081d
|
||||
uses: bitwarden/gh-actions/setup-docker-trust@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
azure-creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||
azure-keyvault-name: "bitwarden-ci"
|
||||
@ -291,13 +293,13 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "crowdin-api-token"
|
||||
|
||||
- name: Upload Sources
|
||||
uses: crowdin/github-action@3cabba4ddfd0579a1236b3fb68405236dc489ccc # v1.8.0
|
||||
uses: crowdin/github-action@102b5aa21783a64027193ef802a616140a1ca102 # v1.8.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
|
||||
@ -352,7 +354,7 @@ jobs:
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
if: failure()
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "devops-alerts-slack-webhook-url"
|
||||
|
7
.github/workflows/chromatic.yml
vendored
7
.github/workflows/chromatic.yml
vendored
@ -31,12 +31,17 @@ jobs:
|
||||
|
||||
- name: Install Node dependencies
|
||||
run: npm ci
|
||||
|
||||
# Manual build the storybook to resolve a chromatic/storybook bug related to TurboSnap
|
||||
- name: Build Storybook
|
||||
run: npm run build-storybook:ci
|
||||
|
||||
- name: Publish to Chromatic
|
||||
uses: chromaui/action@a89b674adf766dbde41ad9ea2b2b60b91188a0f0
|
||||
uses: chromaui/action@a2ed440e22f7d4e2c6b0710f7903aa2df70a1ecd
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
|
||||
storybookBuildDir: ./storybook-static
|
||||
exitOnceUploaded: true
|
||||
onlyChanged: true
|
||||
externals: "[\"libs/components/**/*.scss\", \"libs/components/tailwind.config*.js\"]"
|
||||
|
4
.github/workflows/crowdin-pull.yml
vendored
4
.github/workflows/crowdin-pull.yml
vendored
@ -32,13 +32,13 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase"
|
||||
|
||||
- name: Download translations
|
||||
uses: bitwarden/gh-actions/crowdin@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/crowdin@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }}
|
||||
|
3
.github/workflows/deploy-non-prod-web.yml
vendored
3
.github/workflows/deploy-non-prod-web.yml
vendored
@ -13,6 +13,7 @@ on:
|
||||
options:
|
||||
- QA
|
||||
- POC2
|
||||
- eudevtest
|
||||
|
||||
|
||||
jobs:
|
||||
@ -63,7 +64,7 @@ jobs:
|
||||
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
|
||||
|
||||
- name: Download latest cloud asset
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: apps/web
|
||||
|
6
.github/workflows/release-browser.yml
vendored
6
.github/workflows/release-browser.yml
vendored
@ -41,7 +41,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/release-version-check@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
release-type: ${{ github.event.inputs.release_type }}
|
||||
project-type: ts
|
||||
@ -103,7 +103,7 @@ jobs:
|
||||
|
||||
- name: Download latest Release build artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-browser.yml
|
||||
workflow_conclusion: success
|
||||
@ -116,7 +116,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download latest master build artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-browser.yml
|
||||
workflow_conclusion: success
|
||||
|
24
.github/workflows/release-cli.yml
vendored
24
.github/workflows/release-cli.yml
vendored
@ -57,7 +57,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/release-version-check@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
release-type: ${{ github.event.inputs.release_type }}
|
||||
project-type: ts
|
||||
@ -78,7 +78,7 @@ jobs:
|
||||
|
||||
- name: Download all Release artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli
|
||||
@ -87,7 +87,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download all artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli
|
||||
@ -150,7 +150,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "snapcraft-store-token"
|
||||
@ -162,7 +162,7 @@ jobs:
|
||||
|
||||
- name: Download artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli
|
||||
@ -172,7 +172,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli
|
||||
@ -204,7 +204,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "cli-choco-api-key"
|
||||
@ -220,7 +220,7 @@ jobs:
|
||||
|
||||
- name: Download artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli/dist
|
||||
@ -230,7 +230,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli/dist
|
||||
@ -263,14 +263,14 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "npm-api-key"
|
||||
|
||||
- name: Download artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli/build
|
||||
@ -280,7 +280,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-cli.yml
|
||||
path: apps/cli/build
|
||||
|
8
.github/workflows/release-desktop-beta.yml
vendored
8
.github/workflows/release-desktop-beta.yml
vendored
@ -47,7 +47,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/release-version-check@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
release-type: 'Initial Release'
|
||||
project-type: ts
|
||||
@ -231,7 +231,7 @@ jobs:
|
||||
node-gyp install $(node -v)
|
||||
|
||||
- name: Install AST
|
||||
uses: bitwarden/gh-actions/install-ast@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/install-ast@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
|
||||
- name: Set up environment
|
||||
run: choco install checksum --no-progress
|
||||
@ -249,7 +249,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "code-signing-vault-url,
|
||||
@ -932,7 +932,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "aws-electron-access-id,
|
||||
|
34
.github/workflows/release-desktop.yml
vendored
34
.github/workflows/release-desktop.yml
vendored
@ -67,7 +67,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/release-version-check@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
release-type: ${{ github.event.inputs.release_type }}
|
||||
project-type: ts
|
||||
@ -110,7 +110,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "aws-electron-access-id,
|
||||
@ -123,7 +123,7 @@ jobs:
|
||||
|
||||
- name: Download all artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -132,7 +132,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download all artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -185,14 +185,14 @@ jobs:
|
||||
--endpoint-url https://${CF_ACCOUNT}.r2.cloudflarestorage.com
|
||||
|
||||
- name: Get checksum files
|
||||
uses: bitwarden/gh-actions/get-checksum@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-checksum@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
packages_dir: "apps/desktop/artifacts"
|
||||
file_path: "apps/desktop/artifacts/sha256-checksums.txt"
|
||||
|
||||
- name: Create Release
|
||||
uses: ncipollo/release-action@a2e71bdd4e7dab70ca26a852f29600c98b33153e # v1.12.0
|
||||
if: ${{ steps.release-channel.outputs.channel == 'latest' && github.event.inputs.release_type != 'Dry Run' && github.event.inputs.github_release }}
|
||||
if: ${{ steps.release-channel.outputs.channel == 'latest' && github.event.inputs.release_type != 'Dry Run' && inputs.github_release }}
|
||||
env:
|
||||
PKG_VERSION: ${{ steps.version.outputs.version }}
|
||||
RELEASE_CHANNEL: ${{ steps.release-channel.outputs.channel }}
|
||||
@ -263,15 +263,15 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "snapcraft-store-token"
|
||||
|
||||
- name: Install Snap
|
||||
uses: samuelmeuli/action-snapcraft@d33c176a9b784876d966f80fb1b461808edc0641 # v2.1.1
|
||||
with:
|
||||
snapcraft_token: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }}
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }}
|
||||
|
||||
- name: Setup
|
||||
run: mkdir dist
|
||||
@ -279,7 +279,7 @@ jobs:
|
||||
|
||||
- name: Download Snap artifact
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -289,7 +289,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download Snap artifact
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -299,9 +299,11 @@ jobs:
|
||||
|
||||
- name: Deploy to Snap Store
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ steps.retrieve-secrets.outputs.snapcraft-store-token }}
|
||||
run: |
|
||||
snapcraft upload bitwarden_${{ env._PKG_VERSION }}_amd64.snap --release stable
|
||||
snapcraft logout
|
||||
/snap/bin/snapcraft upload bitwarden_${{ env._PKG_VERSION }}_amd64.snap --release stable
|
||||
/snap/bin/snapcraft logout
|
||||
working-directory: apps/desktop/dist
|
||||
|
||||
choco:
|
||||
@ -327,7 +329,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "cli-choco-api-key"
|
||||
@ -345,7 +347,7 @@ jobs:
|
||||
|
||||
- name: Download choco artifact
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
@ -355,7 +357,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download choco artifact
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-desktop.yml
|
||||
workflow_conclusion: success
|
||||
|
2
.github/workflows/release-qa-web.yml
vendored
2
.github/workflows/release-qa-web.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
||||
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
|
||||
|
||||
- name: Download latest cloud asset
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: apps/web
|
||||
|
14
.github/workflows/release-web.yml
vendored
14
.github/workflows/release-web.yml
vendored
@ -38,7 +38,7 @@ jobs:
|
||||
|
||||
- name: Check Release Version
|
||||
id: version
|
||||
uses: bitwarden/gh-actions/release-version-check@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/release-version-check@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
release-type: ${{ github.event.inputs.release_type }}
|
||||
project-type: ts
|
||||
@ -70,7 +70,7 @@ jobs:
|
||||
########## DockerHub ##########
|
||||
- name: Setup DCT
|
||||
id: setup-dct
|
||||
uses: bitwarden/gh-actions/setup-docker-trust@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/setup-docker-trust@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
azure-creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }}
|
||||
azure-keyvault-name: "bitwarden-ci"
|
||||
@ -156,7 +156,7 @@ jobs:
|
||||
|
||||
- name: Retrieve bot secrets
|
||||
id: retrieve-bot-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: bitwarden-ci
|
||||
secrets: "github-pat-bitwarden-devops-bot-repo-scope"
|
||||
@ -170,7 +170,7 @@ jobs:
|
||||
|
||||
- name: Download latest cloud asset
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: assets
|
||||
@ -180,7 +180,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download latest cloud asset
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: assets
|
||||
@ -253,7 +253,7 @@ jobs:
|
||||
|
||||
- name: Download latest build artifacts
|
||||
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: apps/web/artifacts
|
||||
@ -264,7 +264,7 @@ jobs:
|
||||
|
||||
- name: Dry Run - Download latest build artifacts
|
||||
if: ${{ github.event.inputs.release_type == 'Dry Run' }}
|
||||
uses: bitwarden/gh-actions/download-artifacts@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/download-artifacts@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
workflow: build-web.yml
|
||||
path: apps/web/artifacts
|
||||
|
2
.github/workflows/staged-rollout-desktop.yml
vendored
2
.github/workflows/staged-rollout-desktop.yml
vendored
@ -26,7 +26,7 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "aws-electron-access-id,
|
||||
|
8
.github/workflows/version-bump.yml
vendored
8
.github/workflows/version-bump.yml
vendored
@ -49,13 +49,13 @@ jobs:
|
||||
|
||||
- name: Retrieve secrets
|
||||
id: retrieve-secrets
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/get-keyvault-secrets@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
keyvault: "bitwarden-ci"
|
||||
secrets: "github-gpg-private-key, github-gpg-private-key-passphrase"
|
||||
|
||||
- name: Import GPG key
|
||||
uses: crazy-max/ghaction-import-gpg@c8bb57c57e8df1be8c73ff3d59deab1dbc00e0d1 # v5.3.0
|
||||
uses: crazy-max/ghaction-import-gpg@72b6676b71ab476b77e676928516f6982eef7a41 # v5.3.0
|
||||
with:
|
||||
gpg_private_key: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key }}
|
||||
passphrase: ${{ steps.retrieve-secrets.outputs.github-gpg-private-key-passphrase }}
|
||||
@ -86,14 +86,14 @@ jobs:
|
||||
|
||||
- name: Bump Browser Version - Manifest
|
||||
if: ${{ github.event.inputs.client == 'Browser' || github.event.inputs.client == 'All' }}
|
||||
uses: bitwarden/gh-actions/version-bump@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/version-bump@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
version: ${{ github.event.inputs.version_number }}
|
||||
file_path: "apps/browser/src/manifest.json"
|
||||
|
||||
- name: Bump Browser Version - Manifest v3
|
||||
if: ${{ github.event.inputs.client == 'Browser' || github.event.inputs.client == 'All' }}
|
||||
uses: bitwarden/gh-actions/version-bump@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/version-bump@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
with:
|
||||
version: ${{ github.event.inputs.version_number }}
|
||||
file_path: "apps/browser/src/manifest.v3.json"
|
||||
|
2
.github/workflows/workflow-linter.yml
vendored
2
.github/workflows/workflow-linter.yml
vendored
@ -8,4 +8,4 @@ on:
|
||||
|
||||
jobs:
|
||||
call-workflow:
|
||||
uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@34ecb67b2a357795dc893549df0795e7383ff50f
|
||||
uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@72594be690a4e7bfa87b1402b2aedc75acdbff12
|
||||
|
@ -1,33 +0,0 @@
|
||||
const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin");
|
||||
|
||||
module.exports = {
|
||||
stories: [
|
||||
"../libs/components/src/**/*.stories.mdx",
|
||||
"../libs/components/src/**/*.stories.@(js|jsx|ts|tsx)",
|
||||
"../apps/web/src/**/*.stories.mdx",
|
||||
"../apps/web/src/**/*.stories.@(js|jsx|ts|tsx)",
|
||||
"../bitwarden_license/bit-web/src/**/*.stories.mdx",
|
||||
"../bitwarden_license/bit-web/src/**/*.stories.@(js|jsx|ts|tsx)",
|
||||
],
|
||||
addons: [
|
||||
"@storybook/addon-links",
|
||||
"@storybook/addon-essentials",
|
||||
"@storybook/addon-a11y",
|
||||
"storybook-addon-designs",
|
||||
],
|
||||
framework: "@storybook/angular",
|
||||
core: {
|
||||
builder: "webpack5",
|
||||
disableTelemetry: true,
|
||||
},
|
||||
env: (config) => ({
|
||||
...config,
|
||||
FLAGS: JSON.stringify({
|
||||
secretsManager: true,
|
||||
}),
|
||||
}),
|
||||
webpackFinal: async (config, { configType }) => {
|
||||
config.resolve.plugins = [new TsconfigPathsPlugin()];
|
||||
return config;
|
||||
},
|
||||
};
|
53
.storybook/main.ts
Normal file
53
.storybook/main.ts
Normal file
@ -0,0 +1,53 @@
|
||||
import { StorybookConfig } from "@storybook/angular";
|
||||
import TsconfigPathsPlugin from "tsconfig-paths-webpack-plugin";
|
||||
import remarkGfm from "remark-gfm";
|
||||
|
||||
const config: StorybookConfig = {
|
||||
stories: [
|
||||
"../libs/components/src/**/*.mdx",
|
||||
"../libs/components/src/**/*.stories.@(js|jsx|ts|tsx)",
|
||||
"../apps/web/src/**/*.mdx",
|
||||
"../apps/web/src/**/*.stories.@(js|jsx|ts|tsx)",
|
||||
"../bitwarden_license/bit-web/src/**/*.mdx",
|
||||
"../bitwarden_license/bit-web/src/**/*.stories.@(js|jsx|ts|tsx)",
|
||||
],
|
||||
addons: [
|
||||
"@storybook/addon-links",
|
||||
"@storybook/addon-essentials",
|
||||
"@storybook/addon-a11y",
|
||||
{
|
||||
name: "@storybook/addon-docs",
|
||||
options: {
|
||||
mdxPluginOptions: {
|
||||
mdxCompileOptions: {
|
||||
remarkPlugins: [remarkGfm],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
framework: {
|
||||
name: "@storybook/angular",
|
||||
options: {},
|
||||
},
|
||||
core: {
|
||||
disableTelemetry: true,
|
||||
},
|
||||
env: (config) => ({
|
||||
...config,
|
||||
FLAGS: JSON.stringify({
|
||||
secretsManager: true,
|
||||
}),
|
||||
}),
|
||||
webpackFinal: async (config, { configType }) => {
|
||||
if (config.resolve) {
|
||||
config.resolve.plugins = [new TsconfigPathsPlugin()] as any;
|
||||
}
|
||||
return config;
|
||||
},
|
||||
docs: {
|
||||
autodocs: true,
|
||||
},
|
||||
};
|
||||
|
||||
export default config;
|
@ -1,38 +0,0 @@
|
||||
import { setCompodocJson } from "@storybook/addon-docs/angular";
|
||||
import { componentWrapperDecorator, addDecorator } from "@storybook/angular";
|
||||
|
||||
import docJson from "../documentation.json";
|
||||
setCompodocJson(docJson);
|
||||
|
||||
export const parameters = {
|
||||
actions: { argTypesRegex: "^on[A-Z].*" },
|
||||
controls: {
|
||||
matchers: {
|
||||
color: /(background|color)$/i,
|
||||
date: /Date$/,
|
||||
},
|
||||
},
|
||||
options: {
|
||||
storySort: {
|
||||
order: ["Documentation", ["Introduction", "Colors", "Icons"], "Component Library"],
|
||||
},
|
||||
},
|
||||
docs: { inlineStories: true },
|
||||
};
|
||||
|
||||
// ng-template is used to scope any template reference variables and isolate the previews
|
||||
const decorator = componentWrapperDecorator(
|
||||
(story) => `
|
||||
<ng-template #lightPreview>
|
||||
<div class="theme_light tw-px-5 tw-py-10 tw-border-2 tw-border-solid tw-border-secondary-300 tw-bg-[#ffffff]">${story}</div>
|
||||
</ng-template>
|
||||
<ng-template #darkPreview>
|
||||
<div class="theme_dark tw-mt-5 tw-px-5 tw-py-10 tw-bg-[#1f242e]">${story}</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-container *ngTemplateOutlet="lightPreview"></ng-container>
|
||||
<ng-container *ngTemplateOutlet="darkPreview"></ng-container>
|
||||
`
|
||||
);
|
||||
|
||||
addDecorator(decorator);
|
111
.storybook/preview.tsx
Normal file
111
.storybook/preview.tsx
Normal file
@ -0,0 +1,111 @@
|
||||
import { setCompodocJson } from "@storybook/addon-docs/angular";
|
||||
import { componentWrapperDecorator } from "@storybook/angular";
|
||||
import type { Preview } from "@storybook/angular";
|
||||
|
||||
import docJson from "../documentation.json";
|
||||
setCompodocJson(docJson);
|
||||
|
||||
const decorator = componentWrapperDecorator(
|
||||
(story) => {
|
||||
return `
|
||||
<ng-template #lightPreview>
|
||||
<div
|
||||
class="theme_light tw-border-2 tw-border-solid tw-border-secondary-300 tw-bg-[#ffffff] tw-px-5 tw-py-10 tw-mb-5"
|
||||
*ngIf="theme == 'both' || theme == 'light'"
|
||||
>
|
||||
${story}
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template #darkPreview>
|
||||
<div
|
||||
class="theme_dark tw-border-2 tw-border-solid tw-bg-[#1f242e] tw-px-5 tw-py-10"
|
||||
*ngIf="theme == 'both' || theme == 'dark'"
|
||||
>
|
||||
${story}
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template #nordPreview>
|
||||
<div
|
||||
class="theme_nord tw-border-2 tw-border-solid tw-bg-[#434C5E] tw-px-5 tw-py-10"
|
||||
*ngIf="theme == 'nord'">
|
||||
${story}
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template #solarizedPreview>
|
||||
<div
|
||||
class="theme_solarized tw-border-2 tw-border-solid tw-bg-[#002b36] tw-px-5 tw-py-10"
|
||||
*ngIf="theme == 'solarized'"
|
||||
>
|
||||
${story}
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
<ng-container *ngTemplateOutlet="lightPreview"></ng-container>
|
||||
<ng-container *ngTemplateOutlet="darkPreview"></ng-container>
|
||||
<ng-container *ngTemplateOutlet="nordPreview"></ng-container>
|
||||
<ng-container *ngTemplateOutlet="solarizedPreview"></ng-container>
|
||||
`;
|
||||
},
|
||||
({ globals }) => {
|
||||
return { theme: `${globals["theme"]}` };
|
||||
}
|
||||
);
|
||||
|
||||
const preview: Preview = {
|
||||
decorators: [decorator],
|
||||
globalTypes: {
|
||||
theme: {
|
||||
description: "Global theme for components",
|
||||
defaultValue: "both",
|
||||
toolbar: {
|
||||
title: "Theme",
|
||||
icon: "circlehollow",
|
||||
items: [
|
||||
{
|
||||
title: "Light & Dark",
|
||||
value: "both",
|
||||
icon: "sidebyside",
|
||||
},
|
||||
{
|
||||
title: "Light",
|
||||
value: "light",
|
||||
icon: "sun",
|
||||
},
|
||||
{
|
||||
title: "Dark",
|
||||
value: "dark",
|
||||
icon: "moon",
|
||||
},
|
||||
{
|
||||
title: "Nord",
|
||||
value: "nord",
|
||||
left: "⛰",
|
||||
},
|
||||
{
|
||||
title: "Solarized",
|
||||
value: "solarized",
|
||||
left: "☯",
|
||||
},
|
||||
],
|
||||
dynamicTitle: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
parameters: {
|
||||
actions: { argTypesRegex: "^on[A-Z].*" },
|
||||
controls: {
|
||||
matchers: {
|
||||
color: /(background|color)$/i,
|
||||
date: /Date$/,
|
||||
},
|
||||
},
|
||||
options: {
|
||||
storySort: {
|
||||
order: ["Documentation", ["Introduction", "Colors", "Icons"], "Component Library"],
|
||||
},
|
||||
},
|
||||
docs: { source: { type: "dynamic", excludeDecorators: true } },
|
||||
},
|
||||
};
|
||||
|
||||
export default preview;
|
@ -7,6 +7,7 @@
|
||||
"exclude": ["../src/test.setup.ts", "../apps/src/**/*.spec.ts", "../libs/**/*.spec.ts"],
|
||||
"files": [
|
||||
"./typings.d.ts",
|
||||
"./preview.tsx",
|
||||
"../libs/components/src/main.ts",
|
||||
"../libs/components/src/polyfills.ts"
|
||||
]
|
||||
|
31
angular.json
31
angular.json
@ -135,20 +135,25 @@
|
||||
}
|
||||
},
|
||||
"defaultConfiguration": "development"
|
||||
}
|
||||
}
|
||||
},
|
||||
"storybook": {
|
||||
"projectType": "application",
|
||||
"root": "libs/components",
|
||||
"sourceRoot": "libs/components/src",
|
||||
"architect": {
|
||||
"build": {
|
||||
"builder": "@angular-devkit/build-angular:browser",
|
||||
},
|
||||
"storybook": {
|
||||
"builder": "@storybook/angular:start-storybook",
|
||||
"options": {
|
||||
"tsConfig": ".storybook/tsconfig.json",
|
||||
"styles": ["libs/components/src/styles.scss", "libs/components/src/styles.css"],
|
||||
"scripts": []
|
||||
"configDir": ".storybook",
|
||||
"browserTarget": "components:build",
|
||||
"compodoc": true,
|
||||
"compodocArgs": ["-p", "./tsconfig.json", "-e", "json", "-d", "."],
|
||||
"port": 6006
|
||||
}
|
||||
},
|
||||
"build-storybook": {
|
||||
"builder": "@storybook/angular:build-storybook",
|
||||
"options": {
|
||||
"configDir": ".storybook",
|
||||
"browserTarget": "components:build",
|
||||
"compodoc": true,
|
||||
"compodocArgs": ["-e", "json", "-d", "."],
|
||||
"outputDir": "storybook-static"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,9 @@ const { pathsToModuleNameMapper } = require("ts-jest");
|
||||
|
||||
const { compilerOptions } = require("./tsconfig");
|
||||
|
||||
const sharedConfig = require("../../libs/shared/jest.config.base");
|
||||
const sharedConfig = require("../../libs/shared/jest.config.angular");
|
||||
|
||||
/** @type {import('jest').Config} */
|
||||
module.exports = {
|
||||
...sharedConfig,
|
||||
preset: "jest-preset-angular",
|
||||
|
@ -1,11 +1,12 @@
|
||||
{
|
||||
"name": "@bitwarden/browser",
|
||||
"version": "2023.4.0",
|
||||
"version": "2023.5.0",
|
||||
"scripts": {
|
||||
"build": "webpack",
|
||||
"build:mv3": "cross-env MANIFEST_VERSION=3 webpack",
|
||||
"build:watch": "webpack --watch",
|
||||
"build:watch:mv3": "cross-env MANIFEST_VERSION=3 webpack --watch",
|
||||
"build:watch:autofill": "cross-env AUTOFILL_VERSION=2 webpack --watch",
|
||||
"build:prod": "cross-env NODE_ENV=production webpack",
|
||||
"build:prod:watch": "cross-env NODE_ENV=production webpack --watch",
|
||||
"dist": "npm run build:prod && gulp dist",
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Bölgə"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Yeni bir pəncərədə açılır"
|
||||
},
|
||||
"eu": {
|
||||
"message": "AB",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "ABŞ",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Адкрываць у новым акне"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Регион"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Отваря се в нов прозорец"
|
||||
},
|
||||
"eu": {
|
||||
"message": "ЕС",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "САЩ",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Regió"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "S'obri en una finestra nova"
|
||||
},
|
||||
"eu": {
|
||||
"message": "UE",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "EUA",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -1977,10 +1977,10 @@
|
||||
"message": "Vypršel časový limit relace. Vraťte se zpět a zkuste se znovu přihlásit."
|
||||
},
|
||||
"exportingPersonalVaultTitle": {
|
||||
"message": "Exportování individuálního trezoru"
|
||||
"message": "Exportování osobního trezoru"
|
||||
},
|
||||
"exportingPersonalVaultDescription": {
|
||||
"message": "Budou exportovány pouze položky trezoru spojené s účtem $EMAIL$. Nebudou zahrnuty položky trezoru v organizaci.",
|
||||
"message": "Budou exportovány jen osobní položky trezoru spojené s účtem $EMAIL$. Nebudou zahrnuty položky trezoru v organizaci.",
|
||||
"placeholders": {
|
||||
"email": {
|
||||
"content": "$1",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Otevře se v novém okně"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Åbnes i et nyt vindue"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "USA",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Wird in einem neuen Fenster geöffnet"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -1462,13 +1462,13 @@
|
||||
"message": "Αυτόματη συμπλήρωση αντικειμένου"
|
||||
},
|
||||
"insecurePageWarning": {
|
||||
"message": "Warning: This is an unsecured HTTP page, and any information you submit can potentially be seen and changed by others. This Login was originally saved on a secure (HTTPS) page."
|
||||
"message": "Προειδοποίηση: Αυτή είναι μια μη ασφαλή σελίδα HTTP και οποιαδήποτε πληροφορία υποβάλλετε μπορεί να γίνει ορατή και επεμβάσιμη από άλλους. Αυτή η σύνδεση αποθηκεύτηκε αρχικά σε μια ασφαλή (HTTPS) σελίδα."
|
||||
},
|
||||
"insecurePageWarningFillPrompt": {
|
||||
"message": "Do you still wish to fill this login?"
|
||||
},
|
||||
"autofillIframeWarning": {
|
||||
"message": "The form is hosted by a different domain than the URI of your saved login. Choose OK to auto-fill anyway, or Cancel to stop."
|
||||
"message": "Η φόρμα φιλοξενείται από διαφορετικό τομέα (domain) από το λινκ (uri) της αποθηκευμένης σύνδεσης σας (login). Επιλέξτε OK για αυτόματη συμπλήρωση, ή Ακύρωση για να σταματήσετε."
|
||||
},
|
||||
"autofillIframeWarningTip": {
|
||||
"message": "To prevent this warning in the future, save this URI, $HOSTNAME$, to your Bitwarden login item for this site.",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Ανοίγει σε νέο παράθυρο"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2233,7 +2233,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Región"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Abre en una nueva ventana"
|
||||
},
|
||||
"eu": {
|
||||
"message": "Unión Europea",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "EE.UU.",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Piirkond"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Avaneb uues aknas"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EL",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "USA",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -1462,16 +1462,16 @@
|
||||
"message": "مورد خودکار پر شد"
|
||||
},
|
||||
"insecurePageWarning": {
|
||||
"message": "Warning: This is an unsecured HTTP page, and any information you submit can potentially be seen and changed by others. This Login was originally saved on a secure (HTTPS) page."
|
||||
"message": "هشدار: این یک صفحه HTTP ناامن است و هر اطلاعاتی که ارسال میکنید میتواند توسط دیگران دیده شود و تغییر کند. این ورود در ابتدا در یک صفحه امن (HTTPS) ذخیره شد."
|
||||
},
|
||||
"insecurePageWarningFillPrompt": {
|
||||
"message": "Do you still wish to fill this login?"
|
||||
"message": "آیا هنوز میخواهید این ورود را پر کنید؟"
|
||||
},
|
||||
"autofillIframeWarning": {
|
||||
"message": "The form is hosted by a different domain than the URI of your saved login. Choose OK to auto-fill anyway, or Cancel to stop."
|
||||
"message": "فرم توسط دامنه ای متفاوت از نشانی اینترنتی ورود به سیستم ذخیره شده شما میزبانی میشود. به هر حال برای پر کردن خودکار، تأیید را انتخاب کنید یا برای توقف، لغو را انتخاب کنید."
|
||||
},
|
||||
"autofillIframeWarningTip": {
|
||||
"message": "To prevent this warning in the future, save this URI, $HOSTNAME$, to your Bitwarden login item for this site.",
|
||||
"message": "برای جلوگیری از این هشدار در آینده، این نشانی اینترنتی، $HOSTNAME$، را در مورد ورود Bitwarden خود برای این سایت ذخیره کنید.",
|
||||
"placeholders": {
|
||||
"hostname": {
|
||||
"content": "$1",
|
||||
@ -1483,13 +1483,13 @@
|
||||
"message": "تنظیم کلمه عبور اصلی"
|
||||
},
|
||||
"currentMasterPass": {
|
||||
"message": "Current master password"
|
||||
"message": "کلمه عبور اصلی فعلی"
|
||||
},
|
||||
"newMasterPass": {
|
||||
"message": "New master password"
|
||||
"message": "کلمه عبور اصلی جدید"
|
||||
},
|
||||
"confirmNewMasterPass": {
|
||||
"message": "Confirm new master password"
|
||||
"message": "تأیید کلمه عبور اصلی جدید"
|
||||
},
|
||||
"masterPasswordPolicyInEffect": {
|
||||
"message": "یک یا چند سیاست سازمانی برای تأمین شرایط زیر به کلمه عبور اصلی شما احتیاج دارد:"
|
||||
@ -1872,7 +1872,7 @@
|
||||
"message": "کلمه عبور اصلی شما اخیراً توسط سرپرست سازمانتان تغییر کرده است. برای دسترسی به گاوصندوق، باید همین حالا کلمه عبور اصلی خود را بهروز کنید. در صورت ادامه، شما از نشست فعلی خود خارج میشوید و باید دوباره وارد سیستم شوید. نشست فعال در دستگاه های دیگر ممکن است تا یک ساعت همچنان فعال باقی بمانند."
|
||||
},
|
||||
"updateWeakMasterPasswordWarning": {
|
||||
"message": "Your master password does not meet one or more of your organization policies. In order to access the vault, you must update your master password now. Proceeding will log you out of your current session, requiring you to log back in. Active sessions on other devices may continue to remain active for up to one hour."
|
||||
"message": "کلمه عبور اصلی شما با یک یا چند سیاست سازمانتان مطابقت ندارد. برای دسترسی به گاوصندوق، باید همین حالا کلمه عبور اصلی خود را بهروز کنید. در صورت ادامه، شما از نشست فعلی خود خارج میشوید و باید دوباره وارد سیستم شوید. نشست فعال در دستگاه های دیگر ممکن است تا یک ساعت همچنان فعال باقی بمانند."
|
||||
},
|
||||
"resetPasswordPolicyAutoEnroll": {
|
||||
"message": "ثبت نام خودکار"
|
||||
@ -1906,7 +1906,7 @@
|
||||
}
|
||||
},
|
||||
"vaultTimeoutPolicyWithActionInEffect": {
|
||||
"message": "Your organization policies are affecting your vault timeout. Maximum allowed vault timeout is $HOURS$ hour(s) and $MINUTES$ minute(s). Your vault timeout action is set to $ACTION$.",
|
||||
"message": "سیاستهای سازمانتان بر مهلت زمانی گاوصندوق شما تأثیر میگذارد. حداکثر زمان مجاز گاوصندوق $HOURS$ ساعت و $MINUTES$ دقیقه است. عملگر مهلت زمانی گاوصندوق شما روی $ACTION$ تنظیم شده است.",
|
||||
"placeholders": {
|
||||
"hours": {
|
||||
"content": "$1",
|
||||
@ -1923,7 +1923,7 @@
|
||||
}
|
||||
},
|
||||
"vaultTimeoutActionPolicyInEffect": {
|
||||
"message": "Your organization policies have set your vault timeout action to $ACTION$.",
|
||||
"message": "سباستهای سازمان شما، عملگر زمانبندی گاوصندوق شما را روی $ACTION$ تنظیم کرده است.",
|
||||
"placeholders": {
|
||||
"action": {
|
||||
"content": "$1",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
"message": "در پنجره جدید باز میشود"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -1462,16 +1462,16 @@
|
||||
"message": "Kohde täytettiin automaattisesti"
|
||||
},
|
||||
"insecurePageWarning": {
|
||||
"message": "Warning: This is an unsecured HTTP page, and any information you submit can potentially be seen and changed by others. This Login was originally saved on a secure (HTTPS) page."
|
||||
"message": "Varoitus: Tämä on suojaamaton HTTP-sivu, eli ulkopuolisten tahojen voi olla mahdollista tarkastella ja muuttaa lähettämiäsi tietoja. Tämä kirjautumistieto on alun perin tallennettu suojatulle HTTPS-sivulle."
|
||||
},
|
||||
"insecurePageWarningFillPrompt": {
|
||||
"message": "Do you still wish to fill this login?"
|
||||
"message": "Haluatko silti täyttää kirjautumistiedot?"
|
||||
},
|
||||
"autofillIframeWarning": {
|
||||
"message": "The form is hosted by a different domain than the URI of your saved login. Choose OK to auto-fill anyway, or Cancel to stop."
|
||||
"message": "Lomakkeen URI-osoite poikkeaa kirjautumistietoon tallennetusta osoitteesta. Täytä se siitä huolimatta valitsemalla OK tai peru täyttö valitsemalla Peruuta."
|
||||
},
|
||||
"autofillIframeWarningTip": {
|
||||
"message": "To prevent this warning in the future, save this URI, $HOSTNAME$, to your Bitwarden login item for this site.",
|
||||
"message": "Välttyäksesi varoitukselta jatkossa, tallenna URI $HOSTNAME$ sivustolle tallennettuun Bitwarden-kirjautumistietoosi.",
|
||||
"placeholders": {
|
||||
"hostname": {
|
||||
"content": "$1",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Alue"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Avautuu uudessa ikkunassa"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Région"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "S'ouvre dans une nouvelle fenêtre"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Régió"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Megnyitás új ablakban"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Regione"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Si apre in una nuova finestra"
|
||||
},
|
||||
"eu": {
|
||||
"message": "UE",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "リージョン"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "新しいウィンドウで開く"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "米国",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Apgabals"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Atver jaunā logā"
|
||||
},
|
||||
"eu": {
|
||||
"message": "ES",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "ASV",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Regio"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
"message": "Opent in een nieuw venster"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -1471,7 +1471,7 @@
|
||||
"message": "Formularz jest hostowany przez inną domenę niż zapisany adres URI dla tego loginu. Wybierz OK, aby i tak automatycznie wypełnić lub anuluj aby zatrzymać."
|
||||
},
|
||||
"autofillIframeWarningTip": {
|
||||
"message": "To prevent this warning in the future, save this URI, $HOSTNAME$, to your Bitwarden login item for this site.",
|
||||
"message": "Aby zapobiec temu ostrzeżeniu w przyszłości, zapisz ten URI, $HOSTNAME$, dla tej witryny.",
|
||||
"placeholders": {
|
||||
"hostname": {
|
||||
"content": "$1",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Otwiera w nowym oknie"
|
||||
},
|
||||
"eu": {
|
||||
"message": "UE",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Регион"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Откроется в новом окне"
|
||||
},
|
||||
"eu": {
|
||||
"message": "Европа",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "США",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Región"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Otvárať v novom okne"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EÚ",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "USA",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@
|
||||
"description": "Extension description"
|
||||
},
|
||||
"loginOrCreateNewAccount": {
|
||||
"message": "Prijavite se ali ustvarite nov račun za dostop do vašega varnega trezorja."
|
||||
"message": "Prijavite se ali ustvarite nov račun za dostop do svojega varnega trezorja."
|
||||
},
|
||||
"createAccount": {
|
||||
"message": "Ustvari račun"
|
||||
@ -38,10 +38,10 @@
|
||||
"message": "Glavno geslo"
|
||||
},
|
||||
"masterPassDesc": {
|
||||
"message": "Glavno geslo je geslo, ki ga uporabljate za dostop do vašega trezorja. Zelo pomembno je, da ne pozabite vaše glavno geslo. Gesla ni mogoče obnoviti v primeru, če ga pozabite."
|
||||
"message": "Glavno geslo je geslo, ki ga uporabljate za dostop do svojega trezorja. Zelo pomembno je, da ga ne pozabite. Če pozabite glavno geslo, ga ne bo mogoče obnoviti."
|
||||
},
|
||||
"masterPassHintDesc": {
|
||||
"message": "Namig glavnega gesla vam lahko pomaga, da se spomnite vašega gesla, če ga pozabite."
|
||||
"message": "Če pozabite glavno geslo, boste prejeli ta namig, da bi se gesla laže spomnili."
|
||||
},
|
||||
"reTypeMasterPass": {
|
||||
"message": "Ponovno vnesite glavno geslo"
|
||||
@ -519,10 +519,10 @@
|
||||
"message": "Mapa izbrisana"
|
||||
},
|
||||
"gettingStartedTutorial": {
|
||||
"message": "Getting started tutorial"
|
||||
"message": "Vodič za začetnike"
|
||||
},
|
||||
"gettingStartedTutorialVideo": {
|
||||
"message": "Watch our getting started tutorial to learn how to get the most out of the browser extension."
|
||||
"message": "Naš vodič za začtenike vam pokaže, kako najbolje izkoristiti Bitwardnovo razširitev za brskalnik."
|
||||
},
|
||||
"syncingComplete": {
|
||||
"message": "Sinhronizacija končana"
|
||||
@ -634,7 +634,7 @@
|
||||
"message": "Prikaži možnosti kontekstnega menuja"
|
||||
},
|
||||
"contextMenuItemDesc": {
|
||||
"message": "Use a secondary click to access password generation and matching logins for the website. "
|
||||
"message": "Z desnim klikom se vam prikažejo možnosti generiranja gesel in shranjenih prijav za spletno stran, na kateri ste."
|
||||
},
|
||||
"defaultUriMatchDetection": {
|
||||
"message": "Privzet način preverjanja ujemanja URI-ja",
|
||||
@ -678,13 +678,13 @@
|
||||
"message": "Ta datoteka z izvoženimi podatki vsebuje podatke iz vašega trezorja v nešifrirani obliki. Ne shranjujte in ne pošiljajte je po nezavarovanih kanalih, kot je elektronska pošta. Po uporabi jo takoj izbrišite."
|
||||
},
|
||||
"encExportKeyWarningDesc": {
|
||||
"message": "Ta izvoz šifrira vaše podatke z uporabo ključa za šifriranje. Če boste kdaj zamenjali ključ za šifriranje, je potrebno, da ponovno naredite izvoz, ker ne boste mogli dešifrirati to izvoženo datoteko."
|
||||
"message": "Ta izvoz šifrira vaše podatke z uporabo ključa za šifriranje. Če boste kdaj zamenjali ključ za šifriranje, boste morali podatke izvoziti ponovno, saj pričujočega izvoza ne boste mogli več dešifrirati."
|
||||
},
|
||||
"encExportAccountWarningDesc": {
|
||||
"message": "Ključ za šifriranje je edinstven za vsak Bitwarden račun, zato ni mogoče da se uvozi šifrirana datoteka v drugi račun."
|
||||
},
|
||||
"exportMasterPassword": {
|
||||
"message": "Vnesite vaše glavno geslo za izvoz podatkov iz vašega trezorja."
|
||||
"message": "Za izvoz podatkov iz trezorja vnesite svoje glavno geslo."
|
||||
},
|
||||
"shared": {
|
||||
"message": "V skupni rabi"
|
||||
@ -763,7 +763,7 @@
|
||||
"message": "Funkcija ni na voljo."
|
||||
},
|
||||
"updateKey": {
|
||||
"message": "Ne morete koristiti to funkcijo dokler ne posodobite vaš ključ za šifriranje."
|
||||
"message": "To funkcijo lahko uporabite šele, ko posodobite svoj šifrirni ključ."
|
||||
},
|
||||
"premiumMembership": {
|
||||
"message": "Premium članstvo"
|
||||
@ -832,7 +832,7 @@
|
||||
"message": "Če za prijavo uporabljate avtentikacijski ključ, se verifikacijska koda TOTP samodejno kopira v odložišče, kadar uporabite samodejno izpolnjevanje."
|
||||
},
|
||||
"enableAutoBiometricsPrompt": {
|
||||
"message": "Ask for biometrics on launch"
|
||||
"message": "Ob zagonu zahtevaj biometrično preverjanje"
|
||||
},
|
||||
"premiumRequired": {
|
||||
"message": "Potrebno je premium članstvo"
|
||||
@ -841,7 +841,7 @@
|
||||
"message": "Premium članstvo je potrebno za uporabo te funkcije."
|
||||
},
|
||||
"enterVerificationCodeApp": {
|
||||
"message": "Vnesite 6-mestno verifikacijsko kodo iz vaše verifikacijske aplikacije."
|
||||
"message": "Vnesite 6-mestno verifikacijsko kodo iz svoje aplikacije za avtentikacijo."
|
||||
},
|
||||
"enterVerificationCodeEmail": {
|
||||
"message": "Vnesite 6-mestno verifikacijsko kodo, ki vam je bila poslana na $EMAIL$.",
|
||||
@ -853,7 +853,7 @@
|
||||
}
|
||||
},
|
||||
"verificationCodeEmailSent": {
|
||||
"message": "Verification email sent to $EMAIL$.",
|
||||
"message": "Potrditveno sporočilo poslano na $EMAIL$.",
|
||||
"placeholders": {
|
||||
"email": {
|
||||
"content": "$1",
|
||||
@ -892,13 +892,13 @@
|
||||
"message": "Ta račun ima omogočemo prijavo v dveh korakih, ampak, nobena izmed konfiguriranih prijav v dveh korakih ni podprta v teb spletnem brskalniku."
|
||||
},
|
||||
"noTwoStepProviders2": {
|
||||
"message": "Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported across web browsers (such as an authenticator app)."
|
||||
"message": "Uporabite enega izmed podprtih spletnih brskalnikov (npr. Chrome) in/ali dodajte ponudnika, ki je bolje podprt na različnih brskalnikih (npr. aplikacija za avtentikacijo)."
|
||||
},
|
||||
"twoStepOptions": {
|
||||
"message": "Možnosti dvostopenjske prijave"
|
||||
},
|
||||
"recoveryCodeDesc": {
|
||||
"message": "Ste izgubili dostop do vseh vaših ponudnikov dvostopenjske prijave? Uporabite svojo kodo za obnovitev in tako onemogočite dvostopenjsko prijavo v svoj račun."
|
||||
"message": "Ste izgubili dostop do vseh ponudnikov dvostopenjske prijave? Uporabite svojo kodo za obnovitev in tako onemogočite dvostopenjsko prijavo v svoj račun."
|
||||
},
|
||||
"recoveryCodeTitle": {
|
||||
"message": "Koda za obnovitev"
|
||||
@ -907,14 +907,14 @@
|
||||
"message": "Aplikacija za avtentikacijo"
|
||||
},
|
||||
"authenticatorAppDesc": {
|
||||
"message": "Use an authenticator app (such as Authy or Google Authenticator) to generate time-based verification codes.",
|
||||
"message": "Uporabite aplikacijo za avtentikacijo (npr. Authy ali Google Authenticator), ki za vas ustvarja časovno spremenljive kode.",
|
||||
"description": "'Authy' and 'Google Authenticator' are product names and should not be translated."
|
||||
},
|
||||
"yubiKeyTitle": {
|
||||
"message": "YubiKey OTP Security Key"
|
||||
"message": "Varnostni ključ YubiKey za enkratna gesla"
|
||||
},
|
||||
"yubiKeyDesc": {
|
||||
"message": "Use a YubiKey to access your account. Works with YubiKey 4, 4 Nano, 4C, and NEO devices."
|
||||
"message": "Za dostop do svojega računa uporabite YubiKey. Podprti so YubiKey 4, 4 Nano, 4C in naprave NEO."
|
||||
},
|
||||
"duoDesc": {
|
||||
"message": "Verify with Duo Security using the Duo Mobile app, SMS, phone call, or U2F security key.",
|
||||
@ -1030,7 +1030,7 @@
|
||||
"message": "Novo polje po meri"
|
||||
},
|
||||
"dragToSort": {
|
||||
"message": "Drag to sort"
|
||||
"message": "Sortirajte z vlečenjem"
|
||||
},
|
||||
"cfTypeText": {
|
||||
"message": "Besedilo"
|
||||
@ -1050,7 +1050,7 @@
|
||||
"description": "This describes a value that is 'linked' (tied) to another value."
|
||||
},
|
||||
"popup2faCloseMessage": {
|
||||
"message": "Če kliknete izven pojavnega okna, da preverite vašo epošto za vašo verifikacijsko kodo, bo to povročilo, da se je pojavno okno zapre. Želite odpreti to pojavno okno v novem oknu, tako, da se ne bo zaprlo?"
|
||||
"message": "Če kliknete izven tega pojavnega okna, da bi preverili pošto, se to pojavno okno zaprlo. Želite odpreti to pojavno okno v novem oknu, da se ne bo zaprlo?"
|
||||
},
|
||||
"popupU2fCloseMessage": {
|
||||
"message": "Ta spletni brskalnik ne more obdelati U2F zahteve v tem pojavnem oknu. Želite odpreti to pojavno okno v novem oknu, tako, da se lahko prijavite z U2F?"
|
||||
@ -1143,7 +1143,7 @@
|
||||
"message": "Dr."
|
||||
},
|
||||
"mx": {
|
||||
"message": "Mx"
|
||||
"message": "Gx"
|
||||
},
|
||||
"firstName": {
|
||||
"message": "Ime"
|
||||
@ -1531,13 +1531,13 @@
|
||||
}
|
||||
},
|
||||
"masterPasswordPolicyRequirementsNotMet": {
|
||||
"message": "Your new master password does not meet the policy requirements."
|
||||
"message": "Vaše novo glavno geslo ne ustreza zahtevam."
|
||||
},
|
||||
"acceptPolicies": {
|
||||
"message": "By checking this box you agree to the following:"
|
||||
"message": "Strinjam se z naslednjim:"
|
||||
},
|
||||
"acceptPoliciesRequired": {
|
||||
"message": "Terms of Service and Privacy Policy have not been acknowledged."
|
||||
"message": "Niste sprejeli Pogojev uporabe in Pravilnika o zasebnosti."
|
||||
},
|
||||
"termsOfService": {
|
||||
"message": "Pogoji uporabe"
|
||||
@ -1546,7 +1546,7 @@
|
||||
"message": "Pravilnik o zasebnosti"
|
||||
},
|
||||
"hintEqualsPassword": {
|
||||
"message": "Your password hint cannot be the same as your password."
|
||||
"message": "Namig za geslo ne sme biti enak geslu."
|
||||
},
|
||||
"ok": {
|
||||
"message": "V redu"
|
||||
@ -1600,13 +1600,13 @@
|
||||
"message": "Browser biometrics is not supported on this device."
|
||||
},
|
||||
"nativeMessaginPermissionErrorTitle": {
|
||||
"message": "Permission not provided"
|
||||
"message": "Dovoljenje manjka"
|
||||
},
|
||||
"nativeMessaginPermissionErrorDesc": {
|
||||
"message": "Without permission to communicate with the Bitwarden Desktop Application we cannot provide biometrics in the browser extension. Please try again."
|
||||
"message": "Brez dovoljenja za komunikacijo z Bitwardnovo namizno aplikacijo ni mogoče uporabljati bimetričnega preverjanja v razširitvi brskalnika. Prosimo, poskusite ponovno."
|
||||
},
|
||||
"nativeMessaginPermissionSidebarTitle": {
|
||||
"message": "Permission request error"
|
||||
"message": "Napaka pri zahtevku za dovoljenje"
|
||||
},
|
||||
"nativeMessaginPermissionSidebarDesc": {
|
||||
"message": "This action cannot be done in the sidebar, please retry the action in the popup or popout."
|
||||
@ -1672,13 +1672,13 @@
|
||||
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
||||
},
|
||||
"removePassword": {
|
||||
"message": "Remove Password"
|
||||
"message": "Odstrani geslo"
|
||||
},
|
||||
"delete": {
|
||||
"message": "Izbriši"
|
||||
},
|
||||
"removedPassword": {
|
||||
"message": "Password removed"
|
||||
"message": "Geslo odstranjeno"
|
||||
},
|
||||
"deletedSend": {
|
||||
"message": "Pošiljka izbrisana",
|
||||
@ -1692,7 +1692,7 @@
|
||||
"message": "Onemogočeno"
|
||||
},
|
||||
"removePasswordConfirmation": {
|
||||
"message": "Are you sure you want to remove the password?"
|
||||
"message": "Ste prepričani, da želite odstraniti geslo?"
|
||||
},
|
||||
"deleteSend": {
|
||||
"message": "Izbriši pošiljko",
|
||||
@ -1718,14 +1718,14 @@
|
||||
"message": "Datoteka, ki jo želite poslati"
|
||||
},
|
||||
"deletionDate": {
|
||||
"message": "Deletion date"
|
||||
"message": "Datum izbrisa"
|
||||
},
|
||||
"deletionDateDesc": {
|
||||
"message": "Pošiljka bo trajno izbrisana ob izbranem času.",
|
||||
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
||||
},
|
||||
"expirationDate": {
|
||||
"message": "Expiration date"
|
||||
"message": "Datum poteka"
|
||||
},
|
||||
"expirationDateDesc": {
|
||||
"message": "Če to nastavite, bo pošiljka potekla ob izbranem času.",
|
||||
@ -1747,7 +1747,7 @@
|
||||
"message": "Po meri"
|
||||
},
|
||||
"maximumAccessCount": {
|
||||
"message": "Maximum Access Count"
|
||||
"message": "Največje dovoljeno število dostopov"
|
||||
},
|
||||
"maximumAccessCountDesc": {
|
||||
"message": "Če to nastavite, uporabniki po določenem številu dostopov ne bodo mogli več dostopati do pošiljke.",
|
||||
@ -1777,14 +1777,14 @@
|
||||
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
||||
},
|
||||
"currentAccessCount": {
|
||||
"message": "Current access count"
|
||||
"message": "Trenutno število dstopov"
|
||||
},
|
||||
"createSend": {
|
||||
"message": "Nova pošiljka",
|
||||
"description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated."
|
||||
},
|
||||
"newPassword": {
|
||||
"message": "New password"
|
||||
"message": "Novo geslo"
|
||||
},
|
||||
"sendDisabled": {
|
||||
"message": "Pošiljka odstranjena",
|
||||
@ -1812,37 +1812,37 @@
|
||||
"message": "In order to choose a file using Safari, pop out to a new window by clicking this banner."
|
||||
},
|
||||
"sendFileCalloutHeader": {
|
||||
"message": "Before you start"
|
||||
"message": "Preden pričnete"
|
||||
},
|
||||
"sendFirefoxCustomDatePopoutMessage1": {
|
||||
"message": "To use a calendar style date picker",
|
||||
"message": "Za vnos datuma s pomočjo koledarčka",
|
||||
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**To use a calendar style date picker ** click here to pop out your window.'"
|
||||
},
|
||||
"sendFirefoxCustomDatePopoutMessage2": {
|
||||
"message": "click here",
|
||||
"message": "kliknite tukaj",
|
||||
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker **click here** to pop out your window.'"
|
||||
},
|
||||
"sendFirefoxCustomDatePopoutMessage3": {
|
||||
"message": "to pop out your window.",
|
||||
"message": "za prikaz v lastnem oknu.",
|
||||
"description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker click here **to pop out your window.**'"
|
||||
},
|
||||
"expirationDateIsInvalid": {
|
||||
"message": "The expiration date provided is not valid."
|
||||
"message": "Datum poteka ni veljaven."
|
||||
},
|
||||
"deletionDateIsInvalid": {
|
||||
"message": "The deletion date provided is not valid."
|
||||
"message": "Datum izbrisa ni veljaven."
|
||||
},
|
||||
"expirationDateAndTimeRequired": {
|
||||
"message": "An expiration date and time are required."
|
||||
"message": "Datum in čas poteka sta obvezna."
|
||||
},
|
||||
"deletionDateAndTimeRequired": {
|
||||
"message": "A deletion date and time are required."
|
||||
"message": "Datum in čas izbrisa sta obvezna."
|
||||
},
|
||||
"dateParsingError": {
|
||||
"message": "There was an error saving your deletion and expiration dates."
|
||||
"message": "Pri shranjevanju datumov poteka in izbrisa je prišlo do napake."
|
||||
},
|
||||
"hideEmail": {
|
||||
"message": "Hide my email address from recipients."
|
||||
"message": "Skrij moj e-naslov pred prejemniki."
|
||||
},
|
||||
"sendOptionsPolicyInEffect": {
|
||||
"message": "Nekatere nastavitve organizacije vplivajo na možnosti, ki jih imate v zvezi s pošiljkami."
|
||||
@ -1851,19 +1851,19 @@
|
||||
"message": "Ponovno zahtevaj glavno geslo"
|
||||
},
|
||||
"passwordConfirmation": {
|
||||
"message": "Master password confirmation"
|
||||
"message": "Potrditev glavnega gesla"
|
||||
},
|
||||
"passwordConfirmationDesc": {
|
||||
"message": "This action is protected. To continue, please re-enter your master password to verify your identity."
|
||||
"message": "To dejanje je zaščiteno. Za nadaljevanje vpišite svoje glavno geslo, da potrdite svojo istovetnost."
|
||||
},
|
||||
"emailVerificationRequired": {
|
||||
"message": "Email verification required"
|
||||
"message": "Potrebna je potrditev e-naslova"
|
||||
},
|
||||
"emailVerificationRequiredDesc": {
|
||||
"message": "You must verify your email to use this feature. You can verify your email in the web vault."
|
||||
"message": "Za uporabo te funkcionalnosti morate potrditi svoj e-naslov. To lahko storite v spletnem trezorju."
|
||||
},
|
||||
"updatedMasterPassword": {
|
||||
"message": "Updated master password"
|
||||
"message": "Posodobi glavno geslo"
|
||||
},
|
||||
"updateMasterPassword": {
|
||||
"message": "Spremeni glavno geslo"
|
||||
@ -2180,7 +2180,7 @@
|
||||
"message": "Kako uporabljati samodejno izpolnjevanje"
|
||||
},
|
||||
"autofillSelectInfoWithCommand": {
|
||||
"message": "Izberite element na tej strani ali pa uporabite bližnjico $COMMAND$",
|
||||
"message": "Izberite element na tej strani ali pa uporabite bližnjico $COMMAND$.",
|
||||
"placeholders": {
|
||||
"command": {
|
||||
"content": "$1",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Odpre se v novem oknu"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Регион"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Отвара се у новом прозору"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -1462,16 +1462,16 @@
|
||||
"message": "Fyllde i objektet automatiskt"
|
||||
},
|
||||
"insecurePageWarning": {
|
||||
"message": "Warning: This is an unsecured HTTP page, and any information you submit can potentially be seen and changed by others. This Login was originally saved on a secure (HTTPS) page."
|
||||
"message": "Varning: Detta är en icke säkrad HTTP-sida, och all information du skickar kan potentiellt ses och ändras av andra. Denna inloggning sparades ursprungligen på en säker (HTTPS) sida."
|
||||
},
|
||||
"insecurePageWarningFillPrompt": {
|
||||
"message": "Do you still wish to fill this login?"
|
||||
"message": "Vill du fortfarande fylla i denna inloggning?"
|
||||
},
|
||||
"autofillIframeWarning": {
|
||||
"message": "The form is hosted by a different domain than the URI of your saved login. Choose OK to auto-fill anyway, or Cancel to stop."
|
||||
},
|
||||
"autofillIframeWarningTip": {
|
||||
"message": "To prevent this warning in the future, save this URI, $HOSTNAME$, to your Bitwarden login item for this site.",
|
||||
"message": "För att förhindra denna varning i framtiden, spara denna URI, $HOSTNAME$, till ditt Bitwarden inloggningsobjekt för denna webbplats.",
|
||||
"placeholders": {
|
||||
"hostname": {
|
||||
"content": "$1",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Öppnas i ett nytt fönster"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -1462,16 +1462,16 @@
|
||||
"message": "Kayıt otomatik dolduruldu "
|
||||
},
|
||||
"insecurePageWarning": {
|
||||
"message": "Uyarı: Bu güvenli olmayan bir HTTP sayfasıdır ve gönderdiğiniz herhangi bir bilgi potansiyel olarak başkaları tarafından görülebilir ve değiştirilebilir. Bu Oturum Açma orijinal olarak güvenli (HTTPS) bir sayfaya kaydedilmiştir."
|
||||
"message": "Uyarı: Güvenli olmayan bir HTTP sayfasındasınız. Gönderdiğiniz bilgiler potansiyel olarak başkaları tarafından görülebilir ve değiştirilebilir. Bu hesabı güvenli (HTTPS) bir sayfa üzerinden kaydetmiştiniz."
|
||||
},
|
||||
"insecurePageWarningFillPrompt": {
|
||||
"message": "Hala bu girişi doldurmak istiyor musunuz?"
|
||||
"message": "Yine de bu hesabı doldurmak istiyor musunuz?"
|
||||
},
|
||||
"autofillIframeWarning": {
|
||||
"message": "Form, kayıtlı girişinizin URI'sinden farklı bir etki alanı tarafından barındırılıyor. Yine de otomatik doldurmak için Tamam'ı veya durdurmak için İptal'i seçin."
|
||||
"message": "Bu form, kayıtlı hesabınızın URI'sinden farklı bir alan adında yer alıyor. Yine de otomatik doldurmak isterseniz \"Tamam\"ı, durdurmak için \"İptal\"i seçin."
|
||||
},
|
||||
"autofillIframeWarningTip": {
|
||||
"message": "Gelecekte bu uyarıyı önlemek için $HOSTNAME$ URI'sini bu site için Bitwarden oturum açma öğenize kaydedin.",
|
||||
"message": "İleride bu uyarıyı görmek istemiyorsanız bu siteye ait Bitwarden hesap kaydınıza $HOSTNAME$ URI'sini ekleyin.",
|
||||
"placeholders": {
|
||||
"hostname": {
|
||||
"content": "$1",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Bölge"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Yeni pencerede açılır"
|
||||
},
|
||||
"eu": {
|
||||
"message": "AB",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "ABD",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -1462,16 +1462,16 @@
|
||||
"message": "Запис заповнено"
|
||||
},
|
||||
"insecurePageWarning": {
|
||||
"message": "Warning: This is an unsecured HTTP page, and any information you submit can potentially be seen and changed by others. This Login was originally saved on a secure (HTTPS) page."
|
||||
"message": "Попередження: це незахищена сторінка HTTP, тому будь-яка інформація, яку ви передаєте, потенційно може бути переглянута чи змінена сторонніми. Ці облікові дані було збережено на безпечній сторінці (HTTPS)."
|
||||
},
|
||||
"insecurePageWarningFillPrompt": {
|
||||
"message": "Do you still wish to fill this login?"
|
||||
"message": "Ви все ще бажаєте заповнити поля для входу?"
|
||||
},
|
||||
"autofillIframeWarning": {
|
||||
"message": "The form is hosted by a different domain than the URI of your saved login. Choose OK to auto-fill anyway, or Cancel to stop."
|
||||
"message": "Домен форми входу відрізняється від URL-адреси, за якою його було збережено. Оберіть OK, якщо ви все одно хочете її заповнити, або Скасувати для зупинки."
|
||||
},
|
||||
"autofillIframeWarningTip": {
|
||||
"message": "To prevent this warning in the future, save this URI, $HOSTNAME$, to your Bitwarden login item for this site.",
|
||||
"message": "Щоб надалі не бачити таке попередження, збережіть цей URI, $HOSTNAME$ у записі входу Bitwarden для цього сайту.",
|
||||
"placeholders": {
|
||||
"hostname": {
|
||||
"content": "$1",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Регіон"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
"message": "Відкривається у новому вікні"
|
||||
},
|
||||
"eu": {
|
||||
"message": "ЄС",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "США",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -1462,7 +1462,7 @@
|
||||
"message": "项目已自动填充 "
|
||||
},
|
||||
"insecurePageWarning": {
|
||||
"message": "警告:这是一个不安全的 HTTP 页面,您提交的任何信息都可能被其他人看到和更改。此登录最初保存在安全 (HTTPS) 页面上。"
|
||||
"message": "警告:这是一个不安全的 HTTP 页面,您提交的任何信息都可能被其他人看到和更改。此登录信息最初保存在安全 (HTTPS) 页面上。"
|
||||
},
|
||||
"insecurePageWarningFillPrompt": {
|
||||
"message": "您仍然想要填充此登录信息吗?"
|
||||
@ -1471,7 +1471,7 @@
|
||||
"message": "该表单由不同于您保存的登录的 URI 域名托管。选择「确定」以自动填充,或选择「取消」停止填充。"
|
||||
},
|
||||
"autofillIframeWarningTip": {
|
||||
"message": "要防止以后再次出现此警告,请将此站点的 URI $HOSTNAME$ 保存到您的 Bitwarden 登录项目中。",
|
||||
"message": "要防止以后出现此警告,请将此站点的 URI $HOSTNAME$ 保存到您的 Bitwarden 登录项目中。",
|
||||
"placeholders": {
|
||||
"hostname": {
|
||||
"content": "$1",
|
||||
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "区域"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "在新窗口中打开"
|
||||
},
|
||||
"eu": {
|
||||
"message": "欧盟",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "美国",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2221,7 +2221,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"region": {
|
||||
"message": "Region"
|
||||
},
|
||||
"opensInANewWindow": {
|
||||
"message": "Opens in a new window"
|
||||
},
|
||||
"eu": {
|
||||
"message": "EU",
|
||||
"description": "European Union"
|
||||
},
|
||||
"us": {
|
||||
"message": "US",
|
||||
"description": "United States"
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ import { Component, OnInit } from "@angular/core";
|
||||
import { Router } from "@angular/router";
|
||||
|
||||
import { EnvironmentComponent as BaseEnvironmentComponent } from "@bitwarden/angular/components/environment.component";
|
||||
import { ModalService } from "@bitwarden/angular/services/modal.service";
|
||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||
|
||||
@ -18,9 +19,10 @@ export class EnvironmentComponent extends BaseEnvironmentComponent implements On
|
||||
platformUtilsService: PlatformUtilsService,
|
||||
public environmentService: BrowserEnvironmentService,
|
||||
i18nService: I18nService,
|
||||
private router: Router
|
||||
private router: Router,
|
||||
modalService: ModalService
|
||||
) {
|
||||
super(platformUtilsService, environmentService, i18nService);
|
||||
super(platformUtilsService, environmentService, i18nService, modalService);
|
||||
this.showCustom = true;
|
||||
}
|
||||
|
||||
|
@ -9,9 +9,7 @@
|
||||
<label for="email">{{ "emailAddress" | i18n }}</label>
|
||||
<input id="email" type="email" formControlName="email" appInputVerbatim="false" />
|
||||
</div>
|
||||
<div class="box-footer no-margin" *ngIf="selfHostedDomain">
|
||||
{{ "loggingInTo" | i18n : selfHostedDomain }}
|
||||
</div>
|
||||
<environment-selector class="environment-selector-padding"></environment-selector>
|
||||
<div class="remember-email-check">
|
||||
<input
|
||||
id="rememberEmail"
|
||||
@ -35,6 +33,3 @@
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" routerLink="/environment" class="settings-icon" (click)="setFormValues()">
|
||||
<i class="bwi bwi-cog-f bwi-lg" aria-hidden="true"></i><span> {{ "settings" | i18n }}</span>
|
||||
</button>
|
||||
|
@ -1,7 +1,9 @@
|
||||
import { Component, OnInit } from "@angular/core";
|
||||
import { Component, OnDestroy, OnInit, ViewChild } from "@angular/core";
|
||||
import { FormBuilder, Validators } from "@angular/forms";
|
||||
import { ActivatedRoute, Router } from "@angular/router";
|
||||
import { Router } from "@angular/router";
|
||||
import { Subject, takeUntil } from "rxjs";
|
||||
|
||||
import { EnvironmentSelectorComponent } from "@bitwarden/angular/auth/components/environment-selector.component";
|
||||
import { EnvironmentService } from "@bitwarden/common/abstractions/environment.service";
|
||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||
import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service";
|
||||
@ -12,9 +14,12 @@ import { LoginService } from "@bitwarden/common/auth/abstractions/login.service"
|
||||
selector: "app-home",
|
||||
templateUrl: "home.component.html",
|
||||
})
|
||||
export class HomeComponent implements OnInit {
|
||||
loginInitiated = false;
|
||||
export class HomeComponent implements OnInit, OnDestroy {
|
||||
@ViewChild(EnvironmentSelectorComponent, { static: true })
|
||||
environmentSelector!: EnvironmentSelectorComponent;
|
||||
private destroyed$: Subject<void> = new Subject();
|
||||
|
||||
loginInitiated = false;
|
||||
formGroup = this.formBuilder.group({
|
||||
email: ["", [Validators.required, Validators.email]],
|
||||
rememberEmail: [false],
|
||||
@ -27,9 +32,9 @@ export class HomeComponent implements OnInit {
|
||||
private router: Router,
|
||||
private i18nService: I18nService,
|
||||
private environmentService: EnvironmentService,
|
||||
private route: ActivatedRoute,
|
||||
private loginService: LoginService
|
||||
) {}
|
||||
|
||||
async ngOnInit(): Promise<void> {
|
||||
let savedEmail = this.loginService.getEmail();
|
||||
const rememberEmail = this.loginService.getRememberEmail();
|
||||
@ -48,6 +53,18 @@ export class HomeComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
this.environmentSelector.onOpenSelfHostedSettings
|
||||
.pipe(takeUntil(this.destroyed$))
|
||||
.subscribe(() => {
|
||||
this.setFormValues();
|
||||
this.router.navigate(["environment"]);
|
||||
});
|
||||
}
|
||||
|
||||
ngOnDestroy(): void {
|
||||
this.destroyed$.next();
|
||||
this.destroyed$.complete();
|
||||
}
|
||||
|
||||
submit() {
|
||||
|
@ -3,9 +3,9 @@ import { FormBuilder } from "@angular/forms";
|
||||
import { ActivatedRoute, Router } from "@angular/router";
|
||||
|
||||
import { LoginComponent as BaseLoginComponent } from "@bitwarden/angular/auth/components/login.component";
|
||||
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
||||
import { AppIdService } from "@bitwarden/common/abstractions/appId.service";
|
||||
import { CryptoFunctionService } from "@bitwarden/common/abstractions/cryptoFunction.service";
|
||||
import { DevicesApiServiceAbstraction } from "@bitwarden/common/abstractions/devices/devices-api.service.abstraction";
|
||||
import { EnvironmentService } from "@bitwarden/common/abstractions/environment.service";
|
||||
import { FormValidationErrorsService } from "@bitwarden/common/abstractions/formValidationErrors.service";
|
||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||
@ -27,7 +27,7 @@ import { flagEnabled } from "../../flags";
|
||||
export class LoginComponent extends BaseLoginComponent {
|
||||
showPasswordless = false;
|
||||
constructor(
|
||||
apiService: ApiService,
|
||||
devicesApiService: DevicesApiServiceAbstraction,
|
||||
appIdService: AppIdService,
|
||||
authService: AuthService,
|
||||
router: Router,
|
||||
@ -46,7 +46,7 @@ export class LoginComponent extends BaseLoginComponent {
|
||||
loginService: LoginService
|
||||
) {
|
||||
super(
|
||||
apiService,
|
||||
devicesApiService,
|
||||
appIdService,
|
||||
authService,
|
||||
router,
|
||||
|
@ -1,6 +1,6 @@
|
||||
<header>
|
||||
<div class="left">
|
||||
<button type="button" routerLink="/2fa">{{ "close" | i18n }}</button>
|
||||
<button type="button" (click)="close()">{{ "close" | i18n }}</button>
|
||||
</div>
|
||||
<h1 class="center">
|
||||
<span class="title">{{ "twoStepOptions" | i18n }}</span>
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Component } from "@angular/core";
|
||||
import { Router } from "@angular/router";
|
||||
import { ActivatedRoute, Router } from "@angular/router";
|
||||
|
||||
import { TwoFactorOptionsComponent as BaseTwoFactorOptionsComponent } from "@bitwarden/angular/auth/components/two-factor-options.component";
|
||||
import { I18nService } from "@bitwarden/common/abstractions/i18n.service";
|
||||
@ -15,14 +15,33 @@ export class TwoFactorOptionsComponent extends BaseTwoFactorOptionsComponent {
|
||||
twoFactorService: TwoFactorService,
|
||||
router: Router,
|
||||
i18nService: I18nService,
|
||||
platformUtilsService: PlatformUtilsService
|
||||
platformUtilsService: PlatformUtilsService,
|
||||
private activatedRoute: ActivatedRoute
|
||||
) {
|
||||
super(twoFactorService, router, i18nService, platformUtilsService, window);
|
||||
}
|
||||
|
||||
close() {
|
||||
this.navigateTo2FA();
|
||||
}
|
||||
|
||||
choose(p: any) {
|
||||
super.choose(p);
|
||||
this.twoFactorService.setSelectedProvider(p.type);
|
||||
this.router.navigate(["2fa"]);
|
||||
|
||||
this.navigateTo2FA();
|
||||
}
|
||||
|
||||
navigateTo2FA() {
|
||||
const sso = this.activatedRoute.snapshot.queryParamMap.get("sso") === "true";
|
||||
|
||||
if (sso) {
|
||||
// Persist SSO flag back to the 2FA comp if it exists
|
||||
// in order for successful login logic to work properly for
|
||||
// SSO + 2FA in browser extension
|
||||
this.router.navigate(["2fa"], { queryParams: { sso: true } });
|
||||
} else {
|
||||
this.router.navigate(["2fa"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -118,10 +118,20 @@ export class TwoFactorComponent extends BaseTwoFactorComponent {
|
||||
this.route.queryParams.pipe(first()).subscribe(async (qParams) => {
|
||||
if (qParams.sso === "true") {
|
||||
super.onSuccessfulLogin = () => {
|
||||
BrowserApi.reloadOpenWindows();
|
||||
const thisWindow = window.open("", "_self");
|
||||
thisWindow.close();
|
||||
return this.syncService.fullSync(true);
|
||||
// This is not awaited so we don't pause the application while the sync is happening.
|
||||
// This call is executed by the service that lives in the background script so it will continue
|
||||
// the sync even if this tab closes.
|
||||
const syncPromise = this.syncService.fullSync(true);
|
||||
|
||||
// Force sidebars (FF && Opera) to reload while exempting current window
|
||||
// because we are just going to close the current window.
|
||||
BrowserApi.reloadOpenWindows(true);
|
||||
|
||||
// We don't need this window anymore because the intent is for the user to be left
|
||||
// on the web vault screen which tells them to continue in the browser extension (sidebar or popup)
|
||||
BrowserApi.closeBitwardenExtensionTab();
|
||||
|
||||
return syncPromise;
|
||||
};
|
||||
}
|
||||
});
|
||||
@ -137,7 +147,15 @@ export class TwoFactorComponent extends BaseTwoFactorComponent {
|
||||
}
|
||||
|
||||
anotherMethod() {
|
||||
this.router.navigate(["2fa-options"]);
|
||||
const sso = this.route.snapshot.queryParamMap.get("sso") === "true";
|
||||
|
||||
if (sso) {
|
||||
// We must persist this so when the user returns to the 2FA comp, the
|
||||
// proper onSuccessfulLogin logic is executed.
|
||||
this.router.navigate(["2fa-options"], { queryParams: { sso: true } });
|
||||
} else {
|
||||
this.router.navigate(["2fa-options"]);
|
||||
}
|
||||
}
|
||||
|
||||
async isLinux() {
|
||||
|
@ -676,7 +676,7 @@
|
||||
var els = [];
|
||||
try {
|
||||
var elsList = theDoc.querySelectorAll('input:not([type="hidden"]):not([type="submit"]):not([type="reset"])' +
|
||||
':not([type="button"]):not([type="image"]):not([type="file"]):not([data-bwignore]), select, ' +
|
||||
':not([type="button"]):not([type="image"]):not([type="file"]):not([data-bwignore]), select, textarea, ' +
|
||||
'span[data-bwautofill]');
|
||||
els = Array.prototype.slice.call(elsList);
|
||||
} catch (e) { }
|
||||
@ -1177,7 +1177,7 @@
|
||||
}
|
||||
try {
|
||||
// START MODIFICATION
|
||||
var elements = Array.prototype.slice.call(selectAllFromDoc('input, select, button, ' +
|
||||
var elements = Array.prototype.slice.call(selectAllFromDoc('input, select, button, textarea, ' +
|
||||
'span[data-bwautofill]'));
|
||||
// END MODIFICATION
|
||||
var filteredElements = elements.filter(function (o) {
|
||||
|
1391
apps/browser/src/autofill/content/autofillv2.ts
Normal file
1391
apps/browser/src/autofill/content/autofillv2.ts
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,12 +1,27 @@
|
||||
// String values affect code flow in autofill.ts and must not be changed
|
||||
export type FillScriptOp = "click_on_opid" | "focus_by_opid" | "fill_by_opid" | "delay";
|
||||
|
||||
export type FillScript = [op: FillScriptOp, opid: string, value?: string];
|
||||
|
||||
export type AutofillScriptOptions = {
|
||||
animate?: boolean;
|
||||
markFilling?: boolean;
|
||||
};
|
||||
|
||||
export type AutofillScriptProperties = {
|
||||
delay_between_operations?: number;
|
||||
};
|
||||
|
||||
export default class AutofillScript {
|
||||
script: string[][] = [];
|
||||
documentUUID: any = {};
|
||||
properties: any = {};
|
||||
options: any = {};
|
||||
metadata: any = {};
|
||||
autosubmit: any = null;
|
||||
script: FillScript[] = [];
|
||||
documentUUID = "";
|
||||
properties: AutofillScriptProperties = {};
|
||||
options: AutofillScriptOptions = {};
|
||||
metadata: any = {}; // Unused, not written or read
|
||||
autosubmit: any = null; // Appears to be unused, read but not written
|
||||
savedUrls: string[];
|
||||
untrustedIframe: boolean;
|
||||
itemType: string; // Appears to be unused, read but not written
|
||||
|
||||
constructor(documentUUID: string) {
|
||||
this.documentUUID = documentUUID;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user