diff --git a/.github/config.json b/.github/config.json index 52d8c65580ba..304213c680aa 100644 --- a/.github/config.json +++ b/.github/config.json @@ -1 +1 @@ -{"runners":[{"versioning":{"source":"milestones","type":"SemVer"},"prereleaseName":"alpha","issue":{"labels":{"Widgets Product":{"conditions":[{"label":"Button Widget","type":"hasLabel","value":true},{"label":"Chart Widget","type":"hasLabel","value":true},{"label":"Container Widget","type":"hasLabel","value":true},{"label":"Date Picker Widget","type":"hasLabel","value":true},{"label":"Select Widget","type":"hasLabel","value":true},{"label":"File Picker Widget","type":"hasLabel","value":true},{"label":"Form Widget","type":"hasLabel","value":true},{"label":"Image Widget","type":"hasLabel","value":true},{"label":"Input Widget","type":"hasLabel","value":true},{"label":"List Widget","type":"hasLabel","value":true},{"label":"MultiSelect Widget","type":"hasLabel","value":true},{"label":"Map Widget","type":"hasLabel","value":true},{"label":"Modal Widget","type":"hasLabel","value":true},{"label":"Radio Widget","type":"hasLabel","value":true},{"label":"Rich Text Editor Widget","type":"hasLabel","value":true},{"label":"Tab Widget","type":"hasLabel","value":true},{"label":"Table Widget","type":"hasLabel","value":true},{"label":"Text Widget","type":"hasLabel","value":true},{"label":"Video Widget","type":"hasLabel","value":true},{"label":"iFrame","type":"hasLabel","value":true},{"label":"Menu Button","type":"hasLabel","value":true},{"label":"Rating","type":"hasLabel","value":true},{"label":"Widget Validation","type":"hasLabel","value":true},{"label":"New Widget","type":"hasLabel","value":true},{"label":"Switch widget","type":"hasLabel","value":true},{"label":"Audio Widget","type":"hasLabel","value":true},{"label":"Icon Button Widget","type":"hasLabel","value":true},{"label":"Stat Box Widget","type":"hasLabel","value":true},{"label":"Voice Recorder Widget","type":"hasLabel","value":true},{"label":"Calendar Widget","type":"hasLabel","value":true},{"label":"Menu Button Widget","type":"hasLabel","value":true},{"label":"Divider Widget","type":"hasLabel","value":true},{"label":"Rating Widget","type":"hasLabel","value":true},{"label":"View Mode","type":"hasLabel","value":true},{"label":"Widget Property","type":"hasLabel","value":true},{"label":"Document Viewer Widget","type":"hasLabel","value":true},{"label":"Radio Group Widget","type":"hasLabel","value":true},{"label":"Currency Input Widget","type":"hasLabel","value":true},{"label":"TreeSelect","type":"hasLabel","value":true},{"label":"MultiTree Select Widget","type":"hasLabel","value":true},{"label":"Phone Input Widget","type":"hasLabel","value":true},{"label":"JSON Form","type":"hasLabel","value":true},{"label":"All Widgets","type":"hasLabel","value":true},{"label":"Button Group widget","type":"hasLabel","value":true},{"label":"Progress bar widget","type":"hasLabel","value":true},{"label":"Audio Recorder Widget","type":"hasLabel","value":true},{"label":"Camera Widget","type":"hasLabel","value":true},{"label":"Table Widget V2","type":"hasLabel","value":true},{"label":"Map Chart Widget","type":"hasLabel","value":true},{"label":"Code Scanner Widget","type":"hasLabel","value":true},{"label":"Widget keyboard accessibility","type":"hasLabel","value":true},{"label":"List Widget V2","type":"hasLabel","value":true},{"label":"Slider Widget","type":"hasLabel","value":true},{"label":"One-click Binding","type":"hasLabel","value":true},{"label":"Old widget version","type":"hasLabel","value":true},{"label":"Widget Discoverability","type":"hasLabel","value":true},{"label":"Switch Group Widget","type":"hasLabel","value":true},{"label":"Checkbox Group widget","type":"hasLabel","value":true},{"label":"Checkbox Widget","type":"hasLabel","value":true},{"label":"Table Inline Edit","type":"hasLabel","value":true},{"label":"Custom Widgets","type":"hasLabel","value":true}],"requires":1},"Javascript Product":{"conditions":[{"label":"JS Linting & Errors","type":"hasLabel","value":true},{"label":"Autocomplete","type":"hasLabel","value":true},{"label":"Evaluated Value","type":"hasLabel","value":true},{"label":"Slash Command","type":"hasLabel","value":true},{"label":"New JS Function","type":"hasLabel","value":true},{"label":"JS Usability","type":"hasLabel","value":true},{"label":"Framework Functions","type":"hasLabel","value":true},{"label":"JS Objects","type":"hasLabel","value":true},{"label":"JS Evaluation","type":"hasLabel","value":true},{"label":"Custom JS Libraries","type":"hasLabel","value":true},{"label":"Action Selector","type":"hasLabel","value":true},{"label":"Widget setter method","type":"hasLabel","value":true},{"label":"Entity Refactor","type":"hasLabel","value":true},{"label":"AST-frontend","type":"hasLabel","value":true},{"label":"Sniping Mode","type":"hasLabel","value":true},{"label":"AST-backend","type":"hasLabel","value":true}],"requires":1},"IDE Product":{"conditions":[{"label":"IDE Product","type":"hasLabel","value":true},{"label":"IDE Infra","type":"hasLabel","value":true},{"label":"IDE Navigation","type":"hasLabel","value":true},{"label":"IDE tabs","type":"hasLabel","value":true},{"label":"Omnibar","type":"hasLabel","value":true},{"label":"Entity Explorer","type":"hasLabel","value":true},{"label":"Page Management","type":"hasLabel","value":true},{"label":"Preview mode","type":"hasLabel","value":true},{"label":"Entity Management","type":"hasLabel","value":true}],"requires":1},"Accelerators Product":{"conditions":[{"label":"Generate Page","type":"hasLabel","value":true},{"label":"Building blocks","type":"hasLabel","value":true}],"requires":1},"Templates Product":{"conditions":[{"label":"Partial-import-export","type":"hasLabel","value":true},{"label":"Templates Product","type":"hasLabel","value":true}],"requires":1},"Design System Product":{"conditions":[{"label":"Design System Product","type":"hasLabel","value":true},{"label":"ADS Component Issue","type":"hasLabel","value":true},{"label":"Keyboard accessibility ","type":"hasLabel","value":true},{"label":"Toggle button","type":"hasLabel","value":true},{"label":"ADS Category Token","type":"hasLabel","value":true},{"label":"ADS Component Documentation","type":"hasLabel","value":true},{"label":"ADS Migration","type":"hasLabel","value":true},{"label":"ADS Deduplication ","type":"hasLabel","value":true},{"label":"ADS Revamp","type":"hasLabel","value":true},{"label":"ADS Deduplication","type":"hasLabel","value":true},{"label":"ADS Unit Test","type":"hasLabel","value":true},{"label":"ADS Components","type":"hasLabel","value":true},{"label":"ADS Grayscale","type":"hasLabel","value":true},{"label":"Design System","type":"hasLabel","value":true},{"label":"ADS Typography","type":"hasLabel","value":true},{"label":"ADS Visual Styles","type":"hasLabel","value":true},{"label":"ADS Component Design","type":"hasLabel","value":true},{"label":"Modal Component","type":"hasLabel","value":true},{"label":"ADS Spacing","type":"hasLabel","value":true},{"label":"ads unit test","type":"hasLabel","value":true},{"label":"ads revamp","type":"hasLabel","value":true},{"label":"ads deduplication","type":"hasLabel","value":true}],"requires":1},"RBAC Product":{"conditions":[{"label":"Invite users","type":"hasLabel","value":true},{"label":"RBAC Product","type":"hasLabel","value":true}],"requires":1},"Workspace Product":{"conditions":[{"label":"Home Page","type":"hasLabel","value":true},{"label":"Workspace Product","type":"hasLabel","value":true}],"requires":1},"Billing & Licensing Product":{"conditions":[{"label":"Customer Portal","type":"hasLabel","value":true},{"label":"Cloud Services","type":"hasLabel","value":true},{"label":"Billing","type":"hasLabel","value":true},{"label":"Self Serve","type":"hasLabel","value":true},{"label":"Enterprise Billing","type":"hasLabel","value":true},{"label":"Analytics Improvements","type":"hasLabel","value":true},{"label":"Self Serve 1.0","type":"hasLabel","value":true},{"label":"License","type":"hasLabel","value":true},{"label":"BE instance","type":"hasLabel","value":true},{"label":"Invite flow","type":"hasLabel","value":true},{"label":"CE Instance Usage","type":"hasLabel","value":true},{"label":"Feature Flagging","type":"hasLabel","value":true}],"requires":1},"Packages Product":{"conditions":[{"label":"Packages Product","type":"hasLabel","value":true}],"requires":1},"Environments Product":{"conditions":[{"label":"Environments Product","type":"hasLabel","value":true}],"requires":1},"UI Building Product":{"conditions":[{"label":"Property Pane","type":"hasLabel","value":true},{"label":"Copy Paste","type":"hasLabel","value":true},{"label":"Drag & Drop","type":"hasLabel","value":true},{"label":"Undo/Redo","type":"hasLabel","value":true},{"label":"Widgets Pane","type":"hasLabel","value":true},{"label":"UI Performance","type":"hasLabel","value":true},{"label":"Widget Grouping","type":"hasLabel","value":true},{"label":"Reflow & Resize","type":"hasLabel","value":true},{"label":"Canvas / Grid","type":"hasLabel","value":true},{"label":"Auto Height","type":"hasLabel","value":true},{"label":"Browser specific","type":"hasLabel","value":true},{"label":"Auto Layout","type":"hasLabel","value":true},{"label":"Fixed layout","type":"hasLabel","value":true},{"label":"App Navigation","type":"hasLabel","value":true}],"requires":1},"Onboarding Product":{"conditions":[{"label":"Welcome Screen","type":"hasLabel","value":true}],"requires":1},"Git Product":{"conditions":[{"label":"Git Product","type":"hasLabel","value":true},{"label":"Git Auto-commit","type":"hasLabel","value":true},{"label":"Auto-commit","type":"hasLabel","value":true},{"label":"Continuous Deployment","type":"hasLabel","value":true},{"label":"Default branch","type":"hasLabel","value":true},{"label":"Git status","type":"hasLabel","value":true},{"label":"Git performance","type":"hasLabel","value":true},{"label":"SDLC","type":"hasLabel","value":true},{"label":"Git IA","type":"hasLabel","value":true},{"label":"Branch management","type":"hasLabel","value":true}],"requires":1},"Embedding Apps Product":{"conditions":[{"label":"Embedding Apps Product","type":"hasLabel","value":true}],"requires":1},"Integrations Product":{"conditions":[{"label":"New Datasource","type":"hasLabel","value":true},{"label":"Firestore","type":"hasLabel","value":true},{"label":"Google Sheets","type":"hasLabel","value":true},{"label":"Mongo","type":"hasLabel","value":true},{"label":"Redshift","type":"hasLabel","value":true},{"label":"snowflake","type":"hasLabel","value":true},{"label":"S3","type":"hasLabel","value":true},{"label":"Redis","type":"hasLabel","value":true},{"label":"Postgres","type":"hasLabel","value":true},{"label":"GraphQL Plugin","type":"hasLabel","value":true},{"label":"ArangoDB","type":"hasLabel","value":true},{"label":"MsSQL","type":"hasLabel","value":true},{"label":"Elastic Search","type":"hasLabel","value":true},{"label":"OAuth","type":"hasLabel","value":true},{"label":"Airtable","type":"hasLabel","value":true},{"label":"CURL","type":"hasLabel","value":true},{"label":"DynamoDB","type":"hasLabel","value":true},{"label":"Zendesk","type":"hasLabel","value":true},{"label":"Hubspot","type":"hasLabel","value":true},{"label":"Query Forms","type":"hasLabel","value":true},{"label":"Twilio","type":"hasLabel","value":true},{"label":"MySQL","type":"hasLabel","value":true},{"label":"Connection pool","type":"hasLabel","value":true},{"label":"MariaDB","type":"hasLabel","value":true},{"label":"Integrations Pod General","type":"hasLabel","value":true},{"label":"SMTP plugin","type":"hasLabel","value":true},{"label":"Oracle SQL DB","type":"hasLabel","value":true},{"label":"Query filter","type":"hasLabel","value":true},{"label":"Activation - datasources","type":"hasLabel","value":true},{"label":"REST API","type":"hasLabel","value":true},{"label":"REST API","type":"hasLabel","value":true},{"label":"Datasources","type":"hasLabel","value":true},{"label":"REST API plugin","type":"hasLabel","value":true},{"label":"Prepared statements","type":"hasLabel","value":true},{"label":"Query Generation","type":"hasLabel","value":true},{"label":"Core Query Execution","type":"hasLabel","value":true},{"label":"Query Management","type":"hasLabel","value":true},{"label":"Query Settings","type":"hasLabel","value":true},{"label":"Query performance","type":"hasLabel","value":true},{"label":"Datatype issue","type":"hasLabel","value":true},{"label":"SmartSubstitution","type":"hasLabel","value":true},{"label":"Suggested Widgets","type":"hasLabel","value":true},{"label":"SAAS Plugins","type":"hasLabel","value":true},{"label":"Reconnect DS modal","type":"hasLabel","value":true},{"label":"OnPageLoad","type":"hasLabel","value":true},{"label":"File upload issues","type":"hasLabel","value":true},{"label":"AI","type":"hasLabel","value":true},{"label":"Appsmith AI","type":"hasLabel","value":true},{"label":"Database Schema","type":"hasLabel","value":true}],"requires":1},"Identity & Authentication Product":{"conditions":[{"label":"Login / Signup","type":"hasLabel","value":true},{"label":"SSO","type":"hasLabel","value":true},{"label":"SCIM","type":"hasLabel","value":true},{"label":"Email verification","type":"hasLabel","value":true}],"requires":1},"Artifact Platform Product":{"conditions":[{"label":"Fork App","type":"hasLabel","value":true},{"label":"Publish App","type":"hasLabel","value":true},{"label":"Secret Management","type":"hasLabel","value":true},{"label":"Import-Export-App","type":"hasLabel","value":true}],"requires":1},"DevOps Pod":{"conditions":[{"label":"Docker","type":"hasLabel","value":true},{"label":"Super Admin","type":"hasLabel","value":true},{"label":"Deployment","type":"hasLabel","value":true},{"label":"K8s","type":"hasLabel","value":true},{"label":"Email Config","type":"hasLabel","value":true},{"label":"Backup & Restore","type":"hasLabel","value":true},{"label":"AWS AMI","type":"hasLabel","value":true},{"label":"Observability","type":"hasLabel","value":true},{"label":"Heroku","type":"hasLabel","value":true},{"label":"New Deployment Mode","type":"hasLabel","value":true},{"label":"Supervisor","type":"hasLabel","value":true},{"label":"Deployment Certificates","type":"hasLabel","value":true},{"label":"Mock Data","type":"hasLabel","value":true},{"label":"AWS ECS","type":"hasLabel","value":true},{"label":"Ingress","type":"hasLabel","value":true},{"label":"Nginx","type":"hasLabel","value":true},{"label":"Setup Issues","type":"hasLabel","value":true}],"requires":1},"Performance Pod":{"conditions":[{"label":"Performance","type":"hasLabel","value":true},{"label":"Performance infra","type":"hasLabel","value":true}],"requires":1},"IDE Pod":{"conditions":[{"label":"Telemetry","type":"hasLabel","value":true},{"label":"i18n","type":"hasLabel","value":true},{"label":"IDE Product","type":"hasLabel","value":true},{"label":"App setting","type":"hasLabel","value":true},{"label":"Debugger Product","type":"hasLabel","value":true},{"label":"Embedding Apps Product","type":"hasLabel","value":true}],"requires":1},"Platform Administration Pod":{"conditions":[{"label":"Airgap","type":"hasLabel","value":true},{"label":"Enterprise Edition","type":"hasLabel","value":true},{"label":"Invite flow","type":"hasLabel","value":true},{"label":"User Profile","type":"hasLabel","value":true},{"label":"User Session ","type":"hasLabel","value":true},{"label":"User Session","type":"hasLabel","value":true},{"label":"Admin Settings Product","type":"hasLabel","value":true},{"label":"RBAC Product","type":"hasLabel","value":true},{"label":"Workspace Product","type":"hasLabel","value":true},{"label":"Branding Product","type":"hasLabel","value":true},{"label":"Audit Logs Product","type":"hasLabel","value":true},{"label":"Identity & Authentication Product","type":"hasLabel","value":true},{"label":"Billing & Licensing Product","type":"hasLabel","value":true},{"label":"Move to Postgres","type":"hasLabel","value":true}],"requires":1},"DB Infrastructure Pod":{"conditions":[],"requires":1},"Widgets & Accelerators Pod":{"conditions":[{"label":"Accelerators Product","type":"hasLabel","value":true},{"label":"Templates Product","type":"hasLabel","value":true},{"label":"Widgets Product","type":"hasLabel","value":true},{"label":"App Theming Product","type":"hasLabel","value":true}],"requires":1},"Packages Pod":{"conditions":[{"label":"Module creator","type":"hasLabel","value":true},{"label":"Module consumer","type":"hasLabel","value":true},{"label":"Package versioning","type":"hasLabel","value":true},{"label":"Convert to module","type":"hasLabel","value":true},{"label":"Query module","type":"hasLabel","value":true},{"label":"JS module","type":"hasLabel","value":true},{"label":"UI module","type":"hasLabel","value":true},{"label":"Packages Pod","type":"hasLabel","value":true}],"requires":1},"Workflows Pod":{"conditions":[{"label":"Workflows Product","type":"hasLabel","value":true}],"requires":1},"Query & JS Pod":{"conditions":[{"label":"Javascript Product","type":"hasLabel","value":true},{"label":"Onboarding Product","type":"hasLabel","value":true},{"label":"Integrations Product","type":"hasLabel","value":true},{"label":"Reconfigure Datasource Modal","type":"hasLabel","value":true}],"requires":1},"QA Pod":{"conditions":[{"label":"Automation Test","type":"hasLabel","value":true},{"label":"TestGap","type":"hasLabel","value":true},{"label":"Automation failures","type":"hasLabel","value":true},{"label":"Needs automation","type":"hasLabel","value":true},{"label":"cypress-flaky-fix","type":"hasLabel","value":true},{"label":"Cypress flaky tests","type":"hasLabel","value":true},{"label":"Cypress","type":"hasLabel","value":true}],"requires":1},"Anvil POD":{"conditions":[{"label":"Checkbox Component","type":"hasLabel","value":true},{"label":"WDS team","type":"hasLabel","value":true},{"label":"Anvil POD","type":"hasLabel","value":true},{"label":"WDS - all widgets","type":"hasLabel","value":true},{"label":"WDS - input widget","type":"hasLabel","value":true},{"label":"WDS - paragraph widget","type":"hasLabel","value":true},{"label":"WDS - statbox widget","type":"hasLabel","value":true},{"label":"WDS - modal widget","type":"hasLabel","value":true},{"label":"WDS - icon widget","type":"hasLabel","value":true},{"label":"WDS - checkbox widget","type":"hasLabel","value":true},{"label":"WDS - table widget","type":"hasLabel","value":true},{"label":"WDS - keyValue widget","type":"hasLabel","value":true},{"label":"WDS - switch group widget","type":"hasLabel","value":true},{"label":"WDS - theming","type":"hasLabel","value":true},{"label":"Anvil layout","type":"hasLabel","value":true},{"label":"Anvil - theming","type":"hasLabel","value":true},{"label":"Anvil - vertical alignment","type":"hasLabel","value":true},{"label":"Anvil - layout component","type":"hasLabel","value":true},{"label":"Anvil - drag & drop","type":"hasLabel","value":true},{"label":"Anvil - zones & sections","type":"hasLabel","value":true},{"label":"Anvil - copy paste experience","type":"hasLabel","value":true},{"label":"WDS - phone widget","type":"hasLabel","value":true},{"label":"WDS - responsive widget","type":"hasLabel","value":true},{"label":"Anvil - responsive viewport","type":"hasLabel","value":true},{"label":"WDS - widget styling","type":"hasLabel","value":true},{"label":"Anvil - spacing","type":"hasLabel","value":true},{"label":"Anvil - responsive canvas","type":"hasLabel","value":true},{"label":"WDS - inline button widget","type":"hasLabel","value":true},{"label":"Anvil team","type":"hasLabel","value":true}],"requires":1},"Activation Pod":{"conditions":[{"label":"Activation","type":"hasLabel","value":true}],"requires":1},"Stability Pod":{"conditions":[{"label":"Stability Issue","type":"hasLabel","value":true}],"requires":1},"Documentation Pod":{"conditions":[{"label":"Documentation","type":"hasLabel","value":true}],"requires":1},"Packages & Git Pod":{"conditions":[{"label":"Packages Pod","type":"hasLabel","value":true},{"label":"Git Product","type":"hasLabel","value":true},{"label":"Packages Product","type":"hasLabel","value":true},{"label":"Git Platform","type":"hasLabel","value":true}],"requires":1},"Git Platform":{"conditions":[{"label":"Environments Product","type":"hasLabel","value":true},{"label":"Artifact Platform Product","type":"hasLabel","value":true}],"requires":1}}},"root":"."}],"labels":{"Tab Widget":{"color":"e2c76c","name":"Tab Widget","description":""},"Dont merge":{"color":"ADB39C","name":"Dont merge","description":""},"Epic":{"color":"3E4B9E","name":"Epic","description":"A zenhub epic that describes a project"},"Menu Button Widget":{"color":"235708","name":"Menu Button Widget","description":"Issues related to Menu Button widget"},"Checkbox Group widget":{"color":"bbeecd","name":"Checkbox Group widget","description":"Issues related to Checkbox Group Widget"},"Input Widget":{"color":"ae65d8","name":"Input Widget","description":""},"Security":{"color":"99139C","name":"Security","description":""},"QA":{"color":"748fda","name":"QA","description":"Needs QA attention"},"Verified":{"color":"9bf416","name":"Verified","description":""},"Wont Fix":{"color":"ffffff","name":"Wont Fix","description":"This will not be worked on"},"MySQL":{"color":"c9ddc6","name":"MySQL","description":"Issues related to MySQL plugin"},"Development":{"color":"9F8A02","name":"Development","description":""},"Help Wanted":{"color":"008672","name":"Help Wanted","description":"Extra attention is needed"},"Home Page":{"color":"","name":"Home Page","description":"Issues related to the application home page"},"Rating Widget":{"color":"235708","name":"Rating Widget","description":"Issues related to the rating widget"},"Stat Box Widget":{"color":"f1c9ce","name":"Stat Box Widget","description":"Issues related to stat box"},"Enhancement":{"color":"a2eeef","name":"Enhancement","description":"New feature or request"},"Fork App":{"color":"af87c7","name":"Fork App","description":"Issues related to forking apps"},"Container Widget":{"color":"19AD0D","name":"Container Widget","description":"Container widget"},"Papercut":{"color":"B562F6","name":"Papercut","description":""},"Needs Design":{"color":"bfd4f2","name":"Needs Design","description":"needs design or changes to design"},"i18n":{"color":"1799b0","name":"i18n","description":"Represents issues that need to be tackled to handle internationalization"},"Rich Text Editor Widget":{"color":"f72cac","name":"Rich Text Editor Widget","description":""},"skip-changelog":{"color":"06086F","name":"skip-changelog","description":"Adding this label to a PR prevents it from being listed in the changelog"},"Low":{"color":"79e53b","name":"Low","description":"An issue that is neither critical nor breaks a user flow"},"potential-duplicate":{"color":"d3cb2e","name":"potential-duplicate","description":"This label marks issues that are potential duplicates of already open issues"},"Audio Widget":{"color":"447B9A","name":"Audio Widget","description":"Issues related to Audio Widget"},"Firestore":{"color":"8078b0","name":"Firestore","description":"Issues related to the firestore Integration"},"New Widget":{"color":"be4cf2","name":"New Widget","description":"A request for a new widget"},"Modal Widget":{"color":"03846f","name":"Modal Widget","description":""},"UX Improvement":{"color":"f4a089","name":"UX Improvement","description":""},"S3":{"color":"8078b0","name":"S3","description":"Issues related to the S3 plugin"},"Release Blocker":{"color":"5756bf","name":"Release Blocker","description":"This issue must be resolved before the release"},"safari":{"color":"51C6AA","name":"safari","description":"Bugs seen on safari browser"},"Example Apps":{"color":"1799b0","name":"Example Apps","description":"Example apps created for new signups"},"MultiSelect Widget":{"color":"AB62D4","name":"MultiSelect Widget","description":"Issues related to MultiSelect Widget"},"Calendar Widget":{"color":"8c6644","name":"Calendar Widget","description":""},"Website":{"color":"151720","name":"Website","description":"Related to www.appsmith.com website"},"Low effort":{"color":"8B59F0","name":"Low effort","description":"Something that'll take a few days to build"},"Checkbox Widget":{"color":"bbeecd","name":"Checkbox Widget","description":""},"Spam":{"color":"620faf","name":"Spam","description":""},"Voice Recorder Widget":{"color":"85bc87","name":"Voice Recorder Widget","description":""},"Select Widget":{"color":"0c669e","name":"Select Widget","description":"Select or dropdown widget"},"Bug":{"color":"8ba6fd","name":"Bug","description":"Something isn't right"},"Widget Validation":{"color":"6990BC","name":"Widget Validation","description":"Issues related to widget property validation"},"Generate Page":{"color":"2b4664","name":"Generate Page","description":"Issures related to page generation"},"File Picker Widget":{"color":"6ae4f2","name":"File Picker Widget","description":""},"snowflake":{"color":"8078b0","name":"snowflake","description":"Issues related to the snowflake Integration"},"Automation":{"color":"CCAF60","name":"Automation","description":""},"hotfix":{"color":"BA3F1D","name":"hotfix","description":""},"Import-Export-App":{"color":"48883f","name":"Import-Export-App","description":"Issues related to importing and exporting apps"},"High effort":{"color":"A7E87B","name":"High effort","description":"Something that'll take more than a month to build"},"Telemetry":{"color":"bc70f9","name":"Telemetry","description":"Issues related to instrumenting appsmith"},"Radio Widget":{"color":"91ef15","name":"Radio Widget","description":""},"Omnibar":{"color":"1bb96a","name":"Omnibar","description":"Issues related to the omnibar for navigation"},"Button Widget":{"color":"34efae","name":"Button Widget","description":""},"Switch widget":{"color":"33A8CE","name":"Switch widget","description":"The switch widget"},"Map Widget":{"color":"7eef7a","name":"Map Widget","description":""},"Task":{"color":"085630","name":"Task","description":"A simple Todo"},"Design System":{"color":"2958a4","name":"Design System","description":"Design system"},"opera":{"color":"C63F5B","name":"opera","description":"Any issues identified on the opera browser"},"Login / Signup":{"color":"","name":"Login / Signup","description":"Authentication flows"},"Image Widget":{"color":"8de8ad","name":"Image Widget","description":""},"firefox":{"color":"6d56e2","name":"firefox","description":""},"Property Pane":{"color":"b356ff","name":"Property Pane","description":"Issues related to the behaviour of the property pane"},"Deployment":{"color":"93491f","name":"Deployment","description":"Installation process of appsmith"},"Production":{"color":"b60205","name":"Production","description":""},"Dependencies":{"color":"0366d6","name":"Dependencies","description":"Pull requests that update a dependency file"},"Google Sheets":{"color":"8078b0","name":"Google Sheets","description":"Issues related to Google Sheets"},"Icon Button Widget":{"color":"D319CE","name":"Icon Button Widget","description":"Issues related to the icon button widget"},"Mongo":{"color":"8078b0","name":"Mongo","description":"Issues related to Mongo DB plugin"},"Documentation":{"color":"a8dff7","name":"Documentation","description":"Improvements or additions to documentation"},"TestGap":{"color":"","name":"TestGap","description":"Issues identified for test plan improvement"},"keyboard shortcut":{"color":"0688B6","name":"keyboard shortcut","description":""},"Reopen":{"color":"897548","name":"Reopen","description":""},"Redshift":{"color":"8078b0","name":"Redshift","description":"Issues related to the redshift integration"},"Date Picker Widget":{"color":"ef1ce1","name":"Date Picker Widget","description":""},"Entity Explorer":{"color":"1bb96a","name":"Entity Explorer","description":"Issues related to navigation using the entity explorer"},"JS Linting & Errors":{"color":"E56AA5","name":"JS Linting & Errors","description":"Issues related to JS Linting and errors"},"iFrame":{"color":"3CD1DB","name":"iFrame","description":"Issues related to iFrame"},"Stale":{"color":"ededed","name":"Stale","description":null},"Text Widget":{"color":"d130d1","name":"Text Widget","description":""},"Video Widget":{"color":"23dd4b","name":"Video Widget","description":""},"Datasources":{"color":"3d590f","name":"Datasources","description":"Issues related to configuring datasource on appsmith"},"error":{"color":"B66773","name":"error","description":"All issues connected to error messages"},"Form Widget":{"color":"09ed77","name":"Form Widget","description":""},"Needs Triaging":{"color":"e8b851","name":"Needs Triaging","description":"Needs attention from maintainers to triage"},"Autocomplete":{"color":"235708","name":"Autocomplete","description":"Issues related to the autocomplete"},"hacktoberfest":{"color":"0052cc","name":"hacktoberfest","description":"All issues that can be solved by the community during Hacktoberfest"},"Medium effort":{"color":"D31156","name":"Medium effort","description":"Something that'll take more than a week but less than a month to build"},"Release":{"color":"57e5e0","name":"Release","description":""},"High":{"color":"c94d14","name":"High","description":"This issue blocks a user from building or impacts a lot of users"},"UI Performance":{"color":"1799b0","name":"UI Performance","description":"Issues related to UI performance"},"Deploy Preview":{"color":"bfdadc","name":"Deploy Preview","description":"Issues found in Deploy Preview"},"Needs Tests":{"color":"8ee263","name":"Needs Tests","description":"Needs automated tests to assert a feature/bug fix"},"Refactor":{"color":"B96662","name":"Refactor","description":"needs refactoring of code"},"Divider Widget":{"color":"235708","name":"Divider Widget","description":"Issues related to the divider widget"},"Table Widget":{"color":"2eead1","name":"Table Widget","description":""},"Needs More Info":{"color":"e54c10","name":"Needs More Info","description":"Needs additional information"},"Good First Issue":{"color":"7057ff","name":"Good First Issue","description":"Good for newcomers"},"UI Improvement":{"color":"9aeef4","name":"UI Improvement","description":""},"Backend":{"color":"d4c5f9","name":"Backend","description":"This marks the issue or pull request to reference server code"},"Frontend":{"color":"87c7f2","name":"Frontend","description":"This label marks the issue or pull request to reference client code"},"Chart Widget":{"color":"616ecc","name":"Chart Widget","description":""},"List Widget":{"color":"8508A0","name":"List Widget","description":"Issues related to the list widget"},"Duplicate":{"color":"cfd3d7","name":"Duplicate","description":"This issue or pull request already exists"},"JS Snippets":{"color":"8d62d2","name":"JS Snippets","description":"issues related to JS Snippets"},"Copy Paste":{"name":"Copy Paste","description":"Issues related to copy paste","color":"b4f0a9"},"Drag & Drop":{"name":"Drag & Drop","description":"Issues related to the drag & drop experience","color":"92115a"},"Sniping Mode":{"name":"Sniping Mode","description":"Issues related to sniping mode","color":"48883f"},"Redis":{"name":"Redis","description":"Issues related to Redis","color":"8078b0"},"New Datasource":{"color":"60b14c","name":"New Datasource","description":"Requests for new datasources"},"Evaluated Value":{"name":"Evaluated Value","description":"Issues related to evaluated values","color":"39f6e7"},"Undo/Redo":{"name":"Undo/Redo","description":"Issues related to undo/redo","color":"f25880"},"App Navigation":{"name":"App Navigation","description":"Issues related to the topbar navigation and configuring it","color":"4773ab"},"Widgets Pane":{"name":"Widgets Pane","description":"Issues related to the discovery and organisation of widgets","color":"ad5d78"},"View Mode":{"color":"1799b0","name":"View Mode","description":"Issues related to the view mode"},"Content":{"name":"Content","description":"For content related topics i.e blogs, templates, videos","color":"a8dff7"},"Slash Command":{"name":"Slash Command","description":"Issues related to the slash command","color":"a0608e"},"Widget Property":{"name":"Widget Property","description":"Issues related to adding / modifying widget properties across widgets","color":"5e92cb"},"Windows":{"name":"Windows","description":"Issues related exclusively to Windows systems","color":"b4cb8a"},"Old App Issues":{"name":"Old App Issues","description":"Issues related to apps old apps a few weeks old and app issues in stale browser session","color":"87ab18"},"Document Viewer Widget":{"name":"Document Viewer Widget","description":"Issues related to Document Viewer Widget","color":"899d4b"},"Radio Group Widget":{"name":"Radio Group Widget","description":"Issues related to radio group widget","color":"b68495"},"Super Admin":{"name":"Super Admin","description":"Issues related to the super admin page","color":"aa95cf"},"Postgres":{"name":"Postgres","description":"Postgres related issues","color":"8078b0"},"New JS Function":{"name":"New JS Function","description":"Issues related to adding a JS Function","color":"8e8aa4"},"Cannot Reproduce Issue":{"color":"93c9cc","name":"Cannot Reproduce Issue","description":"Issues that cannot be reproduced"},"Widget Grouping":{"name":"Widget Grouping","description":"Issues related to Widget Grouping","color":"a49951"},"K8s":{"name":"K8s","description":"Kubernetes related issues","color":"5f318a"},"Docker":{"name":"Docker","description":"Issues related to docker","color":"89b808"},"Camera Widget":{"name":"Camera Widget","description":"Issues and enhancements related to camera widget","color":"e6038e"},"SAAS Plugins":{"name":"SAAS Plugins","description":"Issues related to SAAS Plugins","color":"80e18f"},"JS Promises":{"name":"JS Promises","description":"Issues related to promises","color":"d7771f"},"OnPageLoad":{"name":"OnPageLoad","description":"OnPageLoad issues on functions and queries","color":"2b4664"},"JS Usability":{"name":"JS Usability","description":"usability issues with JS editor and JS elsewhere","color":"a302b0"},"Currency Input Widget":{"name":"Currency Input Widget","description":"Issues related to currency input widget","color":"b2164f"},"TreeSelect":{"name":"TreeSelect","description":"Issues related to TreeSelect Widget","color":"a1633e"},"MultiTree Select Widget":{"name":"MultiTree Select Widget","description":"Issues related to MultiTree Select Widget","color":"a1633e"},"Welcome Screen":{"name":"Welcome Screen","description":"Issues related to the welcome screen","color":"48883f"},"Realtime Commenting":{"color":"a70b86","name":"Realtime Commenting","description":"In-app communication between teams"},"Phone Input Widget":{"name":"Phone Input Widget","description":"Issues related to the Phone Input widget","color":"a70b86"},"JSON Form":{"name":"JSON Form","description":"Issue / features related to the JSON form wiget","color":"46b209"},"All Widgets":{"name":"All Widgets","description":"Issues related to all widgets","color":"972b36"},"V1":{"name":"V1","description":"V1","color":"67ab2e"},"Reflow & Resize":{"name":"Reflow & Resize","description":"All issues related to reflow and resize experience","color":"748a13"},"SSO":{"name":"SSO","description":"Issues, requests and enhancements around Single sign-on.","color":""},"Multi User Realtime":{"name":"Multi User Realtime","description":"Issues related to multiple users using or editing an application","color":"e7b6ce"},"Ready for design":{"name":"Ready for design","description":"this issue is ready for design: it contains clear problem statements and other required information","color":"ebf442"},"Support":{"name":"Support","description":"Issues created by the A-force team to address user queries","color":"1740f3"},"Button Group widget":{"name":"Button Group widget","description":"Issue and enhancements related to the button group widget","color":"f17025"},"GraphQL Plugin":{"name":"GraphQL Plugin","description":"Issues related to GraphQL plugin","color":"8078b0"},"DevOps Pod":{"name":"DevOps Pod","description":"Issues related to devops","color":"d956c7"},"medium":{"name":"medium","description":"Issues that frustrate users due to poor UX","color":"23dfd9"},"ArangoDB":{"name":"ArangoDB","description":"Issues related to arangoDB","color":"8078b0"},"Code Refactoring":{"name":"Code Refactoring","description":"Issues related to code refactoring","color":"76310e"},"Progress bar widget":{"name":"Progress bar widget","description":"To track issues related to progress bar","color":"2d7abf"},"Audio Recorder Widget":{"name":"Audio Recorder Widget","description":"Issues related to Audio Recorder Widget","color":"9accef"},"Airtable":{"name":"Airtable","description":"Issues for Airtable","color":"60885f"},"Canvas / Grid":{"name":"Canvas / Grid","description":"Issues related to the canvas","color":"16b092"},"Email Config":{"name":"Email Config","description":"Issues related to configuring the email service","color":"2a21d1"},"CURL":{"name":"CURL","description":"Issues related to CURL impor","color":"60885f"},"Canvas Zooms":{"name":"Canvas Zooms","description":"Issues related to zooming the canvas","color":"e6038e"},"business":{"name":"business","description":"Features that will be a part of our business edition","color":"cd59eb"},"Action Pod":{"name":"Action Pod","description":"","color":"ee2e36"},"AutomationGap1":{"color":"a5e07c","name":"AutomationGap1","description":"Issues that needs automated tests"},"A-Force11":{"name":"A-Force11","description":"Issues raised by A-Force team","color":"d667b6"},"Business Edition":{"name":"Business Edition","description":"Features that will be a part of our business edition","color":"89bb6c"},"storeValue":{"name":"storeValue","description":"Issues related to the store value function","color":"5d3e66"},"DynamoDB":{"name":"DynamoDB","description":"Issues that are related to DynamoDB should have this label","color":"60885f"},"Backup & Restore":{"name":"Backup & Restore","description":"Issues related to backup and restore","color":"86874d"},"Billing":{"name":"Billing","description":"Billing infrastructure and flows for Business Edition and Trial users","color":"d2bc40"},"Datatype issue":{"name":"Datatype issue","description":"Issues that have risen because data types weren't handled","color":"cef66b"},"OAuth":{"name":"OAuth","description":"OAuth related bugs or features","color":"60885f"},"Table Widget V2":{"name":"Table Widget V2","description":"Issues related to Table Widget V2","color":"3a7192"},"IDE Navigation":{"name":"IDE Navigation","description":"Issues/feature requests related to IDE navigation, and context switching","color":"1bb96a"},"Query performance":{"name":"Query performance","description":"Issues that have to do with lack in performance of query execution","color":"cef66b"},"SAAS Manager App":{"name":"SAAS Manager App","description":"Issues with the SAAS manager app","color":"d427db"},"Twilio":{"name":"Twilio","description":"Issues related to Twilio integration","color":"23ba8d"},"Hubspot":{"name":"Hubspot","description":"Issues related to Hubspot integration","color":"60885f"},"Zendesk":{"name":"Zendesk","description":"Issues related to Zendesk integration","color":"60885f"},"Entity Refactor":{"name":"Entity Refactor","description":"Issues related to refactor logic","color":"705a2c"},"Map Chart Widget":{"name":"Map Chart Widget","description":"Issues related to Map Chart Widgets","color":"c8397f"},"Product Catchup":{"name":"Product Catchup","description":"Issues created in the product catchup","color":"29cd2c"},"Framework Functions":{"name":"Framework Functions","description":"Issues related to internal functions like showAlert(), navigateTo() etc...","color":"c25a09"},"Frontend Libraries Upgrade":{"name":"Frontend Libraries Upgrade","description":"Issues related to frontend libraries upgrade","color":"ede1fc"},"MsSQL":{"name":"MsSQL","description":"Issues related to MsSQL plugin","color":"8078b0"},"Elastic Search":{"name":"Elastic Search","description":"Issues related to the elastic search datasource","color":"8078b0"},"Core Query Execution":{"color":"cef66b","name":"Core Query Execution","description":"Issues related to the execution of all queries"},"Query Management":{"name":"Query Management","description":"Issues related to the CRUD of actions or queries","color":"cef66b"},"Query Settings":{"name":"Query Settings","description":"Issues related to the settings of all queries","color":"cef66b"},"Code Editor":{"name":"Code Editor","description":"Issues related to the code editor","color":"4ca16e"},"Query Forms":{"color":"12b253","name":"Query Forms","description":"Isuses related to the query forms"},"JS Objects":{"color":"22962c","name":"JS Objects","description":"Issues related to JS Objects"},"JS Evaluation":{"color":"22962c","name":"JS Evaluation","description":"Issues related to JS evaluation on the platform"},"SmartSubstitution":{"name":"SmartSubstitution","description":"Issues related to Smart substitution of mustache bindings in queries","color":"bae511"},"Query Generation":{"name":"Query Generation","description":"Issues related to query generation","color":"cef66b"},"Suggested Widgets":{"name":"Suggested Widgets","description":"Issues related to suggesting widgets based on query response","color":"6ac063"},"Code Scanner Widget":{"name":"Code Scanner Widget","description":"Issues related to code scanner widget","color":"9bc1a0"},"Clean URLs":{"name":"Clean URLs","description":"Issues related to clean URLs epic","color":"112623"},"Widget keyboard accessibility":{"name":"Widget keyboard accessibility","description":"All issues related to keyboard accessibility in widgets","color":"b626fd"},"Connection pool":{"name":"Connection pool","description":"issues to do with connection pooling of various plugins","color":"94fe36"},"List Widget V2":{"name":"List Widget V2","description":"Issues related to the list widget v2","color":"adaaf7"},"Auto Height":{"name":"Auto Height","description":"Issues related to dynamic height of widgets","color":"5149cf"},"cypress_failed_test":{"name":"cypress_failed_test","description":"Cypress failed tests","color":"4745d5"},"Needs validation":{"name":"Needs validation","description":"Needs problem validation before being picked up","color":"66673d"},"Slider Widget":{"name":"Slider Widget","description":"Issues raised for slider widgets.","color":"2eef5f"},"Multitenancy":{"name":"Multitenancy","description":"Support multitenancy within single appsmith instance","color":"8c49a9"},"Conversion Algorithm":{"name":"Conversion Algorithm","description":"All issue related to converting app from fixed to flex mode & vice versa","color":"d12d2e"},"Browser specific":{"name":"Browser specific","description":"All issue related to browser","color":"d12d2e"},"Performance infra":{"name":"Performance infra","description":"all issue related to the performance infra","color":"8a60f6"},"DSL Update":{"name":"DSL Update","description":"Issues related to storing and updating the DSL","color":"e16cf3"},"AST-frontend":{"name":"AST-frontend","description":"Issues related to maintaining AST logic","color":"2b4664"},"AST-backend":{"name":"AST-backend","description":"Backend issues related to AST parsing","color":"48883f"},"MariaDB":{"name":"MariaDB","description":"MariaDB datasource","color":"8428c3"},"ADS Component Issue":{"name":"ADS Component Issue","description":"Issues which are caused due to ADS components","color":"d89119"},"Regressed":{"color":"723fd0","name":"Regressed","description":"Scenarios that were working before but have now regressed"},"Needs RCA":{"name":"Needs RCA","description":"a critical or high priority issue that needs an RCA","color":"2cc68f"},"Custom JS Libraries":{"name":"Custom JS Libraries","description":"Issues related to adding custom JS library","color":"bacb6d"},"Integrations Pod General":{"name":"Integrations Pod General","description":"Issues related to the Integrations Pod that don't fit into other tags.","color":"287823"},"Performance Pod":{"name":"Performance Pod","description":"All things related to Appsmith performance","color":"b5a25d"},"Performance":{"name":"Performance","description":"Issues related to performance","color":"9a18d7"},"File upload issues":{"name":"File upload issues","description":"Issues related to uploading any type of files from within Appsmith","color":"2b4664"},"Action Selector":{"name":"Action Selector","description":"Issues related to action selector on the property pane","color":"2f9e20"},"Community Reported":{"name":"Community Reported","description":"issues reported by community members","color":"1402e5"},"JS Function execution":{"name":"JS Function execution","description":"JS function execution","color":"7c2de1"},"Self Serve":{"name":"Self Serve","description":"For all issues related to self-serve flow for business edition","color":"4dacfc"},"Self Serve 1.0":{"name":"Self Serve 1.0","description":"For all issues related to v1 of the self serve project","color":"ae839e"},"Customer Portal":{"name":"Customer Portal","description":"For all tasks/issues pertaining to customer.appsmith.com","color":"d2bc40"},"Cloud Services":{"name":"Cloud Services","description":"For all tasks/issues on Appsmith cloud-services relating to licensing, usage and billing","color":"d2bc40"},"One-click Binding":{"name":"One-click Binding","description":"Issues related to the One click binding epic","color":"f1661c"},"Airgap":{"name":"Airgap","description":"Tickets related to supporting air-gapped Appsmith instances","color":"1cb294"},"SMTP plugin":{"name":"SMTP plugin","description":"Issues related to SMTP plugin","color":"541457"},"AWS AMI":{"name":"AWS AMI","description":"Issues Related to AWS AMI","color":"b44680"},"Old widget version":{"name":"Old widget version","description":"Use this label to raise issue specific only to an older version of a widget","color":"ff3814"},"Enterprise Billing":{"name":"Enterprise Billing","description":"To track all tasks/issues related to licensing & billing for enterprise customers","color":"14c156"},"Oracle SQL DB":{"name":"Oracle SQL DB","description":"Issues related to the Oracle plugin","color":"cbabcb"},"Community Contributor":{"name":"Community Contributor","description":"Meant to track issues that are assigned to external contributors","color":"149ab6"},"widget vertical alignment":{"name":"widget vertical alignment","description":"All issue related widget vertical alignment on the auto layout canvas","color":"d12d2e"},"Observability":{"name":"Observability","description":"Issues related to observability on the Appsmith instance","color":"dff913"},"Checkbox Component":{"name":"Checkbox Component","description":"This labels deals with checkbox component in wds package","color":"75a401"},"Analytics Improvements":{"name":"Analytics Improvements","description":"For all tasks focused on improving our overall analytics and fixing any issues ","color":"29b8ed"},"WDS team":{"name":"WDS team","description":"","color":"8d675a"},"Enterprise Edition":{"name":"Enterprise Edition","description":"Features that will be supported in Enterprise Edition only","color":"984f5e"},"Query filter":{"name":"Query filter","description":"Issues related to query filtering, e.g., WHERE clause","color":"a15134"},"Keyboard accessibility ":{"name":"Keyboard accessibility ","description":"All issue related to ADS component keyboard accessibility","color":"2ba696"},"Toggle button":{"name":"Toggle button","description":"All issue related to ADS toggle button","color":"edc47f"},"SCIM":{"name":"SCIM","description":"Label to collate our SCIM issues","color":"48883f"},"ADS Category Token":{"name":"ADS Category Token","description":"All issues related appsmith design system category tokens","color":"920961"},"ADS Component Documentation":{"name":"ADS Component Documentation","description":"All issues Appsmith design system component documentation","color":"64c46a"},"ADS Migration":{"name":"ADS Migration","description":"All issues related to Appsmith design system migration","color":"b082d6"},"ADS Deduplication ":{"name":"ADS Deduplication ","description":"Replacing component with ADS components","color":"b082d6"},"ADS Revamp":{"name":"ADS Revamp","description":"All issues related to ads revamp. ","color":"b082d6"},"ADS Deduplication":{"name":"ADS Deduplication","description":"Replacing component with ADS components","color":"b082d6"},"ADS Grayscale":{"name":"ADS Grayscale","description":"Support grayscale color changes","color":"b03577"},"ADS Unit Test":{"name":"ADS Unit Test","description":"All issue related ads unit cases ","color":"b082d6"},"ADS Components":{"name":"ADS Components","description":"All issues related ADS components","color":"b082d6"},"Widget Discoverability":{"name":"Widget Discoverability","description":"Issues related to Widget Discoverability","color":"7b55ce"},"Widget setter method":{"name":"Widget setter method","description":"Issues with widget property setters","color":"8dce87"},"License":{"name":"License","description":"For all issues/tasks related to licensing of appsmith-ee edition","color":"90ee98"},"Platformization":{"name":"Platformization","description":"Issues or tasks related to platformization of Appsmith codebase","color":"4e972b"},"Activation - datasources":{"name":"Activation - datasources","description":"issues related to activation projects","color":"7c7ace"},"Partial-import-export":{"name":"Partial-import-export","description":"Label for granular reusability.","color":"717732"},"AI":{"name":"AI","description":"All tasks related to AI","color":"2b4664"},"ADS Typography":{"name":"ADS Typography","description":"All issue related typographical changes","color":"2dbe8d"},"Auto Layout":{"name":"Auto Layout","description":"Issues relates to auto layout","color":"92cf8c"},"Heroku":{"name":"Heroku","description":"Issues related to Heroku","color":"a81b69"},"ADS Visual Styles":{"name":"ADS Visual Styles","description":"All issues related to ADS visual styles","color":"d3da89"},"ADS Component Design":{"name":"ADS Component Design","description":"All issue related to component design","color":"5cc91e"},"Modal Component":{"name":"Modal Component","description":"All issue related to ads modal component","color":"ee63f3"},"App setting":{"name":"App setting","description":"Related to app settings panel within the app","color":"174f98"},"BE instance":{"name":"BE instance","description":"For all issues related to license, billing on BE instance","color":"ae8f98"},"Fixed layout":{"name":"Fixed layout","description":"issues related to fixed layout","color":"b66681"},"Anvil layout":{"name":"Anvil layout","description":"issues related to the new layout system anvil","color":"5e0904"},"New Deployment Mode":{"name":"New Deployment Mode","description":"Support a new mode of deployment","color":"108033"},"Custom widgets":{"name":"Custom widgets","description":"For all issues related to the custom widget project","color":"c9db9c"},"Homepage Experience V2":{"name":"Homepage Experience V2","description":"Label for reporting new tasks and bug fixes related to revamped homepage experience","color":"c55d54"},"Customer Success":{"name":"Customer Success","description":"Issues that the success team cares about","color":"6ccabd"},"Invite flow":{"name":"Invite flow","description":"Invite users flow and any associated actions","color":"881b35"},"Invite users":{"name":"Invite users","description":"Invite users flow and any associated actions","color":""},"Workflows Pod":{"name":"Workflows Pod","description":"Issues that the workflows team owns","color":"446925"},"DailyPromotionBlocker":{"name":"DailyPromotionBlocker","description":"DailyPromotion Blocker","color":"9b2280"},"JS Binding":{"name":"JS Binding","description":"All issues related to the JS Binding experience","color":"422fed"},"REST API":{"name":"REST API","description":"REST API plugin related issues","color":"e3ede5"},"Critical":{"color":"a1e3db","name":"Critical","description":"This issue breaks existing apps. Drop everything else to resolve"},"Module creator":{"name":"Module creator","description":"Issues related to the module creator side","color":"bb2c05"},"Module consumer":{"name":"Module consumer","description":"Issues related to the module consumer side","color":"83d3c5"},"Package versioning":{"name":"Package versioning","description":"ISsues related to how we manage versions for packages","color":"4c5218"},"Convert to module":{"name":"Convert to module","description":"Issues related to the module creation flow using conversion","color":"4c5218"},"Query module":{"name":"Query module","description":"Issues affecting query modules or its instances","color":"b11a7e"},"JS module":{"name":"JS module","description":"Issues affecting JS modules or its instances","color":"bf76f6"},"Secret Management":{"name":"Secret Management","description":"Issues related to secret management","color":"2b4664"},"REST API plugin":{"name":"REST API plugin","description":"REST API plugin related issues","color":"b5948a"},"UI module":{"name":"UI module","description":"Issues affecting UI modules or its instances","color":"d2acee"},"Preview mode":{"name":"Preview mode","description":"Issues related to app previews","color":"48883f"},"Git Auto-commit":{"name":"Git Auto-commit","description":"Issues related to autocommit","color":"717732"},"QA Pod":{"name":"QA Pod","description":"Issues under the QA Pod","color":"717732"},"Automation Test":{"name":"Automation Test","description":"","color":""},"Automation failures":{"name":"Automation failures","description":"","color":""},"Needs automation":{"name":"Needs automation","description":"Issues that needs automated tests","color":""},"Prepared statements":{"name":"Prepared statements","description":"Issues related to prepared statement flow","color":""},"Switch Group Widget":{"name":"Switch Group Widget","description":"Issues related to Switch group Widget","color":""},"Supervisor":{"name":"Supervisor","description":"Issues related to supervisor","color":"2c5813"},"Deployment Certificates":{"name":"Deployment Certificates","description":"Issues related to lets encrypt","color":"e148aa"},"Mock Data":{"name":"Mock Data","description":"Issues related to mock databases","color":"ebf251"},"AWS ECS":{"name":"AWS ECS","description":"Issues related to ECS Fargate","color":"e506ff"},"Publish App":{"name":"Publish App","description":"Issues related to app deployment","color":"2b4664"},"IDE Infra":{"name":"IDE Infra","description":"Issues related to the IDE infrastructure like saving changes","color":"1bb96a"},"User Profile":{"name":"User Profile","description":"Issues related to a user profile","color":"a60d34"},"Page Management":{"color":"1bb96a","name":"Page Management","description":"Issues related to configuring pages"},"Ingress":{"name":"Ingress","description":"Ingress Controller","color":"a86802"},"Nginx":{"name":"Nginx","description":"Issues related to Nginx","color":"e54195"},"Building blocks":{"name":"Building blocks","description":"Building blocks on cavas, on templates listing or drag and drop of building blocks.","color":"48883f"},"Table Inline Edit":{"name":"Table Inline Edit","description":"Issues related to inline editing","color":"60895a"},"User Session ":{"name":"User Session ","description":"For all issues/tasks related to user sessions","color":"65a3f5"},"WDS - all widgets":{"name":"WDS - all widgets","description":"all widget present in WDS","color":"2670ae"},"WDS - input widget":{"name":"WDS - input widget","description":"Issues related to input widget on WDS","color":"2670ae"},"WDS - paragraph widget":{"name":"WDS - paragraph widget","description":"issues related to paragraph widget on WDS","color":"2670ae"},"WDS - statbox widget":{"name":"WDS - statbox widget","description":"issues related to statbox widget on WDS","color":"2670ae"},"WDS - modal widget":{"name":"WDS - modal widget","description":"Issues related to modal widget on WDS","color":"2670ae"},"WDS - icon widget":{"name":"WDS - icon widget","description":"Issues related to icon widget on WDS","color":"2670ae"},"WDS - checkbox widget":{"name":"WDS - checkbox widget","description":"Issues related to checkbox widget on WDS","color":"2670ae"},"WDS - table widget":{"name":"WDS - table widget","description":"Issues related to table widget on WDS","color":"2670ae"},"WDS - keyValue widget":{"name":"WDS - keyValue widget","description":"Issues related to key-value widget on WDS","color":"2670ae"},"WDS - switch group widget":{"name":"WDS - switch group widget","description":"Issues related to switch group widget on WDS","color":"2670ae"},"WDS - theming":{"name":"WDS - theming","description":"Issues related to theming on the Anvil instance","color":"2670ae"},"Anvil POD":{"name":"Anvil POD","description":"Issue related to Anvil project","color":"5e0904"},"Anvil - theming":{"name":"Anvil - theming","description":"Issues related to theming on the Anvil instance","color":"c28de5"},"Anvil - vertical alignment":{"name":"Anvil - vertical alignment","description":"Issues related to vertical alignment on the Anvil layout","color":"c28de5"},"Anvil - layout component":{"name":"Anvil - layout component","description":"Issues related to layout component on the Anvil layout","color":"c28de5"},"Anvil - drag & drop":{"name":"Anvil - drag & drop","description":"Issues related to drag & drop experience on Anvil","color":"c28de5"},"Anvil - zones & sections":{"name":"Anvil - zones & sections","description":"Issues related to zones and sections on the Anvil layout","color":"c28de5"},"Anvil - copy paste experience":{"name":"Anvil - copy paste experience","description":"Issues related to copy paste experience on the Anvil layout","color":"c28de5"},"WDS - phone widget":{"name":"WDS - phone widget","description":"Issues related to phone widget on WDS","color":"c28de5"},"WDS - responsive widget":{"name":"WDS - responsive widget","description":"All issues related to widget responsiveness","color":"11ee05"},"Anvil - responsive viewport":{"color":"11ee05","name":"Anvil - responsive viewport","description":"Issues seen on different viewports like mobile"},"WDS - widget styling":{"color":"11ee05","name":"WDS - widget styling","description":"all about widget styling"},"Anvil - spacing":{"name":"Anvil - spacing","description":"Related to spacing between widgets in auto layout","color":"11ee05"},"Anvil - responsive canvas":{"name":"Anvil - responsive canvas","description":"All issues related to canvas responsiveness","color":"11ee05"},"WDS - inline button widget":{"name":"WDS - inline button widget","description":"Issues related to inline button widget on WDS","color":"7cef83"},"Activation Pod":{"name":"Activation Pod","description":"for Activation group","color":"d67d00"},"Activation":{"name":"Activation","description":"for Activation group","color":"d67d00"},"Tests":{"name":"Tests","description":"Test issues","color":"4fc7b6"},"Ballpark: XXS":{"name":"Ballpark: XXS","description":"~1xDev in 1/2xSprint","color":""},"Ballpark: XS":{"name":"Ballpark: XS","description":"~1xDev in 1xSprint","color":"53bf71"},"Ballpark: S":{"name":"Ballpark: S","description":"~2xDev in 1xSprint","color":"6e9e65"},"Ballpark: M":{"name":"Ballpark: M","description":"~1xPOD in 1xSprint","color":"2229e6"},"Ballpark: L":{"name":"Ballpark: L","description":"~1xPOD in 3xSprint or 2xPODs in 1xSprint","color":"49962f"},"Ballpark: XL":{"name":"Ballpark: XL","description":"~1xPOD in 1xQuarter or 2xPODs in 2xSprint","color":"b524c9"},"Ballpark: XXL":{"name":"Ballpark: XXL","description":"~2xPODs in 1xQuarter","color":"22092c"},"Auto-commit":{"name":"Auto-commit","description":"Issues related to auto-generated commits showing up on git ","color":"e25b89"},"Continuous Deployment":{"name":"Continuous Deployment","description":"Issues related to CD pipeline on git","color":"aea47c"},"Default branch":{"name":"Default branch","description":"Issues related to using a default branch on git","color":"195737"},"Git status":{"name":"Git status","description":"Issues related to information shown on git status modal or number of changes appearing in a branch","color":"c851b8"},"Git performance":{"name":"Git performance","description":"Issues related to perceived performance on any git operation","color":"189af6"},"Anvil team":{"name":"Anvil team","description":"issues related to the new layout system anvil","color":"798200"},"SDLC":{"name":"SDLC","description":"Issues related to software development lifecycle experiences","color":"bae511"},"Reconnect DS modal":{"name":"Reconnect DS modal","description":"Issues related to reconnect datasource modal post app import","color":"2e398b"},"Stability Pod":{"name":"Stability Pod","description":"For all issues/tasks to be prioritized under Stability pod","color":"86ddf6"},"Stability Issue":{"name":"Stability Issue","description":"Every issue handle by Stability Pod","color":"4d024a"},"Move to Postgres":{"name":"Move to Postgres","description":"Issues required to be solved for the move to Postgres as repository layer","color":"466ab1"},"User Session":{"name":"User Session","description":"Issues related to user sessions","color":"8255e5"},"IDE tabs":{"name":"IDE tabs","description":"query and js tabs","color":"1bb96a"},"Inviting Contribution":{"name":"Inviting Contribution","description":"Issues that we would like contributions to","color":""},"cypress-flaky-fix":{"name":"cypress-flaky-fix","description":"This label is auto-added when a PR which only has Cypress fixes are merged to release","color":"cd8bb6"},"Cypress flaky tests":{"name":"Cypress flaky tests","description":"Test scripts that need to be fixed on Cypress by dev or SDET","color":"cd8bb6"},"Help enterprise":{"name":"Help enterprise","description":"Requested by Appsmith customers or prospects","color":"FF8C00"},"Learnability":{"name":"Learnability","description":"Issues affecting the product learnability, making the product harder for new users.","color":"800c2f"},"ADS Spacing":{"name":"ADS Spacing","description":"","color":"686ebb"},"ads unit test":{"name":"ads unit test","description":"All issue related ads unit cases","color":"686ebb"},"ads revamp":{"name":"ads revamp","description":"All issues related to ads revamp.","color":"686ebb"},"Javascript Product":{"color":"709a21","name":"Javascript Product","description":"Issues related to users writing javascript in appsmith"},"IDE Product":{"color":"1bb96a","name":"IDE Product","description":"Issues related to the IDE Product"},"IDE Pod":{"color":"1bb96a","name":"IDE Pod","description":"Issues that new developers face while exploring the IDE"},"Accelerators Product":{"name":"Accelerators Product","description":"Issues related to app building accelerators","color":"f3fce6"},"Templates Product":{"name":"Templates Product","description":"Issues related to Templates","color":"f3fce6"},"Design System Product":{"name":"Design System Product","description":"Appsmith design system related issues","color":"2b4664"},"ads deduplication":{"name":"ads deduplication","description":"Replacing component with ADS components","color":"708943"},"Admin Settings Product":{"color":"708943","name":"Admin Settings Product","description":"Issues in admin settings pages"},"Appsmith AI":{"name":"Appsmith AI","description":"All issues related to the Appsmith AI datasource","color":"708943"},"Query & JS Pod":{"color":"709a21","name":"Query & JS Pod","description":"Issues related to the query & JS Pod"},"RBAC Product":{"name":"RBAC Product","description":"Issues, requests and enhancements around RBAC.","color":""},"Workspace Product":{"name":"Workspace Product","description":"Issues related to workspaces","color":""},"CE Instance Usage":{"name":"CE Instance Usage","description":"For all issues relating to usage, licensing or billing on the CE instance","color":""},"Billing & Licensing Product":{"name":"Billing & Licensing Product","description":"Issues pertaining to licensing, billing and usage across self serve and enterprise customers","color":"466ab1"},"Platform Administration Pod":{"color":"446925","name":"Platform Administration Pod","description":"Issues related to platform administration & management"},"DB Infrastructure Pod":{"name":"DB Infrastructure Pod","description":"Pod to handle database infrastructure","color":"446925"},"Packages Product":{"name":"Packages Product","description":"Issues related to packages","color":"7e018f"},"Workflows Product":{"name":"Workflows Product","description":"Issues related to the workflows product","color":"446925"},"Debugger Product":{"color":"857f58","name":"Debugger Product","description":"Issues related to the debugger"},"Packages Pod":{"name":"Packages Pod","description":"issues that belong to the packages pod","color":"53742c"},"Environments Product":{"name":"Environments Product","description":"Issues related to datasource environments","color":"857f58"},"Custom Widgets":{"name":"Custom Widgets","description":"For all issues related to the custom widget project","color":"857f58"},"Branding Product":{"name":"Branding Product","description":"All issues under branding and whitelabelling appsmith ecosystem","color":"857f58"},"Widgets & Accelerators Pod":{"name":"Widgets & Accelerators Pod","description":"Issues related to widgets & Accelerators","color":"27496a"},"Widgets Product":{"name":"Widgets Product","description":"This label groups issues related to widgets","color":"f3fce6"},"App Theming Product":{"name":"App Theming Product","description":"Items that are related to the App level theming controls epic","color":"48883f"},"UI Building Product":{"color":"48883f","name":"UI Building Product","description":"Issues related to the UI Building experience"},"Onboarding Product":{"color":"48883f","name":"Onboarding Product","description":"Issues related to onboarding new developers"},"Database Schema":{"name":"Database Schema","description":"Issues related to database schema","color":"48883f"},"Git Product":{"color":"7e018f","name":"Git Product","description":"Issues related to version control product"},"Embedding Apps Product":{"name":"Embedding Apps Product","description":"Issues related to embedding","color":"48883f"},"Integrations Product":{"name":"Integrations Product","description":"Issues related to a specific integration","color":"b9f21c"},"Feature Flagging":{"name":"Feature Flagging","description":"Anything related feature flagging","color":"4574ae"},"Audit Logs Product":{"name":"Audit Logs Product","description":"Audit trails to ensure data security","color":"4574ae"},"Identity & Authentication Product":{"name":"Identity & Authentication Product","description":"Issues related to user identity & authentication","color":"4574ae"},"Email verification":{"name":"Email verification","description":"Email verification issues","color":"4574ae"},"Artifact Platform Product":{"name":"Artifact Platform Product","description":"Issues related to the application platform","color":"4574ae"},"Git IA":{"name":"Git IA","description":"Issues related to Git IA changes","color":"df8bd6"},"Documentation Pod":{"name":"Documentation Pod","description":"Issues related to user education","color":"8c8c02"},"Branch management":{"name":"Branch management","description":"Issues related to using a branch management on git","color":"ebe6af"},"Reconfigure Datasource Modal":{"name":"Reconfigure Datasource Modal","description":"Issues related to reconfigure DS modal that comes after importing applications","color":"5ac17b"},"Setup Issues":{"name":"Setup Issues","description":"Issues related to setting up appsmith","color":"3fc837"},"Packages & Git Pod":{"name":"Packages & Git Pod","description":"All issues belonging to Packages and Git","color":"46ac0e"},"Git Platform":{"name":"Git Platform","description":"Issues related to the git & the app platform","color":"c9ab80"},"Entity Management":{"name":"Entity Management","description":"Copy / Move / Delete widgets / queries / datasources","color":"74c33c"},"Cypress":{"name":"Cypress","description":"Tasks related to Cypress automation","color":"67b83c"}},"success":true} \ No newline at end of file +{"runners":[{"versioning":{"source":"milestones","type":"SemVer"},"prereleaseName":"alpha","issue":{"labels":{"Widgets Product":{"conditions":[{"label":"Button Widget","type":"hasLabel","value":true},{"label":"Chart Widget","type":"hasLabel","value":true},{"label":"Container Widget","type":"hasLabel","value":true},{"label":"Date Picker Widget","type":"hasLabel","value":true},{"label":"Select Widget","type":"hasLabel","value":true},{"label":"File Picker Widget","type":"hasLabel","value":true},{"label":"Form Widget","type":"hasLabel","value":true},{"label":"Image Widget","type":"hasLabel","value":true},{"label":"Input Widget","type":"hasLabel","value":true},{"label":"List Widget","type":"hasLabel","value":true},{"label":"MultiSelect Widget","type":"hasLabel","value":true},{"label":"Map Widget","type":"hasLabel","value":true},{"label":"Modal Widget","type":"hasLabel","value":true},{"label":"Radio Widget","type":"hasLabel","value":true},{"label":"Rich Text Editor Widget","type":"hasLabel","value":true},{"label":"Tab Widget","type":"hasLabel","value":true},{"label":"Table Widget","type":"hasLabel","value":true},{"label":"Text Widget","type":"hasLabel","value":true},{"label":"Video Widget","type":"hasLabel","value":true},{"label":"iFrame","type":"hasLabel","value":true},{"label":"Menu Button","type":"hasLabel","value":true},{"label":"Rating","type":"hasLabel","value":true},{"label":"Widget Validation","type":"hasLabel","value":true},{"label":"New Widget","type":"hasLabel","value":true},{"label":"Switch widget","type":"hasLabel","value":true},{"label":"Audio Widget","type":"hasLabel","value":true},{"label":"Icon Button Widget","type":"hasLabel","value":true},{"label":"Stat Box Widget","type":"hasLabel","value":true},{"label":"Voice Recorder Widget","type":"hasLabel","value":true},{"label":"Calendar Widget","type":"hasLabel","value":true},{"label":"Menu Button Widget","type":"hasLabel","value":true},{"label":"Divider Widget","type":"hasLabel","value":true},{"label":"Rating Widget","type":"hasLabel","value":true},{"label":"View Mode","type":"hasLabel","value":true},{"label":"Widget Property","type":"hasLabel","value":true},{"label":"Document Viewer Widget","type":"hasLabel","value":true},{"label":"Radio Group Widget","type":"hasLabel","value":true},{"label":"Currency Input Widget","type":"hasLabel","value":true},{"label":"TreeSelect","type":"hasLabel","value":true},{"label":"MultiTree Select Widget","type":"hasLabel","value":true},{"label":"Phone Input Widget","type":"hasLabel","value":true},{"label":"JSON Form","type":"hasLabel","value":true},{"label":"All Widgets","type":"hasLabel","value":true},{"label":"Button Group widget","type":"hasLabel","value":true},{"label":"Progress bar widget","type":"hasLabel","value":true},{"label":"Audio Recorder Widget","type":"hasLabel","value":true},{"label":"Camera Widget","type":"hasLabel","value":true},{"label":"Table Widget V2","type":"hasLabel","value":true},{"label":"Map Chart Widget","type":"hasLabel","value":true},{"label":"Code Scanner Widget","type":"hasLabel","value":true},{"label":"Widget keyboard accessibility","type":"hasLabel","value":true},{"label":"List Widget V2","type":"hasLabel","value":true},{"label":"Slider Widget","type":"hasLabel","value":true},{"label":"One-click Binding","type":"hasLabel","value":true},{"label":"Old widget version","type":"hasLabel","value":true},{"label":"Widget Discoverability","type":"hasLabel","value":true},{"label":"Switch Group Widget","type":"hasLabel","value":true},{"label":"Checkbox Group widget","type":"hasLabel","value":true},{"label":"Checkbox Widget","type":"hasLabel","value":true},{"label":"Table Inline Edit","type":"hasLabel","value":true},{"label":"Custom Widgets","type":"hasLabel","value":true},{"label":"Query & Widgets Pod","type":"hasLabel","value":true}],"requires":1},"Javascript Product":{"conditions":[{"label":"JS Linting & Errors","type":"hasLabel","value":true},{"label":"Autocomplete","type":"hasLabel","value":true},{"label":"Evaluated Value","type":"hasLabel","value":true},{"label":"Slash Command","type":"hasLabel","value":true},{"label":"New JS Function","type":"hasLabel","value":true},{"label":"JS Usability","type":"hasLabel","value":true},{"label":"Framework Functions","type":"hasLabel","value":true},{"label":"JS Objects","type":"hasLabel","value":true},{"label":"JS Evaluation","type":"hasLabel","value":true},{"label":"Custom JS Libraries","type":"hasLabel","value":true},{"label":"Action Selector","type":"hasLabel","value":true},{"label":"Widget setter method","type":"hasLabel","value":true},{"label":"Entity Refactor","type":"hasLabel","value":true},{"label":"AST-frontend","type":"hasLabel","value":true},{"label":"Sniping Mode","type":"hasLabel","value":true},{"label":"AST-backend","type":"hasLabel","value":true}],"requires":1},"IDE Product":{"conditions":[{"label":"IDE Product","type":"hasLabel","value":true},{"label":"IDE Infra","type":"hasLabel","value":true},{"label":"IDE Navigation","type":"hasLabel","value":true},{"label":"IDE tabs","type":"hasLabel","value":true},{"label":"Omnibar","type":"hasLabel","value":true},{"label":"Entity Explorer","type":"hasLabel","value":true},{"label":"Page Management","type":"hasLabel","value":true},{"label":"Preview mode","type":"hasLabel","value":true},{"label":"Entity Management","type":"hasLabel","value":true}],"requires":1},"Accelerators Product":{"conditions":[{"label":"Generate Page","type":"hasLabel","value":true},{"label":"Building blocks","type":"hasLabel","value":true}],"requires":1},"Templates Product":{"conditions":[{"label":"Partial-import-export","type":"hasLabel","value":true},{"label":"Templates Product","type":"hasLabel","value":true}],"requires":1},"Design System Product":{"conditions":[{"label":"Design System Product","type":"hasLabel","value":true},{"label":"ADS Component Issue","type":"hasLabel","value":true},{"label":"Keyboard accessibility ","type":"hasLabel","value":true},{"label":"Toggle button","type":"hasLabel","value":true},{"label":"ADS Category Token","type":"hasLabel","value":true},{"label":"ADS Component Documentation","type":"hasLabel","value":true},{"label":"ADS Migration","type":"hasLabel","value":true},{"label":"ADS Deduplication ","type":"hasLabel","value":true},{"label":"ADS Revamp","type":"hasLabel","value":true},{"label":"ADS Deduplication","type":"hasLabel","value":true},{"label":"ADS Unit Test","type":"hasLabel","value":true},{"label":"ADS Components","type":"hasLabel","value":true},{"label":"ADS Grayscale","type":"hasLabel","value":true},{"label":"Design System","type":"hasLabel","value":true},{"label":"ADS Typography","type":"hasLabel","value":true},{"label":"ADS Visual Styles","type":"hasLabel","value":true},{"label":"ADS Component Design","type":"hasLabel","value":true},{"label":"Modal Component","type":"hasLabel","value":true},{"label":"ADS Spacing","type":"hasLabel","value":true},{"label":"ads unit test","type":"hasLabel","value":true},{"label":"ads revamp","type":"hasLabel","value":true},{"label":"ads deduplication","type":"hasLabel","value":true}],"requires":1},"RBAC Product":{"conditions":[{"label":"Invite users","type":"hasLabel","value":true},{"label":"RBAC Product","type":"hasLabel","value":true}],"requires":1},"Workspace Product":{"conditions":[{"label":"Home Page","type":"hasLabel","value":true},{"label":"Workspace Product","type":"hasLabel","value":true}],"requires":1},"Billing & Licensing Product":{"conditions":[{"label":"Customer Portal","type":"hasLabel","value":true},{"label":"Cloud Services","type":"hasLabel","value":true},{"label":"Billing","type":"hasLabel","value":true},{"label":"Self Serve","type":"hasLabel","value":true},{"label":"Enterprise Billing","type":"hasLabel","value":true},{"label":"Analytics Improvements","type":"hasLabel","value":true},{"label":"Self Serve 1.0","type":"hasLabel","value":true},{"label":"License","type":"hasLabel","value":true},{"label":"BE instance","type":"hasLabel","value":true},{"label":"Invite flow","type":"hasLabel","value":true},{"label":"CE Instance Usage","type":"hasLabel","value":true},{"label":"Feature Flagging","type":"hasLabel","value":true}],"requires":1},"Packages Product":{"conditions":[{"label":"Packages Product","type":"hasLabel","value":true}],"requires":1},"Environments Product":{"conditions":[{"label":"Environments Product","type":"hasLabel","value":true}],"requires":1},"UI Building Product":{"conditions":[{"label":"Property Pane","type":"hasLabel","value":true},{"label":"Copy Paste","type":"hasLabel","value":true},{"label":"Drag & Drop","type":"hasLabel","value":true},{"label":"Undo/Redo","type":"hasLabel","value":true},{"label":"Widgets Pane","type":"hasLabel","value":true},{"label":"UI Performance","type":"hasLabel","value":true},{"label":"Widget Grouping","type":"hasLabel","value":true},{"label":"Reflow & Resize","type":"hasLabel","value":true},{"label":"Canvas / Grid","type":"hasLabel","value":true},{"label":"Auto Height","type":"hasLabel","value":true},{"label":"Browser specific","type":"hasLabel","value":true},{"label":"Auto Layout","type":"hasLabel","value":true},{"label":"Fixed layout","type":"hasLabel","value":true},{"label":"App Navigation","type":"hasLabel","value":true}],"requires":1},"Onboarding Product":{"conditions":[{"label":"Welcome Screen","type":"hasLabel","value":true}],"requires":1},"Git Product":{"conditions":[{"label":"Git Product","type":"hasLabel","value":true},{"label":"Git Auto-commit","type":"hasLabel","value":true},{"label":"Auto-commit","type":"hasLabel","value":true},{"label":"Continuous Deployment","type":"hasLabel","value":true},{"label":"Default branch","type":"hasLabel","value":true},{"label":"Git status","type":"hasLabel","value":true},{"label":"Git performance","type":"hasLabel","value":true},{"label":"SDLC","type":"hasLabel","value":true},{"label":"Git IA","type":"hasLabel","value":true},{"label":"Branch management","type":"hasLabel","value":true}],"requires":1},"Embedding Apps Product":{"conditions":[{"label":"Embedding Apps Product","type":"hasLabel","value":true}],"requires":1},"Integrations Product":{"conditions":[{"label":"New Datasource","type":"hasLabel","value":true},{"label":"Firestore","type":"hasLabel","value":true},{"label":"Google Sheets","type":"hasLabel","value":true},{"label":"Mongo","type":"hasLabel","value":true},{"label":"Redshift","type":"hasLabel","value":true},{"label":"snowflake","type":"hasLabel","value":true},{"label":"S3","type":"hasLabel","value":true},{"label":"Redis","type":"hasLabel","value":true},{"label":"Postgres","type":"hasLabel","value":true},{"label":"GraphQL Plugin","type":"hasLabel","value":true},{"label":"ArangoDB","type":"hasLabel","value":true},{"label":"MsSQL","type":"hasLabel","value":true},{"label":"Elastic Search","type":"hasLabel","value":true},{"label":"OAuth","type":"hasLabel","value":true},{"label":"Airtable","type":"hasLabel","value":true},{"label":"CURL","type":"hasLabel","value":true},{"label":"DynamoDB","type":"hasLabel","value":true},{"label":"Zendesk","type":"hasLabel","value":true},{"label":"Hubspot","type":"hasLabel","value":true},{"label":"Query Forms","type":"hasLabel","value":true},{"label":"Twilio","type":"hasLabel","value":true},{"label":"MySQL","type":"hasLabel","value":true},{"label":"Connection pool","type":"hasLabel","value":true},{"label":"MariaDB","type":"hasLabel","value":true},{"label":"Integrations Pod General","type":"hasLabel","value":true},{"label":"SMTP plugin","type":"hasLabel","value":true},{"label":"Oracle SQL DB","type":"hasLabel","value":true},{"label":"Query filter","type":"hasLabel","value":true},{"label":"Activation - datasources","type":"hasLabel","value":true},{"label":"REST API","type":"hasLabel","value":true},{"label":"REST API","type":"hasLabel","value":true},{"label":"Datasources","type":"hasLabel","value":true},{"label":"REST API plugin","type":"hasLabel","value":true},{"label":"Prepared statements","type":"hasLabel","value":true},{"label":"Query Generation","type":"hasLabel","value":true},{"label":"Core Query Execution","type":"hasLabel","value":true},{"label":"Query Management","type":"hasLabel","value":true},{"label":"Query Settings","type":"hasLabel","value":true},{"label":"Query performance","type":"hasLabel","value":true},{"label":"Datatype issue","type":"hasLabel","value":true},{"label":"SmartSubstitution","type":"hasLabel","value":true},{"label":"Suggested Widgets","type":"hasLabel","value":true},{"label":"SAAS Plugins","type":"hasLabel","value":true},{"label":"Reconnect DS modal","type":"hasLabel","value":true},{"label":"OnPageLoad","type":"hasLabel","value":true},{"label":"File upload issues","type":"hasLabel","value":true},{"label":"AI","type":"hasLabel","value":true},{"label":"Appsmith AI","type":"hasLabel","value":true},{"label":"Database Schema","type":"hasLabel","value":true}],"requires":1},"Identity & Authentication Product":{"conditions":[{"label":"Login / Signup","type":"hasLabel","value":true},{"label":"SSO","type":"hasLabel","value":true},{"label":"SCIM","type":"hasLabel","value":true},{"label":"Email verification","type":"hasLabel","value":true}],"requires":1},"Artifact Platform Product":{"conditions":[{"label":"Fork App","type":"hasLabel","value":true},{"label":"Publish App","type":"hasLabel","value":true},{"label":"Secret Management","type":"hasLabel","value":true},{"label":"Import-Export-App","type":"hasLabel","value":true}],"requires":1},"DevOps Pod":{"conditions":[{"label":"Docker","type":"hasLabel","value":true},{"label":"Super Admin","type":"hasLabel","value":true},{"label":"Deployment","type":"hasLabel","value":true},{"label":"K8s","type":"hasLabel","value":true},{"label":"Email Config","type":"hasLabel","value":true},{"label":"Backup & Restore","type":"hasLabel","value":true},{"label":"AWS AMI","type":"hasLabel","value":true},{"label":"Observability","type":"hasLabel","value":true},{"label":"Heroku","type":"hasLabel","value":true},{"label":"New Deployment Mode","type":"hasLabel","value":true},{"label":"Supervisor","type":"hasLabel","value":true},{"label":"Deployment Certificates","type":"hasLabel","value":true},{"label":"Mock Data","type":"hasLabel","value":true},{"label":"AWS ECS","type":"hasLabel","value":true},{"label":"Ingress","type":"hasLabel","value":true},{"label":"Nginx","type":"hasLabel","value":true},{"label":"Setup Issues","type":"hasLabel","value":true}],"requires":1},"Performance Pod":{"conditions":[{"label":"Performance","type":"hasLabel","value":true},{"label":"Performance infra","type":"hasLabel","value":true}],"requires":1},"IDE Pod":{"conditions":[{"label":"Telemetry","type":"hasLabel","value":true},{"label":"i18n","type":"hasLabel","value":true},{"label":"IDE Product","type":"hasLabel","value":true},{"label":"App setting","type":"hasLabel","value":true},{"label":"Debugger Product","type":"hasLabel","value":true},{"label":"Embedding Apps Product","type":"hasLabel","value":true}],"requires":1},"Platform Administration Pod":{"conditions":[{"label":"Airgap","type":"hasLabel","value":true},{"label":"Enterprise Edition","type":"hasLabel","value":true},{"label":"Invite flow","type":"hasLabel","value":true},{"label":"User Profile","type":"hasLabel","value":true},{"label":"User Session ","type":"hasLabel","value":true},{"label":"User Session","type":"hasLabel","value":true},{"label":"Admin Settings Product","type":"hasLabel","value":true},{"label":"RBAC Product","type":"hasLabel","value":true},{"label":"Workspace Product","type":"hasLabel","value":true},{"label":"Branding Product","type":"hasLabel","value":true},{"label":"Audit Logs Product","type":"hasLabel","value":true},{"label":"Identity & Authentication Product","type":"hasLabel","value":true},{"label":"Billing & Licensing Product","type":"hasLabel","value":true},{"label":"Move to Postgres","type":"hasLabel","value":true}],"requires":1},"DB Infrastructure Pod":{"conditions":[],"requires":1},"Widgets & Accelerators Pod":{"conditions":[{"label":"Accelerators Product","type":"hasLabel","value":true},{"label":"Templates Product","type":"hasLabel","value":true},{"label":"Widgets Product","type":"hasLabel","value":true},{"label":"App Theming Product","type":"hasLabel","value":true}],"requires":1},"Packages Pod":{"conditions":[{"label":"Module creator","type":"hasLabel","value":true},{"label":"Module consumer","type":"hasLabel","value":true},{"label":"Package versioning","type":"hasLabel","value":true},{"label":"Convert to module","type":"hasLabel","value":true},{"label":"Query module","type":"hasLabel","value":true},{"label":"JS module","type":"hasLabel","value":true},{"label":"UI module","type":"hasLabel","value":true},{"label":"Packages Pod","type":"hasLabel","value":true}],"requires":1},"Workflows Pod":{"conditions":[{"label":"Workflows Product","type":"hasLabel","value":true}],"requires":1},"Query & JS Pod":{"conditions":[{"label":"Javascript Product","type":"hasLabel","value":true},{"label":"Onboarding Product","type":"hasLabel","value":true},{"label":"Integrations Product","type":"hasLabel","value":true},{"label":"Reconfigure Datasource Modal","type":"hasLabel","value":true}],"requires":1},"QA Pod":{"conditions":[{"label":"Automation Test","type":"hasLabel","value":true},{"label":"TestGap","type":"hasLabel","value":true},{"label":"Automation failures","type":"hasLabel","value":true},{"label":"Needs automation","type":"hasLabel","value":true},{"label":"cypress-flaky-fix","type":"hasLabel","value":true},{"label":"Cypress flaky tests","type":"hasLabel","value":true},{"label":"Cypress","type":"hasLabel","value":true}],"requires":1},"Anvil POD":{"conditions":[{"label":"Checkbox Component","type":"hasLabel","value":true},{"label":"WDS team","type":"hasLabel","value":true},{"label":"Anvil POD","type":"hasLabel","value":true},{"label":"WDS - all widgets","type":"hasLabel","value":true},{"label":"WDS - input widget","type":"hasLabel","value":true},{"label":"WDS - paragraph widget","type":"hasLabel","value":true},{"label":"WDS - statbox widget","type":"hasLabel","value":true},{"label":"WDS - modal widget","type":"hasLabel","value":true},{"label":"WDS - icon widget","type":"hasLabel","value":true},{"label":"WDS - checkbox widget","type":"hasLabel","value":true},{"label":"WDS - table widget","type":"hasLabel","value":true},{"label":"WDS - keyValue widget","type":"hasLabel","value":true},{"label":"WDS - switch group widget","type":"hasLabel","value":true},{"label":"WDS - theming","type":"hasLabel","value":true},{"label":"Anvil layout","type":"hasLabel","value":true},{"label":"Anvil - theming","type":"hasLabel","value":true},{"label":"Anvil - vertical alignment","type":"hasLabel","value":true},{"label":"Anvil - layout component","type":"hasLabel","value":true},{"label":"Anvil - drag & drop","type":"hasLabel","value":true},{"label":"Anvil - zones & sections","type":"hasLabel","value":true},{"label":"Anvil - copy paste experience","type":"hasLabel","value":true},{"label":"WDS - phone widget","type":"hasLabel","value":true},{"label":"WDS - responsive widget","type":"hasLabel","value":true},{"label":"Anvil - responsive viewport","type":"hasLabel","value":true},{"label":"WDS - widget styling","type":"hasLabel","value":true},{"label":"Anvil - spacing","type":"hasLabel","value":true},{"label":"Anvil - responsive canvas","type":"hasLabel","value":true},{"label":"WDS - inline button widget","type":"hasLabel","value":true},{"label":"Anvil team","type":"hasLabel","value":true}],"requires":1},"Activation Pod":{"conditions":[{"label":"Activation","type":"hasLabel","value":true}],"requires":1},"Stability Pod":{"conditions":[{"label":"Stability Issue","type":"hasLabel","value":true}],"requires":1},"Documentation Pod":{"conditions":[{"label":"Documentation","type":"hasLabel","value":true}],"requires":1},"Packages & Git Pod":{"conditions":[{"label":"Packages Pod","type":"hasLabel","value":true},{"label":"Git Product","type":"hasLabel","value":true},{"label":"Packages Product","type":"hasLabel","value":true},{"label":"Git Platform","type":"hasLabel","value":true}],"requires":1},"Git Platform":{"conditions":[{"label":"Environments Product","type":"hasLabel","value":true},{"label":"Artifact Platform Product","type":"hasLabel","value":true}],"requires":1}}},"root":"."}],"labels":{"Tab Widget":{"color":"e2c76c","name":"Tab Widget","description":""},"Dont merge":{"color":"ADB39C","name":"Dont merge","description":""},"Epic":{"color":"3E4B9E","name":"Epic","description":"A zenhub epic that describes a project"},"Menu Button Widget":{"color":"235708","name":"Menu Button Widget","description":"Issues related to Menu Button widget"},"Checkbox Group widget":{"color":"bbeecd","name":"Checkbox Group widget","description":"Issues related to Checkbox Group Widget"},"Input Widget":{"color":"ae65d8","name":"Input Widget","description":""},"Security":{"color":"99139C","name":"Security","description":""},"QA":{"color":"748fda","name":"QA","description":"Needs QA attention"},"Verified":{"color":"9bf416","name":"Verified","description":""},"Wont Fix":{"color":"ffffff","name":"Wont Fix","description":"This will not be worked on"},"MySQL":{"color":"c9ddc6","name":"MySQL","description":"Issues related to MySQL plugin"},"Development":{"color":"9F8A02","name":"Development","description":""},"Help Wanted":{"color":"008672","name":"Help Wanted","description":"Extra attention is needed"},"Home Page":{"color":"","name":"Home Page","description":"Issues related to the application home page"},"Rating Widget":{"color":"235708","name":"Rating Widget","description":"Issues related to the rating widget"},"Stat Box Widget":{"color":"f1c9ce","name":"Stat Box Widget","description":"Issues related to stat box"},"Enhancement":{"color":"a2eeef","name":"Enhancement","description":"New feature or request"},"Fork App":{"color":"af87c7","name":"Fork App","description":"Issues related to forking apps"},"Container Widget":{"color":"19AD0D","name":"Container Widget","description":"Container widget"},"Papercut":{"color":"B562F6","name":"Papercut","description":""},"Needs Design":{"color":"bfd4f2","name":"Needs Design","description":"needs design or changes to design"},"i18n":{"color":"1799b0","name":"i18n","description":"Represents issues that need to be tackled to handle internationalization"},"Rich Text Editor Widget":{"color":"f72cac","name":"Rich Text Editor Widget","description":""},"skip-changelog":{"color":"06086F","name":"skip-changelog","description":"Adding this label to a PR prevents it from being listed in the changelog"},"Low":{"color":"79e53b","name":"Low","description":"An issue that is neither critical nor breaks a user flow"},"potential-duplicate":{"color":"d3cb2e","name":"potential-duplicate","description":"This label marks issues that are potential duplicates of already open issues"},"Audio Widget":{"color":"447B9A","name":"Audio Widget","description":"Issues related to Audio Widget"},"Firestore":{"color":"8078b0","name":"Firestore","description":"Issues related to the firestore Integration"},"New Widget":{"color":"be4cf2","name":"New Widget","description":"A request for a new widget"},"Modal Widget":{"color":"03846f","name":"Modal Widget","description":""},"UX Improvement":{"color":"f4a089","name":"UX Improvement","description":""},"S3":{"color":"8078b0","name":"S3","description":"Issues related to the S3 plugin"},"Release Blocker":{"color":"5756bf","name":"Release Blocker","description":"This issue must be resolved before the release"},"safari":{"color":"51C6AA","name":"safari","description":"Bugs seen on safari browser"},"Example Apps":{"color":"1799b0","name":"Example Apps","description":"Example apps created for new signups"},"MultiSelect Widget":{"color":"AB62D4","name":"MultiSelect Widget","description":"Issues related to MultiSelect Widget"},"Calendar Widget":{"color":"8c6644","name":"Calendar Widget","description":""},"Website":{"color":"151720","name":"Website","description":"Related to www.appsmith.com website"},"Low effort":{"color":"8B59F0","name":"Low effort","description":"Something that'll take a few days to build"},"Checkbox Widget":{"color":"bbeecd","name":"Checkbox Widget","description":""},"Spam":{"color":"620faf","name":"Spam","description":""},"Voice Recorder Widget":{"color":"85bc87","name":"Voice Recorder Widget","description":""},"Select Widget":{"color":"0c669e","name":"Select Widget","description":"Select or dropdown widget"},"Bug":{"color":"8ba6fd","name":"Bug","description":"Something isn't right"},"Widget Validation":{"color":"6990BC","name":"Widget Validation","description":"Issues related to widget property validation"},"Generate Page":{"color":"2b4664","name":"Generate Page","description":"Issures related to page generation"},"File Picker Widget":{"color":"6ae4f2","name":"File Picker Widget","description":""},"snowflake":{"color":"8078b0","name":"snowflake","description":"Issues related to the snowflake Integration"},"Automation":{"color":"CCAF60","name":"Automation","description":""},"hotfix":{"color":"BA3F1D","name":"hotfix","description":""},"Import-Export-App":{"color":"48883f","name":"Import-Export-App","description":"Issues related to importing and exporting apps"},"High effort":{"color":"A7E87B","name":"High effort","description":"Something that'll take more than a month to build"},"Telemetry":{"color":"bc70f9","name":"Telemetry","description":"Issues related to instrumenting appsmith"},"Radio Widget":{"color":"91ef15","name":"Radio Widget","description":""},"Omnibar":{"color":"1bb96a","name":"Omnibar","description":"Issues related to the omnibar for navigation"},"Button Widget":{"color":"34efae","name":"Button Widget","description":""},"Switch widget":{"color":"33A8CE","name":"Switch widget","description":"The switch widget"},"Map Widget":{"color":"7eef7a","name":"Map Widget","description":""},"Task":{"color":"085630","name":"Task","description":"A simple Todo"},"Design System":{"color":"2958a4","name":"Design System","description":"Design system"},"opera":{"color":"C63F5B","name":"opera","description":"Any issues identified on the opera browser"},"Login / Signup":{"color":"","name":"Login / Signup","description":"Authentication flows"},"Image Widget":{"color":"8de8ad","name":"Image Widget","description":""},"firefox":{"color":"6d56e2","name":"firefox","description":""},"Property Pane":{"color":"b356ff","name":"Property Pane","description":"Issues related to the behaviour of the property pane"},"Deployment":{"color":"93491f","name":"Deployment","description":"Installation process of appsmith"},"Production":{"color":"b60205","name":"Production","description":""},"Dependencies":{"color":"0366d6","name":"Dependencies","description":"Pull requests that update a dependency file"},"Google Sheets":{"color":"8078b0","name":"Google Sheets","description":"Issues related to Google Sheets"},"Icon Button Widget":{"color":"D319CE","name":"Icon Button Widget","description":"Issues related to the icon button widget"},"Mongo":{"color":"8078b0","name":"Mongo","description":"Issues related to Mongo DB plugin"},"Documentation":{"color":"a8dff7","name":"Documentation","description":"Improvements or additions to documentation"},"TestGap":{"color":"","name":"TestGap","description":"Issues identified for test plan improvement"},"keyboard shortcut":{"color":"0688B6","name":"keyboard shortcut","description":""},"Reopen":{"color":"897548","name":"Reopen","description":""},"Redshift":{"color":"8078b0","name":"Redshift","description":"Issues related to the redshift integration"},"Date Picker Widget":{"color":"ef1ce1","name":"Date Picker Widget","description":""},"Entity Explorer":{"color":"1bb96a","name":"Entity Explorer","description":"Issues related to navigation using the entity explorer"},"JS Linting & Errors":{"color":"E56AA5","name":"JS Linting & Errors","description":"Issues related to JS Linting and errors"},"iFrame":{"color":"3CD1DB","name":"iFrame","description":"Issues related to iFrame"},"Stale":{"color":"ededed","name":"Stale","description":null},"Text Widget":{"color":"d130d1","name":"Text Widget","description":""},"Video Widget":{"color":"23dd4b","name":"Video Widget","description":""},"Datasources":{"color":"3d590f","name":"Datasources","description":"Issues related to configuring datasource on appsmith"},"error":{"color":"B66773","name":"error","description":"All issues connected to error messages"},"Form Widget":{"color":"09ed77","name":"Form Widget","description":""},"Needs Triaging":{"color":"e8b851","name":"Needs Triaging","description":"Needs attention from maintainers to triage"},"Autocomplete":{"color":"235708","name":"Autocomplete","description":"Issues related to the autocomplete"},"hacktoberfest":{"color":"0052cc","name":"hacktoberfest","description":"All issues that can be solved by the community during Hacktoberfest"},"Medium effort":{"color":"D31156","name":"Medium effort","description":"Something that'll take more than a week but less than a month to build"},"Release":{"color":"57e5e0","name":"Release","description":""},"High":{"color":"c94d14","name":"High","description":"This issue blocks a user from building or impacts a lot of users"},"UI Performance":{"color":"1799b0","name":"UI Performance","description":"Issues related to UI performance"},"Deploy Preview":{"color":"bfdadc","name":"Deploy Preview","description":"Issues found in Deploy Preview"},"Needs Tests":{"color":"8ee263","name":"Needs Tests","description":"Needs automated tests to assert a feature/bug fix"},"Refactor":{"color":"B96662","name":"Refactor","description":"needs refactoring of code"},"Divider Widget":{"color":"235708","name":"Divider Widget","description":"Issues related to the divider widget"},"Table Widget":{"color":"2eead1","name":"Table Widget","description":""},"Needs More Info":{"color":"e54c10","name":"Needs More Info","description":"Needs additional information"},"Good First Issue":{"color":"7057ff","name":"Good First Issue","description":"Good for newcomers"},"UI Improvement":{"color":"9aeef4","name":"UI Improvement","description":""},"Backend":{"color":"d4c5f9","name":"Backend","description":"This marks the issue or pull request to reference server code"},"Frontend":{"color":"87c7f2","name":"Frontend","description":"This label marks the issue or pull request to reference client code"},"Chart Widget":{"color":"616ecc","name":"Chart Widget","description":""},"List Widget":{"color":"8508A0","name":"List Widget","description":"Issues related to the list widget"},"Duplicate":{"color":"cfd3d7","name":"Duplicate","description":"This issue or pull request already exists"},"JS Snippets":{"color":"8d62d2","name":"JS Snippets","description":"issues related to JS Snippets"},"Copy Paste":{"name":"Copy Paste","description":"Issues related to copy paste","color":"b4f0a9"},"Drag & Drop":{"name":"Drag & Drop","description":"Issues related to the drag & drop experience","color":"92115a"},"Sniping Mode":{"name":"Sniping Mode","description":"Issues related to sniping mode","color":"48883f"},"Redis":{"name":"Redis","description":"Issues related to Redis","color":"8078b0"},"New Datasource":{"color":"60b14c","name":"New Datasource","description":"Requests for new datasources"},"Evaluated Value":{"name":"Evaluated Value","description":"Issues related to evaluated values","color":"39f6e7"},"Undo/Redo":{"name":"Undo/Redo","description":"Issues related to undo/redo","color":"f25880"},"App Navigation":{"name":"App Navigation","description":"Issues related to the topbar navigation and configuring it","color":"4773ab"},"Widgets Pane":{"name":"Widgets Pane","description":"Issues related to the discovery and organisation of widgets","color":"ad5d78"},"View Mode":{"color":"1799b0","name":"View Mode","description":"Issues related to the view mode"},"Content":{"name":"Content","description":"For content related topics i.e blogs, templates, videos","color":"a8dff7"},"Slash Command":{"name":"Slash Command","description":"Issues related to the slash command","color":"a0608e"},"Widget Property":{"name":"Widget Property","description":"Issues related to adding / modifying widget properties across widgets","color":"5e92cb"},"Windows":{"name":"Windows","description":"Issues related exclusively to Windows systems","color":"b4cb8a"},"Old App Issues":{"name":"Old App Issues","description":"Issues related to apps old apps a few weeks old and app issues in stale browser session","color":"87ab18"},"Document Viewer Widget":{"name":"Document Viewer Widget","description":"Issues related to Document Viewer Widget","color":"899d4b"},"Radio Group Widget":{"name":"Radio Group Widget","description":"Issues related to radio group widget","color":"b68495"},"Super Admin":{"name":"Super Admin","description":"Issues related to the super admin page","color":"aa95cf"},"Postgres":{"name":"Postgres","description":"Postgres related issues","color":"8078b0"},"New JS Function":{"name":"New JS Function","description":"Issues related to adding a JS Function","color":"8e8aa4"},"Cannot Reproduce Issue":{"color":"93c9cc","name":"Cannot Reproduce Issue","description":"Issues that cannot be reproduced"},"Widget Grouping":{"name":"Widget Grouping","description":"Issues related to Widget Grouping","color":"a49951"},"K8s":{"name":"K8s","description":"Kubernetes related issues","color":"5f318a"},"Docker":{"name":"Docker","description":"Issues related to docker","color":"89b808"},"Camera Widget":{"name":"Camera Widget","description":"Issues and enhancements related to camera widget","color":"e6038e"},"SAAS Plugins":{"name":"SAAS Plugins","description":"Issues related to SAAS Plugins","color":"80e18f"},"JS Promises":{"name":"JS Promises","description":"Issues related to promises","color":"d7771f"},"OnPageLoad":{"name":"OnPageLoad","description":"OnPageLoad issues on functions and queries","color":"2b4664"},"JS Usability":{"name":"JS Usability","description":"usability issues with JS editor and JS elsewhere","color":"a302b0"},"Currency Input Widget":{"name":"Currency Input Widget","description":"Issues related to currency input widget","color":"b2164f"},"TreeSelect":{"name":"TreeSelect","description":"Issues related to TreeSelect Widget","color":"a1633e"},"MultiTree Select Widget":{"name":"MultiTree Select Widget","description":"Issues related to MultiTree Select Widget","color":"a1633e"},"Welcome Screen":{"name":"Welcome Screen","description":"Issues related to the welcome screen","color":"48883f"},"Realtime Commenting":{"color":"a70b86","name":"Realtime Commenting","description":"In-app communication between teams"},"Phone Input Widget":{"name":"Phone Input Widget","description":"Issues related to the Phone Input widget","color":"a70b86"},"JSON Form":{"name":"JSON Form","description":"Issue / features related to the JSON form wiget","color":"46b209"},"All Widgets":{"name":"All Widgets","description":"Issues related to all widgets","color":"972b36"},"V1":{"name":"V1","description":"V1","color":"67ab2e"},"Reflow & Resize":{"name":"Reflow & Resize","description":"All issues related to reflow and resize experience","color":"748a13"},"SSO":{"name":"SSO","description":"Issues, requests and enhancements around Single sign-on.","color":""},"Multi User Realtime":{"name":"Multi User Realtime","description":"Issues related to multiple users using or editing an application","color":"e7b6ce"},"Ready for design":{"name":"Ready for design","description":"this issue is ready for design: it contains clear problem statements and other required information","color":"ebf442"},"Support":{"name":"Support","description":"Issues created by the A-force team to address user queries","color":"1740f3"},"Button Group widget":{"name":"Button Group widget","description":"Issue and enhancements related to the button group widget","color":"f17025"},"GraphQL Plugin":{"name":"GraphQL Plugin","description":"Issues related to GraphQL plugin","color":"8078b0"},"DevOps Pod":{"name":"DevOps Pod","description":"Issues related to devops","color":"d956c7"},"medium":{"name":"medium","description":"Issues that frustrate users due to poor UX","color":"23dfd9"},"ArangoDB":{"name":"ArangoDB","description":"Issues related to arangoDB","color":"8078b0"},"Code Refactoring":{"name":"Code Refactoring","description":"Issues related to code refactoring","color":"76310e"},"Progress bar widget":{"name":"Progress bar widget","description":"To track issues related to progress bar","color":"2d7abf"},"Audio Recorder Widget":{"name":"Audio Recorder Widget","description":"Issues related to Audio Recorder Widget","color":"9accef"},"Airtable":{"name":"Airtable","description":"Issues for Airtable","color":"60885f"},"Canvas / Grid":{"name":"Canvas / Grid","description":"Issues related to the canvas","color":"16b092"},"Email Config":{"name":"Email Config","description":"Issues related to configuring the email service","color":"2a21d1"},"CURL":{"name":"CURL","description":"Issues related to CURL impor","color":"60885f"},"Canvas Zooms":{"name":"Canvas Zooms","description":"Issues related to zooming the canvas","color":"e6038e"},"business":{"name":"business","description":"Features that will be a part of our business edition","color":"cd59eb"},"Action Pod":{"name":"Action Pod","description":"","color":"ee2e36"},"AutomationGap1":{"color":"a5e07c","name":"AutomationGap1","description":"Issues that needs automated tests"},"A-Force11":{"name":"A-Force11","description":"Issues raised by A-Force team","color":"d667b6"},"Business Edition":{"name":"Business Edition","description":"Features that will be a part of our business edition","color":"89bb6c"},"storeValue":{"name":"storeValue","description":"Issues related to the store value function","color":"5d3e66"},"DynamoDB":{"name":"DynamoDB","description":"Issues that are related to DynamoDB should have this label","color":"60885f"},"Backup & Restore":{"name":"Backup & Restore","description":"Issues related to backup and restore","color":"86874d"},"Billing":{"name":"Billing","description":"Billing infrastructure and flows for Business Edition and Trial users","color":"d2bc40"},"Datatype issue":{"name":"Datatype issue","description":"Issues that have risen because data types weren't handled","color":"cef66b"},"OAuth":{"name":"OAuth","description":"OAuth related bugs or features","color":"60885f"},"Table Widget V2":{"name":"Table Widget V2","description":"Issues related to Table Widget V2","color":"3a7192"},"IDE Navigation":{"name":"IDE Navigation","description":"Issues/feature requests related to IDE navigation, and context switching","color":"1bb96a"},"Query performance":{"name":"Query performance","description":"Issues that have to do with lack in performance of query execution","color":"cef66b"},"SAAS Manager App":{"name":"SAAS Manager App","description":"Issues with the SAAS manager app","color":"d427db"},"Twilio":{"name":"Twilio","description":"Issues related to Twilio integration","color":"23ba8d"},"Hubspot":{"name":"Hubspot","description":"Issues related to Hubspot integration","color":"60885f"},"Zendesk":{"name":"Zendesk","description":"Issues related to Zendesk integration","color":"60885f"},"Entity Refactor":{"name":"Entity Refactor","description":"Issues related to refactor logic","color":"705a2c"},"Map Chart Widget":{"name":"Map Chart Widget","description":"Issues related to Map Chart Widgets","color":"c8397f"},"Product Catchup":{"name":"Product Catchup","description":"Issues created in the product catchup","color":"29cd2c"},"Framework Functions":{"name":"Framework Functions","description":"Issues related to internal functions like showAlert(), navigateTo() etc...","color":"c25a09"},"Frontend Libraries Upgrade":{"name":"Frontend Libraries Upgrade","description":"Issues related to frontend libraries upgrade","color":"ede1fc"},"MsSQL":{"name":"MsSQL","description":"Issues related to MsSQL plugin","color":"8078b0"},"Elastic Search":{"name":"Elastic Search","description":"Issues related to the elastic search datasource","color":"8078b0"},"Core Query Execution":{"color":"cef66b","name":"Core Query Execution","description":"Issues related to the execution of all queries"},"Query Management":{"name":"Query Management","description":"Issues related to the CRUD of actions or queries","color":"cef66b"},"Query Settings":{"name":"Query Settings","description":"Issues related to the settings of all queries","color":"cef66b"},"Code Editor":{"name":"Code Editor","description":"Issues related to the code editor","color":"4ca16e"},"Query Forms":{"color":"12b253","name":"Query Forms","description":"Isuses related to the query forms"},"JS Objects":{"color":"22962c","name":"JS Objects","description":"Issues related to JS Objects"},"JS Evaluation":{"color":"22962c","name":"JS Evaluation","description":"Issues related to JS evaluation on the platform"},"SmartSubstitution":{"name":"SmartSubstitution","description":"Issues related to Smart substitution of mustache bindings in queries","color":"bae511"},"Query Generation":{"name":"Query Generation","description":"Issues related to query generation","color":"cef66b"},"Suggested Widgets":{"name":"Suggested Widgets","description":"Issues related to suggesting widgets based on query response","color":"6ac063"},"Code Scanner Widget":{"name":"Code Scanner Widget","description":"Issues related to code scanner widget","color":"9bc1a0"},"Clean URLs":{"name":"Clean URLs","description":"Issues related to clean URLs epic","color":"112623"},"Widget keyboard accessibility":{"name":"Widget keyboard accessibility","description":"All issues related to keyboard accessibility in widgets","color":"b626fd"},"Connection pool":{"name":"Connection pool","description":"issues to do with connection pooling of various plugins","color":"94fe36"},"List Widget V2":{"name":"List Widget V2","description":"Issues related to the list widget v2","color":"adaaf7"},"Auto Height":{"name":"Auto Height","description":"Issues related to dynamic height of widgets","color":"5149cf"},"cypress_failed_test":{"name":"cypress_failed_test","description":"Cypress failed tests","color":"4745d5"},"Needs validation":{"name":"Needs validation","description":"Needs problem validation before being picked up","color":"66673d"},"Slider Widget":{"name":"Slider Widget","description":"Issues raised for slider widgets.","color":"2eef5f"},"Multitenancy":{"name":"Multitenancy","description":"Support multitenancy within single appsmith instance","color":"8c49a9"},"Conversion Algorithm":{"name":"Conversion Algorithm","description":"All issue related to converting app from fixed to flex mode & vice versa","color":"d12d2e"},"Browser specific":{"name":"Browser specific","description":"All issue related to browser","color":"d12d2e"},"Performance infra":{"name":"Performance infra","description":"all issue related to the performance infra","color":"8a60f6"},"DSL Update":{"name":"DSL Update","description":"Issues related to storing and updating the DSL","color":"e16cf3"},"AST-frontend":{"name":"AST-frontend","description":"Issues related to maintaining AST logic","color":"2b4664"},"AST-backend":{"name":"AST-backend","description":"Backend issues related to AST parsing","color":"48883f"},"MariaDB":{"name":"MariaDB","description":"MariaDB datasource","color":"8428c3"},"ADS Component Issue":{"name":"ADS Component Issue","description":"Issues which are caused due to ADS components","color":"d89119"},"Regressed":{"color":"723fd0","name":"Regressed","description":"Scenarios that were working before but have now regressed"},"Needs RCA":{"name":"Needs RCA","description":"a critical or high priority issue that needs an RCA","color":"2cc68f"},"Custom JS Libraries":{"name":"Custom JS Libraries","description":"Issues related to adding custom JS library","color":"bacb6d"},"Integrations Pod General":{"name":"Integrations Pod General","description":"Issues related to the Integrations Pod that don't fit into other tags.","color":"287823"},"Performance Pod":{"name":"Performance Pod","description":"All things related to Appsmith performance","color":"b5a25d"},"Performance":{"name":"Performance","description":"Issues related to performance","color":"9a18d7"},"File upload issues":{"name":"File upload issues","description":"Issues related to uploading any type of files from within Appsmith","color":"2b4664"},"Action Selector":{"name":"Action Selector","description":"Issues related to action selector on the property pane","color":"2f9e20"},"Community Reported":{"name":"Community Reported","description":"issues reported by community members","color":"1402e5"},"JS Function execution":{"name":"JS Function execution","description":"JS function execution","color":"7c2de1"},"Self Serve":{"name":"Self Serve","description":"For all issues related to self-serve flow for business edition","color":"4dacfc"},"Self Serve 1.0":{"name":"Self Serve 1.0","description":"For all issues related to v1 of the self serve project","color":"ae839e"},"Customer Portal":{"name":"Customer Portal","description":"For all tasks/issues pertaining to customer.appsmith.com","color":"d2bc40"},"Cloud Services":{"name":"Cloud Services","description":"For all tasks/issues on Appsmith cloud-services relating to licensing, usage and billing","color":"d2bc40"},"One-click Binding":{"name":"One-click Binding","description":"Issues related to the One click binding epic","color":"f1661c"},"Airgap":{"name":"Airgap","description":"Tickets related to supporting air-gapped Appsmith instances","color":"1cb294"},"SMTP plugin":{"name":"SMTP plugin","description":"Issues related to SMTP plugin","color":"541457"},"AWS AMI":{"name":"AWS AMI","description":"Issues Related to AWS AMI","color":"b44680"},"Old widget version":{"name":"Old widget version","description":"Use this label to raise issue specific only to an older version of a widget","color":"ff3814"},"Enterprise Billing":{"name":"Enterprise Billing","description":"To track all tasks/issues related to licensing & billing for enterprise customers","color":"14c156"},"Oracle SQL DB":{"name":"Oracle SQL DB","description":"Issues related to the Oracle plugin","color":"cbabcb"},"Community Contributor":{"name":"Community Contributor","description":"Meant to track issues that are assigned to external contributors","color":"149ab6"},"widget vertical alignment":{"name":"widget vertical alignment","description":"All issue related widget vertical alignment on the auto layout canvas","color":"d12d2e"},"Observability":{"name":"Observability","description":"Issues related to observability on the Appsmith instance","color":"dff913"},"Checkbox Component":{"name":"Checkbox Component","description":"This labels deals with checkbox component in wds package","color":"75a401"},"Analytics Improvements":{"name":"Analytics Improvements","description":"For all tasks focused on improving our overall analytics and fixing any issues ","color":"29b8ed"},"WDS team":{"name":"WDS team","description":"","color":"8d675a"},"Enterprise Edition":{"name":"Enterprise Edition","description":"Features that will be supported in Enterprise Edition only","color":"984f5e"},"Query filter":{"name":"Query filter","description":"Issues related to query filtering, e.g., WHERE clause","color":"a15134"},"Keyboard accessibility ":{"name":"Keyboard accessibility ","description":"All issue related to ADS component keyboard accessibility","color":"2ba696"},"Toggle button":{"name":"Toggle button","description":"All issue related to ADS toggle button","color":"edc47f"},"SCIM":{"name":"SCIM","description":"Label to collate our SCIM issues","color":"48883f"},"ADS Category Token":{"name":"ADS Category Token","description":"All issues related appsmith design system category tokens","color":"920961"},"ADS Component Documentation":{"name":"ADS Component Documentation","description":"All issues Appsmith design system component documentation","color":"64c46a"},"ADS Migration":{"name":"ADS Migration","description":"All issues related to Appsmith design system migration","color":"b082d6"},"ADS Deduplication ":{"name":"ADS Deduplication ","description":"Replacing component with ADS components","color":"b082d6"},"ADS Revamp":{"name":"ADS Revamp","description":"All issues related to ads revamp. ","color":"b082d6"},"ADS Deduplication":{"name":"ADS Deduplication","description":"Replacing component with ADS components","color":"b082d6"},"ADS Grayscale":{"name":"ADS Grayscale","description":"Support grayscale color changes","color":"b03577"},"ADS Unit Test":{"name":"ADS Unit Test","description":"All issue related ads unit cases ","color":"b082d6"},"ADS Components":{"name":"ADS Components","description":"All issues related ADS components","color":"b082d6"},"Widget Discoverability":{"name":"Widget Discoverability","description":"Issues related to Widget Discoverability","color":"7b55ce"},"Widget setter method":{"name":"Widget setter method","description":"Issues with widget property setters","color":"8dce87"},"License":{"name":"License","description":"For all issues/tasks related to licensing of appsmith-ee edition","color":"90ee98"},"Platformization":{"name":"Platformization","description":"Issues or tasks related to platformization of Appsmith codebase","color":"4e972b"},"Activation - datasources":{"name":"Activation - datasources","description":"issues related to activation projects","color":"7c7ace"},"Partial-import-export":{"name":"Partial-import-export","description":"Label for granular reusability.","color":"717732"},"AI":{"name":"AI","description":"All tasks related to AI","color":"2b4664"},"ADS Typography":{"name":"ADS Typography","description":"All issue related typographical changes","color":"2dbe8d"},"Auto Layout":{"name":"Auto Layout","description":"Issues relates to auto layout","color":"92cf8c"},"Heroku":{"name":"Heroku","description":"Issues related to Heroku","color":"a81b69"},"ADS Visual Styles":{"name":"ADS Visual Styles","description":"All issues related to ADS visual styles","color":"d3da89"},"ADS Component Design":{"name":"ADS Component Design","description":"All issue related to component design","color":"5cc91e"},"Modal Component":{"name":"Modal Component","description":"All issue related to ads modal component","color":"ee63f3"},"App setting":{"name":"App setting","description":"Related to app settings panel within the app","color":"174f98"},"BE instance":{"name":"BE instance","description":"For all issues related to license, billing on BE instance","color":"ae8f98"},"Fixed layout":{"name":"Fixed layout","description":"issues related to fixed layout","color":"b66681"},"Anvil layout":{"name":"Anvil layout","description":"issues related to the new layout system anvil","color":"5e0904"},"New Deployment Mode":{"name":"New Deployment Mode","description":"Support a new mode of deployment","color":"108033"},"Custom widgets":{"name":"Custom widgets","description":"For all issues related to the custom widget project","color":"c9db9c"},"Homepage Experience V2":{"name":"Homepage Experience V2","description":"Label for reporting new tasks and bug fixes related to revamped homepage experience","color":"c55d54"},"Customer Success":{"name":"Customer Success","description":"Issues that the success team cares about","color":"6ccabd"},"Invite flow":{"name":"Invite flow","description":"Invite users flow and any associated actions","color":"881b35"},"Invite users":{"name":"Invite users","description":"Invite users flow and any associated actions","color":""},"Workflows Pod":{"name":"Workflows Pod","description":"Issues that the workflows team owns","color":"446925"},"DailyPromotionBlocker":{"name":"DailyPromotionBlocker","description":"DailyPromotion Blocker","color":"9b2280"},"JS Binding":{"name":"JS Binding","description":"All issues related to the JS Binding experience","color":"422fed"},"REST API":{"name":"REST API","description":"REST API plugin related issues","color":"e3ede5"},"Critical":{"color":"a1e3db","name":"Critical","description":"This issue breaks existing apps. Drop everything else to resolve"},"Module creator":{"name":"Module creator","description":"Issues related to the module creator side","color":"bb2c05"},"Module consumer":{"name":"Module consumer","description":"Issues related to the module consumer side","color":"83d3c5"},"Package versioning":{"name":"Package versioning","description":"ISsues related to how we manage versions for packages","color":"4c5218"},"Convert to module":{"name":"Convert to module","description":"Issues related to the module creation flow using conversion","color":"4c5218"},"Query module":{"name":"Query module","description":"Issues affecting query modules or its instances","color":"b11a7e"},"JS module":{"name":"JS module","description":"Issues affecting JS modules or its instances","color":"bf76f6"},"Secret Management":{"name":"Secret Management","description":"Issues related to secret management","color":"2b4664"},"REST API plugin":{"name":"REST API plugin","description":"REST API plugin related issues","color":"b5948a"},"UI module":{"name":"UI module","description":"Issues affecting UI modules or its instances","color":"d2acee"},"Preview mode":{"name":"Preview mode","description":"Issues related to app previews","color":"48883f"},"Git Auto-commit":{"name":"Git Auto-commit","description":"Issues related to autocommit","color":"717732"},"QA Pod":{"name":"QA Pod","description":"Issues under the QA Pod","color":"717732"},"Automation Test":{"name":"Automation Test","description":"","color":""},"Automation failures":{"name":"Automation failures","description":"","color":""},"Needs automation":{"name":"Needs automation","description":"Issues that needs automated tests","color":""},"Prepared statements":{"name":"Prepared statements","description":"Issues related to prepared statement flow","color":""},"Switch Group Widget":{"name":"Switch Group Widget","description":"Issues related to Switch group Widget","color":""},"Supervisor":{"name":"Supervisor","description":"Issues related to supervisor","color":"2c5813"},"Deployment Certificates":{"name":"Deployment Certificates","description":"Issues related to lets encrypt","color":"e148aa"},"Mock Data":{"name":"Mock Data","description":"Issues related to mock databases","color":"ebf251"},"AWS ECS":{"name":"AWS ECS","description":"Issues related to ECS Fargate","color":"e506ff"},"Publish App":{"name":"Publish App","description":"Issues related to app deployment","color":"2b4664"},"IDE Infra":{"name":"IDE Infra","description":"Issues related to the IDE infrastructure like saving changes","color":"1bb96a"},"User Profile":{"name":"User Profile","description":"Issues related to a user profile","color":"a60d34"},"Page Management":{"color":"1bb96a","name":"Page Management","description":"Issues related to configuring pages"},"Ingress":{"name":"Ingress","description":"Ingress Controller","color":"a86802"},"Nginx":{"name":"Nginx","description":"Issues related to Nginx","color":"e54195"},"Building blocks":{"name":"Building blocks","description":"Building blocks on cavas, on templates listing or drag and drop of building blocks.","color":"48883f"},"Table Inline Edit":{"name":"Table Inline Edit","description":"Issues related to inline editing","color":"60895a"},"User Session ":{"name":"User Session ","description":"For all issues/tasks related to user sessions","color":"65a3f5"},"WDS - all widgets":{"name":"WDS - all widgets","description":"all widget present in WDS","color":"2670ae"},"WDS - input widget":{"name":"WDS - input widget","description":"Issues related to input widget on WDS","color":"2670ae"},"WDS - paragraph widget":{"name":"WDS - paragraph widget","description":"issues related to paragraph widget on WDS","color":"2670ae"},"WDS - statbox widget":{"name":"WDS - statbox widget","description":"issues related to statbox widget on WDS","color":"2670ae"},"WDS - modal widget":{"name":"WDS - modal widget","description":"Issues related to modal widget on WDS","color":"2670ae"},"WDS - icon widget":{"name":"WDS - icon widget","description":"Issues related to icon widget on WDS","color":"2670ae"},"WDS - checkbox widget":{"name":"WDS - checkbox widget","description":"Issues related to checkbox widget on WDS","color":"2670ae"},"WDS - table widget":{"name":"WDS - table widget","description":"Issues related to table widget on WDS","color":"2670ae"},"WDS - keyValue widget":{"name":"WDS - keyValue widget","description":"Issues related to key-value widget on WDS","color":"2670ae"},"WDS - switch group widget":{"name":"WDS - switch group widget","description":"Issues related to switch group widget on WDS","color":"2670ae"},"WDS - theming":{"name":"WDS - theming","description":"Issues related to theming on the Anvil instance","color":"2670ae"},"Anvil POD":{"name":"Anvil POD","description":"Issue related to Anvil project","color":"5e0904"},"Anvil - theming":{"name":"Anvil - theming","description":"Issues related to theming on the Anvil instance","color":"c28de5"},"Anvil - vertical alignment":{"name":"Anvil - vertical alignment","description":"Issues related to vertical alignment on the Anvil layout","color":"c28de5"},"Anvil - layout component":{"name":"Anvil - layout component","description":"Issues related to layout component on the Anvil layout","color":"c28de5"},"Anvil - drag & drop":{"name":"Anvil - drag & drop","description":"Issues related to drag & drop experience on Anvil","color":"c28de5"},"Anvil - zones & sections":{"name":"Anvil - zones & sections","description":"Issues related to zones and sections on the Anvil layout","color":"c28de5"},"Anvil - copy paste experience":{"name":"Anvil - copy paste experience","description":"Issues related to copy paste experience on the Anvil layout","color":"c28de5"},"WDS - phone widget":{"name":"WDS - phone widget","description":"Issues related to phone widget on WDS","color":"c28de5"},"WDS - responsive widget":{"name":"WDS - responsive widget","description":"All issues related to widget responsiveness","color":"11ee05"},"Anvil - responsive viewport":{"color":"11ee05","name":"Anvil - responsive viewport","description":"Issues seen on different viewports like mobile"},"WDS - widget styling":{"color":"11ee05","name":"WDS - widget styling","description":"all about widget styling"},"Anvil - spacing":{"name":"Anvil - spacing","description":"Related to spacing between widgets in auto layout","color":"11ee05"},"Anvil - responsive canvas":{"name":"Anvil - responsive canvas","description":"All issues related to canvas responsiveness","color":"11ee05"},"WDS - inline button widget":{"name":"WDS - inline button widget","description":"Issues related to inline button widget on WDS","color":"7cef83"},"Activation Pod":{"name":"Activation Pod","description":"for Activation group","color":"d67d00"},"Activation":{"name":"Activation","description":"for Activation group","color":"d67d00"},"Tests":{"name":"Tests","description":"Test issues","color":"4fc7b6"},"Ballpark: XXS":{"name":"Ballpark: XXS","description":"~1xDev in 1/2xSprint","color":""},"Ballpark: XS":{"name":"Ballpark: XS","description":"~1xDev in 1xSprint","color":"53bf71"},"Ballpark: S":{"name":"Ballpark: S","description":"~2xDev in 1xSprint","color":"6e9e65"},"Ballpark: M":{"name":"Ballpark: M","description":"~1xPOD in 1xSprint","color":"2229e6"},"Ballpark: L":{"name":"Ballpark: L","description":"~1xPOD in 3xSprint or 2xPODs in 1xSprint","color":"49962f"},"Ballpark: XL":{"name":"Ballpark: XL","description":"~1xPOD in 1xQuarter or 2xPODs in 2xSprint","color":"b524c9"},"Ballpark: XXL":{"name":"Ballpark: XXL","description":"~2xPODs in 1xQuarter","color":"22092c"},"Auto-commit":{"name":"Auto-commit","description":"Issues related to auto-generated commits showing up on git ","color":"e25b89"},"Continuous Deployment":{"name":"Continuous Deployment","description":"Issues related to CD pipeline on git","color":"aea47c"},"Default branch":{"name":"Default branch","description":"Issues related to using a default branch on git","color":"195737"},"Git status":{"name":"Git status","description":"Issues related to information shown on git status modal or number of changes appearing in a branch","color":"c851b8"},"Git performance":{"name":"Git performance","description":"Issues related to perceived performance on any git operation","color":"189af6"},"Anvil team":{"name":"Anvil team","description":"issues related to the new layout system anvil","color":"798200"},"SDLC":{"name":"SDLC","description":"Issues related to software development lifecycle experiences","color":"bae511"},"Reconnect DS modal":{"name":"Reconnect DS modal","description":"Issues related to reconnect datasource modal post app import","color":"2e398b"},"Stability Pod":{"name":"Stability Pod","description":"For all issues/tasks to be prioritized under Stability pod","color":"86ddf6"},"Stability Issue":{"name":"Stability Issue","description":"Every issue handle by Stability Pod","color":"4d024a"},"Move to Postgres":{"name":"Move to Postgres","description":"Issues required to be solved for the move to Postgres as repository layer","color":"466ab1"},"User Session":{"name":"User Session","description":"Issues related to user sessions","color":"8255e5"},"IDE tabs":{"name":"IDE tabs","description":"query and js tabs","color":"1bb96a"},"Inviting Contribution":{"name":"Inviting Contribution","description":"Issues that we would like contributions to","color":""},"cypress-flaky-fix":{"name":"cypress-flaky-fix","description":"This label is auto-added when a PR which only has Cypress fixes are merged to release","color":"cd8bb6"},"Cypress flaky tests":{"name":"Cypress flaky tests","description":"Test scripts that need to be fixed on Cypress by dev or SDET","color":"cd8bb6"},"Help enterprise":{"name":"Help enterprise","description":"Requested by Appsmith customers or prospects","color":"FF8C00"},"Learnability":{"name":"Learnability","description":"Issues affecting the product learnability, making the product harder for new users.","color":"800c2f"},"ADS Spacing":{"name":"ADS Spacing","description":"","color":"686ebb"},"ads unit test":{"name":"ads unit test","description":"All issue related ads unit cases","color":"686ebb"},"ads revamp":{"name":"ads revamp","description":"All issues related to ads revamp.","color":"686ebb"},"Javascript Product":{"color":"709a21","name":"Javascript Product","description":"Issues related to users writing javascript in appsmith"},"IDE Product":{"color":"1bb96a","name":"IDE Product","description":"Issues related to the IDE Product"},"IDE Pod":{"color":"1bb96a","name":"IDE Pod","description":"Issues that new developers face while exploring the IDE"},"Accelerators Product":{"name":"Accelerators Product","description":"Issues related to app building accelerators","color":"f3fce6"},"Templates Product":{"name":"Templates Product","description":"Issues related to Templates","color":"f3fce6"},"Design System Product":{"name":"Design System Product","description":"Appsmith design system related issues","color":"2b4664"},"ads deduplication":{"name":"ads deduplication","description":"Replacing component with ADS components","color":"708943"},"Admin Settings Product":{"color":"708943","name":"Admin Settings Product","description":"Issues in admin settings pages"},"Appsmith AI":{"name":"Appsmith AI","description":"All issues related to the Appsmith AI datasource","color":"708943"},"Query & JS Pod":{"color":"709a21","name":"Query & JS Pod","description":"Issues related to the query & JS Pod"},"RBAC Product":{"name":"RBAC Product","description":"Issues, requests and enhancements around RBAC.","color":""},"Workspace Product":{"name":"Workspace Product","description":"Issues related to workspaces","color":""},"CE Instance Usage":{"name":"CE Instance Usage","description":"For all issues relating to usage, licensing or billing on the CE instance","color":""},"Billing & Licensing Product":{"name":"Billing & Licensing Product","description":"Issues pertaining to licensing, billing and usage across self serve and enterprise customers","color":"466ab1"},"Platform Administration Pod":{"color":"446925","name":"Platform Administration Pod","description":"Issues related to platform administration & management"},"DB Infrastructure Pod":{"name":"DB Infrastructure Pod","description":"Pod to handle database infrastructure","color":"446925"},"Packages Product":{"name":"Packages Product","description":"Issues related to packages","color":"7e018f"},"Workflows Product":{"name":"Workflows Product","description":"Issues related to the workflows product","color":"446925"},"Debugger Product":{"color":"857f58","name":"Debugger Product","description":"Issues related to the debugger"},"Packages Pod":{"name":"Packages Pod","description":"issues that belong to the packages pod","color":"53742c"},"Environments Product":{"name":"Environments Product","description":"Issues related to datasource environments","color":"857f58"},"Custom Widgets":{"name":"Custom Widgets","description":"For all issues related to the custom widget project","color":"857f58"},"Branding Product":{"name":"Branding Product","description":"All issues under branding and whitelabelling appsmith ecosystem","color":"857f58"},"Widgets & Accelerators Pod":{"name":"Widgets & Accelerators Pod","description":"Issues related to widgets & Accelerators","color":"27496a"},"Widgets Product":{"name":"Widgets Product","description":"This label groups issues related to widgets","color":"f3fce6"},"App Theming Product":{"name":"App Theming Product","description":"Items that are related to the App level theming controls epic","color":"48883f"},"UI Building Product":{"color":"48883f","name":"UI Building Product","description":"Issues related to the UI Building experience"},"Onboarding Product":{"color":"48883f","name":"Onboarding Product","description":"Issues related to onboarding new developers"},"Database Schema":{"name":"Database Schema","description":"Issues related to database schema","color":"48883f"},"Git Product":{"color":"7e018f","name":"Git Product","description":"Issues related to version control product"},"Embedding Apps Product":{"name":"Embedding Apps Product","description":"Issues related to embedding","color":"48883f"},"Integrations Product":{"name":"Integrations Product","description":"Issues related to a specific integration","color":"b9f21c"},"Feature Flagging":{"name":"Feature Flagging","description":"Anything related feature flagging","color":"4574ae"},"Audit Logs Product":{"name":"Audit Logs Product","description":"Audit trails to ensure data security","color":"4574ae"},"Identity & Authentication Product":{"name":"Identity & Authentication Product","description":"Issues related to user identity & authentication","color":"4574ae"},"Email verification":{"name":"Email verification","description":"Email verification issues","color":"4574ae"},"Artifact Platform Product":{"name":"Artifact Platform Product","description":"Issues related to the application platform","color":"4574ae"},"Git IA":{"name":"Git IA","description":"Issues related to Git IA changes","color":"df8bd6"},"Documentation Pod":{"name":"Documentation Pod","description":"Issues related to user education","color":"8c8c02"},"Branch management":{"name":"Branch management","description":"Issues related to using a branch management on git","color":"ebe6af"},"Reconfigure Datasource Modal":{"name":"Reconfigure Datasource Modal","description":"Issues related to reconfigure DS modal that comes after importing applications","color":"5ac17b"},"Setup Issues":{"name":"Setup Issues","description":"Issues related to setting up appsmith","color":"3fc837"},"Packages & Git Pod":{"name":"Packages & Git Pod","description":"All issues belonging to Packages and Git","color":"46ac0e"},"Git Platform":{"name":"Git Platform","description":"Issues related to the git & the app platform","color":"c9ab80"},"Entity Management":{"name":"Entity Management","description":"Copy / Move / Delete widgets / queries / datasources","color":"74c33c"},"Cypress":{"name":"Cypress","description":"Tasks related to Cypress automation","color":"67b83c"},"Query & Widgets Pod":{"name":"Query & Widgets Pod","description":"All issues related to Query, JS, Eval, and Widgets","color":"67c172"}},"success":true} \ No newline at end of file diff --git a/app/client/build.sh b/app/client/build.sh index c42a32a0c366..146c6d355f0c 100755 --- a/app/client/build.sh +++ b/app/client/build.sh @@ -18,6 +18,6 @@ export REACT_APP_SENTRY_RELEASE=$GIT_SHA export REACT_APP_CLIENT_LOG_LEVEL=ERROR # Disable CRA built-in ESLint checks since we have our own config and a separate step for this export DISABLE_ESLINT_PLUGIN=true -craco --max-old-space-size=10240 build --config craco.build.config.js +craco --max-old-space-size=7168 build --config craco.build.config.js echo "build finished" diff --git a/app/client/craco.build.config.js b/app/client/craco.build.config.js index 540c3ea3e438..574a6a5788ad 100644 --- a/app/client/craco.build.config.js +++ b/app/client/craco.build.config.js @@ -38,7 +38,7 @@ plugins.push( }), ); -if (env === "PRODUCTION" || env === "STAGING") { +if (env === "PRODUCTION") { plugins.push( new FaroSourceMapUploaderPlugin({ appId: process.env.REACT_APP_FARO_APP_ID, @@ -53,8 +53,6 @@ if (env === "PRODUCTION" || env === "STAGING") { ); } -plugins.push(new CompressionPlugin()); - plugins.push( new CompressionPlugin({ algorithm: "brotliCompress", @@ -78,17 +76,16 @@ plugins.push( ); module.exports = merge(common, { - webpack: { - configure: { - plugins, + babel: { + plugins: ["babel-plugin-lodash"], + loaderOptions: { + cacheDirectory: false, }, }, - jest: { + webpack: { configure: { - moduleNameMapper: { - // Jest module mapper which will detect our absolute imports. - "^@test(.*)$": "/test$1", - }, + devtool: env === "PRODUCTION" ? "source-map" : false, + plugins, }, }, plugins: [ diff --git a/app/client/craco.common.config.js b/app/client/craco.common.config.js index e1c4c6cf99b0..7840177ca5f8 100644 --- a/app/client/craco.common.config.js +++ b/app/client/craco.common.config.js @@ -4,19 +4,6 @@ const path = require("path"); const webpack = require("webpack"); module.exports = { - devServer: { - client: { - webSocketURL: { - hostname: "127.0.0.1", - pathname: "/ws", - port: 3000, - protocol: "ws", - }, - }, - }, - babel: { - plugins: ["babel-plugin-lodash"], - }, eslint: { enable: false, }, diff --git a/app/client/craco.dev.config.js b/app/client/craco.dev.config.js index 9834c2b38a36..8bf01639ff77 100644 --- a/app/client/craco.dev.config.js +++ b/app/client/craco.dev.config.js @@ -5,23 +5,31 @@ const common = require("./craco.common.config.js"); module.exports = merge(common, { devServer: { client: { + webSocketURL: { + hostname: "127.0.0.1", + pathname: "/ws", + port: 3000, + protocol: "ws", + }, overlay: { warnings: false, errors: false, }, }, }, - optimization: { - minimize: false, - }, - cache: { - type: "filesystem", - memoryCacheUnaffected: true, - }, - experiments: { - cacheUnaffected: true, - }, webpack: { + configure: { + optimization: { + minimize: false, + }, + cache: { + type: "filesystem", + memoryCacheUnaffected: true, + }, + experiments: { + cacheUnaffected: true, + }, + }, plugins: [ new WorkboxPlugin.InjectManifest({ swSrc: "./src/serviceWorker.ts", diff --git a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_DownloadFunctions_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_DownloadFunctions_spec.ts index 9c9687242657..f0ed5f29efd8 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_DownloadFunctions_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_DownloadFunctions_spec.ts @@ -71,7 +71,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -163,7 +162,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -238,7 +236,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -329,7 +326,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -404,7 +400,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -481,7 +476,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -572,7 +566,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -665,7 +658,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, diff --git a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_LocalRemoveValueFunctions_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_LocalRemoveValueFunctions_spec.ts index a3736466d5b6..c096870d7018 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_LocalRemoveValueFunctions_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_LocalRemoveValueFunctions_spec.ts @@ -80,7 +80,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.storeValue()}}`, @@ -93,7 +92,6 @@ describe( EditorNavigation.SelectEntityByName("Button2", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.removeValue()}}`, @@ -164,7 +162,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.removeNonExistentValue()}}`, @@ -233,7 +230,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.removeInvalidKey()}}`, @@ -354,7 +350,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.storeValues()}}`, @@ -367,7 +362,6 @@ describe( EditorNavigation.SelectEntityByName("Button2", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.removeValue1()}}`, @@ -380,7 +374,6 @@ describe( EditorNavigation.SelectEntityByName("Button3", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.removeValue2()}}`, @@ -516,7 +509,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.storeValues()}}`, @@ -529,7 +521,6 @@ describe( EditorNavigation.SelectEntityByName("Button2", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.removeValue1()}}`, @@ -628,7 +619,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.storeTempValue()}}`, @@ -641,7 +631,6 @@ describe( EditorNavigation.SelectEntityByName("Button2", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.removeTempValue()}}`, diff --git a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_LocalStoreValueFunctions_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_LocalStoreValueFunctions_spec.ts index e427948b4c74..05e406eb032e 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_LocalStoreValueFunctions_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_LocalStoreValueFunctions_spec.ts @@ -68,7 +68,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -229,7 +228,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -311,7 +309,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, diff --git a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_NavigateToFunctions_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_NavigateToFunctions_spec.ts index 173e6437e981..6e481ba700bc 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_NavigateToFunctions_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_NavigateToFunctions_spec.ts @@ -7,6 +7,8 @@ import { entityExplorer, jsEditor, propPane, + homePage, + debuggerHelper, } from "../../../../support/Objects/ObjectsCore"; import { EntityItems } from "../../../../support/Pages/AssertHelper"; import EditorNavigation, { @@ -177,9 +179,12 @@ describe( agHelper.AssertElementVisibility(appSettings.locators._header); agHelper.ClickButton("Submit"); agHelper.AssertURL(pageTwoUrl); + agHelper.WaitUntilEleAppear(debuggerHelper.locators._debuggerIcon); + agHelper.CypressReload(); }); it("3. To verify add a navigation using URL containing links to third party websites", () => { + agHelper.RefreshPage(); EditorNavigation.SelectEntityByName("Page1", EntityType.Page); EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", false); @@ -250,6 +255,7 @@ describe( }); it("4. To verify navigation to a hidden page in same as well a new window", () => { + agHelper.RefreshPage(); PageList.AddNewPage(); entityExplorer.ActionContextMenuByEntityName({ entityNameinLeftSidebar: "Page3", diff --git a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_ShowAlertFunctions_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_ShowAlertFunctions_spec.ts index 9ea7b04c0f62..514f8187027d 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_ShowAlertFunctions_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_ShowAlertFunctions_spec.ts @@ -54,7 +54,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -110,7 +109,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -177,7 +175,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -252,7 +249,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -327,7 +323,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -402,7 +397,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, diff --git a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_ShowCloseModalFunctions_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_ShowCloseModalFunctions_spec.ts index 2fef0c704cef..758999670c99 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_ShowCloseModalFunctions_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/ActionExecution/FrameworkFunctions_ShowCloseModalFunctions_spec.ts @@ -2,6 +2,7 @@ import { agHelper, apiPage, appSettings, + assertHelper, deployMode, draggableWidgets, entityExplorer, @@ -50,7 +51,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -58,7 +58,8 @@ describe( false, ); }); - agHelper.RefreshPage(); + agHelper.CypressReload(); + agHelper.WaitUntilEleAppear(locators._modalWrapper); agHelper.AssertElementVisibility(locators._modalWrapper); agHelper.AssertText(locators._modalButtonText, "text", "Confirm", 2); agHelper.AssertText(locators._modalButtonText, "text", "Close", 1); @@ -66,7 +67,9 @@ describe( deployMode.DeployApp(); agHelper.AssertElementVisibility(appSettings.locators._header); - agHelper.RefreshPage(); + agHelper.CypressReload(); + assertHelper.AssertNetworkStatus("@getConsolidatedData"); + agHelper.WaitUntilEleAppear(locators._modalWrapper); agHelper.AssertElementVisibility(locators._modalWrapper); agHelper.AssertText(locators._modalButtonText, "text", "Confirm", 2); agHelper.AssertText(locators._modalButtonText, "text", "Close", 1); @@ -92,6 +95,8 @@ describe( agHelper.ClickButton("Submit"); agHelper.ValidateToastMessage("Modal2 is not defined", 0, 1); deployMode.NavigateBacktoEditor(); + agHelper.CypressReload(); + agHelper.WaitUntilEleAppear(locators._buttonByText("Submit")); const jsObjectBody = `export default { myFun1 () { @@ -113,7 +118,6 @@ describe( EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -139,12 +143,13 @@ describe( EditorNavigation.SelectEntityByName("IconButton1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); propPane.EnterJSContext("onClick", `{{closeModal(Modal2.name);}}`, true); - agHelper.RefreshPage(); + agHelper.CypressReload(); agHelper.ClickButton("Submit"); agHelper.GetNClick(locators._modalButtonText, 0, true, 0); agHelper.ValidateToastMessage("Modal2 is not defined", 0, 1); deployMode.DeployApp(); + agHelper.CypressReload(); agHelper.AssertElementVisibility(appSettings.locators._header); agHelper.ClickButton("Submit"); agHelper.GetNClick(locators._modalButtonText, 0, true, 0); @@ -174,7 +179,6 @@ describe( EditorNavigation.SelectEntityByName("IconButton1", EntityType.Widget); propPane.ToggleJSMode("onClick", true); cy.get("@jsObjectName").then((jsObjectName: string) => { - console.log("Mera variable: ", jsObjectName); propPane.EnterJSContext( "onClick", `{{${jsObjectName}.myFun1()}}`, @@ -182,17 +186,17 @@ describe( false, ); }); - agHelper.RefreshPage(); + agHelper.CypressReload(); agHelper.ClickButton("Submit"); agHelper.GetNClick(locators._modalButtonText, 0, true, 0); agHelper.ValidateToastMessage("Modal2 is not defined", 0, 1); deployMode.DeployApp(); + agHelper.CypressReload(); agHelper.AssertElementVisibility(appSettings.locators._header); agHelper.ClickButton("Submit"); agHelper.GetNClick(locators._modalButtonText, 0, true, 0); agHelper.ValidateToastMessage("Modal2 is not defined", 0, 1); - deployMode.NavigateBacktoEditor(); }); }, ); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Autocomplete_setters_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Autocomplete_setters_spec.ts index 9685a068612b..290ecb7ee96b 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Autocomplete_setters_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/Autocomplete_setters_spec.ts @@ -92,9 +92,6 @@ describe( it("3. function arguments hint shows up", () => { EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); - propPane.EnterJSContext("onClick", "{{", true, false); - agHelper.GetNClickByContains(locators._hints, "appsmith", 0, false); - agHelper.AssertElementVisibility(locators._evalValuePopover); propPane.EnterJSContext("onClick", "{{showAlert", true, false); agHelper.GetElementsNAssertTextPresence(locators._hints, "showAlert"); agHelper.AssertElementAbsence(locators._evalValuePopover); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/JS_AC1_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/JS_AC1_spec.ts index d37b4389a20d..3d445375436f 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/JS_AC1_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/JS_AC1_spec.ts @@ -240,8 +240,8 @@ describe("Autocomplete tests", { tags: ["@tag.JS", "@tag.Binding"] }, () => { agHelper.TypeText(locators._codeMirrorTextArea, "userCollection[0]."); agHelper.GetNAssertElementText(locators._hints, "users"); agHelper.TypeText(locators._codeMirrorTextArea, "users[0]."); - agHelper.GetNAssertElementText(locators._hints, "label"); - agHelper.GetNAssertElementText(locators._hints, "value", "have.text", 1); + agHelper.GetNAssertElementText(locators._hints, "value"); + agHelper.GetNAssertElementText(locators._hints, "label", "have.text", 1); cy.get("@jsObjName").then((jsObjName) => { jsName = jsObjName; diff --git a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/PropertyPaneSuggestion_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/PropertyPaneSuggestion_spec.ts index 60407e48079e..aaba9fae2b88 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/PropertyPaneSuggestion_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/Autocomplete/PropertyPaneSuggestion_spec.ts @@ -28,9 +28,12 @@ describe( //typing {{}} EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); propPane.TypeTextIntoField("Label", "{{"); - agHelper.GetElementsNAssertTextPresence(locators._hints, "appsmith"); - agHelper.GetNClickByContains(locators._hints, "appsmith"); - propPane.ValidatePropertyFieldValue("Label", "{{appsmith}}"); + agHelper.GetElementsNAssertTextPresence( + locators._hints, + "Button1.isVisible", + ); + agHelper.GetNClickByContains(locators._hints, "Button1.isVisible"); + propPane.ValidatePropertyFieldValue("Label", "{{Button1.isVisible}}"); }); it("2. [Bug]-[2040]: undefined binding on / command dropdown", () => { @@ -46,10 +49,8 @@ describe( it("3. Should add Autocomplete Suggestions on Tab press", () => { EditorNavigation.SelectEntityByName("Button1", EntityType.Widget); - propPane.TypeTextIntoField("Label", "{{"); - agHelper.GetElementsNAssertTextPresence(locators._hints, "appsmith"); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore + propPane.TypeTextIntoField("Label", "{{J"); + agHelper.GetElementsNAssertTextPresence(locators._hints, "JSObject1"); cy.get("body").tab(); propPane.ValidatePropertyFieldValue("Label", "{{JSObject1}}"); }); diff --git a/app/client/cypress/e2e/Regression/ClientSide/PartialImportExport/PageActions_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/PartialImportExport/PageActions_spec.ts new file mode 100644 index 000000000000..1943783c3eb7 --- /dev/null +++ b/app/client/cypress/e2e/Regression/ClientSide/PartialImportExport/PageActions_spec.ts @@ -0,0 +1,139 @@ +import EditorNavigation, { + EntityType, + PageLeftPane, +} from "../../../../support/Pages/EditorNavigation"; +import { + agHelper, + draggableWidgets, + entityExplorer, + entityItems, + homePage, + locators, + partialImportExport, + propPane, +} from "../../../../support/Objects/ObjectsCore"; +import PageList from "../../../../support/Pages/PageList"; + +describe("Check Page Actions Menu", {}, function () { + it("1. Verify Page Actions when a page is selected", function () { + homePage.RenameApplication("PageActions"); + PageList.AddNewPage("New blank page"); + entityExplorer.DragDropWidgetNVerify(draggableWidgets.TEXT, 500, 100); + PageList.ShowList(); + agHelper.GetNClick(entityExplorer._contextMenu("Page2"), 0, true); + agHelper.GetNClick(locators._contextMenuItem("Rename")); + agHelper.TypeText(propPane._placeholderName, `NewPage{enter}`, { + parseSpecialCharSeq: true, + }); + + PageList.ClonePage("NewPage"); + PageList.HidePage("NewPage Copy"); + PageList.ShowList(); + agHelper.AssertAttribute( + locators._entityTestId("NewPage Copy"), + "disabled", + "disabled", + ); + PageList.DeletePage("NewPage Copy"); + PageList.assertAbsence("NewPage Copy"); + + EditorNavigation.NavigateToPage("NewPage", true); + + entityExplorer.ActionContextMenuByEntityName({ + entityNameinLeftSidebar: "NewPage", + action: "Set as home page", + entityType: entityItems.Page, + }); + PageList.ShowList(); + agHelper.GetElement(locators._entityTestId("NewPage")).within(() => { + agHelper.AssertElementExist(locators._homeIcon); + }); + + entityExplorer.ActionContextMenuByEntityName({ + entityNameinLeftSidebar: "Page1", + action: "Set as home page", + entityType: entityItems.Page, + }); + PageList.ShowList(); + agHelper.GetElement(locators._entityTestId("Page1")).within(() => { + agHelper.AssertElementExist(locators._homeIcon); + }); + + EditorNavigation.NavigateToPage("NewPage", true); + partialImportExport.OpenExportModal("NewPage"); + partialImportExport.PartiallyExportFile( + 4, + partialImportExport.locators.export.modelContents.widgetsSection, + ["Text1"], + ); + + //Import the exported App + partialImportExport.OpenImportModal("NewPage"); + partialImportExport.ImportPartiallyExportedFile( + "PageActions.json", + "Widgets", + ["Text1"], + "downloads", + ); + }); + + it("2. Verify Page Actions when a page is not selected", function () { + EditorNavigation.NavigateToPage("Page1", true); + PageList.ShowList(); + agHelper.GetNClick(entityExplorer._contextMenu("NewPage"), 0, true); + agHelper.GetNClick(locators._contextMenuItem("Rename")); + agHelper.TypeText(propPane._placeholderName, `Page2{enter}`, { + parseSpecialCharSeq: true, + }); + + PageList.ClonePage("Page2"); + EditorNavigation.NavigateToPage("Page1", true); + PageList.HidePage("Page2 Copy"); + PageList.ShowList(); + agHelper.AssertAttribute( + locators._entityTestId("Page2 Copy"), + "disabled", + "disabled", + ); + PageList.DeletePage("Page2 Copy"); + PageList.assertAbsence("Page2 Copy"); + }); + + it("3. Verify Page Actions when a home page is selected", function () { + entityExplorer.DragDropWidgetNVerify(draggableWidgets.TEXT, 500, 100); + PageList.ShowList(); + agHelper.GetNClick(entityExplorer._contextMenu("Page1"), 0, true); + agHelper.GetNClick(locators._contextMenuItem("Rename")); + agHelper.TypeText(propPane._placeholderName, `HomePage{enter}`, { + parseSpecialCharSeq: true, + }); + + PageList.ClonePage("HomePage"); + PageList.HidePage("HomePage Copy"); + PageList.ShowList(); + agHelper.AssertAttribute( + locators._entityTestId("HomePage Copy"), + "disabled", + "disabled", + ); + PageList.DeletePage("HomePage Copy"); + PageList.assertAbsence("HomePage Copy"); + + EditorNavigation.NavigateToPage("HomePage", true); + partialImportExport.OpenExportModal("HomePage"); + partialImportExport.PartiallyExportFile( + 4, + partialImportExport.locators.export.modelContents.widgetsSection, + ["Text1"], + ); + + //Import the exported App + partialImportExport.OpenImportModal("HomePage"); + partialImportExport.ImportPartiallyExportedFile( + "PageActions.json", + "Widgets", + ["Text1"], + "downloads", + ); + }); +}); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableBugs_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableBugs_Spec.ts deleted file mode 100644 index 37b6c2e9081f..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableBugs_Spec.ts +++ /dev/null @@ -1,182 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -describe( - "Verify various Table property bugs", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tablev1NewDsl"); - }); - - it("1. Adding Data to Table Widget", function () { - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - _.propPane.UpdatePropertyFieldValue( - "Table data", - JSON.stringify(this.dataSet.TableURLColumnType), - ); - _.assertHelper.AssertNetworkStatus("@updateLayout", 200); - _.agHelper.PressEscape(); - //Bug 13299 - Verify Display Text does not contain garbage value for URL column type when empty - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - _.table.ChangeColumnType("image", "URL"); - _.propPane.UpdatePropertyFieldValue( - "Display text", - `{{currentRow.image.toString().includes('7') ? currentRow.image.toString().split('full/')[1] : "" }}`, - ); - - _.deployMode.DeployApp(); - - //_.table.SelectTableRow(1) - _.table.ReadTableRowColumnData(0, 0).then(($cellData) => { - expect($cellData).contains("cube-logo_S50__hLNq.jpeg"); - }); - - _.table.ReadTableRowColumnData(1, 0).then(($cellData) => { - expect($cellData).to.eq( - "https://docs.appsmith.com/img/Appsmith-Login-Screen-Shows-SAML.jpg", - ); - }); - - _.table.ReadTableRowColumnData(2, 0).then(($cellData) => { - expect($cellData).contains("zapier-logo_odZ9wZQ3vY.jpeg"); - }); - - _.table.ReadTableRowColumnData(3, 0).then(($cellData) => { - expect($cellData).to.eq( - "https://docs.appsmith.com/img/replyto-logo_6yaZHFIeU.jpeg", - ); - }); - - _.table.AssertURLColumnNavigation( - 0, - 0, - "https://docs.appsmith.com/img/cube-logo_S50__hLNq.jpeg", - ); - - _.deployMode.NavigateBacktoEditor(); - }); - - it("2. Bug 13299 - Verify Display Text does not contain garbage value for URL column type when null", function () { - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - _.agHelper.GetNClick(_.table._columnSettings("image", "Edit")); - - _.propPane.UpdatePropertyFieldValue( - "Display text", - `{{currentRow.image.toString().includes('7') ? currentRow.image.toString().split('full/')[1] : null }}`, - ); - - _.deployMode.DeployApp(); - - _.table.ReadTableRowColumnData(0, 0).then(($cellData) => { - expect($cellData).contains("cube-logo_S50__hLNq.jpeg"); - }); - - _.table.ReadTableRowColumnData(1, 0).then(($cellData) => { - expect($cellData).to.eq( - "https://docs.appsmith.com/img/Appsmith-Login-Screen-Shows-SAML.jpg", - ); - }); - - _.table.ReadTableRowColumnData(2, 0).then(($cellData) => { - expect($cellData).contains("zapier-logo_odZ9wZQ3vY.jpeg"); - }); - - _.table.ReadTableRowColumnData(3, 0).then(($cellData) => { - expect($cellData).to.eq( - "https://docs.appsmith.com/img/replyto-logo_6yaZHFIeU.jpeg", - ); - }); - - _.table.AssertURLColumnNavigation( - 1, - 0, - "https://docs.appsmith.com/img/Appsmith-Login-Screen-Shows-SAML.jpg", - ); - - _.deployMode.NavigateBacktoEditor(); - }); - - it("3. Bug 13299 - Verify Display Text does not contain garbage value for URL column type when undefined", function () { - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - _.agHelper.GetNClick(_.table._columnSettings("image", "Edit")); - - _.propPane.UpdatePropertyFieldValue( - "Display text", - `{{currentRow.image.toString().includes('7') ? currentRow.image.toString().split('full/')[1] : undefined }}`, - ); - - _.deployMode.DeployApp(); - - _.table.ReadTableRowColumnData(0, 0).then(($cellData) => { - expect($cellData).contains("cube-logo_S50__hLNq.jpeg"); - }); - - _.table.ReadTableRowColumnData(1, 0).then(($cellData) => { - expect($cellData).to.eq( - "https://docs.appsmith.com/img/Appsmith-Login-Screen-Shows-SAML.jpg", - ); - }); - - _.table.ReadTableRowColumnData(2, 0).then(($cellData) => { - expect($cellData).contains("zapier-logo_odZ9wZQ3vY.jpeg"); - }); - - _.table.ReadTableRowColumnData(3, 0).then(($cellData) => { - expect($cellData).to.eq( - "https://docs.appsmith.com/img/replyto-logo_6yaZHFIeU.jpeg", - ); - }); - - _.table.AssertURLColumnNavigation( - 0, - 0, - "https://docs.appsmith.com/img/cube-logo_S50__hLNq.jpeg", - ); - - _.deployMode.NavigateBacktoEditor(); - }); - - it("4. should allow ISO 8601 format date and not throw a disallowed validation error", () => { - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - _.propPane.UpdatePropertyFieldValue( - "Table data", - '[{ "dateValue": "2023-02-02T13:39:38.367857Z" }]', - ); - cy.wait(500); - - _.propPane.OpenTableColumnSettings("dateValue"); - // select date option from column type setting field - - _.propPane.SelectPropertiesDropDown("Column type", "Date"); - - // select ISO 8601 date format - cy.get(".t--property-control-originaldateformat").click(); - cy.contains("ISO 8601").click(); - - cy.get(".t--property-control-originaldateformat") - .find(".t--js-toggle") - .click(); - // we should not see an error after ISO 8061 is selected - cy.get( - ".t--property-control-originaldateformat .t--codemirror-has-error", - ).should("not.exist"); - //check the selected format value - cy.get(".t--property-control-originaldateformat").contains( - "YYYY-MM-DDTHH:mm:ss.SSSZ", - ); - //give a corrupted date format - - _.propPane.UpdatePropertyFieldValue( - "Original Date Format", - "YYYY-MM-DDTHH:mm:ss.SSSsZ", - ); - //we should now see an error with an incorrect date format - cy.get( - ".t--property-control-originaldateformat .t--codemirror-has-error", - ).should("exist"); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter1_1_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter1_1_Spec.ts deleted file mode 100644 index 6c31e1130c47..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter1_1_Spec.ts +++ /dev/null @@ -1,123 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -describe( - "Verify various Table_Filter combinations", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tablev1NewDsl"); - }); - - it("1. Adding Data to Table Widget", function () { - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - _.propPane.UpdatePropertyFieldValue( - "Table data", - JSON.stringify(this.dataSet.TableInput), - ); - _.assertHelper.AssertNetworkStatus("@updateLayout", 200); - _.agHelper.PressEscape(); - _.deployMode.DeployApp(); - }); - - it("2. Table Widget Search Functionality", function () { - _.table.ReadTableRowColumnData(1, 3, "v1", 2000).then((cellData) => { - expect(cellData).to.eq("Lindsay Ferguson"); - _.table.SearchTable(cellData); - _.table.ReadTableRowColumnData(0, 3).then((afterSearch) => { - expect(afterSearch).to.eq("Lindsay Ferguson"); - }); - }); - _.table.RemoveSearchTextNVerify("2381224"); - - _.table.SearchTable("7434532"); - _.table.ReadTableRowColumnData(0, 3).then((afterSearch) => { - expect(afterSearch).to.eq("Byron Fields"); - }); - _.table.RemoveSearchTextNVerify("2381224"); - }); - - it("3. Verify Table Filter for 'contain'", function () { - _.table.OpenNFilterTable("userName", "contains", "Lindsay"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Lindsay Ferguson"); - }); - _.table.RemoveFilterNVerify("2381224"); - }); - - it("4. Verify Table Filter for 'does not contain'", function () { - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Tuna Salad"); - }); - _.table.OpenNFilterTable("productName", "does not contain", "Tuna"); - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Beef steak"); - }); - _.table.RemoveFilterNVerify("2381224"); - }); - - it("5. Verify Table Filter for 'starts with'", function () { - _.table.ReadTableRowColumnData(4, 4).then(($cellData) => { - expect($cellData).to.eq("Avocado Panini"); - }); - _.table.OpenNFilterTable("productName", "starts with", "Avo"); - _.table.ReadTableRowColumnData(0, 4).then(($cellData) => { - expect($cellData).to.eq("Avocado Panini"); - }); - _.table.RemoveFilterNVerify("2381224"); - }); - - it("6. Verify Table Filter for 'ends with' - case sensitive", function () { - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Tuna Salad"); - }); - _.table.OpenNFilterTable("productName", "ends with", "wich"); - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Chicken Sandwich"); - }); - _.table.RemoveFilterNVerify("2381224"); - }); - - it("7. Verify Table Filter for 'ends with' - case insenstive", function () { - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Tuna Salad"); - }); - _.table.OpenNFilterTable("productName", "ends with", "WICH"); - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Chicken Sandwich"); - }); - _.table.RemoveFilterNVerify("2381224"); - }); - - it("8. Verify Table Filter for 'ends with' - on wrong column", function () { - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Tuna Salad"); - }); - _.table.OpenNFilterTable("userName", "ends with", "WICH"); - _.table.WaitForTableEmpty(); - _.table.RemoveFilterNVerify("2381224"); - }); - - it("9. Verify Table Filter for 'is exactly' - case sensitive", function () { - _.table.ReadTableRowColumnData(2, 4).then(($cellData) => { - expect($cellData).to.eq("Beef steak"); - }); - _.table.OpenNFilterTable("productName", "is exactly", "Beef steak"); - _.table.ReadTableRowColumnData(0, 4).then(($cellData) => { - expect($cellData).to.eq("Beef steak"); - }); - _.table.RemoveFilterNVerify("2381224", true); - }); - - it("10. Verify Table Filter for 'is exactly' - case insensitive", function () { - _.table.ReadTableRowColumnData(2, 4).then(($cellData) => { - expect($cellData).to.eq("Beef steak"); - }); - _.table.OpenNFilterTable("productName", "is exactly", "Beef STEAK"); - _.table.WaitForTableEmpty(); - _.table.RemoveFilterNVerify("2381224", true); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter1_2_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter1_2_Spec.ts deleted file mode 100644 index 45d0400c73aa..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter1_2_Spec.ts +++ /dev/null @@ -1,224 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -describe( - "Verify various Table_Filter combinations", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tablev1NewDsl"); - }); - - it("1. Verify Table Filter for 'empty'", function () { - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - _.propPane.UpdatePropertyFieldValue( - "Table data", - JSON.stringify(this.dataSet.TableInput), - ); - _.assertHelper.AssertNetworkStatus("@updateLayout", 200); - _.agHelper.PressEscape(); - _.deployMode.DeployApp(); - - _.table.OpenNFilterTable("email", "empty"); - _.table.WaitForTableEmpty(); - _.table.RemoveFilterNVerify("2381224"); - }); - - it("2. Verify Table Filter for 'not empty'", function () { - _.table.ReadTableRowColumnData(4, 5).then(($cellData) => { - expect($cellData).to.eq("7.99"); - }); - _.table.OpenNFilterTable("orderAmount", "not empty"); - _.table.ReadTableRowColumnData(4, 5).then(($cellData) => { - expect($cellData).to.eq("7.99"); - }); - _.table.RemoveFilterNVerify("2381224"); - }); - - it("3. Verify Table Filter - Where Edit - Change condition along with input value", function () { - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - - _.table.OpenNFilterTable("orderAmount", "is exactly", "4.99"); - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - - //Change condition - 1st time - _.agHelper.GetNClick(_.table._filterConditionDropdown); - cy.get(_.table._dropdownText).contains("empty").click(); - _.agHelper.ClickButton("APPLY"); - _.table.WaitForTableEmpty(); - - //Change condition - 2nd time - _.agHelper.GetNClick(_.table._filterConditionDropdown); - cy.get(_.table._dropdownText).contains("contains").click(); - _.agHelper.GetNClick(_.table._filterInputValue, 0).type("19").wait(500); - _.agHelper.ClickButton("APPLY"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Tobias Funke"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("4. Verify Table Filter - Where Edit - Single Column, Condition & input value", function () { - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - - _.table.OpenNFilterTable("productName", "contains", "e"); - _.table.ReadTableRowColumnData(0, 4).then(($cellData) => { - expect($cellData).to.eq("Chicken Sandwich"); - }); - _.table.ReadTableRowColumnData(1, 4, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Beef steak"); - }); - _.table.ReadTableRowColumnData(2, 4, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Chicken Sandwich"); - }); - - //Change condition - 1st time - _.agHelper.GetNClick(_.table._filterConditionDropdown); - cy.get(_.table._dropdownText).contains("does not contain").click(); - _.agHelper.ClickButton("APPLY"); - _.table.ReadTableRowColumnData(0, 4).then(($cellData) => { - expect($cellData).to.eq("Tuna Salad"); - }); - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Avocado Panini"); - }); - - //Change condition - column value - _.agHelper.GetNClick(_.table._filterColumnsDropdown); - cy.get(_.table._dropdownText).contains("userName").click(); - _.agHelper.GetNClick(_.table._filterConditionDropdown); - cy.get(_.table._dropdownText).contains("does not contain").click(); - _.agHelper.ClickButton("APPLY"); - _.table.WaitForTableEmpty(); - - //Change input value - _.agHelper - .GetNClick(_.table._filterInputValue, 0) - .clear() - .type("i") - .wait(500); - _.agHelper.ClickButton("APPLY"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("5. Verify Table Filter for OR operator - different row match", function () { - _.table.ReadTableRowColumnData(2, 3).then(($cellData) => { - expect($cellData).to.eq("Tobias Funke"); - }); - - _.table.OpenNFilterTable("email", "contains", "on"); - _.table.ReadTableRowColumnData(2, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.OpenNFilterTable("productName", "ends with", "steak", "OR", 1); - _.table.ReadTableRowColumnData(2, 3).then(($cellData) => { - expect($cellData).to.eq("Tobias Funke"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("6. Verify Table Filter for OR operator - same row match", function () { - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.OpenNFilterTable("email", "contains", "hol"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.OpenNFilterTable("userName", "starts with", "ry", "OR", 1); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("7. Verify Table Filter for OR operator - two 'ORs'", function () { - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.OpenNFilterTable("email", "starts with", "by"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.OpenNFilterTable("productName", "ends with", "ni", "OR", 1); - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.OpenNFilterTable("userName", "contains", "law", "OR", 2); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("8. Verify Table Filter for AND operator - different row match", function () { - _.table.ReadTableRowColumnData(3, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.OpenNFilterTable("userName", "starts with", "b"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.OpenNFilterTable( - "productName", - "does not contain", - "WICH", - "AND", - 1, - ); - _.table.WaitForTableEmpty(); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("9. Verify Table Filter for AND operator - same row match", function () { - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.OpenNFilterTable("userName", "ends with", "s"); - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.OpenNFilterTable("orderAmount", "is exactly", "4.99", "AND", 1); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("10. Verify Table Filter for AND operator - same row match - edit input text value", function () { - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.OpenNFilterTable("userName", "ends with", "s"); - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.OpenNFilterTable("orderAmount", "is exactly", "4.99", "AND", 1); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.agHelper - .GetNClick(_.table._filterInputValue, 1) - .clear() - .type("7.99") - .wait(500); - _.agHelper.ClickButton("APPLY"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter2_1_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter2_1_Spec.ts deleted file mode 100644 index 3d56cdaa62ed..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter2_1_Spec.ts +++ /dev/null @@ -1,257 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -describe( - "Verify various Table_Filter combinations", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tablev1NewDsl"); - }); - - it("1. Adding Data to Table Widget", function () { - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - _.propPane.UpdatePropertyFieldValue( - "Table data", - JSON.stringify(this.dataSet.TableInput), - ); - _.assertHelper.AssertNetworkStatus("@updateLayout", 200); - _.agHelper.PressEscape(); - _.deployMode.DeployApp(); - }); - - it("2. Verify Table Filter for AND operator - same row match - Where Edit - input value", function () { - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.OpenNFilterTable("userName", "ends with", "s"); - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.OpenNFilterTable("orderAmount", "is exactly", "4.99", "AND", 1); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.agHelper - .GetNClick(_.table._filterInputValue, 1) - .clear() - .type("7.99") - .wait(500); - _.agHelper.ClickButton("APPLY"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("3. Verify Table Filter for AND operator - two 'ANDs' - clearAll", function () { - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.OpenNFilterTable("id", "contains", "7434532"); - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.OpenNFilterTable("productName", "contains", "i", "AND", 1); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.OpenNFilterTable("orderAmount", "starts with", "7", "AND", 2); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("4. Verify Table Filter for AND operator - two 'ANDs' - removeOne filter condition + Bug 12638", function () { - _.table.OpenNFilterTable("id", "contains", "2"); - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Lindsay Ferguson"); - }); - _.table.OpenNFilterTable("productName", "ends with", "WICH", "AND", 1); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.OpenNFilterTable("userName", "does not contain", "son", "AND", 2); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.RemoveFilterNVerify("7434532", false, true, 1); - //Bug 12638 - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("5. Verify Table Filter for AND operator - two 'ANDs' - removeOne filter twice + Bug 12638", function () { - _.table.OpenNFilterTable("id", "starts with", "2"); - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Lindsay Ferguson"); - }); - _.table.OpenNFilterTable("productName", "ends with", "WICH", "AND", 1); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.OpenNFilterTable("userName", "contains", "on", "AND", 2); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.RemoveFilterNVerify("2381224", false, true, 1); - _.table.RemoveFilterNVerify("2381224", false, true, 0); - - //Bug 12638 - verification to add here - once closed - - _.table.ReadTableRowColumnData(1, 3).then(($cellData) => { - expect($cellData).to.eq("Lindsay Ferguson"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("6. Verify Table Filter for changing from AND -> OR -> AND", function () { - _.table.OpenNFilterTable("id", "contains", "7"); - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Beef steak"); - }); - _.table.OpenNFilterTable("productName", "contains", "I", "AND", 1); - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Avocado Panini"); - }); - _.table.OpenNFilterTable("userName", "starts with", "r", "AND", 2); - _.table.ReadTableRowColumnData(0, 4).then(($cellData) => { - expect($cellData).to.eq("Avocado Panini"); - }); - - _.agHelper.GetNClick(_.table._filterOperatorDropdown); - cy.get(_.table._dropdownText).contains("OR").click(); - _.agHelper.ClickButton("APPLY"); - - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Tuna Salad"); - }); - - _.agHelper.GetNClick(_.table._filterOperatorDropdown); - cy.get(_.table._dropdownText).contains("AND").click(); - _.agHelper.ClickButton("APPLY"); - - _.table.ReadTableRowColumnData(0, 4).then(($cellData) => { - expect($cellData).to.eq("Avocado Panini"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("7. Verify Table Filter for changing from AND -> OR -> along with changing Where clause condions", function () { - _.table.OpenNFilterTable("id", "starts with", "2"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.ReadTableRowColumnData(1, 3, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Lindsay Ferguson"); - }); - - _.table.OpenNFilterTable("orderAmount", "contains", "19", "OR", 1); - _.table.ReadTableRowColumnData(2, 3).then(($cellData) => { - expect($cellData).to.eq("Tobias Funke"); - }); - - //Changing filter conditions of both where rows - 1st row - _.agHelper - .GetNClick(_.table._filterInputValue, 0) - .clear() - .type("7") - .wait(500); - _.agHelper.ClickButton("APPLY"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Tobias Funke"); - }); - _.table.ReadTableRowColumnData(1, 3, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.ReadTableRowColumnData(2, 3, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - - //Changing filter conditions of both where rows - 2nd row - _.agHelper.GetNClick(_.table._filterConditionDropdown, 1); - cy.get(_.table._dropdownText).contains("does not contain").click(); - _.agHelper.ClickButton("APPLY"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Michael Lawson"); - }); - _.table.ReadTableRowColumnData(1, 3, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Lindsay Ferguson"); - }); - _.table.ReadTableRowColumnData(2, 3, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.ReadTableRowColumnData(3, 3, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - - //Changing OR to AND - _.agHelper.GetNClick(_.table._filterOperatorDropdown); - cy.get(_.table._dropdownText).contains("AND").click(); - _.agHelper.ClickButton("APPLY"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.ReadTableRowColumnData(1, 3, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - - //Changing AND to OR - _.agHelper.GetNClick(_.table._filterOperatorDropdown); - cy.get(_.table._dropdownText).contains("OR").click(); - _.agHelper.GetNClick(_.table._filterConditionDropdown, 1); - cy.get(_.table._dropdownText).contains("starts with").click(); - _.agHelper - .GetNClick(_.table._filterInputValue, 1) - .clear() - .type("9") - .wait(500); - _.agHelper.ClickButton("APPLY"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Lindsay Ferguson"); - }); - _.table.ReadTableRowColumnData(1, 3, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Byron Fields"); - }); - _.table.ReadTableRowColumnData(2, 3, "v1", 200).then(($cellData) => { - expect($cellData).to.eq("Ryan Holmes"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - - it("8. Verify Table Filter for changing from AND -> OR [Remove a filter] -> AND + Bug 12642", function () { - _.table.OpenNFilterTable("id", "contains", "7"); - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Beef steak"); - }); - _.table.OpenNFilterTable("productName", "contains", "I", "AND", 1); - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Avocado Panini"); - }); - _.table.OpenNFilterTable("userName", "starts with", "r", "AND", 2); - _.table.ReadTableRowColumnData(0, 4).then(($cellData) => { - expect($cellData).to.eq("Avocado Panini"); - }); - - _.agHelper.GetNClick(_.table._filterOperatorDropdown); - cy.get(_.table._dropdownText).contains("OR").click(); - _.agHelper.ClickButton("APPLY"); - - _.table.ReadTableRowColumnData(1, 4).then(($cellData) => { - expect($cellData).to.eq("Tuna Salad"); - }); - - _.table.RemoveFilterNVerify("7434532", false, true, 0); //Since TableV1 - revertion of operator upon removal of filter is not supported - - _.table.ReadTableRowColumnData(0, 4).then(($cellData) => { - expect($cellData).to.eq("Avocado Panini"); - }); - _.table.RemoveFilterNVerify("2381224", true, false); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter2_2_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter2_2_Spec.ts deleted file mode 100644 index 3b281a846e46..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/TableFilter2_2_Spec.ts +++ /dev/null @@ -1,178 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -describe( - "Verify various Table_Filter combinations", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tablev1NewDsl"); - }); - - it("1. Verify Full table data - download csv and download Excel", function () { - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - _.propPane.UpdatePropertyFieldValue( - "Table data", - JSON.stringify(this.dataSet.TableInput), - ); - _.assertHelper.AssertNetworkStatus("@updateLayout", 200); - _.agHelper.PressEscape(); - _.deployMode.DeployApp(); - - _.table.DownloadFromTable("Download as CSV"); - //This plugin works only from cypress ^9.2 - //cy.verifyDownload("Table1.csv") - _.table.ValidateDownloadNVerify("Table1.csv", "Michael Lawson"); - - _.table.DownloadFromTable("Download as Excel"); - _.table.ValidateDownloadNVerify("Table1.xlsx", "Michael Lawson"); - }); - - it("2. Verify Searched data - download csv and download Excel", function () { - _.table.SearchTable("7434532"); - _.table.ReadTableRowColumnData(0, 3).then((afterSearch) => { - expect(afterSearch).to.eq("Byron Fields"); - }); - - _.table.DownloadFromTable("Download as CSV"); - //This plugin works only from cypress ^9.2 - //cy.verifyDownload("Table1.csv") - _.table.ValidateDownloadNVerify("Table1.csv", "byron.fields@reqres.in"); - - _.table.DownloadFromTable("Download as Excel"); - _.table.ValidateDownloadNVerify("Table1.xlsx", "Ryan Holmes"); - - _.table.RemoveSearchTextNVerify("2381224"); - - _.table.DownloadFromTable("Download as CSV"); - _.table.ValidateDownloadNVerify("Table1.csv", "2736212"); - - _.table.DownloadFromTable("Download as Excel"); - _.table.ValidateDownloadNVerify("Table1.xlsx", "Beef steak"); - }); - - it("3. Verify Filtered data - download csv and download Excel", function () { - _.table.OpenNFilterTable("id", "starts with", "6"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Tobias Funke"); - }); - _.table.CloseFilter(); - - _.table.DownloadFromTable("Download as CSV"); - //This plugin works only from cypress ^9.2 - //cy.verifyDownload("Table1.csv") - _.table.ValidateDownloadNVerify("Table1.csv", "Beef steak"); - - _.table.DownloadFromTable("Download as Excel"); - _.table.ValidateDownloadNVerify("Table1.xlsx", "tobias.funke@reqres.in"); - - _.agHelper.GetNClick(_.table._filterBtn); - _.table.RemoveFilterNVerify("2381224", true, false); - - _.table.DownloadFromTable("Download as CSV"); - _.table.ValidateDownloadNVerify("Table1.csv", "Tuna Salad"); - - _.table.DownloadFromTable("Download as Excel"); - _.table.ValidateDownloadNVerify("Table1.xlsx", "Avocado Panini"); - }); - - it("4. Import TableFilter application & verify all filters for same FirstName (one word column) + Bug 13334", () => { - _.deployMode.NavigateBacktoEditor(); - _.table.WaitUntilTableLoad(); - _.homePage.NavigateToHome(); - _.homePage.ImportApp("TableFilterImportApp.json"); - _.homePage.AssertImportToast(); - _.deployMode.DeployApp(); - _.table.WaitUntilTableLoad(); - - //Contains - _.table.OpenNFilterTable("FirstName", "contains", "Della"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Alvarado"); - }); - - filterOnlyCondition("does not contain", "49"); - filterOnlyCondition("starts with", "1"); - - //Ends with - Open Bug 13334 - filterOnlyCondition("ends with", "1"); - - filterOnlyCondition("is exactly", "1"); - filterOnlyCondition("empty", "0"); - filterOnlyCondition("not empty", "50"); - filterOnlyCondition("starts with", "3", "ge"); - _.table.ReadTableRowColumnData(0, 3).then(($cellData) => { - expect($cellData).to.eq("Chandler"); - }); - - _.table.OpenNFilterTable("FullName", "ends with", "ross", "OR", 1); - _.agHelper - .GetText(_.table._showPageItemsCount) - .then(($count) => expect($count).contain("4")); - _.table.CloseFilter(); - _.agHelper - .GetText(_.table._filtersCount) - .then(($count) => expect($count).contain("2")); - - _.table.OpenFilter(); - _.table.RemoveFilterNVerify("1", true, false); - }); - - it("5. Verify all filters for same FullName (two word column) + Bug 13334", () => { - //Contains - _.table.OpenNFilterTable("FullName", "contains", "torres"); - _.table.ReadTableRowColumnData(0, 2).then(($cellData) => { - expect($cellData).to.eq("Virgie"); - }); - - filterOnlyCondition("does not contain", "49"); - filterOnlyCondition("starts with", "0"); - filterOnlyCondition("ends with", "1"); - filterOnlyCondition("is exactly", "0"); - filterOnlyCondition("empty", "0"); - filterOnlyCondition("not empty", "50"); - filterOnlyCondition("contains", "1", "wolf"); - _.table.ReadTableRowColumnData(0, 2).then(($cellData) => { - expect($cellData).to.eq("Teresa"); - }); - - _.table.OpenNFilterTable("FirstName", "starts with", "wa", "OR", 1); - _.agHelper.Sleep(); - _.agHelper - .GetText(_.table._showPageItemsCount) - .then(($count) => expect($count).contain("3")); - - _.table.OpenNFilterTable("LastName", "ends with", "son", "OR", 2); - _.agHelper - .GetText(_.table._showPageItemsCount) - .then(($count) => expect($count).contain("10")); - _.table.CloseFilter(); - _.agHelper - .GetText(_.table._filtersCount) - .then(($count) => expect($count).contain("3")); - - _.table.OpenFilter(); - _.table.RemoveFilterNVerify("1", true, false); - }); - - function filterOnlyCondition( - condition: string, - expectedCount: string, - input: string | "" = "", - ) { - _.agHelper.GetNClick(_.table._filterConditionDropdown); - cy.get(_.table._dropdownText).contains(condition).click(); - if (input) - _.agHelper - .GetNClick(_.table._filterInputValue, 0) - .type(input) - .wait(500); - _.agHelper.ClickButton("APPLY"); - _.agHelper - .GetText(_.table._showPageItemsCount) - .then(($count) => expect($count).contain(expectedCount)); - } - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Button_Icon_validation_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Button_Icon_validation_spec.js deleted file mode 100644 index e222542518fc..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Button_Icon_validation_spec.js +++ /dev/null @@ -1,104 +0,0 @@ -const widgetsPage = require("../../../../../locators/Widgets.json"); -const commonlocators = require("../../../../../locators/commonlocators.json"); -const testdata = require("../../../../../fixtures/testdata.json"); -const color = "rgb(151, 0, 0)"; -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget property pane feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableNewDsl"); - }); - - it("1. Table widget with with modal popup", function () { - cy.openPropertyPane("tablewidget"); - //update Table name with _ - cy.widgetText( - "Table_1", - widgetsPage.tableWidget, - widgetsPage.widgetNameSpan, - ); - cy.createModal("Modal", "onRowSelected"); - _.table.SelectTableRow(1); - cy.get(".bp3-overlay-backdrop").click({ force: true }); - _.table.SelectTableRow(2); - cy.get(".bp3-overlay-backdrop").click({ force: true }); - }); - - it("2. Table widget with button colour change validation", function () { - cy.openPropertyPane("tablewidget"); - // Open column details of "id". - cy.editColumn("id"); - cy.get(widgetsPage.tableBtn).should("not.exist"); - // Changing column data type to "Button" - cy.changeColumnType("Button", false); - // Changing the computed value (data) to "orderAmount" - cy.updateComputedValue(testdata.currentRowOrderAmt); - cy.changeColumnType("Button", false); - cy.get(widgetsPage.buttonColor) - .click({ force: true }) - .clear() - .type(color, { delay: 0 }); - cy.get(widgetsPage.tableBtn).should( - "have.css", - "background-color", - color, - ); - cy.readTabledataPublish("2", "2").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Tobias Funke"); - }); - }); - - it("3. Table widget icon type and colour validation", function () { - cy.openPropertyPane("tablewidget"); - // Open column details of "id". - cy.get(commonlocators.editPropBackButton).click({ force: true }); - cy.editColumn("id"); - // Change Column type to icon Button - cy.changeColumnType("Icon button", false); - // Select Icon from Icon Control - cy.get(".t--property-control-icon .bp3-icon-caret-down").click({ - force: true, - }); - cy.get(".bp3-icon-add").first().click({ - force: true, - }); - cy.get(".t--widget-tablewidget .tbody .bp3-icon-add").should( - "be.visible", - ); - cy.get(".bp3-overlay-backdrop").click({ force: true }); - }); - - it("4. Table widget validation of a field without js ", function () { - cy.openPropertyPane("tablewidget"); - cy.editColumn("email"); - cy.clearPropertyValue(0); - //toggle js for visiblity - cy.get(".t--property-control-visible .t--js-toggle").click({ - force: true, - }); - cy.EnableAllCodeEditors(); - cy.clearPropertyValue(1); - }); - - it("5. Table widget column reorder and reload function", function () { - cy.openPropertyPane("tablewidget"); - cy.get(commonlocators.editPropBackButton).click({ force: true }); - cy.hideColumn("email"); - cy.hideColumn("userName"); - cy.hideColumn("productName"); - cy.hideColumn("orderAmount"); - cy.readTabledataPublish("2", "2").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Tobias Funke"); - _.agHelper.RefreshPage(); - cy.readTabledataPublish("2", "2").then((tabDataNew) => { - expect(tabDataNew).to.be.equal("Tobias Funke"); - }); - }); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Color_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Color_spec.js deleted file mode 100644 index 5d16abf07734..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Color_spec.js +++ /dev/null @@ -1,72 +0,0 @@ -const widgetsPage = require("../../../../../locators/Widgets.json"); -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget property pane feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableNewDsl"); - }); - - it("1. Test to validate text color and text background", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - //cy.moveToStyleTab(); - // Click on text color input field - cy.selectColor("textcolor"); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(500); - cy.wait("@updateLayout"); - // Verify the text color is green - cy.readTabledataValidateCSS("1", "0", "color", "rgb(219, 234, 254)"); - // Change the text color and enter purple in input field - cy.get(widgetsPage.textColor) - .scrollIntoView() - .clear({ force: true }) - .type("purple", { force: true, delay: 0 }); - cy.wait("@updateLayout"); - // Verify the text color is purple - cy.readTabledataValidateCSS("1", "0", "color", "rgb(128, 0, 128)"); - // Click on cell background color - cy.selectColor("cellbackgroundcolor"); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(500); - // select the green color - - cy.wait("@updateLayout"); - _.agHelper.AssertAutoSave(); - _.deployMode.DeployApp(); - cy.wait(4000); - - // Verify the cell background color is green - cy.readTabledataValidateCSS( - "1", - "1", - "background-color", - "rgb(219, 234, 254)", - ); - _.deployMode.NavigateBacktoEditor(); - cy.openPropertyPane("tablewidget"); - - // Change the cell background color and enter purple in input field - cy.get( - `${widgetsPage.cellBackground_tablev1} [data-testid='t--color-picker-input']`, - ) - .clear({ force: true }) - .type("purple", { force: true, delay: 0 }); - cy.wait("@updateLayout"); - _.agHelper.AssertAutoSave(); - _.deployMode.DeployApp(); - cy.wait(4000); - - // Verify the cell background color is purple - cy.readTabledataValidateCSS( - "1", - "1", - "background-color", - "rgb(128, 0, 128)", - ); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Column_Resize_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Column_Resize_spec.js deleted file mode 100644 index 4bae6884bf66..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Column_Resize_spec.js +++ /dev/null @@ -1,26 +0,0 @@ -/* eslint-disable cypress/no-unnecessary-waiting */ -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget Functionality with Hidden and Resized Columns", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableResizedColumnsDsl"); - }); - - it("Table Widget Functionality with Hidden and Resized Columns", function () { - _.deployMode.DeployApp(); - // Verify column header width should be equal to table width - cy.get(".t--widget-tablewidget") - .invoke("outerWidth") - .then((tableWidth) => { - cy.get(".t--widget-tablewidget .thead .tr") - .invoke("outerWidth") - .then((columnHeaderWidth) => { - expect(columnHeaderWidth).to.be.at.least(tableWidth); - }); - }); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Derived_Column_Data_validation_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Derived_Column_Data_validation_spec.js deleted file mode 100644 index 8ca5779f33ba..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Derived_Column_Data_validation_spec.js +++ /dev/null @@ -1,115 +0,0 @@ -/* eslint-disable cypress/no-unnecessary-waiting */ -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -const commonlocators = require("../../../../../locators/commonlocators.json"); -import { - agHelper, - apiPage, - entityExplorer, - propPane, -} from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Test Create Api and Bind to Table widget", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - agHelper.AddDsl("tableTextPaginationDsl"); - }); - - it("1. Create an API and Execute the API and bind with Table", function () { - // Create and execute an API and bind with table - apiPage.CreateAndFillApi( - this.dataSet.paginationUrl + this.dataSet.paginationParam, - ); - agHelper.VerifyEvaluatedValue( - this.dataSet.paginationUrl + "mock-api?records=20&page=1&size=10", - ); - apiPage.RunAPI(); - //Test: Validate Table with API data and then add a column - // Open property pane - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - // Clear Table data and enter Apil data into table data - cy.testJsontext("tabledata", "{{Api1.data}}"); - // Check Widget properties - cy.CheckWidgetProperties(commonlocators.serverSidePaginationCheckbox); - // Open Text1 in propert pane - EditorNavigation.SelectEntityByName("Text1", EntityType.Widget); - propPane.UpdatePropertyFieldValue("Text", "{{Table1.selectedRow.url}}"); - // Open Table1 propert pane - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - // Compare table 1st index data with itself - cy.readTabledata("0", "0").then((tabData) => { - const tableData = tabData; - localStorage.setItem("tableDataPage1", tableData); - }); - // Verify 1st index data - cy.readTabledata("0", "4").then((tabData) => { - const tableData = tabData; - expect(tableData).to.equal("1"); - }); - // add new column - cy.addColumn("CustomColumn"); - //Test:Table widget toggle test for background color - // Open id property pane - cy.editColumn("id"); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(1000); - // Click on cell background JS button - propPane.EnterJSContext("Cell Background", "Green"); - cy.get("[data-testid='t--property-pane-back-btn']").click({ - force: true, - }); - cy.wait("@updateLayout"); - // verify the cell background color - cy.readTabledataValidateCSS( - "1", - "4", - "background-color", - "rgb(0, 128, 0)", - ); - }); - - it("2. Edit column name and validate test for computed value based on column type selected", function () { - // opoen customColumn1 property pane - cy.editColumn("customColumn1"); - // Enter Apil 1st user email data into customColumn1 - cy.readTabledataPublish("1", "7").then((tabData) => { - const tabValue = tabData; - cy.updateComputedValue("{{Api1.data[0].email}}"); - cy.readTabledataPublish("1", "7").then((tabData) => { - expect(tabData).not.to.be.equal(tabValue); - cy.log("computed value of plain text " + tabData); - }); - }); - cy.closePropertyPane(); - //Test: Update table json data and check the column names updated - // Open table propert pane - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - cy.backFromPropertyPanel(); - // Change the table data - cy.testJsontext( - "tabledata", - JSON.stringify(this.dataSet.TableInputUpdate), - ); - cy.wait("@updateLayout"); - // verify columns are visible or not in the propert pane - cy.tableColumnDataValidation("id"); - cy.tableColumnDataValidation("email"); - cy.tableColumnDataValidation("userName"); - cy.tableColumnDataValidation("productName"); - cy.tableColumnDataValidation("orderAmount"); - cy.tableColumnDataValidation("customColumn1"); - // Hide the columns in property pane - cy.hideColumn("email"); - cy.hideColumn("userName"); - cy.hideColumn("productName"); - cy.hideColumn("orderAmount"); - // verify customColumn is visible in the table - cy.get(".draggable-header:contains('CustomColumn')").should("be.visible"); - cy.closePropertyPane(); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_EmptyRow_Color_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_EmptyRow_Color_spec.js deleted file mode 100644 index 4e618fee9009..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_EmptyRow_Color_spec.js +++ /dev/null @@ -1,54 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; -const commonlocators = require("../../../../../locators/commonlocators.json"); - -describe( - "Table Widget empty row color validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableNewDsl"); - }); - - it("1. Validate cell background of columns", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - // give general color to all table row - cy.selectColor("cellbackgroundcolor", -17); - - cy.editColumn("id"); - // Click on cell background color - cy.selectColor("cellbackground", -27); - cy.wait("@updateLayout"); - cy.get(commonlocators.editPropBackButton).click({ force: true }); - cy.wait(1000); - cy.editColumn("email"); - cy.selectColor("cellbackground", -33); - cy.wait("@updateLayout"); - cy.get(commonlocators.editPropBackButton).click({ force: true }); - - // Verify the cell background color of first column - cy.readTabledataValidateCSS( - "1", - "0", - "background-color", - "rgb(185, 28, 28)", - ); - // Verify the cell background color of second column - cy.readTabledataValidateCSS( - "1", - "1", - "background-color", - "rgb(113, 113, 122)", - ); - //Test 2. Validate empty row background - // first cell of first row should be transparent - cy.get( - ".t--widget-tablewidget .tbody div[data-testid='empty-row-0-cell-0']", - ).should("have.css", "background-color", "rgb(185, 28, 28)"); - // second cell of first row should be transparent - cy.get( - ".t--widget-tablewidget .tbody div[data-testid='empty-row-0-cell-1']", - ).should("have.css", "background-color", "rgb(113, 113, 122)"); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_FilteredTableData_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_FilteredTableData_spec.js deleted file mode 100644 index 6d5898c59c7c..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_FilteredTableData_spec.js +++ /dev/null @@ -1,56 +0,0 @@ -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -const widgetsPage = require("../../../../../locators/Widgets.json"); -const commonlocators = require("../.././../../../locators/commonlocators.json"); -const publish = require("../../../../../locators/publishWidgetspage.json"); -import * as _ from "../../../../../support/Objects/ObjectsCore"; -const dsl = require("../../../../../fixtures/tableAndTextDsl.json"); - -describe( - "Table Widget Filtered Table data in autocomplete", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableAndTextDsl"); - }); - - it("Table Widget Functionality To Filter and search data", function () { - cy.openPropertyPane("tablewidget"); - cy.get(publish.searchInput).first().type("query"); - cy.get(publish.filterBtn).click(); - cy.get(publish.attributeDropdown).click(); - cy.get(publish.attributeValue).contains("task").click(); - cy.get(publish.conditionDropdown).click(); - cy.get(publish.attributeValue).contains("contains").click(); - cy.get(publish.inputValue).type("bind"); - cy.wait(500); - cy.get(widgetsPage.filterApplyBtn).click({ force: true }); - cy.wait(500); - cy.get(".t--close-filter-btn").click({ force: true }); - }); - - it("Table Widget Functionality to validate filtered table data", function () { - EditorNavigation.SelectEntityByName("Text1", EntityType.Widget); - cy.testJsontext("text", "{{Table1.filteredTableData[0].task}}"); - cy.readTabledata("0", "1").then((tabData) => { - const tableData = tabData; - cy.get(commonlocators.labelTextStyle).should("have.text", tableData); - }); - - //Table Widget Functionality to validate filtered table data with actual table data - cy.readTabledata("0", "1").then((tabData) => { - const tableData = JSON.parse(dsl.dsl.children[0].tableData); - cy.get(commonlocators.labelTextStyle).should( - "have.text", - tableData[2].task, - ); - }); - }); - - afterEach(() => { - // put your clean up code if any - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_GeneralProperty_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_GeneralProperty_spec.js deleted file mode 100644 index c12a994ef63e..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_GeneralProperty_spec.js +++ /dev/null @@ -1,187 +0,0 @@ -/* eslint-disable cypress/no-unnecessary-waiting */ - -const widgetsPage = require("../../../../../locators/Widgets.json"); -const commonlocators = require("../../../../../locators/commonlocators.json"); -const testdata = require("../../../../../fixtures/testdata.json"); -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget property pane feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableNewDsl"); - }); - - it("1. Test to validate table pagination is disabled", function () { - // Verify pagination is disabled - cy.get(".t--table-widget-prev-page").should("have.attr", "disabled"); - cy.get(".t--table-widget-next-page").should("have.attr", "disabled"); - cy.get(".t--table-widget-page-input input").should( - "have.attr", - "disabled", - ); - }); - - it("2. Test to validate text allignment", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - // Change the text align to center - cy.xpath(widgetsPage.textCenterAlign).first().click({ force: true }); - // Verify the center text alignment - cy.readTabledataValidateCSS("1", "0", "justify-content", "center"); - // Change the text align to right - cy.xpath(widgetsPage.rightAlign).first().click({ force: true }); - // Verify the right text alignment - cy.readTabledataValidateCSS("1", "0", "justify-content", "flex-end"); - // Change the text align to left - cy.xpath(widgetsPage.leftAlign).first().click({ force: true }); - // verify the left text alignment - cy.readTabledataValidateCSS("1", "0", "justify-content", "flex-start"); - }); - - it("3. Test to validate column heading allignment", function () { - // cy.openPropertyPane("tablewidget"); - // Change the text align to center - cy.xpath(widgetsPage.textCenterAlign).first().click({ force: true }); - // Verify the column headings are center aligned - cy.get(".draggable-header") - .first() - .should("have.css", "text-align", "center"); - // Change the text align to right - cy.xpath(widgetsPage.rightAlign).first().click({ force: true }); - // Verify the column headings are right aligned - cy.get(".draggable-header") - .first() - .should("have.css", "text-align", "right"); - // Change the text align to left - cy.xpath(widgetsPage.leftAlign).first().click({ force: true }); - // Verify the column headings are left aligned - cy.get(".draggable-header") - .first() - .should("have.css", "text-align", "left"); - }); - - it("4. Test to validate text format", function () { - // Select the bold font style - cy.get(widgetsPage.bold).click({ force: true }); - // Varify the font style is bold - cy.readTabledataValidateCSS("1", "0", "font-weight", "700"); - // Change the font style to italic - cy.get(widgetsPage.italics).click({ force: true }); - // Verify the font style is italic - cy.readTabledataValidateCSS("1", "0", "font-style", "italic"); - // Change the font style to underline - cy.editColumn("id"); - cy.get(widgetsPage.underline).click({ force: true }); - // Verify the font style is underline - cy.readTabledataValidateCSS( - "1", - "0", - "text-decoration-line", - "underline", - ); - }); - - it("5. Test to validate vertical allignment", function () { - cy.openPropertyPane("tablewidget"); - // Select the top vertical alignment - cy.get(widgetsPage.verticalTop).click({ force: true }); - // verify vertical alignment is top - cy.readTabledataValidateCSS("1", "0", "align-items", "flex-start"); - // Change the vertical alignment to center - cy.get(widgetsPage.verticalCenter).last().click({ force: true }); - // Verify the vertical alignment is centered - cy.readTabledataValidateCSS("1", "0", "align-items", "center"); - // Change the vertical alignment to bottom - cy.get(widgetsPage.verticalBottom).last().click({ force: true }); - // Verify the vertical alignment is bottom - cy.readTabledataValidateCSS("1", "0", "align-items", "flex-end"); - }); - - it("6. Table widget toggle test for text alignment", function () { - // Click on text align JS - cy.get(widgetsPage.toggleTextAlign).first().click({ force: true }); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(1000); - // Change the text align value to right for michael and left for others - cy.toggleJsAndUpdate("tabledata", testdata.bindingGenAlign); - // Close propert pane - - // Verify the text michael id is right aligned - cy.readTabledataValidateCSS("0", "0", "justify-content", "flex-end"); - // Verify the 2nd id is left aligned - cy.readTabledataValidateCSS("1", "0", "justify-content", "flex-start"); - }); - - it("7. Table widget change text size and validate", function () { - // Verify font size is 14px - cy.readTabledataValidateCSS("0", "0", "font-size", "14px"); - - // Click on text size JS - cy.get(widgetsPage.toggleTextAlign).first().click({ force: true }); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(1000); - // Open txe size dropdown options - cy.get(widgetsPage.textSize).last().click({ force: true }); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(1000); - // Select Heading 1 text size - cy.selectTxtSize("L"); - // Verify the font size is 24px - cy.readTabledataValidateCSS("0", "0", "font-size", "20px"); - // close propert pane - - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(1000); - // Verify the font size is 24px - cy.readTabledataValidateCSS("0", "0", "font-size", "20px"); - }); - - it("8. Test to validate open new tab icon shows when URL type data validate link text ", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - - // go back to 1st - cy.get(commonlocators.editPropBackButton).click({ force: true }); - // Open email property pane - cy.editColumn("email"); - // Change column type to url - cy.changeColumnType("URL", false); - //Check all the occurance - cy.get(".link-text").should("have.length", "3"); - /* - cy.get( - `.t--widget-tablewidget .tbody .td[data-rowindex=1][data-colindex=1] .hidden-icon`, - ) - .should("be.hidden") - .invoke("show"); - cy.get( - `.t--widget-tablewidget .tbody .td[data-rowindex=1][data-colindex=1] .hidden-icon`, - ).should("be.visible"); - */ - }); - - it("9. Edit column name and test for table header changes", function () { - cy.get(commonlocators.editPropBackButton).click({ force: true }); - // Open email property pane - cy.editColumn("email"); - // CHange the Column email name to Email Address - cy.editColName("Email Address"); - // verify changed email name is visible - cy.get(".draggable-header:contains('Email Address')").should( - "be.visible", - ); - cy.get(commonlocators.editPropBackButton).click({ force: true }); - }); - - it("10. Edit Row height and test table for changes", function () { - cy.openPropertyPane("tablewidget"); - cy.get(widgetsPage.rowHeight).last().click({ force: true }); - cy.get(".t--dropdown-option").contains("Short").click({ force: true }); - cy.wait(2000); - _.deployMode.DeployApp(); - cy.readTabledataValidateCSS("0", "1", "height", "19px", true); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_MultiRowSelect_dataUpdation_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_MultiRowSelect_dataUpdation_spec.js deleted file mode 100644 index 2515463b6c58..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_MultiRowSelect_dataUpdation_spec.js +++ /dev/null @@ -1,40 +0,0 @@ -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -const widgetsPage = require("../../../../../locators/Widgets.json"); -import { - agHelper, - deployMode, - entityExplorer, - propPane, - table, -} from "../../../../../support/Objects/ObjectsCore"; - -/* -Selected row stays selected after data updation -if the primary column value isn't updated. -*/ -describe( - "Table Widget row multi select validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - agHelper.AddDsl("multiSelectedRowUpdationDsl"); - }); - - it("Test multi select column shows when enableMultirowselection is true and not when enableMultirowselection is off", function () { - agHelper.GetNClick(widgetsPage.buttonWidget); - cy.get(widgetsPage.buttonWidget).last().click(); - deployMode.DeployApp(); - agHelper.GetNClick(table._multirowselect, 1); - agHelper.GetNClick(table._multirowselect, 2); - agHelper.AssertElementLength(table._selectedrow, 2); - deployMode.NavigateBacktoEditor(); - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - propPane.TogglePropertyState("Enable multi row selection", "Off"); - deployMode.DeployApp(); - agHelper.AssertElementAbsence(table._multirowselect); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_MultiRowSelect_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_MultiRowSelect_spec.js deleted file mode 100644 index ba640223c233..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_MultiRowSelect_spec.js +++ /dev/null @@ -1,66 +0,0 @@ -const widgetsPage = require("../../../../../locators/Widgets.json"); -const commonlocators = require("../../../../../locators/commonlocators.json"); -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget row multi select validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableNewDsl"); - }); - - it("1. Test multi select column shows when enable Multirowselection is true", function () { - cy.openPropertyPane("tablewidget"); - cy.get(widgetsPage.toggleEnableMultirowselection_tablev1) - .first() - .click({ force: true }); - cy.closePropertyPane("tablewidget"); - cy.get(".t--table-multiselect-header").should("be.visible"); - cy.get(".t--table-multiselect").should("be.visible"); - //Test click on header cell selects all row - // click on header check cell - cy.get(".t--table-multiselect-header").first().click({ force: true }); - // check if rows selected - cy.get(".tr").should("have.class", "selected-row"); - //Test click on single row cell changes header select cell state - // un-select all rows - cy.get(".t--table-multiselect-header").first().click({ force: true }); - // click on first row select box - cy.get(".t--table-multiselect").first().click({ force: true }).wait(500); - // check if header cell is in half check state - cy.get(".t--table-multiselect-header-half-check-svg").should( - "be.visible", - ); - }); - it("2. Test action configured on onRowSelected get triggered whenever a table row is selected", function () { - cy.openPropertyPane("tablewidget"); - cy.getAlert("onRowSelected", "Row Selected"); - // un select first row - cy.get(".t--table-multiselect").first().click({ force: true }); - cy.get(commonlocators.toastmsg).should("not.exist"); - // click on first row select box - cy.get(".t--table-multiselect").first().click({ force: true }); - cy.get(commonlocators.toastmsg).contains("Row Selected"); - }); - - it("3. It should deselected default Selected Row when the header cell is clicked", () => { - cy.openPropertyPane("tablewidget"); - cy.testJsontext("defaultselectedrow", 0); - - // click on header check cell - cy.get(".t--table-multiselect-header").first().click({ - force: true, - }); - // check if rows selected - cy.get(".tr").should("not.have.class", "selected-row"); - - // click on header check cell - cy.get(".t--table-multiselect-header").first().click({ - force: true, - }); - // check if rows is not selected - cy.get(".tr").should("have.class", "selected-row"); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Number_column_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Number_column_spec.js deleted file mode 100644 index 05da815adf2c..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Number_column_spec.js +++ /dev/null @@ -1,51 +0,0 @@ -/* eslint-disable cypress/no-unnecessary-waiting */ -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Validate Table Widget Table data", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("basicNumberDataTableDsl"); - }); - - it("Check number key in table data convert table binding and header properly", function () { - cy.openPropertyPane("tablewidget"); - - // numeric table data - const tableData = [ - { - 1: "abc", - 2: "bcd", - 3: "cde", - Dec: "mon", - demo: "3", - demo_1: "1", - "test one": "1", - "test 3 4 9": "4", - rowIndex: "0", - }, - { - 1: "asd", - 2: "dfg", - 3: "jkl", - Dec: "mon2", - demo: "2", - demo_1: "1", - "test one": "2", - "test 3 4 9": "3", - rowIndex: "1", - }, - ]; - // add data manually - cy.testJsontext("tabledata", JSON.stringify(tableData)); - - cy.contains('[role="columnheader"]', "_1").should("exist"); - cy.contains('[role="columnheader"]', "_2").should("exist"); - }); - - afterEach(() => { - // put your clean up code if any - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_PropertyPane_1_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_PropertyPane_1_spec.js deleted file mode 100644 index 444225153534..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_PropertyPane_1_spec.js +++ /dev/null @@ -1,229 +0,0 @@ -const widgetsPage = require("../../../../../locators/Widgets.json"); -const commonlocators = require("../../../../../locators/commonlocators.json"); -const testdata = require("../../../../../fixtures/testdata.json"); -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget property pane feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableNewDslWithPagination"); - }); - - // To be done: - // Column Data type: Video - it("1. Check open section and column data in property pane", function () { - cy.openPropertyPane("tablewidget"); - - // Validate the columns are visible in the property pane - cy.tableColumnDataValidation("id"); - cy.tableColumnDataValidation("email"); - cy.tableColumnDataValidation("userName"); - cy.tableColumnDataValidation("productName"); - cy.tableColumnDataValidation("orderAmount"); - - // Updating the column name ; "id" > "TestUpdated" - cy.tableColumnPopertyUpdate("id", "TestUpdated"); - - // Add new column in the table with name "CustomColumn" - cy.addColumn("CustomColumn"); - - cy.tableColumnDataValidation("customColumn1"); //To be updated later - - // Hide all other columns - cy.hideColumn("email"); - cy.hideColumn("userName"); - cy.hideColumn("productName"); - cy.hideColumn("orderAmount"); - - // Verifying the newly added column - cy.get(".draggable-header:contains('CustomColumn')").should("be.visible"); - }); - - it("2. Column Detail - Edit column name and validate test for computed value based on column type selected (Email, Number, Date)", function () { - cy.wait(1000); - cy.makeColumnVisible("email"); - cy.makeColumnVisible("userName"); - cy.makeColumnVisible("productName"); - cy.makeColumnVisible("orderAmount"); - cy.openPropertyPane("tablewidget"); - - // Open column detail to be edited by draggable id - cy.editColumn("id"); - // Change the column name - cy.editColName("updatedId"); - // Reading single cell value of the table and verify it's value. - cy.readTabledataPublish("1", "1").then((tabData) => { - const tabValue = tabData; - cy.log(tabData); - expect(tabData).to.not.equal("2736212"); - // Changing the Computed value from "id" to "Email" - cy.updateComputedValue(testdata.currentRowEmail); - // Reading single cell value of the table and verify it's value. - cy.readTabledataPublish("1", "0").then((tabData2) => { - cy.log(tabData2); - expect(tabData2).to.be.equal(tabValue); - cy.log("computed value of plain text " + tabData2); - }); - }); - - // Changing Column data type from "Plain text" to "Number" - cy.changeColumnType("Number", false); - cy.readTabledataPublish("1", "4").then((tabData) => { - cy.log(tabData); - expect(tabData).to.not.equal("lindsay.ferguson@reqres.in"); - // Email to "orderAmount" - cy.updateComputedValue(testdata.currentRowOrderAmt); - cy.readTabledataPublish("1", "0").then((tabData2) => { - cy.log(tabData2); - expect(tabData2).to.be.equal(tabData); - cy.log("computed value of number is " + tabData2); - }); - }); - - // Changing Column data type from "Number" to "Date" - cy.changeColumnType("Date", false); - // orderAmout to "Moment Date" - cy.updateComputedValue(testdata.momentDate); - cy.readTabledataPublish("1", "1").then((tabData) => { - expect(tabData).to.not.equal("9.99"); - cy.log("computed value of Date is " + tabData); - }); - - // Changing Column data type from "URL" to "Video" - /* const videoVal = 'https://youtu.be/Sc-m3ceZyfk'; - cy.changeColumnType("Video", false); - // "Moement "date" to "Video" - cy.updateComputedValue(videoVal); - // cy.testJson text("computedvalue", videoVal, ) - // Verifying the href of the Video added. - cy.readTableLinkPublish("1", "1").then((hrefVal) => { - expect(hrefVal).to.be.equal(videoVal); - });*/ - }); - - it("3. Column Detail - Edit column name and validate test for computed value based on column type selected (image, button , url)", function () { - // Changing Column data type from "Date" to "Image" - const imageVal = "http://host.docker.internal:4200/453-200x300.jpg"; - - cy.changeColumnType("Image", false); - // "Moement "date" to "Image" - cy.updateComputedValue(imageVal); - // Verifying the href of the image added. - cy.readTableLinkPublish("1", "0").then((hrefVal) => { - expect(hrefVal).to.be.contains(imageVal); - }); - - // change column data type to "icon button" - cy.changeColumnType("Icon button", false); - cy.wait(400); - cy.get(commonlocators.selectedIcon).should("have.text", "add"); - - cy.getTableDataSelector("0", "0").then((selector) => { - cy.get(selector + " button.bp3-button [data-icon=add]").should("exist"); - }); - - // Changing Column data type from "Date" to "URl" - cy.readTabledataPublish("1", "1").then((actualEmail) => { - cy.changeColumnType("URL", false); - // "Image" to "url" - cy.updateComputedValue(testdata.currentRowEmail); - cy.readTabledataPublish("1", "0").then((tabData2) => { - expect(tabData2) - .to.equal("lindsay.ferguson@reqres.in") - .to.eq(actualEmail); - cy.log("computed value of URL is " + tabData2); - }); - }); - }); - - it("4. Test to validate text alignment", function () { - // Verifying Center Alignment - cy.xpath(widgetsPage.textCenterAlign).first().click({ force: true }); - cy.readTabledataValidateCSS("1", "0", "justify-content", "center", true); - - // Verifying Right Alignment - cy.xpath(widgetsPage.rightAlign).first().click({ force: true }); - cy.readTabledataValidateCSS( - "1", - "0", - "justify-content", - "flex-end", - true, - ); - - // Verifying Left Alignment - cy.xpath(widgetsPage.leftAlign).first().click({ force: true }); - cy.readTabledataValidateCSS( - "0", - "0", - "justify-content", - "flex-start", - true, - ); - }); - - it("5. Test to validate vertical alignment", function () { - // Validate vertical alignemnt of Cell text to TOP - cy.get(widgetsPage.verticalTop).click({ force: true }); - cy.readTabledataValidateCSS("1", "0", "align-items", "flex-start", true); - // Validate vertical alignemnt of Cell text to Center - cy.get(widgetsPage.verticalCenter).last().click({ force: true }); - cy.readTabledataValidateCSS("1", "0", "align-items", "center", true); - // Validate vertical alignemnt of Cell text to Bottom - cy.get(widgetsPage.verticalBottom).last().click({ force: true }); - cy.readTabledataValidateCSS("0", "0", "align-items", "flex-end", true); - }); - - it("6. Test to validate text color and text background", function () { - cy.openPropertyPane("tablewidget"); - - // Changing text color to rgb(219, 234, 254) and validate - cy.selectColor("textcolor"); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(5000); - cy.wait("@updateLayout"); - cy.readTabledataValidateCSS("1", "0", "color", "rgb(219, 234, 254)"); - - // Changing text color to PURPLE and validate using JS - cy.get(widgetsPage.toggleJsColor).click({ force: true }); - cy.wait(500); - cy.testCodeMirrorLast("purple"); - cy.wait("@updateLayout"); - cy.readTabledataValidateCSS("1", "0", "color", "rgb(128, 0, 128)"); - cy.get(commonlocators.editPropBackButton).click(); - // Changing Cell backgroud color to rgb(219, 234, 254) and validate - cy.selectColor("cellbackgroundcolor"); - cy.readTabledataValidateCSS( - "0", - "0", - "background", - "rgb(219, 234, 254) none repeat scroll 0% 0% / auto padding-box border-box", - true, - ); - // Changing Cell backgroud color to PURPLE and validate using JS - _.propPane.EnterJSContext("Cell background color", "purple"); - cy.wait("@updateLayout"); - cy.readTabledataValidateCSS( - "0", - "0", - "background", - "rgb(128, 0, 128) none repeat scroll 0% 0% / auto padding-box border-box", - true, - ); - // close property pane - cy.closePropertyPane(); - }); - - it("7. Table-Delete Verification", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - // Delete the Table widget - cy.deleteWidget(widgetsPage.tableWidget); - _.deployMode.DeployApp(); - // Verify the Table widget is deleted - cy.get(widgetsPage.tableWidget).should("not.exist"); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_PropertyPane_2_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_PropertyPane_2_spec.js deleted file mode 100644 index 30f565309753..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_PropertyPane_2_spec.js +++ /dev/null @@ -1,189 +0,0 @@ -const widgetsPage = require("../../../../../locators/Widgets.json"); -const commonlocators = require("../../../../../locators/commonlocators.json"); -import { - agHelper, - deployMode, - locators, - table, -} from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget property pane feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - agHelper.AddDsl("tableNewDslWithPagination"); - }); - - // To be done: - // Column Data type: Video - - it("1. Verify On Row Selected Action", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - // Select show message in the "on selected row" dropdown - cy.getAlert("onRowSelected", "Row is selected"); - deployMode.DeployApp(locators._widgetInDeployed("tablewidget")); - table.WaitUntilTableLoad(0, 0, "v1"); - // Select 1st row - table.SelectTableRow(1); - // Verify Row is selected by showing the message - agHelper.ValidateToastMessage("Row is selected"); - deployMode.NavigateBacktoEditor(); - }); - - it("2. Check On Page Change Action", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - // Select show message in the "on selected row" dropdown - cy.getAlert("onPageChange", "Page Changed"); - deployMode.DeployApp(locators._widgetInDeployed("tablewidget")); - table.WaitUntilTableLoad(0, 0, "v1"); - cy.wait(2000); - // Change the page - cy.get(widgetsPage.nextPageButton).click({ force: true }); - // Verify the page is changed - agHelper.ValidateToastMessage("Page Changed"); - deployMode.NavigateBacktoEditor(); - }); - - it("3. Verify On Search Text Change Action", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - // Show Message on Search text change Action - cy.getAlert("onSearchTextChanged", "Search Text Changed"); - deployMode.DeployApp(locators._widgetInDeployed("tablewidget")); - table.WaitUntilTableLoad(0, 0, "v1"); - // Change the Search text - cy.get(widgetsPage.searchField).first().type("Hello"); - // Verify the search text is changed - cy.get(commonlocators.toastmsg).contains("Search Text Changed"); - deployMode.NavigateBacktoEditor(); - }); - - it("4. Test to validate text format", function () { - cy.openPropertyPane("tablewidget"); - cy.editColumn("id"); - // Validate Bold text - cy.get(widgetsPage.bold).click({ force: true }); - cy.wait(2000); - cy.reload(); - cy.readTabledataValidateCSS("1", "0", "font-weight", "700"); - // Validate Italic text - cy.get(widgetsPage.italics).click({ force: true }); - cy.readTabledataValidateCSS("0", "0", "font-style", "italic"); - }); - - it("5. Verify default search text", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - cy.backFromPropertyPanel(); - // Chage deat search text value to "data" - cy.testJsontext("defaultsearchtext", "data"); - deployMode.DeployApp(locators._widgetInDeployed("tablewidget")); - table.WaitUntilTableLoad(0, 0, "v1"); - // Verify the deaullt search text - cy.get(widgetsPage.searchField).should("have.value", "data"); - deployMode.NavigateBacktoEditor(); - }); - - it("6. Verify default selected row", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - cy.backFromPropertyPanel(); - cy.testJsontext("defaultsearchtext", ""); - // Change default selected row value to 1 - cy.get(widgetsPage.defaultSelectedRowField).type("1"); - cy.wait(2000); - deployMode.DeployApp(locators._widgetInDeployed("tablewidget")); - table.WaitUntilTableLoad(0, 0, "v1"); - // Verify the default selected row - cy.get(widgetsPage.selectedRow).should( - "have.css", - "background-color", - "rgb(227, 223, 251)", - ); - deployMode.NavigateBacktoEditor(); - }); - - it("7. Verify table column type button with button variant", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - // Add new column in the table with name "CustomColumn" - cy.addColumn("CustomColumn"); - - cy.tableColumnDataValidation("customColumn1"); //To be updated later - - cy.editColumn("customColumn1"); - cy.changeColumnType("Button", false); - // default selected opts - cy.get(commonlocators.tableButtonVariant + " span span").should( - "have.text", - "Primary", - ); - cy.getTableDataSelector("1", "5").then((selector) => { - cy.get(selector + " button").should( - "have.css", - "background-color", - "rgb(85, 61, 233)", - ); - cy.get(selector + " button > span").should( - "have.css", - "color", - "rgb(255, 255, 255)", - ); - }); - cy.selectDropdownValue( - commonlocators.tableButtonVariant + " input", - "Secondary", - ); - cy.get(commonlocators.tableButtonVariant + " span span").should( - "have.text", - "Secondary", - ); - cy.getTableDataSelector("1", "5").then((selector) => { - cy.get(selector + " button").should( - "have.css", - "background-color", - "rgba(0, 0, 0, 0)", - ); - cy.get(selector + " button > span").should( - "have.css", - "color", - "rgb(85, 61, 233)", - ); - cy.get(selector + " button").should( - "have.css", - "border", - `1px solid rgb(85, 61, 233)`, - ); - }); - cy.selectDropdownValue( - commonlocators.tableButtonVariant + " input", - "Tertiary", - ); - cy.get(commonlocators.tableButtonVariant + " span span").should( - "have.text", - "Tertiary", - ); - cy.getTableDataSelector("1", "5").then((selector) => { - cy.get(selector + " button").should( - "have.css", - "background-color", - "rgba(0, 0, 0, 0)", - ); - cy.get(selector + " button > span").should( - "have.css", - "color", - "rgb(85, 61, 233)", - ); - cy.get(selector + " button").should( - "have.css", - "border", - "0px none rgb(24, 32, 38)", - ); - }); - cy.closePropertyPane(); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_PropertyPane_IconName_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_PropertyPane_IconName_spec.js deleted file mode 100644 index d8297951f0fe..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_PropertyPane_IconName_spec.js +++ /dev/null @@ -1,41 +0,0 @@ -const commonlocators = require("../../../../../locators/commonlocators.json"); -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget property pane feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableNewDslWithPagination"); - }); - - it("Verify table column type changes effect on menuButton and iconButton", function () { - cy.openPropertyPane("tablewidget"); - cy.addColumn("CustomColumn"); - cy.editColumn("customColumn1"); - - cy.changeColumnType("Menu button", false); - cy.wait(400); - cy.get(commonlocators.selectedIcon).should("have.text", "(none)"); - cy.getTableDataSelector("1", "5").then((selector) => { - cy.get(selector + " button span.bp3-icon").should("not.exist"); - }); - - cy.changeColumnType("Icon button", false); - cy.wait(400); - cy.get(commonlocators.selectedIcon).should("have.text", "add"); - cy.getTableDataSelector("1", "5").then((selector) => { - cy.get(selector + " button span.bp3-icon-add").should("exist"); - }); - - cy.changeColumnType("Menu button", false); - cy.wait(500); - cy.get(commonlocators.selectedIcon).should("have.text", "(none)"); - cy.getTableDataSelector("1", "5").then((selector) => { - cy.get(selector + " button span.bp3-icon").should("not.exist"); - }); - - cy.closePropertyPane(); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Property_JsonUpdate_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Property_JsonUpdate_spec.js deleted file mode 100644 index e20ef0227328..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Property_JsonUpdate_spec.js +++ /dev/null @@ -1,105 +0,0 @@ -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -const commonlocators = require("../../../../../locators/commonlocators.json"); -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Test Create Api and Bind to Table widget", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableTextPaginationDsl"); - }); - - it("1. Create an API and Execute the API and bind with Table", function () { - cy.createAndFillApi( - this.dataSet.paginationUrl, - this.dataSet.paginationParam, - ); - _.agHelper.VerifyEvaluatedValue( - this.dataSet.paginationUrl + "mock-api?records=20&page=1&size=10", - ); - cy.RunAPI(); - }); - - it("2. Validate Table with API data and then add a column", function () { - // Open property pane - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - // Change the table data to Apil data users - cy.testJsontext("tabledata", "{{Api1.data}}"); - // Check server sided pagination - cy.CheckWidgetProperties(commonlocators.serverSidePaginationCheckbox); - // Open property pane of Text1 - EditorNavigation.SelectEntityByName("Text1", EntityType.Widget); - // Change the text value to selected url - cy.testJsontext("text", "{{Table1.selectedRow.url}}"); - // Open property pane - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - // Copmre the table 1st index with itself - cy.readTabledata("0", "0").then((tabData) => { - const tableData = tabData; - localStorage.setItem("tableDataPage1", tableData); - }); - cy.readTabledata("0", "4").then((tabData) => { - const tableData = tabData; - expect(tableData).to.equal("1"); - }); - // Add new column - cy.addColumn("CustomColumn"); - }); - - it("3. Update table json data and check the column names updated and validate empty value", function () { - // Open property pane - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - // Change the table data - cy.testJsontext( - "tabledata", - JSON.stringify(this.dataSet.TableInputWithNull), - ); - cy.wait("@updateLayout"); - // Verify the columns are visible in property pane - cy.tableColumnDataValidation("id"); - cy.tableColumnDataValidation("email"); - cy.tableColumnDataValidation("userName"); - cy.tableColumnDataValidation("productName"); - cy.tableColumnDataValidation("orderAmount"); - cy.tableColumnDataValidation("customColumn1"); - // Hide the columns in the table from property pane - cy.hideColumn("id"); - cy.hideColumn("email"); - cy.hideColumn("userName"); - cy.hideColumn("productName"); - // Verify CustomColumn is visible - cy.get(".draggable-header:contains('CustomColumn')").should("be.visible"); - // close property pane - cy.closePropertyPane(); - // Validate the empty values - cy.readTabledataPublish("0", "0").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal(""); - }); - }); - - it("4. Check Selected Row(s) Resets When Table data Changes", function () { - // Select 1st row - _.table.SelectTableRow(1); - cy.openPropertyPane("tablewidget"); - // Empty first row - cy.testJsontext("tabledata", "[]"); - cy.wait("@updateLayout"); - const newTableData = [...this.dataSet.TableInput]; - newTableData[0].userName = ""; - // Change table data from empty to some - cy.testJsontext("tabledata", JSON.stringify(newTableData)); - cy.wait("@updateLayout"); - const selectedRowsSelector = `.t--widget-tablewidget .tbody .tr.selected-row`; - // Verify selected row resets on table data changes - cy.get(selectedRowsSelector).should(($p) => { - // should found 0 rows - expect($p).to.have.length(0); - }); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Switch_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Switch_spec.js deleted file mode 100644 index c76445ff7f1c..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Switch_spec.js +++ /dev/null @@ -1,58 +0,0 @@ -/* eslint-disable cypress/no-unnecessary-waiting */ -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget and Switch binding Functionality", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("swtchTableDsl"); - }); - - it("Table Widget Data validation with Switch ON", function () { - cy.openPropertyPane("tablewidget"); - cy.readTabledataPublish("1", "1").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("30"); - cy.log("the value is" + tabValue); - }); - cy.get(".t--switch-widget-active .bp3-control-indicator").click({ - force: true, - }); - cy.wait(5000); - cy.readTabledataPublish("1", "1").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("9"); - cy.log("the value is" + tabValue); - }); - cy.get(".t--switch-widget-inactive .bp3-control-indicator").click({ - force: true, - }); - cy.wait(5000); - - cy.readTabledataPublish("1", "1").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("30"); - cy.log("the value is" + tabValue); - }); - }); - - it("Selected row and binding with Text widget", function () { - cy.wait(5000); - cy.get(".t--table-multiselect").eq(1).click({ force: true }); - cy.get(".t--draggable-textwidget .bp3-ui-text span").should( - "contain.text", - "30", - ); - cy.get(".t--table-multiselect").eq(0).click({ force: true }); - cy.get(".t--draggable-textwidget .bp3-ui-text span").should( - "contain.text", - "29", - ); - }); - - afterEach(() => { - // put your clean up code if any - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Add_button_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Add_button_spec.js deleted file mode 100644 index ad7030e17bd5..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Add_button_spec.js +++ /dev/null @@ -1,365 +0,0 @@ -const widgetsPage = require("../../../../../locators/Widgets.json"); -const commonlocators = require("../../../../../locators/commonlocators.json"); -import { agHelper, propPane } from "../../../../../support/Objects/ObjectsCore"; -const testdata = require("../../../../../fixtures/testdata.json"); - -describe( - "Table Widget property pane feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - agHelper.AddDsl("tableNewDsl"); - }); - - it("1. Table widget with Add button test and validation", function () { - cy.openPropertyPane("tablewidget"); - // Open column details of "id". - cy.editColumn("id"); - cy.get(widgetsPage.tableBtn).should("not.exist"); - // Changing column data type to "Button" - cy.changeColumnType("Button", false); - // Changing the computed value (data) to "orderAmount" - cy.updateComputedValue(testdata.currentRowOrderAmt); - // Selecting button action to show message - cy.getAlert("onClick", "Successful ".concat(testdata.currentRowEmail)); - // Close Property pane - cy.get(commonlocators.editPropBackButton).click({ - force: true, - }); - agHelper.Sleep(); - // Validating the button action by clicking - cy.get(widgetsPage.tableBtn).last().click({ force: true }); - // eslint-disable-next-line cypress/no-unnecessary-waiting - agHelper.Sleep(); - // Validating the toast message - cy.get(widgetsPage.toastAction).should("be.visible"); - cy.get(widgetsPage.toastActionText) - .last() - .invoke("text") - .then((text) => { - expect(text).to.equal("Successful tobias.funke@reqres.in"); - }); - - // Open column details of "id". - cy.editColumn("id"); - - cy.get(widgetsPage.toggleOnClick).click({ force: true }); - cy.get(".t--property-control-onclick").then(($el) => { - cy.updateCodeInput( - $el, - "{{showAlert('Successful' + currentRow.email).then(() => showAlert('second alert')) }}", - ); - }); - - cy.get(commonlocators.editPropBackButton).click({ - force: true, - }); - - // Validating the button action by clicking - cy.get(widgetsPage.tableBtn).last().click({ force: true }); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(3000); - - cy.get(widgetsPage.toastActionText) - .last() - .invoke("text") - .then((text) => { - expect(text).to.equal("second alert"); - }); - }); - - it("2. Table Button color validation", function () { - cy.openPropertyPane("tablewidget"); - // Open column details of "id". - cy.editColumn("id"); - // Changing column data type to "Button" - /* cy.get(commonlocators.changeColType) - .last() - .click(); - cy.get(".t--dropdown-option") - .children() - .contains("Plain text") - .click(); - cy.changeColumnType("Button", false); */ - const color1 = "rgb(255, 0, 0)"; - cy.get(widgetsPage.buttonColor) - .click({ force: true }) - .clear() - .type(color1, { force: true, delay: 0 }); - cy.get(widgetsPage.tableBtn).should( - "have.css", - "background-color", - color1, - ); - - // Changing the color again to reproduce issue #9526 - const color2 = "rgb(255, 255, 0)"; - cy.get(widgetsPage.buttonColor) - .click({ force: true }) - .clear() - // following wait is required to reproduce #9526 - .wait(600) - .type(color2, { delay: 0 }); - cy.get(widgetsPage.tableBtn).should( - "have.css", - "background-color", - color2, - ); - }); - - it("3. Table widget triggeredRow property should be accessible", function () { - cy.get(commonlocators.TextInside).should("have.text", "Tobias Funke"); - // Table widget triggeredRow property should be same even after sorting the table", function () { - //sort table date on second column - cy.get(".draggable-header ").first().click({ force: true }); - cy.wait(1000); - cy.get(commonlocators.TextInside).should("have.text", "Tobias Funke"); - }); - - it("4. Table widget add new icon button column", function () { - cy.get("[data-testid='t--property-pane-back-btn']").click({ - force: true, - }); - // hide id column - cy.makeColumnVisible("id"); - cy.wait(1000); - // click on Add new Column. - //cy.get("[data-testid='t--property-pane-back-btn']").click({ force: true }); - cy.get(".t--add-column-btn").click(); - //Open New Custom Column - cy.editColumn("customColumn1"); - // Change Column type to icon Button - cy.changeColumnType("Icon button", false); - // Select Icon from Icon Control - cy.get(".t--property-control-icon .bp3-icon-caret-down").click({ - force: true, - }); - cy.get(".bp3-icon-add").first().click({ - force: true, - }); - cy.get(".t--widget-tablewidget .tbody .bp3-icon-add").should("exist"); - - // disabled icon btn - cy.CheckWidgetProperties(commonlocators.disableCheckbox); - cy.getTableDataSelector("0", "4").then((selector) => { - cy.get(selector + " button.bp3-disabled").should("exist"); - }); - cy.UncheckWidgetProperties(commonlocators.disableCheckbox); - - //Delete Column - cy.get("[data-testid='t--property-pane-back-btn']").click({ - force: true, - }); - cy.deleteColumn("customColumn1"); - // Close Property pane - /* - cy.get(commonlocators.editPropCrossButton).click({ - force: true, - }); - */ - }); - - it("5. Table widget add new menu button column", function () { - cy.openPropertyPane("tablewidget"); - // click on Add new Column. - cy.get(".t--add-column-btn").click(); - //Open New Custom Column - cy.editColumn("customColumn1"); - // Change Column type to icon Button - cy.changeColumnType("Menu button", false); - //Changing the text on the Menu button - cy.testJsontext("label", "Menu button"); - // Select Icon from Icon Control - cy.get(".t--property-control-icon .bp3-icon-caret-down").click({ - force: true, - }); - cy.get(".bp3-icon-airplane").first().click({ - force: true, - }); - // validate icon - cy.get(".t--widget-tablewidget .tbody .bp3-icon-airplane").should( - "exist", - ); - //cy.get(".editable-text-container").eq(1).click(); - // validate label - cy.contains("Menu button").should("exist"); - - const color1 = "rgb(255, 255, 0)"; - cy.get(widgetsPage.menuColor) - .click() - .clear() - .click({ force: true }) - .type(color1, { delay: 0 }); - - cy.get(widgetsPage.tableBtn).should( - "have.css", - "background-color", - color1, - ); - - // Changing the color again to reproduce issue #9526 - const color2 = "rgb(255, 0, 0)"; - cy.get(widgetsPage.menuColor) - .clear() - .click({ force: true }) - // following wait is required to reproduce #9526 - .wait(500) - .type(color2, { delay: 0 }); - cy.get(widgetsPage.tableBtn).should( - "have.css", - "background-color", - color2, - ); - - // Add a Menu item 1 - cy.get(".t--add-menu-item-btn") - .click({ - force: true, - }) - .wait(500); - // Edit a Menu item - cy.get(".t--property-pane-section-menuitems .t--edit-column-btn") - .first() - .click({ - force: true, - }); - cy.wait(1000); - // update menu item background color - cy.get(widgetsPage.backgroundcolorPickerNew) - .type("#03b365", { - force: true, - }) - .wait(500); - // Add action to the menu Item - cy.getAlert( - "onItemClick", - "Successful ".concat(testdata.currentRowEmail), - ); - // Go back to table property pane - cy.get("[data-testid='t--property-pane-back-btn']").click({ - force: true, - }); - - // Add a Menu item 2 - cy.get(".t--add-menu-item-btn").click({ - force: true, - }); - // Edit a Menu item - cy.get(".t--property-pane-section-menuitems .t--edit-column-btn") - .last() - .click({ - force: true, - }); - // update menu item background color - cy.get(widgetsPage.backgroundcolorPickerNew) - .clear() - .type("#FFC13D", { - force: true, - }) - .wait(500); - // Go back to table property pane - cy.get("[data-testid='t--property-pane-back-btn']").click({ - force: true, - }); - - // Add a Menu item 3 - cy.get(".t--add-menu-item-btn").click({ - force: true, - }); - // Edit a Menu item - cy.get(".t--property-pane-section-menuitems .t--edit-column-btn") - .last() - .click({ - force: true, - }); - // update menu item background color - cy.get(widgetsPage.backgroundcolorPickerNew) - .clear() - .type("#3366FF", { - force: true, - }) - .wait(500); - // Go back to table property pane - cy.get("[data-testid='t--property-pane-back-btn']").click({ - force: true, - }); - - // Close Property pane - cy.openPropertyPane("tablewidget"); - // Click on the Menu button - cy.contains("Menu button").click({ - force: true, - }); - cy.wait(1000); - - //Commenting below verification until fixed to overide flakiness - // // verify menu items background color - // cy.get(".bp3-menu-item") - // .eq(0) - // .should("have.css", "background-color", "rgb(3, 179, 101)"); - // cy.get(".bp3-menu-item") - // .eq(1) - // .should("have.css", "background-color", "rgb(51, 102, 255)"); //"rgb(255, 193, 61)"); - // cy.get(".bp3-menu-item") - // .eq(2) - // .should("have.css", "background-color", "rgb(255, 255, 255)");//"rgb(51, 102, 255)"); - - //cy.closePropertyPane(); - - cy.closePropertyPane(); - - // disable menu item 3 - //cy.openPropertyPane("tablewidget"); - - //cy.editColumn("customColumn1"); - // Edit a Menu item - cy.get(".t--property-pane-section-menuitems .t--edit-column-btn") - .last() - .click({ - force: true, - }); - cy.wait(1000); - cy.get(".t--property-control-disabled label input").click({ - force: true, - }); - //cy.closePropertyPane(); - - // Click on the Menu button - cy.clickButton("Menu button").wait(1000); - // check Menu Item 3 is disable - cy.get(".bp3-menu-item") - .eq(2) - .should("have.css", "background-color", "rgb(250, 250, 250)"); - cy.get(".bp3-menu-item").eq(2).should("have.class", "bp3-disabled"); - - // Click on the Menu Item - cy.get(".bp3-menu-item").eq(0).click({ - force: true, - }); - // Validating the toast message - cy.get(widgetsPage.toastAction).should("be.visible"); - cy.get(widgetsPage.toastActionText) - .last() - .invoke("text") - .then((text) => { - const someText = text; - expect(someText).to.equal("Successful tobias.funke@reqres.in"); - }); - }); - - it("6. Table widget test on button icon click, row should not get deselected", () => { - cy.get(widgetsPage.tableIconBtn).last().click({ force: true }); - cy.get(commonlocators.TextInside).should("have.text", "Tobias Funke"); - //click icon button again - cy.get(widgetsPage.tableIconBtn).last().click({ force: true }); - cy.get(commonlocators.TextInside).should("have.text", "Tobias Funke"); - cy.get("[data-testid='t--property-pane-back-btn']").click({ - force: true, - }); - cy.wait(500); - cy.get("[data-testid='t--property-pane-back-btn']").click({ - force: true, - }); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Copy_Paste_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Copy_Paste_spec.js deleted file mode 100644 index eb520e19fb6f..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Copy_Paste_spec.js +++ /dev/null @@ -1,62 +0,0 @@ -import { - PageLeftPane, - PagePaneSegment, -} from "../../../../../support/Pages/EditorNavigation"; - -const apiwidget = require("../../../../../locators/apiWidgetslocator.json"); -const commonlocators = require("../../../../../locators/commonlocators.json"); -const widgetsPage = require("../../../../../locators/Widgets.json"); -import { - agHelper, - entityExplorer, -} from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Test Suite to validate copy/paste table Widget", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - agHelper.AddDsl("tableNewDsl"); - }); - - it("Copy paste table widget and valdiate application status", function () { - const modifierKey = Cypress.platform === "darwin" ? "meta" : "ctrl"; - cy.openPropertyPane("tablewidget"); - cy.widgetText( - "Table1", - widgetsPage.tableWidget, - widgetsPage.widgetNameSpan, - ); - cy.get("body").type(`{${modifierKey}}c`); - // eslint-disable-next-line cypress/no-unnecessary-waiting - cy.wait(500); - cy.get(commonlocators.toastBody).first().contains("Copied"); - cy.get("body").click(); - cy.get("body").type(`{${modifierKey}}v`, { force: true }); - cy.wait("@updateLayout").should( - "have.nested.property", - "response.body.responseMeta.status", - 200, - ); - cy.get(commonlocators.toastAction).should("be.visible"); - - //Check after copying new table widget should not have any warnings - cy.get('.t--widget-propertypane-toggle [name="warning"]').should( - "not.exist", - ); - cy.get(commonlocators.toastAction).should("not.be.visible"); - cy.wait(2000); - PageLeftPane.switchSegment(PagePaneSegment.UI); - entityExplorer.ActionContextMenuByEntityName({ - entityNameinLeftSidebar: "Table1Copy", - action: "Show bindings", - }); - cy.wait(200); - cy.get(apiwidget.propertyList).then(function ($lis) { - expect($lis).to.have.length(13); - expect($lis.eq(0)).to.contain("{{Table1Copy.selectedRow}}"); - expect($lis.eq(1)).to.contain("{{Table1Copy.selectedRows}}"); - }); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Default_Row_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Default_Row_spec.js deleted file mode 100644 index 7a73959022fa..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Default_Row_spec.js +++ /dev/null @@ -1,28 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; -import EditorNavigation, { - EntityType, -} from "../../../../../support/Pages/EditorNavigation"; - -describe( - "Table Widget property pane deafult feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("defaultTableDsl"); - }); - - it("Verify default table row Data", function () { - // Open property pane - cy.openPropertyPane("tablewidget"); - cy.wait(2000); - EditorNavigation.SelectEntityByName("Table1", EntityType.Widget); - - cy.wait(2000); - cy.readTabledataFromSpecificIndex("2", "0", 1).then((tabData) => { - const tabValue = tabData; - cy.log("the table is" + tabValue); - cy.get(".bp3-ui-text span").eq(0).should("have.text", tabData); - }); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Derived_Column_Computed_value_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Derived_Column_Computed_value_spec.js deleted file mode 100644 index 6bc2f08ebf7a..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Derived_Column_Computed_value_spec.js +++ /dev/null @@ -1,39 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; -const testdata = require("../../../../../fixtures/testdata.json"); - -describe( - "Table Widget property pane feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableNewDsl"); - }); - - it("Test to add column", function () { - cy.openPropertyPane("tablewidget"); - // Adding new column - cy.addColumn("CustomColumn"); - cy.tableColumnDataValidation("customColumn1"); //To be updated later - // Hiding all other columns in the table from property pane - cy.hideColumn("email"); - cy.hideColumn("userName"); - cy.hideColumn("productName"); - cy.hideColumn("orderAmount"); - // Validating the newly added column - cy.get(".draggable-header:contains('CustomColumn')").should("be.visible"); - //Test: Edit column name and validate test for computed value - // Open column detail by draggable id of the column - cy.editColumn("customColumn1"); - // Validating single cell value - cy.readTabledataPublish("1", "2").then(() => { - // Chaging the computed value to "Emails" - cy.updateComputedValue(testdata.currentRowWithIdOutside); - // Validating single cell value - cy.readTabledataPublish("1", "1").then((tabData) => { - expect(tabData).to.be.equal("#lindsay.ferguson@reqres.in"); - cy.log("computed value of plain text " + tabData); - }); - }); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Selected_row_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Selected_row_spec.js deleted file mode 100644 index 8d3c2ccc5d3f..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_Widget_Selected_row_spec.js +++ /dev/null @@ -1,21 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget property pane feature validation", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableAndTextDsl"); - }); - it("Table widget new menu button column should not deselect row", function () { - cy.openPropertyPane("tablewidget"); - - cy.get(".t--widget-textwidget").should("have.text", "0"); - cy.contains("Open Menu").click({ - force: true, - }); - cy.wait(1000); - cy.get(".t--widget-textwidget").should("have.text", "0"); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_spec.js deleted file mode 100644 index 3ecac68fe13f..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_spec.js +++ /dev/null @@ -1,168 +0,0 @@ -/* eslint-disable cypress/no-unnecessary-waiting */ -const widgetsPage = require("../../../../../locators/Widgets.json"); -const commonlocators = require("../../../../../locators/commonlocators.json"); -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget Functionality", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableWidgetDsl"); - }); - - it("Table Widget Functionality", function () { - cy.openPropertyPane("tablewidget"); - - /** - * @param{Text} Random Text - * @param{ChartWidget}Mouseover - * @param{ChartPre Css} Assertion - */ - cy.widgetText( - "Table1", - widgetsPage.tableWidget, - widgetsPage.widgetNameSpan, - ); - cy.testJsontext("tabledata", JSON.stringify(this.dataSet.TableInput)); - cy.wait("@updateLayout"); - //cy.get(widgetsPage.ColumnAction).click({ force: true }); - // cy.get(widgetsPage.tableOnRowSelected) - // .get(commonlocators.dropdownSelectButton) - // .first() - // .click({ force: true }) - // .get(commonlocators.dropdownmenu) - // .children() - // .contains("Navigate to") - // .click(); - // cy.wait("@updateLayout"); - // cy.get(widgetsPage.tableOnRowSelected) - // .get(commonlocators.dropdownSelectButton) - // .first() - // .find("> .bp3-button-text") - // .should("have.text", "{{navigateTo()}}"); - }); - - it("Table Widget Functionality To Verify The Data", function () { - cy.readTabledataPublish("1", "3").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Lindsay Ferguson"); - cy.log("the value is" + tabValue); - }); - }); - - it("Table Widget Functionality To Show a Base64 Image", function () { - cy.openPropertyPane("tablewidget"); - cy.editColumn("image"); - cy.changeColumnType("Image", false); - _.table.SelectTableRow(1); - - const index = 1; - const imageVal = this.dataSet.TableInput[index].image; - cy.readTableLinkPublish(index, "1").then((hrefVal) => { - expect(hrefVal).to.contain(imageVal); - }); - }); - - it("Table Widget Functionality To Check if Table is Sortable", function () { - cy.get(commonlocators.editPropBackButton).click(); - cy.openPropertyPane("tablewidget"); - // Confirm if isSortable is true - cy.get(commonlocators.isSortable_tablev1).should("be.checked"); - // Publish App - _.deployMode.DeployApp(); - // Confirm Current order - cy.readTabledataPublish("1", "3").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Lindsay Ferguson"); - }); - cy.readTabledataPublish("0", "3").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Michael Lawson"); - }); - // Sort Username Column - cy.contains('[role="columnheader"]', "userName").first().click({ - force: true, - }); - cy.wait(1000); - // Confirm order after sort - cy.readTabledataPublish("1", "3").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Ryan Holmes"); - }); - cy.readTabledataPublish("0", "3").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Tobias Funke"); - }); - // Back to edit page - _.deployMode.NavigateBacktoEditor(); - - cy.openPropertyPane("tablewidget"); - // Disable isSortable - // Confirm if isSortable is false - _.agHelper.CheckUncheck(commonlocators.isSortable_tablev1, false); - - // Publish App - _.deployMode.DeployApp(); - // Confirm Current order - cy.readTabledataPublish("1", "3").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Lindsay Ferguson"); - }); - cy.readTabledataPublish("0", "3").then((tabData) => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Michael Lawson"); - }); - // Confirm Sort is disable on Username Column - cy.contains('[role="columnheader"]', "userName").first().click({ - force: true, - }); - cy.wait(1000); - // Confirm order after sort - cy.readTabledataPublish("1", "3").then((tabData) => { - const tabValue = tabData; - expect(tabValue).not.to.be.equal("Ryan Holmes"); - }); - cy.readTabledataPublish("0", "3").then((tabData) => { - const tabValue = tabData; - expect(tabValue).not.to.be.equal("Tobias Funke"); - }); - }); - - /* - To enabled later - - it("Table Widget Functionality To Verify The Visiblity mode functionality", function() { - _.deployMode.NavigateBacktoEditor(); - _.table.SelectTableRow(1); - cy.readTabledataPublish("1", "3").then(tabData => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Lindsay Ferguson"); - cy.log("the value is" + tabValue); - cy.get(publish.visibilityMode).click(); - cy.get(publish.visibilityOpt) - .contains("userName") - .click(); - cy.get(publish.containerWidget).click(); - cy.readTabledataPublish("1", "3").then(tabData => { - const tabValue = tabData; - expect(tabValue).to.not.equal("Lindsay Ferguson"); - }); - cy.get(publish.visibilityMode).click(); - cy.get(publish.visibilityOpt) - .contains("userName") - .click(); - cy.get(publish.containerWidget).click(); - cy.readTabledataPublish("1", "3").then(tabData => { - const tabValue = tabData; - expect(tabValue).to.be.equal("Lindsay Ferguson"); - }); - }); - }); -*/ - - afterEach(() => { - // put your clean up code if any - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_tabledata_schema_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_tabledata_schema_spec.js deleted file mode 100644 index f91d34a5317f..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/Table_tabledata_schema_spec.js +++ /dev/null @@ -1,55 +0,0 @@ -import { - PageLeftPane, - PagePaneSegment, -} from "../../../../../support/Pages/EditorNavigation"; - -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table Widget", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableNewDsl"); - }); - it("1. Table Widget Functionality To Check with changing schema of tabledata", () => { - let jsContext = `{{Switch1.isSwitchedOn?[{name: "joe"}]:[{employee_name: "john"}];}}`; - cy.wait(5000); - cy.dragAndDropToCanvas("switchwidget", { x: 200, y: 200 }); - cy.wait(2000); - cy.openPropertyPane("tablewidget"); - cy.get(".t--property-control-tabledata").then(($el) => { - cy.updateCodeInput($el, jsContext); - }); - _.deployMode.DeployApp(); - cy.getTableDataSelector("0", "0").then((element) => { - cy.get(element).should("be.visible"); - }); - cy.readTabledataPublish("0", "0").then((value) => { - expect(value).to.be.equal("joe"); - }); - cy.get(".t--switch-widget-active").first().click(); - cy.get(".t--widget-tablewidget").scrollIntoView(); - cy.wait(1000); - cy.getTableDataSelector("0", "0").then((element) => { - cy.get(element).should("be.visible"); - }); - cy.readTabledataPublish("0", "0").then((value) => { - expect(value).to.be.equal("john"); - }); - cy.get(".t--switch-widget-inactive").first().click(); - cy.wait(1000); - cy.get(".t--widget-tablewidget").scrollIntoView(); - cy.getTableDataSelector("0", "0").then((element) => { - cy.get(element).should("be.visible"); - }); - cy.readTabledataPublish("0", "0").then((value) => { - expect(value).to.be.equal("joe"); - }); - _.deployMode.NavigateBacktoEditor(); - PageLeftPane.switchSegment(PagePaneSegment.UI); - _.entityExplorer.DeleteWidgetFromEntityExplorer("Switch1"); - _.entityExplorer.DeleteWidgetFromEntityExplorer("Table1"); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/table_with_text_no_2dArray_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/table_with_text_no_2dArray_spec.js deleted file mode 100644 index 67c03653ff71..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/table_with_text_no_2dArray_spec.js +++ /dev/null @@ -1,62 +0,0 @@ -import * as _ from "../../../../../support/Objects/ObjectsCore"; -const widgetsPage = require("../../../../../locators/Widgets.json"); -import { seconds, testTimeout } from "../../../../../support/timeout"; - -describe( - "Table widget edge case scenario testing", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableWithTextWidgetDsl"); - }); - - it("Check if the selectedRowIndices does not contain 2d array", function () { - testTimeout(seconds(120)); //2mins - - cy.openPropertyPane("tablewidget"); - - //Enable Multi row select - cy.get(widgetsPage.toggleEnableMultirowselection_tablev1) - .first() - .click({ force: true }); - - //Change the value of default selected row - cy.updateCodeInput(".t--property-control-defaultselectedrow", "1"); - - //Disable Multi row select - cy.get(widgetsPage.toggleEnableMultirowselection_tablev1) - .first() - .click({ force: true }); - - cy.get(`${widgetsPage.textWidget} .bp3-ui-text`).should( - "have.text", - "[]", - ); - - //Enable Multi row select - cy.get(widgetsPage.toggleEnableMultirowselection_tablev1) - .first() - .click({ force: true }); - - cy.get(`${widgetsPage.textWidget} .bp3-ui-text`).should( - "have.text", - "[ 1]", - ); - - //Disable Multi row select - cy.get(widgetsPage.toggleEnableMultirowselection_tablev1) - .first() - .click({ force: true }); - - //Enable Multi row select - cy.get(widgetsPage.toggleEnableMultirowselection_tablev1) - .first() - .click({ force: true }); - - cy.get(`${widgetsPage.textWidget} .bp3-ui-text`).should( - "have.text", - "[ 1]", - ); - }); - }, -); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/table_with_text_selRowIndices_spec.js b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/table_with_text_selRowIndices_spec.js deleted file mode 100644 index f79c2e83490f..000000000000 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV1/table_with_text_selRowIndices_spec.js +++ /dev/null @@ -1,49 +0,0 @@ -const widgetsPage = require("../../../../../locators/Widgets.json"); -const commonlocators = require("../../../../../locators/commonlocators.json"); -import * as _ from "../../../../../support/Objects/ObjectsCore"; - -describe( - "Table widget edge case scenario testing", - { tags: ["@tag.Widget", "@tag.Table", "@tag.Binding"] }, - function () { - before(() => { - _.agHelper.AddDsl("tableWithTextWidgetDsl"); - }); - - it("Check if the selectedRowIndices does not contain -1", function () { - cy.openPropertyPane("tablewidget"); - - //Update the property default selected row to blank - cy.updateCodeInput(".t--property-control-defaultselectedrow", ""); - - // ensure evaluated value popup does not show up - cy.get(commonlocators.evaluatedCurrentValue).should("not.exist"); - - //Check the value present in the textfield which is selectedRowIndices is blank - cy.get(`${widgetsPage.textWidget} .bp3-ui-text`).should("have.text", ""); - - //Enable the "Enable Multi Row selection" - cy.get(widgetsPage.toggleEnableMultirowselection_tablev1) - .first() - .click({ force: true }); - - //Check the value present in the textfield which is selectedRowIndices is [] - cy.get(`${widgetsPage.textWidget} .bp3-ui-text`).should( - "have.text", - "[]", - ); - - //Select the 1st, 2nd and 3rd row - _.table.SelectTableRow(0); - _.table.SelectTableRow(1); - _.table.SelectTableRow(2); - - //Check the value present in the textfield which is selectedRowIndices is [0,1,2] - cy.get(`${widgetsPage.textWidget} .bp3-ui-text`).should( - "have.text", - "[ 0, 1, 2]", - ); - }); - }, -); -// diff --git a/app/client/cypress/e2e/Regression/ServerSide/ApiTests/API_RunValidations_spec.ts b/app/client/cypress/e2e/Regression/ServerSide/ApiTests/API_RunValidations_spec.ts new file mode 100644 index 000000000000..83a785ddb367 --- /dev/null +++ b/app/client/cypress/e2e/Regression/ServerSide/ApiTests/API_RunValidations_spec.ts @@ -0,0 +1,45 @@ +import ApiEditor from "../../../../locators/ApiEditor"; +import { + apiPage, + agHelper, + dataManager, + assertHelper, +} from "../../../../support/Objects/ObjectsCore"; + +describe( + "API Panel request body", + { tags: ["@tag.Datasource", "@tag.Git", "@tag.AccessControl"] }, + function () { + it("1. Ensure that the run button is disabled when there are empty fields.", function () { + apiPage.CreateApi("FirstAPI"); + apiPage.AssertRunButtonDisability(true); + }); + + it('2. Validate we get an appropriate error message when an invalid URL is entered. Error should show up when nothing is entered & we click on "Import".', function () { + apiPage.CreateAndFillApi( + "htt://failedurlfortest", + "WhatTrumpThinks", + "SecondAPI", + ); + agHelper.GetNClick(apiPage._apiRunBtn, 0, true, 10000); + apiPage.ResponseStatusCheck("PE-RST-5000"); + }); + + // Cypress issue: https://github.com/cypress-io/cypress/issues/8267 + it("3. Validate keyboard navigation e.g. Cmd + Enter should trigger the Run button", function () { + apiPage.CreateAndFillApi( + dataManager.dsValues[dataManager.defaultEnviorment].randomTrumpApi, + "WhatTrumpThinks", + "ThirdAPI", + ); + agHelper.GetNClick(ApiEditor.dataSourceField, 0, true); + cy.get(ApiEditor.dataSourceField).type( + this.isMac ? "{cmd}{enter}" : "{ctrl}{enter}", + { + release: false, + }, + ); + assertHelper.AssertNetworkStatus("@postExecute"); + }); + }, +); diff --git a/app/client/cypress/support/Objects/CommonLocators.ts b/app/client/cypress/support/Objects/CommonLocators.ts index bee52cb0da7d..f5a1d8d2551d 100644 --- a/app/client/cypress/support/Objects/CommonLocators.ts +++ b/app/client/cypress/support/Objects/CommonLocators.ts @@ -353,4 +353,5 @@ export class CommonLocators { _listItemTitle = ".ads-v2-listitem__title"; _dropdownOption = ".rc-select-item-option-content"; _dropdownActiveOption = ".rc-select-dropdown .rc-select-item-option-active"; + _homeIcon = "[data-testid='t--default-home-icon']"; } diff --git a/app/client/cypress/support/Objects/FeatureFlags.ts b/app/client/cypress/support/Objects/FeatureFlags.ts index b8385241ddda..78fc490c3f97 100644 --- a/app/client/cypress/support/Objects/FeatureFlags.ts +++ b/app/client/cypress/support/Objects/FeatureFlags.ts @@ -3,7 +3,6 @@ import { ObjectsRegistry } from "./Registry"; import produce from "immer"; const defaultFlags = { - release_side_by_side_ide_enabled: true, rollout_remove_feature_walkthrough_enabled: false, // remove this flag from here when it's removed from code release_git_modularisation_enabled: true, }; diff --git a/app/client/cypress/support/Pages/IDE/Sidebar.ts b/app/client/cypress/support/Pages/IDE/Sidebar.ts index 6d9d93c125f4..e45c902ca1ae 100644 --- a/app/client/cypress/support/Pages/IDE/Sidebar.ts +++ b/app/client/cypress/support/Pages/IDE/Sidebar.ts @@ -10,7 +10,7 @@ export class Sidebar { } navigate(button: string, willFail = false) { - this.assertVisible(); + this.assertVisible(Cypress.config().pageLoadTimeout); cy.get(this.locators.sidebar) .find(this.locators.sidebarButton(button)) .as("navigateBtn") @@ -22,7 +22,7 @@ export class Sidebar { ); } - assertVisible(timeout: number = 10000) { + assertVisible(timeout: number = 60000) { cy.get(this.locators.sidebar, { timeout }).should("be.visible"); } } diff --git a/app/client/cypress/support/Pages/PartialImportExport.ts b/app/client/cypress/support/Pages/PartialImportExport.ts index b8a6e5c0ef49..9a5bd98ff042 100644 --- a/app/client/cypress/support/Pages/PartialImportExport.ts +++ b/app/client/cypress/support/Pages/PartialImportExport.ts @@ -36,9 +36,9 @@ export default class PartialImportExport { }, }; - OpenExportModal() { + OpenExportModal(entityName = "Home") { this.entityExplorer.ActionContextMenuByEntityName({ - entityNameinLeftSidebar: "Home", + entityNameinLeftSidebar: entityName, action: "Export", entityType: EntityItems.Page, }); @@ -49,18 +49,17 @@ export default class PartialImportExport { ); } - OpenImportModal() { + OpenImportModal(entityName = "Page1") { AppSidebar.navigate(AppSidebarButton.Editor); this.entityExplorer.ActionContextMenuByEntityName({ - entityNameinLeftSidebar: "Page1", + entityNameinLeftSidebar: entityName, action: "Import", entityType: EntityItems.Page, }); this.agHelper.AssertElementVisibility(this.locators.import.importModal); } - ExportAndCompareDownloadedFile( sectionName: keyof typeof exportedPropertiesToUIEntitiesMap, sectionIndex: number, diff --git a/app/client/src/IDE/hooks/useIsInSideBySideEditor.test.tsx b/app/client/src/IDE/hooks/useIsInSideBySideEditor.test.tsx index 1f3c2d740fe6..81cf7a8d802f 100644 --- a/app/client/src/IDE/hooks/useIsInSideBySideEditor.test.tsx +++ b/app/client/src/IDE/hooks/useIsInSideBySideEditor.test.tsx @@ -17,9 +17,6 @@ import type { Store } from "redux"; const JS_COLLECTION_EDITOR_PATH = "/app/app-name/page-665dd1103e4483728c9ed11a/edit/jsObjects"; const NON_JS_COLLECTION_EDITOR_PATH = "/some-other-path"; -const FEATURE_FLAGS = { - rollout_side_by_side_enabled: true, -}; const renderUseIsInSideBySideEditor = ( history: MemoryHistory, @@ -41,7 +38,6 @@ describe("useIsInSideBySideEditor", () => { const store = testStore( getIDETestState({ ideView: EditorViewMode.SplitScreen, - featureFlags: FEATURE_FLAGS, }), ); @@ -54,7 +50,6 @@ describe("useIsInSideBySideEditor", () => { const store = testStore( getIDETestState({ ideView: EditorViewMode.FullScreen, - featureFlags: FEATURE_FLAGS, }), ); @@ -71,7 +66,6 @@ describe("useIsInSideBySideEditor", () => { const store = testStore( getIDETestState({ ideView: EditorViewMode.SplitScreen, - featureFlags: FEATURE_FLAGS, }), ); @@ -88,7 +82,6 @@ describe("useIsInSideBySideEditor", () => { const store = testStore( getIDETestState({ ideView: EditorViewMode.SplitScreen, - featureFlags: FEATURE_FLAGS, }), ); @@ -105,7 +98,6 @@ describe("useIsInSideBySideEditor", () => { const store = testStore( getIDETestState({ ideView: EditorViewMode.SplitScreen, - featureFlags: FEATURE_FLAGS, }), ); @@ -130,7 +122,6 @@ describe("useIsInSideBySideEditor", () => { const store = testStore( getIDETestState({ ideView: EditorViewMode.SplitScreen, - featureFlags: FEATURE_FLAGS, }), ); diff --git a/app/client/src/ce/entities/FeatureFlag.ts b/app/client/src/ce/entities/FeatureFlag.ts index 9e8d0b90cef0..1dcfb65c0059 100644 --- a/app/client/src/ce/entities/FeatureFlag.ts +++ b/app/client/src/ce/entities/FeatureFlag.ts @@ -24,14 +24,12 @@ export const FEATURE_FLAG = { license_widget_rtl_support_enabled: "license_widget_rtl_support_enabled", ab_one_click_learning_popover_enabled: "ab_one_click_learning_popover_enabled", - release_side_by_side_ide_enabled: "release_side_by_side_ide_enabled", ab_appsmith_ai_query: "ab_appsmith_ai_query", rollout_remove_feature_walkthrough_enabled: "rollout_remove_feature_walkthrough_enabled", rollout_eslint_enabled: "rollout_eslint_enabled", release_drag_drop_building_blocks_enabled: "release_drag_drop_building_blocks_enabled", - rollout_side_by_side_enabled: "rollout_side_by_side_enabled", release_layout_conversion_enabled: "release_layout_conversion_enabled", release_anvil_toggle_enabled: "release_anvil_toggle_enabled", release_git_persist_branch_enabled: "release_git_persist_branch_enabled", @@ -79,11 +77,9 @@ export const DEFAULT_FEATURE_FLAG_VALUE: FeatureFlags = { license_git_continuous_delivery_enabled: false, license_widget_rtl_support_enabled: false, ab_one_click_learning_popover_enabled: false, - release_side_by_side_ide_enabled: false, ab_appsmith_ai_query: false, rollout_remove_feature_walkthrough_enabled: true, rollout_eslint_enabled: false, - rollout_side_by_side_enabled: false, release_layout_conversion_enabled: false, release_anvil_toggle_enabled: false, release_git_persist_branch_enabled: false, diff --git a/app/client/src/ce/utils/autocomplete/entityDefGeneratorMap.ts b/app/client/src/ce/utils/autocomplete/entityDefGeneratorMap.ts index 0165c7e9eb95..dd9b9bb7976c 100644 --- a/app/client/src/ce/utils/autocomplete/entityDefGeneratorMap.ts +++ b/app/client/src/ce/utils/autocomplete/entityDefGeneratorMap.ts @@ -61,6 +61,7 @@ export const entityDefGeneratorMap: EntityDefGeneratorMap = { entity as AppsmithEntity, extraDefsToDefine, ); + flattenDef(def, "appsmith"); entityMap.set("appsmith", { type: ENTITY_TYPE.APPSMITH, subType: ENTITY_TYPE.APPSMITH, diff --git a/app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts b/app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts index 9f1c5a7f4d55..1fe0cdb1451a 100644 --- a/app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts +++ b/app/client/src/components/editorComponents/PartialImportExport/PartialExportModal/unitTestUtils.ts @@ -12764,7 +12764,6 @@ export const defaultAppState = { release_show_new_sidebar_announcement_enabled: false, rollout_app_sidebar_enabled: false, ab_one_click_learning_popover_enabled: false, - release_side_by_side_ide_enabled: false, license_git_unlimited_repo_enabled: false, ask_ai_js: false, license_connection_pool_size_enabled: false, diff --git a/app/client/src/pages/Editor/IDE/EditorPane/JS/JSRender.test.tsx b/app/client/src/pages/Editor/IDE/EditorPane/JS/JSRender.test.tsx index 565e73551df8..d42f0fcdd2b0 100644 --- a/app/client/src/pages/Editor/IDE/EditorPane/JS/JSRender.test.tsx +++ b/app/client/src/pages/Editor/IDE/EditorPane/JS/JSRender.test.tsx @@ -9,10 +9,6 @@ import { EditorEntityTab, EditorViewMode } from "ee/entities/IDE/constants"; import { PageFactory } from "test/factories/PageFactory"; import { JSObjectFactory } from "test/factories/Actions/JSObject"; -const FeatureFlags = { - rollout_side_by_side_enabled: true, -}; - const basePageId = "0123456789abcdef00000000"; describe("IDE Render: JS", () => { @@ -24,7 +20,6 @@ describe("IDE Render: JS", () => { , { url: `/app/applicationSlug/pageSlug-${basePageId}/edit/jsObjects`, - featureFlags: FeatureFlags, }, ); @@ -49,7 +44,6 @@ describe("IDE Render: JS", () => { { url: `/app/applicationSlug/pageSlug-${basePageId}/edit/jsObjects`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -73,7 +67,6 @@ describe("IDE Render: JS", () => { , { url: `/app/applicationSlug/pageSlug-${basePageId}/edit/jsObjects/add`, - featureFlags: FeatureFlags, }, ); @@ -98,7 +91,6 @@ describe("IDE Render: JS", () => { { url: `/app/applicationSlug/pageSlug-${basePageId}/edit/jsObjects/add`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -137,7 +129,6 @@ describe("IDE Render: JS", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/jsObjects/${js1.baseId}`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -194,7 +185,6 @@ describe("IDE Render: JS", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/jsObjects/${js2.baseId}`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -241,7 +231,6 @@ describe("IDE Render: JS", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/jsObjects/${js3.baseId}/add`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -283,7 +272,6 @@ describe("IDE Render: JS", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/jsObjects/${js4.baseId}/add`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -334,7 +322,6 @@ describe("IDE Render: JS", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/jsObjects/${Main_JS.baseId}`, initialState: state, - featureFlags: FeatureFlags, }, ); diff --git a/app/client/src/pages/Editor/IDE/EditorPane/Query/QueryRender.test.tsx b/app/client/src/pages/Editor/IDE/EditorPane/Query/QueryRender.test.tsx index 77393a10131f..cf10c6cb9af3 100644 --- a/app/client/src/pages/Editor/IDE/EditorPane/Query/QueryRender.test.tsx +++ b/app/client/src/pages/Editor/IDE/EditorPane/Query/QueryRender.test.tsx @@ -13,10 +13,6 @@ import { PageFactory } from "test/factories/PageFactory"; import { screen, waitFor } from "@testing-library/react"; import { GoogleSheetFactory } from "test/factories/Actions/GoogleSheetFactory"; -const FeatureFlags = { - rollout_side_by_side_enabled: true, -}; - const basePageId = "0123456789abcdef00000000"; describe("IDE URL rendering of Queries", () => { @@ -28,7 +24,6 @@ describe("IDE URL rendering of Queries", () => { , { url: `/app/applicationSlug/pageSlug-${basePageId}/edit/queries`, - featureFlags: FeatureFlags, }, ); @@ -51,7 +46,6 @@ describe("IDE URL rendering of Queries", () => { { url: `/app/applicationSlug/pageSlug-${basePageId}/edit/queries`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -73,7 +67,6 @@ describe("IDE URL rendering of Queries", () => { , { url: `/app/applicationSlug/pageSlug-${basePageId}/edit/queries/add`, - featureFlags: FeatureFlags, }, ); @@ -102,7 +95,6 @@ describe("IDE URL rendering of Queries", () => { { url: `/app/applicationSlug/pageSlug-${basePageId}/edit/queries/add`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -148,7 +140,6 @@ describe("IDE URL rendering of Queries", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/api/${anApi.baseId}`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -205,7 +196,6 @@ describe("IDE URL rendering of Queries", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/api/${anApi.baseId}`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -250,7 +240,6 @@ describe("IDE URL rendering of Queries", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/api/${anApi.baseId}/add`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -292,7 +281,6 @@ describe("IDE URL rendering of Queries", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/api/${anApi.baseId}/add`, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -347,7 +335,6 @@ describe("IDE URL rendering of Queries", () => { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/queries/${anQuery.baseId}`, sagasToRun: sagasToRunForTests, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -402,7 +389,6 @@ describe("IDE URL rendering of Queries", () => { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/queries/${anQuery.baseId}`, sagasToRun: sagasToRunForTests, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -448,7 +434,7 @@ describe("IDE URL rendering of Queries", () => { { url: `/app/applicationSlug/${page.slug}-${page.pageId}/edit/queries/${anQuery.baseId}/add`, initialState: state, - featureFlags: FeatureFlags, + sagasToRun: sagasToRunForTests, }, ); @@ -492,7 +478,6 @@ describe("IDE URL rendering of Queries", () => { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/queries/${anQuery.baseId}/add`, sagasToRun: sagasToRunForTests, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -548,7 +533,6 @@ describe("IDE URL rendering of Queries", () => { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/saas/google-sheets-plugin/api/${anQuery.baseId}`, sagasToRun: sagasToRunForTests, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -597,7 +581,6 @@ describe("IDE URL rendering of Queries", () => { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/saas/google-sheets-plugin/api/${anQuery.baseId}`, sagasToRun: sagasToRunForTests, initialState: state, - featureFlags: FeatureFlags, }, ); @@ -646,7 +629,7 @@ describe("IDE URL rendering of Queries", () => { { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/saas/google-sheets-plugin/api/${anQuery.baseId}/add`, initialState: state, - featureFlags: FeatureFlags, + sagasToRun: sagasToRunForTests, }, ); @@ -691,7 +674,6 @@ describe("IDE URL rendering of Queries", () => { url: `/app/applicationSlug/pageSlug-${page.basePageId}/edit/saas/google-sheets-plugin/api/${anQuery.baseId}/add`, sagasToRun: sagasToRunForTests, initialState: state, - featureFlags: FeatureFlags, }, ); diff --git a/app/client/src/pages/Editor/IDE/EditorPane/UI/UIRender.test.tsx b/app/client/src/pages/Editor/IDE/EditorPane/UI/UIRender.test.tsx index 2bc26118bd81..ebea1b837310 100644 --- a/app/client/src/pages/Editor/IDE/EditorPane/UI/UIRender.test.tsx +++ b/app/client/src/pages/Editor/IDE/EditorPane/UI/UIRender.test.tsx @@ -13,10 +13,6 @@ import { } from "test/factories/WidgetFactoryUtils"; import { EditorViewMode } from "ee/entities/IDE/constants"; -const FeatureFlags = { - rollout_side_by_side_enabled: true, -}; - const pageId = "0123456789abcdef00000000"; describe("IDE URL rendering: UI", () => { @@ -32,7 +28,6 @@ describe("IDE URL rendering: UI", () => { , { url: `/app/applicationSlug/pageSlug-${pageId}/edit`, - featureFlags: FeatureFlags, initialState: state, }, ); @@ -52,7 +47,6 @@ describe("IDE URL rendering: UI", () => { , { url: `/app/applicationSlug/pageSlug-${pageId}/edit/widgets`, - featureFlags: FeatureFlags, initialState: state, }, ); @@ -101,7 +95,6 @@ describe("IDE URL rendering: UI", () => { , { url, - featureFlags: FeatureFlags, initialState: state, }, ); @@ -126,7 +119,6 @@ describe("IDE URL rendering: UI", () => { , { url: `/app/applicationSlug/pageSlug-${pageId}/edit`, - featureFlags: FeatureFlags, initialState: state, }, ); diff --git a/app/client/src/pages/Editor/IDE/EditorPane/components/SegmentAddHeader.tsx b/app/client/src/pages/Editor/IDE/EditorPane/components/SegmentAddHeader.tsx index 68ddda6d141a..9b349f61c4d2 100644 --- a/app/client/src/pages/Editor/IDE/EditorPane/components/SegmentAddHeader.tsx +++ b/app/client/src/pages/Editor/IDE/EditorPane/components/SegmentAddHeader.tsx @@ -1,8 +1,6 @@ import React from "react"; -import { Button, Flex, Text } from "@appsmith/ads"; +import { Flex, Text } from "@appsmith/ads"; import { createMessage } from "ee/constants/messages"; -import { useSelector } from "react-redux"; -import { getIsSideBySideEnabled } from "selectors/ideSelectors"; interface Props { titleMessage: () => string; @@ -10,32 +8,15 @@ interface Props { } const SegmentAddHeader = (props: Props) => { - const isSideBySideEnabled = useSelector(getIsSideBySideEnabled); - return ( {createMessage(props.titleMessage)} - {isSideBySideEnabled ? null : ( -