* [PM-18650] Ensure http url is returned if well-known cannot be confirmed
* [PM-18650] Modify getChangePasswordUrl logic to check each cipher URL until a valid well-known url is found
* add event handling for username generator
* fix specs. change function name to not be of an event type
* update specs
* rename function
* revert name change
* fix spec
* bubble algorithmSelected up to generator components. add disabled button tests
* add typeSelected event
* revert addition of onType.
* apply same logic in onAlgorithmSelected to web and desktop
* [PM-14426] Add hideIcon input to simple dialog component
* [PM-14426] Introduce dark-image-source.directive.ts
* [PM-14426] Tweaks to the Vault Carousel component
- Create a Carousel NgModule so that the carousel component and carousel slide component are exported
- Update barrel files
- Adjust min height calculation logic to wait for ;hidden slides to finish rendering before calculating height
* [PM-14426] Introduce at risk password getting started carousel component and images
* [PM-14426] Refactor at-risk-password-page.service.ts to use the same state definition for banner and carousel dismissal
* [PM-14426] Open the getting started carousel on page load
* [PM-14426] Add tests
* [PM-14426] Use booleanAttribute
* [PM-14426] Fix failing type checking
Fail tests when relying on unknownProperties or unknownElements. Existing instances are whitelist and have tickets created and assigned to the relevant teams.
* fix(recovery-code-login): [PM-18474] Fix for Recovery Code Login - Fixed the recovery code login to work with the new device verification notice flow.
* test(recovery-code-login): [PM-18474] Fix for Recovery Code Login - Tests added.
* Exposes URI property from the cipher form.
* Updates credential generator to accept the URI using a `website` attribute
---------
Co-authored-by: ✨ Audrey ✨ <audrey@audreyality.com>
* add browser extension prompt page with initial loading state
* add browser extension icon
* move browser extension prompt to state
* add installation link for error state
* automatically open extension when possible for browser-reprompt-page
* refactor browser tabs query into a standalone method
* add success message state for auto-opening browsers
* Refactor `VaultOnboardingMessages` to `VaultMessages` to be more generic
* add auto-open extension messages to `VaultMessages` enum
* add bitwarden icon
* Add manual error state for firefox users
* add extension prompt routing
* fix incorrect imports
* add mobile screen for browser prompt
* remove comment
* fix typo in code comment
* update key for `checkBwInstalled` method
* add check for safari before attempting to send a message
* break translation for manual opening into two parts
* [PM-14419] Introduce the change-login-password service and its default implementation
* [PM-14419] Use the change login password service on the at-risk passwords page
* [PM-14419] Add unit tests
* [PM-14419] Use existing fixed test environment
* [PM-14419] Add mock implementation for ChangeLoginPasswordService in at-risk passwords tests
* [PM-14419] Linter
* Cipher service web changes
* Updated browser client to pass user id to cipher service observable changes
* Cli changes
* desktop changes
* Fixed test
* Libs changes
* Fixed merge conflicts
* Fixed merge conflicts
* removed duplicate reference fixed conflict
* Fixed test
* Fixed test
* Fixed test
* Fixed desturcturing issue on failed to decrypt ciphers cipher service
* Updated abstraction to use method syntax
* Fixed conflicts
* Fixed test on add edit v2
Passed active userId to delete function
* Used getUserId utility function
* made vault changes
* made suggestion changes
* made suggestion changes
* made suggestion changes
* Replace getUserId function calls with pipe operator syntax for better consistency
* fixed merge conflicts
* revert mistake made of usinf account activity during merge conflict fix
* fixed conflicts
* fixed tests
* Move encrypt service to km ownership
* Update imports for encrypt service abstraction and move bulk encrypt service abstraction
* Fix imports
* Fix further imports
* Fix imports
* Fix worker import
* move `add-edit-folder` component to `angular/vault/components` so it can be consumed by other platforms
* add edit/add folder copy to web app copy
* add extension refresh folder dialog to individual vault
* adding folder delete message to the web
* add deletion result for add/edit folder dialog
* allow editing folder from web
* fix strict types for changed files
* update tests
* remove border class so hover state shows
* revert changes to new-item-dropdown-v2
* migrate `AddEditFolderDialogComponent` to `libs/vault` package
* add Created enum type
* add static open method for folder dialog
* add fullName to `FolderFilter` type
* save the full name of a folder before splitting it into parts
* use the full name of the folder filter when available
* use a shallow copy to edit the folder's full name
---------
Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
Only users with Manage/Edit permissions will be allowed to Assign To Collections. If the user has Can Edit Except Password the collections dropdown will be disabled.
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
Co-authored-by: kejaeger <138028972+kejaeger@users.noreply.github.com>
* update extension refresh form when an attachment is added or removed
- This is needed because the revision date was updated on the server and the locally stored cipher needs to match.
* receive updated cipher from delete attachment endpoint
- deleting an attachment will now alter the revision timestamp on a cipher.
* patch the cipher when an attachment is added or deleted
* migrate vault component to use the `cipherViews$` observable
* reference `cipherViews$` on desktop for vault-items
- This avoid race conditions where ciphers are cleared out in the background. `cipherViews` should always emit the latest views
* return CipherData from cipher service so that consumers have the updated cipher right away
* use the updated cipher from attachment endpoints to refresh the details within the add/edit components on desktop
* allow changing of item owner from personal to org
* avoid unecessary api calls when updating item parent
* move comment up a line
* add localData to cipher instance
* [PM-15506] Wire up vNextOrganizationService for libs/common and libs/angular (#12683)
* Wire up vNextOrganizationService in PolicyService
* Wire vNextOrganizationService in SyncService
* wire vNextOrganizationService for EventCollectionService
* wire vNextOrganizationService for KeyConnectorService
* wire up vNextOrganizationService for CipherAuthorizationService
* Wire up vNextOrganizationService in PolicyService
* Wire vNextOrganizationService in SyncService
* wire vNextOrganizationService for EventCollectionService
* wire vNextOrganizationService for KeyConnectorService
* wire up vNextOrganizationService for CipherAuthorizationService
* wire vNextOrganizationService for share.component
* wire vNextOrganizationService for collections.component
* wire vNextOrganizationServcie for add-account-credit-dialog
* wire vNextOrganizationService for vault-filter.service
* fix browser errors for vNextOrganizationService implementation in libs
* fix desktop errors for vNextOrganizationService implementation for libs
* fix linter errors
* fix CLI errors on vNextOrganizationServcie implementations for libs
* [PM-15506] Wire up vNextOrganizationService for web client (#12810)
PR to a feature branch, no need to review until this goes to main.
* implement vNextOrganization service for browser client (#12844)
PR to feature branch, no need for review yet.
* wire vNextOrganizationService for licence and some web router guards
* wire vNextOrganizationService in tests
* remove vNext notation for OrganizationService and related
* Merge branch 'main' into ac/pm-15506-vNextOrganizationService
* fix tsstrict error
* fix test, fix ts strict error
* remove todo
* Retrieve cache cipher for add-edit form
* user prefilled cipher for add-edit form
* add listener for clearing view cache
* clear local cache when clearing global state
* track initial value of cache for down stream logic that should only occur on non-cached values
* add feature flag for edit form persistence
* add tests for cipher form cache service
* fix optional initialValues
* add services to cipher form storybook
* fix strict types
* rename variables to be platform agnostic
* use deconstructed collectionIds variable to avoid them be overwritten
* use the originalCipherView for initial values
* add comment about signal equality
* prevent events from being emitted when adding uris to the existing form
- This stops other values from being overwrote in the initialization process
* add check for cached cipher when adding initial uris
* collect tailwind styles from the `libs/vault/*`
- Some unique styles were not showing in storybook
* initial add of carousel component
* initial add of carousel stories
* move carousel button to a standalone component for organization
* add key manager for carousel buttons
* add tab panel role to slide component
* make carousel slide focusable when it does not contain focusable elements
* add aria live to carousel slides
* add labels for carousel slide buttons
* emit slide change event
* move icons to carousel-icons folder
* add barrel file for carousel
* move protected properties
* remove underscore
* allow differing heights of carousel slides
* update interactive styles for the carousel icons
* allow for focus styled on carousel buttons
* fix tests
* fix imports
* add method to render each slide and get the height of the tallest slide
- This avoids consumers having to pass in a height.
- The height of the tallest slide is needed because it will stop the carousel from jumping around as the user scrolls.
* add comment to content property
* remove rem calculation
* Changes to disabled user from seeing password that they shouldn't see or edit easily.
* Fixing defects on PM-13938
* undoing unecessary change
* Updating tests
---------
Co-authored-by: --global <>
Co-authored-by: kejaeger <138028972+kejaeger@users.noreply.github.com>
Extract core functionality from `libs/angular` to allow teams to depend on `libs/ui-common` instead.
Moves the following functionality to `ui-common`.
- `I18nPipe`. `libs/angular` still has an old copy but `components` depends on the new variant from `ui-common`.
- `safeProvider`, `SafeProvider` and `SafeInjectionToken`. `libs/angular`re-exports these to avoid needing to update all consumers.
* [deps] SM: Update typescript-eslint monorepo to v8
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hinton <hinton@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* [PM-5718] Fix totp generation for free orgs in old add-edit component
* [PM-5718] Fix totp generation for free orgs in view cipher view component
* [PM-5718] Cleanup merge conflicts
* Don't generate totp code for premium users or free orgs
* Added redirect to organization helper page
* Changed text to learn more
* Only show upgrade message to premium users
* Show upgrade message to free users with free orgs as well
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
Co-authored-by: gbubemismith <gsmithwalter@gmail.com>
* adjust generator dialog buttons to match browser extension UI
* put dialog label into generator config
* fix types. remove i18n key
* use event emitted pattern for getting algorithm config
* favor arrow function
* move function call
* append key to i18n prop
* fix test