## Description
This PR refactors the Actions right pane to inject a new section
(Inputs) when the action editors are used in Module Editor.
Changes:
1. Moved the Collapsible component to a separate file
2. Added a new param to the Editor Context to provide the additional
section
The changes correspond to the EE
[PR](https://github.com/appsmithorg/appsmith-ee/pull/2829)
#### PR fixes following issue(s)
Fixes#28453
#### 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)
- Chore (housekeeping or task changes that don't impact user perception)
- This change requires a documentation update
>
>
>
## Testing
>
#### How Has This Been Tested?
> Please describe the tests that you ran to verify your changes. Also
list any relevant details for your test configuration.
> Delete anything that is not relevant
- [ ] Manual
- [ ] JUnit
- [ ] 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:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
## Description
#27070 accidentally introduced slash commands in API URL field. This
could lead to a bad UX since `/` is predominant in URLs. This PR removes
slash commands from the URL field.
#### PR fixes following issue(s)
Fixes#27425
>
#### 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
- Bug fix (non-breaking change which fixes an issue)
>
>
## Testing
>
#### How Has This Been Tested?
- [x] Manual
>
>
#### 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
- [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
- [x] My changes generate no new warnings
- [ ] 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:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
## Description
- Changes to codeEditor/index.ts to support AI integration.
- Added AIAssisted prop to code editor component.
- Added AIWindow interface to support AI popover in business edition.
#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)
## Testing
>
#### How Has This Been Tested?
- [x] Manual
>
>
#### 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:
- [ ] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change)
have been covered
- [ ] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest)
- [ ] Test plan has been peer reviewed by project stakeholders and other
QA members
- [ ] Manually tested functionality on DP
- [ ] We had an implementation alignment call with stakeholders post QA
Round 2
- [ ] Cypress test cases have been added and approved by SDET/manual QA
- [ ] Added `Test Plan Approved` label after Cypress tests were reviewed
- [ ] Added `Test Plan Approved` label after JUnit tests were reviewed
## Description
This PR upgrades Prettier to v2 + enforces TypeScript’s [`import
type`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-8.html#type-only-imports-and-export)
syntax where applicable. It’s submitted as a separate PR so we can merge
it easily.
As a part of this PR, we reformat the codebase heavily:
- add `import type` everywhere where it’s required, and
- re-format the code to account for Prettier 2’s breaking changes:
https://prettier.io/blog/2020/03/21/2.0.0.html#breaking-changes
This PR is submitted against `release` to make sure all new code by team
members will adhere to new formatting standards, and we’ll have fewer
conflicts when merging `bundle-optimizations` into `release`. (I’ll
merge `release` back into `bundle-optimizations` once this PR is
merged.)
### Why is this needed?
This PR is needed because, for the Lodash optimization from
7cbb12af88,
we need to use `import type`. Otherwise, `babel-plugin-lodash` complains
that `LoDashStatic` is not a lodash function.
However, just using `import type` in the current codebase will give you
this:
<img width="962" alt="Screenshot 2023-03-08 at 17 45 59"
src="https://user-images.githubusercontent.com/2953267/223775744-407afa0c-e8b9-44a1-90f9-b879348da57f.png">
That’s because Prettier 1 can’t parse `import type` at all. To parse it,
we need to upgrade to Prettier 2.
### Why enforce `import type`?
Apart from just enabling `import type` support, this PR enforces
specifying `import type` everywhere it’s needed. (Developers will get
immediate TypeScript and ESLint errors when they forget to do so.)
I’m doing this because I believe `import type` improves DX and makes
refactorings easier.
Let’s say you had a few imports like below. Can you tell which of these
imports will increase the bundle size? (Tip: it’s not all of them!)
```ts
// app/client/src/workers/Linting/utils.ts
import { Position } from "codemirror";
import { LintError as JSHintError, LintOptions } from "jshint";
import { get, isEmpty, isNumber, keys, last, set } from "lodash";
```
It’s pretty hard, right?
What about now?
```ts
// app/client/src/workers/Linting/utils.ts
import type { Position } from "codemirror";
import type { LintError as JSHintError, LintOptions } from "jshint";
import { get, isEmpty, isNumber, keys, last, set } from "lodash";
```
Now, it’s clear that only `lodash` will be bundled.
This helps developers to see which imports are problematic, but it
_also_ helps with refactorings. Now, if you want to see where
`codemirror` is bundled, you can just grep for `import \{.*\} from
"codemirror"` – and you won’t get any type-only imports.
This also helps (some) bundlers. Upon transpiling, TypeScript erases
type-only imports completely. In some environment (not ours), this makes
the bundle smaller, as the bundler doesn’t need to bundle type-only
imports anymore.
## Type of change
- Chore (housekeeping or task changes that don't impact user perception)
## How Has This Been Tested?
This was tested to not break the build.
### 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
- [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
- [ ] I have made corresponding changes to the documentation
- [x] 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: Satish Gandham <hello@satishgandham.com>
Co-authored-by: Satish Gandham <satish.iitg@gmail.com>
## Description
TL;DR
This is a complete architectural change of of List widget works to
support all widgets we currently have and should automatically support
any future widgets.
It also introduces nested List widgets i.e a list widget can have a
another list widget which in turn can have another list widget.
Fixes#18206Fixes#6775Fixes#13211Fixes#16582Fixes#11739Fixes#15094Fixes#6840Fixes#10841Fixes#17386Fixes#18340Fixes#16898Fixes#17555Fixes#6858Fixes#9568Fixes#17480Fixes#18523Fixes#18206Fixes#16586Fixes#18106Fixes#16576Fixes#14697Fixes#9607Fixes#19648Fixes#19739Fixes#19652Fixes#18730Fixes#19503Fixes#19498Fixes#19437Fixes#5245Fixes#19150Fixes#18638Fixes#11332Fixes#17901Fixes#19043Fixes#17777Fixes#8237Fixes#15487Fixes#15988Fixes#18621Fixes#16788Fixes#18110Fixes#18382Fixes#17427Fixes#18105Fixes#18287Fixes#19808Fixes#14655
## Type of change
- New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
- Cypress
- Jest
- Manual
## 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 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
---------
Co-authored-by: Tolulope Adetula <31691737+Tooluloope@users.noreply.github.com>
Co-authored-by: Favour Ohanekwu <fohanekwu@gmail.com>
Evaluated value window improvements:
1. Evaluated value window will not show up unless there is a dynamic
binding within the input field or when there's a validation error on the
input field (this edge case happens when user types an incorrect string
in the field for example typing a wrong date format inside the Default
Date field in the DatePickerWidget).
2. Evaluated value window will be draggable anywhere on the DOM. The new
position would also be remembered the next time the user returns to the
input.
3. The UI of the evaluated value window has been changed: Since the
popup will become draggable, it will have the name of the input it is
attached to. The styling of the evaluated value window fields has been
changed as well.
Design Documentation:
https://www.notion.so/appsmith/Improve-the-evaluated-value-window-experience-fbbdead747a5468b8015c2fbbb5843bc
> Add a TL;DR when description is extra long (helps content team)
Fixes#4458
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- This change requires a documentation update
> Tests
- Manual
- 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
- [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:
- [ ] 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>
enhanced the InputTextControl to accept two more event handlers for focus and blur from the property pane config
Co-authored-by: Ankur Singhal <ankurrsinghal@gmail.com>
* Adds analytics for DropdownControl
* Add isUpdatedViaKeyboard to WIDGET_PROPERTY_UPDATE
* fix: jest test for iconselectorcontrol
* refactor: Interaction analytics event dispatching moved to a hook
* refactor: event collection logic to HOC
* Analytics for SwitchControl
* Analytics for CodeEditor
* Analytics for InputTextControl
* Analytics for ColorPicker
* fix issue with ColorPicker
* refactor to re-use ref
* rename the hook to ts
* Analytics for StepControl
* Analytics for ButtonTabComponent
* Analytics for NumericInputControl
* Analytics for IconSelector
* fix: failed test
* Analytics for ActionSelector
* fix: failed jest test
* fix: jest test for StepControl
* Analytics for Option Control
* Analytics for LocationSearchControl
* Adds Analytics for Tab key
* analytics for Property pane connections
* Add analytics for widget name
* Adds analytics for copy & delete button
* fix issue with widget name analytics
* add useCallback for tab keydown handler for button
* Create separate Event handling for design system
* removes unused imports
* changes ADS_EVENT to DS_EVENT
* Changes AdsEventTypes to DSEventTypes
* Changes AdsEventDetail to DSEventDetail
* changes occurences of Ads to DS
* avoids creation of intermediate function
* removes trace of 'analytics' from DS components
* rename dispatchDSEvent to emitDSEvent
* fix: Cypress selector
* 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>
* Updated test
* updated assertions
* Resizing image to take full width of table cell
* updated assertion
* Stop updating dynamicBindingPathList directly from widget
* Fix selectedRow and selectedRows computations
* Fix primaryColumns computations
* Updated test for derived column
* Added tests for computed value
* Added check clear data
* Reordering of test
* updated common method
* Made image size as 100% of table cell size
* add templating logic
* Updated flow and dsl
* Clear old primary columns
* Updated testname
* updated assertion
* use evaluated values for children
* Fix primary columns update on component mount and component update
* add isArray check
* remove property pane enhancement reducer
* add property pane enhancement reducer
* disable items other than template + fix running property enchancment on drop of list widget
* disbled drag, resize, settingsControl, drag for items other than template
* add grid options
* uncomment the widget operation for add child for grid children
* handle delete scenario for child widget in list widget
* WIP: Use the new delete and update property features
* add listdsl.json for testcases
* add test cases for correct no. of items being rendered
* add test cases currentItem binding in list widget
* change dragEnabled to dragDisabled
* change resizeEnabled to resizeDisabled
* change settingsControlEnabled to settingsControlDisabled
* change dropEnabled to dropDisabled
* update settingsControlDisabled default value
* Use deleteProperties in propertyControls
* Fix unsetting of array indices when deleting widget properties
* remove old TableWidget.tsx file
* Fix derived column property update on primary column property update
* Handle undefined primary columns
* Fix filepicker immutable prop issue
* Fix object.freeze issue when adding ids to the property pane configuration
* fix widget issue in grid
* Fix column actions dynamicBindingPathList inclusion issue
* remove consoles + fix typo around batch update
* Remove redundant tests
* js binding test for date picker
* hydate enhancement map on copy list widget
* check for dynamicleaf
* fixes
* improve check
* fix getNextWidgetName
* update template in list widget when copying
* updating template copy logic when copying widget
* update dynamicBindingPathList in copied widget
* Add path parameter to hidden functions in property pane configs
* fix copy bug when copying list widget
* add computed list property control
* Remove time column type
Fix editor prompt for currentRow
Fix undefined derivedColumns scenario
Remove validations for primaryColums and derivedColumns
Fix section toggle for video, image and button column types
* Fix table widget actions and custom column migrations
* Add logs for cyclical dependency map ♻️
* Process array differences
* add property control for list widget
* Fix onClick migrations
* Property pane config parity
* binding and trigger paths from the property pane config (#2920)
* try react virtualized library
* Fix unit test
* Fix unit test ✅
* Fix minor issues in table widget
* Add default meta props to binding paths to ensure eval and validation
* Dummy commit 🎉
* Remove unnecessary datepicker test
Fix chart data as string issue
* Achieve table column sorting and resizing parity with release
* handle scenario where last column isn't available to access
* Fix for panel config path not existing in the widget
* Fix bindings in currentRow (default)
Add dummy property pane config for canvas widget
* Update canvas widgets with dynamicPathLists on delete of property paths
* Add all diffs to change paths and trim later
* Add back default properties 🚶🏻♂️
* Use object based paths instead of arrays for primaryColumns and derivedColumns
* Fix issue in reordered columns
* Fix inccorect update order
* add virtualized list
* Fix failing property pane tests
* minor change
* minor list widget change
* Remove .vscode from git
* Rename ads to alloy
Fix isVisible in list widget
* move grid component to widget folder
* fix import in widget registry
* add sticky row in virtualized list
* add sticky container
* Fix Height of grid widget items container
* fix dragging of items in children other than template children
* update list widget
* update list widget
* Fix padding in list widget
* hide scrollbar in list widget list
* fix copy bug in list widget
* regenrate enhancement map on undo delete widget
* Use enhancementmap for autocomplete in list widget
Basic styles for list widget scrollbar
* add custom control in widget config
* minor commit
* update scrollbar styles
* remove unused variable
* fix typo in custom control
* comment out test cases
* remove unused imports
* remove unused imports
* add JSON stringify in interweave
* add noPad styling in dragLayer for noPad prop
* implement grid gap
* add list item background color prop
* add white color in color picker control
* fix gap in last list item
* remove onBeforeParse in textcomponent
* remove virtualization in grid widget
* allow overflow-y
* add onListItemClick action
* add beta label
* add pagination
* fix actions in pagination in list widget
* add list widget icon
* add list background color default value
* remove extra div
* fix pagination issue
* fix list widget crashing on perpage change
* extract child operation function to widgetblueprint saga
* refactor enhancements
* add enhancement hook
* refactor propertyUpdate hook enhancment
* remove enhacement map
* revert renaming ads to alloy
* add autopagination
* Cleanup unused vars
Re-write loop using map
Fix binding with external input widget
* update default background color
* remove unnessary scrol + fix pagination per page
* remove console.log
* use grid gap in pixel instead of snap
* fix list widget tests for binding
* add tests for on click action and pagination
* remove unnecessary imports
* remove overflow hidden in list component
* Add feature to enable template actions
* update property pane help text for list widget
* disable pagination in editor view
* update property pane options
* add test case for action
* uncomment tests
* fix grid gap validation
* update test cases
* fix property pane opening issue for list tempalte
* Disable form widgets in list widget
* fix template issue for actions
* add validation tests for list data
* update starting template
* add selectedRow + enable pagination in edit mode
* remove extra padding in list widget + popper fix on settingDisabled
* add stop propagation for button click
* fix click event in edit mode
* disallow filepicker widget for list widget
* add test for list widget entity definition for selectItem
* remove unused imports
* fix test
* remove evaluated value for list child widgets
* add comment
* remove log
* fix copying bug in list widget
* add check for not allowing template to copy
* fix test
* add test for property pane actions
* remove unused import
* add draglayercomponent test
* add test for draggable component
* add test for evaluatedvalue popup
* add test for messages.ts
* add test for widgeticons
* add test for property pane selector
* add test for widget config response
* start testing widget configresponse
* add test for enhancements in widget config
* add test for codeeditor
* add test for base widget + list widget
* add test for executeWidgetBlueprintChildOperations
* remove unused import
* add test for widget operation utils
* remove unused import
* add test for handleSpecificCasesWhilePasting
* remove unused function
* remove unused import
* add empty list styling
* resolve all review comments
* fix message test
* add test for widget operation utils
* fix merge conflicts
* move validations in property config
Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
Co-authored-by: nandan.anantharamu <nandan.anantharamu@thoughtspot.com>
Co-authored-by: vicky-primathon.in <vicky.bansal@primathon.in>
Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local>
Co-authored-by: Piyush <piyush@codeitout.com>
Co-authored-by: hetunandu <hetu@appsmith.com>
Co-authored-by: Hetu Nandu <hetunandu@gmail.com>
Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain>
- 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>
* Refactor CodeMirror component to be more configurable and testable (hints, markings)
* Update the existing datasource path component
* Better text highlighting for JSON fields
* Case insensitive hinting in autocomplete