PromucFlow_constructor/app/client/cypress/fixtures/newFormDsl.json
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

386 lines
12 KiB
JSON

{
"dsl": {
"widgetName": "MainContainer",
"backgroundColor": "none",
"rightColumn": 1224,
"snapColumns": 16,
"detachFromLayout": true,
"widgetId": "0",
"topRow": 0,
"bottomRow": 1254,
"containerStyle": "none",
"snapRows": 33,
"parentRowSpace": 1,
"type": "CANVAS_WIDGET",
"canExtend": true,
"dynamicBindingPathList": [],
"version": 4,
"minHeight": 1292,
"parentColumnSpace": 1,
"leftColumn": 0,
"children": [
{
"backgroundColor": "#FFFFFF",
"widgetName": "Container3",
"type": "CONTAINER_WIDGET",
"containerStyle": "card",
"isVisible": true,
"isLoading": false,
"parentColumnSpace": 75.25,
"parentRowSpace": 38,
"dynamicBindingPathList": [],
"leftColumn": 0,
"rightColumn": 15,
"topRow": 0,
"bottomRow": 20,
"snapColumns": 16,
"orientation": "VERTICAL",
"children": [
{
"backgroundColor": "transparent",
"widgetName": "7hf8kkvvgv",
"type": "CANVAS_WIDGET",
"containerStyle": "none",
"isVisible": true,
"isLoading": false,
"parentColumnSpace": 1,
"parentRowSpace": 1,
"leftColumn": 0,
"rightColumn": 1204,
"topRow": 0,
"bottomRow": 532,
"snapColumns": 16,
"orientation": "VERTICAL",
"children": [
{
"widgetName": "Text1",
"rightColumn": 3,
"widgetId": "4d8d2eh4xg",
"dynamicPropertyPathList": [],
"topRow": 0,
"bottomRow": 1,
"parentRowSpace": 38,
"isVisible": true,
"type": "TEXT_WIDGET",
"dynamicBindingPathList": [],
"shouldScroll": true,
"parentId": "e3tq9qwta6",
"isLoading": false,
"parentColumnSpace": 71.75,
"leftColumn": 1,
"text": "Test text",
"textStyle": "HEADING"
},
{
"isVisible": true,
"inputType": "TEXT",
"label": "",
"iconAlign": "left",
"widgetName": "Input1",
"type": "INPUT_WIDGET_V2",
"isLoading": false,
"parentColumnSpace": 71.75,
"parentRowSpace": 38,
"leftColumn": 0,
"rightColumn": 5,
"topRow": 1,
"bottomRow": 2,
"parentId": "e3tq9qwta6",
"widgetId": "i9cuq42zmc"
},
{
"isVisible": true,
"label": "",
"selectionType": "SINGLE_SELECT",
"options": "",
"widgetName": "Dropdown1",
"type": "SELECT_WIDGET",
"isLoading": false,
"parentColumnSpace": 71.75,
"parentRowSpace": 38,
"leftColumn": 10,
"rightColumn": 15,
"topRow": 1,
"bottomRow": 2,
"parentId": "e3tq9qwta6",
"widgetId": "nl5sy9cuaa",
"dynamicBindingPathList": []
},
{
"isRequired": false,
"widgetName": "MultiSelect1",
"widgetId": "zd37fz90fe",
"topRow": 12,
"bottomRow": 16,
"parentRowSpace": 10,
"rightColumn": 15,
"isVisible": true,
"label": "",
"type": "MULTI_SELECT_WIDGET_V2",
"parentId": "e3tq9qwta6",
"isLoading": false,
"defaultOptionValue": [
{
"label": "Hashirama Senju",
"value": "First"
},
{
"label": "Naruto Uzumaki",
"value": "Seventh"
}
],
"parentColumnSpace": 71.75,
"leftColumn": 10,
"options": [
{
"label": "Hashirama Senju",
"value": "First"
},
{
"label": "Tobirama Senju",
"value": "Second"
},
{
"label": "Hiruzen Sarutobi",
"value": "Third"
},
{
"label": "Minato Namikaze",
"value": "Fourth"
},
{
"label": "Tsunade Senju",
"value": "Fifth"
},
{
"label": "Kakashi Hatake",
"value": "Sixth"
},
{
"label": "Naruto Uzumaki",
"value": "Seventh"
}
],
"placeholderText": "select option(s)",
"isDisabled": false
},
{
"isVisible": true,
"text": "Submit",
"buttonStyle": "PRIMARY_BUTTON",
"widgetName": "Button1",
"isDisabled": false,
"isDefaultClickDisabled": true,
"type": "BUTTON_WIDGET",
"isLoading": false,
"parentColumnSpace": 71.75,
"parentRowSpace": 38,
"leftColumn": 1,
"rightColumn": 3,
"topRow": 4,
"bottomRow": 5,
"parentId": "e3tq9qwta6",
"widgetId": "gn6ug210ef",
"dynamicBindingPathList": []
},
{
"isVisible": true,
"label": "Label",
"defaultCheckedState": true,
"widgetName": "Checkbox1",
"type": "CHECKBOX_WIDGET",
"isLoading": false,
"parentColumnSpace": 71.75,
"parentRowSpace": 38,
"leftColumn": 10,
"rightColumn": 13,
"topRow": 4,
"bottomRow": 5,
"parentId": "e3tq9qwta6",
"widgetId": "szjhneuog5"
},
{
"isVisible": true,
"label": "Switch",
"defaultSwitchState": true,
"widgetName": "Switch1",
"type": "SWITCH_WIDGET",
"isLoading": false,
"parentColumnSpace": 71.75,
"parentRowSpace": 38,
"leftColumn": 10,
"rightColumn": 13,
"topRow": 18,
"bottomRow": 19,
"parentId": "e3tq9qwta6",
"widgetId": "szjhneuog9"
},
{
"isVisible": true,
"label": "",
"options": [
{
"label": "Male",
"value": "M"
},
{
"label": "Female",
"value": "F"
}
],
"defaultOptionValue": "1",
"widgetName": "RadioGroup1",
"type": "RADIO_GROUP_WIDGET",
"isLoading": false,
"parentColumnSpace": 71.75,
"parentRowSpace": 38,
"leftColumn": 0,
"rightColumn": 3,
"topRow": 7,
"bottomRow": 9,
"parentId": "e3tq9qwta6",
"widgetId": "nb2usgp3hv"
},
{
"isVisible": true,
"isDisabled": false,
"datePickerType": "DATE_PICKER",
"label": "",
"dateFormat": "DD/MM/YYYY",
"widgetName": "DatePicker1",
"defaultDate": "2020-06-03T12:05:44.699+05:30",
"type": "DATE_PICKER_WIDGET",
"isLoading": false,
"parentColumnSpace": 71.75,
"parentRowSpace": 38,
"leftColumn": 10,
"rightColumn": 15,
"topRow": 7,
"bottomRow": 8,
"parentId": "e3tq9qwta6",
"widgetId": "kyrvcdcm4e",
"dynamicTriggerPathList": [
{
"key": "onDateSelected"
}
],
"onDateSelected": "{{showModal()}}"
},
{
"isVisible": true,
"files": [],
"label": "Select Files",
"widgetName": "FilePicker1",
"isDefaultClickDisabled": true,
"type": "FILE_PICKER_WIDGET",
"isLoading": false,
"parentColumnSpace": 67.1171875,
"parentRowSpace": 38,
"leftColumn": 10,
"rightColumn": 14,
"topRow": 17,
"bottomRow": 18,
"parentId": "e3tq9qwta6",
"widgetId": "ca22py6vlv"
},
{
"isVisible": true,
"defaultText": "",
"isDisabled": false,
"widgetName": "RichTextEditor1",
"isDefaultClickDisabled": true,
"type": "RICH_TEXT_EDITOR_WIDGET",
"isLoading": false,
"parentColumnSpace": 67.1171875,
"parentRowSpace": 38,
"leftColumn": 0,
"rightColumn": 8,
"topRow": 11,
"bottomRow": 16,
"parentId": "e3tq9qwta6",
"widgetId": "2uvezzlkn5",
"dynamicBindingPathList": []
},
{
"isVisible": true,
"options": [
{
"label": "Apple",
"value": "apple"
},
{
"label": "Orange",
"value": "orange"
},
{
"label": "Lemon",
"value": "lemon"
}
],
"defaultSelectedValues": "apple",
"isDisabled": false,
"isRequired": false,
"widgetName": "CheckboxGroup1",
"version": 1,
"type": "CHECKBOX_GROUP_WIDGET",
"isLoading": false,
"parentColumnSpace": 7.852001953124999,
"parentRowSpace": 10,
"leftColumn": 6,
"rightColumn": 18,
"topRow": 9,
"bottomRow": 17,
"parentId": "e3tq9qwta6",
"widgetId": "zbzrlbiose"
},
{
"widgetName": "SwitchGroup1",
"isCanvas": false,
"displayName": "Switch Group",
"iconSVG": "/static/media/icon.086a7201.svg",
"topRow": 8,
"bottomRow": 14,
"parentRowSpace": 10,
"type": "SWITCH_GROUP_WIDGET",
"hideCard": false,
"parentColumnSpace": 6.6856445312499995,
"leftColumn": 2,
"options": [
{
"label": "Blue",
"value": "BLUE"
},
{
"label": "Green",
"value": "GREEN"
},
{
"label": "Red",
"value": "RED"
}
],
"isDisabled": false,
"key": "vrhzyvir7s",
"isRequired": false,
"rightColumn": 20,
"defaultSelectedValues": "BLUE",
"widgetId": "egtjazr1wh",
"isVisible": true,
"version": 1,
"parentId": "e3tq9qwta6",
"renderMode": "CANVAS",
"isLoading": false,
"isInline": true
}
],
"widgetId": "e3tq9qwta6",
"detachFromLayout": true,
"canExtend": false
}
],
"widgetId": "jaftzrmtin"
}
]
}
}