Commit Graph

39 Commits

Author SHA1 Message Date
Abhinav Jha
60503bb9a6
feat: Dynamic Height widget config (#13143)
* Add platform feature which adds dynamic height property controls and default properties based on widget config

* Move features to the top, so that defaults can override them if necessary

* - Add unit tests to verify that the property controls show up for dynamic height
- Add unit test to verify that the hidden hook in the dynamic height controls work
- Fix console warning for react key unavailable in Generator.tsx
- Move constants and types to their respective files

* Remove dynamic height config from Container Widget

* Add comments in hard to understand areas

* Add function which converts fn validation params to fnString
2022-04-22 15:14:22 +05:30
Anand Srinivasan
ada1293797
Revert "fix: trigger fields linting issue (#11875)" (#12668)
This reverts commit 186a97c699.
2022-04-07 16:31:31 +05:30
Anand Srinivasan
186a97c699
fix: trigger fields linting issue (#11875)
* initial fix

* fix warnings

* log evaluation order length

* log time

* logs

* re-order

* rename

* onclick vs release logs

* unit test for loading properties

* clean up

* ends with .tableData

* add comment
2022-03-31 17:07:18 +05:30
ashit-rath
32fee08c5c
feat: JSON Form widget (#8472)
* 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
2022-03-24 12:43:25 +05:30
Rishabh Rathod
b61ceab94b
fix: Add meta to eval cycle and update it when default changes (#10401)
* 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>
2022-01-28 16:40:05 +05:30
Rishabh Rathod
bef48e8a79
chore: Config changes (#8564)
Change eslint config for console logging from error to warn
Add babel auto-import resolver to avoid using relative paths
2021-11-05 11:19:19 +05:30
Abhinav Jha
b49f5097c6
refactor: Widget Development API (#6405) 2021-09-09 20:40:22 +05:30
Abhinav Jha
1391b55bae
Widget Property Validation structure (#5270) 2021-07-26 11:20:46 +05:30
Pawan Kumar
91bf527bea
List Widget Phase 2 (#4189)
* 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>
2021-06-18 13:12:57 +05:30
Hetu Nandu
4d73e7e0b3
Widget validation for nested property paths (#3947) 2021-04-21 20:04:25 +05:30
Hetu Nandu
c2646a8863
Use property config for trigger properties (#3217)
* Use triggerPaths and remove isDynamicTrigger argument

* Remove triggerMaps from widgets

* Fix property updates
2021-02-25 19:30:02 +05:30
Piyush Mishra
a4fe0a461e
Table Widget New Features (#2816)
- Each column has more options and can be configured in the property pane instead of the table
- Table level styles can now be set in the property pane
- Property sections are collapsible

Co-authored-by: vicky-primathon.in <vicky.bansal@primathon.in>
Co-authored-by: nandan.anantharamu <nandan.anantharamu@thoughtspot.com>
Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
2021-02-16 15:59:08 +05:30
Piyush Mishra
806a139ddb
Make prettier changes (#2337) 2020-12-24 10:02:25 +05:30
Hetu Nandu
655b160922
Web worker evaluation (#706)
- Adds Web workers and does evaluations in off the main thread
- Removes any need to store functions in the data tree and only keeps them around while evaluating
- Maintains a stored data tree in the redux state
- Evaluates based on editor events instead of state changes
2020-10-21 09:55:32 +05:30
NandanAnantharamu
05f190c102
Feature/entity browse (#220)
# New Feature: Entity Explorer
- Entities are actions (apis and queries), datasources, pages, and widgets
- With this new feature, all entities in the application will be available
  to view in the new entity explorer sidebar
- All existing application features from the api sidebar, query sidebar, datasource sidebar and pages sidebar
  now are avialable on the entity explorer sidebar
- Users are now able to quickly switch to any entity in the application from the entity explorer sidebar.
- Users can also search all entities in the application from the new sidebar. Use cmd + f or ctrl + f to focus on the search input
- Users can rename entities from the new sidebar
- Users can also perform contextual actions on these entities like set a page as home page, copy/move actions, delete entity, etc from the context menu available alongside the entities in the sidebar
- Users can view the properties of the entities in the sidebar, as well as copy bindings to use in the application.
2020-08-10 14:22:45 +05:30
Hetu Nandu
a266472e4e Fix batched action execution 2020-04-17 16:15:09 +00:00
Hetu Nandu
0beb6bc5ca Batched redux update 2020-04-13 08:24:13 +00:00
Hetu Nandu
855b49caee Fix js toggle issues 2020-03-16 07:59:07 +00:00
Hetu Nandu
d9dee9b16d Form Widget 2020-03-06 09:45:21 +00:00
Hetu Nandu
fb80c4b576 Action refactor 2020-02-18 10:41:52 +00:00
Hetu Nandu
cc50beb0a0 Add back derived properties 2020-01-17 09:28:26 +00:00
Hetu Nandu
005c00a145 Revert "Selected Option is now available in dropdown widget."
This reverts commit c45198e9927dbb520ef1f3c26f9cfeddbd76995e.
2019-12-19 15:03:27 +05:30
Satbir Singh
01cdbbcabc Selected Option is now available in dropdown widget. 2019-12-18 11:59:12 +00:00
Hetu Nandu
a6f7882d5f Revamp widget property validation 2019-11-19 12:44:58 +00:00
Abhinav Jha
03e78f0751 WIP: Allow absolute paths for imports. Refactor ContainerComponent.tsx to PositionedContainer.tsx, CanvasWidgetContainer.tsx, ContainerComponent.tsx. Refactor all widgets and components to adhere to new props and apis. 2019-11-13 07:00:25 +00:00
Nikhil Nandagopal
a031606fa1 Feature/date picker 2019-11-06 12:12:41 +00:00
Abhinav Jha
58c0c647bf Move WidgetFunctions to Context Provider 2019-10-03 21:54:29 +05:30
Abhinav Jha
7237250adc WIP: Fix positioning bug 2019-09-21 07:22:38 +05:30
Abhinav Jha
ffb532fa7a WIP: Canvas widget drop and positioning 2019-09-20 03:55:37 +05:30
Abhinav Jha
56714c3fa0 Merge branch 'release' of gitlab.com:theappsmith/internal-tools-client into feature/canvas-grid-rewrite 2019-09-18 16:28:21 +05:30
Abhinav Jha
703081154c WIP: Fix fetch page. Add save page boilerplate. Add widget property change boilerplate. 2019-09-17 20:39:55 +05:30
Nikhil Nandagopal
751ea339d1 added transformation for requests
wired button onclick to execute action saga
split widget props into widget data and widget functions
2019-09-17 15:41:50 +05:30
Abhinav Jha
20a3e19ad3 WIP: code changes to allow for dragging and dropping 2019-09-17 15:39:00 +05:30
Abhinav Jha
b9718bdaec WIP: Fix eslint errors 2019-09-09 14:38:54 +05:30
Abhinav Jha
babc8fcfcd Linting, fixes, dragpreview fix 2019-08-29 16:52:09 +05:30
Nikhil Nandgopal
1b71b829fb added droppable component
moved snapcolumspace and rowspace to state
2019-04-02 21:42:08 +05:30
Nikhil Nandgopal
85b8525c4d added type to state
moved css to style object
added style units
migrated all widgets to work with JSX
2019-02-11 23:52:23 +05:30
Nikhil Nandgopal
3afe91679a added typed lodash
fixed basic component rendering
connected redux store
2019-02-10 19:44:58 +05:30
Nikhil Nandgopal
bf4dc5a052 added basic redux state
added basic inheritance hierarchy of widgets and components
added basic redux action types
added basic widget building logic
2019-02-10 18:36:05 +05:30