PromucFlow_constructor/app/client/cypress/locators/Widgets.json
ashit-rath 32fee08c5c
feat: JSON Form widget (#8472)
* initial layout

* updated parser to support nested array

* array field rendering

* changes

* ts fix

* minor revert FormWidget

* modified schema structure

* select and switch fields

* added checkbox field

* added RadioGroupField

* partial DateField and defaults, typing refactoring

* added label and field type change

* minor ts changes

* changes

* modified widget/utils for nested panelConfig, modified schema to object approach

* array/object label support

* hide field configuration when children not present

* added tooltip

* field visibility option

* disabled state

* upgraded tslib, form initial values

* custom field configuration - add/hide/edit

* field configuration - label change

* return input when field configuration reaches max depth

* minor changes

* form - scroll, fixedfooter, enitity defn and other minior changes

* form title

* unregister on unmount

* fixes

* zero state

* fix field padding

* patched updating form values, removed linting warnings

* configured action buttons

* minor fix

* minor change

* property pane - sort fields in field configuration

* refactor include all properties

* checkbox properties

* date properties

* refactor typings and radio group properties

* switch, multselect, select, array, object properties

* minor changes

* default value

* ts fixes

* checkbox field properties implementation

* date field prop implementation

* switch field

* select field and fix deep nested meta properties

* multiselect implementation

* minor change

* input field implementation

* fix position jump on field type change

* initial accordian

* field state property and auto-complete of JSONFormComputeControl

* merge fixes

* renamed FormBuilder to JSONForm

* source data validation minor change

* custom field default value fix

* Editable keys for custom field

* minor fixes

* replaced useFieldArray with custom logic, added widget icon

* array and object accordian with border/background styling

* minor change

* disabled states for array and objects

* default value minor fix

* form level styles

* modified logic for isDisabled for array and object, added disabledWhenInvalid, exposed isValid to fieldState for text input, removed useDisableChildren

* added isValid for all field types

* fixed reset to default values

* debounce form values update

* minor change

* minor change

* fix crash - source data change multi-select to array, fix crash - change of options

* fix positioning

* detect date type in source data

* fix crash - when object is passed to regex input field

* fixed default sourceData path for fields

* accodion keep children mounted on collapse

* jest test for schemaParser

* widget/helper and useRegisterFieldInvalid test

* tests for property config helper and generatePanelPropertyConfig

* fix input field validation not appearing

* fix date field type detection

* rename data -> formData

* handle null/undefined field value change in sourceData

* added null/undefined as valid values for defaultValue text field

* auto detect email field

* set formData default value on initial load

* switch field inline positioning

* field margin fix for row direction

* select full width

* fiex date field default value - out of range

* fix any field type to array

* array default value logic change

* base cypress test changes

* initial json form render cy test

* key sanitization

* fix fieldState update logic

* required design, object/array background color, accordion changes, fix - add new custom field

* minor change

* cypress tests

* fix date formatted value, field state cypress test

* cypress - field properties test and fixes

* rename test file

* fix accessort change to blank value, cypress tests

* fix array field default value for modified accessor

* minor fix

* added animate loading

* fix empty state, add new custom field

* test data fix

* fix warnings

* fix timePrecision visibility

* button styling

* ported input v2

* fix jest tests

* fix cypress tests

* perf changes

* perf improvement

* added comments

* multiselect changes

* input field perf refactor

* array field, object field refactor performance

* checkbox field refactor

* refectored date, radio, select and switch

* fixes

* test fixes

* fixes

* minor fix

* rename field renderer

* remove tracked fieldRenderer field

* cypress test fixes

* cypress changes

* array default value fixes

* arrayfield passedDefaultValue

* auto enabled JS mode for few properties, reverted swith and date property controls

* cypress changes

* added widget sniping mode and fixed object passedDefaultValue

* multiselect v2

* select v2

* fix jest tests

* test fixes

* field limit

* rename field type dropdown texts

* field type changes fixes

* jest fixes

* loading state submit button

* default source data for new widget

* modify limit message

* multiseelct default value changes and cypress fix

* select default value

* keep default value intact on field type change

* TextTable cypress text fix

* review changes

* fixed footer changes

* collapse styles section by default

* fixed footer changes

* form modes

* custom field key rentention

* fixed footer fix in view mode

* non ascii characters

* fix meta merge in dataTreeWidget

* minor fixes

* rename useRegisterFieldInvalid.ts -> useRegisterFieldValidity.ts

* modified dependency injection into evaluated values

* refactored fixedfooter logic

* minor change

* accessor update

* minor change

* fixes

* QA fixes date field, scroll content

* fix phone number field, removed visiblity option from array item

* fix sourceData autocomplete

* reset logic

* fix multiselect reset

* form values hydration on widget drag

* code review changes

* reverted order of merge dataTreeWidget

* fixes

* added button titles, fixed hydration issue

* default value fixes

* upgraded react hook form, modified array-level/field-level default value logic

* fixed select validation

* added icon entity explorer, modified icon align control

* modify accessor validation for mongo db _id

* update email field regex

* review changes

* explicitly handle empty source data validation
2022-03-24 12:43:25 +05:30

179 lines
10 KiB
JSON

{
"NavHomePage": "[data-icon='home']",
"containerWidget": ".t--draggable-containerwidget",
"inputWidget": ".t--draggable-inputwidgetv2",
"multiSelectWidget": ".t--draggable-multiselectwidgetv2",
"togglebutton": "input[type='checkbox']",
"inputPropsDataType": ".t--property-control-datatype",
"inputdatatypeplaceholder": ".t--property-control-placeholder",
"buttonWidget": ".t--draggable-buttonwidget",
"buttonColor": ".t--property-control-buttoncolor input",
"checkboxWidget": ".t--draggable-checkboxwidget",
"buttonStyleDropdown": ".t--property-control-buttonstyle [name='downArrow']",
"buttonBackground": ".sc-ecQjpJ > div > .bp3-button",
"copyWidget": ".t--copy-widget svg",
"currencyInputWidget": ".t--draggable-currencyinputwidget",
"phoneInputWidget": ".t--draggable-phoneinputwidget",
"removeWidget": ".t--delete-widget svg",
"propertypaneText": ".t--propertypane .t--property-pane-view",
"formButtonWidget": ".t--widget-formbuttonwidget",
"selectwidget": ".t--widget-selectwidget",
"textWidget": ".t--draggable-textwidget",
"tableWidget": ".t--draggable-tablewidget",
"jsonFormWidget": ".t--draggable-jsonformwidget",
"tableOnRowSelected": ".t--property-control-onrowselected",
"dropdownSelectButton": ".t--open-dropdown-Select",
"buttonOnClick": ".t--property-control-onclick .bp3-popover-target",
"buttonCreateApi": "a.t--create-api-btn",
"Scrollbutton": ".t--property-control-scrollcontents input",
"label": ".t--draggable-inputwidgetv2 label",
"labelColor": ".t--property-control-labelcolor input",
"inputval": ".t--draggable-inputwidgetv2 span.t--widget-name",
"dataclass": "'.bp3-input",
"datatype": ".t--property-control-datatype .bp3-popover-target",
"rowHeight": ".t--property-control-defaultrowheight .bp3-popover-target",
"innertext": ".t--draggable-inputwidgetv2 input",
"defaultinput": ".t--property-control-defaultinput",
"requiredjs": ".t--property-control-required input",
"visible": ".t--property-control-visible input",
"disable": ".t--property-control-disabled",
"menuColor": ".t--property-control-menucolor input",
"menubar": ".bp3-menu",
"menupop": ".bp3-popover",
"defaultcheck": ".t--property-control-defaultselected input",
"indicator": ".bp3-checkbox",
"Regex": ".t--property-control-regex .CodeMirror-lines",
"RadioInput": ".t--property-control-options input",
"checkboxInput": ".t--draggable-checkboxwidget span.t--widget-name",
"checkboxLabel": ".t--draggable-checkboxwidget label",
"containerD": "div[type='CONTAINER_WIDGET']",
"containerWrapper": "div[data-testid='container-wrapper']",
"defaultInput": ".t--property-control-defaulttext .CodeMirror-code",
"placeholder": ".t--property-control-placeholder .CodeMirror-code",
"inputLabelControl": ".t--property-control-label .CodeMirror-code",
"inputTextControl": ".t--property-control-text .CodeMirror-code",
"inputTooltipControl": ".t--property-control-tooltip .CodeMirror-code",
"inputButtonPos": ".t--draggable-inputwidgetv2 button",
"deleteWidget": ".t--modal-widget>div .t--widget-delete-control",
"textbuttonWidget": ".t--draggable-buttonwidget button.bp3-button[type='button']",
"textInputval": ".t--draggable-textwidget span.t--widget-name",
"textCenterAlign": ".t--property-control-textalign .t--button-tab-CENTER",
"ColumnAction": ".t--property-control-rowbutton button",
"SearchTextChangeAction": ".t--property-control-onsearchtextchanged button",
"tableSearchTextChangeSelected": ".t--property-control-onsearchtextchanged",
"videoWidget": ".t--draggable-videowidget",
"audioWidget": ".t--draggable-audiowidget",
"autoPlay": ".t--property-control-autoplay > .bp3-control > .bp3-control-indicator",
"defaultOption": ".t--property-control-defaultoption .CodeMirror-code",
"dropdownSingleSelect": ".bp3-popover-target > div > .bp3-button",
"menuButton": ".bp3-popover2-target",
"defaultSingleSelectValue": ".bp3-popover-target > div > .bp3-button > .bp3-button-text",
"widgetBtn": ".t--widget-buttonwidget button",
"widgetBtnText": ".t--widget-buttonwidget button .bp3-button-text",
"iconWidgetBtn": ".t--draggable-iconbuttonwidget button",
"actionSelect": ".t--open-dropdown-Select-Action",
"inputOnTextChange": ".t--property-control-ontextchanged .t--open-dropdown-Select-Action",
"tableActionSelect": ".t--property-control-onsearchtextchanged .t--open-dropdown-Select-Action",
"chartWidget": ".t--widget-chartwidget",
"tableOnRowSelect": ".t--property-control-onrowselected .t--open-dropdown-Select-Action",
"switchInput": ".t--draggable-switchwidget span.t--widget-name",
"switchLabel": ".t--draggable-switchwidget label",
"multiSelectInput": ".t--draggable-multiselectwidget span.t--widget-name",
"multiSelectLabel": ".t--draggable-multiselectwidget label",
"addColumn": ".t--add-column-btn",
"deleteColumn": ".t--delete-column-btn",
"editCreatedColumn": ".t--property-control-createdcolumns input",
"alignOpt": ".t--dropdown-option",
"tableCol": ".draggable-header ",
"centerAlign": ".t--button-tab-CENTER",
"rightAlign": ".t--button-tab-RIGHT",
"leftAlign": ".t--button-tab-LEFT",
"bold": ".t--button-tab-BOLD",
"italics": ".t--button-tab-ITALIC",
"underline": ".t--button-tab-UNDERLINE",
"verticalTop": ".t--button-tab-TOP",
"verticalCenter": ".t--button-tab-CENTER",
"verticalBottom": ".t--button-tab-BOTTOM",
"textColor": ".t--property-control-textcolor input",
"boadercolorPicker": ".t--property-control-bordercolour input",
"boxShadowColorPicker": ".t--property-control-shadowcolor input",
"boxShadow": ".t--property-control-boxshadow .bp3-button-group",
"backgroundcolorPicker": ".t--property-control-backgroundcolour input",
"backgroundcolorPickerNew": ".t--property-control-backgroundcolor input",
"greenColor": "div[color='#03B365']",
"transparent": "//div[@color='transparent']",
"yellowColor": "//div[@color='#FFC13D']",
"blueColor": "//div[@color='#3366FF']",
"toggleJsColor": ".t--property-control-textcolor .t--js-toggle",
"backgroundColor": ".t--property-control-cellbackground input",
"toggleJsBcgColor": ".t--property-control-cellbackground .t--js-toggle",
"toggleTextAlign": ".t--property-control-textalign .t--js-toggle",
"toggleTextStyle": ".t--property-control-fontstyle .t--js-toggle",
"textSize": ".t--property-control-textsize .bp3-popover-target",
"toggleTextSize": ".t--property-control-textsize .t--js-toggle",
"toggleVerticalAlig": ".t--property-control-verticalalignment .t--js-toggle",
"toggleVisible": ".t--property-control-visible .t--js-toggle",
"backgroundJSVisible":".t--property-control-background .t--js-toggle",
"itemBackgroundJSVisible":".t--property-control-itembackground .t--js-toggle",
"inputToggleVisible": "div.t--property-control-visible div.CodeMirror-lines",
"toggleDisable": ".t--property-control-disabled .t--js-toggle",
"inputToggleDisable": "div.t--property-control-disabled div.CodeMirror-code pre span",
"toggleOnClick": ".t--property-control-onclick .t--js-toggle",
"toggleChartType": ".t--property-control-charttype .t--js-toggle",
"inputToggleOnClick": ".t--property-control-onclick div.CodeMirror-lines",
"tableBtn": ".t--draggable-tablewidget .bp3-button",
"tableIconBtn": ".t--draggable-tablewidget .bp3-icon",
"toastAction": ".Toastify__toast-container--top-right .t--toast-action",
"toastActionText": ".Toastify__toast-container--top-right .t--toast-action span",
"defaultColName": "[data-rbd-draggable-id='customColumn1'] input",
"selectWidget": ".t--open-dropdown-Select-Widget",
"switchWidget": ".t--widget-switchwidget",
"toastMsg": ".t--toast-action span",
"deleteToast": "div[class = 'undo-section'] span[type='h6']",
"apiCallToast": "div.t--toast-action span[type='p1']",
"datepickerInput": ".t--draggable-datepickerwidget2 input",
"selectToday": ".DayPicker-Day--today",
"switchWidgetActive": ".t--switch-widget-active",
"switchWidgetInactive": ".t--switch-widget-inactive",
"switchWidgetLoading": ".t--switch-widget-loading",
"colorsAvailable": ".bp3-popover-dismiss",
"listWidget":"[type=LIST_WIDGET]",
"itemContainerWidget":"[type=CONTAINER_WIDGET]",
"listWidgetName":".t--propery-page-title",
"toggleBackground": ".t--property-control-background .t--js-toggle",
"toggleItemBackground": ".t--property-control-itembackground .t--js-toggle",
"chartPlotGroup": "g.raphael-group-63-plot-group",
"toggleEnableMultirowselection": ".t--property-control-enablemultirowselection .bp3-control-indicator",
"formWidget": ".t--draggable-formwidget",
"searchField": "[type=search]",
"defaultSelectedRowField":".t--property-control-defaultselectedrow .CodeMirror-line",
"selectedRow":".selected-row",
"removeTableWidget": ".t--delete-widget",
"nextPageButton": ".t--table-widget-next-page",
"addWidget": ".t--entity.group.widgets .t--entity-add-btn",
"closeWidgetBar": ".t--close-widgets-sidebar",
"tabedataField": ".t--property-control-tabledata",
"exploreWidget": "[class$=bp3-panel-stack-view] > div:nth-child(1) > div:nth-child(1) > span:nth-child(4)",
"widgetRelatedDocument": "div.main > div:nth-child(1) > div:nth-child(1)",
"rowHeightShortOpt":".bp3-popover-content > div > div:nth-child(1)",
"tbIndex0": "[class=td][data-colindex='0'][data-rowindex='0']",
"filterApplyBtn":".t--apply-filter-btn",
"filterCloseBtn":".t--close-filter-btn",
"header":"#header-root",
"mapChartPlot": "g[class$='-manager-plot']",
"explorerSwitchId": "#switcher--explorer",
"widgetSwitchId":"#switcher--widgets",
"modalWidget": ".t--modal-widget",
"tableFilterPaneToggle": ".t--table-filter-toggle-btn",
"tableFilterRow": ".t--table-filter",
"selectwidget": ".t--draggable-selectwidget",
"selectWidgetDisabled": ".t--property-control-disabled input",
"itemBackgroundColorToggle": ".t--property-control-itembackgroundcolor .t--js-toggle",
"backgroundColorToggle": ".t--property-control-backgroundcolor .t--js-toggle",
"cellBackground": ".t--property-control-cellbackgroundcolor",
"cellBackgroundToggle": ".t--property-control-cellbackgroundcolor .t--js-toggle",
"borderColorPickerNew": ".t--property-control-bordercolor input",
"selectedTextSize": ".t--property-control-textsize .bp3-popover-target .sub-text",
"modalCloseButton": ".t--draggable-iconbuttonwidget .bp3-button"
}