PromucFlow_constructor/app/client/src/widgets/TableWidget/component
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
..
components fix: Improving form widget keyboard accessibility (#18991) 2022-12-30 15:52:11 +01:00
AutoToolTipComponent.tsx fix: Refactoring to replace all usages of isEqual method from lodash with equal method from fast-deep-equal/es6 (#16439) 2022-09-02 14:46:30 +05:30
CascadeFields.tsx chore: update Styled components to latest version and related cleanup (#19284) 2023-01-13 16:35:59 +05:30
CommonUtilities.test.ts
CommonUtilities.ts
Constants.test.ts
Constants.ts feat: App Theming (#9714) 2022-05-04 15:15:57 +05:30
index.tsx feat: Automatic height updates for widgets based on contents (Auto Height) (#18341) 2022-11-23 15:18:23 +05:30
Table.tsx feat: Renamed design system package (#19854) 2023-01-23 09:20:47 +05:30
TableAction.tsx fix: table border issue fix (#18339) (#19967) 2023-01-27 12:15:44 +05:30
TableActionIcon.tsx
TableColumnsVisibility.tsx
TableDataDownload.tsx feat: upgrade to create react app 5 (#14000) 2022-06-21 19:27:34 +05:30
TableFilterPane.tsx refactor: Widget Selection (#19643) 2023-01-28 07:47:06 +05:30
TableFilterPaneContent.tsx feat: Renamed design system package (#19854) 2023-01-23 09:20:47 +05:30
TableFilters.tsx feat: App Theming (#9714) 2022-05-04 15:15:57 +05:30
TableHeader.tsx feat: Renamed design system package (#19854) 2023-01-23 09:20:47 +05:30
TableHelpers.test.ts
TableHelpers.ts fix: updated columns names (#9715) 2021-12-29 17:12:07 +05:30
TablePagination.tsx
TableStyledWrappers.tsx fix: table border issue fix (#18339) (#19967) 2023-01-27 12:15:44 +05:30
TableUtilities.test.tsx feat: upgrade to create react app 5 (#14000) 2022-06-21 19:27:34 +05:30
TableUtilities.tsx chore: update Styled components to latest version and related cleanup (#19284) 2023-01-13 16:35:59 +05:30