65e28b4c1a
9311 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
65e28b4c1a
|
test: updated js methods to refer ts locators for Git Tests (#34577) | ||
|
|
8979e0738f
|
test: Fix Anvil DSLs used for testing (#34569)
**/test anvil** <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9707811922> > Commit: ed747ced8289226840e96096a6a1ee86869d4bc5 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9707811922&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` <!-- end of auto-generated comment: Cypress test results --> |
||
|
|
d8b9eed1e6
|
test: updated flow for GitSync (#34239)
RCA: Click on the dropdown was not working intermittently Solution: updated the flow, 1. Wait for the destination dropdown 2. Click on the destination dropdown 3. Assert the branch name visible post dropdown has opened 4. Click on the destination branch <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Enhanced the `mergeBranch` process in GitSync to ensure better stability and accuracy by adding assertions for element appearances, disappearances, network status, and the presence of a destination branch. - **Tests** - Switched limited test spec from `Fork_Template_spec.js` to `GitSyncedApps_spec.js` and added `GitBugs_Spec.ts` for improved test coverage and accuracy. - **Refactor** - Changed `className` attribute to `data-testid` in the `Select` component within the GitSync merge tab for improved testing and readability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: albinAppsmith <87797149+albinAppsmith@users.noreply.github.com> |
||
|
|
6f9e4503a5
|
fix: Update BuildingBlockSagas to handle nested object value replacement in queries (#34563)
## Description This pull request updates the BuildingBlockSagas module to handle nested object value replacement in queries. Previously, the module only replaced values at the top level of the object, but now it correctly handles nested values as well. This improves the accuracy and reliability of the queries. The changes include adding a new utility function, `accessNestedObjectValue`, which is used to access and update nested values in the `actionConfiguration` object. Additionally, the `updateWidgetsNameInNewQueries` function has been modified to use this utility function when replacing widget names in queries. Overall, these changes enhance the functionality of the BuildingBlockSagas module and ensure that queries are properly updated with the new widget names." 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.Widget" ### 🔍 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/9698473149> > Commit: 6e82692e4cbf8d2e9630499006aa2e0f8adbfdd3 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9698473149&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Widget` <!-- 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 - **Refactor** - Enhanced internal logic for updating nested object values in widget names. - **Tests** - Added new test case for handling `null` or `undefined` inputs in utility functions. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
b693377e82
|
fix: Truncate title in tooltips in table cell if it exceeds 200 characters (#34507)
## Description Truncate the title in tooltips if it exceeds 1000 characters to improve readability. Fixes #23156 _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.Widget" ### 🔍 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/9697818492> > Commit: a4007cb6372e7872b1c6472efdabee1a4932a83c > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9697818492&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Widget` <!-- 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 - **New Features** - Improved tooltip functionality to automatically truncate text that exceeds a set character limit, enhancing readability. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
6835804f79
|
fix: jest ci script (#34562)
## Description
Now, all unit tests will continue to be run in the CI pipeline, even if
they fail.
## Automation
/ok-to-test tags=""
### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results -->
> [!CAUTION]
> If you modify the content in this section, you are likely to disrupt
the CI result for your PR.
<!-- 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
- **Chores**
- Updated test script in `package.json` to improve test execution
environment.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
|
||
|
|
8d9900598b
|
fix: update newly created queries body with correct widget bindings (#34248)
## Description When multiple blocks of the same type are dropped unto the canvas right after each other, the query body of the newly created query does not update the binding to the latest version of the widgets. ## Solution We have gotten the newlyUpdatedQueries from the block API, then we update the actionConfiguration.body and the jsonPathKeys to match the updated binding name for the block and implement the action in the local state. Fixes #34237 ## Automation /ok-to-test tags="@tag.Widget" ### 🔍 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/9644500854> > Commit: 562ad23b485afbd0c7b695b0c1aa8e8cc01c94cb > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9644500854&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Widget` <!-- 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 - **New Features** - Enhanced functionality for saving building block widgets to the store. - **Tests** - Updated and added new test cases for pasting building block widgets. - **Bug Fixes** - Fixed issues with the import and usage of action types and selectors in the building block sagas. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
2f12030a9a
|
fix: Disable custom widgets for airgapped environments (#34540)
## Description Since custom widgets rely on react delievered from `https://cdn.jsdelivr.net`, it can't work in airgapped edition. 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.Widget" ### 🔍 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/9692258525> > Commit: bf3b40a5c3c51a2271347967516a53655721f7a2 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9692258525&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Widget` <!-- 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 - **New Features** - Custom widgets will now hide specific cards if the environment is air-gapped. - **Tests** - Updated test tags for custom widgets to exclude tests in air-gapped environments. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
0747702519
|
test: Use deep.eq for comparing DSLs (#34523)
Failures in these specs show up like this today:   Which are practically impossible to troubleshoot, assert the order of keys in objects which we don't really want/need, and is failing on Postgres. Instead, in this PR, we use `.deep.eq` to assert them, which is almost the same thing in practice, but doesn't assert the key order in serialization.  /test fork <!-- This is an auto-generated comment: Cypress test results --> > [!WARNING] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9691146519> > Commit: d3da957b5362e0314e11c7589e43fb526e4317d6 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9691146519&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Fork` > It seems like **no tests ran** 😔. We are not able to recognize it, please check <a href="https://github.com/appsmithorg/appsmith/actions/runs/9691146519" target="_blank">workflow here</a>. <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Tests** - Refactored test cases to improve the scope management and comparison logic within the test blocks. This change enhances the reliability and maintainability of the test suite. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
cb3ddf1cb3
|
chore: Add evalTreeWithDiff to evalWorkerAction (#34403)
## Description These changes add evalTreeWithDiff to evalWorkerAction. Using this method it will be possible to send the unevalTree and configTree updates from mainThread to trigger evaluation. - This will skip diffing complete unEvaltree ### Next steps after this PR - [ ] Rename EvalTreeWithChanges to evalTreeWithDiff - [ ] Generate Diff instead of updatedValuePaths for the current evalTreeWithChanges references. - [ ] Handle evalTreeWithDiff for - [ ] JSObject updates - [ ] updateDependencyMap Fixes # ## Automation /test js ### 🔍 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/9684706533> > Commit: 3de988af5da9900f4e589a008d28296d05d17f25 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9684706533&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.JS` <!-- 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 - **New Features** - Enhanced widget evaluation logic and improved handling of dynamic bindings and dependencies. - **Bug Fixes** - Corrected type handling in various evaluation functions to improve stability and accuracy. - **Tests** - Updated test cases for widget property setters to include additional tags for better categorization. - **Refactor** - Streamlined function signatures and improved type safety across evaluation utilities. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
8971dbe99d
|
chore: Fail on unknown fields in request body (#33724)
Currently, if the incoming request body contains fields that aren't recognized by the backend, we just ignore them, and deserialize what we _can_. This has lead to subtle bugs and wasted a lot of developer time in the past, and added little value in return. Most recently, with application creation, now fixed in https://github.com/appsmithorg/appsmith/pull/33722. Another one, for action creation, client sends this in `eventData` field of the request body:  But the class defined for `eventData` is this:  Clearly isn't working. This PR enabled the `FAIL_ON_UNKNOWN_PROPERTIES` setting only for the deserialization of HTTP request payloads. It shouldn't have impact on other deserializations like those for Git, and those that load resource files. Primarily to limit the scope. This should also bring in some much-needed type strictness to the client as well. So far, server has been lax in accepting just any fields in the incoming request body, so client was able to afford being lax about the object that was sent up. We're enabling this restriction only for CE currently. Will be opening a similar PR on EE and once all tests pass there, we enable for EE as well. Depends on #33728 #33730 #33731 #34366 #34405 #34446 #34473 #34506 Run No. 1 > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9685619413> > Commit: 04e225f91a5549bd41f952ea85fa57483b1b0588 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9685619413&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` **/test all** <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9690185000> > Commit: 29da8b48a36772bebc188f6173ea07d6acfd9a3c > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9690185000&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added `certificateType` property to datasources for enhanced SSL configuration options. - **Enhancements** - Improved JSON deserialization behavior for better data handling and flexibility. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
f351008b94
|
chore: Don't rely on key order in objects (#34522)
The way the border-radius selector in Theme settings is built, it relies
on the `borderRadius` object to show up like this:
```js
{
none: "",
M: "",
L: "",
}
```
And the order options is relying on that. So if we get back the
following from the server:
```js
{
L: "",
M: "",
none: "",
}
```
The options are reversed.
This may/may-not be a problem, but we're asserting in our tests (see
below) that the first option be `none`, so clearly we want a predictable
order here. This predictable ordering isn't available anymore with
Postgres.
From
[FilePickerV2_Widget_Reskinning_spec](
|
||
|
|
963ae31b11
|
chore: add snapshots for input type widgets (#34436)
/ok-to-test tags="@tag.Anvil" <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9678081244> > Commit: d73f2d7f37c9d62ba1ca622b78d9a0ce4d0e3db8 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9678081244&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced comprehensive test cases for Currency Input, Phone Input, and General Input Widgets in the Anvil editor covering Canvas, Preview, and Deploy modes. - Added complex layout structures for Currency and Phone Input Widgets in the "MainContainer" canvas widget. - **Enhancements** - Implemented debouncing for validation status and error message handling in the Currency Input Widget to improve timing accuracy. - Added `defaultValue` property to Currency Input Widget configurations. - Corrected typos and improved clarity in widget property names and validation logic. - **Bug Fixes** - Fixed validation status typo in Phone Input Widget. - **Refactor** - Reordered static property declarations in Input Widgets for better code organization. - Modified method access controls in AnvilSnapshot for external usage. - **Tests** - Added snapshot testing for Currency, Phone, and General Input Widgets within the Anvil editor. - **Chores** - Added a new method `Createpage(pageName: string)` to streamline page creation in tests. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro-2.local> |
||
|
|
6f67dbd85e
|
test: Use deep.eq for comparing objects (#34513)
The JSON string comparison is flaky because it depends on the order of keys in serialized objects. We actually don't care for the order the keys are serialized, just that the keys and values are as we want. This PR should fix that. [Slack conversation](https://theappsmith.slack.com/archives/C0134BAVDB4/p1719409620659339). /test table <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9681276909> > Commit: 3fa1746c580d700a3084d94166850acd18432d09 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9681276909&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Table` <!-- end of auto-generated comment: Cypress test results --> |
||
|
|
57f86debae
|
test: Really empty DSL (#34510)
Part of #33724, and extension to #34405. This file's contents are used to call the endpoint: ``` /layouts/{layoutId}/pages/{pageId}?applicationId={applicationId} ``` But this endpoint accepts request payload as `LayoutUpdateDTO`, which only has one single field, `dsl`, and nothing else. But the way we use this JSON, is that we're sending the body as this: ```json { "widgetName": "MainContainer", "backgroundColor": "none", "rightColumn": 1296, "snapColumns": 64, "detachFromLayout": true, "widgetId": "0", "topRow": 0, "bottomRow": 440, "containerStyle": "none", "snapRows": 125, "parentRowSpace": 1, "type": "CANVAS_WIDGET", "canExtend": true, "version": 47, "minHeight": 420, "parentColumnSpace": 1, "dynamicBindingPathList": [], "leftColumn": 0, "children": [] } ``` Not as this: ```json { "dsl": { "widgetName": "MainContainer", "backgroundColor": "none", "rightColumn": 1296, "snapColumns": 64, "detachFromLayout": true, "widgetId": "0", "topRow": 0, "bottomRow": 440, "containerStyle": "none", "snapRows": 125, "parentRowSpace": 1, "type": "CANVAS_WIDGET", "canExtend": true, "version": 47, "minHeight": 420, "parentColumnSpace": 1, "dynamicBindingPathList": [], "leftColumn": 0, "children": [] } } ``` Which means that we aren't sending anything useful. /test widget ide <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9680215500> > Commit: 8ede3e707c0487cdeda62b166487f093f1bcab78 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9680215500&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Widget, @tag.IDE` <!-- end of auto-generated comment: Cypress test results --> |
||
|
|
e63a2a3361
|
chore: More strict payloads in JSActionAPI (#34506)
Part of #33724. This is fix for `JSEditorContextMenu_Spec`. /test ide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Improved payload handling for `createJSCollection` and `copyJSCollection` methods to better manage nested objects. These changes optimize data handling within the app, ensuring smoother and more reliable performance when creating or copying JavaScript collections. <!-- end of auto-generated comment: release notes by coderabbit.ai --> <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9679862281> > Commit: 50ee7d6bf036e101738d2ff9f54ffdef7c5e180b > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9679862281&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.IDE` <!-- end of auto-generated comment: Cypress test results --> |
||
|
|
f8f5ebbbef
|
chore: Strict API payloads for JSObjects and more (#34471)
Part of #33724. Fixes for JSObject API calls and `EvaluatedValuePopUp_spec` test. **/test sanity binding** <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9665092474> > Commit: d48cd19bfc2165bd06d605608ee632faa042a820 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9665092474&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.Binding` <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Improved the structure of API request payloads for JS collections, ensuring more efficient data handling. - **Bug Fixes** - Removed unnecessary parameters from dynamic value fetching functions, streamlining the process and reducing potential errors. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
854d3f03da
|
chore: Only send uidString to remove a JSLib (#34473)
Part of #33724. The server uses only `uidString` for this API endpoint, which is all we should be sending. The server accepts a few other fields as well today, but doesn't use them. That'll also be fixed in the future, to only accept strictly what's needed. /test sanity js <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9672660446> > Commit: a61fa21404ab4ab7fd450f2db9f256dfe86f2f4d > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9672660446&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.JS` <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Bug Fixes** - Improved the `updateLibrary` method to send specific payload data, enhancing API reliability. - **Logging Improvements** - Updated log messages in the `removeJSLibFromApplication` method to exclude version information for better clarity. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
519b53ea9b
|
feat: Overflow tabs list view (#34150)
## Description This PR implements the new design for the list view. Fixes #33432 ## Automation /ok-to-test tags="@tag.Sanity, @tag.IDE" ### 🔍 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/9660135881> > Commit: fb8addb5a6fae5c9d68c0164d8332105bfa88ec9 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9660135881&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.IDE` <!-- 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 - **New Features** - Introduced `AddTab` component to add new JavaScript or Query tabs. - Added `ScreenModeToggle` for switching between full-screen and split-screen modes. - Added `FileTab` component for improved tab interactions. - Introduced `List` component for conditional rendering based on editor state. - **Bug Fixes** - Corrected test assertions and tab names in `JSRender.test.tsx` and `QueryRender.test.tsx`. - Fixed tab closure and interaction flow in `IDE_Add_Pane_Interactions_spec.ts`. - **Refactor** - Simplified selector functions and updated component imports for better readability and performance. - **Tests** - Updated tests to include `currentEntity` props and use `sanitizeString` for tab titles. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
d0c2d40c7b
|
chore: Logs and potential fix for CI startup flakiness (#34461)
The `tlog` command isn't predictably getting the executable permission, so we're explicitly setting that up in `Dockerfile` here. As well as in the setup script for Cypress, if we get a 502 even after 90 seconds, we print the logs of the `appsmith` container, so we're not guessing the causes. This should provide us more information next time we see such flakiness. **/test sanity** <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9658565348> > Commit: 96c777dd9a1bd8c28477bf1dcd1d4748ced0022e > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9658565348&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Chores** - Updated Dockerfile to ensure custom command-scripts in `/opt/bin/` have executable permissions. - Enhanced `setup-test-ci.sh` script to output `appsmith` logs when the server connection fails. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
1ba8672bec
|
fix: Focus retention issue after delete datasource (#34460)
## Description This PR fix the invalid URL issue after deleting the last datasource. This is caused by the focus retention delete order. Whenever a focus history is being deleted, it should be done after redirection to the new URL. Fixes #33994 ## Automation /ok-to-test tags="@tag.IDE, @tag.Datasource" ### 🔍 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/9657584656> > Commit: 010092ee7e177a8244912b45962cb79ff210ec29 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9657584656&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.IDE, @tag.Datasource` <!-- 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 - **Bug Fixes** - Improved the deletion process of data sources to ensure proper handling of focus history and redirects. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
8a68347952
|
feat: added key pair auth for snowflake behind feature flag (#34399) | ||
|
|
aa773f6950
|
chore: Strict payloads for update action and gen template API (#34446)
Part of #33724. This PR fixes a few more APIs to pass just the fields that the server expects, and nothing more. /test sanity datasource <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9648180689> > Commit: 874f9f1a721108d36dae5719fa842d595bd9281d > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9648180689&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity, @tag.Datasource` <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Improved payload structure for `updateAction` and `moveAction` methods to enhance API request consistency. - Updated `updateApplicationTheme` method to refine the payload before making API calls. - Modified `generateTemplatePage` method to update the request payload, improving API interaction. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
411122ec56
|
fix: Refactor dynamic bindings in widgets during building block paste. (#34318)
## Description * This pull request refactors the function `handleButtonDynamicTriggerPathList` to `handleWidgetDynamicTriggerPathList` in order to make it more generic and handle dynamic trigger paths for all types of widgets. * Additionally, the pull request moves the function `handleIfParentIsListWidgetWhilePasting` out of `handleSpecificCasesWhilePasting` to handle compound cases where the parent of the current widget needs to be checked. * Improves the nested object value replacement logic in `PasteWidgetUtils`. 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.Templates, @tag.Widget, @tag.Sanity" ### 🔍 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/9656587968> > Commit: 4b821787d7ab5ad302b458c726c632b1e43b49e4 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9656587968&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Templates, @tag.Widget, @tag.Sanity` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Simplified handling of pasting widgets by consolidating functions. - Improved logic for handling widget pasting scenarios. - Reorganized function names for better clarity and consistency. - **Bug Fixes** - Enhanced the handling of widgets when their parent is a list widget during pasting. - **Tests** - Updated test cases to reflect changes in widget pasting logic and function names. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Jacques Ikot <jacquesikot@gmail.com> |
||
|
|
e6e4b98492
|
ci: To improve readability sorted tags in tags.js (#34452)
## Description To improve readability sorted tags in tags.js Fixes #34419 ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > 🟣 🟣 🟣 Your tests are running. > Tests running at: <https://github.com/appsmithorg/appsmith/actions/runs/9656608059> > Commit: c45654a04119910854b5f9e7989f42ccf76356a1 > Workflow: `PR Automation test suite` > Tags: `@tag.Sanity` <!-- 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 - **New Features** - Added new tags for enhanced categorization, including `@tag.Audio`, `@tag.Auditlogs`, `@tag.Authentication`, `@tag.Camera`, `@tag.Form`, `@tag.Image`, `@tag.Video`, and many more to improve content organization. - **Removals** - Removed outdated or redundant tags like `@tag.Git`, `@tag.Widget`, `@tag.Slider`, and `@tag.Input` for better clarity and relevance. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
992bbdb7c8
|
chore: Update Postgres port for TED in CI (#34430)
## Description PR to update the Postgres posrt for TED container in CI. /test all ### 🔍 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/9646981763> > Commit: d998c6fe77ac2acdb71888fe6b3d7603ddda508c > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9646981763&attempt=2" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- 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 - **Chores** - Updated Docker port mapping from `5432` to `5433` across multiple CI workflow files to ensure consistency and avoid port conflicts. - **Bug Fixes** - Adjusted PostgreSQL connection port from `5432` to `5433` in test fixtures and scripts to align with environment changes and prevent connection issues. - **Tests** - Modified test scripts to handle new PostgreSQL port settings for improved reliability in testing scenarios. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
dc79ebb918
|
test: Remove unused data in DSL fixtures (#34405)
Part of #33724. We have a lot of fixture files in our Cypress tests with DSLs of various kinds. They are used to update the DSL using the `/api/v1/layouts/{layoutId}/pages/{pageId}?applicationId={applicationId}`. This API, is [in this line in `LayoutControllerCE`]( |
||
|
|
d86c855ef2
|
chore: Strict schema for datasource and action APIs (#34366)
Part of https://github.com/appsmithorg/appsmith/pull/33724. This is an effort to harden the server in terms of what request payloads are acceptable. **/test all** <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Enhanced API request payload handling for creating actions to include additional properties, improving data integrity and server-side validation. - **Improvements** - Refined data manipulation and payload structures in datasource-related API requests for better compatibility with server requirements. <!-- end of auto-generated comment: release notes by coderabbit.ai --><!-- This is an auto-generated comment: Cypress test results --> > [!CAUTION] > 🔴 🔴 🔴 Some tests have failed. > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9626214547> > Commit: fe5db45aeb916b176aec3ded06f1a9da1bf08898 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9626214547&attempt=2&selectiontype=test&testsstatus=failed&specsstatus=fail" target="_blank">Cypress dashboard</a>. > Tags: `` > The following are new failures, please fix them before merging the PR: <ol> > <li>cypress/e2e/Regression/ClientSide/Widgets/RTE/RichTextEditor3_spec.ts > <li>cypress/e2e/Regression/ClientSide/Widgets/RTE/RichTextEditor_1_spec.js > <li>cypress/e2e/Regression/ClientSide/Widgets/RTE/RichTextEditor_2_spec.js </ol> > <a href="https://internal.appsmith.com/app/cypress-dashboard/identified-flaky-tests-65890b3c81d7400d08fa9ee3?branch=master" target="_blank">List of identified flaky tests</a>. <!-- end of auto-generated comment: Cypress test results --> |
||
|
|
99c51a99ae
|
fix: don't call modal onClose method in edit mode (#34432)
## Description Fix modal onClose method in edit mode Fixes #33861 ## 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/9643445303> > Commit: 179602e52dcc2cdcaeecc5f67af5bc4ac12ee431 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9643445303&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` <!-- 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 - **Bug Fixes** - Improved modal widget behavior to ensure it checks for disableWidgetInteraction before closing, preventing unwanted closures. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
ed497dbe9c
|
chore: add tests for anvil modal. (#34347)
[](https://workerb.linearb.io/v2/badge/collaboration-page?magicLinkId=9GEnyEC) ## 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._ Fixes #33740 _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/9643638292> > Commit: bcc4bbddaa50b0be16e41a3a51db4f6abe732e79 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9643638292&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced test cases for Anvil modals, covering interactions like opening, closing, drag and drop operations, and handling modal functions. - **Bug Fixes** - Enhanced testing capabilities with `data-testid` attributes for better identification and testing of components, particularly in detached widget drop areas. - **Refactor** - Updated the `Modal` component to use `dataAttributes` instead of `size` prop to streamline attribute handling. - Dynamic generation of modal class names based on properties for better styling and consistency. - **Style** - Adjusted styling for SVG elements within the `EntityExplorer` component, specifically modifying the height and width properties. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro-2.local> |
||
|
|
70398df10a
|
fix: wds widgets (#34387)
## Description - Remove click event from Stats - Remove validation section from SwitchGroup - Fix Inline button variant for added button - Fix paragraph default text - Fix inputs placeholders Fixes: #34189 #34002 #33753 #33242 #33243 #33186 #32509 ## 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/9615117095> > Commit: 15420c10925a9315375f7da9ba6fa6bfd7b9fb29 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9615117095&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` <!-- 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 - **New Features** - Updated the placeholder text for input fields to provide more concise and specific guidance. - **Bug Fixes** - Adjusted button variant naming for better consistency. - Improved text in `WDSParagraphWidget` to emphasize understanding mysteries. - **Refactor** - Removed unnecessary `onClick` prop from `StatsComponent`. - Simplified `getWidgetView` function in `WDSStatsWidget`. - **Chores** - Cleaned up redundant validation and required properties in `WDSSwitchGroupWidget`. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
16706cad08
|
fix: Sync EE items into CE (#34373)
## Description Going through EE repo to check if there are any changes in the repo (outside EE folder) that do no exist in the CE directory. These changes are harmless and seem to have been added to EE only by mistake. This PR will ensure the changes are copied here as well to maintain the sync ## Automation /ok-to-test tags="@tag.All" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > 🟣 🟣 🟣 Your tests are running. > Tests running at: <https://github.com/appsmithorg/appsmith/actions/runs/9642308929> > Commit: 825650372300260c39ae7b5b2ce91d2178dfa8c9 > Workflow: `PR Automation test suite` > Tags: `` <!-- 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 - **New Features** - Introduced a new CDN URL declaration for improved asset management. - Added a new function to check if the app mode is in "Published" state. - **Style** - Updated global styles to include new `.ai-window` class in popovers. - Enhanced cursor styling in the `CopyUrlForm` component. - **Bug Fixes** - Corrected an attribute name in the `ReconnectDatasourceModal` component. - **Performance** - Added caching for tenant configuration to optimize loading times. - **Chores** - Set `__webpack_public_path__` to support CDN usage in the Enterprise Edition environment. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
20b83faec4
|
chore: Revert "chore: bump tinymce from 7.0.0 to 7.2.0 in /app/client" (#34421)
Reverts appsmithorg/appsmith#34349 ## Automation /ok-to-test tags="@tag.Sanity,@tag.TextEditor" <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tinymce/tinymce/blob/main/modules/tinymce/CHANGELOG.md">tinymce's changelog</a>.</em></p> <blockquote> <h2>7.2.0 - 2024-06-19</h2> <h3>Added</h3> <ul> <li>Added <code>options.debug</code> API that logs the initial raw editor options to console. #TINY-10605</li> <li>Added <code>referrerpolicy</code> as a valid attribute for an iframe element. #TINY-10374</li> <li>New <code>onInit</code> and <code>stretched</code> properties to the <code>HtmlPanel</code> dialog component. #TINY-10900</li> <li>Added support for querying the state of the <code>mceTogglePlainTextPaste</code> command. #TINY-10938</li> <li>Added <code>for</code> option to dialog label components to improve accessibility. The value must be another component on the same dialog. #TINY-10971</li> </ul> <h3>Improved</h3> <ul> <li>Dialog slider components now emit an onChange event when using arrow keys. #TINY-10428</li> <li>Accessibility for element path buttons, added tooltip to describe the button and removed incorrect <code>aria-level</code> attribute. #TINY-10891</li> <li>Improve merging of inserted inline elements by removing nodes with redundant inheritable styles. #TINY-10869</li> <li>Improved Find & Replace dialog accessibility by changing placeholders to labels. #TINY-10871</li> </ul> <h3>Changed</h3> <ul> <li>Replaced tiny branding logo with <code>Build with TinyMCE</code> text and logo. #TINY-11001</li> </ul> <h3>Fixed</h3> <ul> <li>Deleting in a <code>div</code> with preceeding <code>br</code> elements would sometimes throw errors. #TINY-10840</li> <li><code>autoresize_bottom_margin</code> was not reliably applied in some situations. #TINY-10793</li> <li>Fixed cases where adding a newline around a br, table or img would not move the cursor to a new line. #TINY-10384</li> <li>Focusing on <code>contenteditable="true"</code> element when using <code>editable_root: false</code> and inline mode causing selection to be shifted. #TINY-10820</li> <li>Corrected the <code>role</code> attribute on listbox dialog components to <code>combobox</code> when there are no nested menu items. #TINY-10807</li> <li>HTML entities that were double decoded in <code>noscript</code> elements caused an XSS vulnerability. #TINY-11019</li> <li>It was possible to inject XSS HTML that was not matching the regexp when using the <code>noneditable_regexp</code> option. #TINY-11022</li> </ul> <h2>7.1.2 - 2024-06-05</h2> <h3>Fixed</h3> <ul> <li>CSS color values set to <code>transparent</code> were incorrectly converted to '<a href="https://github.com/tinymce/tinymce/tree/HEAD/modules/tinymce/issues/000000">#000000</a>`. #TINY-10916</li> </ul> <h2>7.1.1 - 2024-05-22</h2> <h3>Fixed</h3> <ul> <li>Insert/Edit image dialog lost focus after the image upload completed. #TINY-10885</li> <li>Deleting into a list from a paragraph that has an <code>img</code> tag could cause extra inline styles to be added. #TINY-10892</li> <li>Resolved an issue where emojis configured with the <code>emojiimages</code> database were not loading correctly due to a broken CDN. #TINY-10878</li> <li>Iframes in dialogs were not rendering rounded borders correctly. #TINY-10901</li> <li>Autocompleter possible values are no longer capped at a length of 10. #TINY-10942</li> </ul> <h2>7.1.0 - 2024-05-08</h2> <h3>Added</h3> <ul> <li>Parser support for math elements. #TINY-10809</li> <li>New <code>math-equation</code> icon. #TINY-10804</li> </ul> <h3>Improved</h3> <ul> <li>Included <code>itemprop</code>, <code>itemscope</code> and <code>itemtype</code> as valid HTML5 attributes in the core schema. #TINY-9932</li> <li>Notification accessibility improvements: added tooltips, keyboard navigation and shortcut to focus on notifications. #TINY-6925</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
0a2ca2c38c
|
feat: Anvil dnd sagas unit tests (#34407)
[](https://workerb.linearb.io/v2/badge/collaboration-page?magicLinkId=Pmk6xa9) ## 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._ Fixes #33981 _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/9639877981> > Commit: 311f59c5d6cff265ea985c13f9891193866304d6 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9639877981&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Tests** - Introduced test cases for adding and moving widgets within a canvas layout. - **New Features** - Added functionality to generate mock data for a layout with two sections, each containing a zone widget. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
71bc84fc76
|
test: Fix extracing pageId from app page URL (#34401)
Over on `pg`, we use UUIDs for page IDs, not Object IDs, so the way we extract page ID should account for this. This PR supports page IDs as both ObjectId and UUID. So the same code should work on both `release` and `pg`. **/test sanity** <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9625470562> > Commit: e21db70964e824cbbb82a76182f46fe08a259f90 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9625470562&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Sanity` <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Improved URL parsing logic for extracting `pageid` using a new method to enhance robustness. - Added assertions to ensure `pageid` is not null before proceeding with further actions. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
8482f78584
|
chore: capturing allPaths and unevalTree diffs computation latency (#34396)
## Description Capturing the telemetry of webworker's allPaths and unEvalTreeWithStringifiedJSFunctionsDiff computation. #34397 ## Automation /ok-to-test tags="@tag.Sanity" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > 🟣 🟣 🟣 Your tests are running. > Tests running at: <https://github.com/appsmithorg/appsmith/actions/runs/9613641914> > Commit: b3d679a8a079fc5c3febf7b4855916f32c982512 > Workflow: `PR Automation test suite` > Tags: `@tag.Sanity` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced profiling for key operations to monitor performance. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
4942a959c5
|
fix: Prefetch apis: Include only branchname header in request key (#34389)
## Description The request key used to store the mutex for prefetch request was including all header keys. The prefetch request created by the service worker only had one key (branchname) but the request initiated by the client had more headers. Because of this mismatch in keys the request was missing the cache. 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.All" ### 🔍 Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > 🟣 🟣 🟣 Your tests are running. > Tests running at: <https://github.com/appsmithorg/appsmith/actions/runs/9612628976> > Commit: e9c4a982eddded5dce31005365978b4729dadba2 > Workflow: `PR Automation test suite` > Tags: `` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Improved request key generation by including specific headers, enhancing cache performance. - **Tests** - Added a test case to verify the new request key generation logic based on headers. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
ae161b14c8
|
chore: Fix missing changes in revert #34313 (#34371)
## Description Reverted missed out code in https://github.com/appsmithorg/appsmith/pull/34367 ## Automation /ok-to-test tags="@tag.IDE" ### 🔍 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/9608916182> > Commit: a2525661414e7bb571914ede981383778e9c4d56 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9608916182&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.IDE` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [x] No |
||
|
|
01dba7700c
|
fix: revert to passing hook as a prop for EE compatibility (#34367)
## Description Revert to passing hook as a prop for EE compatibility. Fixes #32982 ## Automation /ok-to-test tags="@tag.IDE" ### 🔍 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/9600106265> > Commit: 042f94586b64efc1b8224059ceebddb0a4a9f0e6 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9600106265&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.IDE` <!-- 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 - **New Features** - Enhanced navigation menu generation in the editor with improved data management. - **Refactor** - Updated the navigation menu logic to use a new function, improving code maintainability and data handling. - **Bug Fixes** - Fixed inconsistencies in the navigation menu across different components in the editor. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
e01b34ec5d
|
chore: tests for wds button widget (#34242)
/ok-to-test tags="@tag.Anvil" <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced test cases for Anvil Button Widgets, including Canvas, Preview, and Deploy modes. - **Bug Fixes** - Updated CSS and HTML selectors for better element targeting and testing reliability. - **Style** - Improved styling logic for buttons in the InlineButtons component. - **Chores** - Added `data-testid` attributes for better test targeting. - Refactored code for string concatenations and URL constructions in DeployModeHelper. <!-- end of auto-generated comment: release notes by coderabbit.ai --><!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9597157402> > Commit: c551705fe01aace94962fcc7fa91dff253136721 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9597157402&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` <!-- end of auto-generated comment: Cypress test results --> --------- Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro-2.local> |
||
|
|
62fad08bf7
|
chore: add excludeFromTabOrder for wds widgets (#34361)
## Description - Add excludeFromTabOrder for WDS widgets - WDS Table refactoring Fixes #32369 ## 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/9596169254> > Commit: 25d5ef47520266d904c3c545940ad6009e7b2a8f > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9596169254&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` <!-- 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 - **New Features** - Introduced the ability to exclude toolbar buttons from the tab order for improved accessibility and user experience. This can be controlled via the `excludeFromTabOrder` property. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
7346cfda8c
|
chore: bump socket.io from 4.6.1 to 4.6.2 in /app/client (#34350)
Bumps [socket.io](https://github.com/socketio/socket.io) from 4.6.1 to 4.6.2. ## Automation /ok-to-test tags="@tag.Sanity" <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/socketio/socket.io/releases">socket.io's releases</a>.</em></p> <blockquote> <h2>4.6.2</h2> <h3>Bug Fixes</h3> <ul> <li><strong>exports:</strong> move <code>types</code> condition to the top (<a href="https://redirect.github.com/socketio/socket.io/issues/4698">#4698</a>) (<a href=" |
||
|
|
a1e5024806
|
chore: bump tinymce from 7.0.0 to 7.2.0 in /app/client (#34349)
Bumps [tinymce](https://github.com/tinymce/tinymce/tree/HEAD/modules/tinymce) from 7.0.0 to 7.2.0. ## Automation /ok-to-test tags="@tag.Sanity" <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tinymce/tinymce/blob/main/modules/tinymce/CHANGELOG.md">tinymce's changelog</a>.</em></p> <blockquote> <h2>7.2.0 - 2024-06-19</h2> <h3>Added</h3> <ul> <li>Added <code>options.debug</code> API that logs the initial raw editor options to console. #TINY-10605</li> <li>Added <code>referrerpolicy</code> as a valid attribute for an iframe element. #TINY-10374</li> <li>New <code>onInit</code> and <code>stretched</code> properties to the <code>HtmlPanel</code> dialog component. #TINY-10900</li> <li>Added support for querying the state of the <code>mceTogglePlainTextPaste</code> command. #TINY-10938</li> <li>Added <code>for</code> option to dialog label components to improve accessibility. The value must be another component on the same dialog. #TINY-10971</li> </ul> <h3>Improved</h3> <ul> <li>Dialog slider components now emit an onChange event when using arrow keys. #TINY-10428</li> <li>Accessibility for element path buttons, added tooltip to describe the button and removed incorrect <code>aria-level</code> attribute. #TINY-10891</li> <li>Improve merging of inserted inline elements by removing nodes with redundant inheritable styles. #TINY-10869</li> <li>Improved Find & Replace dialog accessibility by changing placeholders to labels. #TINY-10871</li> </ul> <h3>Changed</h3> <ul> <li>Replaced tiny branding logo with <code>Build with TinyMCE</code> text and logo. #TINY-11001</li> </ul> <h3>Fixed</h3> <ul> <li>Deleting in a <code>div</code> with preceeding <code>br</code> elements would sometimes throw errors. #TINY-10840</li> <li><code>autoresize_bottom_margin</code> was not reliably applied in some situations. #TINY-10793</li> <li>Fixed cases where adding a newline around a br, table or img would not move the cursor to a new line. #TINY-10384</li> <li>Focusing on <code>contenteditable="true"</code> element when using <code>editable_root: false</code> and inline mode causing selection to be shifted. #TINY-10820</li> <li>Corrected the <code>role</code> attribute on listbox dialog components to <code>combobox</code> when there are no nested menu items. #TINY-10807</li> <li>HTML entities that were double decoded in <code>noscript</code> elements caused an XSS vulnerability. #TINY-11019</li> <li>It was possible to inject XSS HTML that was not matching the regexp when using the <code>noneditable_regexp</code> option. #TINY-11022</li> </ul> <h2>7.1.2 - 2024-06-05</h2> <h3>Fixed</h3> <ul> <li>CSS color values set to <code>transparent</code> were incorrectly converted to '<a href="https://github.com/tinymce/tinymce/tree/HEAD/modules/tinymce/issues/000000">#000000</a>`. #TINY-10916</li> </ul> <h2>7.1.1 - 2024-05-22</h2> <h3>Fixed</h3> <ul> <li>Insert/Edit image dialog lost focus after the image upload completed. #TINY-10885</li> <li>Deleting into a list from a paragraph that has an <code>img</code> tag could cause extra inline styles to be added. #TINY-10892</li> <li>Resolved an issue where emojis configured with the <code>emojiimages</code> database were not loading correctly due to a broken CDN. #TINY-10878</li> <li>Iframes in dialogs were not rendering rounded borders correctly. #TINY-10901</li> <li>Autocompleter possible values are no longer capped at a length of 10. #TINY-10942</li> </ul> <h2>7.1.0 - 2024-05-08</h2> <h3>Added</h3> <ul> <li>Parser support for math elements. #TINY-10809</li> <li>New <code>math-equation</code> icon. #TINY-10804</li> </ul> <h3>Improved</h3> <ul> <li>Included <code>itemprop</code>, <code>itemscope</code> and <code>itemtype</code> as valid HTML5 attributes in the core schema. #TINY-9932</li> <li>Notification accessibility improvements: added tooltips, keyboard navigation and shortcut to focus on notifications. #TINY-6925</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
|
138fc6a148
|
feat: side-by-side edit mode hover analytics (#34185)
## Description The purpose of this PR is to collect data about hovered canvas and widgets and send it to analytics platform. Fixes #33159 ## Automation /ok-to-test tags="@tag.All" ### 🔍 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/9584384829> > Commit: 9cec247f7f1e82e0cc23fa5aa5499008bdc58964 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9584384829&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- 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 - **New Features** - Introduced analytics tracking for side-by-side hover actions in the IDE canvas. - Added a new `AnalyticsWrapper` component for handling analytics events within layout systems. - Implemented a custom hook `useIsInSideBySideEditor` to check for side-by-side editor mode. - Added new CSS styles for layout systems. - **Bug Fixes** - Improved handling of widget hover events and analytics tracking in side-by-side editor mode. - **Refactor** - Refactored logic for determining the current entity info and segment state in the IDE. - Updated import paths and reordered imports for better organization. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
a6faf6d7a5
|
perf: add react-hooks/exhaustive-deps rule (#34338)
## Description Adds ESLint rule `react-hooks/exhaustive-deps` with warn level. Context in the task below. Fixes #34337 ## Automation /ok-to-test tags="@tag.All" ### 🔍 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/9584250724> > Commit: daa705074504f398b80b1175440d00011b5d865d > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9584250724&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- 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 - **Chores** - Added ESLint rule `react-hooks/exhaustive-deps` with a severity level of "warn" to enforce exhaustive dependencies in React hooks. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
b85c4f5451
|
refactor: move apps link out of menu & refactor nav menu data (#34313)
## Description Moved `Back to all apps` from dropdown menu directly to header. Additionally renamed `NavigationMenuData.ts` to `useNavigationMenuData.ts` and fixed dependency related memoization issues. <img width="267" alt="image" src="https://github.com/appsmithorg/appsmith/assets/173164/020abfe3-1359-43ff-aa99-972a45f270bd"> Fixes #32982 ## Automation /ok-to-test tags="@tag.IDE" ### 🔍 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/9567752111> > Commit: 824b2fe1231de1d073a1b19054507643b325400f > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9567752111&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.IDE` <!-- 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 - **Refactor** - Removed `getNavigationMenu` prop from `EditorHeader` for streamlined navigation menu data retrieval. - Updated `EditorName` to use `useNavigationMenuData` for navigation menu items. - Refactored `useNavigationMenuData` to use `useCallback` and `useMemo` for enhanced performance. - Adjusted imports and event handling functions in `IDE/Header` to use `useCallback` for better efficiency. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
092208a1c1
|
fix: checkbox column misalignment on table widget (#34222)
Fixes #21790 _or_ Fixes [Issue URL](https://github.com/appsmithorg/appsmith/issues/21790) Introduced a new prop called isFullWidth for the CheckboxComponent and pass this prop to this styled component CheckboxContainer. The isFullWidth is an optional boolean property whole default value would be true. Added screenshot for reference.  <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a full-width option for checkboxes to enable better styling flexibility. - **Tests** - Added new test cases to verify checkbox styling properties in tables. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
36372468c5
|
chore: remove headless radio and use react-aria component instead (#34312)
## Description - Remove headless radio and use react-aria component instead - Create ErrorMessage component Fixes #27677 ## 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/9567388261> > Commit: 62d1153caa8bf03d827f88593c9dfaf3121091ee > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9567388261&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Anvil` <!-- 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 - **New Features** - Added `ErrorMessage` component for displaying error messages with specific styling. - Introduced `isDisabled` prop for `Label` and `ToggleGroup` components. - Updated `RadioGroup` to accept an items array for easier configuration. - **Bug Fixes** - Improved conditional rendering in `Label` component to prevent issues when `text` and `contextualHelp` are both falsy. - **Refactor** - Removed `Radio` component export from design system. - Restructured import statements and prop declarations for `Checkbox` and `RadioGroup`. - **Style** - Updated styles for `RadioGroup` and `ToggleGroup` components for better state handling (disabled, hovered, selected). - **Documentation** - Updated Storybook stories for `RadioGroup` to reflect changes in component usage. - **Tests** - Adjusted `RadioGroup.test.tsx` to test new items array prop. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
f2a6341c58
|
fix: evalTrigger mutation fix (#34106)
## Description This fixes a gap in our evaluation flow where we were not sending evaluation updates during an evaluation in the evalTrigger. We have resolved that by sending updates in the evalTrigger, also we have created a separate function called evaluateAndGenerateWebWorkerResponse which unifies the logic between sending updates in evalTrigger as well as evalTreeWithChanges. We have added several unit test cases in this PR to test the evaluation flow. Fixes #33823 > [!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 --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/9558723818> > Commit: 8b7bc93e3d1a8ce93c722a94c8846f9359d40686 > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=9558723818&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `` <!-- end of auto-generated comment: Cypress test results --> ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Refactor** - Improved the evaluation and update process for data tree structures with new helper functions and interfaces. - Enhanced error handling with optional chaining in `setPrevState` function. - **New Features** - Introduced `evaluateAndPushResponse`, `evaluateAndGenerateResponse`, and `getAffectedNodesInTheDataTree` functions for better data tree evaluation and updates. - Added `UpdateTreeResponse` interface for structured update responses. - **Bug Fixes** - Adjusted error handling in the evaluation process to ensure robustness. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
12879c7c55
|
fix: property pane height fix for animation (#34276) |