* add callout to vault-items for non premium users, add upgrade premium flow
* add archive badge to item details only for desktop
* update desktop edit item save for unarchive
* updated success toast for edited archive item non premium
* Fix stale data issue in new login popout
* Update the comments
* Address critical claude code bot suggestions
* Clean out all stale data from pop up
* Fix cached cipher issue
* Fix caching issue between tab and overlay flow
* Address claude comments
* fix typescript errors
* add archive filter to desktop
* exclude archive items from search
* add left click menu options for archive
* add MP prompt checks for archive/unarchive
* assure that a cipher cannot be assigned to collections when archived
* move cipher from archive vault if a user loses premium
* ensure clone only shows when archive is active
* refactor right side footer actions to getter so it can be expanded
* add confirmation prompt for archiving cipher
* add utility service for archiving/unarchiving a cipher
* add archive/unarchive ability to footer of desktop
* add tests for utilities service
* handle null emission of `cipherViews$`
* use active user id directly from activeAccount
* remove unneeded load of vault items
* refresh internal cipher when archive is toggled - forcing the footer view to update
* refresh current cipher when archived from the left-click menu
* only show archive for viewing a cipher
* add cipher form tests
* clear archive date when soft deleting
* update success messages
* remove archive date when cloning
* fix crowdin message swap
* fix test
* move MP prompt before archive prompt - match PM-26994
* fix failing test
* add optional chaining
* move template logic into class
* condense logic
* `unArchive`
* archive and unarchive an individual item
* bulk archive and unachive
* updates to text strings for archive empty state and tooltips
* update translation keys to have an archive verb and noun differentiation
* if premium member loses premium and has archive items. apply filter changes, and item more option changes
* updating unArchive text
* unarchive an archived item on edit if user loses premium
* updates for unarchive btn, refactor archive flag for less churn
* add services to cipher form stories
* add refresh to archive calls in vault, update bulk archive copy
* Do not show archive ability for deleted items
* add archive check for login menu actions
* remove assign to collections for archive filter
* update bulk success message
* add error handling for archive methods
* fix null reference check
* add unarchive icon
---------
Co-authored-by: Nick Krantz <nick@livefront.com>
* only enable the cipher form when it is disabled
* switch to tracking the last emitted state for disabled rather than the form status.
The form status can be changed if any child control changes
* disable all remaining form fields for editing personally owned My Items
* fix failing tests
* ensure collection field is also properly disabled
* clean up logic
* fix failing test
* fix test
* refactor variable to avoid using `is` prefix
* directly reference parent form for status rather than subscribe to it
* refactor subscription for form status changes
* use observable as an Output
* disable attachment button on desktop vault when the form
* disable custom field components when custom fields already exist and parent form is disabled
* disable attachments button in the browser when the edit form is disabled
* grab icon button instance for disabled state
---------
Co-authored-by: Nick Krantz <nick@livefront.com>
* 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
* disable cipher form for "My Items" ciphers
* use correct property
* prevent changing non org fields in cli for org owned vaults
* update var name
* fix tests
* fix stories
* revert changes to item details section. update comment in edit command
* remove unused props
* fix test
* re-apply logic to enforce org ownership
* re-apply logic to enforce org ownership
* fix logic and test
* add empty line to comment
* remove unused var
* delegate form enabling/disabling to cipherFormContainer
* rename var and getter back to original. update comment
* fix adding new cipher while editing a cipher
* don't set updatedCipherView if the cached cipher has an id and the new one doesn't
* fix cipher form config
* 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>
* 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
* Use typescript-strict-plugin to iteratively turn on strict
* Add strict testing to pipeline
Can be executed locally through either `npm run test:types` for full type checking including spec files, or `npx tsc-strict` for only tsconfig.json included files.
* turn on strict for scripts directory
* Use plugin for all tsconfigs in monorepo
vscode is capable of executing tsc with plugins, but uses the most relevant tsconfig to do so. If the plugin is not a part of that config, it is skipped and developers get no feedback of strict compile time issues. These updates remedy that at the cost of slightly more complex removal of the plugin when the time comes.
* remove plugin from configs that extend one that already has it
* Update workspace settings to honor strict plugin
* Apply strict-plugin to native message test runner
* Update vscode workspace to use root tsc version
* `./node_modules/.bin/update-strict-comments` 🤖
This is a one-time operation. All future files should adhere to strict type checking.
* Add fixme to `ts-strict-ignore` comments
* `update-strict-comments` 🤖
repeated for new merge files
* [PM-12389] Cleanup attachment dialog UI bugs
* [PM-12389] Add formReady event to CipherForm
* [PM-12389] Use ngOnChanges for CipherView component initialization
* [PM-12389] Cleanup web specific services and components
* [PM-12389] Introduce combined Vault Item Dialog component
* [PM-12389] Use the new VaultItemDialog in the Individual Vault
* [PM-12389] Deprecate the AddEditV2 and View dialogs in Web
* [PM-12389] Fix failing test
* [PM-12389] Fix broken imports after move
* [PM-12389] Remove messages.json addition that is taken care of in another PR
* [PM-8524] Update appA11yTitle to keep attributes in sync after first render
* [PM-8524] Introduce UriOptionComponent
* [PM-9190] Introduce AutofillOptionsComponent
* [PM-9190] Add AutofillOptions to LoginDetailsSection
* [PM-9190] Add autofill options component unit tests
* [PM-9190] Add UriOptionComponent unit tests
* [PM-9190] Add missing translations
* [PM-9190] Add autofill on page load field
* [PM-9190] Ensure updatedCipherView is completely separate from originalCipherView
* [CL-348] Do not override items if there are no OptionComponents available
* [PM-9190] Mock AutoFillOptions component in Login Details tests
* [PM-9190] Cleanup storybook and missing web translations
* [PM-9190] Ensure storybook decryptCipher returns a separate object
* [PM-9959] Expose Fido2SessionData interface
* [PM-9959] Ensure cipherType is passed during passkey creation
* [PM-9959] Add beforeSubmit hook to cipherForm
* [PM-9959] Add support for Fido2 credential creation in add-edit-v2
* [PM-9959] Ensure cipherType defaults to CipherType.Login if none is available
* [PM-9959] Add support for name and username to be passed in as query params for initial form values
* [PM-9962] Hide remove passkey button when cipher has "except passwords" permissions
* initial add of custom fields
* add fields for custom field
* integrate custom field into cipher form service for text fields
* add hidden field type
* add boolean custom field
* add linked option type
* add testids for automated testing
* add edit option for each custom field
* update dialog component name to match add/edit nature
* add delete button for fields
* initial add of drag and drop
* collect tailwind styles from vault components
* add drag and drop functionality with announcement
* add reorder via keyboard
* update tests to match functionality
* account for partial edit of custom fields
* fix change detection for new fields
* add label's to the edit/reorder translations
* update dynamic heading to be inline
* add validation/required for field label
* disable toggle button on hidden fields when the user cannot view passwords
* remove the need for passing `updatedCipherView` by only using a single instance of `CustomFieldsComponent`
* lint fix
* use bitLink styles rather than manually defining tailwind classes
* use submit action, no duplicated button and allows for form submission via enter
* add documentation for `newField`
* initial add of card details section
* add card number
* update card brand when the card number changes
* add year and month fields
* add security code field
* hide number and security code by default
* add `id` for all form fields
* update select options to match existing options
* make year input numerical
* only display card details for card ciphers
* use style to set input height
* handle numerical values for year
* update heading when a brand is available
* remove unused ref
* use cardview types for the form
* fix numerical input type
* disable card details when in partial-edit mode
* remove hardcoded height
* update types for formBuilder