PromucFlow_constructor/app/client/src/utils/CustomWidgetBuilderService.ts

118 lines
2.9 KiB
TypeScript
Raw Normal View History

fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
export class Builder {
builderWindow: Window | null;
onMessageMap: Map<string, ((data: unknown) => void)[]> = new Map();
handleMessageBound = this.handleMessage.bind(this);
constructor() {
chore: add custom widget to anvil (#37878) /ok-to-test tags="@tag.Widget" <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes - **New Features** - Introduced a custom widget with enhanced console logging and communication capabilities. - Added a configuration system for widget properties, including visibility, style settings, and autocomplete functionality. - Implemented a responsive design for the custom widget with dynamic loading events and error handling. - Expanded widget mapping to include the new custom widget type. - Added support for multiple code templates (React, Vue, Vanilla JS) for custom widget creation. - Introduced a custom hook for managing widget height based on component sizes and embedding status. - **Bug Fixes** - Resolved various issues related to event handling and message passing between the widget and parent context. - **Documentation** - Added comprehensive comments and structure to configuration files for better clarity and usability. - **Style** - Included a CSS reset stylesheet for consistent styling across browsers. - Introduced new CSS classes for improved widget styling. - Enhanced styling rules to manage pointer events during widget resizing. - **Tests** - Developed a test suite to ensure the reliability of the widget's functionality and event handling. <!-- 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/12194686716> > Commit: a757240165ea8d2730d6b6f2574b2c1c7335fada > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=12194686716&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.Widget` > Spec: > <hr>Fri, 06 Dec 2024 08:28:58 UTC <!-- end of auto-generated comment: Cypress test results -->
2024-12-06 10:33:40 +00:00
// when we add new widget, we add a /add to the url , so before opening the builder, we need to remove it
const path = window.location.pathname.replace(/\/add$/, "");
this.builderWindow = window.open(`${path}/builder`, "_blank");
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
window?.addEventListener("message", this.handleMessageBound);
}
handleMessage(event: MessageEvent) {
if (event.source === this.builderWindow) {
const handlerList = this.onMessageMap.get(event.data.type);
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
if (handlerList) {
handlerList.forEach((fn) => fn?.(event.data));
}
}
}
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
onMessage(type: string, fn: (data: unknown) => void) {
let eventHandlerList = this.onMessageMap.get(type);
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
if (eventHandlerList && eventHandlerList instanceof Array) {
eventHandlerList.push(fn);
} else {
eventHandlerList = [fn];
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
this.onMessageMap.set(type, eventHandlerList);
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
}
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
return () => {
if (eventHandlerList) {
const index = eventHandlerList.indexOf(fn);
if (index > -1) {
eventHandlerList.splice(index, 1);
}
}
};
}
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
postMessage(message: unknown) {
this.builderWindow?.postMessage(message, "*");
}
isConnected() {
return !this.builderWindow?.closed;
}
focus() {
this.builderWindow?.focus();
}
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
close(closeWindow: boolean) {
if (closeWindow) {
this.builderWindow?.close();
}
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
window?.removeEventListener("message", this.handleMessageBound);
}
}
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
export default class CustomWidgetBuilderService {
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
private static builderWindowConnections: Map<string, Builder> = new Map();
// For unit testing purposes
private static builderFactory = Builder;
// For unit testing purposes
static setBuilderFactory(builder: typeof Builder) {
this.builderFactory = builder;
}
static createBuilder(widgetId: string) {
const builder = new this.builderFactory();
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
this.builderWindowConnections.set(widgetId, builder);
return builder;
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
}
static isConnected(widgetId: string) {
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
const builder = this.builderWindowConnections.get(widgetId);
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
return builder?.isConnected();
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
}
static focus(widgetId: string) {
if (this.isConnected(widgetId)) {
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
this.builderWindowConnections.get(widgetId)?.focus();
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
}
}
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
static getBuilder(widgetId: string) {
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
if (this.isConnected(widgetId)) {
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
const builder = this.builderWindowConnections.get(widgetId) as Builder;
return builder;
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
}
}
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
static closeBuilder(widgetId: string, closeWindow: boolean) {
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
if (this.builderWindowConnections.has(widgetId)) {
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
const builder = this.builderWindowConnections.get(widgetId);
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
fix: [custom widget] remove stale keys from dynamicTriggerPathList (#31586) ## Description 1. Improve string pattern used to determine whether to show onReady function missing warning 2. Remove stale keys from dynamicTriggerPathList when user changes the event names 3. Clean up events when a custom widget unselected in editor Fixes https://github.com/appsmithorg/appsmith/issues/31682 Fixes https://github.com/appsmithorg/appsmith/issues/30276 Fixes https://github.com/appsmithorg/appsmith/issues/30204 ## Automation /ok-to-test tags="@tag.All" ### :mag: Cypress test results <!-- This is an auto-generated comment: Cypress test results --> > [!IMPORTANT] > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/8337490694> > Commit: `4fcb4cab6960c9a4a459a2b97261a112363901e2` > Cypress dashboard url: <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8337490694&attempt=1" 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** - Introduced a new route for `CustomWidgetBuilderLoader` component, enhancing navigation and accessibility. - Enhanced the Custom Widget Builder with improved event handling and dynamic trigger path support. - Added a new styled `Container` for the Custom Widget component for better layout management. - **Refactor** - Improved configuration settings readability and consistency for New Relic integration. - Refactored `CustomWidgetBuilderService` for clearer modularity and enhanced message handling. - Optimized property editing and update logic within the Property Pane of the Editor. - **Bug Fixes** - Adjusted connection timeout in the Custom Widget Builder for a more responsive user experience. - Updated button sizes in the ConfirmationModal for consistency. - **Tests** - Added comprehensive test cases for `CustomWidgetBuilderService` and `Builder` classes. - **Chores** - Removed deprecated `UPDATE_SRCDOC_ACK` event, streamlining Custom Widget Builder events. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-20 09:01:03 +00:00
builder?.close(closeWindow);
chore: custom widget (#28926) ## Description This PR's adds the custom widget. #### PR fixes following issue(s) Fixes #28607 Fixes #28610 Fixes #28615 Fixes #28608 Fixes #28612 > 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 - New feature (non-breaking change which adds functionality) > > > ## 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 - [x] Jest - [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 - [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 - [x] 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** - Introduced search functionality with a wildcard option for unmatched widget searches. - Added new routes for custom widget editing. - Implemented additional editor modes for HTML and CSS. - Created new code templates and help components for custom widget builders. - Enhanced property controls with new button controls for custom widget editing. - Updated theming interfaces and constants for better theming support. - Added the CustomWidget component for embedding custom widgets in iframes. - Expanded widgets library to include the CustomWidget. - **Enhancements** - Improved `CodeEditor` with additional modes, props, and resize behavior. - Enhanced `PropertyPaneControlConfig` interface with dynamic dependencies and additional properties. - Refined custom widget scripts with communication channel and event handling. - **Bug Fixes** - Fixed visibility logic for the `ExternalWidget` card. - **Documentation** - Added new messages and documentation links for custom widget features. - **Tests** - Implemented new Cypress tests for custom widget default components and property pane interactions. - Updated workspace commands in Cypress tests. - **Refactor** - Streamlined `PropertyControl` state management and editing functions. - Refactored code editor hint helper logic. - **Style** - Added `borderLess` prop to style components without borders. - **Chores** - Updated constants and messages related to custom widget features. - Adjusted webpack configuration to ignore specific module warnings. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2023-12-28 06:46:28 +00:00
this.builderWindowConnections.delete(widgetId);
}
}
}