PromucFlow_constructor/app/client/cypress/fixtures/widgetPopupDsl.json
Dhruvik Neharia 1a7b4c6725
feat: Dynamic Menu Items - Menu Button Widget (#17652)
* faet: Add menu items source for menu widget

* feat: Add configuration panel for dynamic menu items

* feat: Pass down items from sourceData to menu items widget

* feat: Take menu items config from property pane for dynamic menu items

* fix: Change all onMenuItemClick to onClick for dynamic menu items

* feat: Create MenuComputeValue property control to add support for {{currentItem}} binding in menu widget

* feat: Add JS toggles for style properties for menu widget

* feat: onClick now supports currentItem for menu button widget

* feat: Add currentItem autocomplete, move property pane config to separate files for menu button widget

* feat: WIP - Add Dynamic Menu Items for Table Widget

* Revert "feat: WIP - Add Dynamic Menu Items for Table Widget"

This reverts commit 271f96211c8612bc6f073a1aab7467993b9d7e36.

* fix: remove current item label by default for dynamic menu items in menu button

* feat: Add source data max length 10 validation for dynamic menu items in menu button

* feat: Add migrations for Dynamic Menu Items for Menu Button Widget

* feat: Add cypress test for dynamic menu items for menu button

* test: Update DSLMigration test with menu button widget tests

* fix: Update MenuButtonWidget migration

* fix: DSL migrations for menu button dynmaic items

* fix: Style validations for menu widget

* feat: Add more descriptive help text for configure menu items in menu button widget

* feat: Change menu items source property type from dropdown to icon tabs

* fix: Cy test for menu button widget to select menu items source from button tabs instead of dropdown

* feat: Make ConfigureMenuItemsControl a Generic/reusable OpenNextPanelWithButtonControl

* refactor: Change MenuComputeValue to MenuButtonDynamicItemsControl

* refactor: Merge TABLE_PROPERTY and MENU_PROPERTY into one ARRAY_AND_ANY_PROPERTY

* fix: Don't polute Menu Button DSL with properties for dynamic menu items until the source is static

* style: Change color of curly braces hint in currentItem autocomplete to make it more readable

* fix: remove unused import

* refactor: Move child config panels to a different file, style: Change help text and placeholder for a few properties for Dynamic menu items - menu button

* refactor: Change event autocomplete function name, use fast equal

* refactor: Change source data validation function name and use camelCase throughout

* refactor: Validation function for source data

* refactor: Create different type for menuItems and configureMenuItems and reuse them property config

* feat: refactor: move get items to widget instead of component

* pref: Visible items to be calculated when menu button is clicked

* refactor: replace !("menuItemsSource" in child) with in migration

* refactor: Change controlType name from OPEN_NEXT_PANEL_WITH_BUTTON to OPEN_CONFIG_PANEL, use generic names inside OpenNextPanelWithButtonControl.tsx

* refactor: Minor cleanup at MenuButtonDynamicItemsControl.tsx

* refactor: Minor cleanup at MenuButtonDynamicItemsControl.tsx

* fix: Change constant used in migration to a static value

* test: Add tests for validations and helper for menu button

* test: Add more Cypress tests for dynamic-menu-items

* fix: Minor refactor at onclick handler and MenuButtonDynamicItemsControl

* refactor: Rename ARRAY_AND_ANY_PROPERTY to ARRAY_TYPE_OR_TYPE

* feat: Move initial source data and keys generation inside an update hook

* refactor: Rename ARRAY_TYPE_OR_TYPE to ARRAY_OF_TYPE_OR_TYPE

* refactor: Minor code refactor in MenuButtonWidget/widget/index.tsx

* refactor: Change OpenNextPanelWithButtonControl with OpenConfigPanelControl

* feat: Use traverseDSLAndMigrate for dynamic menu items migration

* style: Minor code hygiene changes here and there for dynamic menu items

* style: Minor code hygiene changes here and there for dynamic menu items

* style: remove any type for visible items inside dynamic menu items

* refactor: Change type MenuItems to MenuItem

* feat: Add support for dynamic menu items (menu button) inside list widget

* fix: updateMenuItemsSource hook not working when changing from DYNAMIC to STATIC menu items source

* fix: Avoid empty icon name from rendering inside button and menu item

* style: Fix a couple of code callouts

* fix: Update import from TernServer to CodemirrorTernService

* style: fix minor code callouts here and there

* fix: Add check for configureMenuItems.config

* fix: Add wait time after addOption click for DynamicHeight_Auto_Height_spec.js

* fix: Increase the wait time for DynamicHeight_Auto_Height_spec.js to 200ms

Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
2022-12-01 10:25:57 +05:30

272 lines
7.0 KiB
JSON

{
"dsl": {
"widgetName": "MainContainer",
"backgroundColor": "none",
"rightColumn": 1280,
"snapColumns": 64,
"detachFromLayout": true,
"widgetId": "0",
"topRow": 0,
"bottomRow": 1990,
"containerStyle": "none",
"snapRows": 125,
"parentRowSpace": 1,
"type": "CANVAS_WIDGET",
"canExtend": true,
"version": 42,
"minHeight": 1970,
"parentColumnSpace": 1,
"dynamicTriggerPathList": [],
"dynamicBindingPathList": [],
"leftColumn": 0,
"children": [
{
"widgetName": "TreeSelect1",
"displayName": "TreeSelect",
"iconSVG": "/static/media/icon.bd99caba.svg",
"topRow": 14,
"bottomRow": 18,
"parentRowSpace": 10,
"type": "SINGLE_SELECT_TREE_WIDGET",
"hideCard": false,
"defaultOptionValue":
"GREEN"
,
"parentColumnSpace": 19.8125,
"leftColumn": 5,
"options": [
{
"label": "Blue",
"value": "BLUE",
"children": [
{
"label": "Dark Blue",
"value": "DARK BLUE"
},
{
"label": "Light Blue",
"value": "LIGHT BLUE"
}
]
},
{
"label": "Green",
"value": "GREEN"
},
{
"label": "Red",
"value": "RED"
}
],
"placeholderText": "Select option",
"isDisabled": false,
"key": "oe8sn5hbxk",
"isRequired": false,
"rightColumn": 30,
"widgetId": "p65c0i01ic",
"isVisible": true,
"version": 1,
"expandAll": false,
"parentId": "0",
"renderMode": "CANVAS",
"isLoading": false,
"allowClear": false
},
{
"widgetName": "MultiTreeSelect2",
"displayName": "Multi TreeSelect",
"iconSVG": "/static/media/icon.b3e28afb.svg",
"topRow": 31,
"bottomRow": 35,
"parentRowSpace": 10,
"type": "MULTI_SELECT_TREE_WIDGET",
"hideCard": false,
"mode": "SHOW_ALL",
"defaultOptionValue": [
"GREEN"
],
"parentColumnSpace": 19.8125,
"leftColumn": 5,
"options": [
{
"label": "Blue",
"value": "BLUE",
"children": [
{
"label": "Dark Blue",
"value": "DARK BLUE"
},
{
"label": "Light Blue",
"value": "LIGHT BLUE"
}
]
},
{
"label": "Green",
"value": "GREEN"
},
{
"label": "Red",
"value": "RED"
}
],
"placeholderText": "Select option(s)",
"isDisabled": false,
"key": "oe8sn5hbxk",
"isRequired": false,
"rightColumn": 30,
"widgetId": "buewtu97rf",
"isVisible": true,
"version": 1,
"expandAll": false,
"parentId": "0",
"renderMode": "CANVAS",
"isLoading": false,
"allowClear": false
},
{
"widgetName": "Select1",
"isFilterable": true,
"displayName": "Select",
"iconSVG": "/static/media/icon.bd99caba.svg",
"topRow": 50,
"bottomRow": 54,
"parentRowSpace": 10,
"type": "SELECT_WIDGET",
"serverSideFiltering": false,
"hideCard": false,
"defaultOptionValue": {
"label": "Green",
"value": "GREEN"
},
"selectionType": "SINGLE_SELECT",
"parentColumnSpace": 19.8125,
"dynamicTriggerPathList": [],
"leftColumn": 5,
"dynamicBindingPathList": [],
"options": [
{
"label": "Blue",
"value": "BLUE"
},
{
"label": "Green",
"value": "GREEN"
},
{
"label": "Red",
"value": "RED"
}
],
"placeholderText": "Select option",
"isDisabled": false,
"key": "1b9j4l2c65",
"isRequired": false,
"rightColumn": 30,
"widgetId": "vnoxjpwd8a",
"isVisible": true,
"version": 1,
"parentId": "0",
"renderMode": "CANVAS",
"isLoading": false
},
{
"widgetName": "MultiSelect1",
"displayName": "MultiSelect",
"iconSVG": "/static/media/icon.a3495809.svg",
"topRow": 67,
"bottomRow": 71,
"parentRowSpace": 10,
"type": "MULTI_SELECT_WIDGET_V2",
"serverSideFiltering": false,
"hideCard": false,
"defaultOptionValue": [
{
"label": "Green",
"value": "GREEN"
}
],
"parentColumnSpace": 19.8125,
"leftColumn": 5,
"options": [
{
"label": "Blue",
"value": "BLUE"
},
{
"label": "Green",
"value": "GREEN"
},
{
"label": "Red",
"value": "RED"
}
],
"placeholderText": "Select option(s)",
"isDisabled": false,
"key": "z8p14a1gb8",
"isRequired": false,
"rightColumn": 30,
"widgetId": "c2j24v7j6b",
"isVisible": true,
"version": 1,
"parentId": "0",
"renderMode": "CANVAS",
"isLoading": false
},
{
"isCompact": false,
"widgetName": "MenuButton1",
"displayName": "Menu Button",
"iconSVG": "/static/media/icon.0341d17d.svg",
"topRow": 80,
"bottomRow": 85,
"parentRowSpace": 10,
"type": "MENU_BUTTON_WIDGET",
"hideCard": false,
"parentColumnSpace": 19.8125,
"leftColumn": 5,
"isDisabled": false,
"key": "ehx7dguolk",
"rightColumn": 18,
"menuVariant": "PRIMARY",
"widgetId": "33f9n054tq",
"menuItemsSource": "STATIC",
"menuItems": {
"menuItem1": {
"label": "First Menu Item",
"id": "menuItem1",
"widgetId": "",
"isVisible": true,
"isDisabled": false,
"index": 0
},
"menuItem2": {
"label": "Second Menu Item",
"id": "menuItem2",
"widgetId": "",
"isVisible": true,
"isDisabled": false,
"index": 1
},
"menuItem3": {
"label": "Third Menu Item",
"id": "menuItem3",
"widgetId": "",
"isVisible": true,
"isDisabled": false,
"index": 2
}
},
"isVisible": true,
"label": "Open Menu",
"version": 1,
"parentId": "0",
"renderMode": "CANVAS",
"isLoading": false,
"menuColor": "#03B365"
}
]
}
}