* setup component, services, and web HTML
* make Web and Browser functional
* make desktop functional
* update template to solidify common client HTML
* simplify template and class
* update browser routing
* move canActivate to correct location
* simplify post submit routing
* update routing to use unauthUiRefreshSwap()
* constrain AnonLayout title/subtitle width, reduce height on destkop to account for header
* reduce height on browser to account for header (otherwise have to scroll to see EnvSelector
* resolve email issue when clicking 'cancel' on extension popout
* update routing for web
* persist email to popout
* update web router and anon-layout min-h based on client
* change anchor link to button
* remove unnecessary formatting changes
* add new icon
* remove unnecessary call to loginEmailService
* Send loggedOut/locked events on logout/lock event
* Revert "Send loggedOut/locked events on logout/lock event"
This reverts commit 293f2d6131.
* Ensure loggedOut is sent for non-active user logouts too
* Make loggedOut accept userIds
* Add userBeingLoggedOut in desktop app component
* Await updateconnection calls
* hide Free Bitwarden Families button if user is not eligible
* use organizationService.canManageSponsorships$ for determining if free bitwarden families is available
* update comment
* add `Cipher_ClientViewed` event to browser refresh components
* add `Cipher_ClientToggledPasswordVisible` event to browser refresh components
* add `Cipher_ClientToggledHiddenFieldVisible` event to browser refresh components
* add `Cipher_ClientToggledCardCodeVisible` event to browser refresh components
* add `Cipher_ClientToggledCardNumberVisible` event to browser refresh components
* add `Cipher_ClientToggledTOTPSeedVisible` event to browser refresh components
* add `Cipher_ClientCopiedPassword` event to browser refresh components
* add events for copying cipher fields from the vault menu
* add `Cipher_ClientCopiedHiddenField` event to browser refresh components
* add mock for tests
* add missing `Cipher_ClientCopiedCardCode` event
* remove the need for separate fields input
* add organization id to event collection so events are collected
* update test
* add event collection service to cipher form stories
* PM-11945 - AcceptOrg - fix inaccurate comment.
* PM-11945 - Refactor new registration process to pass along orgSponsoredFreeFamilyPlanToken
* PM-11945 - RegistrationFinishComponent - wire up passing of orgSponsoredFreeFamilyPlanToken to submit method
* PM-11945 - Add todo
* Use password field value instead of local variable for copy to clipboard
Use appCopyClick directive instead of manually copying and showing success toast
* Add missing "copySuccessful" message key to desktop and web
* Remove whitespace from web en/messages.json
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* add option to delete all folders if migration fails
* update text and flow to reattempt migration
* clear encrypted folders as well on delete all
* Update messaging
* handle timeout changes that are predefined string values
- Passing a string to `Math.max` will cause a NaN to be set.
* type form instance so TypeScript is more aware of the form values
* PM-10684 - ServiceContainer - Add better docs
* PM-10684 - UserAutoUnlockKeyService - setUserKeyInMemoryIfAutoUserKeySet - refactor method to return a bool instead of nothing so users can know if a user key was retrieved & set without another call.
* PM-10684 - Remove async code ( Program.ts) responsible for setting the auto user key from the session option handler (event emitter which fires when a user passes --session <sessionKey> to a command). Returning this to synchronous execution prevents a race condition between the setting of the user key and the command executing the exitIfLocked logic in the base-program which would check if the user key had been set to determine if the command should be allowed to execute or if the user was locked. When running a loop from a script, the command would often trigger the exitIfLocked before the auto user key could be set in state from the option:session session.
* PM-10684 - Clean up missed item per PR feedback
* [PM-11419] Login items do not display after adding passkey
* [PM-11419] Login items do not display after adding passkey
* [PM-11419] Incorporating fixes for deleting a cipher from the inline menu as well as authenticating using passkeys
* [PM-11419] Fixing an issue where master password reprompt is ignored for a set passkey cipher
* [PM-11419] Fixing an issue where saving a passkey does not trigger a clearing of cached cipher values
* [PM-11419] Refactoring implementation
* [PM-11419] Ensuring that passkeys must be enabled in order for ciphers to appear
* [PM-11419] Adding an abort event from the active request manager
* [PM-11419] Adding an abort event from the active request manager
* [PM-11419] Working through jest tests within implementation
* [PM-11419] Fixing jest tests within Fido2ClientService and Fido2AuthenticatorService
* [PM-11419] Adding jest tests for added logic within OverlayBackground
* [PM-11419] Adding jest tests for added logic within OverlayBackground
* [PM-11419] Reworking how we handle assuming user presence when master password reprompt is required
* [PM-11419] Reworking how we handle assuming user presence when master password reprompt is required
* [PM-11419] Reworking how we handle assuming user presence when master password reprompt is required
* [PM-11419] Refactoring implementation
* [PM-11419] Incorporating suggestion for reporting failed passkey authentication from the inline menu
* [PM-11419] Reworking positioning of the abort controller that informs the background script of an error
* [PM-11419] Scoping down the behavior surrounding master password reprompt a bit more tightly
* [PM-11419] Reworking how we handle reacting to active fido2 requests to avoid ambiguity
* [PM-11419] Reworking how we handle reacting to active fido2 requests to avoid ambiguity
* [PM-11419] Adjusting implementation to ensure we clear any active requests when the passkeys setting is modified
* add branching logic for alternative card expiration autofill strategy
* simplify logic and fix some pattern-matching bugs
* add EnableNewCardCombinedExpiryAutofill feature flag
* update default format for card expiry date and update tests
* review reccs
* PM-11635 - Refactor Base Login Component NgOnInit to properly connect the loading of email settings from state to the processing of query params. If an email is not passed via query params (like registration / normal login), then we will try to load the email from state.
* PM-11635 - Extension login component - call parent ngOnInit as it is responsible for processing / setting email from either query params or state. The addition of the child ngOnInit prevented the parent component ngOnInit from executing.
* Move SendV2component into send-v2 subFolder
* Create SendFormContainer and related services
* Add initial SendFormComponent which uses the SendFormContainer
* Remove AdditionalOptionsSectionComponent which will be added with a future PR
* Add libs/tools/send to root tsconfig
* Register libs/tools/send/send-ui with root jest.config.js
* Register libs/tools/send/send-ui with root tailwind.config.js
* Create empty Send add edit page
- Introduces conditional routing based on extension refresh feature flag
- After selecting a Send type via the New button navigate to the new send-add-edit page and build a SendFormConfig
* Fix service injection on DefaultSendFormService
* Rename setHeader into getHeaderText, make it private and add documentation
* Set radix/base to 10 for parseInt
* Add documentation
* Rename local variable
* Removed unneeded loading state
* Remove unused originalSendId
* Run prettier
* Add link to edit an existing send
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
- move organization-user files from libs/common/src/admin-console into libs/admin-console/src/common
- add barrel files and update imports to use barrel files
- rename OrganizationUserService to OrganizationUserApiService
- rename OrganizationUserServiceImplementation to DefaultOrganizationUserApiService
* match API of new CL FormField component
* remove readonly border for additional options component
* remove readonly border for last autofill option
* remove readonly border for last custom-field form field
* remove readonly border for when collection,org or folder is available
* add `ReadOnlyCipherCardComponent` to handle readonly border
* remove readonly border for the last identity form field
* remove readonly border for the last card form field
* remove readonly border for the last login form field
* remove unneeded true value
* use shared expiration year normalization util function
* use shared exp year normalization in web and desktop client
* handle cases where input has leading zeroes
* add utils tests
* handle cases where input is all zeroes