* 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
* Expose response headers for API/DB actions
* Added responseMeta to actions datatree
* Modified cypress test to account for responseMeta
* Modify cypress test case
* More test changes
* Modified tests
* separate js error and validation error
* PR comments fixed and added error for pageload action
* reverted to jsError message property
* small check for empty errors
* small changes for Test to pass
* space was missing for test case
* removed console statement
* During updateDependencyMap, when dependencies are getting added for a path, only add if the dependency is not a parent of the path.
* To avoid catching all cyclical dependencies, only handling catching incorrect action dependencies when the dependency paths dont yet exist.
* Revert "To avoid catching all cyclical dependencies, only handling catching incorrect action dependencies when the dependency paths dont yet exist."
This reverts commit c494932289e33287074c56844fbf76c8418875af.
* Disabling cypress test which asserts cyclical errors when depending on yourself