## Description
This is a hotfix change for the issue created due to a data tree split
where JSObject has `name` as a variable and a function is modified to
change behavior from sync to async or vice versa.
Fixes https://github.com/appsmithorg/appsmith/issues/19310
## Type of change
- Bug fix (non-breaking change which fixes an issue)
## How Has This Been Tested?
- Manual
- Cypress
### Test Plan
- [ ] https://github.com/appsmithorg/TestSmith/issues/2129
### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
### QA activity:
- [x] 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
## Description
Import Appstate from "@appsmith/ " instead of "ce/"
Fixes # (issue)
> if no issue exists, please create an issue and ask the maintainers
about this first
Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
## Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- This change requires a documentation update
## How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Provide
instructions, so we can reproduce.
> Please also list any relevant details for your test configuration.
> Delete anything that is not important
- Manual
- Jest
- Cypress
### Test Plan
> Add Testsmith test cases links that relate to this PR
### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
## 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
Co-authored-by: Ankita Kinger <ankita@appsmith.com>
## Description
TL;DR:- Remove `uncaughtPromiseRejection:` from the error where the
issue is of a different type.
For example, when the user makes a type error in the async field like
`button.onClick`. Currently, the user notices a
`UncaughtPromiseRejection` error instead of TypeError or ReferenceError.
This PR makes sure to show relevant TypeError or ReferenceError for such
cases.
## Type of change
- Bug fix
## How Has This Been Tested?
- Cypress
### Test Plan
### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
## Checklist:
### Dev activity
- [x] My code follows the style guidelines of this project
- [x] 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
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
## Description
- Added logic to replace async function undefined error with
"{{actionName}} cannot be used in this field".
- This change improves performance for
- ParseJSActions
- Triggers execution
- Each Appsmith framework action execution.
- This change adds all platform functions to evalContext permanently.
Fixes#12179Fixes#13273
Internal discussion for error message :-
https://theappsmith.slack.com/archives/C02K0SZQ7V3/p1667457021297869?thread_ts=1667385039.225229&cid=C02K0SZQ7V3
## Type of change
- Bug fix (non-breaking change which fixes an issue)
- Performance improvement
## How Has This Been Tested?
- Manual
- Jest
- Cypress
### Test Plan
- [ ] https://github.com/appsmithorg/TestSmith/issues/2086
### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
## 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
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
## Description
Appsmith internally maintains the data of all the entities as a collection called dataTree. This data tree stores evaluated values and errors ( evaluated props ) in entity object with key `__evaluation__`.
In this PR, we move the evaluated props out of the dataTree for worker code to make `deepCloning` and dataTree sanitization i.e., `JSON.parse(JSON.stringify(dataTree))` faster.
TL;DR
Trimming dataTree object size by evaluatedProps to make evaluation faster.
Fixes#14710
## Type of change
Performance change
## How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Provide instructions, so we can reproduce.
> Please also list any relevant details for your test configuration.
> Delete anything that is not important
- Manual
- [ ] https://github.com/appsmithorg/TestSmith/issues/2124
- Jest
- Cypress
### Test Plan
> Add Testsmith test cases links that relate to this PR
### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR)
## Checklist:
### Dev activity
- [ ] My code follows the style guidelines of this project
- [x] 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:
- [x] 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
* added new function inside parse js actions for view moe
* fixing test cases
* added evaluateSync with isTriggered false
* Add types
Add switch case for diff.event
Add function get back app mode
* Change foreach loops to for of
* Dont return jsUpdates from view mode save resolved since no operation is happening
Change viewModeSaveResolvedFunctionsAndJSUpdates -> viewModeSaveResolvedFunctions to reflect
what it's functionality is
* Refactor JSObject code
* Refactor code for JSobject
* remove any
* export parsed object's type from ast
* create function for deleteResolvedFunctionsAndCurrentJSCollectionState
* Code review changes
* Fix tests
* Change returns in for of loops to continue
Remove try for evaluate sync
Js updates return
* Fix bug
* Fix bug
Co-authored-by: Rimil Dey <rimil@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
* 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>
* added multi select back
* (WIP): Complete the dynamc height update logic
* (WIP): Dynamic height logic
* (WIP): Container computation logic, Next steps: Prevent reflow when resize is disabled. Fix logic of widgets randomly changing positions (Debug)
* Fix logic in container computations
* Integrate for PoC
* fixed the no initial load dynamic height updates
* Stop vertical resize and reflow when dynamic height is enabled for a widget
* added another container in text widget
* enabled dynamic height for container widgets
* removed dynamic height feature from list widget
* Fixed Button and Input components height increase
* added an experiment to overflow the content if maxHEight is less
* removed the ref of Textwidget by mistake, added it back
* fixed text widget height overflow problem with a little hack
* added long labels with text
* fixed the table scroll issue
* overflow fixed for json form widget
* added extra 8px height for Switch, Rating and Checkbox Height
* (WIP): Resolve issues
* (WIP): Fix widget padding issue
* added overflow container for Radio and Switch group widgets
* (WIP): Have modals work with dynamic height
* added the overlay and the handles
* added dragging behavior to the dots
* fixed the overlapping with the selection tool
* (WIP): Fix issues reported
* now we can update the property pane values back from overlay handles
* now we can update the property pane values back from overlay handles
* (WIP): Fix table widget
* Fix package.json
* Remove unit tests temporarily
* Fix unit test
* (WIP): Fix modal resize. Fix cursors. Fix border issue on non-resizable widgets
* fetch component heights using the requestAnimationFrame callback
* behavioural changes
* (WIP): Fix issues on the platform
* Update main container size appropriately
* more behavioural changes
* overlay now only be visible when hovering over the dots
* grid showing and widget reselecting
* added onfocus and onblur events to property pane listeners
* added onfocus and onblur events to property pane listeners
* added a range slider for min and max
* added demarcations for slider values
* (WIP): Fix platform workflows for dynamic height
* Fix issues with widgets
* Fix removed import
* - Add missing cypress files
* set the limits
* limit increase on change
* Fix z-index of min max limit indicators. Fix unused-vars warnings
* Fix Table Widget and Text Widget issues
* Fix: all the bugs in the bug master list for DH (#16268)
* changed the zindex for the signifiers
* showing signifiers only when the widget is selected
* made changes suggested by Momcilo
* activate the dots when the fields are active
* created a new centered dot handle
* removed overlays on focus and made the border more like deisgn
* handles on top of other widgets
* hide the overlay when multiple widgets are selected
* added a white border
* added a white border
* bug #15509 resolved
* changed the minDynamicHeightLimit to 2 instead of 4 to fix the Bug #15527
* removed the height auto fix from BaseInputComponent to fix the Bug #15388
* removed the condition to not ccalculate dynamic height when the row difference is less than 2 to fix the bug 15353
* made fixes for the bug #16307
* made fixes for the bug #16308
* made fixes for bug 16310
* made fixes for the bug #16402
* removed some log statements
* made fixes for the bug #16407
* fixed label problem found in the issue #16543
* made fixes for the issue #16547
* made fixes for the bug #16492
* redeploy
* (WIP): Fix to make this branch functional
* imported LabelWithTooltip back from design system
* signifier is now centered
* filled the signifier with primary color
* overlay hidden while dragging
* made the signifier dashed border also draggable
* Fix issue #16590 (#16798)
* set the limits to 4 rows
* replaced the static 40 value
* added signifiers for modal widget
* added signifiers for modal widget
* tried solving the scroll issue for widgets when there are limits
* solved the height problem using ResizeObserver
* (WIP): Fix maxDynamicHeight issue with container widgets:
* made the changes as per the review
* fixed the issue for input widget when label gets out of border
* hide text widget overflow options if auto height is enabled
* (WIP): In view mode, invisible widgets now donot take space (#16920)
* (WIP): In view mode, invisible widgets now donot take space
* (WIP): Enable the feature where invisible widgets in view mode don't take space to all widgets irrespective of the dynamic height feature
* Remove Replay conditional
* removed the scroll container for container type widgets
* removed the scroll container for container type widgets
* updated the hook to set overflow none for text widget
* fixed the should dynamic height logic to respect the min height limit
* Modal widget adheres to dynamic height (#16995)
* Modal widget adheres to dynamic height
* WIP: POC: fix dynamic height issues (#16996)
Fix height less than 4 issue. Fix JSONForm adherence to min and max height
* POC: Dynamic height undo redo issue (#17085)
* Revert debouce timeout
* (WIP): Fix issue with undo-redo in dynamic height
* fix: Dynamic height issue fixes (#17153)
* Dynamic height issue fixes
==
- Fix issue where nested widgets did not ensure parent dynamic height updates
- Fix issue where Modal widget updates came in subsequent renders
- Fix issue where JSONForm collapses
- Fix performance issue for independent updates
* Use functions to get min and max dynamic height
* Fix issue where variable might have been undefined
* added the dynamic container into the deploy mode as well
* added overflow-x hidden when overflow-y is active in the dynamic height container
* fix: Dynamic height Issue fixes (#17204)
Fix preview mode invisible widgets. Fix Tabs widget dynamic height.
* removed a console.log statement
* removed the slider control file
* imported the LabelWithTooltip from the repo rather than ds
* word-break CSS rules added for Switch and Checkbox widget when Dynamic Height is enabled
* abstracted the check for dynamic height with limits enabled as isDynamicHeightWithLimitsEnabledForWidget
* abstracted the static value of 10 in dynamic height overlay to GridDefaults
* abstracted min and max dynamic height limits to getters
* fix: replaced all the refs for simpler widgets (#17353)
* replaced all the refs for simpler widgets
* removed the updateDynamicHeight from componentDidUpdate in BaseWidget
* added back lifecycle methods back to BaseWidget
* removed the contentRef from SwitchGroup and Table
* updating the height from the auto height with limits as well
* some hacks to make the limits work
* working solution
* used setTimeout to send an update to updateDynamicHeight from overlay update
* removed a log
* added requestanimationframe in settimeout
Co-authored-by: Ankur Singhal <ankursinghal@Ankurs-MacBook-Pro-2.local>
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* Fix issues caused during merge
* Remove unneeded derived property
* removed more unnecessary code which should have been removed after removing the ref dependency
* fixed the maxDynamicHeight issue
* Fix issue where property configs were not being sent
* fix: Auto Height Feature - add selectors for tests (#17687)
Add selectors for auto height cypress tests
* fix: removed height auto default theme (#17415)
removed height auto css rule from the default theme
Co-authored-by: Ankur Singhal <ankursinghal@Ankurs-MacBook-Pro-2.local>
* fix: Auto Height Feature - Resolve issues and restructure code (#17686)
* Fix issues in dynamic height. Restructure code and reduce abstraction leaks
* Fix typescript issues
* Update based on review comments. Comment migrations, as a cyclic import is causing the jest tests to fail.
* Remove unused imports
* Decrease code nesting
* added the base styles for the overlay like position and z-index in its styled component css
* used the isDynamicHeightEnabled prop to set the height of SwitchGroup and RadioGroup widgets from 32px to 100% in case of inline mode
* fix: Auto Height - Resolve issues (#17737)
* Fix Tabs Widget showTabs toggle based auto height. Revert removal of BaseWidget code. Remove box-intersect and use a bruteforce algorithm. Add base logic for having containers collapse due to hidden child widgets
* Hide scroll contents and overflow property pane controls when dynamic height is enabled
* Removed the class property expectedHeight from BaseWidget as it is not useful in the overlay logic after some changes
* fixed the left alignment issue of label in the rich text editor by adding some styles applied only when the dynamic height is enabled
* fixed the input field stretching issue in case of Dynamic height by adding some CSS styles when isDynamicHeight is true
* Fix failing modal widget cypress tests
* Fix issue with scrollContents and Tabs Widget defaulTab
* added a little bit padding of 4px to the right of scroll container of dynamic height with limit
* Add test locators for resize handles
* removed the dynamic height logic from the table widget
* fix: Auto-Height invisible widgets (#17849)
* Fix issue where invisible widgets were still taking space
* Make sure to collapse only if dynamic height is enabled
* Fix issues with reflow (not the invisible widgets)
* Fix container min height issues
* Fix reflow with original bottom and top values. Testing needed
* Fix invisible widgets
* fix: enabled dynamic height for stat box widget (#17971)
enabled dynamic height for stat box widget
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: added a min height to rich text editor so that it does not collapse (#17970)
added a min height to rich text editor so that it does not collapse
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* Fix issue with resizing auto height widget
* Add helper text to educate users regarding the scroll disconnect in WYSIWYG
* fix: Auto Height Fixes (#18111)
AUTO HEIGHT FIXES
- Fix JSONForm height discrepancy
- Fix issue where widgets moved below the other
- Fix droptarget height after parent container resize
* fix: sliced up the DynamicHeightOverlay component a little bit (#18100)
* sliced up the DynamicHeightOverlay component a little bit
* more refactoring
* more refactoring
* used release event emitter and refactored more
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: rich text editor center alignment issue (#18142)
* removed the center alignment from rich text editor
* dummy commit
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: old DSL container collapse (#18160)
* Fix issue where old containers from old DSLs used to collapse when auto height was enabled
* Fix issue where old containers don't allow new widgets to be added when auto height is enabled, this is because the shouldScrollContents is undefined
* fix: input widgets issue (#18172)
fixed the auto height not working issue
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: preview deploy mode (#18174)
fixed the preview and deploy mode
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: auto height limits label intersection with handle dot (#18186)
fixed the position of the limits label to the right so that it will not intersect with the handle dot
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: auto height limits rich text editor min height (#18187)
decrease the min height of the RTE so that it does not have the boundary issue with the max limit when auto height with limits is enabled
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: grammatical error in the help text (#18188)
changed react to reacts in the helpText of the dynamic height property in the proeprty pane
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: auto height tabs double scroll (#18210)
solved the issue by disabling the scroll for the child canvas widget in the tabs widget
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: auto height limits resizing (#18213)
* fixed the auto height limits resizing issue
* made the auto height overlay independent of isResizing and used its own property to show the grid
* some more refactoring
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* dummy commit
* fix: old apps container issue (#18255)
filtered out the widgets which are detached from layout
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: fixing auto height in childless containers. (#18263)
fixing auto height in childless containers.
* task: Dynamic height reflow fixes in Branch (#18244)
dynamic height reflow fixes
* fix: compact label issue and min and max limits numeric input (#18282)
fixed compact label issue and turned min and max limits to numeric input
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: LabelWithTooltip help icon fix
* fix: NaN and min limit for min and max (#18284)
* fixed compact label issue and turned min and max limits to numeric input
* fixed NaN and set min to be 4
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: validation issues for min max (#18286)
* fixed compact label issue and turned min and max limits to numeric input
* fixed NaN and set min to be 4
* validations start working min max
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* added a full stop to container scroll helper text
* validations start working min max
* dummy commit
* feat: stop resizing auto height widgets vertically because of Drag n Drop Reflow (#18267)
* reflow fixes
* stop resizing auto height widgets vertically because of Drag n Drop Reflow
* feat: Analytics for Dynamic height (#18279)
* Fix canvas min height issue and invisible widgets issue and remove logs and fix issue where widgets overlapped when coming back from preview mode to edit mode
* Fix issue with containers not respecting auto height and decreasing height
* Fix issue with modal widget not hugging contents, and container widgets never become visible after going invisible
* Fix issue where existing containers don't have correct min height for child canvas
* fix: canvasLevelsReducers test (#18301)
fixed the canvasLevelsReducers test
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: removed auto height min max config from widget features (#18316)
removed auto height min max config from widget features
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: Fixing Modal Height updates (#18317)
Fixing Modal Height updates
* fix: text widget background auto height (#18319)
added background color of Text widget back to the auto height container
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* test: cypress tests for auto height (#17676)
* Added tests for dynamic height
* updated tests for another usecase
* moved locators into commonfile
* updated common method
* added tests for some more widgets
* Added tests for jsonForm / Form widget
* Updated the test
* updated test for multiple text widgets
* updated test with few more usecases
* updated the dsl
* updated tests for text change
* updated tests based on new changes
* updated cypress test fixes
* fix: auto height container merge poc wrt release (#18334)
updated the poc wrt PR already merged in the release regarding the auto height container
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: renamed auto height overlay components and added some tests (#18333)
* renamed auto height overlay components and added some tests
* replaced the 10 value with GridDefaults
* avoiding event to reach drop target
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* updated tests
* Merge all code into one branch
* Fix failing AutoHeightcontainer test
* fix: Fix reflow computations which were causing widget overlap (#18300)
* Fix reflow computations which were causing widget overlap
* Fix issues with parent container height and overlapping widgets
* Remove console logs
* Revert comment
* Fix issues related to reflow of containers
* feat: Making getEffectedBoxes a Recursive function in autoHeight Reflow (#18336)
Making getEffectedBoxes a Recursive function in autoHeight Reflow
* Return null for invisible widgets from withWidgetProps
* Remove duplicate import
Co-authored-by: rahulramesha <71900764+rahulramesha@users.noreply.github.com>
* Remove missed console log
* fix: Label position gets deselected on selecting already selected option (#18298)
* fix: Label position gets deselected on selecting the already selected value
* Added migration for Currency & Phone input widgets
* simplify migration function using a utility
* combine conditions
* Increments LATEST_PAGE_VERSION
* Update DynamicHeight_Visibility_spec.js
updated a check wrt auto height
* Handling Modals for canvas size calculations
* fix: migrate label position test failing issue (#18365)
fixed migrate label postition test failing issue
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* removed the two unwanted imports from DSLMigrations to fix client build
* fix: Auto height zero and limits issue (#18366)
fixed the auto height zero and limits issue
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* fix: Auto height regression issues (#18367)
* Fix auto height regression issues #18367
* feat: auto height migrations (#18368)
Add auto height migrations
* Increase file caching size
* Use manual array for list of auto height enabled widgets
* Fix cypress test dsl versions
* Revert changes to shouldUpdateHeightDynamically
* Update test results based on code changes
* Marginally increase the workbox file size cache
* review comment incorporated for test spec
* Update container auto height property on drop
* added small wait for validation
Co-authored-by: Ankur Singhal <ankur@appsmith.com>
Co-authored-by: rahulramesha <rahul@appsmith.com>
Co-authored-by: Abhinav Jha <zatanna@Abhinavs-iMac.lan>
Co-authored-by: Ankur Singhal <ankursinghal@Ankurs-MacBook-Pro-2.local>
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
Co-authored-by: rahulramesha <71900764+rahulramesha@users.noreply.github.com>
Co-authored-by: Albin <albin@appsmith.com>
Co-authored-by: Aswath K <aswath.sana@gmail.com>
Co-authored-by: NandanAnantharamu <67676905+NandanAnantharamu@users.noreply.github.com>
Co-authored-by: Apple <nandan@thinkify.io>
* Evaluations and Linting now runs on separate web-workers for a much faster and responsive coding experience on Appsmith.
* Removed worker-loader webpack plugin.
## Problem
**Why do we need validation dependency?**
- When on change of particular property value if other property needs revalidation then current evaluation architecture do not support such validation run.
https://www.notion.so/appsmith/Validation-Dependency-d7623a5625bd4aa187a3ae2372d3ac07
**Issues to resolve**
Fixes#15303Fixes#17159
Fixes https://github.com/appsmithorg/appsmith/issues/16170
## Solution
**New Validation Flow**
validate a property after its evaluation and check if there are other properties that need to revalidate on a change of this value.
- if yes run validation for those properties.
How does validation dependency get created?
- every widget’s property will keep static `dependencies` array in `validation` property like shown below.
```jsx
{
validation: {
type: ValidationTypes.FUNCTION,
params: {
fn: defaultOptionValueValidation,
expected: {
type: 'value1 or { "label": "label1", "value": "value1" }',
example: `value1 | { "label": "label1", "value": "value1" }`,
autocompleteDataType: AutocompleteDataType.STRING,
},
dependentPaths: ["serverSideFiltering", "options"],
},
dependencies: ["serverSideFiltering", "options"],
}
}
```
This `dependentPaths` array will be used to form validationDependencyMap.
#### Changes
- The code editor component wasn't re-rendering for a few cases. Due to this updates were not shown until the component state was changed.
- In CreateFirstTree, After evaluateTree we run `validateTree`. In `validateTree`, we validate all the properties in `validationPaths`. Here, if the errors were resolved on revalidation, it didn't reset the validation errors stored in data tree before. Now, this PR adds the reset logic.
- Created `validationDependencyMap` to re-validate properties on change of the property their validation depends upon.
- After each property evaluates in `updateDataTree`, we check if re-validation is needed, if yes then we re-validate dependent properties.
## Type of change
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
- jest test
**Test Plan**
https://github.com/appsmithorg/TestSmith/issues/2078
## Checklist:
- [x] 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
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my feature works
- [x] New and existing unit tests pass locally with my changes
* update rts logic to use updated shared AST logic
* Make changes to naming conventions
* Add test cases for RTS and rename ast functions
* Add running jest test to RTS workflow
* Install dependencies and then trigger jest tests in workflow
* Close server connection after test ends
* Remove logs
* Improve jest test descriptions
* fix: updated skip functionality
* update: type of logs to add occurence count
* update: reducer function to merge the new logs
* update: added dependance on last log's occurence count
* add: UI to show the occurence badge
* fix: added null check for dependency array
* update: omit occurence from compare fn
* update: changed function call to store logs array directly
* update: moved from saving logs one by one to array
* fix: replaced forEach with reduce
* test: added functions for console log grouping
* feat: updated warning grouping color
* update: moved function to reducer file for jest tests
* Initial commit
* Remove arrow function params from identifiers
* Remove invalid identifiers from extracted identifiers
* Remove invalid identifiers which are derived from function params and variable declarations
* Fix typo error
* Correctly remove invalid identifiers
* Remove invalid names from identifier list
* fix build failure
* Add Promise to list of unacceptable entity name
* Keep track of unreferenced identifiers in bindings
* Add Global scope object names as unusable entity names
* Keep track of unreferenced identifiers
* Prevent traversal of data tree for addition of new paths and entities
* Sync linting in trigger fields
* Support linting of invalid properties
* Fix linting reactivity bug in trigger field
* Remove unused objects
* Fix conflict in merging
* Lint jsobject body for function change
* Remove unused map from tests
* Code cleanup
* Modify jest tests
* Update jest tests
* Fix cypress tests
* Code cleanup
* Support linting of multiple bindings
* Set squiggle line as long as invalid property length
* Add jest tests
* Minor code refactor
* Move ast to shared repo
* Rename confusing identifiers
* Improve naming of functions and their return values
* move shared widget validation utils and constants to shared folder
* Add jest test for invalid entity names
* Add cypress tests
* Modify test comment
* Extend list of dedicated worker scope identifiers
* Resolve code review comments
* Resolve review comments
* Annonate code where necessary
* Code refactor
* Improve worker global scope object
* Code refactor
* Fix merge conflict
* Code refactor
* Minor bug fix
* Redundant commit to retrigger vercel build
* Add null checks to dependecy chain
For nested functions, the trigger meta is not available for subsequent functions. So in cases where the dynamic trigger has the relevant info, we can use that to update the trigger meta and then use that meta to display the source of the logs.
Fixes#16515Fixes#16483Fixes#16514
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
* feat: capture console from across the app (#15676)
* create: console override file
- Adds methods to override the given console functionality to capture the console statements written by the user
* update: evaluate function to extract console op
- Added logs extraction for both sync and async functions
- Adding them to the return object of the evaluations
* update: timestamp field to log addition method
- Added optional argument to function definition for inputting the timestamp of the log
- This is done to maintain timings of the execution of the log
* update: interface for log objects
* update: post function execution logic
- Added logic to push the logs generated by the evaluation to the logs store
* update: added handling for sending nested fns
- While console logging functions or objects that had functions was causing an error
- Added a check for removing functions and replacing them with name of the functions instead
* chore: added types and comments
* fix: updated evaluation tests
* fix: added check for log in returned obj
* update: added the source data in the trigger logs
- Removed on js execute logs from showing up here since they are already handled. If they are not removed, they will show up on the first page load twice
* add: ellipsis function for log title string
- This is to keep big object contained in the first line only
* update: made logs reset function public
* update: resetting logs before new eval
- Logs object has to be cleared before next eval can happen to make sure there are no roll overs from last evals
* chore: added comments
* add: extracting logs after eval of functions
* add: storing logs to redux after eval
* refactor: updated types
* add: func to store logs w/ severity as arg
* refactor: updating func call for user logs
* chore: fixed elipsis logic
* chore: removed unused type
* chore: updated preview text logic
* add: type for transfer object post eval
* update: aded new userLogs obj to dataTreeEvaluator
* update: passing logs from object to saga
* update: parsing received userlogs
* refactor: used predefined fns
* refactor: moved resetlogs to common func
* chore: updated comments
* feat: update redux store and UI for system + user logs (#15936)
* update: updated types for the redux store
- Added category and data fields in the log object
* update: types of log redux store
* update: calls for the console log store function
* update: icon fetch func for log item UI
* update: syncing UI with the new designs (WIP)
* chore: fixed lint error
* update: filters for logs
* update: icon for clearing log filters
* update: filtering function
- Added checks against category and severity
* update: logitem UI
- updated type of the UI object
- added css based ellipsis
- added toggle for console logs
- added array of json views for objects/arrays
- css tweaks
* update: debugger cta
- Removed copy option
- Updated UI
* update: logic for expanding user logs
- Removed debugger CTA
- Fixed position for the expand/collapse icon
- Added joining char for when the log is expanded
* update: assets for new UI
- updated colors
- Added new icon
* hotfix: ternserver code
* add: search across the text of log
* update: icons for the app
* update: click to expand/collapse of logs
* fix: search keyword update on change within JSObjects
* fix: alignment of log items in both states
* update: jest tests for debugger errors and filter
* fix: drop down options color issue
- the icon used was not the standard one
- We have a lot of duplicates of the same icon
* fix: synced with ADS changes on release
* fix: remove dependency from old icon
* add: cypress selectors for automation testing
* fix: replaced static messages with variables
* fix: updated the dependency map for filter
* fix: height of the filter drop down
* fix: chaining logic for search filter
* fix: syncing the padding values to ADS
* fix: help icon visibility issue
* fix: width of filter dropdown
Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>
* add: e2e tests for console statements using IIFE
* test: added test for console logs in jsobjects
* fix: functionality of expanding context menu on msg click
* fix: added try catch and handling for numbers
* hotfix: handling unwanted toasts
* fix: alignment and clickable cursor
* fix: alignment of expanded span in console logs
* add: analytics event on new console log created
* fix: added handling for boolean and undefined
* fix: removed log reset from common func
- Whenever we are creating global DTO, the logs were being reset. This caused logs to reset whenever a promise was encountered in the logs.
* fix: combined JS log saving to widget process
* add: new analytics event on filter changed
* update: added handling for empty value
* update: removed comma between multiple logs
* update: synced test changes with release
* update: removed unused wait timings
* Logs spec script update
* update: ts methods in log spec e2e test
* logs spec update
* update: removed body clicks from test script
* Logs spec update
* update: removed ask from google option
* refactor: ui fixes
* fix: text selection of logs
* fix: updated dropdown width management
* update: made the flushlogs function async
* update: added handling for promises
* update: added test with promises fail and pass
* fix: added sync variant to work for sync objects
* refactor: commented out unused tests
* update: exceptions in the name of log entity
* fix: pagination of logs to handle dynamic data stream
* fix: removed unused async function
* fix: moved logs handling to separate saga
* fix: color for context menu text
Co-authored-by: Rishabh-Rathod <rishabh.rathod@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
* refactored code for invite modal changes for rbac
* code splitted some more files for refactoring invite modal component
* removed unused imports
* created new variable for handlers
* updated an import
* reverted a change
* refactored a section of code
* fixed a cypress test
* fixed a cypress test
* updated imports
* exported some entities
## Description
This reverts commit dbcc643ccf.
Fixes#16378
## Type of change
- Revert changes which impacted performance
## How Has This Been Tested?
Manual performance verification
@ramsaptami
## Checklist:
- [ ] 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
Co-authored-by: ohansFavour <fohanekwu@gmail.com>
* POC for Shared AST Logic using Yarn Symlinks
* fix: preinstall script for bundling shared packages
* Merge commit
* fix: updated the script to link, unlink the package as shared dep
* fix: updated dependencies
* Add a post-install script and fix yarn.lock file
* Remove commented code
* fix: added verification script, readme, moved scripts to shared
* Extraction of AST Logic into shared/ast folder
* Add jest test script
* Replace hardcoded ast Logic use with Shared AST module
* Replace parse code with getAST
Co-authored-by: Aman Agarwal <aman@appsmith.com>
* POC: Datatype handling autogenerated naming params client
* added array and file datatype
* handles all primitive types
* paramproperties convetred to map instead of array
* parametermap inversion
* handled no bindings bug
* feat: Consume action execution payload changes w.r.t. data type mapping (#15555)
This commit does the following things
1. It consumes data type metadata from payload
2. It consumes the mapping between the pseudo binding name and original binding name
3. It doesn't apply any logic w.r.t. data type identification after consumption
* added comments and cleaned code with proper datatypes
* removed URLencoding for binding params names
* feat: Remove URL decoding on param keys from server-side codebase (#15555)
* Remove unused import (#15555)
Co-authored-by: ChandanBalajiBP <chandan@appsmith.com>
Add Autocomplete support for
- local variables
- JSObjects
- ButtonGroupWidget
Remove Autocomplete suggestion for
- `eval`
- undefined global values like `tabs`
* Remove Dropdown, SearchComponent from this repository
* Change the imports so that SearchComponent and DropdownV2 come from the design system
* Add yalc
* default imports become named imports
* remove the yalc package, add the beta version
* Change import for SearchComponent in TableHeader
* Updated Label Config
* chore: Refactor dependency Map code (#14944)
* feat: Triggerpath dependency (#15015)
* Introduce triggerpathdependency
* Code cleanup and refactor
* add jest test for removeLintErrorsFromEntityProperty
* Add triggerfieldDependencyMap jest tests for datatreeEvaluator
* Add cypress tests
* Revamp linting architecture
* Lint when creating first tree
* Prevent modification of unevaltree while linting
* improve linting performance
* Reuse allkeys for all dependencymap creation
* Add jest test for linttree
* Update jest and cypress tests
* Modify linting folder name
* remove redundant commits
* update evaluation jest tests
* Fix failing test
* Update cypress tests
* Code clean up and performance upgrade
* Update cypress tests
* Use unevalTree as global data for non-trigger field
* Improve global data creation time
* Cypress fixes
* Improve creation of global data for linting
* Only generate global data with functions when needed
* remove all unused variables
* Add overriden commit
* remove lint erros before linting
* fix merge conflicts
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Co-authored-by: Nikhil Nandagopal <nikhil.nandagopal@gmail.com>
Co-authored-by: Rishabh Rathod <rishabh.rathod@appsmith.com>
Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
## Description
This PR adds [crypto web api](https://developer.mozilla.org/en-US/docs/Web/API/Crypto) support in linting
Fixes#15469
## Type of change
- Bug fix (non-breaking change which fixes an issue)
## How Has This Been Tested?
- [x] https://github.com/appsmithorg/TestSmith/issues/1996
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my own code
- [x] I have commented on my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my feature works
- [x] New and existing unit tests pass locally with my changes
## Description
Previous version of the astring library doesn't preserve parenthesis when transforming AST to JS Code. This led to syntax error when null coalesce and logical expressions are used together.
The latest version of astring library fixes this.
<img width="1291" alt="screenshot_2022-07-16_at_04 29 52" src="https://user-images.githubusercontent.com/46670083/179581475-863d70f2-0886-403a-a667-a32ad93e76b7.png">
Fixes#15283
## Type of change
- Bug fix (non-breaking change which fixes an issue)
## How Has This Been Tested?
Test plan
- [x] https://github.com/appsmithorg/TestSmith/issues/1970
## Checklist:
- [x] My code follows the style guidelines of this project
- [x] 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
* Introduce triggerpathdependency
* Code cleanup and refactor
* add jest test for removeLintErrorsFromEntityProperty
* Add triggerfieldDependencyMap jest tests for datatreeEvaluator
* Add cypress tests
* Revamp linting architecture
* Lint when creating first tree
* Prevent modification of unevaltree while linting
* improve linting performance
* Reuse allkeys for all dependencymap creation
* Add jest test for linttree
* Update jest and cypress tests
* Modify linting folder name
* remove redundant commits
* update evaluation jest tests
* Fix failing test
* Update cypress tests
* Code clean up and performance upgrade
* Update cypress tests
* Use unevalTree as global data for non-trigger field
* Improve global data creation time
* Cypress fixes
* Improve creation of global data for linting
* Only generate global data with functions when needed
* remove all unused variables
* Add overriden commit
* remove lint erros before linting
* fix merge conflicts
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Core changes in this PR
Prevents logging of lint warnings (not errors) in the debugger
Refined message for using 'await' in non-async functions
Show lint error messages that include line numbers (previously weren't shown)
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
* fix: JsObject parsing
* fix jest test and add types
* remove logs from test
* Add jest test to verify this
* Add perf metric and
* fix: jsObject stale value
- refactor updateJSCollectionInDataTree
* Refactor JSObject code
* fix import path
* refactor and fix
* undo debugging change
* Add comments
* Add Ast for getting function params
* Fix and add test
* remove comment
* remove comment
* Resolve comments
* Client changes 1
* add DSL functionality
* Temp commit for refactoring changes
* Do I even know what I'm doing here?
* chore: Second GS layout
* Update: Visibility conditional outputs for schemas
- Added the output from conditional outputs for schema children too
* Update: Entity selector visibility control
- Added logic for controlling visibility of sub components via the JS expressions system
* Update: Passing disabled prop to toggle button
* Update: Passing disabled prop to toggle btn
* Update: Styled component for toggle button
- Added disabled styles based on the disabled prop sent to the toggle form view JSON button
* Update: configProperty role in Entity Selector
- Removed dependance of the configProperty of the entity selector children to it's parent component
* Update: type of placeholder key
- Made placeholder key from form config JSON to accept either string or an object
- Earlier only string was accepted
- This is for pagination component
* Update: Added placeholder control for pagination
* Client changes 1
* add DSL functionality
* Do I even know what I'm doing here?
* fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design
* fix: updated tooltip component for wrong ui on entity explore
* temp triggers
* fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design (#12395)
* fix: updated uqi forms ui, clubbed JS switch button to ads, updated tooltip design
* fix: updated tooltip component for wrong ui on entity explore
* fix: updated tooltip ui, where condition placement, sort by ui
* temp form data access logic
* fix: updated sorting type width ui
* fix: updated ui for spacing, width and text issues
* Update: Type for tooltip of UQI forms
- Added option to send an object to the tooltipText object.
- This allows for composite components like pagination to have tooltips for each sub component
* Update: tooltip for pagination component
- Added handling to parse the tooltip for multiple components.
- This allows for composite components like pagination to have tooltips for each sub component
* Update: Type cast for tooltip component
- Made the content passed to tooltip component as a string only
* Update: Fixed tooltip component CSS
* Update: Dropdown option component
- Added a tooltip wrapper to each option
- This is to show on hover text like disabled state
* fix: updated ẇhere clause broken ui for condition
* Add: functions to check and extract expressions
- Loop through the formConfig and find any keys that have a value that is bindable
- Used pre defined regex to check if value is a moustache binding
* Add: Types for evaluated form configs
- Added types for the form configs to be evaluated and their output post eval
* Add: Flow to run the form config
- Run the form config and update the result to the redux state
* Update: Name of the type for formconfigs
- Updated since it was clashing with a component of the same name
* Add: Function to enforce config type checks
- This is done so that the improper configs can be weeded out and the rest of the form can be shown
* Add: Function to update evaluated config
- Added option to update the config if it's values needed evaluation
* Add: Type check for schema sections
* Update: Error handling for invalid control type
- We were throwing an exception till now, changed it to a warning text
* Add: Exposed tooltip for dropdown option disabled state
* Update: switch to json mode functionality
- Added logic to convert data to a string rather than an object when the first switch to JSON mode happens
* Update: Added key to tooltip for dropdown options
* Trigger API modification
* Add: function to fetch default trigger URL
* Update: Made URL optional in dynamic trigger config
* Update: Dynamic trigger API call
- Made the API call for dynamic triggers have URL as optional field
- Added type check to the response of the API call
* Update: resp type for trigger APIs
* Update: Moved code to utils folder
- Moved functions for UQI form eval processing to utils file
* Update: passing original controltype to JS switch
* Update: config for JSON editor mode
- Updated the config to have different options for JSON mode depending on the original control type
* Update: Connected line numbers flag to config
* Revert: CSS changes for tooltip
* Refactor: Removed consle
* Add: type for the config of dynamic values
* Add: Feature to evaluate config for triggers
* Refactor: fix type check errors
* fix: dropdown ui width with text alignment
* Update: fixed selector for dynamic values
* Update: selector call for fetchDynamicValues
* Add table header index prop for columns selector
* migration partial commit
* migration partial commit
* Refactor: removed unused import
* Update: reused function for checking dynamic value
* Update: removed unused import
* Fix format JSON issues
* Retrieve binding paths from entity selector components
* Fixes 6 remaining issues with UQI implementation
* Fix dropdown issues
* Fix dropdown height issues and fixes triggering of APIs when option is deselected
* Migration changes
* Fix QA generated UQI issues
* Fix projection component height and route change logic
* Fix multi select dropdown placeholder text issue and json stringify issue with switching view types
* Reset entity type value when command value changes
* Test changes
* Review comments
* Moved migrations around
* Corrected import statement
* Added JSON schema migration
* Updated schema version
* perf improvements and filter dropdown options feature
* Fix Code mirror component config for toggleComponentToJson input fields.
* Fix prettier issues
* fix prettier issues
* Fix style issues as a result of the merged conflicts
* Fix failing test case
* Fixed a few other flows (#14225)
* Fixed a few other flows
* Review comments
* Fix generate CRUD, fix evaluation of dynamic bindings and fix various styling issues.
* More fixes (#14367)
* Factor in the root formconfig parent key.
* Fix flickering issues, and evaluatedFormConfig issues
* fix: Teeny bugs (#14455)
* Teeny bugs
* Added previous functionality as is
* Improvements in the way we fetch dynamic values
* Fix stringiification issue and cyclic dependency issues
* Resolve projection component values deletion
* Resolve merge conflicts and fix prettier issues
* fix: Tsc issues
* Fix property pane connection navigation
* updating ee locator
* updating inputfield locator
* dropdown locator update
* Merge conflict not properly resolved.
* Fix s3 spec
* Fix Mongo Spec
* Fix some more tests
* fix: prevent cyclic dependency when switching to js mode (#14668)
* add delete events for change from array to string in diff
* add test to assert absence of cyclic dependency error when switching to js in switchgroup widget
* Assert that evaluation is not disabled when no cyclic dependency happens
* Cypress test preparations for google sheets and form controls
* Fixed a few test errors (#14874)
* Add: unit tests for uqi UI updates
- view type tests
- conditional output extraction
- processing conditional output to handle view/enabled state of the component
* Add: completed isValidFormConfig test
* Update: improved tests for update config
- These tests cover the functionality to update a section config after it's components are done evaluating
* Fix failing cypress tests and cyclic dependency issue
* Fixes some more tests
* Fixed migration of row objects (#14896)
* Bumped the version of design system package
* Update: reverted change to EE selector
* Fix deletion pointer
* Update: selector for js on load spec
- Synced with changes related to ADS dropdown
* Fix mongoDBShoppingCart spec
* Remove comments
* Fix: mongo shopping cart test failures
* fix: mongo shopping cart spec
* Dummy push to retrigger vercel
* fix: mongo shopping cart spec
* Update MongoDBShoppingCart_spec.js
* fix: removed unused click away
* dummy commit
* Update: moved helper functions to separate file
* Add: added tests for saga functions
- Worked on testing for
- extractFetchDynamicValueFormConfigs
- extractQueueOfValuesToBeFetched
* Add if check for queueOfValuesToBeFetched
* Resolve review comments
* Empty-Commit
Co-authored-by: Irongade <adeoluayangade@yahoo.com>
Co-authored-by: Ayush Pahwa <ayush@appsmith.com>
Co-authored-by: Aman Agarwal <aman@appsmith.com>
Co-authored-by: Ayangade Adeoluwa <37867493+Irongade@users.noreply.github.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com>
Co-authored-by: Albin <albin@appsmith.com>
* Show js function execution error logs
* remove unused function
* improve check for async functions
* clear errors for deleted jsActions
* fix typescript error
* modify js function execution error logging
* test that execution parse errors are logged in the debugger
* Add test to show that js execution errors are logged in the debugger
* re-order js execution tests
* Add type to jsObj variable
* update cypress tests
* update cypress test
- Change the parsing logic to track variableDeclarator and check for JSObject being declared and find its properties using the AST Node.
- As we are exactly checking JSObject Node we won’t have any incorrect properties defined or any property missed
* parsing of js object has changed
* added test for parsing
* parse object with literal
* added variable to reactive paths and solved some PR comments
* test fixed
* small fix
* removed restricting functions to be added if object body has errors
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Instead of waiting for the specific `storeValue` action completion, earlier we were waiting for any storeValue action to complete. It means when running multiple storeValue, completion of 1st action will resolve promise for all the storeValue triggered.
Now, we track completion of each storeValue action separately.
* keep localunevaltree update in sync with unevaltree
* undo tree check
* identify .data difference for js objects
* empty line
* unit test
* unit test name change
* comment
Co-authored-by: Anand Srinivasan <anand.a.srinivasan@outlook.com>
We are changing how we maintain meta values in our architecture,
Earlier metaHOC component state was used to store meta values that were debounced and pushed in batch to metaReducer and trigger evaluation.
We remove the metaHOC state and directly update values to metaReducer and trigger evaluation separately via a debouched function.
* Implemented code splitting of some files for SAML integration
* Implemented code splitting of some more files for SAML integration
* updated redirect url component
* fixed an import statement
* fixed a unit test
* updated restart banner tooltip logic
* updated an import statement
* initial layout
* updated parser to support nested array
* array field rendering
* changes
* ts fix
* minor revert FormWidget
* modified schema structure
* select and switch fields
* added checkbox field
* added RadioGroupField
* partial DateField and defaults, typing refactoring
* added label and field type change
* minor ts changes
* changes
* modified widget/utils for nested panelConfig, modified schema to object approach
* array/object label support
* hide field configuration when children not present
* added tooltip
* field visibility option
* disabled state
* upgraded tslib, form initial values
* custom field configuration - add/hide/edit
* field configuration - label change
* return input when field configuration reaches max depth
* minor changes
* form - scroll, fixedfooter, enitity defn and other minior changes
* form title
* unregister on unmount
* fixes
* zero state
* fix field padding
* patched updating form values, removed linting warnings
* configured action buttons
* minor fix
* minor change
* property pane - sort fields in field configuration
* refactor include all properties
* checkbox properties
* date properties
* refactor typings and radio group properties
* switch, multselect, select, array, object properties
* minor changes
* default value
* ts fixes
* checkbox field properties implementation
* date field prop implementation
* switch field
* select field and fix deep nested meta properties
* multiselect implementation
* minor change
* input field implementation
* fix position jump on field type change
* initial accordian
* field state property and auto-complete of JSONFormComputeControl
* merge fixes
* renamed FormBuilder to JSONForm
* source data validation minor change
* custom field default value fix
* Editable keys for custom field
* minor fixes
* replaced useFieldArray with custom logic, added widget icon
* array and object accordian with border/background styling
* minor change
* disabled states for array and objects
* default value minor fix
* form level styles
* modified logic for isDisabled for array and object, added disabledWhenInvalid, exposed isValid to fieldState for text input, removed useDisableChildren
* added isValid for all field types
* fixed reset to default values
* debounce form values update
* minor change
* minor change
* fix crash - source data change multi-select to array, fix crash - change of options
* fix positioning
* detect date type in source data
* fix crash - when object is passed to regex input field
* fixed default sourceData path for fields
* accodion keep children mounted on collapse
* jest test for schemaParser
* widget/helper and useRegisterFieldInvalid test
* tests for property config helper and generatePanelPropertyConfig
* fix input field validation not appearing
* fix date field type detection
* rename data -> formData
* handle null/undefined field value change in sourceData
* added null/undefined as valid values for defaultValue text field
* auto detect email field
* set formData default value on initial load
* switch field inline positioning
* field margin fix for row direction
* select full width
* fiex date field default value - out of range
* fix any field type to array
* array default value logic change
* base cypress test changes
* initial json form render cy test
* key sanitization
* fix fieldState update logic
* required design, object/array background color, accordion changes, fix - add new custom field
* minor change
* cypress tests
* fix date formatted value, field state cypress test
* cypress - field properties test and fixes
* rename test file
* fix accessort change to blank value, cypress tests
* fix array field default value for modified accessor
* minor fix
* added animate loading
* fix empty state, add new custom field
* test data fix
* fix warnings
* fix timePrecision visibility
* button styling
* ported input v2
* fix jest tests
* fix cypress tests
* perf changes
* perf improvement
* added comments
* multiselect changes
* input field perf refactor
* array field, object field refactor performance
* checkbox field refactor
* refectored date, radio, select and switch
* fixes
* test fixes
* fixes
* minor fix
* rename field renderer
* remove tracked fieldRenderer field
* cypress test fixes
* cypress changes
* array default value fixes
* arrayfield passedDefaultValue
* auto enabled JS mode for few properties, reverted swith and date property controls
* cypress changes
* added widget sniping mode and fixed object passedDefaultValue
* multiselect v2
* select v2
* fix jest tests
* test fixes
* field limit
* rename field type dropdown texts
* field type changes fixes
* jest fixes
* loading state submit button
* default source data for new widget
* modify limit message
* multiseelct default value changes and cypress fix
* select default value
* keep default value intact on field type change
* TextTable cypress text fix
* review changes
* fixed footer changes
* collapse styles section by default
* fixed footer changes
* form modes
* custom field key rentention
* fixed footer fix in view mode
* non ascii characters
* fix meta merge in dataTreeWidget
* minor fixes
* rename useRegisterFieldInvalid.ts -> useRegisterFieldValidity.ts
* modified dependency injection into evaluated values
* refactored fixedfooter logic
* minor change
* accessor update
* minor change
* fixes
* QA fixes date field, scroll content
* fix phone number field, removed visiblity option from array item
* fix sourceData autocomplete
* reset logic
* fix multiselect reset
* form values hydration on widget drag
* code review changes
* reverted order of merge dataTreeWidget
* fixes
* added button titles, fixed hydration issue
* default value fixes
* upgraded react hook form, modified array-level/field-level default value logic
* fixed select validation
* added icon entity explorer, modified icon align control
* modify accessor validation for mongo db _id
* update email field regex
* review changes
* explicitly handle empty source data validation
* POC
* Closing channels
* WIP
* v1
* get working with JS editor
* autocomplete
* added comments
* try removing an import
* different way of import
* dependency map added to body
* triggers can be part of js editor functions hence
* removed unwanted lines
* new flow chnages
* Resolve conflicts
* small css changes for empty state
* Fix prettier
* Fixes
* flow changes part 2
* Mock web worker for testing
* Throw errors during evaluation
* Action execution should be non blocking on the main thread to evaluation of further actions
* WIP
* Fix build issue
* Fix warnings
* Rename
* Refactor and add tests for worker util
* Fix response flow post refactor
* added settings icon for js editor
* WIP
* WIP
* WIP
* Tests for promises
* settings for each function of js object added
* Error handling
* Error handing action validation
* Update test
* Passing callback data in the eval trigger flow
* log triggers to be executed
* WIP
* confirm before execution
* Remove debugging
* Fix backwards compatibility
* Avoid passing trigger meta around
* fix button loading
* handle error callbacks
* fix tests
* tests
* fix console error when checking for async
* Fix async function check
* Fix async function check again
* fix bad commit
* Add some comments
* added clientSideExecution flag for js functions
* css changes for settings icon
* unsued code removed
* on page load PART 1
* onPageLoad rest iof changes
* corrected async badge
* removed duplicate test cases
* added confirm modal for js functions
* removed unused code
* small chnage
* dependency was not getting created
* Fix confirmation modal
* unused code removed
* replaced new confirmsaga
* confirmaton box changes
* Fixing JSEditor Run butn locator
* corrected property
* dependency map was failing
* changed key for confirmation box
Co-authored-by: hetunandu <hetu@appsmith.com>
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
* makeParentsDependOnChild - return if child doesn't exist in allKeys
* add unit tests
* add nested object to unit test
* fix unit tests
* fix unit tests
* add warning messages
* add comments for mock
* Stopped props drilling of eval state
* Connect drop down to redux state
* Added extra check to formcontrol memo function
* Reduced modification of section at top
* Stopped mutating the initial state
* Created selector to get dynamic fetched values
* <refactor> Added comments and refactors
- Added key to the ES fragment
- Cleaned drop down component from redundant code
- Added comments
* <refactor> Removed test files
- Removed testing JSON configs
* <fix> Added null check for form eval output
- Added check to prevent null evalOutput in forms
* <chore> Removed console error
- Removed console error which is causing the vercel builds to fail
* fix: Select widget accept string and object
* fix: JSON object case
* Fix: make Multiselect Defaukt option Array of strings
* fix: Select and Multiselect
* fixes and test cases
* comments
* fix: Select option value
* fix: mutiselect and test case
* fix: failing test
* fix: reset select widget
* fix: PR issues
* fix: Select widget Reset
* fix: failing Test
* fix: test
* fix: tests
* FIX: EVALUATION TESTS
* fix: getting Select Value in form
* fix: Test cases
* fix: add more test cases
Co-authored-by: balajisoundar <balaji@appsmith.com>
* Revert "fix: revert this.params solution (#10322)"
This reverts commit 2bcd73e41d.
* replace 'this.params' with 'executionParams'
* replace 'this?.params' also with 'executionParams'
* fix unit test lint errors
* added unit tests for params handling
* evaluateActionBindings unit test - add default value case
* comments update
* remove un-necessary `executionparams` assigment to `evalTree`
* Rearrange data tree widget factory
* Remove existing handling of default value override
* Altternate way of meta property override
* Fix tests
Co-authored-by: hetunandu <hetu@appsmith.com>
* Added new files for entity selector component
* Add error handling to data fetched via API
* Added init eval for schemas in entity selector
* Extracting conditionalOutput for schema from state and passing it to individual schema
* Removed unnecessary loop
* Fixed CSS of ES, added new Icon
* Minor refactor
* Added new condition type
* Added new variables to cater to enable/disable conditionals
* Adding functionality to disable the drop down control
* Added ability to enable/disable to dynamic input text fields
* Updated input text control to have enabled/disabled feature
* Added enable/disable functionality to FixedKeyInputControl
* Added enable/disable func to switch control and stanrdasied var name
* Added disable functionality for file picker
* Added enable/disable functionality to QUER_DYNAMIC_TEXT
* Added new state and object for evaluating conditionals
* Connected the output to the final source
* Updating loading state on the final component
* Tied fetched data to the options of dropdown component
* Added declaration to make API call
* Added loading state for dropdown
* Updated types in reducer
* Added implementation to extract API calls from the response and setting the output
* Removed extra variables
* Moved all calculation logic to the class component
* Refactors and added comments
* Added flag to store when the value fetch fails
* Reduced usage of spread operators
* Added new condition type
* Added new variables to cater to enable/disable conditionals
* Adding functionality to disable the drop down control
* Added ability to enable/disable to dynamic input text fields
* Updated input text control to have enabled/disabled feature
* Added enable/disable functionality to FixedKeyInputControl
* Added enable/disable func to switch control and stanrdasied var name
* Added disable functionality for file picker
* Added enable/disable functionality to QUER_DYNAMIC_TEXT
* Registering new eval types
* Moving code from saga to thread execution
* Added a loading state while thread is working
* Added types and comments
* Code refactor for final render
* Added custom spinner
* Instead of spawning a new thread, working on the same one
Co-authored-by: Arpit Mohan <arpit@appsmith.com>
* ast changes
* ast fix for cyclic dependency
* jest test updates for ast
* feat: Extract references in code with AST (#8617)
Co-authored-by: Nidhi <nidhi@appsmith.com>
* undo debugger changes
* code clean up and comments
* update type checks for literal nodes
* include tests for IIFE and direct object access
* fix - dependency map not updated on IIFE/direct object access
* update tslib
* unescape on AST parsing
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: Nidhi <nidhi@appsmith.com>
* Update Validations
===
- If number value is out of bounds, return minmax || parsed || 0
- If text has regex, match RegExp - earlier we were matching with
string, which was always failing
- Prioritise expected value in TEXT validation RegExp case.
* Add tests for regex and update tests for other changes
* Add test for using expected type instead of regex in messages
* Update regex, as it was reported to be buggy
* Revert "fix: multiselect validation (#7698)"
This reverts commit 728a2559c5.
* - Convert the multiselect options value and labels to string before filtering as the values can be numbers.
* - Discourage users from using string in multiselect default value
Co-authored-by: Satish Gandham <satish@appsmith.com>
* adding validation for fusion chart's paletteColors Attribute
* restructuring as params for TEXT type
* removing unnecessary space
* addressing review comments
* adding validations to ignore case
* Scaffolding for undo-redo
* undo redo working Poc commit
* memory performance improvements by diffing
* dont run update on undo/redo"
* merging widget postion update and canvas bottom row update into one dsl update.
* fix tabs widget
* Visible updates per undo redo action (#6838)
Co-authored-by: Rahul R <rahulramesha@Rahuls-MacBook-Pro.local>
* resize atomic operation
* fix switch control state issue
* disallow undo/redo for snipping and comment mode
* disallow undo/redo for snipping and comment mode
* fix color picker issue in undo/redo
* add test for replayDSL
* option control fix, adding logs
* minor position change undo redo updates
* add test cases for replayHelpers
* property Upade visual change
* remove unused code
* global hot key jest test for undo redo
* Fixing batch updates on property change..
* add tests for toggle control in property pane
* unwanted utils.
* add tests for text control
* add tests for deletion
* add tests for dropping a new widget
* adding jest test for replayUtils
* add move widget tests
* add tests for color picker control
* add analytics for undo/redo
* add analytics for undo/redo
* tab addition atomic
* cypress tests for propertyPane, toasts and radiowidget optionControl
* replayDSL end of redo stack fix
* property update changes
* menu option control debounce input
* color picker empty undo fix
* fix cypress tests
* widget add/remove atomic
* revert alternative approach to handle atomic operations
* update replayDSL test
* add some comments
* addressing review comments
* flash color for property pane controls
* Fixing adding of tabs widget as well.
* code review comments.
* merging widget postion update and canvas bottom row update into one dsl update.
* fix ordering of tabs property control
* meta property update canvas min height.
* fixing failed specs.
* Fixing entity explorer update on deleting tab from entity explorer.
* address review comments and minor property update changes
* fixing failing tests
* merge conflicts
* changes to cater widget api.
* fix suggested widget table issue
* draggable list for undo redo
* fix widget name focus
* excluding canvas updates.
* fixing codeEditor update on propertySection collapse
* fixed failing test case
Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
Co-authored-by: Rahul R <rahulramesha@Rahuls-MacBook-Pro.local>
Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain>
Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local>
* pushing and removing errors from debugger for js object
* added message part of messages
* changes for linting and errors showing
* added try catch for executing function
* PR comments fixed
* PR comment fixed
* Changes to add js plugin
* routes+reducer+create template
* added debugger to js editor page
* entity explorer changes
* create js function
* added copy, move and delete action
* added js plugin
* added existing js functions to data tree
* removed actionconfig for js collection
* new js function added to data tree and entity as well
* parsing flow added
* changes to data tree
* parse and update js functions
* small changes for def creator for js action
* create delete modified
* small changes for update
* update flow change
* entity properties added
* removed linting errors
* small changes in entity explorer
* changes for update
* move, copy implementation
* conflict resolved
* changes for dependecy map creation
* Only make the variables the binding paths
* Basic eval sync working
* Minor fixes
* removed unwanted code
* entity props and autocomplete
* saving in progress show
* redirection fix after delete js action
* removed unnecessary line
* Fixing merge conflict
* added sample body
* removed dummy data and added plugin Type
* few PR comments fixed
* automplete fix
* few more PR comments fix
* PR commnets fix
* move and copy api change
* js colleciton name refactor & 'move to page' changes & search
* view changes
* autocomplete added for js collections
* removing till async is implemented
* small changes
* separate js pane response view
* Executing functions
* js collection to js objects
* entity explorer issue and resolve action on page switch
* removed unused line
* small color fix
* js file icon added
* added js action to property pane
* Property pane changes for actions
* property pane changes for js functions
* showing syntax error for now
* actions sorted in response tab
* added js objects to slash and recent entitties
* enabling this to be used inside of function
* eval fix
* feature flag changes for entity explorer and property pane
* debugger changes
* copy bug fix
* small changes for eval
* debugger bug fix
* chnaged any to specific types
* error in console fix
* icons update
* fixed test case
* test case fix
* non empty check for functions
* evaluate test case fix
* added new icons
* text change
* updated time for debounce for trial
* after release mereg
* changed icon
* after merge
* PR comments simple
* fixed PR comments - redux form, settings remove
* js object interface changes
* name refactor
* export default change
* delete resolve actions chnage
* after merge
* adding execute fn as 3rd option and removed create new js function
* issue 7054 fixed - app crash
* execute function on response tab changes
* refactor function name part 1
* refactor of js function name
* try catch added refactor
* test fix
* not used line removed
* test cases locator fixed
Co-authored-by: Nidhi <nidhi.nair93@gmail.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
Users should be able to look up relevant snippets based on where they trigger snippets from, narrow down the filter results based on entities, customize the snippet with custom data, evaluate and see its real time value.
Introducing a new widget: `Checkbox Group`, Users can now create a group of checkboxes and have an action trigger and also be able to refer the selected values from the internal API.
We have now separated the multi-select from the select widget, This has simplified the implementation and helped us resolve any issues we where facing because of the complexity bought by both under the same hood and has also increased the discoverability of the widget for our end users. We have also simultaneously taken up multiple enhancements related to the select and multi-select widget.
* Pass evaluation order along with dataTree and update only evaluated values in the store.
* - Update the entire changed entitiy
* Make the updates in a way the top level tree reference is changed.
* Clean up.
* - Revert back to using evaluation order and removedPaths as JSON.stringify is expensive
* yarn.lock changes
* Only send eval updates across the worker thread
* - Update the tree with only the updates sent from the worker. (40% improvement)
* Fix evaluation tests
* Remove console.log
Co-authored-by: Satish Gandham <satish@appsmith.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
* FEATURE-3357 : Rate Widget
-- Create the first MVP of rate widget
* FEATURE-3357 : Rate Widget
-- Change the widget name into rating
-- Change the widget icon
-- Fix the overflow issue in case max count is big
-- Fix the issue in case default rate is zero
-- Add validations for maxCount and defaultRate
* FEATURE-3357 : Rate Widget
-- Fix an issue : Stars is cut off if maxCount is greater than 20
-- Add test cases for two validation types, RATE_DEFAULT_RATE and RATE_MAX_COUNT
* FEATURE-3357 : Rate Widget
-- Add expected data type for tooltip field
* FEATURE-3357 : Rate Widget
-- Expose maxCount
* FEATURE-3357 : Rate Widget
-- Change contents of isAllowHalf property
-- Adjust alignment of stars dynamically
-- Decrease default widget width
* FEATURE-3357 : Rate Widget
-- Remove a unnecessary comment block