PromucFlow_constructor/app/client/src/components/propertyControls/index.ts
Ashit Rath f065d9e060
chore: Changes for supporting input in UI modules property pane (#40546)
## Description


PR for https://github.com/appsmithorg/appsmith-ee/pull/7306

## Automation

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

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/14830581904>
> Commit: 6a2c282f6c7ae2f8040b7f573d850e30e217bba8
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=14830581904&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.All`
> Spec:
> <hr>Mon, 05 May 2025 07:57:49 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

- **New Features**
- Added a loading state to indicate when a page setup process is in
progress.
  - Introduced a selector to access the page setup loading state.
- Updated page saving process to handle layout payload generation
asynchronously.
- Added support for updating meta widget properties with dynamic path
computation.

- **Bug Fixes**
- Improved error handling to prevent unhandled exceptions during state
updates.

- **Chores**
- Enhanced property controls by merging enterprise edition controls with
the existing set.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-07 19:21:09 +05:30

183 lines
8.7 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";
import TableCustomSortControl, {
type TableCustomSortControlProps,
} from "./TableCustomSortControl";
import EEPropertyControls from "ee/components/propertyControls";
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,
TableCustomSortControl,
...EEPropertyControls,
};
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
| TableCustomSortControlProps;
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;
};