## Description - Select and multi-select widgets now have two new properties under the data section label and value. - The existing options have been renamed to Source data. - Users can set the label and value of the options through these new properties. - We have written migrations to make this work for existing select widgets. #### PR fixes following issue(s) Fixes https://github.com/appsmithorg/appsmith/issues/24022 > #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change > Please delete options that are not relevant. - Bug fix (non-breaking change which fixes an issue) - New feature (non-breaking change which adds functionality) - Breaking change (fix or feature that would cause existing functionality to not work as expected) - Chore (housekeeping or task changes that don't impact user perception) - This change requires a documentation update > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [x] Manual - [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 - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed --------- Co-authored-by: Rishabh Rathod <rishabh.rathod@appsmith.com>
147 lines
7.4 KiB
TypeScript
147 lines
7.4 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";
|
|
|
|
export const PropertyControls = {
|
|
InputTextControl,
|
|
DropDownControl,
|
|
SwitchControl,
|
|
OptionControl,
|
|
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,
|
|
};
|
|
|
|
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;
|
|
|
|
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;
|
|
};
|