This PR migrates `libs/components` to use strict TypeScript.
- Remove `@ts-strict-ignore` from each file in `libs/components` and resolved any new compilation errors
- Converted ViewChild and ContentChild decorators to use the new signal-based queries using the [Angular signal queries migration](https://angular.dev/reference/migrations/signal-queries)
- Made view/content children `required` where appropriate, eliminating the need for additional null checking. This helped simplify the strict migration.
---
Co-authored-by: Vicki League <vleague@bitwarden.com>
* [NO LOGIC] Rename BillableEntity to BitwardenSubscriber
This helps us maintain paraody with server where we call this choice type ISubscriber. I chose BitwardenSubscriber to avoid overlap with RxJS
* [NO LOGIC] Move subscriber-billing.client to clients folder
* [NO LOGIC] Move organization warnings under organization folder
* Move getWarnings from OrganizationBillingApiService to new OrganizationBillingClient
I'd like us to move away from stashing so much in libs and utilizing the JsLibServicesModule when it's not necessary to do so. These are invocations used exclusively by the Web Vault and, until that changes, they should be treated as such
* Refactor OrganizationWarningsService
There was a case added to the Inactive Subscription warning for a free trial, but free trials do not represent inactive subscriptions so this was semantically incorrect. This creates another method that pulls the free trial warning and shows a dialog asking the user to subscribe if they're on one.
* Implement Tax ID Warnings throughout Admin Console and Provider Portal
* Fix linting error
* Jimmy's feedback
Adds a check to make sure that the email on the Org Invite matches the email submitted in the form. If it matches, only then do we apply the org invite to get the MP policies. But if the emails do not match, it means the user attempting to login is no longer the user who originally clicked the emailed org invite link. Therefore, we clear the Org Invite + Deep Link and allow the user to login as normal.
* clear selection after event on individual part
* added changes in org
* added clearSelection in refresh()
---------
Co-authored-by: Jason Ng <jng@bitwarden.com>
* WIP
* switch to signal
* fix ts strict errors
* clean up
* refactor policy list service
* implement vnext component
* refactor to include feature flag check in display()
* CR feedback
* refactor submit to cancel before request is built
* clean up
* Fix typo
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* update shield logo and container padding
* Fix horizontal icon shift
* use absolutel position to fix shield shifting
* add new shield and admin console logo
* add new logos
* add business unit portal logo
* delete redundant logos
* add missing fill color class
* Add bulk user confirmation method to OrganizationUserService
* Update OrganizationUserBulkConfirmRequest to include optional defaultUserCollectionName property
* Implement conditional bulk user confirmation logic in BulkConfirmDialogComponent.
Its gated behind the feature flag for default user collection.
* Refactor OrganizationUserBulkConfirmRequest to use SdkEncString for defaultUserCollectionName
* Refactor BulkConfirmDialogComponent to use organization object instead of organizationId for improved clarity and type safety.
* Add unit tests for OrganizationUserService to validate user single/bulk confirmation logic
* Refactor OrganizationUserService to streamline encrypted collection name retrieval by introducing getEncryptedDefaultCollectionName$ method.
* Refactor unit tests for OrganizationUserService to reduce duplication by introducing a setupCommonMocks function for common mock configurations.
* refactor(organization-user.service): streamline retrieval of encrypted collection name in bulk confirmation process
* refactor manually open extension error message to a separate component
* allow icons and max width to be updated via setAnonLayoutWrapperData
* set error state when the extension fails to open
* bump timeout to 2000ms. I was seeing false error states when attempting to open the extension
* fix initialization of css variables
* replace the disableMenu logic to be a hideMenu with ngIf
* adding disable back for disabled rows during vault sync
---------
Co-authored-by: kejaeger <138028972+kejaeger@users.noreply.github.com>
- Renames the `LoginApprovalComponent` to `LoginApprovalDialogComponent`
- Renames the property `notificationId` to `authRequestId` for clarity
- Updates text content on the component
* properly call input functions
* don't enable sshkey form
* fix logic for disabling cipher form
* prefer use of observable
* use destroyRef. change to enabled status only
* Updates:
- Update simple dialog to disallow user to close the dialog on acceptance
- Split payment components to provide a "require" component that cannot be closed out of
- Add provider warning service to manage the various provider warnings
* Fix test
* Will's feedback and sync on payment method success