[](https://workerb.linearb.io/v2/badge/collaboration-page?magicLinkId=MA2NqRe)
## Description
> [!TIP]
> _Add a TL;DR when the description is longer than 500 words or
extremely technical (helps the content, marketing, and DevRel team)._
>
> _Please also include relevant motivation and context. List any
dependencies that are required for this change. Add links to Notion,
Figma or any other documents that might be relevant to the PR._
In #33040 we added a state exclusively to capture modals that are
opened/closed to avoid computing which modal is open based on meta
state.
However the problem with this approach that I had understood after
testing it with deployed apps is that closing a modal is not done only
via the saga, but is done via actions and the modal itself without
dispatching the common saga.
Obviously the above implementation dunked.
Reverting to the previous implementation of relying on meta state to
select visible detached widgets.
Fixes #`Issue Number`
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags="@tag.Anvil"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢🟢🟢 All cypress tests have passed! 🎉🎉🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8895170744>
> Commit: 517ffc6ac5302bae6940b17b76774a963a18f773
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8895170744&attempt=1"
target="_blank">Click here!</a>
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No
[](https://workerb.linearb.io/v2/badge/collaboration-page?magicLinkId=MdeCkAG)
## Description
In this PR,
- we are refactoring Anvil DnD to use dom elements to render highlights
instead of canvas.
Why?
- Doesn't have the ability to overflow a widget and still allow dnd
events(section widget use case)
- limitations with respect to being testable
- we are adding compensators to dnd layers, so that DnD is not just for
layout but for the entire widget.
Widget is the appsmith entity.
layout is something present in container like widgets like Section and
Zone which allow you to contain children widgets based on a the layout
structure.
What are compensators?
- additional padding for DnD layers in a widget
- additional position offsets for highlights in a widget so that they
don't stick to the layout.
Why compensators?
- Section widget can be activated to show highlights in areas
overlapping with main canvas
- DnD should be possible even at spacings created by parent widget like
in Zone widget
- we are also removing canvas activation logic and moving to using mouse
move event to activate a canvas for DnD.
Fixes#32016
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags="@tag.Anvil"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!TIP]
> 🟢🟢🟢 All cypress tests have passed! 🎉🎉🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8872919856>
> Commit: 3f6603bf8480a99437552ac73764c9de1d6f7f95
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8872919856&attempt=1"
target="_blank">Click here!</a>
<!-- end of auto-generated comment: Cypress test results -->
## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
## Summary by CodeRabbit
- **New Features**
- Introduced a new layout property for widgets, enhancing customization
options.
- Added a custom error boundary component to handle and display errors
elegantly.
- New drag-and-drop components and utilities to improve interaction
within the editor canvas.
- Adjusted component hierarchies in Anvil editor and viewer for better
performance and structure.
- **Refactor**
- Simplified rendering logic in `AnvilWidgetComponent` by removing
conditional boundaries.
- Updated the hierarchy within the Anvil editor, enhancing component
nesting and interaction.
- **Bug Fixes**
- Adjusted padding values and added new constants for better UI
alignment and interaction feedback.
- **Chores**
- Renamed and reorganized Cypress locators and methods for clearer and
more efficient testing automation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
This PR introduces a new way to edit the queries directly from slash
hint commands that edit button appears on hover of the hint. This also
introduces an event `EDIT_ACTION_CLICK` as emitted from different other
places of our application with all the similar properties except the
`from` : `SlashCommandHint`
<img width="566" alt="Screenshot 2024-03-27 at 12 45 09 AM"
src="https://github.com/appsmithorg/appsmith/assets/7565635/34f0e226-d45a-482b-8484-7e1fdc672a04">
Fixes#32075
_or_
Fixes `Issue URL`
> [!WARNING]
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._
## Automation
/ok-to-test tags="@tag.All"
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!IMPORTANT]
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8465758601>
> Commit: `cff14b0006441274e182d17ff66603219971ddbd`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8465758601&attempt=2"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉
<!-- end of auto-generated comment: Cypress test results -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced the code editor with improved command suggestions and quick
command generation, including URL and event parameter handling.
- Introduced new styling for command suggestions in the code editor.
- **Refactor**
- Updated functions and components for better handling and mapping of
plugins within the code editor.
- **Chores**
- Added necessary imports and updated the usage of various components
and utilities to support new features and improvements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: “sneha122” <“sneha@appsmith.com”>
## Description
Adding params for query module instance on action selector
#### PR fixes following issue(s)
Fixes # (issue number)
> if no issue exists, please create an issue and ask the maintainers
about this first
>
>
#### Media
> A video or a GIF is preferred. when using Loom, don’t embed because it
looks like it’s a GIF. instead, just link to the video
>
>
#### Type of change
> Please delete options that are not relevant.
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
- Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- 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
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced action entity detection within the app for improved user
experience.
- **Refactor**
- Streamlined action-related code for better performance and
maintainability.
- **Bug Fixes**
- Resolved issues with incorrect action entity recognition in certain
scenarios.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
## Description
> Converts target param of postWindowMessage into a dropdown in action
selector
>
> Links to Notion, Figma or any other documents that might be relevant
to the PR
>
>
#### PR fixes following issue(s)
Fixes#28165
>
>
#### Type of change
- Bug fix (non-breaking change which fixes an issue)
>
>
## Testing
>
#### How Has This Been Tested?
- [x] Manual
- [x] 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
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
#### QA activity:
- [x] [Speedbreak
features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-)
have been covered
- [x] 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
- [x] 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
Splitting entities reducer for supporting more reducers on EE
#### PR fixes following issue(s)
Fixes [#27559](https://github.com/appsmithorg/appsmith/issues/27559)
#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)
## Testing
#### How Has This Been Tested?
- [x] Manual
- [ ] JUnit
- [ ] Jest
- [x] Cypress
## 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
- [ ] 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
Evaluation split changes for EE.
1. RequiresLinting function has moved to common place - on EE extra
checks will be added
2. DataTreeFactory - getActionsForCurrentPage changed to
getCurrentActions -- which will be modified on EE to acomodate package
actions
3. same as above for getJSCollectionsForCurrentPage --> changed to
getCurrentJSCollections
#### PR fixes following issue(s)
Fixes # (issue number)
> if no issue exists, please create an issue and ask the maintainers
about this first
>
>
>
#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)
>
>
>
## 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
Table widget's pageSize property was not taking account of mobile
position properties (`mobileTopRow` and `mobileBottomRow`) in Auto
Layout mode. This caused the issues mentioned in this PR.
Since this is a derived property, properties such as `isMobile` and
`appPositioningType` were not directly available. So, we added these
into the DataTree as well.
#### PR fixes following issue(s)
Fixes#22907Fixes#22911
#### 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?
> 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
- [x] Manual
- [ ] Jest
- [ ] Cypress
>
>
#### Test Plan
> Add Testsmith test cases links that relate to this PR
>
>
#### Issues raised during DP testing
> Link issues raised during DP testing for better visiblity and tracking
(copy link from comments dropped on this PR)
>
>
>
## Checklist:
#### Dev activity
- [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
---------
Co-authored-by: rahulramesha <rahul@appsmith.com>
## Description
Expand auto layout implementation to handle auto height use cases.
Use cases handled in this PR:
1. Change canvas and container-like widget height on adding / removing
widgets.
2. Container height update on content change of individual props, e.g.
text, checkbox groups.
3. Tabs widget use cases - change height on tab change, shouldShowProps
update.
4. Correct modal widget height.
5. List widget updates - disable auto height, enable manual resizing of
item container.
6. Fix resize loop.
Fixes https://github.com/appsmithorg/appsmith/issues/21977
Fixes https://github.com/appsmithorg/appsmith/issues/22093
Fixes https://github.com/appsmithorg/appsmith/issues/21837
Fixes https://github.com/appsmithorg/appsmith/issues/22183
Fixes https://github.com/appsmithorg/appsmith/issues/21758
Fixes https://github.com/appsmithorg/appsmith/issues/21870
Fixes https://github.com/appsmithorg/appsmith/issues/22086
Fixes https://github.com/appsmithorg/appsmith/issues/22539
Fixes https://github.com/appsmithorg/appsmith/issues/22329Fixes#22588
## 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)
## How Has This Been Tested?
- Manual
- Jest
- Cypress
## 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
- [ ] 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
---------
Co-authored-by: Aswath K <aswath@appsmith.com>
Co-authored-by: rahulramesha <rahul@appsmith.com>
Co-authored-by: Aswath K <aswath.sana@gmail.com>
Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com>
## Description
Replaces the old boring action selector dropdown with a much more
sophisticated UI that is capable of going above and beyond. Users with
an aversion to code can now build their more complex workflows with a
click of a few buttons.
Consider this code snippet
```javascript
Api1.run(() => {
showAlert("Hello");
navigateTo('Page1', {}, 'SAME_WINDOW');
}, () => {
removeValue("test");
});
```
|**Old action selector** |**New action selector**|
|:-:|:-:|
|<img width="250" alt="Screenshot 2023-03-29 at 16 54 14"
src="https://user-images.githubusercontent.com/32433245/228520661-a639b580-8986-4aec-a0f5-e2786d1a0f56.png">|
<img width="250" alt="Screenshot 2023-03-29 at 16 55 15"
src="https://user-images.githubusercontent.com/32433245/228521043-5025aa42-af95-4574-b586-bc4c721240bc.png">|
**Click on an action block to edit its parameters.**
<img width="500" alt="Screenshot 2023-03-29 at 17 01 18"
src="https://user-images.githubusercontent.com/32433245/228522479-493769d0-9d2c-4b67-b493-a79e3bb9c947.png">
**Switch to JS mode to get the raw code**
<img width="273" alt="Screenshot 2023-03-29 at 17 05 51"
src="https://user-images.githubusercontent.com/32433245/228523458-13bc0302-4c94-4176-b5aa-3ec208122f57.png">
### Code changes
**New UI components**
- ActionCreator component splits the code into block statements.
- Each block statement is represented by ActionTree.tsx UI component.
- ActionTree.tsx represents an action and its chains.
- ActionCard.tsx is the block that represents the individual action on
the UI.
- ActionSelector.tsx component is popover that contains the form for
editing individual action.
- TabView, TextView, SelectorView, ActionSelectorView and KeyValueView
are components that represent configurable fields in ActionSelector
form.
**AST methods**
- Added methods to get/set function names, expressions, arguments.
- Added methods to get/set then/catch blocks to allow chaining of
actions.
- Added methods to check if code is convertible to UI.
Fixes#10160Fixes#21588Fixes#21392Fixes#21393Fixes#7903Fixes#15895Fixes#17765Fixes#14562
Depends on https://github.com/appsmithorg/design-system/pull/306
## Type of change
- New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
- Manual
- Jest
- Cypress
### Test Plan
https://github.com/appsmithorg/TestSmith/issues/2296
### 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
- [x] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
### QA activity:
- [x] Test plan has been approved by relevant developers
- [x] Test plan has been peer reviewed by QA
- [x] Cypress test cases have been added and approved by either SDET or
manual QA
- [x] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [x] Added Test Plan Approved label after reveiwing all Cypress test
---------
Co-authored-by: Rimil Dey <rimil@appsmith.com>
Co-authored-by: arunvjn <arun@appsmith.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Co-authored-by: Parthvi Goswami <parthvigoswami@Parthvis-MacBook-Pro.local>
## 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
Widget selection is driven by URL changes. This would fix browser
navigation for users as they can use browser back/forward buttons to
travel across older contexts on Appsmith.
> Fixing browser URL navigation for widgets
Fixes#19571
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.
- New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
- Manual
- Jest
- Cypress
### Test Plan
> Add Testsmith [test
cases](https://github.com/appsmithorg/TestSmith/issues/2171) links that
relate to this PR
### Issues raised during DP testing
- [X] When a selected widget is below viewport and user refreshes the
page, then the widget property pane is open but the page does not
navigate to the selected widget
https://loom.com/share/09f1eda2f02d474981a0d48e4a6419ec
- [ ] Drop 2 widgets one at a time > Delete both the widgets > Now click
on back button of the browser > Observe the url it shows the widget id
in the URL but the canvas remains empty
https://loom.com/share/53cae28a5d224e67b783c8ccf53745f5
Dev Response: This issue is valid but not a major inconvenience. We will
try to track it and see if it needed to be addressed. Many other web
tools do not handle such cases
- [X] Canvas scrolls down when all widgets are selected.
https://loom.com/share/c8a68dadcdb040779abd3a73bde2b06c
- [X] Widget is not getting highlighted when added from the API editor
page. Please refer to the attached
video:-https://jiju8jbmwa.vmaker.com/record/IkwiAqFgafK9dVmu
## Checklist:
### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] PR is being merged under a feature flag
### QA activity:
- [ ] Test plan has been approved by relevant developers
- [x] Test plan has been peer reviewed by QA
- [ ] Cypress test cases have been added and approved by either SDET or
manual QA
- [ ] Organized project review call with relevant stakeholders after
Round 1/2 of QA
- [ ] Added Test Plan Approved label after reveiwing all Cypress test
---------
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
## Description
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>
## Description
This PR includes Changes for Drag and drop Improvements, That includes,
- Resizing dragging widgets along Container edges.
- Initially resize widgets against Container/Droptarget widgets.
- While holding close to Container/Droptarget widgets for half a second,
start to reflow the widget.
Fixes#19139Fixes#12892
Media
https://user-images.githubusercontent.com/71900764/209154834-66acecbb-2df8-4598-86d5-4fe7843dd21b.mp4
## Type of change
- Bug fix (non-breaking change which fixes an issue)
- New feature (non-breaking change which adds functionality)
## How Has This Been Tested?
- Manual
- Jest
### 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
* Changes to on page load logic and consumption for update layout
* Slight clean up, tests and stuff
* - Added evaluationVersion logic based on application configuration
- Added configuration for slim and fat container rts availability
- Added backup logic of string comparison for slim containers
- Added tests for both paths
* Changes to on page load logic and consumption for update layout
* Slight clean up, tests and stuff
* Cleaned up comments all over
* Why isn't there even a setting to disable auto re-formats
* update rts logic to use updated shared AST logic
* Make changes to naming conventions
* Some temp stuff to check if update layout API changes will work out
* Added health check endpoint in RTS
* Added types for AST request
* update: type for save page request object
* update: return type for getEditorConfigs func
- Added applicationId to the type.
- Fetching from the redux store -> applications -> currentApplication -> id
* update: url generation func for update page API
- added applicationId as query param for the call
* Fixed test failures
* Fixed merge from release with on page load failure messages
* Fixed tests failing after merge
* Review comments, more tests, and fix for array index ref directly after .data path
* Test fix
* Addressed review comments
* Updated comment
* Fixed rts temporarily, added handling for data as function name, left with tests
* fix: failing rts server
* Tests for all types of actions and references
* Changes to test
* Modified type to set
* Test fixes
* Trying to make a test pass
* Added app id in cypress test update dsl
* Added app id in cypress test update dsl
* Added app id in cypress test update dsl
* Removed dep tree temp file
* Resolving compile issues after merging from release
* updated tests for applicationId
* corrected a typo
* fixed some more tests
* updated test
* Updated test
* DSL load AppId fix
* appId removal
* AgHelper LocalStorageCache()
* AgHelper LocalStorageCache() - commit 2
* AgHelper LocalStorageCache() - commit 3
* AgHelper LocalStorageCache() - commit 4
* AllWidgets_Reset_spec - Dsl fix
* Json_spec fix
* S3_2 spec fix
* fixes
* LocalStorageCache fixes
* fixes
* fixes
* fix
* OnLoadActions spec fix
* Promises spec fix
* S3_2 spec fix
* 16702 spec update
* OnLoadActions spec trial fix
* RTS fix
Co-authored-by: Nidhi Nair <cataclysm@Nidhis-MacBook-Pro.local>
Co-authored-by: Ayangade Adeoluwa <adeoluayangade@yahoo.com>
Co-authored-by: Ayush Pahwa <ayush@appsmith.com>
Co-authored-by: Aman Agarwal <aman@appsmith.com>
Co-authored-by: Apple <nandan@thinkify.io>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
* fix: show the form setting in button widget
* test: fix test case
* refactor: code refinement
* refactor: remove hidden fun. for form setting
* refactor: remove unused var
* refactor: recall the old code
* refactor: remove the parent hack for hidden
Co-authored-by: Aishwarya UR <aishwarya@appsmith.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
* temp commit
* using onsubmit to continue using action on form
* added recaptcha site key to env example file
* moved the recaptcha lib loading logic to signup page
* removed unnecessary edit
* handle the case where the recaptcha token is not provided as env var
* added proper env var config for client
* recaptcha config for ansible
* recaptcha config for heroku
* recaptcha config for k8s
* updated app.json
* fixed the typos
* added more description for env vars
* removed api key
* minor typo fix
* added new integration button
* updated the add int default link
* added active and create new tabs
* added the empty components to tabs. will control the section manually.
* added proper grid for integrations page
* added vertical tabs
* Added secondary tabs to integrations page
* added separate page for new apis
* classname changes
* added new components for active queries, new queries etc.
* added a separate component for data source list
* adding screen component conditionally, to be showing upon user's choice
* 1. Added grid styling to datasource home
2. Added connect buttons to em
* fixed data source security banner
* updated the styling for new api page
* added tertiary menu for active integrations
* updated styling for active connections
* updated collapse component to work properly
* added show more option to active data sources
* Slash commands feature init commit
* Added more commands
* Introduced JSX to render custom commands
* Merge conflict fix
* Spacing changes
* removed apis/db tabs and replaced em with integrations tab
* removed the unnecessary + integrations btn
* Added slash commands button
* Adjust styles for better ui
* Ordered the action entries under integrations
* Added new datasource command
* updated the getURL with proper params
* updated the link of create datasource btn
* updated the back btn link from data source editor
* Show connect data cta in property pane
* Styling fixes
* Fix margin
* added scrollable content to create new
* added on click scroll to create new page
* fixed a bug, creating new datasource twice
* added new action creator for integrations.
* Minor changes to add new bindings command.
Changed ui behaviour of / button
* UI style change
* updated the query editor to match the over all theme
* updated the query editor tabs
* Added the run btn to empty response screens
* minor fix
* updated the bg color of api type drop down
* updated the url being visited after delete api/query
* removed log
* Insert binding command UI change
* More UI changes
* removed unnecessary junk from integrations editor index
* clean up, removed unnecessary files
* removed useless routes
* for debugger only checking if integrations editor
* Removed all the links for api/query home pages
* Move command actions to a saga
Added support to binding the data back to the widget when are new API is created from widget
* Added reverse binding for DB queries
* Show / button only on hover
* not routing to integrations on create query/api
* Hide actions from suggestions in action pages
* removed the query/datasource/api home pages
* Changes widget.data to widget in slash commands
* Show dependencies in property pane
* Fix warning
* fixed scrolling issue
* will show a list of queries and apis for action picker
* showing icons for each action under integrations
* Fix dropdown not showing up
* Minor refactoring.
Changed commands
* added a way to list data sources in action creators
* Update query page url
* cam show icons for datasources
* Removed unused code
* Feature/slash commands (#5002)
* Slash commands feature init commit
* Added more commands
* Introduced JSX to render custom commands
* Merge conflict fix
* Spacing changes
* Added slash commands button
* Adjust styles for better ui
* Added new datasource command
* Minor changes to add new bindings command.
Changed ui behaviour of / button
* UI style change
* Insert binding command UI change
* More UI changes
* Move command actions to a saga
Added support to binding the data back to the widget when are new API is created from widget
* Added reverse binding for DB queries
* Show / button only on hover
* Hide actions from suggestions in action pages
* Changes widget.data to widget in slash commands
* Minor refactoring.
Changed commands
* Removed unused code
* remove more unusued code
* Added support to generate new api from a datasource in quick commands
* Code correction to use types
* Refactored commands code
* Minor bug fixes
* Remove new integrations command for actions.
Fixed autocomplete not showing up
* Changes to prevent autocomplete trigger for navigation commands
* Prevent hinter execution when show hint is open already.
* Show hinter on focus
* Update text to be called in the omnibar
* updated the copy for empty active datasources
* Update url
* Fix text decoration
* updated the redirection for back btns
* Use themes
* Add cypress test
* fixed back btn nav
* fetching form configs for datasources
* a callback fixed
* Fix slash command not executed on click (#5540)
* Replace the value if not a string else append
* Log commands menu events
* updated mock data base navigation
* updated mock data base navigation
* updated the close editors and back buttons
* All back btns from editors will go back to data sources and back from data source will go back to canvas
* fixed bg colors
* minor styled updates
* removed margin from header of generic datasource
* warnings fixes
* If user is already on the location not redirecting em
* when editing, will check if the coming from data source and redirect accordingly
* updated redirection for newly created api/queries
* updated back btn for newly created datasources
* back for new curl goes to data sources
* Revert "[Fix] revert new nav (#5533)"
This reverts commit 1647815d
* remaining original reverted chagnes
* fixed the width of incoming/outgoing entity bar in property pane
* removing residue from resolved merge conflicts
* Fix widget icons not visible in dropdown menu
* minor fix to use proper integration URL
* updated the URLs for unified datasources
* converted back and close to btns from banners
* on accessing data source from sidebar, it'll always go to view mode
* updated the edit path for saas editors
* Added saved state for google sheet
* on google sheet delete redirecting to create new
* minor fix
* fixed the redirection call on saving a datasource
* removed save and test cmd as it wasn't needed
* Removing test cases to be fixed by Arun
* commenting more tests to be fixed by Arun
* updated call api cy command
* Fix extra margin issue
* fixed the update datasource saga
* fixed video spec
* Revert "commenting more tests to be fixed by Arun"
This reverts commit 42087a95ad77107401a1619e4c2d4c541a81d6c3.
* Revert "Removing test cases to be fixed by Arun"
This reverts commit f6fad67e558d22045114a90409428ef9b737478f.
* fixed the entity explorer query datasource spec
* cautious fix
* update widget locators
* fixed leave org test
* fixes for FormWidgets
* updated the image spec
* Use memo
* Fix debugger url checks
* for copy and delete widget pointing directly to svgs
* Fix entity text
* Fix styling and show tooltip for property pane dependencies
* removed the unnecessary callback
* added a separate saga to to redirect to new integrations using onSuccess
* Bug Fixes - New nav (#5629)
* will show scrollbar only on hover
* made mock data cards clickable
* fixed the grid view
* fixed the cursor position when clicking on / btn
* updated the hint for `/` command
* binding prompt will close on focus change
* hiding / command for api body
* hiding / command for query pane
* Added 2 new icons
* Fix cursor position on selecting a binding and clicking on the slash menu button
* trying out fix to copyWidget cy command
* removing zero width space characters from the property pane text
Co-authored-by: arunvjn <arun@appsmith.com>
Co-authored-by: Akash N <akash@codemonk.in>
Co-authored-by: arunvjn <32433245+arunvjn@users.noreply.github.com>
Co-authored-by: Rishabh Saxena <rishabh.robben@gmail.com>
* Fixing the telemetry on self-hosted instances (#1714)
* Fix issue where creating a new application twice does not work (#1713)
* add check if name is conflicting with internal fn
* use already existing selector
* add conflicting names checks on api/queries/widget names
* add test cases for invalid widget/api/query names
* refactor
* change array to map
* remove getDataTreeKeys selector
* refactor
Co-authored-by: Arpit Mohan <mohanarpit@users.noreply.github.com>
Co-authored-by: Abhinav Jha <abhinav@appsmith.com>
Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local>
- 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
# 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.