PromucFlow_constructor/app/client/cypress/integration/Regression_TestSuite/ClientSideTests
Hetu Nandu aa9b19c995
refactor: Widget Selection (#19643)
## Description

This change is a refactor of widget selection logic. It consolidates all
the business logic to make it easy to maintain. It also improves the
performance a bit.

It touched a lot of features as we heavily rely on this 

```
Select one
Select multiple with drag
Select multiple with shift
Select multiple with cmd/ctrl
Selections should be on the same level of hierarchy
Unselect all by clicking on the canvas
Unselect all by pressing esc
Select all with cmd + a
Paste in main container
Paste in another container
Undo
Redo
Modal Selection
Modal child selection
Context switching
cmd click
snipping mode
new widget suggestion
onboarding
```

> Refactor widget selection logic

Fixes #19570

## Type of change

- Refactor


## How Has This Been Tested?

All existing tests should pass

### Test Plan
> Add Testsmith test cases links that relate to this PR

### Issues raised during DP testing

https://github.com/appsmithorg/appsmith/pull/19643#issuecomment-1383570810

https://github.com/appsmithorg/appsmith/pull/19643#issuecomment-1383607820

https://github.com/appsmithorg/appsmith/pull/19643#issuecomment-1385095478
[Bug bash
issues](https://www.notion.so/appsmith/610aa302f3e146a7b090b7dc6bc63ef9?v=0d277a9b07bf4aac9d717bcaf138c33a)

## Checklist:
### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag


### QA activity:
- [ ] Test plan has been approved by relevant developers
- [ ] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test
2023-01-28 07:47:06 +05:30
..
ActionExecution test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
AdminSettings test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
AuditLogs test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
Autocomplete fix: Autocomplete does not suggest same function name that belongs to… (#19943) 2023-01-26 12:21:41 +05:30
Binding test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
Branding test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
BugTests test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
CodeComment test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
DynamicHeight refactor: Widget Selection (#19643) 2023-01-28 07:47:06 +05:30
EmbedSettings test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
ExplorerTests test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
FormLogin test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
FormNativeToRawTests test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
GenerateCRUD test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
Git ci: Script updates to Git import spec for Ci runs (#20139) 2023-01-27 12:41:05 +05:30
Github test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
Google test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
IDE refactor: Widget Selection (#19643) 2023-01-28 07:47:06 +05:30
JSLibrary test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
Linting test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
Onboarding test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
OtherUIFeatures test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
PropertyPane test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
Refactoring test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
SettingsPane test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
Templates test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
ThemingTests test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
VisualTests test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30
Widgets refactor: Widget Selection (#19643) 2023-01-28 07:47:06 +05:30
Workspace test: Moving specs to run on FatContainer + Gitea migration (#18920) 2023-01-25 11:09:02 +05:30