* initialize timer to null
* default undefined length to 0 using nullish operator
* optional chaining and explicit null check on tab presence
* add optional chainning where relevant for sender tab id
* explicit null checks and data guards set for sender and modifyLoginData
* address feedback and make explicit undefined checks to avoid possible valid tabid rejection
* explicit tab check on setupNotificationInitTrigger
* early return if no cipher before switch case
* explicit null checks within switch cases for early returns
* lower cipher check and add to explicit checks
* add test cases for null values
* format spec file
Migrated vault filters to new v3 vault's navigation
* Decoupled existing vault filtering from vault component by using routed params with routed-vault-filter-bridge
* Converted vault filters to standalone components
* Removed extending filter Base Components from deprecated /libs/angular library and handled logic directly
* Moved shared 'models' and 'services' directories from web-vault into /libs/vault
The goal of this PR is to migrate the Desktop Send-v2 component from the AddEditComponent to now use to shared SendAddEditDialogComponent from @bitwarden/send-ui library
---------
Co-authored-by: William Martin <contact@willmartian.com>
Co-authored-by: Hinton <hinton@users.noreply.github.com>
* last is dead code, remove completely
* pass required true so that angular enforces at runtime and run apply a definitive assignment assertion since angulars input binding is running before use
* [FIX] Pass more inclusive user verification Boolean to `setAbortTimeout`
* Update `setAbortTimeout` user verification parameter type
* Fix lint issue
---------
Co-authored-by: Daniel James Smith <2670567+djsmith85@users.noreply.github.com>
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* [deps] Platform: Update electron-store to v11
* wip-fix: all imports failing due to nodenext switch
* fix: desktop tsconfig not working properly
Renderer tsConfigPath was wrong so it defaulted to the base `tsconfig.json` which
included every single sourcefile into the angular artifact. This caused errors
with ESM modules which behave differently on node and needed a separate `tsconfig.json`
configuration.
* fix: revert some of the changes made to tools code
* fix: ESM import in tests
* chore: use consistent path
* feat: actually use custom tsconfig for preload
* fix: use correct entry point in tsconfig.main.json
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
Co-authored-by: Andreas Coroiu <acoroiu@bitwarden.com>
When account switching from the old layout it's not bringing you into the new design. This resolves it by ensuring the route guard for vault is triggered after account switching.
* ensure trigger is fully rendered before placement
* do not skip popover screenshots
* try to stabalize popover screenshots
* try to stabalize popover screenshots
* add play function to remaining stories
* add screenshot diff threshold
* increase diff threshold
* revert story changes
* add comment about double requestAnimationFrame
* empty commit to trigger claude review
* address Claude feedback. Move init and cleanup
* add comment about rafIds are assigned
* add destroyed flag to prevent any potential race conditions
* use different rafIds for explicit cleanup
* check for ref to prevent duplicate creation
* prevent clicks during destroy lifecycle
* add spec for popover trigger directive
* ensure popover closes if clicked during initial delay
Changes the publisher to match the Bitwarden signing certificate, and allows
signing of .appx files.
Also removes unused certificateSubjectName parameters from package.json
* finalize new UI elements for archive/unarchive
* add tests
* add missing service
* add tests
* updates to edit and view pages
* use structureClone
* fix lint
* fix typo
* clean up return types
* fixes to archive UI
* fix tests
* use @if and userId$