PromucFlow_constructor/app/client/src/components/propertyControls/index.ts
Ilia a0814e1438
feat: add initial assistant message (#36798)
## Description

![image](https://github.com/user-attachments/assets/bb8cf448-6bfe-485a-9e19-d222ae3d8411)



Fixes #36776  

> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags="@tag.Sanity"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/11275055683>
> Commit: a8f155422725c5310b7ac37d49a57995ee20f732
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=11275055683&attempt=2"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Sanity`
> Spec:
> <hr>Thu, 10 Oct 2024 14:29:09 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [ ] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Summary by CodeRabbit

- **New Features**
- Introduced `AssistantSuggestionButton` for enhanced user interaction
in the AI chat.
- Added support for displaying and applying assistant suggestions in
chat threads.
	- Implemented an editable array component for managing string pairs.
- Enhanced configuration options with new properties for initial
assistant messages and suggestions.

- **Improvements**
	- Improved state management for dynamic messages in the AI chat widget.
- Updated rendering logic for conditional display of suggestions in chat
messages.
- Added new props to facilitate better interaction and suggestion
handling in chat components.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-10-10 16:29:26 +02:00

176 lines
8.5 KiB
TypeScript

import type { InputControlProps } from "components/propertyControls/InputTextControl";
import InputTextControl from "components/propertyControls/InputTextControl";
import type { DropDownControlProps } from "components/propertyControls/DropDownControl";
import DropDownControl from "components/propertyControls/DropDownControl";
import type { SwitchControlProps } from "components/propertyControls/SwitchControl";
import SwitchControl from "components/propertyControls/SwitchControl";
import OptionControl from "components/propertyControls/OptionControl";
import type { ControlProps } from "components/propertyControls/BaseControl";
import type BaseControl from "components/propertyControls/BaseControl";
import CodeEditorControl from "components/propertyControls/CodeEditorControl";
import type { DatePickerControlProps } from "components/propertyControls/DatePickerControl";
import DatePickerControl from "components/propertyControls/DatePickerControl";
import ChartDataControl from "components/propertyControls/ChartDataControl";
import LocationSearchControl from "components/propertyControls/LocationSearchControl";
import type { StepControlProps } from "components/propertyControls/StepControl";
import StepControl from "components/propertyControls/StepControl";
import TabControl from "components/propertyControls/TabControl";
import ActionSelectorControl from "components/propertyControls/ActionSelectorControl";
import ColumnActionSelectorControl from "components/propertyControls/ColumnActionSelectorControl";
import PrimaryColumnsControl from "components/propertyControls/PrimaryColumnsControl";
import type { PrimaryColumnDropdownControlProps } from "components/propertyControls/PrimaryColumnDropdownControl";
import PrimaryColumnDropdownControl from "components/propertyControls/PrimaryColumnDropdownControl";
import type { ColorPickerControlProps } from "components/propertyControls/ColorPickerControl";
import ColorPickerControl from "components/propertyControls/ColorPickerControl";
import type { PrimaryColumnColorPickerControlProps } from "components/propertyControls/PrimaryColumnColorPickerControl";
import PrimaryColumnColorPickerControl from "components/propertyControls/PrimaryColumnColorPickerControl";
import type { ComputeTablePropertyControlProps } from "components/propertyControls/ComputeTablePropertyControl";
import ComputeTablePropertyControl from "components/propertyControls/ComputeTablePropertyControl";
import type { IconTabControlProps } from "components/propertyControls/IconTabControl";
import IconTabControl from "components/propertyControls/IconTabControl";
import type { ButtonTabControlProps } from "components/propertyControls/ButtonTabControl";
import ButtonTabControl from "components/propertyControls/ButtonTabControl";
import type { MultiSwitchControlProps } from "components/propertyControls/MultiSwitchControl";
import MultiSwitchControl from "components/propertyControls/MultiSwitchControl";
import MenuItemsControl from "./MenuItemsControl";
import OpenConfigPanelControl from "./OpenConfigPanelControl";
import ButtonListControl from "./ButtonListControl";
import IconSelectControl from "./IconSelectControl";
import BoxShadowOptionsControl from "./BoxShadowOptionsControl";
import BorderRadiusOptionsControl from "./BorderRadiusOptionsControl";
import ButtonBorderRadiusOptionsControl from "./ButtonBorderRadiusControl";
import FieldConfigurationControl from "components/propertyControls/FieldConfigurationControl";
import JSONFormComputeControl from "./JSONFormComputeControl";
import ButtonControl from "./ButtonControl";
import LabelAlignmentOptionsControl from "./LabelAlignmentOptionsControl";
import type { NumericInputControlProps } from "./NumericInputControl";
import NumericInputControl from "./NumericInputControl";
import PrimaryColumnsControlV2 from "components/propertyControls/PrimaryColumnsControlV2";
import type { SelectDefaultValueControlProps } from "./SelectDefaultValueControl";
import SelectDefaultValueControl from "./SelectDefaultValueControl";
import type { ComputeTablePropertyControlPropsV2 } from "components/propertyControls/TableComputeValue";
import ComputeTablePropertyControlV2 from "components/propertyControls/TableComputeValue";
import type { PrimaryColumnColorPickerControlPropsV2 } from "components/propertyControls/PrimaryColumnColorPickerControlV2";
import PrimaryColumnColorPickerControlV2 from "components/propertyControls/PrimaryColumnColorPickerControlV2";
import type { TableInlineEditValidationControlProps } from "./TableInlineEditValidationControl";
import TableInlineEditValidationControl from "./TableInlineEditValidationControl";
import TableInlineEditValidPropertyControl from "./TableInlineEditValidPropertyControl";
import type { MenuButtonDynamicItemsControlProps } from "components/propertyControls/MenuButtonDynamicItemsControl";
import MenuButtonDynamicItemsControl from "components/propertyControls/MenuButtonDynamicItemsControl";
import type { ListComputeControlProps } from "./ListComputeControl";
import ListComputeControl from "./ListComputeControl";
import type { OneClickBindingControlProps } from "./OneClickBindingControl";
import OneClickBindingControl from "./OneClickBindingControl";
import type { WrappedCodeEditorControlProps } from "./WrappedCodeEditorControl";
import WrappedCodeEditorControl from "./WrappedCodeEditorControl";
import DynamicPropertiesControl from "./HTMLDocumentBuilderControl";
import CustomWidgetEditSourceButtonControl from "./CustomWidgetEditSourceButtonControl";
import CustomWidgetAddEventButtonControl from "./CustomWidgetAddEventButtonControl";
import type { ZoneStepperControlProps } from "./ZoneStepperControl";
import ZoneStepperControl from "./ZoneStepperControl";
import {
SectionSplitterControl,
type SectionSplitterControlProps,
} from "./SectionSplitterControl";
import type { IconSelectControlV2Props } from "./IconSelectControlV2";
import IconSelectControlV2 from "./IconSelectControlV2";
import PrimaryColumnsControlWDS from "./PrimaryColumnsControlWDS";
import ToolbarButtonListControl from "./ToolbarButtonListControl";
import ArrayControl from "./ArrayControl";
export const PropertyControls = {
InputTextControl,
DropDownControl,
SwitchControl,
OptionControl,
ArrayControl,
CodeEditorControl,
DatePickerControl,
ActionSelectorControl,
ColumnActionSelectorControl,
MultiSwitchControl,
ChartDataControl,
LocationSearchControl,
StepControl,
TabControl,
ColorPickerControl,
PrimaryColumnsControl,
PrimaryColumnsControlV2,
PrimaryColumnDropdownControl,
IconTabControl,
ButtonTabControl,
ComputeTablePropertyControl,
ComputeTablePropertyControlV2,
MenuItemsControl,
MenuButtonDynamicItemsControl,
OpenConfigPanelControl,
ButtonListControl,
IconSelectControl,
BoxShadowOptionsControl,
BorderRadiusOptionsControl,
ButtonBorderRadiusOptionsControl,
FieldConfigurationControl,
JSONFormComputeControl,
ButtonControl,
LabelAlignmentOptionsControl,
NumericInputControl,
PrimaryColumnColorPickerControl,
PrimaryColumnColorPickerControlV2,
SelectDefaultValueControl,
TableInlineEditValidationControl,
TableInlineEditValidPropertyControl,
ListComputeControl,
OneClickBindingControl,
WrappedCodeEditorControl,
DynamicPropertiesControl,
CustomWidgetEditSourceButtonControl,
CustomWidgetAddEventButtonControl,
ZoneStepperControl,
SectionSplitterControl,
IconSelectControlV2,
PrimaryColumnsControlWDS,
ToolbarButtonListControl,
};
export type PropertyControlPropsType =
| ControlProps
| InputControlProps
| DropDownControlProps
| SwitchControlProps
| DatePickerControlProps
| MultiSwitchControlProps
| IconTabControlProps
| ButtonTabControlProps
| StepControlProps
| ColorPickerControlProps
| ComputeTablePropertyControlProps
| PrimaryColumnDropdownControlProps
| NumericInputControlProps
| PrimaryColumnColorPickerControlProps
| ComputeTablePropertyControlPropsV2
| MenuButtonDynamicItemsControlProps
| PrimaryColumnDropdownControlProps
| PrimaryColumnColorPickerControlPropsV2
| SelectDefaultValueControlProps
| TableInlineEditValidationControlProps
| ListComputeControlProps
| OneClickBindingControlProps
| WrappedCodeEditorControlProps
| ZoneStepperControlProps
| SectionSplitterControlProps
| IconSelectControlV2Props;
export const getPropertyControlTypes = (): { [key: string]: string } => {
const _types: { [key: string]: string } = {};
Object.values(PropertyControls).forEach(
(Control: typeof BaseControl & { getControlType: () => string }) => {
const controlType = Control.getControlType();
_types[controlType] = controlType;
},
);
return _types;
};