## Description
- This PR adds setter methods to update widget property
programmatically.
Example:-
`Input1.setText("setter methods are cool!");`
Docs link :
https://docs.appsmith.com/reference/widgets
For any selected widget check the `Methods` section
#### PR fixes following issue(s)
Fixes
#### Type of change
- New feature (non-breaking change which adds functionality)
## Testing
>
#### How Has This Been Tested?
- [x] Manual
- [x] Jest
- [x] Cypress
>
>
#### Test Plan
https://github.com/appsmithorg/TestSmith/issues/2409
#### Issues raised during DP testing
- [x] [Errors are not logged in the
debugger](https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1564017346)
separate GitHub issue
https://github.com/appsmithorg/appsmith/issues/24609
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1564155545
( `setVisibility("false")` )
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1580525843
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1576582825
- Blocker for testing
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1577956441
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1577930108
- Not a issue (lint error query)
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1593471791
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1591440488
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1586747864
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1596738201
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1598541537
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1611413076
- [x]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1612621567
- [ ]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1619654507
- [ ]
https://github.com/appsmithorg/appsmith/pull/23441#issuecomment-1621256722
>
>
## Checklist:
#### Dev activity
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] 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/Test-plan-implementation#speedbreaker-features-to-consider-for-every-change)
have been covered
- [x] Test plan covers all impacted features and [areas of
interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans/_edit#areas-of-interest)
- [x] 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>
66 lines
2.1 KiB
TypeScript
66 lines
2.1 KiB
TypeScript
export const WIDGET = {
|
|
INPUT_V2: "inputwidgetv2",
|
|
TEXT: "textwidget",
|
|
TEXTNAME: (index: string) => `Text${index}`,
|
|
PHONE_INPUT: "phoneinputwidget",
|
|
CURRENCY_INPUT: "currencyinputwidget",
|
|
BUTTON: "buttonwidget",
|
|
BUTTONNAME: (index: string) => `Button${index}`,
|
|
CONTAINER: "containerwidget",
|
|
MULTISELECT: "multiselectwidgetv2",
|
|
BUTTON_GROUP: "buttongroupwidget",
|
|
TREESELECT: "singleselecttreewidget",
|
|
TAB: "tabswidget",
|
|
TABLE: "tablewidgetv2",
|
|
SWITCHGROUP: "switchgroupwidget",
|
|
SWITCH: "switchwidget",
|
|
SELECT: "selectwidget",
|
|
MULTITREESELECT: "multiselecttreewidget",
|
|
RADIO_GROUP: "radiogroupwidget",
|
|
LIST: "listwidget",
|
|
LIST_V2: "listwidgetv2",
|
|
RATING: "ratewidget",
|
|
CHECKBOXGROUP: "checkboxgroupwidget",
|
|
CHECKBOX: "checkboxwidget",
|
|
CHART: "chartwidget",
|
|
AUDIO: "audiowidget",
|
|
AUDIORECORDER: "audiorecorderwidget",
|
|
PHONEINPUT: "phoneinputwidget",
|
|
CAMERA: "camerawidget",
|
|
FILEPICKER: "filepickerwidgetv2",
|
|
DOCUMENT_VIEWER: "documentviewerwidget",
|
|
VIDEO: "videowidget",
|
|
CATEGORY_SLIDER: "categorysliderwidget",
|
|
NUMBER_SLIDER: "numbersliderwidget",
|
|
RANGE_SLIDER: "rangesliderwidget",
|
|
IFRAME: "iframewidget",
|
|
DIVIDER: "dividerwidget",
|
|
PROGRESS: "progresswidget",
|
|
MODAL: "modalwidget",
|
|
FORM: "formwidget",
|
|
ICONBUTTON: "iconbuttonwidget",
|
|
IMAGE: "imagewidget",
|
|
STATBOX: "statboxwidget",
|
|
JSONFORM: "jsonformwidget"
|
|
} as const;
|
|
|
|
// property pane element selector are maintained here
|
|
export const PROPERTY_SELECTOR = {
|
|
// input
|
|
onClick: ".t--property-control-onclick",
|
|
onSubmit: ".t--property-control-onsubmit",
|
|
text: ".t--property-control-text",
|
|
defaultValue: ".t--property-control-defaultselectedvalues",
|
|
propertyName: ".t--property-control-propertyname",
|
|
onClickFieldName: "onClick",
|
|
TextFieldName: "Text",
|
|
tableData: ".t--property-control-tabledata",
|
|
tableColumnNames: '[data-rbd-draggable-id] input[type="text"]',
|
|
};
|
|
type ValueOf<T> = T[keyof T];
|
|
|
|
export const getWidgetSelector = (widget: ValueOf<typeof WIDGET>) =>
|
|
`.t--widget-${widget}`;
|
|
export const getWidgetInputSelector = (widget: ValueOf<typeof WIDGET>) =>
|
|
`.t--widget-${widget} input`;
|