* fix(dropdown): add check for empty option array
* test(Dropdown): add UT for empty option
* refactor(Dropdown): show no results found message on empty data
* refactor: update empty data message
* change Button variant types constant
* Add migration
* Adds cypress test to validate default button variant
* update the ButtonVariant for MenuButton inside table widget
* Remove only from Button_spec
* fix: Binding issue with Variant in table
* fix: cypress test for default variant validation
* Add validation to IconButton inside table
* 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>
* feat: add disableLink for text widget
* feat: add test for disable link
* fix: email parsing
* fix: test issues
* fix: failing test
* fix: failing test
* Create initial version of AudioWidget by copying VideoWidget
* Add EventType for AUDIO
* Change default Audio URL to a podcast related to Appsmith
* Add AudioWidget icon
* Change Entity definition for AudioWidget
* Add cypress test
* Add jest test
* fix: typo
* - If a field is not required and empty, don't show error.
- If a field is required and empty, bail early and show error.
* - Remove default label from input
- Fix a issue with required validation
Co-authored-by: Satish Gandham <satish@appsmith.com>
* - Optimze list widget renders by memoizing part of renderchildren
* - Fix failing tests and add more dependecnies to memo
* - Fix issue with repositioning widgets inside list.
* comment out the moving of widgets test
* Remove stray import
* Fix the failing jest test
Co-authored-by: Satish Gandham <satish@appsmith.com>
* fix: set button color and remove button style for button, IconButton, Menubutton
* fix: test
* fix: make the FormButtonWidget to have properties of ButtonWidget
* Adds Migration for FormButtonWidget
* fix: Broken FilePickerWidget
* Remove cypress tests for buttonStyle and add tests for buttonColor
* Change button variant labels
* set default value for buttonColor
* fix: migration for CUSTOM ButtonStyleType
* change make public toggle slider locator to be more specific
Co-authored-by: Aswath K <aswath.sana@gmail.com>
Co-authored-by: sbalaji1192 <sbalaji1192@gmail.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
* fix crashing of menu widget in list
* add ternary operator when calling type on widget
* remove eslint disable rule
Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain>
* 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>
* Change currency input layout to flex
* fix: styles for normal input
* Increase space b/w icon and text. Add focus color
visual modifications as suggested by Momcilo
* fix: alignment for ISDCodeDropdown
* fix: background color for disabled
* change dropdown focus color as suggested by Momcilo
* remove unwanted conditional height
* makes disabled Numeric input consistent to disabled input
* reverted previous revert
* standardised widget sizes
* Text changes
* changed default input label style to match default text style
* more messaging tweaks
* minor fix
* Removed dot from the text
* minor fix for form widget
* fixed tests
* minor fixes
* fix: Input widget as number type 0 as default value
* added cypress test case
* cypress test fix, force click default text input
* updated input widget validation of number/currency/phone number type
* minor change
* FIX#2587 : added container wrapper component to handle styles, updated test cases
* FIX#2587 : abstract widget style component for common use and wraped on text widget
* updated style boundary and css
* updated cypress test
* fix: accommodate prop pane height change for the test
* removed properties from text widget
* updated container wrapper style to handle border corners, updated migrations for container and form widget
* fixed container overflow
* added testcases for container and text widget
Co-authored-by: Rishabh Saxena <rishabh.robben@gmail.com>
* updated widget properties
* updated placeholders
* updated default for date
* lint fix
* Fixed more styles and reverted changes to input widget
* adjusted default sizes of different widgets
* resized image in list widget
* reduced chart default data
* fixed tests
* PR comment fixes
* fixed tests failing
* fix: Fixed failing jest tests because of an error in chart widget propertyConfig object
Co-authored-by: somangshu <somangshu.goswami1508@gmail.com>
Fixing challenge with the valid property as below:
1. Change the valid prop to an input control like regex
2. the valid field prop should be able to accept undefined apart from boolean
3. Change helper text to > ability to control input validity based on a JS expression.
* fix: underline style for text
* fix: add expected structure example
* Revert "fix: add expected structure example"
This reverts commit efd56886a26f87bb18cf6edc53bd246bfeb8e0f1.
* fix: test failing
* fix: widget crashing (#6980)
* fix: update omnibar search string for documentation for actions (#6722)
* [Mongo] Added default values for query for Find, Count and Distinct commands (#6960)
* Added smart defaults for query in Count, Distinct & Find commands
* Added test cases for smart inputs for query and limit for find, and query for count and distinct
* Distinct command output now results a JSON object instead of an array of strings (#6964)
* Fix: Break word when text widget content is long (#6211)
fixes#5319
* fix: widget crashing
Co-authored-by: Rishabh Saxena <rishabh.robben@gmail.com>
Co-authored-by: Trisha Anand <trisha@appsmith.com>
Co-authored-by: balajisoundar <sbalaji1192@gmail.com>
Co-authored-by: Rishabh Saxena <rishabh.robben@gmail.com>
Co-authored-by: Trisha Anand <trisha@appsmith.com>
Co-authored-by: balajisoundar <sbalaji1192@gmail.com>
* fix: compact mode
* fix: test
* fix: remove row height visibility
* fix: options label for compactMode
* feat: Add test
* Fix: failing test
* fix: test
* fix: test case.
* fix failing test
* fix: move position of rowHeight prop in property pane
Introducing a new widget: Statbox / Statistic box Widget; This is a composite widget which has text and icon in a certain layout that can be easily changed.
Introduced a new field called as total record count which can be used to disable the pagination controls while having server side pagination. If this value is undefined the conditions will be ignored. The total record count is `total count / page size`, all the parameters need to be bound to the query/API for the functionality to work properly
* made inline comment pins draggable and added wrapper around overlay comments wrapper
* moved drag hook to pin
* can drag on canvas
* Properly updating the thread to be able to properly move the pin
* always passing the ref to container
* updating BE to save the new pins position
* minor fix
* changed a file name
* minor improvement to fix unit test
* fix, updated dragging reducer function to not expect appId
* removing unrelated change
* added drag and drop for comment pins without react dnd
* updated unit tests
* minor fix
* added a grab pointer and minor offset when user moves the pin
* removed unnecessary store states
* moved drop from onDragEnd to onDrop to reset everything.
* using state selector and dispatch hook
* removed use of anchor widget
* removed pointer change from comments wrapper
* verifying if current pin is being dragged
* updated action creator name
* moved dragging in comments reducer.
* using dragging thread id from store itself
* using relative positioning of pointer to predict the location of pin
* unit test cases fixed
* minor fix
* removed the dependency of off set from callback
User now should have access to the table sort column if any through the `{{table.sortOrder}}` API. This will return an object when sort is active > {column: string, order: enum|‘asc’|'desc'}. There should also be a `onSort` action available which can trigger an Event
Added multiple style props to the button widget:
- Button styles
- The background colour can change with a hex code
- elevation (box-shadow & colour)
- There are button variant contained (solid button), outlined (only borders), text (text buttons)
- Button can have an end icon or start icon
- Menu widget needs to show transparent background
- Make background none if user choose no background colour
- Adopt button style options(menu style, variant, box shadow, border radius)
* - Create a clone of the existing filepicker widget
* - If a file is larges than 5MB, don't put it in the dataTree.
Co-authored-by: Satish Gandham <satish@appsmith.com>
* [Feature] Click on widget will no longer open property pane
* fixing test cases
* coverage fixes
* fixing imports.
* fixing build failure.
* fixing new specs
* clear property pane state for any new selection.
Many new input widget enhancement added. The widget now has the capability to have its own label and tooltip as helper. The user can now add Icons inside the input widget and align them as well, The user can allow choose the max allowed length of the input. We have also added the isValid property in tandem to the regex property for additional validations using JS expressions
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.
The multi-select and select now has the capability to handle server side filtering, i.e. an Appsmith dev can now choose to call an api on search or options using the onFilterUpdate action
* fix binding
* fix multiple binding not working issue
* use box shadow inset + fix gap issue
* fix container z index issue
* fix resize ux issue
* update container height
* allow selecting list widget only when the property pane is not visible
* fix resize handle overflow issue
* fix dot issue in current item structure + fix resize issue for template
* fix select widget not workign inside list widget issue
* remove unused keys
* fix jest test
* fix derived.js test
* add undefiend check
* add currentIndex for autocomplete
* revert white color to transparent for list container
* fix pagination wrong calculation
* remove beta tag
* fix issue with cypress test failing
* fix issue with dropdown widget
* fix the boolean value issue
Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain>
Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local>
Introducing the **Floating action button / Icon button**. Now you can use this to show small actions as icons. We have added a bunch of styling customisation to this as well. You can bind an onClick action to this and easily trigger an even. The component also automatically resizes within the widget as you scale it while maintaining the right aspect ratio.
* Remove type from COLORS constant
* Remove type from InputTypes in InputWidget
* Remove type from ReduxActionTypes
* Remove type from ReduxErrorActionTypes
* Remove type from SocialLoginTypes
* Fix widget actions issues
* Remove OPEN_SUB_PANE commented redux action
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.
-- Add a new meta property for receiving the message from an iframe. Now the user can simply refer to {{iframe.message}} to access the data they receive in an API or widget.
* added sniping mode toggle option to header
* added cover to components on hover in sniping mode
* fixed the transition time
* using filled icon
* Show dependencies in action pane
* Added a wrapper to make a widget snipeable
* removed older parts of sniping from Positioned Container
* removed onclick action from snipeable wrapper
* Showing widget name in different color
* Added a mechanism to send user to sniping mode from successful API screen
* created new property pane saga to bind the data
* Fix datasource list width issue
* Fix sidebar going out of view when the response is a table
* Minor refactor
* Show add widgets section on the sidebar
* Stop showing autocomplete option after adding a widget
* fetching pageId, appId from store
* Get suggested widget from response
* Fix table data not getting evaluated after adding binding
* Fix property pane going below the entity explorer while navigating from query/api pane
* Fix width of sidepane shifting for apis
* Fix vertical margins of connections
* Fix api pane suggested widget showing up for errors
* Fix margins
* can show select in canvas btn in sidebar
* can get the action object at the end to bind the data
* updated saga and action names
* can bind data to table
* Use themes
* Use new image url for Table widget
* Added conditional mapping for sniping mode binding.
* updated the widget name tags and seq of calls to open property pane
* pushed all sniping mode decoration to header
* moved setting sniping mode logic to editor reducer
* Added keyboard short cut to get out of sniping mode
* updated reset sniping mechanism
* removed a divider line
* if there are no relationships, will not show the complete section
* Connect Data will automatically show relevant tab in integrations
* Update list and dropdown image urls
* Remove create table button
* no wrapping bind to text
* minor review considerations
* showing the widget name to left in sniping mode
* can set data to datepicker
* will not show snipe btn if there are no widgets in canvas
* Changes for multiple suggested widgets
* removed dependency of sniping from suggested widgets
* Added analytics events for sniping mode
* logic for binding data to a widget, moved to snipeable component
* changed binding widget func from capture to onClick and took care of sniping from widget wrapper too.
* added tests to check sniping mode for table
* updated test spec
* minor fix
* Fix copy changes
* Update test to use table widget from suggested widget list
* if fails to bind will generate warning and keep user in sniping mode
* in sniping mode will only show name plate if it is under focus
* fixed the test case
* added a comment
* minor fix to capture on click event in sniping mode
* updated text
* Hide connections UI when there are no connections
* Increase width to 90%
* Show placeholder text and back button in sidepane
* Show tooltip on hover
* Add analyitcs events for suggested widgets and connections
* Update label based on whether widgets are there or not
* binding related changes
* renamed the saga file containing sinping mode sagas
* Changes for inspect entity
* Revert "binding related changes" temporarily
This reverts commit 54ae9667fecf24bc3cf9912a5356d06600b25c84.
* Update suggested widgets url
* Update table url
* Fix chart data field not getting evaluated
* a minor fix to show proper tool tip when user hovers on widget name
* Show sidepane when there is output
* Update locators
* Use constants for messages
* Update file name to ApiRightPane
* Remove delay
* Revert "Revert "binding related changes" temporarily"
This reverts commit ee7f75e83218137250b4b9a28fcf63080c185150.
* Fix width
* Fix overlap
Co-authored-by: Akash N <akash@codemonk.in>
Keep date-picker open when selecting time or changing month, year in Table filters, The user before this could not select or change time. We have fixed this by closing the date-picker popover onClick of outside overlay/canvas.
In the date picker widget we now have an option to let the date picker popup remain open until the a positive feedback is given by clicking outside the popup or another widget. In other words the date-picker popup will not close where a date is selected with `closeOnSelection` disabled.
We have also added an option to show date-picker shortcuts to the end user.
Table data was not populating when extra space inside the mustache binding, This is now fixed for list and table widget
* removed return statements from computed values
* list widget responce update
* table data handled return, added migration
* removed unused function
* updatetd rowBinding string generator
* fix failing cypress test
* fix cypress tests
The filter pane in the table widget was fixed to top which would hinder the viewport for the end user. We have now changed the filter pane to a draggable component such that the user can place it anywhere on the canvas while they apply filters to see data change in realtime.
* FEATURE #4088 : added draggable filterpane for table widget
* FEATURE #4088 : update icons, editMode prop and added renderDragBlock support in popper
* FIX#5329: added close button for close filter pane
* FIX#5332 : updated zindex for table filter pane
* fix list widget test
* Fix drag icon position and cypress failing tests
* Fix endsWidth comparator function
Datepicker selected data and formatted date will not be empty on clear and not fallback to default date. This is consistent with other widget behaviour
* FEATURE-3261 : Menu Widget
-- Perform initial onboarding of the widget, not completed
* FEATURE-3261 : Menu Widget
-- Create a menuItemsControl
-- Create the first MVP of IconSelectControl
* FEATURE-3261 : Add Menu Widget
-- Align add menu item button to the center
-- Build icon select control with a grid popup
* FEATURE-3261 : Menu Widget
-- Create a icon alignment control
-- Complete the property pane of the widget
* FEATURE-3261 : Add Menu Widget
-- Implement the body of the widget
-- Bind into the properties from property pane
* FEATURE-3261 : Menu Widget
-- Fix the issues from the first feedback
* FEATURE-3261 : Menu Widget
-- Fix on the 2nd feedback
* FEATURE-3261 : Menu Widget
-- Fix on issues from IconSelectControl, IconAlignControl
* FEATURE-3261 : Menu Button Widget
-- Rename Menu to MenuButton, accordingly refactoring the relevant codes
-- Change some help content
-- Change styles for icon select control, adding padding for search box
* FEATURE-3261 : Menu Button Widget
-- Bind isDisabled property into the UI
-- Prevent input text of menu item from overflowing
-- Add tooltip feature for icon select control
-- Set the height of the popover content dynamically
* FEATURE-3261 : Menu Button Widget
-- Use POPOVER2_TARGET class name for styling
added onclick handler and update property pane config to table widget for column type image
* added default value for onclick and remove extra check
* updated TableUtilities test case
* updated cypress test Table_spec
* Handle google recaptcha v2 in button component
* Use same code for recaptcha v2 and v3
* Updated error handling comments
* Added toggle to use google recaptcha v2 with button
* Create separate components for Google recaptcha v2 and v3
* Extract click function from google recaptch v3 component
* Hide recaptcha error badge and show invalid site key error on button key
* Fix isInvalidKey name
* Added support to make rich text editor as require field
* Add default value of isRequired property for Rich Text Editor widget
* change isValid derived property to iffee functions value
* Converted isValid computation to use simple ternary operator
* basic line widget setup
* rename to divider, added icon
* completed divider functionalities
* minor textual updates
* cypress test for divider widget
* tested on local cypress run
* Divider widget jest tests
* basic logic implemented
* arrow head better alignment
* added required svg icons
* divider widget props update
* fix on propertypane dropdown iconSize
* fix capside icon width in property panel
* updated cypress dsl and tests
* minor updates
* cap arrow new implementation
* remove hover animation from divider icon
* updates and optimizations
* moved test class to component
We have added checkboxes against table rows when multi selection is enabled. The end user can also select all rows now in click of a button. The related design has also been refreshed.
* 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
* Add defaultPageSize and totalRecordsCount properties in table widget
* Changing next button disable
* Added checks for properties change
* Handle defaultPageSize change
* Updated util.test to handle new table properties
* Configure for cypress test for page size and total records count properties
* Added cypress test for default page size and total records count validation
* Fix test cases
* Handle empty space for page size is less than availabe space in table widget
-- Set default source url to wikipedia.org
-- Fix typo on the tooltip of onURLChanged, url to URL
-- Fix the issue which is related to reduced iframe in its deploy mode
-- Fix the issue which is related to the inclusion of nearby widgets in deploy mode
-- Add Expected Data Type fields with regard to borderOpacity and borderWidth
* update meta properties + default properties map
* update widget registery
* update get meta property
* update metahoc + widgetfactory + data tree evaluator
* try sending function as string to worker
* revert data tree evaluator update
* pass default props map from dataTreeWidget file
* wip
* save child meta properties
* remove console.log
* save meta and default map in list
* update listwidget
* remove console.log + unused variables
* revert getMetaPropertiesMap function
* fix data tree test
* fix list widget test
* fix entity definition test
* fix overriting of item in updatedItems
* remove todo comments
* fix meta prop issue
* revert making meta properties from undefiend to "" & fix filepicker bug
* fix test case
* change items to listData and updatedItems to items
* remove console.log
* fix test
* extract derived properties to dervied.js
* disabled top, left, right resize handler list widget container
* add test for dervied js
* add test for selectedItem
* fix background color bug on hover
* remove console.log
* fix chart widget inside list widget
* fix checkbox issue + points raised by yogesh
* revert the createImmerReducer usage
* fix parse derived properties
* remove internal props object that fails the test
* fix import typo
* allow bottom resize handler
* fix template height check
* fix template height check
* update template size check
* fix the is visible invalid prop issue
* fix migration of list widget phase 2
* fix migration
* remove unused import
* fix migration
* fix migration
* remove console.log
* hide delete option for container in entity explorer
* fix testcases
* remove unused import
* fix switch widget meta prop
Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain>
Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local>
-- Remove the spread operator in IframeWidget
-- Connect the widget help with the correct documentation path
-- Expose source and title for autocomplete
-- Remove the redundant wrapping with meta from the widget