diff --git a/.github/config.json b/.github/config.json index 9e43d92ac4e..28c550304b1 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}],"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":"Branch protection","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}],"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}],"requires":1},"Performance Pod":{"conditions":[{"label":"Performance","type":"hasLabel","value":true},{"label":"Performance infra","type":"hasLabel","value":true}],"requires":1},"Git Platform Pod":{"conditions":[{"label":"Environments Product","type":"hasLabel","value":true},{"label":"Git Product","type":"hasLabel","value":true},{"label":"Artifact Platform Product","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}],"requires":1},"DB Infrastructure Pod":{"conditions":[{"label":"Move to Postgres","type":"hasLabel","value":true}],"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},{"label":"Packages Product","type":"hasLabel","value":true}],"requires":1},"User Education Pod":{"conditions":[{"label":"Documentation","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}],"requires":1},"QA Pod":{"conditions":[{"label":"QA","type":"hasLabel","value":true},{"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}],"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},{"label":"cypress-flaky-fix","type":"hasLabel","value":true},{"label":"Cypress flaky tests","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":"","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"},"User Education Pod":{"name":"User Education Pod","description":"Issues related to user education","color":"1799b0"},"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"},"Branch protection":{"name":"Branch protection","description":"Issues related to using a protected branch on git","color":"ab511a"},"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":"4e13ac"},"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":"722cbc"},"Cypress flaky tests":{"name":"Cypress flaky tests","description":"Test scripts that need to be fixed on Cypress by dev or SDET","color":"722cbc"},"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":"446925"},"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":"446925"},"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":"857f58"},"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":"48883f","name":"Git Product","description":"Issues related to version control product"},"Git Platform Pod":{"name":"Git Platform Pod","description":"Issues related to the git & the app platform ","color":"48883f"},"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"}},"success":true} +{"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}],"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":"Branch protection","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}],"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}],"requires":1},"Performance Pod":{"conditions":[{"label":"Performance","type":"hasLabel","value":true},{"label":"Performance infra","type":"hasLabel","value":true}],"requires":1},"Git Platform Pod":{"conditions":[{"label":"Environments Product","type":"hasLabel","value":true},{"label":"Git Product","type":"hasLabel","value":true},{"label":"Artifact Platform Product","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}],"requires":1},"DB Infrastructure Pod":{"conditions":[{"label":"Move to Postgres","type":"hasLabel","value":true}],"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},{"label":"Packages Product","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}],"requires":1},"QA Pod":{"conditions":[{"label":"QA","type":"hasLabel","value":true},{"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}],"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},{"label":"cypress-flaky-fix","type":"hasLabel","value":true},{"label":"Cypress flaky tests","type":"hasLabel","value":true}],"requires":1},"Documentation Pod":{"conditions":[{"label":"Documentation","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":"","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"},"Branch protection":{"name":"Branch protection","description":"Issues related to using a protected branch on git","color":"ab511a"},"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":"4e13ac"},"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":"722cbc"},"Cypress flaky tests":{"name":"Cypress flaky tests","description":"Test scripts that need to be fixed on Cypress by dev or SDET","color":"722cbc"},"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":"446925"},"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":"446925"},"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":"857f58"},"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":"48883f","name":"Git Product","description":"Issues related to version control product"},"Git Platform Pod":{"name":"Git Platform Pod","description":"Issues related to the git & the app platform ","color":"48883f"},"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"}},"success":true} \ No newline at end of file diff --git a/.github/workflows/ci-test-custom-script.yml b/.github/workflows/ci-test-custom-script.yml index 925e4c85b71..ef8aea989ea 100644 --- a/.github/workflows/ci-test-custom-script.yml +++ b/.github/workflows/ci-test-custom-script.yml @@ -441,7 +441,20 @@ jobs: name: server-logs-${{ matrix.job }} path: app/server/server-logs.log overwrite: true - + + - name: Collect docker log as file + if: always() + run: | + docker logs appsmith >& app/server/docker-logs.log + + - name: Upload server docker logs bundle on failure + uses: actions/upload-artifact@v4 + if: always() + with: + name: docker-logs-${{ matrix.job }} + path: app/server/docker-logs.log + overwrite: true + # Set status = success - name: Save the status of the run run: | diff --git a/.github/workflows/pr-automation.yml b/.github/workflows/pr-automation.yml index ec40d88ce0d..622274e9745 100644 --- a/.github/workflows/pr-automation.yml +++ b/.github/workflows/pr-automation.yml @@ -8,6 +8,7 @@ on: pull_request: branches: - release + - master - pg types: [ labeled, synchronize ] diff --git a/.github/workflows/sync-release-to-pg.yml b/.github/workflows/sync-release-to-pg.yml new file mode 100644 index 00000000000..b3a9c6ab399 --- /dev/null +++ b/.github/workflows/sync-release-to-pg.yml @@ -0,0 +1,82 @@ +name: Merge release to pg + +on: + push: + branches: + - release # Trigger on push to the release branch + +jobs: + merge-release-to-pg: + runs-on: ubuntu-latest + + steps: + - name: Checkout release branch + uses: actions/checkout@v3 + with: + ref: release # Checkout the release branch + + - name: Fetch all branches + run: git fetch origin pg + + - name: Checkout pg branch + run: git checkout pg + + - name: Merge release to pg + id: merge_commits + run: | + + PG_HEAD=$(git rev-parse pg) + RELEASE_HEAD=$(git rev-parse release) + + echo "PG_HEAD=$PG_HEAD" + echo "RELEASE_HEAD=$RELEASE_HEAD" + + # Checkout the pg branch + git checkout pg + + # Attempt to merge release into pg + if ! git merge release; then + echo "Merge conflict detected during merge" + + # Capture the conflicting commit SHAs (both HEAD of pg and the merge commit from release) + CONFLICTING_COMMIT=$(git log -1 --pretty=format:"%H") + echo "CONFLICTING_COMMIT=$CONFLICTING_COMMIT" >> $GITHUB_ENV + + git merge --abort + echo "MERGE_CONFLICT=true" >> $GITHUB_ENV + else + echo "MERGE_CONFLICT=false" >> $GITHUB_ENV + fi + + - name: Push changes + if: env.MERGE_CONFLICT == 'false' + run: | + git push origin pg + + - name: Notify on merge conflicts + if: env.MERGE_CONFLICT == 'true' + env: + REPOSITORY_URL: ${{ github.repositoryUrl }} + CONFLICTING_COMMIT: ${{ env.CONFLICTING_COMMIT }} + run: | + # Prepare the message for Slack + message="Merge conflict detected while merging release into pg branch. Conflicted commits:\n" + commit_url="$REPOSITORY_URL/commit/$CONFLICTING_COMMIT" + message+="$commit_url\n" + + # Send the message to Slack + # This unwieldy horror of a sed command, converts standard Markdown links to Slack's unwieldy link syntax. + slack_message="$(echo "$message" | sed -E 's/\[([^]]+)\]\(([^)]+)\)/<\2|\1>/g')" + + # This is the ChannelId of the proj postgres channel. + body="$(jq -nc \ + --arg channel C06Q3A97USE \ + --arg text "$slack_message" \ + '$ARGS.named' + )" + + curl --version + curl -v https://slack.com/api/chat.postMessage \ + --header 'Authorization: Bearer ${{ secrets.SLACK_APPSMITH_ALERTS_TOKEN }}' \ + --header 'Content-Type: application/json; charset=utf-8' \ + --data-raw "$body" diff --git a/CODEOWNERS b/CODEOWNERS index 6184e0f9a2f..03d957a9d9f 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -21,11 +21,10 @@ app/client/tsconfig.path.json @KelvinOm # WDS team app/client/packages/design-system/* @appsmithorg/wds-team app/client/packages/storybook/* @appsmithorg/wds-team -app/client/src/widgets/wds/* @appsmithorg/wds-team +app/client/src/widgets/wds/* @appsmithorg/wds-team @appsmithorg/anvil-team # Anvil-team app/client/src/layoutSystems/anvil/* @appsmithorg/anvil-team -app/client/src/widgets/anvil/* @appsmithorg/anvil-team # App viewers pod app/client/src/widgets/* @appsmithorg/app-viewers @@ -53,52 +52,52 @@ app/server/appsmith-server/src/main/java/com/appsmith/server/services/FeatureFla app/server/appsmith-server/src/test/java/com/appsmith/server/services/FeatureFlagServiceTest.java @nilanshbansal # UI Builders Pod -app/client/generators/* @appsmithorg/ui-builders -app/client/src/actions/autoHeightActions.ts @appsmithorg/ui-builders -app/client/src/actions/autoLayoutActions.ts @appsmithorg/ui-builders -app/client/src/actions/canvasSelectionActions.ts @appsmithorg/ui-builders -app/client/src/actions/reflowActions.ts @appsmithorg/ui-builders -app/client/src/actions/widgetSelectionActions.ts @appsmithorg/ui-builders -app/client/src/components/propertyControls/* @appsmithorg/ui-builders -app/client/src/layoutSystems/* @appsmithorg/ui-builders -app/client/src/pages/Editor/Canvas.tsx @appsmithorg/ui-builders -app/client/src/pages/Editor/CanvasLayoutConversion/* @appsmithorg/ui-builders -app/client/src/pages/Editor/PropertyPane/* @appsmithorg/ui-builders -app/client/src/pages/Editor/WidgetsEditor/* @appsmithorg/ui-builders -app/client/src/reducers/entityReducers/autoHeightReducers/* @appsmithorg/ui-builders -app/client/src/reducers/entityReducers/canvasWidgetsReducer.ts @appsmithorg/ui-builders -app/client/src/reflow/* @appsmithorg/ui-builders -app/client/src/sagas/AutoLayoutUpdateSagas.tsx @appsmithorg/ui-builders -app/client/src/sagas/CanvasSagas/* @appsmithorg/ui-builders -app/client/src/sagas/ReplaySaga.ts @appsmithorg/ui-builders -app/client/src/sagas/SnapshotSagas.ts @appsmithorg/ui-builders -app/client/src/sagas/WidgetAdditionSagas.ts @appsmithorg/ui-builders -app/client/src/sagas/WidgetBlueprintSagas.ts @appsmithorg/ui-builders -app/client/src/sagas/WidgetDeletionSagas.ts @appsmithorg/ui-builders -app/client/src/sagas/WidgetOperationSagas.tsx @appsmithorg/ui-builders -app/client/src/sagas/WidgetOperationUtils.ts @appsmithorg/ui-builders -app/client/src/sagas/WidgetSelectUtils.ts @appsmithorg/ui-builders -app/client/src/sagas/WidgetSelectionSagas.ts @appsmithorg/ui-builders -app/client/src/sagas/autoHeightSagas/* @appsmithorg/ui-builders -app/client/src/sagas/layoutConversionSagas.ts @appsmithorg/ui-builders -app/client/src/selectors/autoHeightSelectors.ts @appsmithorg/ui-builders -app/client/src/selectors/autoLayoutSelectors.tsx @appsmithorg/ui-builders -app/client/src/selectors/canvasSelectors.ts @appsmithorg/ui-builders -app/client/src/selectors/widgetSelectors.ts @appsmithorg/ui-builders -app/client/src/utils/autoHeight/* @appsmithorg/ui-builders -app/client/src/utils/hooks/autoHeightUIHooks.ts @appsmithorg/ui-builders -app/client/src/utils/hooks/useAllowEditorDragToSelect.ts @appsmithorg/ui-builders -app/client/src/utils/hooks/useClickToSelectWidget.tsx @appsmithorg/ui-builders -app/client/src/utils/hooks/useDynamicAppLayout.tsx @appsmithorg/ui-builders -app/client/src/utils/hooks/usePositionedContainerZIndex.ts @appsmithorg/ui-builders -app/client/src/utils/hooks/useReflow.ts @appsmithorg/ui-builders -app/client/src/utils/hooks/useWidgetSelection.ts @appsmithorg/ui-builders -app/client/src/widgets/BaseWidget.tsx @appsmithorg/ui-builders -app/client/src/widgets/BaseWidgetHOC/* @appsmithorg/ui-builders -app/client/src/widgets/CanvasWidget.tsx @appsmithorg/ui-builders -app/client/src/widgets/ContainerWidget/* @appsmithorg/ui-builders -app/client/src/widgets/MetaHOC.tsx @appsmithorg/ui-builders -app/client/src/widgets/withWidgetProps.tsx @appsmithorg/ui-builders +app/client/generators/* @appsmithorg/anvil-team +app/client/src/actions/autoHeightActions.ts @appsmithorg/anvil-team +app/client/src/actions/autoLayoutActions.ts @appsmithorg/anvil-team +app/client/src/actions/canvasSelectionActions.ts @appsmithorg/anvil-team +app/client/src/actions/reflowActions.ts @appsmithorg/anvil-team +app/client/src/actions/widgetSelectionActions.ts @appsmithorg/anvil-team +app/client/src/components/propertyControls/* @appsmithorg/anvil-team +app/client/src/layoutSystems/* @appsmithorg/anvil-team +app/client/src/pages/Editor/Canvas.tsx @appsmithorg/anvil-team +app/client/src/pages/Editor/CanvasLayoutConversion/* @appsmithorg/anvil-team +app/client/src/pages/Editor/PropertyPane/* @appsmithorg/anvil-team +app/client/src/pages/Editor/WidgetsEditor/* @appsmithorg/anvil-team +app/client/src/reducers/entityReducers/autoHeightReducers/* @appsmithorg/anvil-team +app/client/src/reducers/entityReducers/canvasWidgetsReducer.ts @appsmithorg/anvil-team +app/client/src/reflow/* @appsmithorg/anvil-team +app/client/src/sagas/AutoLayoutUpdateSagas.tsx @appsmithorg/anvil-team +app/client/src/sagas/CanvasSagas/* @appsmithorg/anvil-team +app/client/src/sagas/ReplaySaga.ts @appsmithorg/anvil-team +app/client/src/sagas/SnapshotSagas.ts @appsmithorg/anvil-team +app/client/src/sagas/WidgetAdditionSagas.ts @appsmithorg/anvil-team +app/client/src/sagas/WidgetBlueprintSagas.ts @appsmithorg/anvil-team +app/client/src/sagas/WidgetDeletionSagas.ts @appsmithorg/anvil-team +app/client/src/sagas/WidgetOperationSagas.tsx @appsmithorg/anvil-team +app/client/src/sagas/WidgetOperationUtils.ts @appsmithorg/anvil-team +app/client/src/sagas/WidgetSelectUtils.ts @appsmithorg/anvil-team +app/client/src/sagas/WidgetSelectionSagas.ts @appsmithorg/anvil-team +app/client/src/sagas/autoHeightSagas/* @appsmithorg/anvil-team +app/client/src/sagas/layoutConversionSagas.ts @appsmithorg/anvil-team +app/client/src/selectors/autoHeightSelectors.ts @appsmithorg/anvil-team +app/client/src/selectors/autoLayoutSelectors.tsx @appsmithorg/anvil-team +app/client/src/selectors/canvasSelectors.ts @appsmithorg/anvil-team +app/client/src/selectors/widgetSelectors.ts @appsmithorg/anvil-team +app/client/src/utils/autoHeight/* @appsmithorg/anvil-team +app/client/src/utils/hooks/autoHeightUIHooks.ts @appsmithorg/anvil-team +app/client/src/utils/hooks/useAllowEditorDragToSelect.ts @appsmithorg/anvil-team +app/client/src/utils/hooks/useClickToSelectWidget.tsx @appsmithorg/anvil-team +app/client/src/utils/hooks/useDynamicAppLayout.tsx @appsmithorg/anvil-team +app/client/src/utils/hooks/usePositionedContainerZIndex.ts @appsmithorg/anvil-team +app/client/src/utils/hooks/useReflow.ts @appsmithorg/anvil-team +app/client/src/utils/hooks/useWidgetSelection.ts @appsmithorg/anvil-team +app/client/src/widgets/BaseWidget.tsx @appsmithorg/anvil-team +app/client/src/widgets/BaseWidgetHOC/* @appsmithorg/anvil-team +app/client/src/widgets/CanvasWidget.tsx @appsmithorg/anvil-team +app/client/src/widgets/ContainerWidget/* @appsmithorg/anvil-team +app/client/src/widgets/MetaHOC.tsx @appsmithorg/anvil-team +app/client/src/widgets/withWidgetProps.tsx @appsmithorg/anvil-team # Git Pod app/server/appsmith-git/ @appsmithorg/git-be-reviewers @@ -199,7 +198,7 @@ app/client/src/ce/JSFunctionExecutionSaga.ts @ApekshaBhosale app/client/src/ee/JSFunctionExecutionSaga.ts @ApekshaBhosale # Enterprise Success -app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/**/* @sharat87 @vivonk @abhvsn +app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/**/* @sharat87 @abhvsn # DevOps & Shri deploy/**/* @sharat87 @pratapaprasanna diff --git a/app/client/.eslintrc.base.json b/app/client/.eslintrc.base.json index 485c107c646..0cc41a13652 100644 --- a/app/client/.eslintrc.base.json +++ b/app/client/.eslintrc.base.json @@ -16,7 +16,9 @@ "sort-destructure-keys", "cypress", "testing-library", - "jest" + "jest", + "@appsmith", + "react-perf" ], "extends": [ "plugin:react/recommended", // Uses the recommended rules from @eslint-plugin-react @@ -24,6 +26,8 @@ "plugin:cypress/recommended", "plugin:testing-library/react", "plugin:react-hooks/recommended", + "plugin:@appsmith/recommended", + "plugin:react-perf/recommended", // Note: Please keep this as the last config to make sure that this (and by extension our .prettierrc file) overrides all configuration above it // https://www.npmjs.com/package/eslint-plugin-prettier#recommended-configuration "plugin:prettier/recommended" @@ -65,6 +69,17 @@ ], "no-console": "error", "no-debugger": "error", + "react-perf/jsx-no-new-array-as-prop": "warn", + "react-perf/jsx-no-new-function-as-prop": "warn", + "react-perf/jsx-no-jsx-as-prop": "warn", + "react-perf/jsx-no-new-object-as-prop": [ + "warn", + { + // we are disabling this rule here for native component since it won't make much difference in performance + // we want to target react components more since there is possibility they can be pure components and new istance props should be avoided for them + "nativeAllowList": "all" + } + ], "@typescript-eslint/no-restricted-imports": [ "error", { diff --git a/app/client/cypress/e2e/Regression/ClientSide/Anvil/AnvilSpaceDistribution_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Anvil/AnvilSpaceDistribution_spec.ts index dddad3451e2..6506b4c46d4 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/Anvil/AnvilSpaceDistribution_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/Anvil/AnvilSpaceDistribution_spec.ts @@ -175,6 +175,9 @@ describe( ); const zone1Selector = anvilLocators.anvilWidgetNameSelector("Zone1"); + const section1Selector = + anvilLocators.anvilWidgetNameSelector("Section1"); + anvilLayout.sections.mouseDownSpaceDistributionHandle("Section1", 1); // outline color of zone while distributing space should be transparent cy.get(zone1Selector).should( @@ -182,19 +185,11 @@ describe( "outline-color", "rgba(0, 0, 0, 0)", ); - anvilLayout.sections.mouseUpSpaceDistributionHandle("Section1", 1); - // select zone1 - agHelper.GetNClick(zone1Selector); - // go to style tab - propPane.MoveToTab("Style"); - // toggle visual separation off on property pane - propPane.TogglePropertyState("Visual Separation", "Off"); - anvilLayout.sections.mouseDownSpaceDistributionHandle("Section1", 1); - // outline color of background less zone while distributing space should not be transparent - cy.get(zone1Selector).should( + // outline color of section while distributing space should not be transparent + cy.get(section1Selector).should( "not.have.css", "outline-color", - "rgba(0, 0, 0, 0)", + "transparent", ); }); }, diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select2_Spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select2_Spec.ts index 28a6c935b30..426c5ca04af 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select2_Spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/Select/Select2_Spec.ts @@ -7,6 +7,7 @@ import { locators, propPane, widgetLocators, + jsEditor, } from "../../../../../support/Objects/ObjectsCore"; import EditorNavigation, { EntityType, @@ -20,6 +21,24 @@ describe( entityExplorer.DragDropWidgetNVerify(draggableWidgets.SELECT); }); + const validateLabelAndValueKey = (labelKey: string, valueKey: string) => { + // Validate Label key + propPane.ToggleJSMode("Label key", true); + propPane.UpdatePropertyFieldValue("Label key", labelKey); + agHelper.SelectDropDown("Blue"); + agHelper.ReadSelectedDropDownValue().then(($selectedValue) => { + expect($selectedValue).to.eq("Blue"); + }); + + // Validate Value key + propPane.ToggleJSMode("Value key", true); + propPane.UpdatePropertyFieldValue("Value key", valueKey); + agHelper.SelectDropDown("Blue"); + agHelper.ReadSelectedDropDownValue().then(($selectedValue) => { + expect($selectedValue).to.eq("Blue"); + }); + }; + it("1. Validate Label properties - Text , Position , Alignment , Width(in columns)", function () { //Text propPane.TypeTextIntoField("Text", "Select Value"); @@ -305,5 +324,37 @@ describe( 1, ); }); + + it("10.Validate using function inside label key and value key returns correct label options", () => { + // Navigate back to the editor + deployMode.NavigateBacktoEditor(); + + // Select the widget + EditorNavigation.SelectEntityByName("Select1", EntityType.Widget); + + // Validate keys + validateLabelAndValueKey("{{(() => 'name')()}}", "{{(() => 'code')()}}"); + + // Create JS Object with array data + jsEditor.CreateJSObject( + `export default { + array: [1, 2, 3] + }`, + { + completeReplace: true, + toRun: false, + prettify: true, + }, + ); + + // Select the widget + EditorNavigation.SelectEntityByName("Select1", EntityType.Widget); + + // Validate keys + validateLabelAndValueKey( + "{{JSObject1.array.length > 0 ? 'name' : ''}}", + "{{JSObject1.array.length > 0 ? 'code' : ''}}", + ); + }); }, ); diff --git a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/columnTypes/Select1_spec.ts b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/columnTypes/Select1_spec.ts index bf1f91ae4a1..fafe2da10f9 100644 --- a/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/columnTypes/Select1_spec.ts +++ b/app/client/cypress/e2e/Regression/ClientSide/Widgets/TableV2/columnTypes/Select1_spec.ts @@ -31,7 +31,13 @@ describe( cy.get(".t--property-pane-section-collapse-events").should("exist"); }); - it("2. should check that options given in the property pane is appearing on the table", () => { + it("2. should check that select column returns value if no option is provided", () => { + cy.readTableV2data(0, 0).then((val) => { + expect(val).to.equal("#1"); + }); + }); + + it("3. should check that options given in the property pane is appearing on the table", () => { cy.get(".t--property-control-options").should("exist"); cy.updateCodeInput( ".t--property-control-options", @@ -74,7 +80,7 @@ describe( cy.get(".menu-item-active.has-focus").should("contain", "#1"); }); - it("3. should check that placeholder property is working", () => { + it("4. should check that placeholder property is working", () => { cy.updateCodeInput( ".t--property-control-options", ` @@ -110,7 +116,7 @@ describe( ).should("contain", "choose an item"); }); - it("4. should check that filterable property is working", () => { + it("5. should check that filterable property is working", () => { cy.updateCodeInput( ".t--property-control-options", ` @@ -155,7 +161,7 @@ describe( cy.get(".t--canvas-artboard").click({ force: true }); }); - it("5. should check that on option select is working", () => { + it("6. should check that on option select is working", () => { featureFlagIntercept({ release_table_cell_label_value_enabled: true }); cy.openPropertyPane("tablewidgetv2"); cy.editColumn("step"); @@ -197,7 +203,7 @@ describe( cy.discardTableRow(4, 0); }); - it("6. should check that currentRow is accessible in the select options", () => { + it("7. should check that currentRow is accessible in the select options", () => { cy.updateCodeInput( ".t--property-control-options", ` @@ -222,7 +228,7 @@ describe( cy.get(".menu-item-text").contains("#1").should("not.exist"); }); - it("7. should check that 'same select option in new row' property is working", () => { + it("8. should check that 'same select option in new row' property is working", () => { _.propPane.NavigateBackToPropertyPane(); const checkSameOptionsInNewRowWhileEditing = () => { @@ -288,7 +294,7 @@ describe( checkSameOptionsWhileAddingNewRow(); }); - it("8. should check that 'new row select options' is working", () => { + it("9. should check that 'new row select options' is working", () => { const checkNewRowOptions = () => { // New row select options should be visible when "Same options in new row" is turned off _.propPane.TogglePropertyState("Same options in new row", "Off"); @@ -353,7 +359,7 @@ describe( checkNoOptionState(); }); - it("9. should check that server side filering is working", () => { + it("10. should check that server side filering is working", () => { _.dataSources.CreateDataSource("Postgres"); _.dataSources.CreateQueryAfterDSSaved( "SELECT * FROM public.astronauts {{this.params.filterText ? `WHERE name LIKE '%${this.params.filterText}%'` : ''}} LIMIT 10;", diff --git a/app/client/cypress/support/Pages/Anvil/Locators/index.ts b/app/client/cypress/support/Pages/Anvil/Locators/index.ts index 1629671af18..21bf736b713 100644 --- a/app/client/cypress/support/Pages/Anvil/Locators/index.ts +++ b/app/client/cypress/support/Pages/Anvil/Locators/index.ts @@ -1,6 +1,6 @@ import { MAIN_CONTAINER_WIDGET_ID } from "../../../../../src/constants/WidgetConstants"; import { getAnvilCanvasId } from "../../../../../src/layoutSystems/anvil/viewer/canvas/utils"; -import { AnvilDataAttributes } from "../../../../../src/widgets/anvil/constants"; +import { AnvilDataAttributes } from "../../../../../src/widgets/wds/constants"; // anvil widget based selectors const anvilWidgetSelector = "[data-testid=t--anvil-widget-wrapper]"; diff --git a/app/client/cypress/support/index.d.ts b/app/client/cypress/support/index.d.ts index 163a8f9a63a..8b99e6368d7 100644 --- a/app/client/cypress/support/index.d.ts +++ b/app/client/cypress/support/index.d.ts @@ -2,6 +2,8 @@ declare namespace Cypress { interface Chainable { + latestDeployPreview(): Chainable; + SignupFromAPI(uname: string, password: string); dragTo(subject: any, targetEl: any); diff --git a/app/client/package.json b/app/client/package.json index d567e2c80f5..40afddb093f 100644 --- a/app/client/package.json +++ b/app/client/package.json @@ -50,6 +50,7 @@ "dependencies": { "@appsmith/ads": "workspace:^", "@appsmith/ads-old": "workspace:^", + "@appsmith/utils": "workspace:^", "@appsmith/wds": "workspace:^", "@appsmith/wds-theming": "workspace:^", "@aws-sdk/client-s3": "^3.622.0", @@ -251,6 +252,7 @@ "not op_mini all" ], "devDependencies": { + "@appsmith/eslint-plugin": "workspace:^", "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-string-parser": "^7.19.4", "@craco/craco": "^7.0.0", @@ -340,6 +342,7 @@ "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-perf": "^3.3.2", "eslint-plugin-sort-destructure-keys": "^1.5.0", "eslint-plugin-storybook": "^0.6.15", "eslint-plugin-testing-library": "^6.2.0", diff --git a/app/client/packages/design-system/ads-old/CHANGELOG.md b/app/client/packages/design-system/ads-old/CHANGELOG.md deleted file mode 100644 index bd3b3d49609..00000000000 --- a/app/client/packages/design-system/ads-old/CHANGELOG.md +++ /dev/null @@ -1,583 +0,0 @@ -# @appsmithorg/design-system - -## 1.1.17 - -### Patch Changes - -- [#731](https://github.com/appsmithorg/design-system/pull/731) [`b843c841`](https://github.com/appsmithorg/design-system/commit/b843c84119b8a078109f232d1edfe59e5f42226f) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added PT root UI font - -## 1.1.16 - -### Patch Changes - -- [#715](https://github.com/appsmithorg/design-system/pull/715) [`aa7aa940`](https://github.com/appsmithorg/design-system/commit/aa7aa940d0a3f2cea714343f3dd6b09ffa418adf) Thanks [@ayushpahwa](https://github.com/ayushpahwa)! - feat: new workflow icons - -## 1.1.15 - -### Patch Changes - -- [#711](https://github.com/appsmithorg/design-system/pull/711) [`cffe9497`](https://github.com/appsmithorg/design-system/commit/cffe94977c664efbf3465aff8545d30e5384a606) Thanks [@ayushpahwa](https://github.com/ayushpahwa)! - feat: Added new workflows icon - -## 1.1.14 - -### Patch Changes - -- [#667](https://github.com/appsmithorg/design-system/pull/667) [`a684a4e7`](https://github.com/appsmithorg/design-system/commit/a684a4e7d4e40d614418434ed51ec578855468a2) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Adding icons in AppIcon component and Icon provider - -## 1.1.13 - -### Patch Changes - -- [#660](https://github.com/appsmithorg/design-system/pull/660) [`e455013f`](https://github.com/appsmithorg/design-system/commit/e455013ff31f941e2de126bba0d6d84c06a73722) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Added z-index for table head - -## 1.1.12 - -### Patch Changes - -- [#642](https://github.com/appsmithorg/design-system/pull/642) [`c2eadd2a`](https://github.com/appsmithorg/design-system/commit/c2eadd2aaf9265e3f1e3e5783b17dc956a9c9e7b) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Updating the value of tag input to the original value, when the form is reset - -## 1.1.11 - -### Patch Changes - -- [#514](https://github.com/appsmithorg/design-system/pull/514) [`185c6272`](https://github.com/appsmithorg/design-system/commit/185c627221478a13a240219c432b1c885c5bc095) Thanks [@iamakulov](https://github.com/iamakulov)! - perf(DisplayImageUpload): code-split Uppy away - -## 1.1.10 - -### Patch Changes - -- [#502](https://github.com/appsmithorg/design-system/pull/502) [`7eac4f78`](https://github.com/appsmithorg/design-system/commit/7eac4f78df1f0adba5e062b5ed76e2dd6fb7ec14) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: old gray in gif player, alignment in error message for editable text - -## 1.1.9 - -### Patch Changes - -- [#497](https://github.com/appsmithorg/design-system/pull/497) [`2e722d54`](https://github.com/appsmithorg/design-system/commit/2e722d548376bd97ddbed8dcab5a7ed4291f34b1) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: remove editable text backgroudn color on error, change saving icon - -## 1.1.8 - -### Patch Changes - -- [#479](https://github.com/appsmithorg/design-system/pull/479) [`c2c09b6c`](https://github.com/appsmithorg/design-system/commit/c2c09b6c7e6bb674c97b4613d87e359054dd98a8) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fixes for - old toast, datepicker - Added new icons for layout and js file - -## 1.1.7 - -### Patch Changes - -- [#473](https://github.com/appsmithorg/design-system/pull/473) [`6bc83fd4`](https://github.com/appsmithorg/design-system/commit/6bc83fd4b9f813a23ce062459b9761fc27f9be80) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Adding default type for button - -* [#452](https://github.com/appsmithorg/design-system/pull/452) [`0db333d2`](https://github.com/appsmithorg/design-system/commit/0db333d2bd1b0aca1f07120f61d77b2ee6b656bd) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: issues with components - -- [#474](https://github.com/appsmithorg/design-system/pull/474) [`292c0168`](https://github.com/appsmithorg/design-system/commit/292c01685aac90a16ab7d95674e1247d3647b59f) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Updating CSS for tooltip to fix position shift issue - -## 1.1.6 - -### Patch Changes - -- [#466](https://github.com/appsmithorg/design-system/pull/466) [`794f978`](https://github.com/appsmithorg/design-system/commit/794f9783403d105a71c75e3c49f6df7457351331) Thanks [@eco-monk](https://github.com/eco-monk)! - fix: add mime types to file upload - -* [#468](https://github.com/appsmithorg/design-system/pull/468) [`74cd9da`](https://github.com/appsmithorg/design-system/commit/74cd9da4c22565ad93292dc371d91cfb85102df3) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: icon not rendering in all icons page - -## 1.1.5 - -### Patch Changes - -- [#462](https://github.com/appsmithorg/design-system/pull/462) [`37d65c5`](https://github.com/appsmithorg/design-system/commit/37d65c5eae3f01aad126a5cd7664cf8fedb10896) Thanks [@berzerkeer](https://github.com/berzerkeer)! - chore: give control to user to enable/disable uppy informer - -## 1.1.4 - -### Patch Changes - -- [#445](https://github.com/appsmithorg/design-system/pull/445) [`8d3ef64`](https://github.com/appsmithorg/design-system/commit/8d3ef64c4b266569d8b837bc69da255987716e1f) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Adding autoResetExpanded to the table component for avoiding the tree getting closed on every change - -## 1.1.3 - -### Patch Changes - -- [#440](https://github.com/appsmithorg/design-system/pull/440) [`7523dd3`](https://github.com/appsmithorg/design-system/commit/7523dd3a1f7c99cf3cdb2f13ed8042ee8b7312d2) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: icon fixes and added new icons - -## 1.1.2 - -### Patch Changes - -- [#378](https://github.com/appsmithorg/design-system/pull/378) [`a6223d0`](https://github.com/appsmithorg/design-system/commit/a6223d07b39f587c2fa287953c7928bccdfae4c1) Thanks [@rahulramesha](https://github.com/rahulramesha)! - feat: Auto layout conversion design components changes - -## 1.1.1 - -### Patch Changes - -- [#427](https://github.com/appsmithorg/design-system/pull/427) [`d7c5538`](https://github.com/appsmithorg/design-system/commit/d7c5538aa07bd481ce463b06376c93b1f026686c) Thanks [@ChandanBalajiBP](https://github.com/ChandanBalajiBP)! - feat: Add close-circle-line icon - -## 1.1.0 - -### Minor Changes - -- [#415](https://github.com/appsmithorg/design-system/pull/415) [`b559bf6`](https://github.com/appsmithorg/design-system/commit/b559bf64d1a8e76839bee4d24a81cf13b8e06ea7) Thanks [@iamakulov](https://github.com/iamakulov)! - feat: new importSvg and importRemixIcon wrappers for code-splitting icons - -### Patch Changes - -- [#389](https://github.com/appsmithorg/design-system/pull/389) [`6c7441f`](https://github.com/appsmithorg/design-system/commit/6c7441fc69255c1f63dcc1708d30d4ebd3b5d3dc) Thanks [@iamakulov](https://github.com/iamakulov)! - perf: add "sideEffects": false for better tree-shaking - -## 1.0.52 - -### Patch Changes - -- [#393](https://github.com/appsmithorg/design-system/pull/393) [`a81f44b`](https://github.com/appsmithorg/design-system/commit/a81f44bcfbd9c259fbe03f1c754179250f14b16c) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Adding the support for row expansion on the Table component - -## 1.0.51 - -### Patch Changes - -- [#369](https://github.com/appsmithorg/design-system/pull/369) [`ca37154`](https://github.com/appsmithorg/design-system/commit/ca37154e9c636b35797a8c0c3ff5841893a535bf) Thanks [@akash-codemonk](https://github.com/akash-codemonk)! - chore: add sorting icons - -## 1.0.50 - -### Patch Changes - -- [#368](https://github.com/appsmithorg/design-system/pull/368) [`83ae938`](https://github.com/appsmithorg/design-system/commit/83ae938d12863d695ffeb49291c17e5aaac648b9) Thanks [@berzerkeer](https://github.com/berzerkeer)! - chore: added money dollar icon - -## 1.0.49 - -### Patch Changes - -- [#363](https://github.com/appsmithorg/design-system/pull/363) [`c4f9880`](https://github.com/appsmithorg/design-system/commit/c4f9880e2713aef24a0596d1c557acda00ff11a0) Thanks [@berzerkeer](https://github.com/berzerkeer)! - chore: added arrow up icon - -## 1.0.48 - -### Patch Changes - -- [#344](https://github.com/appsmithorg/design-system/pull/344) [`2d2e0bf`](https://github.com/appsmithorg/design-system/commit/2d2e0bf20deef4667f7d121e4a1718bed6b2e66c) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Ds build script - -## 1.0.47 - -### Patch Changes - -- [#340](https://github.com/appsmithorg/design-system/pull/340) [`2f2e797`](https://github.com/appsmithorg/design-system/commit/2f2e79713c5a837cd54c509a6ad149d19e4fb092) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Readme updates for new DS - -## 1.0.46 - -### Patch Changes - -- [#286](https://github.com/appsmithorg/design-system/pull/286) [`19723ee`](https://github.com/appsmithorg/design-system/commit/19723ee66318d59e2ec5342f15b72fc5b850389a) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Changes to support branding components - -* [#303](https://github.com/appsmithorg/design-system/pull/303) [`7c8c552`](https://github.com/appsmithorg/design-system/commit/7c8c5528c934556e5d7bee2ee662a866bca1369e) Thanks [@yaldram](https://github.com/yaldram)! - chore: updated react versions to 17 - -- [#320](https://github.com/appsmithorg/design-system/pull/320) [`776fb11`](https://github.com/appsmithorg/design-system/commit/776fb11cc56bb979e94bbb87c84ebcbb8a462d71) Thanks [@berzerkeer](https://github.com/berzerkeer)! - feat: collapsible component - -## 1.0.45 - -### Patch Changes - -- [#302](https://github.com/appsmithorg/design-system/pull/302) [`4dcb50b`](https://github.com/appsmithorg/design-system/commit/4dcb50bb45fea6142dde0cdd4fded773746b9d8d) Thanks [@yaldram](https://github.com/yaldram)! - feat: updated styled components library - -## 1.0.44 - -### Patch Changes - -- [#305](https://github.com/appsmithorg/design-system/pull/305) [`0c94439`](https://github.com/appsmithorg/design-system/commit/0c944390a3f2209f02b70a2e1545209194b8f804) Thanks [@akash-codemonk](https://github.com/akash-codemonk)! - feat: add more icons used in nav bar - -## 1.0.43 - -### Patch Changes - -- [#299](https://github.com/appsmithorg/design-system/pull/299) [`ce7a5fc`](https://github.com/appsmithorg/design-system/commit/ce7a5fcd8d33bf43493f5e8f0bd5cba0fdf03dd9) Thanks [@akash-codemonk](https://github.com/akash-codemonk)! - chore: add more icons required in new editor header design - -* [#298](https://github.com/appsmithorg/design-system/pull/298) [`bb2077e`](https://github.com/appsmithorg/design-system/commit/bb2077e3bc60c9a3a38071b0a0b198489e96b3e1) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Removing tooltip on table header as it is not part of our design system - -## 1.0.42 - -### Patch Changes - -- [#294](https://github.com/appsmithorg/design-system/pull/294) [`a77d291`](https://github.com/appsmithorg/design-system/commit/a77d29188987d72beeb427954785135abf9e9f67) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: update snippet button from 3ry to 2ry - -## 1.0.41 - -### Patch Changes - -- [#285](https://github.com/appsmithorg/design-system/pull/285) [`1ffd0d7`](https://github.com/appsmithorg/design-system/commit/1ffd0d779387517cb385866d1964b41c73cd40d0) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: tag the latest commit with the alpha tag created - -* [#287](https://github.com/appsmithorg/design-system/pull/287) [`f8089a8`](https://github.com/appsmithorg/design-system/commit/f8089a86d5ea5ba8603f7fad2055756cbad15aa2) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Setting the active tab only via the onSelect function, if present in props - -## 1.0.40 - -### Patch Changes - -- [#280](https://github.com/appsmithorg/design-system/pull/280) [`1ee473f`](https://github.com/appsmithorg/design-system/commit/1ee473f1b0f8effeaac2a2fa9cb3aeccb9e02ae9) Thanks [@akash-codemonk](https://github.com/akash-codemonk)! - chore: Added more remix icons to be used in-app-embed settings - -* [#284](https://github.com/appsmithorg/design-system/pull/284) [`ab044ce`](https://github.com/appsmithorg/design-system/commit/ab044ceb3b38415dc86ce80e4b8df5485d0da275) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Add delete row icon for Access control upgrade page - -## 1.0.39 - -### Patch Changes - -- [#277](https://github.com/appsmithorg/design-system/pull/277) [`2aa515a`](https://github.com/appsmithorg/design-system/commit/2aa515ad96f768f6913a5977ccf25f367ac7a7ad) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - chore: Adding new icons for using them on the audit logs page for Granular Access Control - -## 1.0.38 - -### Patch Changes - -- [#272](https://github.com/appsmithorg/design-system/pull/272) [`7b557fa`](https://github.com/appsmithorg/design-system/commit/7b557fab7c501bcfac6246aa00022287fd396d11) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Text input not triggering validation on defaultValue change - -## 1.0.37 - -### Patch Changes - -- [#261](https://github.com/appsmithorg/design-system/pull/261) [`0c9351f`](https://github.com/appsmithorg/design-system/commit/0c9351f7305e1a1d95eeafc4cd35cc01508ae59b) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - chore: update dependency categorization - -## 1.0.36 - -### Patch Changes - -- [#267](https://github.com/appsmithorg/design-system/pull/267) [`56770ed`](https://github.com/appsmithorg/design-system/commit/56770ed5033462b7c2c2e3a46ee7fc67305be3c8) Thanks [@yaldram](https://github.com/yaldram)! - fix: Flag font issue in dropdown fixed. - -## 1.0.35 - -### Patch Changes - -- [#250](https://github.com/appsmithorg/design-system/pull/250) [`12415dc`](https://github.com/appsmithorg/design-system/commit/12415dc0091cf279810afb986412fca3eeba712f) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Updating the logic for suggestions in the tag input component - -* [#255](https://github.com/appsmithorg/design-system/pull/255) [`097dbd1`](https://github.com/appsmithorg/design-system/commit/097dbd10e9ca2934a673c0ec1a2c1fcc5455172b) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: update button states - tertiary becomes secondary and we have a new, more subtle, tertiary - -## 1.0.34 - -### Patch Changes - -- [#259](https://github.com/appsmithorg/design-system/pull/259) [`676a146`](https://github.com/appsmithorg/design-system/commit/676a146ab15b673355a5ecf1c79f214f166030c6) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Form message component react router issue - -## 1.0.33 - -### Patch Changes - -- [#253](https://github.com/appsmithorg/design-system/pull/253) [`6c398b6`](https://github.com/appsmithorg/design-system/commit/6c398b6dcd8de8ec7e7fd1b496f68f314963e2ac) Thanks [@yaldram](https://github.com/yaldram)! - fix: added classname to leftElement in Dropdown - -## 1.0.32 - -### Patch Changes - -- [#247](https://github.com/appsmithorg/design-system/pull/247) [`bf94a82`](https://github.com/appsmithorg/design-system/commit/bf94a82f9acefece268560e504611d749b859040) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: multiple on change trigger in radio component - -## 1.0.31 - -### Patch Changes - -- [#245](https://github.com/appsmithorg/design-system/pull/245) [`b44e378`](https://github.com/appsmithorg/design-system/commit/b44e37863b80445b4ab8582bc021cc762071a8bb) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: reveryt changes to tree dropdown - -## 1.0.30 - -### Patch Changes - -- [#228](https://github.com/appsmithorg/design-system/pull/228) [`7fe2634`](https://github.com/appsmithorg/design-system/commit/7fe26342c1d93db72eb136a8844b96fb9994a273) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: destructure file picker functions so that they don't throw errors on local - -* [#131](https://github.com/appsmithorg/design-system/pull/131) [`09c108d`](https://github.com/appsmithorg/design-system/commit/09c108dbca070ca092b1ac7a229e6c26d7081a76) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Create CONTRIBUTING.md - -## 1.0.29 - -### Patch Changes - -- [#229](https://github.com/appsmithorg/design-system/pull/229) [`c7f164e`](https://github.com/appsmithorg/design-system/commit/c7f164e35f485df7839b30eb7ed6ff8979b42c60) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: issue with font of toasts on windows machines - -## 1.0.28 - -### Patch Changes - -- [#214](https://github.com/appsmithorg/design-system/pull/214) [`5430e7e`](https://github.com/appsmithorg/design-system/commit/5430e7e185976024cd00687ebe2bd551320cf276) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added date range picker - -* [#217](https://github.com/appsmithorg/design-system/pull/217) [`93a675c`](https://github.com/appsmithorg/design-system/commit/93a675c55f12bf75eadc3c05d162de6af8694833) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Dropdown performance due to createGlobalStyle - -- [#223](https://github.com/appsmithorg/design-system/pull/223) [`d66ff3a`](https://github.com/appsmithorg/design-system/commit/d66ff3a97e718c68c792980115237ccf26201a5c) Thanks [@IAmAnubhavSaini](https://github.com/IAmAnubhavSaini)! - chore: add two new icons and sort icon lines alphabetically - -## 1.0.27 - -### Patch Changes - -- [#202](https://github.com/appsmithorg/design-system/pull/202) [`c40f7ab`](https://github.com/appsmithorg/design-system/commit/c40f7ab3f4b71991d52011654afb63b36fe327c1) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migrated BannerMessage component - -* [#202](https://github.com/appsmithorg/design-system/pull/202) [`4b98f32`](https://github.com/appsmithorg/design-system/commit/4b98f32a568e6754dd4ebfde00a30501f81d91b8) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migrated BannerMessage component - -- [#207](https://github.com/appsmithorg/design-system/pull/207) [`5147ee4`](https://github.com/appsmithorg/design-system/commit/5147ee410bbbc3a8f34c2d09d55aa53e9413592c) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate file picker v2 - -* [#206](https://github.com/appsmithorg/design-system/pull/206) [`c98a9dd`](https://github.com/appsmithorg/design-system/commit/c98a9ddf69714187eb475cdee92249e7ecea7984) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate editable text, editable text sub component, and editable text wrapper - -- [#213](https://github.com/appsmithorg/design-system/pull/213) [`36d06c0`](https://github.com/appsmithorg/design-system/commit/36d06c0c19189cc913883c50040e19a57454ee14) Thanks [@aswathkk](https://github.com/aswathkk)! - feat: Makes ButtonTab to accept label - -* [#218](https://github.com/appsmithorg/design-system/pull/218) [`88cce94`](https://github.com/appsmithorg/design-system/commit/88cce94288f174bf2dd401df5f7aff68dc64abb6) Thanks [@IAmAnubhavSaini](https://github.com/IAmAnubhavSaini)! - feat: settings icon update - -- [#202](https://github.com/appsmithorg/design-system/pull/202) [`a6fc46f`](https://github.com/appsmithorg/design-system/commit/a6fc46f4b6b05c5caa5e6767d739fb1a23a97fa0) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migrated BannerMessage component - -* [#216](https://github.com/appsmithorg/design-system/pull/216) [`bf2c626`](https://github.com/appsmithorg/design-system/commit/bf2c626d8869e0c7732d597edeb896f131266ac6) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Table no data found hover state issue - -## 1.0.26 - -### Patch Changes - -- [#200](https://github.com/appsmithorg/design-system/pull/200) [`691ec30`](https://github.com/appsmithorg/design-system/commit/691ec3074e566472b1a07331a2429d5a2c063c5c) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: form group component migrated - -## 1.0.25 - -### Patch Changes - -- [#204](https://github.com/appsmithorg/design-system/pull/204) [`6f235f1`](https://github.com/appsmithorg/design-system/commit/6f235f1535494025e8df96aced91815bc50aee36) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: JS Toggle Button migrated - -* [#199](https://github.com/appsmithorg/design-system/pull/199) [`30cbd7c`](https://github.com/appsmithorg/design-system/commit/30cbd7c392d793083ac16674a2a75b8ab686392f) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate toast - -- [#205](https://github.com/appsmithorg/design-system/pull/205) [`615eb6e`](https://github.com/appsmithorg/design-system/commit/615eb6efb3c1f1e0fc4066446b75c55478c85993) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix typo in export of StepComponent - -## 1.0.25 - -### Patch Changes - -- [#145](https://github.com/appsmithorg/design-system/pull/145) [`dd6b696`](https://github.com/appsmithorg/design-system/commit/dd6b69638a9aac30883534b96ce43c87677a4dbd) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump moment-timezone from 0.5.34 to 0.5.35 - -* [#189](https://github.com/appsmithorg/design-system/pull/189) [`f975201`](https://github.com/appsmithorg/design-system/commit/f975201afae376d85457f2b1117883c302ee0c56) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - destructure props for onClick on UneditableField - -- [#187](https://github.com/appsmithorg/design-system/pull/187) [`b0b18c3`](https://github.com/appsmithorg/design-system/commit/b0b18c303966439175f78aa8aeaba37c62cea70c) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Dropdown keyboard navigation and UI fixes - -## 1.0.24 - -### Patch Changes - -- [#160](https://github.com/appsmithorg/design-system/pull/160) [`c7d1471`](https://github.com/appsmithorg/design-system/commit/c7d14716908c3ff7d838b89e88ce81f2ce282a8d) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate callout v2, change it so it no longer contains redux - -* [#180](https://github.com/appsmithorg/design-system/pull/180) [`2a394d2`](https://github.com/appsmithorg/design-system/commit/2a394d216815afab40116f3e9f4582ea322d6a1d) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Dropdown keyboard navigation issues - -- [#172](https://github.com/appsmithorg/design-system/pull/172) [`e01f7bd`](https://github.com/appsmithorg/design-system/commit/e01f7bdc395f1b954cb1eb6c6123c02c96495462) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: props destructuring for functions passed as props to components - -* [#181](https://github.com/appsmithorg/design-system/pull/181) [`26c0d6a`](https://github.com/appsmithorg/design-system/commit/26c0d6a592db5acaf30cb8f16a7c49b3734083fc) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: destructure onClick on migrating CalloutV2 - -- [#184](https://github.com/appsmithorg/design-system/pull/184) [`d5acc69`](https://github.com/appsmithorg/design-system/commit/d5acc697a7b5ffdf5fc07b14aecfa52cfcc80730) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: create SnippetButton component - -* [#182](https://github.com/appsmithorg/design-system/pull/182) [`fe9ce05`](https://github.com/appsmithorg/design-system/commit/fe9ce052b79827b2ab33e524b72466589d065cf6) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Reverted dropdown changes - -## 1.0.23 - -### Patch Changes - -- [#171](https://github.com/appsmithorg/design-system/pull/171) [`08cc10f`](https://github.com/appsmithorg/design-system/commit/08cc10fb55f52d65fddee1950a9cc2f7191969bd) Thanks [@IAmAnubhavSaini](https://github.com/IAmAnubhavSaini)! - feat: Added audit logs icons - -* [#177](https://github.com/appsmithorg/design-system/pull/177) [`4b0865a`](https://github.com/appsmithorg/design-system/commit/4b0865ac4965d67131609a471ec9fc97d0b2fa89) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added empty state for dropdown - -## 1.0.22 - -### Patch Changes - -- [#173](https://github.com/appsmithorg/design-system/pull/173) [`0ba1df7`](https://github.com/appsmithorg/design-system/commit/0ba1df7a93f85e14b5f848e774e5ae69ba66a747) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Dropdown v1 design fixes - -## 1.0.21 - -### Patch Changes - -- [#162](https://github.com/appsmithorg/design-system/pull/162) [`38fc15b`](https://github.com/appsmithorg/design-system/commit/38fc15b91720351bd64b6dc827fa2bfed378693b) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: AppIcon story not showing in storybook - -* [#159](https://github.com/appsmithorg/design-system/pull/159) [`0249c93`](https://github.com/appsmithorg/design-system/commit/0249c9389f31b1f021c67c6a6e95cb83b268c3a8) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Dropdown - added selectedOptionElements - -## 1.0.20 - -### Patch Changes - -- [#152](https://github.com/appsmithorg/design-system/pull/152) [`a57397f`](https://github.com/appsmithorg/design-system/commit/a57397fb87301be1184bb4cb49a6429ee3ed2571) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: issues with radio button not responding to click - -* [#155](https://github.com/appsmithorg/design-system/pull/155) [`9a4e930`](https://github.com/appsmithorg/design-system/commit/9a4e930b99e46d89d34611ba9608790dee694d9e) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: radio button color - -## 1.0.19 - -### Patch Changes - -- [#144](https://github.com/appsmithorg/design-system/pull/144) [`43895a4`](https://github.com/appsmithorg/design-system/commit/43895a4689d042eda4c537a53f7d675053abcc8c) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: issues with color and spacing in MenuDivider, Radio - -* [#139](https://github.com/appsmithorg/design-system/pull/139) [`ed6f5a7`](https://github.com/appsmithorg/design-system/commit/ed6f5a77ae54da13a7d9061079e84335e3ff7e0d) Thanks [@IAmAnubhavSaini](https://github.com/IAmAnubhavSaini)! - feat: Introducing icons for audit-logs - -- [#146](https://github.com/appsmithorg/design-system/pull/146) [`15892d5`](https://github.com/appsmithorg/design-system/commit/15892d5750a07656c2843e5e17529de962388084) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: issue with default image being zoomed in on the Display Image Upload component - -* [#143](https://github.com/appsmithorg/design-system/pull/143) [`94035cb`](https://github.com/appsmithorg/design-system/commit/94035cb14016f8625e7db995916b65159d54a2ab) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix:IconSelector onSelect failure in local development - -- [#136](https://github.com/appsmithorg/design-system/pull/136) [`cd54d63`](https://github.com/appsmithorg/design-system/commit/cd54d63fa0138afd8a6f57d841b13aa54ab786ea) Thanks [@ankitakinger](https://github.com/ankitakinger)! - feat: Make Table and Tab header sticky - -## 1.0.18 - -### Patch Changes - -- [#137](https://github.com/appsmithorg/design-system/pull/137) [`ec192f4`](https://github.com/appsmithorg/design-system/commit/ec192f44159784064eff5f8cd9cf9d2adb2e05f9) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Feat/add all icon stories - -* [#140](https://github.com/appsmithorg/design-system/pull/140) [`e316e87`](https://github.com/appsmithorg/design-system/commit/e316e87018b2f79bd0e5ecad5b0adabba78abbe5) Thanks [@yaldram](https://github.com/yaldram)! - fix: dropdown input search text color. - -## 1.0.17 - -### Patch Changes - -- [#133](https://github.com/appsmithorg/design-system/pull/133) [`0d0872e`](https://github.com/appsmithorg/design-system/commit/0d0872e09276f3a6584cc549942a9f43ebe1b472) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: uneditable field icon - -* [#130](https://github.com/appsmithorg/design-system/pull/130) [`99f809b`](https://github.com/appsmithorg/design-system/commit/99f809b732370f935e0d55d08672704659f4527f) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: issue with line height in TableDropdown - -- [#132](https://github.com/appsmithorg/design-system/pull/132) [`b2ba8a5`](https://github.com/appsmithorg/design-system/commit/b2ba8a586409703ecc15543bee03d034c114cc07) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: color of menu divider - -## 1.0.16 - -### Patch Changes - -- [#122](https://github.com/appsmithorg/design-system/pull/122) [`acea1df`](https://github.com/appsmithorg/design-system/commit/acea1dfe6b2bb8887d173d7c338a3b016fd044c2) Thanks [@souma-ghosh](https://github.com/souma-ghosh)! - feat: Adds showScrollbarOnlyOnHover functionality as a property to ScrollIndicator - -* [#126](https://github.com/appsmithorg/design-system/pull/126) [`1e63e78`](https://github.com/appsmithorg/design-system/commit/1e63e78641a3b21a80bb3a0c919544193b5ed9fb) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Table Widget shows scrollbar when not in focus - -- [#123](https://github.com/appsmithorg/design-system/pull/123) [`ae63f08`](https://github.com/appsmithorg/design-system/commit/ae63f08cede255f66deb27a4461565c7db2c243d) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: ui issues with checkbox, button, dropdown - -## 1.0.15 - -### Patch Changes - -- [#124](https://github.com/appsmithorg/design-system/pull/124) [`5ce3673`](https://github.com/appsmithorg/design-system/commit/5ce3673a54679094fdc0dd487cb895eeb329ff07) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Adds showScrollbarOnlyOnHover functionality as a property to ScrollIndicator - -* [#124](https://github.com/appsmithorg/design-system/pull/124) [`5ce3673`](https://github.com/appsmithorg/design-system/commit/5ce3673a54679094fdc0dd487cb895eeb329ff07) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: ui issues with checkbox, button, dropdown - -## 1.0.14 - -### Patch Changes - -- [#116](https://github.com/appsmithorg/design-system/pull/116) [`538ca0f`](https://github.com/appsmithorg/design-system/commit/538ca0f561f0073663ec83842fc140a87a705910) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: Migrate Table, Uneditable Field, Step Component - -* [#113](https://github.com/appsmithorg/design-system/pull/113) [`7511e4c`](https://github.com/appsmithorg/design-system/commit/7511e4cfb615e59df9f382c8b6b8d4ceb3576e54) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added taginput changes for showing suggetion - -## 1.0.13 - -### Patch Changes - -- [#111](https://github.com/appsmithorg/design-system/pull/111) [`4b591ee`](https://github.com/appsmithorg/design-system/commit/4b591ee31bff46d12660fbb584efd13ae5396874) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - chore: sync LabelWithTooltip and Dropdown - -* [#109](https://github.com/appsmithorg/design-system/pull/109) [`8fc60ea`](https://github.com/appsmithorg/design-system/commit/8fc60ea238ad20ec34a21d799273c851dfdc709d) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Button and ButtonTab component issue in onclick functions - -## 1.0.12 - -### Patch Changes - -- [#105](https://github.com/appsmithorg/design-system/pull/105) [`444cee2`](https://github.com/appsmithorg/design-system/commit/444cee2ace642335988ebab974f02ff17a775f9c) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - update DropdownOption to TableDropdownOption and export for typechecking ease - -## 1.0.11 - -### Patch Changes - -- [#100](https://github.com/appsmithorg/design-system/pull/100) [`cedb54d`](https://github.com/appsmithorg/design-system/commit/cedb54d0f357389f5db571fdb5a20ad3c675885d) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added button test - -## 1.0.10 - -### Patch Changes - -- [#96](https://github.com/appsmithorg/design-system/pull/96) [`81b2848`](https://github.com/appsmithorg/design-system/commit/81b2848a12dc36da31f981f880a402ff1e38bea7) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Update HighlightText from ee - -* [#94](https://github.com/appsmithorg/design-system/pull/94) [`f361147`](https://github.com/appsmithorg/design-system/commit/f361147a21aa49db92d1ac1ff46e8763de3c41ba) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Update scroll indicator on hover behavior - -## 1.0.9 - -### Patch Changes - -- [#90](https://github.com/appsmithorg/design-system/pull/90) [`2c4ec92`](https://github.com/appsmithorg/design-system/commit/2c4ec92b08e5b073de94001115dad45fd0e03c9d) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Add exports for Radio, Notificationbanner - Add some more unused tests - Update LabelWithTooltip from ce before deleting the file there - -* [#92](https://github.com/appsmithorg/design-system/pull/92) [`dc57c6e`](https://github.com/appsmithorg/design-system/commit/dc57c6e700f8fa0fe328f070e0f48f2c6c4ab0c8) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Treedropdown icon and intent prop type - -## 1.0.8 - -### Patch Changes - -- [#87](https://github.com/appsmithorg/design-system/pull/87) [`d506fd1`](https://github.com/appsmithorg/design-system/commit/d506fd1a6b5aec7dc8596ba16d5f9e24d25e539d) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Fix: Clashing dropdown exports - -## 1.0.7 - -### Patch Changes - -- [#82](https://github.com/appsmithorg/design-system/pull/82) [`74ad31c`](https://github.com/appsmithorg/design-system/commit/74ad31c525483d7cd0366a189e624863efa87f59) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - Added Jest configuration - Fixed svg viewBox trimming issue - Added sprint assignment to checklist - -## 1.0.6 - -### Patch Changes - -- [#36](https://github.com/appsmithorg/design-system/pull/36) [`1e25150`](https://github.com/appsmithorg/design-system/commit/1e25150af52bd683a4c27afaae0bca63c58d338c) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Changed readme to test workflow - -* [#65](https://github.com/appsmithorg/design-system/pull/65) [`2651d28`](https://github.com/appsmithorg/design-system/commit/2651d28765ed404d2fcb678f8656f131656d4810) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate dropdown, list segment header - -- [#43](https://github.com/appsmithorg/design-system/pull/43) [`f0ccf39`](https://github.com/appsmithorg/design-system/commit/f0ccf39d245db0c292f3c47f47e55b34c62067d9) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: issues with exports in the migration of dropdown V2 - -* [#69](https://github.com/appsmithorg/design-system/pull/69) [`8ecbd78`](https://github.com/appsmithorg/design-system/commit/8ecbd786d67d3749ad7875e8c3e58ca49c0c8b5b) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Enable cross icon on the Search Component - -- [#58](https://github.com/appsmithorg/design-system/pull/58) [`a87589b`](https://github.com/appsmithorg/design-system/commit/a87589b0bdbef0995286c9b6600c18dc28c2bdf7) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate checkbox - -* [#66](https://github.com/appsmithorg/design-system/pull/66) [`7d1a82c`](https://github.com/appsmithorg/design-system/commit/7d1a82cff65ae933e9a3789c597211560f67c61c) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate label with tooltip - -- [#60](https://github.com/appsmithorg/design-system/pull/60) [`6ba241b`](https://github.com/appsmithorg/design-system/commit/6ba241b23ae3c1f263e38a7d482f2c3094109b08) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate callout - -* [#74](https://github.com/appsmithorg/design-system/pull/74) [`49adedb`](https://github.com/appsmithorg/design-system/commit/49adedb73d05dce6b5dc6caac62ff96a35b4db41) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Update Component-Migration-Checklist to include note about diffing files before changing imports - -- [#46](https://github.com/appsmithorg/design-system/pull/46) [`9ab5309`](https://github.com/appsmithorg/design-system/commit/9ab530951efcedf44c84959aa53d318846e461c0) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migration - Color Picker component - -* [#48](https://github.com/appsmithorg/design-system/pull/48) [`f6e63e4`](https://github.com/appsmithorg/design-system/commit/f6e63e4aa3a3ab8884d2a5dad2fcd834563c6964) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migration - Menu, Menu Item component - -- [#61](https://github.com/appsmithorg/design-system/pull/61) [`712ebdf`](https://github.com/appsmithorg/design-system/commit/712ebdfeb084ac6594eb40b63dfc3e04378a3db2) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate text input - -* [#56](https://github.com/appsmithorg/design-system/pull/56) [`6d351b7`](https://github.com/appsmithorg/design-system/commit/6d351b70b65c5993b25110e1420876c4ccf88f10) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migrated ButtonTab component - -- [#54](https://github.com/appsmithorg/design-system/pull/54) [`acfc97a`](https://github.com/appsmithorg/design-system/commit/acfc97a06ed4a473cd325a1484f609a587aed8b4) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migrated Tag Input component - -* [#57](https://github.com/appsmithorg/design-system/pull/57) [`8e742e9`](https://github.com/appsmithorg/design-system/commit/8e742e9c02a10c58ca6aac01a6f86b646257dc73) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migrated Toggle component - -- [#62](https://github.com/appsmithorg/design-system/pull/62) [`eb570c2`](https://github.com/appsmithorg/design-system/commit/eb570c2017ad7486136432881d78bdc60fe49840) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate copy to clipboard - -* [#40](https://github.com/appsmithorg/design-system/pull/40) [`d0c5cdd`](https://github.com/appsmithorg/design-system/commit/d0c5cdd82c47a08eee8b2ae336a0df57ac916604) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: migrate Dropdown v2 - feat: migrate Search Component - feat: migrate Highlight Text - -- [#70](https://github.com/appsmithorg/design-system/pull/70) [`1a2909a`](https://github.com/appsmithorg/design-system/commit/1a2909aa91be23260ab187a14cbd7c75b2efc098) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Feat/migrate notification banner - -* [#73](https://github.com/appsmithorg/design-system/pull/73) [`f52ed2b`](https://github.com/appsmithorg/design-system/commit/f52ed2ba7d8b59c43b24cab902b93af339a5d99d) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Support primary and secondary variants in checkbox - -- [#32](https://github.com/appsmithorg/design-system/pull/32) [`6833851`](https://github.com/appsmithorg/design-system/commit/6833851de5303a6b4487743083a79e1f5bea987c) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - Readme change for testing workflows - -* [#51](https://github.com/appsmithorg/design-system/pull/51) [`4b7b8d9`](https://github.com/appsmithorg/design-system/commit/4b7b8d986f5f71744bf47669dddec49cc8363a73) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Feature: migrate radio component, menu divider - -- [#47](https://github.com/appsmithorg/design-system/pull/47) [`c8543ed`](https://github.com/appsmithorg/design-system/commit/c8543ed7ca193ff77ce482ca0d9630999b6a3313) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migration - Button component - -* [#68](https://github.com/appsmithorg/design-system/pull/68) [`56124c1`](https://github.com/appsmithorg/design-system/commit/56124c11e2f5b89118981d097682958545295c33) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - Migrated Display image upload, Draggable list, Numbered steps, Tabs, Tab item background fill, Emoji picker, Emoji reactions, Gif player, Scroll indicator, Icon selector, Multiswitch, Field error, Text field, Rectangular switch, Showcase carousal, Statusbar, Table dropdown - -- [#64](https://github.com/appsmithorg/design-system/pull/64) [`c636be2`](https://github.com/appsmithorg/design-system/commit/c636be2bcfcf2f98f99f7c85eb81af02f66c579d) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - Feat/migrate dialog - -* [#59](https://github.com/appsmithorg/design-system/pull/59) [`1f239f2`](https://github.com/appsmithorg/design-system/commit/1f239f26e0cc1be0eb1f323205cfa6a35986ae83) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: Create ColorSelector - -- [#44](https://github.com/appsmithorg/design-system/pull/44) [`ccc9c37`](https://github.com/appsmithorg/design-system/commit/ccc9c37d4890fee26cc589d1e10c056f7e6c03a2) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migration - icon, control icon, spinner components - -* [#49](https://github.com/appsmithorg/design-system/pull/49) [`913348e`](https://github.com/appsmithorg/design-system/commit/913348ee8ddb4a59bb2c6389ab397fefab1d9c15) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migration - Switch component - -- [#42](https://github.com/appsmithorg/design-system/pull/42) [`b594f0c`](https://github.com/appsmithorg/design-system/commit/b594f0ccbf6b48609d72a0c95bbac5f602977239) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Migration - DatePicker, AppIcon - fix: AppIcon component size issue - fix: Typescript version conflict - fix: SVG import for storybook - -* [#38](https://github.com/appsmithorg/design-system/pull/38) [`6d66db6`](https://github.com/appsmithorg/design-system/commit/6d66db65aa8b510c53d35a92d530135305fd51d6) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - Readme change for testing workflow - -- [#55](https://github.com/appsmithorg/design-system/pull/55) [`4619399`](https://github.com/appsmithorg/design-system/commit/4619399bb4e0f70bb65209d01d8b7b1df9198d12) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added breadcrumbs component and story - -## 1.0.5 - -### Patch Changes - -- [#29](https://github.com/appsmithorg/design-system/pull/29) [`e710c7a`](https://github.com/appsmithorg/design-system/commit/e710c7a9ce7fdac09d34c8085dc53c8c5856b1ad) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - Fixed spacing in readme - -## 1.0.4 - -### Patch Changes - -- [#23](https://github.com/appsmithorg/design-system/pull/23) [`a2bf066`](https://github.com/appsmithorg/design-system/commit/a2bf066c69b5d08100d2adf223d377bf947e280c) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - Added optional underline feature for tooltip target - -* [#22](https://github.com/appsmithorg/design-system/pull/22) [`c791e3e`](https://github.com/appsmithorg/design-system/commit/c791e3e2184e8528a0a1a54c59909a21e9d4ed16) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - Added Text component and related stories - -## 1.0.3 - -### Patch Changes - -- [#16](https://github.com/appsmithorg/design-system/pull/16) [`731f3ea`](https://github.com/appsmithorg/design-system/commit/731f3ea4cac1109fe5071490c295dc590ed89402) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - Readme file changed - casing change - -## 1.0.2 - -### Patch Changes - -- [#14](https://github.com/appsmithorg/design-system/pull/14) [`b073321`](https://github.com/appsmithorg/design-system/commit/b073321099aee0d24ba782da331bab807825f14b) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - Made changed in the readme file for NPM package diff --git a/app/client/packages/design-system/ads-old/CONTRIBUTING.md b/app/client/packages/design-system/ads-old/CONTRIBUTING.md deleted file mode 100644 index 6eadec52e95..00000000000 --- a/app/client/packages/design-system/ads-old/CONTRIBUTING.md +++ /dev/null @@ -1,67 +0,0 @@ - -Refer to [the README](https://github.com/appsmithorg/design-system/blob/main/packages/design-system/README.md#contribute) for a guide on how to get started with contributing. - -## Using yalc - -When you make a change in the design system, you will want to ensure that the component works as expected in the app you are using it for. To emulate working with published packages locally, we use [yalc](https://www.npmjs.com/package/yalc). - -### Installation - -Run -```shell -yarn global add yalc -``` - -### Setting up for appsmith usage - -If we're going to use this package in the `appsmith` repository, we need to make some additional changes to this repository. - -1. navigate to the `package/design-system/package.json` file -2. Make sure you change the field `"name": "@appsmithorg/design-system"` to `"name": "design-system"`. We do this so that we don't run into alias conflicts later. -3. Make sure you do not commit this file - -### In this repository - -We need to "publish" our package. - -1. Make sure the package builds by running `yarn build` -2. Make sure the functionality works as expected in the playground by running `yarn storybook` and then testing your component out in the relevant story -3. If you are writing a new component, write a story for it taking another story from this repository as reference. You could also refer to [the official docs](https://storybook.js.org/docs/react/writing-stories/introduction#how-to-write-stories). -4. When you've done all of this, run `yalc publish`. It will output the package name and number. - -### In the other repository - -1. Run `yalc add design-system` in the appsmith repository. -2. This will create changes in your `package.lock` file. Run `yarn` to get the new package version from `yalc`. -3. This will create changes in your `yarn.lock` file, which is what we want. Make sure you do not commit these changes. - -Now you can test your app while including the changes made in this package. Go ahead and run your local development environment, or some cypress tests. - -Please note that yalc will not test any uncommitted changes you make in your file system. Make sure you have everything you need in the commits (you can always revert bad ones!) - - -## Non-local testing - -You can create an alpha release of your branch so that other people can see and test your changes in a different repository (on a CI, for example). To do this, - -1. In your `package.json`, make sure the `version` key is set to be the latest alpha version listed on the `versions` tab on [our npm package listing](https://www.npmjs.com/package/@appsmithorg/design-system). If you don't do this, the alpha version you create will overwrite an existing version and bad things might happen. -2. Run `./alpha-release.sh` in your shell. In order to complete this script, you will need an OTP which only members of the [@appsmithorg](https://www.npmjs.com/package/@appsmithorg/design-system) organisation on npm have access to. Please contact someone from the design system pod before you start this action. - -## Creating stories - -When you create a component, make sure you write a well-defined story for it. A well defined story is one that -1. Denotes the default state of the component -2. Denotes all the variants of the component -3. Has a list of all the things the component can be - -You can create a template for your stories by running -```shell -yarn create-story -f -``` -where ideally your directory name matches your component name exactly. - -## Contribution Guidelines: Code Style - -1. Destructure function props where possible: https://github.com/appsmithorg/design-system/pull/109 -2. - diff --git a/app/client/packages/design-system/ads-old/Component-Migration-Checklist.md b/app/client/packages/design-system/ads-old/Component-Migration-Checklist.md deleted file mode 100644 index 64d507dca1f..00000000000 --- a/app/client/packages/design-system/ads-old/Component-Migration-Checklist.md +++ /dev/null @@ -1,39 +0,0 @@ -# Steps to migrate components - -- [ ] Pick the component to be migrated. Mark it as in progress (highlight in yellow) on the migration sheet [Component Migration planning](https://docs.google.com/spreadsheets/d/1pcIMvGwknhbjnG1yxKH2UnRIOPwW5lw_xiFxrJdb1E8/edit?usp=drivesdk) -- [ ] Create an issue for it on [appsmith/ce](http://github.com/appsmithorg/appsmith). Announce that you’re doing this on #design-system and #team-tech channel. - - [ ] All PRs should have an issue. - - [ ] All issues should have estimates. - - [ ] All issues should be assigned to sprint(s). - - [ ] All migration-related issue goes inside the migration epic - - [ ] All migration issues should have labels ads migration - - [ ] All design system issues should have a design system pod label. Then, zenhub can track the issues. - - [ ] All issues should have sprint added to it. -- [ ] Copy the files over to the [appsmith/design-system](http://github.com/appsmithorg/design-system/) repository. - - [ ] Copy any unit test files over as well if they exist. - - [ ] In the files, props.theme variables become variables used from variables.css - - [ ] component-specific variables and tokens go in index.css (make sure you order this alphabetically) - - [ ] Add stories for every state and variation of the component - - [ ] Make sure to add the exports of the components you’ve added in the src/index.ts file -- [ ] Create a branch to change the imports on appsmith/ce. - - [ ] First, check that there has been no deviation from the migrated file in the design-system repo with the current file in the appsmith repo. You can run the command `git log -1 --pretty="format:%ci" ./src/components/ads/[YOUR_COMPONENT_FILE]` and if the date returned is after the beginning of July, it was probably modified. You can paste both files in a diff checker like [diffchecker.com](diffchecker.com) to compare and update the files in the design-system repo. - - [ ] On this branch, delete the files for the component you’ve just migrated. - - [ ] Everywhere the component was used, change the import to point to the design-system package instead. - - [ ] If you've migrated a component that is used a specific new places in the ee-repo, make updates there as well. -- [ ] Test the changes you’ve made and if the imports you’ve generated work as expected in your local developer environment of appsmith - - [ ] install yalc on your system - - [ ] run `yarn build` to build the package, then `yalc publish` to imitate the package being published - - [ ] run `yalc add '@appsmithorg/design-system'` in the appsmith/ce repository - - [ ] All the imports will now be named imports. for local testing purposes, they will come from `@appsmithorg/design-system` . Make sure to change these imports to just `design-system` when committing them. - - [ ] Make sure you also test on ee, because ee is a superset of ce. If things break on ee, you will have to fix the specific import changes there as well. - - [ ] You can test on ee by pulling your changes from your ce branch into your ee branch following the steps in the 'set up upstream repo' part of this document: https://www.notion.so/appsmith/How-to-resolve-merge-conflicts-when-Sync-Community-Workflow-fails-66f1eb73ce4b45f48f8e6f6f4f5ebfd8#e5e755eab837428581a4f81847b4e39c - - [ ] You will have to run ee locally following this document: https://www.notion.so/appsmith/Steps-to-run-EE-code-locally-d01e0bc343d94a209c8a90d3dba33e17 -- [ ] Raise a PR for the changes you’ve made in the design-system repository. Make sure you have added a changeset for the PR detailing what the PR will do. -- [ ] Once your changes on the design-system repository has been approved and merged to release, take the beta version number of our package under ‘current tags’ from the published npm page, and replace the version number of [this line](https://github.com/appsmithorg/appsmith/blob/8428ae506a02ec477027b82936ff003c0c53cafb/app/client/package.json#L48) with it on your branch. Test once again if the imports work as expected, then raise a PR for the changed imports in the appsmith/ce repository. [@appsmithorg/design-system](https://www.npmjs.com/package/@appsmithorg/design-system) -- [ ] Once the PR is raised, the deploy preview created will be given to QA for testing. To help them with that process, we will have to prepare a document of where the component is being used. Take a screenshot of the pages where the changes have happened, and then add them to the component usage spreadsheet: [Components usage](https://docs.google.com/spreadsheets/d/1np7jQdiQa0nyryOBnNa927NkGDplG9M2gb7qnoZIIyM/edit?usp=drivesdk) -- [ ] Ensure that QA signs off on both ce and ee repositories -- [ ] Minor versions are incremented every time release is merged into main. This is currently a manual process. Make sure that when you make this change, the package.json in appsmith/ce is updated accordingly. - -## **Versioning ([NPM semantic versioning](https://docs.npmjs.com/about-semantic-versioning))** - -![Screenshot 2022-05-10 at 4.20.48 PM.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ba1bcd19-e767-4f2b-bc37-1037451f0cc6/Screenshot_2022-05-10_at_4.20.48_PM.png) diff --git a/app/client/packages/design-system/ads-old/README.md b/app/client/packages/design-system/ads-old/README.md deleted file mode 100644 index eef06fa2d55..00000000000 --- a/app/client/packages/design-system/ads-old/README.md +++ /dev/null @@ -1,94 +0,0 @@ -

- - - -

- -

Appsmith Design System - old (deprecated)

- -
- -UI Design system of Appsmith - -[![npm package](https://img.shields.io/npm/v/@appsmithorg/design-system.svg?style=flat-square)](https://www.npmjs.org/package/@appsmithorg/design-system) - -
- -[![](https://github.com/appsmithorg/appsmith/raw/release/static/git-banner-new.png)](https://appsmith.com) - - - - -## Install - -```bash -npm install @appsmith/design-system-old -``` -or -```bash -yarn add @appsmithorg/design-system-old -``` - -## Including CSS - -Add css import in the root index css file -```bash -@import "~@appsmithorg/design-system-old/build/css/design-system-old.css"; -``` - -## Usage - -```jsx -import { TooltipComponent } from "@appsmithorg/design-system-old"; - - - Hover here 😁 - -``` - -## Contribute -> 🚫 This package is closed for contributions. We welcome contributions to the `design-system` package. - -```bash -git clone https://github.com/appsmithorg/design-system.git -``` - -Get all dependencies with -```bash -cd design-system/packages/design-system-old -yarn install -``` - -Then run storybook in development and watch mode with -```bash -yarn run design-system:storybook -``` - -Any stories you write within `design-system/packages/design-system-old/src/**` will show up here. - -To use your local version of the package, run -```bash -yarn link -``` -in this repository, then copy instruction it outputs into the root directory of the repository you want to use this package in. -Run -```bash -yarn install -``` -again to be able to import the components using - -```jsx -import { TooltipComponent } from "@appsmithorg/design-system-old"; -``` - -### Create story template -``` -yarn create-story -f -``` -'folder-name' is the folder which holds the component which the story template is being created. This should be under 'src' folder. - -Happy playground testing! - -## Links - -- [Home page](https://www.appsmith.com) diff --git a/app/client/packages/design-system/ads-old/src/EditableTextSubComponent/index.tsx b/app/client/packages/design-system/ads-old/src/EditableTextSubComponent/index.tsx index 93cd4b8a511..b6ea8ed6391 100644 --- a/app/client/packages/design-system/ads-old/src/EditableTextSubComponent/index.tsx +++ b/app/client/packages/design-system/ads-old/src/EditableTextSubComponent/index.tsx @@ -254,7 +254,7 @@ export const EditableTextSubComponent = React.forwardRef( {savingState === SavingState.STARTED ? ( ) : value && !props.hideEditIcon && iconName ? ( - + ) : null} {isEditing && !!isInvalid ? ( diff --git a/app/client/packages/design-system/ads/CHANGELOG.md b/app/client/packages/design-system/ads/CHANGELOG.md deleted file mode 100644 index 01994c05d70..00000000000 --- a/app/client/packages/design-system/ads/CHANGELOG.md +++ /dev/null @@ -1,393 +0,0 @@ -# @appsmithorg/design-system - -## 2.1.43 - -### Patch Changes - -- [#744](https://github.com/appsmithorg/design-system/pull/744) [`4a92d080`](https://github.com/appsmithorg/design-system/commit/4a92d0806fc0c0174f57fbcfdd33f5d37ccb1b37) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added events and defer prop to ScrollArea - -- [#746](https://github.com/appsmithorg/design-system/pull/746) [`4b94af20`](https://github.com/appsmithorg/design-system/commit/4b94af2001728d0169b2b377d1d2f90db685a2a0) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Updated sm size for DatePicker, Input, Number Input, and Search Input - -## 2.1.42 - -### Patch Changes - -- [#740](https://github.com/appsmithorg/design-system/pull/740) [`fb7a979d`](https://github.com/appsmithorg/design-system/commit/fb7a979dc6dde647f8e1778801e117972ffadb26) Thanks [@brayn003](https://github.com/brayn003)! - chore: adding icon for git-repository - -## 2.1.41 - -### Patch Changes - -- [#735](https://github.com/appsmithorg/design-system/pull/735) [`56cd05b7`](https://github.com/appsmithorg/design-system/commit/56cd05b764a867a0c2adef0348ebcdbd55214df6) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Text wrap fix - -## 2.1.40 - -### Patch Changes - -- [#731](https://github.com/appsmithorg/design-system/pull/731) [`b843c841`](https://github.com/appsmithorg/design-system/commit/b843c84119b8a078109f232d1edfe59e5f42226f) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added PT root UI font - -## 2.1.39 - -### Patch Changes - -- [#728](https://github.com/appsmithorg/design-system/pull/728) [`d40db1a4`](https://github.com/appsmithorg/design-system/commit/d40db1a45da6e2a6adba9cf05859f2bb599acd32) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added Scrollbar component - -## 2.1.38 - -### Patch Changes - -- [#725](https://github.com/appsmithorg/design-system/pull/725) [`f14136ed`](https://github.com/appsmithorg/design-system/commit/f14136edd6dc91f252c4cd7c4fbb95acdc52f393) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Updated popover content z-index - -## 2.1.37 - -### Patch Changes - -- [#722](https://github.com/appsmithorg/design-system/pull/722) [`5f0a73e5`](https://github.com/appsmithorg/design-system/commit/5f0a73e517679a365cab73b67253c613d9c4282f) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Adding color icon for google - -## 2.1.36 - -### Patch Changes - -- [#715](https://github.com/appsmithorg/design-system/pull/715) [`aa7aa940`](https://github.com/appsmithorg/design-system/commit/aa7aa940d0a3f2cea714343f3dd6b09ffa418adf) Thanks [@ayushpahwa](https://github.com/ayushpahwa)! - feat: new workflow icons - -- [#716](https://github.com/appsmithorg/design-system/pull/716) [`2d162af1`](https://github.com/appsmithorg/design-system/commit/2d162af17eacfe18f34f028333e00c3d1ca1d018) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Announcement modal - -## 2.1.35 - -### Patch Changes - -- [#711](https://github.com/appsmithorg/design-system/pull/711) [`cffe9497`](https://github.com/appsmithorg/design-system/commit/cffe94977c664efbf3465aff8545d30e5384a606) Thanks [@ayushpahwa](https://github.com/ayushpahwa)! - feat: Added new workflows icon - -## 2.1.34 - -### Patch Changes - -- [#705](https://github.com/appsmithorg/design-system/pull/705) [`c2f8c4f7`](https://github.com/appsmithorg/design-system/commit/c2f8c4f7b455199763b15dbde5c0dff3f54d8a00) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added new maximize minimize icons - -## 2.1.33 - -### Patch Changes - -- [#699](https://github.com/appsmithorg/design-system/pull/699) [`690716c1`](https://github.com/appsmithorg/design-system/commit/690716c13f6b0ee107ac615f3d0e2d4f1108fc53) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added new minimize icon - -## 2.1.32 - -### Patch Changes - -- [#696](https://github.com/appsmithorg/design-system/pull/696) [`b8cf1dc4`](https://github.com/appsmithorg/design-system/commit/b8cf1dc46788fc3894cd51678b1b8cd578f7cf6b) Thanks [@hetunandu](https://github.com/hetunandu)! - chore: Add Maximize and Minimize icons for Side by Side - -## 2.1.31 - -### Patch Changes - -- [#693](https://github.com/appsmithorg/design-system/pull/693) [`e8d0e522`](https://github.com/appsmithorg/design-system/commit/e8d0e5220713ba235148078e744f2aaff09daa20) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Radio, Checkbox - child span issue - -## 2.1.30 - -### Patch Changes - -- [#686](https://github.com/appsmithorg/design-system/pull/686) [`c626a0bb`](https://github.com/appsmithorg/design-system/commit/c626a0bbc2a74fbb11a23f4962af8c167e7cd19c) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Editor sidebar v3 icons - -- [#685](https://github.com/appsmithorg/design-system/pull/685) [`b01ab259`](https://github.com/appsmithorg/design-system/commit/b01ab259c5b5b4f9d64a1d797f4e0663c1eba445) Thanks [@vaibhavchobisa](https://github.com/vaibhavchobisa)! - feat: replaced tooltip with copy button in category token documentation - -## 2.1.29 - -### Patch Changes - -- [#683](https://github.com/appsmithorg/design-system/pull/683) [`be332c99`](https://github.com/appsmithorg/design-system/commit/be332c99f0bb3e4fda93831d5edc11ac972a87ce) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - chore: Disable Icon clicks on NumberInput upon min-max violations - -## 2.1.28 - -### Patch Changes - -- [#677](https://github.com/appsmithorg/design-system/pull/677) [`154932d6`](https://github.com/appsmithorg/design-system/commit/154932d63b392a14ffac0ff22a4953eae61b7348) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - New icons segmented control width - -## 2.1.27 - -### Patch Changes - -- [#673](https://github.com/appsmithorg/design-system/pull/673) [`c8045ee8`](https://github.com/appsmithorg/design-system/commit/c8045ee830a6d9d2e2f3f351982f7f4b695af0af) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added announcement popover component - -## 2.1.26 - -### Patch Changes - -- [#668](https://github.com/appsmithorg/design-system/pull/668) [`8d28e37f`](https://github.com/appsmithorg/design-system/commit/8d28e37f797b84e52f0c581d38d1908cbcab5ece) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: List component line height class name - -- [#667](https://github.com/appsmithorg/design-system/pull/667) [`a684a4e7`](https://github.com/appsmithorg/design-system/commit/a684a4e7d4e40d614418434ed51ec578855468a2) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Adding icons in AppIcon component and Icon provider - -## 2.1.25 - -### Patch Changes - -- [#657](https://github.com/appsmithorg/design-system/pull/657) [`46ff5a31`](https://github.com/appsmithorg/design-system/commit/46ff5a31f91e322c5d1d64782943c0e8cb2eb0c1) Thanks [@akash-codemonk](https://github.com/akash-codemonk)! - feat: allow react node for start icon in ListItem - -- [#654](https://github.com/appsmithorg/design-system/pull/654) [`a5d82e3b`](https://github.com/appsmithorg/design-system/commit/a5d82e3b57ba602d49ada69ed9edaf0f6cb0b6a7) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added form control - -## 2.1.24 - -### Patch Changes - -- [#647](https://github.com/appsmithorg/design-system/pull/647) [`4b554c29`](https://github.com/appsmithorg/design-system/commit/4b554c29d0404a44dd8052997fec85d262bdc9de) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added flex and grid component - -## 2.1.23 - -### Patch Changes - -- [#643](https://github.com/appsmithorg/design-system/pull/643) [`2f8b2fa6`](https://github.com/appsmithorg/design-system/commit/2f8b2fa6e301c54a4803eeac4c1431c86224c51b) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added banner component - -## 2.1.22 - -### Patch Changes - -- [#642](https://github.com/appsmithorg/design-system/pull/642) [`c2eadd2a`](https://github.com/appsmithorg/design-system/commit/c2eadd2aaf9265e3f1e3e5783b17dc956a9c9e7b) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Updating the value of tag input to the original value, when the form is reset - -- [#641](https://github.com/appsmithorg/design-system/pull/641) [`09dd90ad`](https://github.com/appsmithorg/design-system/commit/09dd90ada28f1de01e15aa718e7e378761866393) Thanks [@NilanshBansal](https://github.com/NilanshBansal)! - feat: added file and box icons for IA Redesign - -## 2.1.21 - -### Patch Changes - -- [#604](https://github.com/appsmithorg/design-system/pull/604) [`8cd9a0f1`](https://github.com/appsmithorg/design-system/commit/8cd9a0f11ad89b72e1d35b791f4b7b5d87ee5680) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Add new props for excluding shortcuts from date rage picker. - -- [#592](https://github.com/appsmithorg/design-system/pull/592) [`bd931c22`](https://github.com/appsmithorg/design-system/commit/bd931c22f52d162a846b11785a1a707251711cb0) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Add documentation for category tokens - -## 2.1.20 - -### Patch Changes - -- [#603](https://github.com/appsmithorg/design-system/pull/603) [`d9302294`](https://github.com/appsmithorg/design-system/commit/d930229468ebe24a1c54918bbdfa6999f32ab282) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: divider colors - -## 2.1.19 - -### Patch Changes - -- [#535](https://github.com/appsmithorg/design-system/pull/535) [`c69f8439`](https://github.com/appsmithorg/design-system/commit/c69f8439ff92b2262e2a353e920513d7d49cb699) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: add affordance to link - -- [#573](https://github.com/appsmithorg/design-system/pull/573) [`93373c97`](https://github.com/appsmithorg/design-system/commit/93373c97624524a0faba5f7cef7f880a3d287237) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: revert tag and release only special and premium tags - -- [#567](https://github.com/appsmithorg/design-system/pull/567) [`b6d2bc80`](https://github.com/appsmithorg/design-system/commit/b6d2bc807afc0b37f38d025f5c208aa1636af41c) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: add popover - -- [#584](https://github.com/appsmithorg/design-system/pull/584) [`ae47300c`](https://github.com/appsmithorg/design-system/commit/ae47300cbfac86b6fde0522063386f6d8613bb13) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Select arrow fix, table style priority - -- [#588](https://github.com/appsmithorg/design-system/pull/588) [`c399651c`](https://github.com/appsmithorg/design-system/commit/c399651ce7eace35f7ff3c225aa7ecb752c27359) Thanks [@dhruvikn](https://github.com/dhruvikn)! - fix: change collapsible toggle arrow directions from up/down to down/right - -- [#579](https://github.com/appsmithorg/design-system/pull/579) [`d1f138cf`](https://github.com/appsmithorg/design-system/commit/d1f138cfb0b1e973a2622e592bb2246dff06705e) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: documentation updates for popover, collapsible, number input, callout, spinner. Add documentation template to generate files. - -- [#578](https://github.com/appsmithorg/design-system/pull/578) [`e80db491`](https://github.com/appsmithorg/design-system/commit/e80db4912e5a3ebea7f9de989893456623edb052) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added toggle new size variant "lg" - -## 2.1.18 - -### Patch Changes - -- [#534](https://github.com/appsmithorg/design-system/pull/534) [`059b0f0f`](https://github.com/appsmithorg/design-system/commit/059b0f0f7bdaee43a7e951d047e6b9b12bc2fb39) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - docs: separate resources from references - -## 2.1.17 - -### Patch Changes - -- [#523](https://github.com/appsmithorg/design-system/pull/523) [`6c5ec6b8`](https://github.com/appsmithorg/design-system/commit/6c5ec6b86b5f2ee058289847a8987afc11381acb) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - chore: add documentation - -* [#516](https://github.com/appsmithorg/design-system/pull/516) [`02f2d243`](https://github.com/appsmithorg/design-system/commit/02f2d2439a29605b84c4a43c8219db32288f1267) Thanks [@dhruvikn](https://github.com/dhruvikn)! - feat: add collapsible component - -## 2.1.16 - -### Patch Changes - -- [#525](https://github.com/appsmithorg/design-system/pull/525) [`8c73e9e6`](https://github.com/appsmithorg/design-system/commit/8c73e9e6620efbad2778237187e7abe792928735) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Adding link-unlink icon from remixicon-react - -* [#526](https://github.com/appsmithorg/design-system/pull/526) [`070286b8`](https://github.com/appsmithorg/design-system/commit/070286b8c999b593d7f2a061480bae47dc0d551e) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Adding user settings line icon from remixicon react - -## 2.1.15 - -### Patch Changes - -- [#517](https://github.com/appsmithorg/design-system/pull/517) [`31bfc6d7`](https://github.com/appsmithorg/design-system/commit/31bfc6d7298cf2c91c63ff24d476b6452a8b8cab) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Number input suffix issue - -* [#515](https://github.com/appsmithorg/design-system/pull/515) [`d140928c`](https://github.com/appsmithorg/design-system/commit/d140928ce40cf91862e8a5cad6bfff6e08e67fcf) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - chore: upgrade to storybook 7 - -## 2.1.14 - -### Patch Changes - -- [#491](https://github.com/appsmithorg/design-system/pull/491) [`1e47f919`](https://github.com/appsmithorg/design-system/commit/1e47f9197fb10cd34e0924b06bb2820b9e82ba64) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Added lazy loading icon in icon component - -* [#503](https://github.com/appsmithorg/design-system/pull/503) [`ac791394`](https://github.com/appsmithorg/design-system/commit/ac791394225807a255104576c3b637a74aa1a275) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Search input focus issue and select styles specificity - -## 2.1.13 - -### Patch Changes - -- [#502](https://github.com/appsmithorg/design-system/pull/502) [`7eac4f78`](https://github.com/appsmithorg/design-system/commit/7eac4f78df1f0adba5e062b5ed76e2dd6fb7ec14) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: old gray in gif player, alignment in error message for editable text - -* [#437](https://github.com/appsmithorg/design-system/pull/437) [`436926a7`](https://github.com/appsmithorg/design-system/commit/436926a77e123c5696e14922c14d7089784da91e) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: add smoke tests - -## 2.1.12 - -### Patch Changes - -- [#492](https://github.com/appsmithorg/design-system/pull/492) [`041573d4`](https://github.com/appsmithorg/design-system/commit/041573d41846d2b07acd8677538a090b6ae59e2a) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: add prop to pause on hover - -## 2.1.11 - -### Patch Changes - -- [#483](https://github.com/appsmithorg/design-system/pull/483) [`77aa9c38`](https://github.com/appsmithorg/design-system/commit/77aa9c389fec8eb83f919bc0660ce31dd2072b39) Thanks [@marks0351](https://github.com/marks0351)! - feat: Add a shortcut menu containing predefined ranges for DateRangePicker - -## 2.1.10 - -### Patch Changes - -- [#479](https://github.com/appsmithorg/design-system/pull/479) [`c2c09b6c`](https://github.com/appsmithorg/design-system/commit/c2c09b6c7e6bb674c97b4613d87e359054dd98a8) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fixes for - old toast, datepicker - Added new icons for layout and js file - -## 2.1.9 - -### Patch Changes - -- [#473](https://github.com/appsmithorg/design-system/pull/473) [`6bc83fd4`](https://github.com/appsmithorg/design-system/commit/6bc83fd4b9f813a23ce062459b9761fc27f9be80) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Adding default type for button - -* [#471](https://github.com/appsmithorg/design-system/pull/471) [`41be8cec`](https://github.com/appsmithorg/design-system/commit/41be8cec952199bf116c33f896efd6aec22b1f80) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Updating the click action on input label to remove focus from input box - -- [#452](https://github.com/appsmithorg/design-system/pull/452) [`0db333d2`](https://github.com/appsmithorg/design-system/commit/0db333d2bd1b0aca1f07120f61d77b2ee6b656bd) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: issues with components - -* [#476](https://github.com/appsmithorg/design-system/pull/476) [`db5bed71`](https://github.com/appsmithorg/design-system/commit/db5bed711fb2a7e944720bbc965f3a991705cf35) Thanks [@akash-codemonk](https://github.com/akash-codemonk)! - feat: add `overlayClassName` prop to the `Modal` component - -- [#474](https://github.com/appsmithorg/design-system/pull/474) [`292c0168`](https://github.com/appsmithorg/design-system/commit/292c01685aac90a16ab7d95674e1247d3647b59f) Thanks [@ankitakinger](https://github.com/ankitakinger)! - fix: Updating CSS for tooltip to fix position shift issue - -## 2.1.7 - -### Patch Changes - -- [#462](https://github.com/appsmithorg/design-system/pull/462) [`37d65c5`](https://github.com/appsmithorg/design-system/commit/37d65c5eae3f01aad126a5cd7664cf8fedb10896) Thanks [@berzerkeer](https://github.com/berzerkeer)! - chore: give control to user to enable/disable uppy informer - -## 2.1.6 - -### Patch Changes - -- [#455](https://github.com/appsmithorg/design-system/pull/455) [`7c735ab`](https://github.com/appsmithorg/design-system/commit/7c735ab248ddd944be7e8b1760153db48f6a84af) Thanks [@ankitakinger](https://github.com/ankitakinger)! - chore: Importing and adding the external link line icon from remixicon - -* [#454](https://github.com/appsmithorg/design-system/pull/454) [`ffa75c8`](https://github.com/appsmithorg/design-system/commit/ffa75c84fea83c7ffd8e775baac4b2c208b7faf6) Thanks [@akash-codemonk](https://github.com/akash-codemonk)! - chore: add page menu icons - -## 2.1.5 - -### Patch Changes - -- [#450](https://github.com/appsmithorg/design-system/pull/450) [`c7eeb4d`](https://github.com/appsmithorg/design-system/commit/c7eeb4d9106b50898fae381c7b69b66661305d96) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Type name duplication fixed - -* [#447](https://github.com/appsmithorg/design-system/pull/447) [`726780d`](https://github.com/appsmithorg/design-system/commit/726780d7b0cee7352904cf14b83c94ff06716fbb) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: component fixes - select, input - fix: exported type - -## 2.1.4 - -### Patch Changes - -- [#440](https://github.com/appsmithorg/design-system/pull/440) [`7523dd3`](https://github.com/appsmithorg/design-system/commit/7523dd3a1f7c99cf3cdb2f13ed8042ee8b7312d2) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: icon fixes and added new icons - -## 2.1.3 - -### Patch Changes - -- [#306](https://github.com/appsmithorg/design-system/pull/306) [`7a332a9`](https://github.com/appsmithorg/design-system/commit/7a332a94521444ec6310118e1ea7563f8897aa18) Thanks [@ravikp7](https://github.com/ravikp7)! - Fix: Support dynamic option passing to TreeDropdown - -## 2.1.2 - -### Patch Changes - -- [#433](https://github.com/appsmithorg/design-system/pull/433) [`a0602ac`](https://github.com/appsmithorg/design-system/commit/a0602ac74bc4a17fbaabaad20b150008a21d1a00) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: divider width and color - -* [#432](https://github.com/appsmithorg/design-system/pull/432) [`5b0eaba`](https://github.com/appsmithorg/design-system/commit/5b0eabacac0ef47b0f5403b27ac8b1e1b98bf10f) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - fix: button blend mode - -## 2.1.1 - -### Patch Changes - -- [#416](https://github.com/appsmithorg/design-system/pull/416) [`e928d89`](https://github.com/appsmithorg/design-system/commit/e928d8942f7f5a2c8445dd256d920b8908f8e9a7) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Refactored Select and Avatar component - -## 2.1.0 - -### Minor Changes - -- [#415](https://github.com/appsmithorg/design-system/pull/415) [`b559bf6`](https://github.com/appsmithorg/design-system/commit/b559bf64d1a8e76839bee4d24a81cf13b8e06ea7) Thanks [@iamakulov](https://github.com/iamakulov)! - feat: new importSvg and importRemixIcon wrappers for code-splitting icons - -### Patch Changes - -- [#389](https://github.com/appsmithorg/design-system/pull/389) [`6c7441f`](https://github.com/appsmithorg/design-system/commit/6c7441fc69255c1f63dcc1708d30d4ebd3b5d3dc) Thanks [@iamakulov](https://github.com/iamakulov)! - perf: add "sideEffects": false for better tree-shaking - -## 2.0.8 - -### Patch Changes - -- [#418](https://github.com/appsmithorg/design-system/pull/418) [`0bec8ae`](https://github.com/appsmithorg/design-system/commit/0bec8ae8611c2a58ce8e18185ea24f3bd81cde4a) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Date and Date Range picker - -## 2.0.7 - -### Patch Changes - -- [#405](https://github.com/appsmithorg/design-system/pull/405) [`e9d4a33`](https://github.com/appsmithorg/design-system/commit/e9d4a338379e8bf7870ba285f2d21a1c2777c28b) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Refactored Menu component - -## 2.0.6 - -### Patch Changes - -- [#401](https://github.com/appsmithorg/design-system/pull/401) [`3c94d86`](https://github.com/appsmithorg/design-system/commit/3c94d86d6e95c214e052ca307b2ecbc47921590a) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: add notification counter to tab - -* [#394](https://github.com/appsmithorg/design-system/pull/394) [`d37f674`](https://github.com/appsmithorg/design-system/commit/d37f674fa90472d0e783bfbeff0a37428d700ff4) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: add callout - -- [#374](https://github.com/appsmithorg/design-system/pull/374) [`6fbc8ad`](https://github.com/appsmithorg/design-system/commit/6fbc8ada9953c8cba60b415e04525a1847ad769d) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: refactor tab - -* [#384](https://github.com/appsmithorg/design-system/pull/384) [`fc9fd77`](https://github.com/appsmithorg/design-system/commit/fc9fd771de6eb2bc3e360d5d2877ffe960172257) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: refactor toggle button - -## 2.0.5 - -### Patch Changes - -- [#373](https://github.com/appsmithorg/design-system/pull/373) [`6fa3d3c`](https://github.com/appsmithorg/design-system/commit/6fa3d3c352d8d5d9bcdaf196b75353e6694f4c7b) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Refactored segmented controls - -* [#355](https://github.com/appsmithorg/design-system/pull/355) [`f9dc374`](https://github.com/appsmithorg/design-system/commit/f9dc37460b5917c72be433d257f7e876031aa05a) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Refactored modal component - -## 2.0.4 - -### Patch Changes - -- [#357](https://github.com/appsmithorg/design-system/pull/357) [`7b97731`](https://github.com/appsmithorg/design-system/commit/7b9773197f13317cc1a66933c1fc6a8c3cd0a7c2) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Refactored Tooltip component - -* [#351](https://github.com/appsmithorg/design-system/pull/351) [`d02e111`](https://github.com/appsmithorg/design-system/commit/d02e111e0204d9af3b57025b1bc791cf1b5d0ea5) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: add link - -- [#352](https://github.com/appsmithorg/design-system/pull/352) [`06929a6`](https://github.com/appsmithorg/design-system/commit/06929a6fff59744fc59367182c4dca3ec85cf0bd) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: add tag - -* [#334](https://github.com/appsmithorg/design-system/pull/334) [`aa1331f`](https://github.com/appsmithorg/design-system/commit/aa1331f47bb0dd62e6fdf60cf905917d9b11eb9d) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added refactored button component - -## 2.0.3 - -### Patch Changes - -- [#367](https://github.com/appsmithorg/design-system/pull/367) [`7c15fd6`](https://github.com/appsmithorg/design-system/commit/7c15fd6250f5cc8f4fc5885cf2c39b5e02ee0d91) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - fix: Added icon size variations - -* [#366](https://github.com/appsmithorg/design-system/pull/366) [`79c60bb`](https://github.com/appsmithorg/design-system/commit/79c60bb8bd17e7cec9574a7fd65f323699c625e2) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: add typescales to text - -- [#279](https://github.com/appsmithorg/design-system/pull/279) [`cee9d38`](https://github.com/appsmithorg/design-system/commit/cee9d3827d4b6fab09e79a1dbb688945ac77fc1a) Thanks [@keyurparalkar](https://github.com/keyurparalkar)! - feat: added item freeze functionality to draggable list - -## 2.0.2 - -### Patch Changes - -- [#324](https://github.com/appsmithorg/design-system/pull/324) [`9967a1f`](https://github.com/appsmithorg/design-system/commit/9967a1f6ee9d3979cdde06611dc7fdd6addc6029) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: refactor divider - -* [#311](https://github.com/appsmithorg/design-system/pull/311) [`dbb1c32`](https://github.com/appsmithorg/design-system/commit/dbb1c32d1d25085a0cf70125a2199796b4e5cbde) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: add toggle - -- [#337](https://github.com/appsmithorg/design-system/pull/337) [`95f482c`](https://github.com/appsmithorg/design-system/commit/95f482c133bca1b3a0c341fcbb1b8f734c419e3d) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added refactored radio component - -## 2.0.1 - -### Patch Changes - -- [#321](https://github.com/appsmithorg/design-system/pull/321) [`d1c0361`](https://github.com/appsmithorg/design-system/commit/d1c03616a97e08aa4d9392a9e842a2abdd084d71) Thanks [@tanvibhakta](https://github.com/tanvibhakta)! - feat: add pplaceholder for text - -* [#335](https://github.com/appsmithorg/design-system/pull/335) [`119c467`](https://github.com/appsmithorg/design-system/commit/119c467cf2714def9ce93041d47d209fe6d0c02b) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Added refactored icon component - -## 2.0.0 - -### Patch Changes - -- [#318](https://github.com/appsmithorg/design-system/pull/318) [`3054d06`](https://github.com/appsmithorg/design-system/commit/3054d063f61c9bf3baf22db15f3aa36241de2668) Thanks [@albinAppsmith](https://github.com/albinAppsmith)! - feat: Design system version 2 diff --git a/app/client/packages/design-system/ads/README.md b/app/client/packages/design-system/ads/README.md deleted file mode 100644 index 787eaf6d349..00000000000 --- a/app/client/packages/design-system/ads/README.md +++ /dev/null @@ -1,116 +0,0 @@ -

- - - -

- -

Appsmith Design System

- -
- -[![npm package](https://img.shields.io/npm/v/@appsmithorg/design-system.svg?style=flat-square)](https://www.npmjs.org/package/@appsmithorg/design-system) - -
- -[![](https://github.com/appsmithorg/appsmith/raw/release/static/git-banner-new.png)](https://appsmith.com) - -Welcome to the Appsmith Design System repository! This repository contains the design system components, styles, and guidelines used across the Appsmith platform. - -# About Appsmith - -Appsmith is an open-source, low-code application development platform that allows users to build business applications quickly and easily. The Appsmith Design System plays a crucial role in providing a consistent and visually appealing user interface across all Appsmith projects. - -## External Usage -To use the Appsmith Design System in your project, follow these steps: - -### Installation - -```bash -npm install @appsmithorg/design-system -``` -or -```bash -yarn add @appsmithorg/design-system -``` - -### Including CSS - -Add the css import in the root index css file -```bash -@import "~@appsmithorg/design-system/build/css/design-system.css"; -``` - -### Usage - -```jsx -import { Button } from "@appsmithorg/design-system"; - - -``` - -## Contribute - -1. Clone the repository to your local machine using the following command: - -```bash -git clone https://github.com/appsmithorg/design-system.git -``` -The repository you are cloing is a monorepo that contains several packages, each serving a different purpose. - -2. Navigate to the design-system directory - -```bash -cd design-system/packages/design-system -``` - -3. Get all dependencies with -```bash -yarn install -``` - -Then run storybook in development and watch mode with -```bash -yarn run storybook -``` - -Any stories you write within `design-system/packages/design-system/src/**` will show up here. - -4. To add a new component, use our template -```bash -yarn generate:component YOUR_NEW_COMPONENT_NAME -``` -This generates all the scaffolding our components use. Simply replace the fields in caps lock and develop away! - -5. To ensure that any changes you make are not breaking any other components or their stories, run -```bash -yarn test-storybook -``` -and fix any failures before you create a pull request. - -## Using your changes externally - -This repository is a library, and for any changes made here to reflect in another repository, the maintainers will have to publish a release. -To get your PR accepted, -1. Add a link to your PR in [#design-system](https://theappsmith.slack.com/archives/C0293DVQACW) and ask someone to generate a release for you. They will give you an alpha version. -2. Replace the version of design-system in the [appsmith repository](https://github.com/appsmithorg/appsmith/blob/da06cf7b4da657ba22a23f0780c253be3e4ba7cf/app/client/package.json#L96) with this alpha version. - -To use your local version of the package, run -```bash -yarn link -``` -in this repository, then copy instruction it outputs into the root directory of the repository you want to use this package in. -Run -```bash -yarn install -``` -again to be able to import the components using - -```jsx -import { Button } from "@appsmithorg/design-system"; -``` - -## Links - -- [Storybook](https://design-system.appsmith.com) diff --git a/app/client/packages/design-system/ads/src/Avatar/Avatar.stories.tsx b/app/client/packages/design-system/ads/src/Avatar/Avatar.stories.tsx index 5498ab25bb9..6e5b9bd561d 100644 --- a/app/client/packages/design-system/ads/src/Avatar/Avatar.stories.tsx +++ b/app/client/packages/design-system/ads/src/Avatar/Avatar.stories.tsx @@ -16,7 +16,6 @@ const Template = (args: AvatarProps) => { export const AvatarStory = Template.bind({}) as StoryObj; AvatarStory.storyName = "Avatar"; AvatarStory.args = { - image: "https://picsum.photos/200/300", label: "Avatar", isTooltipEnabled: true, }; diff --git a/app/client/packages/design-system/ads/src/Avatar/AvatarGroup.stories.tsx b/app/client/packages/design-system/ads/src/Avatar/AvatarGroup.stories.tsx index 9ff7c8a3713..3cea41de965 100644 --- a/app/client/packages/design-system/ads/src/Avatar/AvatarGroup.stories.tsx +++ b/app/client/packages/design-system/ads/src/Avatar/AvatarGroup.stories.tsx @@ -104,79 +104,61 @@ AvatarGroupStory.args = { label: "klaus@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=2", + image: "https://assets.appsmith.com/integrations/25720743.png", label: "wilfred@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=3", label: "dsouza@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=4", label: "someoneelse@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=5", label: "againsomeone@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=6", label: "thereisananotherone@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=7", label: "lastoneIguess@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=8", label: "noonemore@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=6", label: "thereisananotherone@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=7", label: "lastoneIguess@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=8", label: "noonemore@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=6", label: "thereisananotherone@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=7", label: "lastoneIguess@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=8", label: "noonemore@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=6", label: "thereisananotherone@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=7", label: "lastoneIguess@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=8", label: "noonemore@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=6", label: "thereisananotherone@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=7", label: "lastoneIguess@appsmith.com", }, { - image: "https://picsum.photos/200/300?random=8", label: "noonemore@appsmith.com", }, ], diff --git a/app/client/packages/design-system/ads/src/ToggleButtonGroup/ToggleButtonGroup.tsx b/app/client/packages/design-system/ads/src/ToggleButtonGroup/ToggleButtonGroup.tsx index 626fb9bb0d6..ac07c489728 100644 --- a/app/client/packages/design-system/ads/src/ToggleButtonGroup/ToggleButtonGroup.tsx +++ b/app/client/packages/design-system/ads/src/ToggleButtonGroup/ToggleButtonGroup.tsx @@ -1,4 +1,5 @@ import React, { useState } from "react"; +import clsx from "classnames"; import { ToggleButton } from "../ToggleButton"; import { Group } from "./ToggleButtonGroup.styles"; @@ -6,6 +7,7 @@ import type { ToggleGroupOption, ToggleGroupProps, } from "./ToggleButtonGroup.types"; +import { ToggleGroupClassName } from "./ToggleButtonGroup.constants"; // eslint-disable-next-line react/display-name export const ToggleButtonGroup = React.forwardRef< @@ -14,7 +16,7 @@ export const ToggleButtonGroup = React.forwardRef< >((props, ref) => { const toggleRefs: Array = []; - const { onClick, options, values } = props; + const { className, onClick, options, values } = props; const valueSet = new Set(values); let firstValueIndex = 0; @@ -63,6 +65,7 @@ export const ToggleButtonGroup = React.forwardRef< return ( setFocusedIndex(firstValueIndex)} ref={ref} role="tablist" diff --git a/app/client/packages/design-system/ads/src/ToggleButtonGroup/ToggleButtonGroup.types.ts b/app/client/packages/design-system/ads/src/ToggleButtonGroup/ToggleButtonGroup.types.ts index 98c2aee964b..b19541a5d11 100644 --- a/app/client/packages/design-system/ads/src/ToggleButtonGroup/ToggleButtonGroup.types.ts +++ b/app/client/packages/design-system/ads/src/ToggleButtonGroup/ToggleButtonGroup.types.ts @@ -7,4 +7,5 @@ export interface ToggleGroupProps { options: ToggleGroupOption[]; values: Array; onClick: (value: string, isUpdatedViaKeyboard?: boolean) => void; + className?: string; } diff --git a/app/client/packages/design-system/widgets/package.json b/app/client/packages/design-system/widgets/package.json index c09b0f46453..b1267b65562 100644 --- a/app/client/packages/design-system/widgets/package.json +++ b/app/client/packages/design-system/widgets/package.json @@ -11,6 +11,7 @@ "build:icons": "npx tsx ./src/scripts/build-icons.ts" }, "dependencies": { + "@appsmith/utils": "workspace:^", "@appsmith/wds-headless": "workspace:^", "@appsmith/wds-theming": "workspace:^", "@emotion/css": "^11.11.2", diff --git a/app/client/packages/design-system/widgets/src/components/Button/chromatic/Button.chromatic.stories.tsx b/app/client/packages/design-system/widgets/src/components/Button/chromatic/Button.chromatic.stories.tsx index 91400fa254f..efbea171d2b 100644 --- a/app/client/packages/design-system/widgets/src/components/Button/chromatic/Button.chromatic.stories.tsx +++ b/app/client/packages/design-system/widgets/src/components/Button/chromatic/Button.chromatic.stories.tsx @@ -1,7 +1,8 @@ import React from "react"; import type { Meta, StoryObj } from "@storybook/react"; import { StoryGrid, DataAttrWrapper } from "@design-system/storybook"; -import { Button, BUTTON_VARIANTS, COLORS, objectKeys } from "@appsmith/wds"; +import { Button, BUTTON_VARIANTS, COLORS } from "@appsmith/wds"; +import { objectKeys } from "@appsmith/utils"; const variants = objectKeys(BUTTON_VARIANTS); const colors = Object.values(COLORS); diff --git a/app/client/packages/design-system/widgets/src/components/Button/stories/Button.stories.tsx b/app/client/packages/design-system/widgets/src/components/Button/stories/Button.stories.tsx index 17814675628..2df46313c0e 100644 --- a/app/client/packages/design-system/widgets/src/components/Button/stories/Button.stories.tsx +++ b/app/client/packages/design-system/widgets/src/components/Button/stories/Button.stories.tsx @@ -1,13 +1,7 @@ import React from "react"; import type { Meta, StoryObj } from "@storybook/react"; -import { - Button, - Flex, - BUTTON_VARIANTS, - COLORS, - SIZES, - objectKeys, -} from "@appsmith/wds"; +import { Button, Flex, BUTTON_VARIANTS, COLORS, SIZES } from "@appsmith/wds"; +import { objectKeys } from "@appsmith/utils"; /** * A button is a clickable element that is used to trigger an action. diff --git a/app/client/packages/design-system/widgets/src/components/IconButton/stories/IconButton.stories.tsx b/app/client/packages/design-system/widgets/src/components/IconButton/stories/IconButton.stories.tsx index c91f9c51ef9..0214990599b 100644 --- a/app/client/packages/design-system/widgets/src/components/IconButton/stories/IconButton.stories.tsx +++ b/app/client/packages/design-system/widgets/src/components/IconButton/stories/IconButton.stories.tsx @@ -6,8 +6,8 @@ import { SIZES, BUTTON_VARIANTS, COLORS, - objectKeys, } from "@appsmith/wds"; +import { objectKeys } from "@appsmith/utils"; /** * Icon Button is a button component that only contains an icon. diff --git a/app/client/packages/design-system/widgets/src/components/InlineButtons/stories/InlineButtons.stories.tsx b/app/client/packages/design-system/widgets/src/components/InlineButtons/stories/InlineButtons.stories.tsx index 00591fff5fe..7574bd3ee19 100644 --- a/app/client/packages/design-system/widgets/src/components/InlineButtons/stories/InlineButtons.stories.tsx +++ b/app/client/packages/design-system/widgets/src/components/InlineButtons/stories/InlineButtons.stories.tsx @@ -2,12 +2,12 @@ import React from "react"; import { InlineButtons, Flex, - objectKeys, BUTTON_VARIANTS, COLORS, SIZES, } from "@appsmith/wds"; import type { Meta, StoryObj } from "@storybook/react"; +import { objectKeys } from "@appsmith/utils"; import { itemList, longItemList, diff --git a/app/client/packages/design-system/widgets/src/components/ToolbarButtons/stories/ToolbarButtons.stories.tsx b/app/client/packages/design-system/widgets/src/components/ToolbarButtons/stories/ToolbarButtons.stories.tsx index c1ef6c6a411..584c73fef8b 100644 --- a/app/client/packages/design-system/widgets/src/components/ToolbarButtons/stories/ToolbarButtons.stories.tsx +++ b/app/client/packages/design-system/widgets/src/components/ToolbarButtons/stories/ToolbarButtons.stories.tsx @@ -4,10 +4,10 @@ import { BUTTON_VARIANTS, COLORS, Flex, - objectKeys, ToolbarButtons, SIZES, } from "@appsmith/wds"; +import { objectKeys } from "@appsmith/utils"; import { itemList, itemListWithIcons, diff --git a/app/client/packages/design-system/widgets/src/utils/index.ts b/app/client/packages/design-system/widgets/src/utils/index.ts index eab50f1fb4f..92af43695ef 100644 --- a/app/client/packages/design-system/widgets/src/utils/index.ts +++ b/app/client/packages/design-system/widgets/src/utils/index.ts @@ -1,2 +1 @@ export { filterDataProps } from "./filterDataProps"; -export { objectKeys } from "./objectKeys"; diff --git a/app/client/packages/eslint-plugin/.eslintrc.json b/app/client/packages/eslint-plugin/.eslintrc.json new file mode 100644 index 00000000000..7720378e09b --- /dev/null +++ b/app/client/packages/eslint-plugin/.eslintrc.json @@ -0,0 +1,4 @@ +{ + "ignorePatterns": ["dist/*", "Readme.md"], + "extends": ["../../.eslintrc.base.json"] +} diff --git a/app/client/packages/eslint-plugin/.prettierignore b/app/client/packages/eslint-plugin/.prettierignore new file mode 100644 index 00000000000..cc72819ae20 --- /dev/null +++ b/app/client/packages/eslint-plugin/.prettierignore @@ -0,0 +1,4 @@ +dist/ +node_modules/ +package-lock.json +yarn.lock diff --git a/app/client/packages/eslint-plugin/README.md b/app/client/packages/eslint-plugin/README.md new file mode 100644 index 00000000000..136960be705 --- /dev/null +++ b/app/client/packages/eslint-plugin/README.md @@ -0,0 +1,113 @@ +# Adding a Custom Rule to Your Appsmith ESLint Plugin + +Welcome to the guide for adding a custom rule to your Appsmith ESLint plugin. Follow these steps to create and integrate a new rule into your Appsmith ESLint plugin. + +You can create one by following the [official ESLint custom rule](https://eslint.org/docs/latest/extend/custom-rule-tutorial). + +## Step 1: Create the Custom Rule File + +1. Navigate to your Appsmith ESLint plugin directory i.e. `app/client/packages/eslint-plugin`. +2. Create a new directory for your custom rule in the root of `app/client/packages/eslint-plugin` directory. For example, `src/custom-rule/rule.ts`. + + ```bash + mkdir src/custom-rule + touch src/custom-rule/rule.ts + touch src/custom-rule/rule.test.ts + ``` + +3. Open `src/custom-rule/rule.ts` and define your rule. Here's a basic template to get you started: + + ```ts + import type { TSESLint } from "@typescript-eslint/utils"; + + export const customRule: TSESLint.RuleModule<"useObjectKeys"> = { + defaultOptions: [], + meta: { + type: "problem", // or "suggestion" or "layout" + docs: { + description: "A description of what the rule does", + category: "Best Practices", + recommended: false, + }, + fixable: null, // or "code" if the rule can fix issues automatically + schema: [], // JSON Schema for rule options + }, + create(context) { + return { + // Define the rule's behavior here + // e.g., "Identifier": (node) => { /* logic */ } + }; + }, + }; + ``` + +## Step 2: Update the Plugin Index File + +1. Open the `src/index.ts` file inside `eslint-plugin` directory. + +2. Import your custom rule and add it to the rules object in `index.ts`. For example: + + ```ts + import { customRule } from "./custom-rule/rule"; + + const plugin = { + rules: { + "custom-rule": customRule, + }, + configs: { + recommended: { + rules: { + "@appsmith/custom-rule": "warn", // Add this in recommended if you want to add this rule by default to the repository as a recommended rule. + }, + }, + }, + }; + + module.exports = plugin; + ``` + +## Step 3: Add Tests for Your Custom Rule + +1. Open `src/custom-rule/rule.test.ts` and write tests using a testing framework like Jest. Here's a basic example using ESLint's `RuleTester`: + + ```ts + import { TSESLint } from "@typescript-eslint/utils"; + import { customRule } from "./rule"; + + const ruleTester = new TSESLint.RuleTester(); + + ruleTester.run("custom-rule", customRule, { + valid: [ + // Examples of valid code + ], + invalid: [ + { + code: "const foo = 1;", + errors: [{ message: "Your custom error message" }], + }, + ], + }); + ``` + +2. Run your tests to ensure your rule works as expected: + + ```bash + yarn run test:unit + ``` + +## Step 4: Steps to add it to client + +1. Go to `app/client/.eslintrc.base.json` +2. Add your `custom-rule` entry to the rules object or if the recommended rule is present its already added in the config. e.g. + + ```javascript + "@appsmith/custom-rule": "warn" + ``` + +## Additional Resources + +- [ESLint Plugin Developer Guide](https://eslint.org/docs/developer-guide/working-with-plugins) +- [ESLint Rules API](https://eslint.org/docs/developer-guide/working-with-rules) +- [ESLint Testing Guidelines](https://eslint.org/docs/developer-guide/unit-testing) + +Happy linting! diff --git a/app/client/packages/eslint-plugin/jest.config.js b/app/client/packages/eslint-plugin/jest.config.js new file mode 100644 index 00000000000..9b706028882 --- /dev/null +++ b/app/client/packages/eslint-plugin/jest.config.js @@ -0,0 +1,11 @@ +module.exports = { + roots: ["/src"], + transform: { + "^.+\\.(ts)$": [ + "ts-jest", + { + isolatedModules: true, + }, + ], + }, +}; diff --git a/app/client/packages/eslint-plugin/package.json b/app/client/packages/eslint-plugin/package.json new file mode 100644 index 00000000000..46f1726ebec --- /dev/null +++ b/app/client/packages/eslint-plugin/package.json @@ -0,0 +1,14 @@ +{ + "name": "@appsmith/eslint-plugin", + "version": "1.0.0", + "private": true, + "main": "dist/index.js", + "scripts": { + "build": "npx tsc", + "build:watch": "npx tsc --watch", + "lint": "yarn g:lint", + "prettier": "yarn g:prettier", + "postinstall": "yarn build", + "test:unit": "yarn g:jest" + } +} \ No newline at end of file diff --git a/app/client/packages/eslint-plugin/src/index.ts b/app/client/packages/eslint-plugin/src/index.ts new file mode 100644 index 00000000000..e3e454c20e2 --- /dev/null +++ b/app/client/packages/eslint-plugin/src/index.ts @@ -0,0 +1,16 @@ +import { objectKeysRule } from "./object-keys/rule"; + +const plugin = { + rules: { + "object-keys": objectKeysRule, + }, + configs: { + recommended: { + rules: { + "@appsmith/object-keys": "warn", + }, + }, + }, +}; + +module.exports = plugin; diff --git a/app/client/packages/eslint-plugin/src/object-keys/rule.test.ts b/app/client/packages/eslint-plugin/src/object-keys/rule.test.ts new file mode 100644 index 00000000000..0a2f2510462 --- /dev/null +++ b/app/client/packages/eslint-plugin/src/object-keys/rule.test.ts @@ -0,0 +1,18 @@ +import { TSESLint } from "@typescript-eslint/utils"; +import { objectKeysRule } from "./rule"; + +const ruleTester = new TSESLint.RuleTester(); + +ruleTester.run("object-keys", objectKeysRule, { + valid: [ + { + code: "objectKeys({ 'a': 'b' })", + }, + ], + invalid: [ + { + code: "Object.keys({ 'a': 'b' })", + errors: [{ messageId: "useObjectKeys" }], + }, + ], +}); diff --git a/app/client/packages/eslint-plugin/src/object-keys/rule.ts b/app/client/packages/eslint-plugin/src/object-keys/rule.ts new file mode 100644 index 00000000000..a5e5dbb9a13 --- /dev/null +++ b/app/client/packages/eslint-plugin/src/object-keys/rule.ts @@ -0,0 +1,36 @@ +import type { TSESLint } from "@typescript-eslint/utils"; + +export const objectKeysRule: TSESLint.RuleModule<"useObjectKeys"> = { + defaultOptions: [], + meta: { + type: "suggestion", + docs: { + description: "Warns when Object.keys is used instead of objectKeys", + recommended: "warn", + }, + schema: [], // No options + messages: { + useObjectKeys: + "Use objectKeys from '@appsmith/utils' package instead of Object.keys", + }, + }, + create(context) { + return { + CallExpression(node) { + // Check if the callee is Object.keys + if ( + node.callee.type === "MemberExpression" && + node.callee.object.type === "Identifier" && + node.callee.object.name === "Object" && + node.callee.property.type === "Identifier" && + node.callee.property.name === "keys" + ) { + context.report({ + node, + messageId: "useObjectKeys", + }); + } + }, + }; + }, +}; diff --git a/app/client/packages/eslint-plugin/tsconfig.json b/app/client/packages/eslint-plugin/tsconfig.json new file mode 100644 index 00000000000..4cd8be2f136 --- /dev/null +++ b/app/client/packages/eslint-plugin/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "outDir": "dist", + "target": "es2022", + "module": "commonjs", + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "skipLibCheck": true + } +} diff --git a/app/client/packages/icons/package.json b/app/client/packages/icons/package.json index d19fa9bd799..351d24c894f 100644 --- a/app/client/packages/icons/package.json +++ b/app/client/packages/icons/package.json @@ -6,11 +6,11 @@ "main": "src/index.ts", "scripts": { "build": "yarn cleanup && figmagic && yarn optimize-icons && yarn generate-components && yarn generate-index && yarn generate-stories && yarn prettier . --write --log-level=silent", - "cleanup": "ts-node ./src/utils/cleanup.ts", - "optimize-icons": "ts-node ./src/utils/optimizeIcons.ts", - "generate-components": "ts-node ./src/utils/generateComponents.ts", - "generate-index": "ts-node ./src/utils/generateIndex.ts", - "generate-stories": "ts-node ./src/utils/generateStories.ts", + "cleanup": "npx ts-node ./src/utils/cleanup.ts", + "optimize-icons": "npx ts-node ./src/utils/optimizeIcons.ts", + "generate-components": "npx ts-node ./src/utils/generateComponents.ts", + "generate-index": "npx ts-node ./src/utils/generateIndex.ts", + "generate-stories": "npx ts-node ./src/utils/generateStories.ts", "lint": "yarn g:lint", "prettier": "yarn g:prettier" }, diff --git a/app/client/packages/icons/src/components/Icons/EmailInputIcon.tsx b/app/client/packages/icons/src/components/Icons/EmailInputIcon.tsx new file mode 100644 index 00000000000..e67d3318303 --- /dev/null +++ b/app/client/packages/icons/src/components/Icons/EmailInputIcon.tsx @@ -0,0 +1,2 @@ +import React from "react"; +export const EmailInputIcon = () => ; diff --git a/app/client/packages/icons/src/components/Icons/InlineButtonsIcon.tsx b/app/client/packages/icons/src/components/Icons/InlineButtonsIcon.tsx index 83ccec3e0a6..ec89d44edf4 100644 --- a/app/client/packages/icons/src/components/Icons/InlineButtonsIcon.tsx +++ b/app/client/packages/icons/src/components/Icons/InlineButtonsIcon.tsx @@ -1,2 +1,2 @@ import React from "react"; -export const InlineButtonsIcon = () => ; +export const InlineButtonsIcon = () => ; diff --git a/app/client/packages/icons/src/components/Icons/InputIcon.tsx b/app/client/packages/icons/src/components/Icons/InputIcon.tsx index fd209ac8da7..586c75fc3ae 100644 --- a/app/client/packages/icons/src/components/Icons/InputIcon.tsx +++ b/app/client/packages/icons/src/components/Icons/InputIcon.tsx @@ -1,2 +1,2 @@ import React from "react"; -export const InputIcon = () => ; +export const InputIcon = () => ; diff --git a/app/client/packages/icons/src/components/Icons/MultilineInputIcon.tsx b/app/client/packages/icons/src/components/Icons/MultilineInputIcon.tsx new file mode 100644 index 00000000000..3401be75a15 --- /dev/null +++ b/app/client/packages/icons/src/components/Icons/MultilineInputIcon.tsx @@ -0,0 +1,2 @@ +import React from "react"; +export const MultilineInputIcon = () => ; diff --git a/app/client/packages/icons/src/components/Icons/NumberInputIcon.tsx b/app/client/packages/icons/src/components/Icons/NumberInputIcon.tsx new file mode 100644 index 00000000000..312eb87ee69 --- /dev/null +++ b/app/client/packages/icons/src/components/Icons/NumberInputIcon.tsx @@ -0,0 +1,2 @@ +import React from "react"; +export const NumberInputIcon = () => ; diff --git a/app/client/packages/icons/src/components/Icons/ParagraphIcon.tsx b/app/client/packages/icons/src/components/Icons/ParagraphIcon.tsx index fb72170e2af..fd3d7eb0387 100644 --- a/app/client/packages/icons/src/components/Icons/ParagraphIcon.tsx +++ b/app/client/packages/icons/src/components/Icons/ParagraphIcon.tsx @@ -1,2 +1,2 @@ import React from "react"; -export const ParagraphIcon = () => ; +export const ParagraphIcon = () => ; diff --git a/app/client/packages/icons/src/components/Icons/PasswordInputIcon.tsx b/app/client/packages/icons/src/components/Icons/PasswordInputIcon.tsx new file mode 100644 index 00000000000..133f72e44a8 --- /dev/null +++ b/app/client/packages/icons/src/components/Icons/PasswordInputIcon.tsx @@ -0,0 +1,2 @@ +import React from "react"; +export const PasswordInputIcon = () => ; diff --git a/app/client/packages/icons/src/components/Icons/ToolbarButtonsIcon.tsx b/app/client/packages/icons/src/components/Icons/ToolbarButtonsIcon.tsx index 2c1e7aa2a33..2d708cf1564 100644 --- a/app/client/packages/icons/src/components/Icons/ToolbarButtonsIcon.tsx +++ b/app/client/packages/icons/src/components/Icons/ToolbarButtonsIcon.tsx @@ -1,2 +1,2 @@ import React from "react"; -export const ToolbarButtonsIcon = () => ; +export const ToolbarButtonsIcon = () => ; diff --git a/app/client/packages/icons/src/components/Thumbnails/EmailInputThumbnail.tsx b/app/client/packages/icons/src/components/Thumbnails/EmailInputThumbnail.tsx new file mode 100644 index 00000000000..aa1f63d557f --- /dev/null +++ b/app/client/packages/icons/src/components/Thumbnails/EmailInputThumbnail.tsx @@ -0,0 +1,2 @@ +import React from "react"; +export const EmailInputThumbnail = () => ; diff --git a/app/client/packages/icons/src/components/Thumbnails/InlineButtonsThumbnail.tsx b/app/client/packages/icons/src/components/Thumbnails/InlineButtonsThumbnail.tsx index 435cb6fce61..962f9362bdb 100644 --- a/app/client/packages/icons/src/components/Thumbnails/InlineButtonsThumbnail.tsx +++ b/app/client/packages/icons/src/components/Thumbnails/InlineButtonsThumbnail.tsx @@ -1,2 +1,2 @@ import React from "react"; -export const InlineButtonsThumbnail = () => ; +export const InlineButtonsThumbnail = () => ; diff --git a/app/client/packages/icons/src/components/Thumbnails/KeyValueThumbnail.tsx b/app/client/packages/icons/src/components/Thumbnails/KeyValueThumbnail.tsx index 848c466cfcc..75c3eaf36fd 100644 --- a/app/client/packages/icons/src/components/Thumbnails/KeyValueThumbnail.tsx +++ b/app/client/packages/icons/src/components/Thumbnails/KeyValueThumbnail.tsx @@ -1,2 +1,2 @@ import React from "react"; -export const KeyValueThumbnail = () => ; +export const KeyValueThumbnail = () => ; diff --git a/app/client/packages/icons/src/components/Thumbnails/MultilineInputThumbnail.tsx b/app/client/packages/icons/src/components/Thumbnails/MultilineInputThumbnail.tsx new file mode 100644 index 00000000000..48552883c82 --- /dev/null +++ b/app/client/packages/icons/src/components/Thumbnails/MultilineInputThumbnail.tsx @@ -0,0 +1,2 @@ +import React from "react"; +export const MultilineInputThumbnail = () => ; diff --git a/app/client/packages/icons/src/components/Thumbnails/NumberInputThumbnail.tsx b/app/client/packages/icons/src/components/Thumbnails/NumberInputThumbnail.tsx new file mode 100644 index 00000000000..2253ba3a9d8 --- /dev/null +++ b/app/client/packages/icons/src/components/Thumbnails/NumberInputThumbnail.tsx @@ -0,0 +1,2 @@ +import React from "react"; +export const NumberInputThumbnail = () => ; diff --git a/app/client/packages/icons/src/components/Thumbnails/PasswordInputThumbnail.tsx b/app/client/packages/icons/src/components/Thumbnails/PasswordInputThumbnail.tsx new file mode 100644 index 00000000000..5a96845987b --- /dev/null +++ b/app/client/packages/icons/src/components/Thumbnails/PasswordInputThumbnail.tsx @@ -0,0 +1,2 @@ +import React from "react"; +export const PasswordInputThumbnail = () => ; diff --git a/app/client/packages/icons/src/components/Thumbnails/SelectThumbnail.tsx b/app/client/packages/icons/src/components/Thumbnails/SelectThumbnail.tsx new file mode 100644 index 00000000000..ccd690d38e6 --- /dev/null +++ b/app/client/packages/icons/src/components/Thumbnails/SelectThumbnail.tsx @@ -0,0 +1,2 @@ +import React from "react"; +export const SelectThumbnail = () => ; diff --git a/app/client/packages/icons/src/components/Thumbnails/StatsBoxThumbnail.tsx b/app/client/packages/icons/src/components/Thumbnails/StatsBoxThumbnail.tsx index a0d6fb9df10..cd43593d6bf 100644 --- a/app/client/packages/icons/src/components/Thumbnails/StatsBoxThumbnail.tsx +++ b/app/client/packages/icons/src/components/Thumbnails/StatsBoxThumbnail.tsx @@ -1,2 +1,2 @@ import React from "react"; -export const StatsBoxThumbnail = () => ; +export const StatsBoxThumbnail = () => ; diff --git a/app/client/packages/icons/src/components/Thumbnails/ToolbarButtonsThumbnail.tsx b/app/client/packages/icons/src/components/Thumbnails/ToolbarButtonsThumbnail.tsx index d7d2c5f8ea2..ed1c8efdb09 100644 --- a/app/client/packages/icons/src/components/Thumbnails/ToolbarButtonsThumbnail.tsx +++ b/app/client/packages/icons/src/components/Thumbnails/ToolbarButtonsThumbnail.tsx @@ -1,2 +1,2 @@ import React from "react"; -export const ToolbarButtonsThumbnail = () => ; +export const ToolbarButtonsThumbnail = () => ; diff --git a/app/client/packages/icons/src/icons/Icons/EmailInput.svg b/app/client/packages/icons/src/icons/Icons/EmailInput.svg new file mode 100644 index 00000000000..bfa99701a0c --- /dev/null +++ b/app/client/packages/icons/src/icons/Icons/EmailInput.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Icons/InlineButtons.svg b/app/client/packages/icons/src/icons/Icons/InlineButtons.svg index b1a16d021bf..181c56090b7 100644 --- a/app/client/packages/icons/src/icons/Icons/InlineButtons.svg +++ b/app/client/packages/icons/src/icons/Icons/InlineButtons.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Icons/Input.svg b/app/client/packages/icons/src/icons/Icons/Input.svg index 7b6ecec7559..25374e66620 100644 --- a/app/client/packages/icons/src/icons/Icons/Input.svg +++ b/app/client/packages/icons/src/icons/Icons/Input.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Icons/MultilineInput.svg b/app/client/packages/icons/src/icons/Icons/MultilineInput.svg new file mode 100644 index 00000000000..8a22e9046ae --- /dev/null +++ b/app/client/packages/icons/src/icons/Icons/MultilineInput.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Icons/NumberInput.svg b/app/client/packages/icons/src/icons/Icons/NumberInput.svg new file mode 100644 index 00000000000..c7066fe43c1 --- /dev/null +++ b/app/client/packages/icons/src/icons/Icons/NumberInput.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Icons/Paragraph.svg b/app/client/packages/icons/src/icons/Icons/Paragraph.svg index e4db2e49130..a8614fc19f6 100644 --- a/app/client/packages/icons/src/icons/Icons/Paragraph.svg +++ b/app/client/packages/icons/src/icons/Icons/Paragraph.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Icons/PasswordInput.svg b/app/client/packages/icons/src/icons/Icons/PasswordInput.svg new file mode 100644 index 00000000000..f811fbaf802 --- /dev/null +++ b/app/client/packages/icons/src/icons/Icons/PasswordInput.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Icons/ToolbarButtons.svg b/app/client/packages/icons/src/icons/Icons/ToolbarButtons.svg index aabcb5d2828..6e3d173668d 100644 --- a/app/client/packages/icons/src/icons/Icons/ToolbarButtons.svg +++ b/app/client/packages/icons/src/icons/Icons/ToolbarButtons.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Thumbnails/EmailInput.svg b/app/client/packages/icons/src/icons/Thumbnails/EmailInput.svg new file mode 100644 index 00000000000..9b9b1ef3aaa --- /dev/null +++ b/app/client/packages/icons/src/icons/Thumbnails/EmailInput.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Thumbnails/InlineButtons.svg b/app/client/packages/icons/src/icons/Thumbnails/InlineButtons.svg index 2d2eee68265..7b49ab0f6d3 100644 --- a/app/client/packages/icons/src/icons/Thumbnails/InlineButtons.svg +++ b/app/client/packages/icons/src/icons/Thumbnails/InlineButtons.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Thumbnails/KeyValue.svg b/app/client/packages/icons/src/icons/Thumbnails/KeyValue.svg index 345c0cba411..33bd1718d53 100644 --- a/app/client/packages/icons/src/icons/Thumbnails/KeyValue.svg +++ b/app/client/packages/icons/src/icons/Thumbnails/KeyValue.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Thumbnails/MultilineInput.svg b/app/client/packages/icons/src/icons/Thumbnails/MultilineInput.svg new file mode 100644 index 00000000000..66589cd1b78 --- /dev/null +++ b/app/client/packages/icons/src/icons/Thumbnails/MultilineInput.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Thumbnails/NumberInput.svg b/app/client/packages/icons/src/icons/Thumbnails/NumberInput.svg new file mode 100644 index 00000000000..ffa9620cfbf --- /dev/null +++ b/app/client/packages/icons/src/icons/Thumbnails/NumberInput.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Thumbnails/PasswordInput.svg b/app/client/packages/icons/src/icons/Thumbnails/PasswordInput.svg new file mode 100644 index 00000000000..35c869668fb --- /dev/null +++ b/app/client/packages/icons/src/icons/Thumbnails/PasswordInput.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Thumbnails/Select.svg b/app/client/packages/icons/src/icons/Thumbnails/Select.svg new file mode 100644 index 00000000000..1cc7734f2db --- /dev/null +++ b/app/client/packages/icons/src/icons/Thumbnails/Select.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Thumbnails/StatsBox.svg b/app/client/packages/icons/src/icons/Thumbnails/StatsBox.svg index 481dd39d8bf..b08a7d7b59c 100644 --- a/app/client/packages/icons/src/icons/Thumbnails/StatsBox.svg +++ b/app/client/packages/icons/src/icons/Thumbnails/StatsBox.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/client/packages/icons/src/icons/Thumbnails/ToolbarButtons.svg b/app/client/packages/icons/src/icons/Thumbnails/ToolbarButtons.svg index 324c791c646..11a42e87461 100644 --- a/app/client/packages/icons/src/icons/Thumbnails/ToolbarButtons.svg +++ b/app/client/packages/icons/src/icons/Thumbnails/ToolbarButtons.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/client/packages/icons/src/index.ts b/app/client/packages/icons/src/index.ts index 4c2b340d420..dba7f48ff6b 100644 --- a/app/client/packages/icons/src/index.ts +++ b/app/client/packages/icons/src/index.ts @@ -2,6 +2,7 @@ export { ButtonThumbnail } from "./components/Thumbnails/ButtonThumbnail"; export { CheckboxGroupThumbnail } from "./components/Thumbnails/CheckboxGroupThumbnail"; export { CheckboxThumbnail } from "./components/Thumbnails/CheckboxThumbnail"; export { CurrencyInputThumbnail } from "./components/Thumbnails/CurrencyInputThumbnail"; +export { EmailInputThumbnail } from "./components/Thumbnails/EmailInputThumbnail"; export { HeadingThumbnail } from "./components/Thumbnails/HeadingThumbnail"; export { IconButtonThumbnail } from "./components/Thumbnails/IconButtonThumbnail"; export { InlineButtonsThumbnail } from "./components/Thumbnails/InlineButtonsThumbnail"; @@ -9,10 +10,14 @@ export { InputThumbnail } from "./components/Thumbnails/InputThumbnail"; export { KeyValueThumbnail } from "./components/Thumbnails/KeyValueThumbnail"; export { MenuButtonThumbnail } from "./components/Thumbnails/MenuButtonThumbnail"; export { ModalThumbnail } from "./components/Thumbnails/ModalThumbnail"; +export { MultilineInputThumbnail } from "./components/Thumbnails/MultilineInputThumbnail"; +export { NumberInputThumbnail } from "./components/Thumbnails/NumberInputThumbnail"; export { ParagraphThumbnail } from "./components/Thumbnails/ParagraphThumbnail"; +export { PasswordInputThumbnail } from "./components/Thumbnails/PasswordInputThumbnail"; export { PhoneInputThumbnail } from "./components/Thumbnails/PhoneInputThumbnail"; export { RadioGroupThumbnail } from "./components/Thumbnails/RadioGroupThumbnail"; export { SectionThumbnail } from "./components/Thumbnails/SectionThumbnail"; +export { SelectThumbnail } from "./components/Thumbnails/SelectThumbnail"; export { StatsBoxThumbnail } from "./components/Thumbnails/StatsBoxThumbnail"; export { SwitchGroupThumbnail } from "./components/Thumbnails/SwitchGroupThumbnail"; export { SwitchThumbnail } from "./components/Thumbnails/SwitchThumbnail"; @@ -23,6 +28,7 @@ export { ButtonIcon } from "./components/Icons/ButtonIcon"; export { CheckboxGroupIcon } from "./components/Icons/CheckboxGroupIcon"; export { CheckboxIcon } from "./components/Icons/CheckboxIcon"; export { CurrencyInputIcon } from "./components/Icons/CurrencyInputIcon"; +export { EmailInputIcon } from "./components/Icons/EmailInputIcon"; export { HeadingIcon } from "./components/Icons/HeadingIcon"; export { IconButtonIcon } from "./components/Icons/IconButtonIcon"; export { InlineButtonsIcon } from "./components/Icons/InlineButtonsIcon"; @@ -30,7 +36,10 @@ export { InputIcon } from "./components/Icons/InputIcon"; export { KeyValueIcon } from "./components/Icons/KeyValueIcon"; export { MenuButtonIcon } from "./components/Icons/MenuButtonIcon"; export { ModalIcon } from "./components/Icons/ModalIcon"; +export { MultilineInputIcon } from "./components/Icons/MultilineInputIcon"; +export { NumberInputIcon } from "./components/Icons/NumberInputIcon"; export { ParagraphIcon } from "./components/Icons/ParagraphIcon"; +export { PasswordInputIcon } from "./components/Icons/PasswordInputIcon"; export { PhoneInputIcon } from "./components/Icons/PhoneInputIcon"; export { RadioGroupIcon } from "./components/Icons/RadioGroupIcon"; export { SectionIcon } from "./components/Icons/SectionIcon"; diff --git a/app/client/packages/icons/src/stories/Icons.mdx b/app/client/packages/icons/src/stories/Icons.mdx index 1b0b8918ff3..dba05e9f1dd 100644 --- a/app/client/packages/icons/src/stories/Icons.mdx +++ b/app/client/packages/icons/src/stories/Icons.mdx @@ -4,6 +4,7 @@ import { ButtonIcon } from "../components/Icons/ButtonIcon"; import { CheckboxGroupIcon } from "../components/Icons/CheckboxGroupIcon"; import { CheckboxIcon } from "../components/Icons/CheckboxIcon"; import { CurrencyInputIcon } from "../components/Icons/CurrencyInputIcon"; +import { EmailInputIcon } from "../components/Icons/EmailInputIcon"; import { HeadingIcon } from "../components/Icons/HeadingIcon"; import { IconButtonIcon } from "../components/Icons/IconButtonIcon"; import { InlineButtonsIcon } from "../components/Icons/InlineButtonsIcon"; @@ -11,7 +12,10 @@ import { InputIcon } from "../components/Icons/InputIcon"; import { KeyValueIcon } from "../components/Icons/KeyValueIcon"; import { MenuButtonIcon } from "../components/Icons/MenuButtonIcon"; import { ModalIcon } from "../components/Icons/ModalIcon"; +import { MultilineInputIcon } from "../components/Icons/MultilineInputIcon"; +import { NumberInputIcon } from "../components/Icons/NumberInputIcon"; import { ParagraphIcon } from "../components/Icons/ParagraphIcon"; +import { PasswordInputIcon } from "../components/Icons/PasswordInputIcon"; import { PhoneInputIcon } from "../components/Icons/PhoneInputIcon"; import { RadioGroupIcon } from "../components/Icons/RadioGroupIcon"; import { SectionIcon } from "../components/Icons/SectionIcon"; @@ -35,6 +39,7 @@ export const Icons = () => { + @@ -42,7 +47,10 @@ export const Icons = () => { + + + diff --git a/app/client/packages/icons/src/stories/Thumbnails.mdx b/app/client/packages/icons/src/stories/Thumbnails.mdx index be746899971..e3a7a1f9238 100644 --- a/app/client/packages/icons/src/stories/Thumbnails.mdx +++ b/app/client/packages/icons/src/stories/Thumbnails.mdx @@ -4,6 +4,7 @@ import { ButtonThumbnail } from "../components/Thumbnails/ButtonThumbnail"; import { CheckboxGroupThumbnail } from "../components/Thumbnails/CheckboxGroupThumbnail"; import { CheckboxThumbnail } from "../components/Thumbnails/CheckboxThumbnail"; import { CurrencyInputThumbnail } from "../components/Thumbnails/CurrencyInputThumbnail"; +import { EmailInputThumbnail } from "../components/Thumbnails/EmailInputThumbnail"; import { HeadingThumbnail } from "../components/Thumbnails/HeadingThumbnail"; import { IconButtonThumbnail } from "../components/Thumbnails/IconButtonThumbnail"; import { InlineButtonsThumbnail } from "../components/Thumbnails/InlineButtonsThumbnail"; @@ -11,10 +12,14 @@ import { InputThumbnail } from "../components/Thumbnails/InputThumbnail"; import { KeyValueThumbnail } from "../components/Thumbnails/KeyValueThumbnail"; import { MenuButtonThumbnail } from "../components/Thumbnails/MenuButtonThumbnail"; import { ModalThumbnail } from "../components/Thumbnails/ModalThumbnail"; +import { MultilineInputThumbnail } from "../components/Thumbnails/MultilineInputThumbnail"; +import { NumberInputThumbnail } from "../components/Thumbnails/NumberInputThumbnail"; import { ParagraphThumbnail } from "../components/Thumbnails/ParagraphThumbnail"; +import { PasswordInputThumbnail } from "../components/Thumbnails/PasswordInputThumbnail"; import { PhoneInputThumbnail } from "../components/Thumbnails/PhoneInputThumbnail"; import { RadioGroupThumbnail } from "../components/Thumbnails/RadioGroupThumbnail"; import { SectionThumbnail } from "../components/Thumbnails/SectionThumbnail"; +import { SelectThumbnail } from "../components/Thumbnails/SelectThumbnail"; import { StatsBoxThumbnail } from "../components/Thumbnails/StatsBoxThumbnail"; import { SwitchGroupThumbnail } from "../components/Thumbnails/SwitchGroupThumbnail"; import { SwitchThumbnail } from "../components/Thumbnails/SwitchThumbnail"; @@ -35,6 +40,7 @@ export const Icons = () => { + @@ -42,10 +48,14 @@ export const Icons = () => { + + + + diff --git a/app/client/packages/icons/tsconfig.json b/app/client/packages/icons/tsconfig.json index d31268cb1b2..5adfaa06925 100644 --- a/app/client/packages/icons/tsconfig.json +++ b/app/client/packages/icons/tsconfig.json @@ -4,7 +4,8 @@ "ts-node": { "compilerOptions": { "module": "commonjs", - "types": ["node"] + "types": ["node"], + "verbatimModuleSyntax": false } } } diff --git a/app/client/packages/utils/.eslintrc.json b/app/client/packages/utils/.eslintrc.json new file mode 100644 index 00000000000..b6652ce70c7 --- /dev/null +++ b/app/client/packages/utils/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": ["../../.eslintrc.base.json"] +} diff --git a/app/client/packages/utils/jest.config.js b/app/client/packages/utils/jest.config.js new file mode 100644 index 00000000000..9b706028882 --- /dev/null +++ b/app/client/packages/utils/jest.config.js @@ -0,0 +1,11 @@ +module.exports = { + roots: ["/src"], + transform: { + "^.+\\.(ts)$": [ + "ts-jest", + { + isolatedModules: true, + }, + ], + }, +}; diff --git a/app/client/packages/utils/package.json b/app/client/packages/utils/package.json new file mode 100644 index 00000000000..60e362695f0 --- /dev/null +++ b/app/client/packages/utils/package.json @@ -0,0 +1,14 @@ +{ + "name": "@appsmith/utils", + "version": "1.0.0", + "description": "This package has all the shared util functions which can be used in different packages e.g. client, rts etc", + "main": "src/index.ts", + "types": "src/index.d.ts", + "scripts": { + "lint": "yarn g:lint", + "prettier": "yarn g:prettier", + "test:unit": "yarn g:jest" + }, + "author": "Aman Agarwal , Pawan Kumar ", + "license": "ISC" +} diff --git a/app/client/packages/utils/src/index.ts b/app/client/packages/utils/src/index.ts new file mode 100644 index 00000000000..7ea2e7134f2 --- /dev/null +++ b/app/client/packages/utils/src/index.ts @@ -0,0 +1 @@ +export * from "./object"; diff --git a/app/client/packages/utils/src/object/index.ts b/app/client/packages/utils/src/object/index.ts new file mode 100644 index 00000000000..b983a09bae5 --- /dev/null +++ b/app/client/packages/utils/src/object/index.ts @@ -0,0 +1 @@ +export { objectKeys } from "./keys"; diff --git a/app/client/packages/utils/src/object/keys.test.ts b/app/client/packages/utils/src/object/keys.test.ts new file mode 100644 index 00000000000..33f7cb52864 --- /dev/null +++ b/app/client/packages/utils/src/object/keys.test.ts @@ -0,0 +1,7 @@ +import { objectKeys } from "./keys"; + +test("objectKeys should return all the keys in the object map pass to it.", () => { + const objectMap = { a: 1, b: 2, c: 3 }; + const keys = objectKeys(objectMap); + expect(keys).toStrictEqual(["a", "b", "c"]); +}); diff --git a/app/client/packages/design-system/widgets/src/utils/objectKeys.ts b/app/client/packages/utils/src/object/keys.ts similarity index 77% rename from app/client/packages/design-system/widgets/src/utils/objectKeys.ts rename to app/client/packages/utils/src/object/keys.ts index a638b663b07..62a401fc285 100644 --- a/app/client/packages/design-system/widgets/src/utils/objectKeys.ts +++ b/app/client/packages/utils/src/object/keys.ts @@ -4,11 +4,12 @@ * when looping through the keys. This function returns an array of keys with the correct type information. * * with classic Object.keys: Object.keys({ a: 1, b: 2 }) -> string[] - * with objeetKeys: objectKeys({ a: 1, b: 2 }) -> ("a" | "b")[] + * with objectKeys: objectKeys({ a: 1, b: 2 }) -> ("a" | "b")[] * * @param object * @returns array of keys with correct type information */ -export function objectKeys(object: T) { + +export function objectKeys(object: T): Array { return Object.keys(object) as Array; } diff --git a/app/client/packages/utils/tsconfig.json b/app/client/packages/utils/tsconfig.json new file mode 100644 index 00000000000..752e48c03ef --- /dev/null +++ b/app/client/packages/utils/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["./src/**/*"] +} diff --git a/app/client/src/WidgetProvider/constants.ts b/app/client/src/WidgetProvider/constants.ts index daf5e58f320..8e9c50c7bca 100644 --- a/app/client/src/WidgetProvider/constants.ts +++ b/app/client/src/WidgetProvider/constants.ts @@ -82,6 +82,7 @@ export interface AnvilConfig { export interface WidgetBaseConfiguration { name: string; + displayOrder?: number; iconSVG?: string; thumbnailSVG?: string; hideCard?: boolean; diff --git a/app/client/src/WidgetProvider/factory/helpers.ts b/app/client/src/WidgetProvider/factory/helpers.ts index ae63732267e..ffc5508cffc 100644 --- a/app/client/src/WidgetProvider/factory/helpers.ts +++ b/app/client/src/WidgetProvider/factory/helpers.ts @@ -17,7 +17,7 @@ import { WidgetFeaturePropertyPaneEnhancements, } from "../../utils/WidgetFeatures"; import { generateReactKey } from "utils/generators"; -import { DEFAULT_WIDGET_ON_CANVAS_UI } from "widgets/anvil/constants"; +import { DEFAULT_WIDGET_ON_CANVAS_UI } from "widgets/wds/constants"; import type { WidgetDefaultProps } from "WidgetProvider/constants"; export enum PropertyPaneConfigTypes { diff --git a/app/client/src/WidgetProvider/factory/index.tsx b/app/client/src/WidgetProvider/factory/index.tsx index b29097283f6..936a0a9fb57 100644 --- a/app/client/src/WidgetProvider/factory/index.tsx +++ b/app/client/src/WidgetProvider/factory/index.tsx @@ -129,6 +129,7 @@ class WidgetFactory { isDeprecated: !!config.isDeprecated, replacement: config.replacement, displayName: config.name, + displayOrder: config.displayOrder, key: generateReactKey(), iconSVG: config.iconSVG, thumbnailSVG: config.thumbnailSVG, diff --git a/app/client/src/actions/datasourceActions.ts b/app/client/src/actions/datasourceActions.ts index 764924010f7..250b6cc5b87 100644 --- a/app/client/src/actions/datasourceActions.ts +++ b/app/client/src/actions/datasourceActions.ts @@ -325,16 +325,6 @@ export const addMockDatasourceToWorkspace = ( }; }; -export const initDatasourcePane = ( - pluginType: string, - urlId?: string, -): ReduxAction<{ pluginType: string; id?: string }> => { - return { - type: ReduxActionTypes.INIT_DATASOURCE_PANE, - payload: { id: urlId, pluginType }, - }; -}; - export const storeAsDatasource = () => { return { type: ReduxActionTypes.STORE_AS_DATASOURCE_INIT, @@ -529,5 +519,4 @@ export const setDatasourcePreviewSelectedTableName = ( export default { fetchDatasources, - initDatasourcePane, }; diff --git a/app/client/src/actions/pageActions.tsx b/app/client/src/actions/pageActions.tsx index f95e42406b5..003d0aa20a6 100644 --- a/app/client/src/actions/pageActions.tsx +++ b/app/client/src/actions/pageActions.tsx @@ -1,20 +1,17 @@ import type { WidgetType } from "constants/WidgetConstants"; import type { + AnyReduxAction, EvaluationReduxAction, ReduxAction, - UpdateCanvasPayload, - AnyReduxAction, - ClonePageSuccessPayload, } from "ee/constants/ReduxActionConstants"; import { - ReduxActionTypes, ReduxActionErrorTypes, + ReduxActionTypes, WidgetReduxActionTypes, - ReplayReduxActionTypes, } from "ee/constants/ReduxActionConstants"; import type { DynamicPath } from "utils/DynamicBindingUtils"; import AnalyticsUtil from "ee/utils/AnalyticsUtil"; -import type { WidgetOperation } from "widgets/BaseWidget"; +import type { WidgetOperation, WidgetProps } from "widgets/BaseWidget"; import type { FetchPageResponse, PageLayout, @@ -28,6 +25,12 @@ import type { CanvasWidgetsReduxState } from "reducers/entityReducers/canvasWidg import type { ENTITY_TYPE } from "ee/entities/AppsmithConsole/utils"; import type { Replayable } from "entities/Replay/ReplayEntity/ReplayEditor"; import * as Sentry from "@sentry/react"; +import type { DSLWidget } from "../WidgetProvider/constants"; +import type { + LayoutOnLoadActionErrors, + PageAction, +} from "../constants/AppsmithActionConstants/ActionConstants"; +import { ReplayOperation } from "entities/Replay/ReplayEntity/ReplayOperations"; export interface FetchPageListPayload { applicationId: string; @@ -127,6 +130,19 @@ export const updateCurrentPage = ( payload: { id, slug, permissions }, }); +export interface UpdateCanvasPayload { + pageWidgetId: string; + widgets: { [widgetId: string]: WidgetProps }; + currentLayoutId: string; + currentPageId: string; + currentPageName: string; + currentApplicationId: string; + dsl: Partial; + pageActions: PageAction[][]; + updatedWidgetIds?: string[]; + layoutOnLoadActionErrors?: LayoutOnLoadActionErrors[]; +} + export const initCanvasLayout = ( payload: UpdateCanvasPayload, ): ReduxAction => { @@ -245,6 +261,16 @@ export const clonePageInit = ( }; }; +export interface ClonePageSuccessPayload { + pageName: string; + description?: string; + pageId: string; + basePageId: string; + layoutId: string; + isDefault: boolean; + slug: string; +} + export const clonePageSuccess = ({ basePageId, layoutId, @@ -524,7 +550,7 @@ export function undoAction() { return { type: ReduxActionTypes.UNDO_REDO_OPERATION, payload: { - operation: ReplayReduxActionTypes.UNDO, + operation: ReplayOperation.UNDO, }, }; } @@ -533,7 +559,7 @@ export function redoAction() { return { type: ReduxActionTypes.UNDO_REDO_OPERATION, payload: { - operation: ReplayReduxActionTypes.REDO, + operation: ReplayOperation.REDO, }, }; } diff --git a/app/client/src/actions/propertyPaneActions.ts b/app/client/src/actions/propertyPaneActions.ts index 9b560bd0c36..25a717123be 100644 --- a/app/client/src/actions/propertyPaneActions.ts +++ b/app/client/src/actions/propertyPaneActions.ts @@ -114,3 +114,16 @@ export const createNewQueryFromActionCreator = ( payload, }; }; + +export interface ShowPropertyPanePayload { + widgetId?: string; + callForDragOrResize?: boolean; + force: boolean; +} + +export const showPropertyPane = (payload: ShowPropertyPanePayload) => { + return { + type: ReduxActionTypes.SHOW_PROPERTY_PANE, + payload, + }; +}; diff --git a/app/client/src/actions/reflowActions.ts b/app/client/src/actions/reflowActions.ts index da6504ffd28..72e23c8dec0 100644 --- a/app/client/src/actions/reflowActions.ts +++ b/app/client/src/actions/reflowActions.ts @@ -1,18 +1,20 @@ -import type { ReduxAction } from "ee/constants/ReduxActionConstants"; -import { ReflowReduxActionTypes } from "ee/constants/ReduxActionConstants"; +import { + type ReduxAction, + ReduxActionTypes, +} from "ee/constants/ReduxActionConstants"; import type { ReflowedSpaceMap } from "reflow/reflowTypes"; export const reflowMoveAction = ( payload: ReflowedSpaceMap, ): ReduxAction => { return { - type: ReflowReduxActionTypes.REFLOW_MOVE, + type: ReduxActionTypes.REFLOW_MOVE, payload: payload, }; }; export const stopReflowAction = () => { return { - type: ReflowReduxActionTypes.STOP_REFLOW, + type: ReduxActionTypes.STOP_REFLOW, }; }; diff --git a/app/client/src/actions/userActions.ts b/app/client/src/actions/userActions.ts index 9a34f78590f..073f4c9690f 100644 --- a/app/client/src/actions/userActions.ts +++ b/app/client/src/actions/userActions.ts @@ -2,12 +2,7 @@ import { ReduxActionErrorTypes, ReduxActionTypes, } from "ee/constants/ReduxActionConstants"; -import { CurrentUserDetailsRequestPayload } from "constants/userConstants"; -import type { - TokenPasswordUpdateRequest, - UpdateUserRequest, - VerifyTokenRequest, -} from "ee/api/UserApi"; +import type { UpdateUserRequest, VerifyTokenRequest } from "ee/api/UserApi"; import type { FeatureFlags } from "ee/entities/FeatureFlag"; import type { ProductAlert, @@ -34,10 +29,6 @@ export const logoutUserError = (error: any) => ({ error, }, }); -export const setCurrentUserDetails = () => ({ - type: ReduxActionTypes.SET_CURRENT_USER_INIT, - payload: CurrentUserDetailsRequestPayload, -}); export const verifyInviteSuccess = () => ({ type: ReduxActionTypes.VERIFY_INVITE_SUCCESS, @@ -55,15 +46,6 @@ export const verifyInviteError = (error: any) => ({ payload: { error }, }); -export const invitedUserSignup = ( - // TODO: Fix this the next time the file is edited - // eslint-disable-next-line @typescript-eslint/no-explicit-any - payload: TokenPasswordUpdateRequest & { resolve: any; reject: any }, -) => ({ - type: ReduxActionTypes.INVITED_USER_SIGNUP_INIT, - payload, -}); - export const invitedUserSignupSuccess = () => ({ type: ReduxActionTypes.INVITED_USER_SIGNUP_SUCCESS, }); diff --git a/app/client/src/actions/utilActions.ts b/app/client/src/actions/utilActions.ts deleted file mode 100644 index 4483519fbf2..00000000000 --- a/app/client/src/actions/utilActions.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; - -export const historyPush = (url: string) => ({ - type: ReduxActionTypes.HISTORY_PUSH, - payload: { - url, - }, -}); - -export const windowRedirect = (url: string) => ({ - type: ReduxActionTypes.REDIRECT_WINDOW_LOCATION, - payload: { - url, - }, -}); diff --git a/app/client/src/actions/websocketActions.ts b/app/client/src/actions/websocketActions.ts index 61379e260e6..299f7dd4d4b 100644 --- a/app/client/src/actions/websocketActions.ts +++ b/app/client/src/actions/websocketActions.ts @@ -1,7 +1,4 @@ -import { - ReduxActionTypes, - ReduxSagaChannels, -} from "ee/constants/ReduxActionConstants"; +import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import { reconnectWebsocketEvent } from "constants/WebsocketConstants"; export const setIsAppLevelWebsocketConnected = (payload: boolean) => ({ @@ -19,7 +16,7 @@ export const appLevelWebsocketWriteEvent = (payload: { // eslint-disable-next-line @typescript-eslint/no-explicit-any payload?: any; }) => ({ - type: ReduxSagaChannels.WEBSOCKET_APP_LEVEL_WRITE_CHANNEL, + type: ReduxActionTypes.WEBSOCKET_APP_LEVEL_WRITE_CHANNEL, payload, }); export const pageLevelWebsocketWriteEvent = (payload: { @@ -28,7 +25,7 @@ export const pageLevelWebsocketWriteEvent = (payload: { // eslint-disable-next-line @typescript-eslint/no-explicit-any payload?: any; }) => ({ - type: ReduxSagaChannels.WEBSOCKET_PAGE_LEVEL_WRITE_CHANNEL, + type: ReduxActionTypes.WEBSOCKET_PAGE_LEVEL_WRITE_CHANNEL, payload, }); diff --git a/app/client/src/actions/widgetActions.tsx b/app/client/src/actions/widgetActions.tsx index 426167faa19..ec5cd690bb9 100644 --- a/app/client/src/actions/widgetActions.tsx +++ b/app/client/src/actions/widgetActions.tsx @@ -69,11 +69,11 @@ export const showModal = (id: string, shouldSelectModal = true) => { }; }; -export const closePropertyPane = () => { +export const closePropertyPane = (force = false) => { return { type: ReduxActionTypes.HIDE_PROPERTY_PANE, payload: { - force: false, + force, }, }; }; diff --git a/app/client/src/actions/widgetSidebarActions.tsx b/app/client/src/actions/widgetSidebarActions.tsx index 5a0dda472e7..ad34591dba1 100644 --- a/app/client/src/actions/widgetSidebarActions.tsx +++ b/app/client/src/actions/widgetSidebarActions.tsx @@ -1,40 +1,6 @@ -import { - ReduxActionTypes, - ReduxActionErrorTypes, -} from "ee/constants/ReduxActionConstants"; -import type { WidgetCardProps } from "widgets/BaseWidget"; - -export const fetchWidgetCards = () => { - return { - type: ReduxActionTypes.FETCH_WIDGET_CARDS, - }; -}; - -// TODO: Fix this the next time the file is edited -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const errorFetchingWidgetCards = (error: any) => { - return { - type: ReduxActionErrorTypes.FETCH_WIDGET_CARDS_ERROR, - error, - }; -}; - -export const successFetchingWidgetCards = (cards: { - [id: string]: WidgetCardProps[]; -}) => { - return { - type: ReduxActionTypes.FETCH_WIDGET_CARDS_SUCCESS, - cards, - }; -}; +import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; export const forceOpenWidgetPanel = (flag: boolean) => ({ type: ReduxActionTypes.SET_FORCE_WIDGET_PANEL_OPEN, payload: flag, }); - -export default { - fetchWidgetCards, - errorFetchingWidgetCards, - successFetchingWidgetCards, -}; diff --git a/app/client/src/api/WidgetSidebarApi.tsx b/app/client/src/api/WidgetSidebarApi.tsx deleted file mode 100644 index 072e6ef96cd..00000000000 --- a/app/client/src/api/WidgetSidebarApi.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import Api from "api/Api"; -import type { WidgetCardProps } from "widgets/BaseWidget"; -import type { AxiosPromise } from "axios"; - -export interface WidgetSidebarResponse { - cards: { [id: string]: WidgetCardProps[] }; -} -// export interface WidgetCardsPaneRequest {} - -class WidgetSidebarApi extends Api { - static url = "/widgetCards"; - static async fetchWidgetCards(): Promise< - AxiosPromise - > { - return Api.get(WidgetSidebarApi.url); - } -} - -export default WidgetSidebarApi; diff --git a/app/client/src/ce/RouteBuilder.ts b/app/client/src/ce/RouteBuilder.ts index aa0f86c5302..ae8970d1753 100644 --- a/app/client/src/ce/RouteBuilder.ts +++ b/app/client/src/ce/RouteBuilder.ts @@ -10,10 +10,8 @@ import { import { APP_MODE } from "entities/App"; import urlBuilder from "ee/entities/URLRedirect/URLAssembly"; import type { URLBuilderParams } from "ee/entities/URLRedirect/URLAssembly"; -import type { - ApplicationPayload, - Page, -} from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; +import type { ApplicationPayload } from "entities/Application"; export const fillPathname = ( pathname: string, diff --git a/app/client/src/ce/RouteParamsMiddleware.ts b/app/client/src/ce/RouteParamsMiddleware.ts index e01601c343b..00f7b39b01e 100644 --- a/app/client/src/ce/RouteParamsMiddleware.ts +++ b/app/client/src/ce/RouteParamsMiddleware.ts @@ -1,8 +1,6 @@ -import type { - ApplicationPayload, - Page, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { Page } from "entities/Page"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import type { UpdatePageResponse } from "api/PageApi"; import type { diff --git a/app/client/src/ce/constants/ReduxActionConstants.tsx b/app/client/src/ce/constants/ReduxActionConstants.tsx index 4895428c701..e3c5510381f 100644 --- a/app/client/src/ce/constants/ReduxActionConstants.tsx +++ b/app/client/src/ce/constants/ReduxActionConstants.tsx @@ -1,26 +1,14 @@ import type { ERROR_CODES } from "ee/constants/ApiConstants"; -import type { Workspace } from "ee/constants/workspaceConstants"; -import type { - AppEmbedSetting, - ApplicationPagePayload, - GitApplicationMetadata, -} from "ee/api/ApplicationApi"; -import type { ApplicationVersion } from "ee/actions/applicationActions"; -import type { NavigationSetting, ThemeSetting } from "constants/AppConstants"; -import type { WidgetCardProps, WidgetProps } from "widgets/BaseWidget"; -import type { - LayoutOnLoadActionErrors, - PageAction, -} from "constants/AppsmithActionConstants/ActionConstants"; -import type { AppLayoutConfig } from "reducers/entityReducers/pageListReducer"; -import type { DSLWidget } from "WidgetProvider/constants"; -import type { LayoutSystemTypeConfig } from "layoutSystems/types"; import type { AffectedJSObjects } from "sagas/EvaluationsSagaUtils"; -import type { EvaluationVersion } from "constants/EvalConstants"; -export const ReduxSagaChannels = { +const WebsocketActions = { WEBSOCKET_APP_LEVEL_WRITE_CHANNEL: "WEBSOCKET_APP_LEVEL_WRITE_CHANNEL", WEBSOCKET_PAGE_LEVEL_WRITE_CHANNEL: "WEBSOCKET_PAGE_LEVEL_WRITE_CHANNEL", + INIT_APP_LEVEL_SOCKET_CONNECTION: "INIT_APP_LEVEL_SOCKET_CONNECTION", + INIT_PAGE_LEVEL_SOCKET_CONNECTION: "INIT_PAGE_LEVEL_SOCKET_CONNECTION", + SET_IS_APP_LEVEL_WEBSOCKET_CONNECTED: "SET_IS_APP_LEVEL_WEBSOCKET_CONNECTED", + SET_IS_PAGE_LEVEL_WEBSOCKET_CONNECTED: + "SET_IS_PAGE_LEVEL_WEBSOCKET_CONNECTED", }; const ActionSelectorReduxActionTypes = { @@ -35,45 +23,92 @@ const ResourceMapActionTypes = { RESET_ALL_RESOURCE_MAPS: "RESET_ALL_RESOURCE_MAPS", }; -const ActionTypes = { - ...ResourceMapActionTypes, +const JSLibraryActionTypes = { TOGGLE_INSTALLER: "TOGGLE_INSTALLER", FETCH_JS_LIBRARIES_INIT: "FETCH_JS_LIBRARIES_INIT", FETCH_JS_LIBRARIES_SUCCESS: "FETCH_JS_LIBRARIES_SUCCESS", - EXECUTE_JS_UPDATES: "EXECUTE_JS_UPDATES", CLEAR_PROCESSED_INSTALLS: "CLEAR_PROCESSED_INSTALLS", INSTALL_LIBRARY_INIT: "INSTALL_LIBRARY_INIT", INSTALL_LIBRARY_START: "INSTALL_LIBRARY_START", INSTALL_LIBRARY_SUCCESS: "INSTALL_LIBRARY_SUCCESS", UNINSTALL_LIBRARY_INIT: "UNINSTALL_LIBRARY_INIT", UNINSTALL_LIBRARY_SUCCESS: "UNINSTALL_LIBRARY_SUCCESS", +}; + +const JSLibraryActionErrorTypes = { + INSTALL_LIBRARY_FAILED: "INSTALL_LIBRARY_FAILED", + UNINSTALL_LIBRARY_FAILED: "UNINSTALL_LIBRARY_FAILED", + FETCH_JS_LIBRARIES_FAILED: "FETCH_JS_LIBRARIES_FAILED", +}; + +const JSEditorActionTypes = { + START_EXECUTE_JS_FUNCTION: "START_EXECUTE_JS_FUNCTION", + EXECUTE_JS_UPDATES: "EXECUTE_JS_UPDATES", + FETCH_JS_ACTIONS_INIT: "FETCH_JS_ACTIONS_INIT", + FETCH_JS_ACTIONS_SUCCESS: "FETCH_JS_ACTIONS_SUCCESS", + UPDATE_TEST_PAYLOAD_FOR_COLLECTION: "UPDATE_TEST_PAYLOAD_FOR_COLLECTION", + UPDATE_TEST_PAYLOAD_FOR_JS_ACTION: "UPDATE_TEST_PAYLOAD_FOR_JS_ACTION", + JS_ACTION_REMOTE_EXECUTION_INIT: "JS_ACTION_REMOTE_EXECUTION_INIT", + CREATE_NEW_JS_ACTION: "CREATE_NEW_JS_ACTION", + CREATE_JS_ACTION_INIT: "CREATE_JS_ACTION_INIT", + CREATE_JS_ACTION_SUCCESS: "CREATE_JS_ACTION_SUCCESS", + COPY_JS_ACTION_INIT: "COPY_JS_ACTION_INIT", + COPY_JS_ACTION_SUCCESS: "COPY_JS_ACTION_SUCCESS", + MOVE_JS_ACTION_INIT: "MOVE_JS_ACTION_INIT", + MOVE_JS_ACTION_SUCCESS: "MOVE_JS_ACTION_SUCCESS", + DELETE_JS_ACTION_INIT: "DELETE_JS_ACTION_INIT", + DELETE_JS_ACTION_SUCCESS: "DELETE_JS_ACTION_SUCCESS", + PARSE_UPDATE_JS_ACTION: "PARSE_UPDATE_JS_ACTION", + UPDATE_JS_ACTION_SUCCESS: "UPDATE_JS_ACTION_SUCCESS", + JS_ACTION_SAVE_START: "JS_ACTION_SAVE_START", + JS_ACTION_SAVE_COMPLETE: "JS_ACTION_SAVE_COMPLETE", + EXECUTE_COMMAND: "EXECUTE_COMMAND", + SAVE_JS_COLLECTION_NAME_INIT: "SAVE_JS_COLLECTION_NAME_INIT", + FETCH_JS_ACTIONS_FOR_PAGE_INIT: "FETCH_JS_ACTIONS_FOR_PAGE_INIT", + FETCH_JS_ACTIONS_FOR_PAGE_SUCCESS: "FETCH_JS_ACTIONS_FOR_PAGE_SUCCESS", + SAVE_JS_COLLECTION_NAME_SUCCESS: "SAVE_JS_COLLECTION_NAME_SUCCESS", + EXECUTE_JS_FUNCTION_INIT: "EXECUTE_JS_FUNCTION_INIT", + EXECUTE_JS_FUNCTION_SUCCESS: "EXECUTE_JS_FUNCTION_SUCCESS", + SET_JS_FUNCTION_EXECUTION_DATA: "SET_JS_FUNCTION_EXECUTION_DATA", + SET_JS_FUNCTION_EXECUTION_ERRORS: "SET_JS_FUNCTION_EXECUTION_ERRORS", + REFACTOR_JS_ACTION_NAME: "REFACTOR_JS_ACTION_NAME", + REFACTOR_JS_ACTION_NAME_SUCCESS: "REFACTOR_JS_ACTION_NAME_SUCCESS", + UPDATE_JS_ACTION_BODY: "UPDATE_JS_ACTION_BODY", + UPDATE_JS_ACTION_BODY_INIT: "UPDATE_JS_ACTION_BODY_INIT", + UPDATE_JS_ACTION_BODY_SUCCESS: "UPDATE_JS_ACTION_BODY_SUCCESS", + SET_FUNCTION_PROPERTY: "SET_FUNCTION_PROPERTY", + UPDATE_JS_FUNCTION_PROPERTY_INIT: "UPDATE_JS_FUNCTION_PROPERTY_INIT", + UPDATE_JS_FUNCTION_PROPERTY_SUCCESS: "UPDATE_JS_FUNCTION_PROPERTY_SUCCESS", + TOGGLE_FUNCTION_EXECUTE_ON_LOAD_INIT: "TOGGLE_FUNCTION_EXECUTE_ON_LOAD_INIT", + TOGGLE_FUNCTION_EXECUTE_ON_LOAD_SUCCESS: + "TOGGLE_FUNCTION_EXECUTE_ON_LOAD_SUCCESS", + SET_JS_ACTION_TO_EXECUTE_ON_PAGELOAD: "SET_JS_ACTION_TO_EXECUTE_ON_PAGELOAD", + SET_ACTIVE_JS_ACTION: "SET_ACTIVE_JS_ACTION", +}; + +const JSEditorActionErrorTypes = { + FETCH_JS_ACTIONS_ERROR: "FETCH_JS_ACTIONS_ERROR", + CREATE_JS_ACTION_ERROR: "CREATE_JS_ACTION_ERROR", + UPDATE_JS_ACTION_ERROR: "UPDATE_JS_ACTION_ERROR", + COPY_JS_ACTION_ERROR: "COPY_JS_ACTION_ERROR", + MOVE_JS_ACTION_ERROR: "MOVE_JS_ACTION_ERROR", + SAVE_JS_COLLECTION_NAME_ERROR: "SAVE_JS_COLLECTION_NAME_ERROR", + FETCH_JS_ACTIONS_FOR_PAGE_ERROR: "FETCH_JS_ACTIONS_FOR_PAGE_ERROR", + DELETE_JS_ACTION_ERROR: "DELETE_JS_ACTION_ERROR", + REFACTOR_JS_ACTION_NAME_ERROR: "REFACTOR_JS_ACTION_NAME_ERROR", + UPDATE_JS_ACTION_BODY_ERROR: "UPDATE_JS_ACTION_BODY_ERROR", + UPDATE_JS_FUNCTION_PROPERTY_ERROR: "UPDATE_JS_FUNCTION_PROPERTY_ERROR", +}; + +const GitActionTypes = { GIT_DISCARD_CHANGES_SUCCESS: "GIT_DISCARD_CHANGES_SUCCESS", GIT_DISCARD_CHANGES: "GIT_DISCARD_CHANGES", CLEAR_DISCARD_ERROR_STATE: "CLEAR_DISCARD_ERROR_STATE", DELETE_BRANCH_INIT: "DELETE_BRANCH_INIT", DELETING_BRANCH: "DELETING_BRANCH", DELETE_BRANCH_SUCCESS: "DELETE_BRANCH_SUCCESS", - SHOW_RECONNECT_DATASOURCE_MODAL: "SHOW_RECONNECT_DATASOURCE_MODAL", - RESET_UNCONCONFIGURED_DATASOURCES_LIST_DURING_IMPORT: - "RESET_UNCONCONFIGURED_DATASOURCES_LIST_DURING_IMPORT", - RESET_DATASOURCE_CONFIG_FETCHED_FOR_IMPORT_FLAG: - "RESET_DATASOURCE_CONFIG_FETCHED_FOR_IMPORT_FLAG", - SET_UNCONFIGURED_DATASOURCES: "SET_UNCONFIGURED_DATASOURCES", - SET_WORKSPACE_ID_FOR_IMPORT: "SET_WORKSPACE_ID_FOR_IMPORT", - SET_PAGE_ID_FOR_IMPORT: "SET_PAGE_ID_FOR_IMPORT", RESET_SSH_KEY_PAIR: "RESET_SSH_KEY_PAIR", GIT_INFO_INIT: "GIT_INFO_INIT", - IMPORT_APPLICATION_FROM_GIT_ERROR: "IMPORT_APPLICATION_FROM_GIT_ERROR", - IMPORT_APPLICATION_FROM_GIT_SUCCESS: "IMPORT_APPLICATION_FROM_GIT_SUCCESS", - IMPORT_APPLICATION_FROM_GIT_STATUS_RESET: - "IMPORT_APPLICATION_FROM_GIT_STATUS_RESET", - UPDATE_DATASOURCE_IMPORT_SUCCESS: "UPDATE_DATASOURCE_IMPORT_SUCCESS", - INIT_DATASOURCE_CONNECTION_DURING_IMPORT_REQUEST: - "INIT_DATASOURCE_CONNECTION_DURING_IMPORT_REQUEST", - INIT_DATASOURCE_CONNECTION_DURING_IMPORT_SUCCESS: - "INIT_DATASOURCE_CONNECTION_DURING_IMPORT_SUCCESS", - SET_ENTITY_INFO: "SET_ENTITY_INFO", - UPDATE_META_STATE: "UPDATE_META_STATE", REVOKE_GIT: "REVOKE_GIT", SHOW_CONNECT_GIT_MODAL: "SHOW_CONNECT_GIT_MODAL", SET_SHOULD_SHOW_REPO_LIMIT_ERROR_MODAL: @@ -82,7 +117,6 @@ const ActionTypes = { RESET_PULL_MERGE_STATUS: "RESET_PULL_MERGE_STATUS", GIT_PULL_INIT: "GIT_PULL_INIT", GIT_PULL_SUCCESS: "GIT_PULL_SUCCESS", - SET_APP_VERSION_ON_WORKER: "SET_APP_VERSION_ON_WORKER", CLEAR_COMMIT_ERROR_STATE: "CLEAR_COMMIT_ERROR_STATE", CLEAR_COMMIT_SUCCESSFUL_STATE: "CLEAR_COMMIT_SUCCESSFUL_STATE", FETCH_MERGE_STATUS_INIT: "FETCH_MERGE_STATUS_INIT", @@ -95,8 +129,6 @@ const ActionTypes = { UPDATE_BRANCH_LOCALLY: "UPDATE_BRANCH_LOCALLY", FETCH_BRANCHES_INIT: "FETCH_BRANCHES_INIT", FETCH_BRANCHES_SUCCESS: "FETCH_BRANCHES_SUCCESS", - APP_COLLAB_SET_CONCURRENT_PAGE_EDITORS: - "APP_COLLAB_SET_CONCURRENT_PAGE_EDITORS", FETCH_SSH_KEY_PAIR_INIT: "FETCH_SSH_KEY_PAIR_INIT", INIT_SSH_KEY_PAIR_WITH_NULL: "INIT_SSH_KEY_PAIR_WITH_NULL", FETCH_SSH_KEY_PAIR_SUCCESS: "FETCH_SSH_KEY_PAIR_SUCCESS", @@ -122,7 +154,6 @@ const ActionTypes = { PUSH_TO_GIT_INIT: "PUSH_TO_GIT_INIT", PUSH_TO_GIT_SUCCESS: "PUSH_TO_GIT_SUCCESS", SET_IS_GIT_SYNC_MODAL_OPEN: "SET_IS_GIT_SYNC_MODAL_OPEN", - GIT_UPDATE_DEFAULT_BRANCH_INIT: "GIT_UPDATE_DEFAULT_BRANCH_INIT", GIT_UPDATE_DEFAULT_BRANCH_SUCCESS: "GIT_UPDATE_DEFAULT_BRANCH_SUCCESS", GIT_UPDATE_DEFAULT_BRANCH_ERROR: "GIT_UPDATE_DEFAULT_BRANCH_ERROR", @@ -147,9 +178,138 @@ const ActionTypes = { GIT_GET_METADATA_INIT: "GIT_GET_METADATA_INIT", GIT_GET_METADATA_SUCCESS: "GIT_GET_METADATA_SUCCESS", GIT_SHOW_BRANCH_POPUP: "GIT_SHOW_BRANCH_POPUP", - GIT_SET_SETTINGS_MODAL_OPEN: "GIT_SET_SETTINGS_MODAL_OPEN", + GENERATE_SSH_KEY_PAIR_INIT: "GENERATE_SSH_KEY_PAIR_INIT", + SET_REMOTE_URL_INPUT_VALUE: "SET_REMOTE_URL_INPUT_VALUE", + GENERATE_SSH_KEY_PAIR_SUCCESS: "GENERATE_SSH_KEY_PAIR_SUCCESS", + SET_PROTECTED_MODE: "SET_PROTECTED_MODE", + SET_DISCONNECTING_GIT_APPLICATION: "SET_DISCONNECTING_GIT_APPLICATION", +}; + +const GitActionErrorTypes = { + GIT_DISCARD_CHANGES_ERROR: "GIT_DISCARD_CHANGES_ERROR", + DELETE_BRANCH_WARNING: "DELETE_BRANCH_WARNING", + DELETE_BRANCH_ERROR: "DELETE_BRANCH_ERROR", + GIT_PULL_ERROR: "GIT_PULL_ERROR", + FETCH_MERGE_STATUS_ERROR: "FETCH_MERGE_STATUS_ERROR", + MERGE_BRANCH_ERROR: "MERGE_BRANCH_ERROR", + FETCH_GIT_STATUS_ERROR: "FETCH_GIT_STATUS_ERROR", + CREATE_NEW_BRANCH_ERROR: "CREATE_NEW_BRANCH_ERROR", + CHECKOUT_BRANCH_ERROR: "CHECKOUT_BRANCH_ERROR", + FETCH_BRANCHES_ERROR: "FETCH_BRANCHES_ERROR", + FETCH_LOCAL_GIT_CONFIG_ERROR: "FETCH_LOCAL_GIT_CONFIG_ERROR", + UPDATE_LOCAL_GIT_CONFIG_ERROR: "UPDATE_LOCAL_GIT_CONFIG_ERROR", + PUSH_TO_GIT_ERROR: "PUSH_TO_GIT_ERROR", + FETCH_SSH_KEY_PAIR_ERROR: "FETCH_SSH_KEY_PAIR_ERROR", + UPDATE_GLOBAL_GIT_CONFIG_ERROR: "UPDATE_GLOBAL_GIT_CONFIG_ERROR", + FETCH_GLOBAL_GIT_CONFIG_ERROR: "FETCH_GLOBAL_GIT_CONFIG_ERROR", + CONNECT_TO_GIT_ERROR: "CONNECT_TO_GIT_ERROR", + DISCONNECT_TO_GIT_ERROR: "DISCONNECT_TO_GIT_ERROR", + COMMIT_TO_GIT_REPO_ERROR: "COMMIT_TO_GIT_REPO_ERROR", + GIT_TOGGLE_AUTOCOMMIT_ENABLED_ERROR: "GIT_TOGGLE_AUTOCOMMIT_ENABLED_ERROR", + GIT_AUTOCOMMIT_PROGRESS_POLLING_ERROR: + "GIT_AUTOCOMMIT_PROGRESS_POLLING_ERROR", + GIT_AUTOCOMMIT_TRIGGER_ERROR: "GIT_AUTOCOMMIT_TRIGGER_ERROR", + GIT_GET_METADATA_ERROR: "GIT_GET_METADATA_ERROR", +}; + +const ImportExportActionTypes = { + SHOW_RECONNECT_DATASOURCE_MODAL: "SHOW_RECONNECT_DATASOURCE_MODAL", + RESET_UNCONCONFIGURED_DATASOURCES_LIST_DURING_IMPORT: + "RESET_UNCONCONFIGURED_DATASOURCES_LIST_DURING_IMPORT", + RESET_DATASOURCE_CONFIG_FETCHED_FOR_IMPORT_FLAG: + "RESET_DATASOURCE_CONFIG_FETCHED_FOR_IMPORT_FLAG", + SET_UNCONFIGURED_DATASOURCES: "SET_UNCONFIGURED_DATASOURCES", + SET_WORKSPACE_ID_FOR_IMPORT: "SET_WORKSPACE_ID_FOR_IMPORT", + SET_PAGE_ID_FOR_IMPORT: "SET_PAGE_ID_FOR_IMPORT", + UPDATE_DATASOURCE_IMPORT_SUCCESS: "UPDATE_DATASOURCE_IMPORT_SUCCESS", + INIT_DATASOURCE_CONNECTION_DURING_IMPORT_REQUEST: + "INIT_DATASOURCE_CONNECTION_DURING_IMPORT_REQUEST", + INIT_DATASOURCE_CONNECTION_DURING_IMPORT_SUCCESS: + "INIT_DATASOURCE_CONNECTION_DURING_IMPORT_SUCCESS", + SET_IS_RECONNECTING_DATASOURCES_MODAL_OPEN: + "SET_IS_RECONNECTING_DATASOURCES_MODAL_OPEN", + PARTIAL_IMPORT_MODAL_OPEN: "PARTIAL_IMPORT_MODAL_OPEN", + PARTIAL_IMPORT_INIT: "PARTIAL_IMPORT_INIT", + PARTIAL_IMPORT_SUCCESS: "PARTIAL_IMPORT_SUCCESS", + PARTIAL_EXPORT_MODAL_OPEN: "PARTIAL_EXPORT_MODAL_OPEN", + PARTIAL_EXPORT_INIT: "PARTIAL_EXPORT_INIT", + PARTIAL_EXPORT_SUCCESS: "PARTIAL_EXPORT_SUCCESS", + IMPORT_APPLICATION_INIT: "IMPORT_APPLICATION_INIT", + IMPORT_APPLICATION_FROM_GIT_INIT: "IMPORT_APPLICATION_FROM_GIT_INIT", + IMPORT_APPLICATION_SUCCESS: "IMPORT_APPLICATION_SUCCESS", + RESET_IMPORT_DATA: "RESET_IMPORT_DATA", +}; + +const ImportExportActionErrorTypes = { + IMPORT_APPLICATION_ERROR: "IMPORT_APPLICATION_ERROR", + PARTIAL_IMPORT_ERROR: "PARTIAL_IMPORT_ERROR", + PARTIAL_EXPORT_ERROR: "PARTIAL_EXPORT_ERROR", +}; + +const ImportGitActionTypes = { + IMPORT_APPLICATION_FROM_GIT_ERROR: "IMPORT_APPLICATION_FROM_GIT_ERROR", + IMPORT_APPLICATION_FROM_GIT_SUCCESS: "IMPORT_APPLICATION_FROM_GIT_SUCCESS", + IMPORT_APPLICATION_FROM_GIT_STATUS_RESET: + "IMPORT_APPLICATION_FROM_GIT_STATUS_RESET", +}; + +const ExplorerActionTypes = { + SET_ENTITY_INFO: "SET_ENTITY_INFO", + INIT_EXPLORER_ENTITY_NAME_EDIT: "INIT_EXPLORER_ENTITY_NAME_EDIT", + END_EXPLORER_ENTITY_NAME_EDIT: "END_EXPLORER_ENTITY_NAME_EDIT", + SET_CANVAS_CARDS_STATE: "SET_CANVAS_TOP_SECTION_VISIBILITY", + DELETE_CANVAS_CARDS_STATE: "DELETE_CANVAS_CARDS_STATE", + UPDATE_EXPLORER_WIDTH: "UPDATE_EXPLORER_WIDTH", +}; + +const MetaEvaluationActionTypes = { + UPDATE_META_STATE: "UPDATE_META_STATE", + BATCH_UPDATE_META_PROPS: "BATCH_UPDATE_META_PROPS", + SET_META_PROP: "SET_META_PROP", + SET_META_PROP_AND_EVAL: "SET_META_PROP_AND_EVAL", + META_UPDATE_DEBOUNCED_EVAL: "META_UPDATE_DEBOUNCED_EVAL", + RESET_CHILDREN_WIDGET_META: "RESET_CHILDREN_WIDGET_META", + RESET_WIDGET_META: "RESET_WIDGET_META", + RESET_WIDGET_META_UPDATES: "RESET_WIDGET_META_UPDATES", + RESET_WIDGET_META_EVALUATED: "RESET_WIDGET_META_EVALUATED", + RESET_WIDGETS_META_STATE: "RESET_WIDGETS_META_STATE", +}; + +const EvaluationActionTypes = { + ...MetaEvaluationActionTypes, + SET_APP_VERSION_ON_WORKER: "SET_APP_VERSION_ON_WORKER", + FETCH_ALL_PAGE_ENTITY_COMPLETION: "FETCH_ALL_PAGE_ENTITY_COMPLETION", + SET_URL_DATA: "SET_URL_DATA", + SET_APP_MODE: "SET_APP_MODE", + UPDATE_APP_STORE: "UPDATE_APP_STORE", + SET_EVALUATED_TREE: "SET_EVALUATED_TREE", + SET_EVALUATION_INVERSE_DEPENDENCY_MAP: + "SET_EVALUATION_INVERSE_DEPENDENCY_MAP", + START_EVALUATION: "START_EVALUATION", + SET_LOADING_ENTITIES: "SET_LOADING_ENTITIES", + UPDATE_REPLAY_ENTITY: "UPDATE_REPLAY_ENTITY", + SET_USER_CURRENT_GEO_LOCATION: "SET_USER_CURRENT_GEO_LOCATION", + SET_LINT_ERRORS: "SET_LINT_ERRORS", + LINT_TREE: "LINT_TREE", + UPDATE_LINT_GLOBALS: "UPDATE_LINT_GLOBALS", + RESET_DATA_TREE: "RESET_DATA_TREE", + BUFFERED_ACTION: "BUFFERED_ACTION", + CLEAR_CACHE: "CLEAR_CACHE", + TRIGGER_EVAL: "TRIGGER_EVAL", + UPDATE_ACTION_DATA: "UPDATE_ACTION_DATA", + SET_ACTIVE_EDITOR_FIELD: "SET_ACTIVE_EDITOR_FIELD", + RESET_ACTIVE_EDITOR_FIELD: "RESET_ACTIVE_EDITOR_FIELD", + LINT_SETUP: "LINT_SETUP", +}; + +const EvaluationActionErrorTypes = { + FAILED_CORRECTING_BINDING_PATHS: "FAILED_CORRECTING_BINDING_PATHS", +}; +const AppCollabActionTypes = { + APP_COLLAB_SET_CONCURRENT_PAGE_EDITORS: + "APP_COLLAB_SET_CONCURRENT_PAGE_EDITORS", APP_COLLAB_LIST_EDITORS: "APP_COLLAB_LIST_EDITORS", APP_COLLAB_RESET_EDITORS: "APP_COLLAB_RESET_EDITORS", APP_COLLAB_SET_EDITORS_POINTER_DATA: "APP_COLLAB_SET_EDITORS_POINTER_DATA", @@ -157,62 +317,381 @@ const ActionTypes = { "APP_COLLAB_UNSET_EDITORS_POINTER_DATA", APP_COLLAB_RESET_EDITORS_POINTER_DATA: "APP_COLLAB_RESET_EDITORS_POINTER_DATA", +}; + +const OmniSearchActionTypes = { SET_SEARCH_FILTER_CONTEXT: "SET_SEARCH_FILTER_CONTEXT", - INSERT_SNIPPET: "INSERT_SNIPPET", - CANCEL_SNIPPET: "CANCEL_SNIPPET", + SET_GLOBAL_SEARCH_QUERY: "SET_GLOBAL_SEARCH_QUERY", + SET_GLOBAL_SEARCH_CATEGORY: "SET_GLOBAL_SEARCH_CATEGORY", + TOGGLE_SHOW_GLOBAL_SEARCH_MODAL: "TOGGLE_SHOW_GLOBAL_SEARCH_MODAL", + RESTORE_RECENT_ENTITIES_REQUEST: "RESTORE_RECENT_ENTITIES_REQUEST", + RESTORE_RECENT_ENTITIES_SUCCESS: "RESTORE_RECENT_ENTITIES_SUCCESS", + SET_RECENT_ENTITIES: "SET_RECENT_ENTITIES", + RESET_RECENT_ENTITIES: "RESET_RECENT_ENTITIES", +}; + +const FeatureFlagActionTypes = { FETCH_FEATURE_FLAGS_INIT: "FETCH_FEATURE_FLAGS_INIT", FETCH_FEATURE_FLAGS_SUCCESS: "FETCH_FEATURE_FLAGS_SUCCESS", FETCH_OVERRIDDEN_FEATURE_FLAGS: "FETCH_OVERRIDDEN_FEATURE_FLAGS", UPDATE_OVERRIDDEN_FEATURE_FLAGS: "UPDATE_OVERRIDDEN_FEATURE_FLAGS", +}; + +const FeatureFlagActionErrorTypes = { + FETCH_FEATURE_FLAGS_ERROR: "FETCH_FEATURE_FLAGS_ERROR", +}; + +const SnippingModeActionTypes = { BIND_DATA_TO_WIDGET: "BIND_DATA_TO_WIDGET", BIND_DATA_ON_CANVAS: "BIND_DATA_ON_CANVAS", - UPLOAD_PROFILE_PHOTO: "UPLOAD_PROFILE_PHOTO", - REMOVE_PROFILE_PHOTO: "REMOVE_PROFILE_PHOTO", - UPDATE_PHOTO_ID: "UPDATE_PHOTO_ID", - PROCEED_TO_NEXT_TOUR_STEP: "PROCEED_TO_NEXT_TOUR_STEP", - SET_ACTIVE_TOUR: "SET_ACTIVE_TOUR", - RESET_ACTIVE_TOUR: "RESET_ACTIVE_TOUR", - SET_ACTIVE_TOUR_INDEX: "SET_ACTIVE_TOUR_INDEX", - INIT_APP_LEVEL_SOCKET_CONNECTION: "INIT_APP_LEVEL_SOCKET_CONNECTION", - INIT_PAGE_LEVEL_SOCKET_CONNECTION: "INIT_PAGE_LEVEL_SOCKET_CONNECTION", - SET_IS_APP_LEVEL_WEBSOCKET_CONNECTED: "SET_IS_APP_LEVEL_WEBSOCKET_CONNECTED", - SET_IS_PAGE_LEVEL_WEBSOCKET_CONNECTED: - "SET_IS_PAGE_LEVEL_WEBSOCKET_CONNECTED", SET_SNIPING_MODE: "SET_SNIPING_MODE", RESET_SNIPING_MODE: "RESET_SNIPING_MODE", - RESET_EDITOR_REQUEST: "RESET_EDITOR_REQUEST", - RESET_EDITOR_SUCCESS: "RESET_EDITOR_SUCCESS", - INITIALIZE_CURRENT_PAGE: "INITIALIZE_CURRENT_PAGE", - INITIALIZE_EDITOR: "INITIALIZE_EDITOR", - INITIALIZE_EDITOR_SUCCESS: "INITIALIZE_EDITOR_SUCCESS", - REPORT_ERROR: "REPORT_ERROR", - FLUSH_ERRORS: "FLUSH_ERRORS", - FLUSH_AND_REDIRECT: "FLUSH_AND_REDIRECT", - SAFE_CRASH_APPSMITH: "SAFE_CRASH_APPSMITH", - SAFE_CRASH_APPSMITH_REQUEST: "SAFE_CRASH_APPSMITH_REQUEST", - INIT_CANVAS_LAYOUT: "INIT_CANVAS_LAYOUT", - FETCH_CANVAS: "FETCH_CANVAS", - CLEAR_CANVAS: "CLEAR_CANVAS", - FETCH_PAGE_INIT: "FETCH_PAGE_INIT", - FETCH_PAGE_SUCCESS: "FETCH_PAGE_SUCCESS", - FETCH_ALL_PAGE_ENTITY_COMPLETION: "FETCH_ALL_PAGE_ENTITY_COMPLETION", - DROP_WIDGET_CANVAS: "DROP_WIDGET_CANVAS", - REMOVE_WIDGET_CANVAS: "REMOVE_WIDGET_CANVAS", - LOAD_WIDGET_PANE: "LOAD_WIDGET_PANE", - ZOOM_IN_CANVAS: "ZOOM_IN_CANVAS", - ZOOM_OUT_CANVAS: "ZOOM_OUT_CANVAS", +}; + +const UserAuthActionTypes = { + CREATE_USER_INIT: "CREATE_USER_INIT", + CREATE_USER_SUCCESS: "CREATE_USER_SUCCESS", + RESET_USER_PASSWORD_INIT: "RESET_USER_PASSWORD_INIT", + RESET_USER_PASSWORD_SUCCESS: "RESET_USER_PASSWORD_SUCCESS", + FORGOT_PASSWORD_INIT: "FORGOT_PASSWORD_INIT", + FORGOT_PASSWORD_SUCCESS: "FORGOT_PASSWORD_SUCCESS", + RESET_PASSWORD_VERIFY_TOKEN_SUCCESS: "RESET_PASSWORD_VERIFY_TOKEN_SUCCESS", + RESET_PASSWORD_VERIFY_TOKEN_INIT: "RESET_PASSWORD_VERIFY_TOKEN_INIT", + FETCH_USER_INIT: "FETCH_USER_INIT", + FETCH_USER_SUCCESS: "FETCH_USER_SUCCESS", + LOGOUT_USER_INIT: "LOGOUT_USER_INIT", + LOGOUT_USER_SUCCESS: "LOGOUT_USER_SUCCESS", + VERIFY_INVITE_INIT: "VERIFY_INVITE_INIT", + VERIFY_INVITE_SUCCESS: "VERIFY_INVITE_SUCCESS", + INVITED_USER_SIGNUP_INIT: "INVITED_USER_SIGNUP_INIT", + INVITED_USER_SIGNUP_SUCCESS: "INVITED_USER_SIGNUP_SUCCESS", + SAAS_GET_OAUTH_ACCESS_TOKEN: "SAAS_GET_OAUTH_ACCESS_TOKEN", + GET_OAUTH_ACCESS_TOKEN: "GET_OAUTH_ACCESS_TOKEN", + GET_OAUTH_ACCESS_TOKEN_SUCCESS: "GET_OAUTH_ACCESS_TOKEN_SUCCESS", + GET_OAUTH_ACCESS_TOKEN_ERROR: "GET_OAUTH_ACCESS_TOKEN_ERROR", +}; +const UserAuthActionErrorTypes = { + CREATE_USER_ERROR: "CREATE_USER_ERROR", + RESET_USER_PASSWORD_ERROR: "RESET_USER_PASSWORD_ERROR", + FORGOT_PASSWORD_ERROR: "FORGOT_PASSWORD_ERROR", + RESET_PASSWORD_VERIFY_TOKEN_ERROR: "RESET_PASSWORD_VERIFY_TOKEN_ERROR", + FETCH_USER_ERROR: "FETCH_USER_ERROR", + LOGOUT_USER_ERROR: "LOGOUT_USER_ERROR", + VERIFY_INVITE_ERROR: "VERIFY_INVITE_ERROR", + INVITED_USER_SIGNUP_ERROR: "INVITED_USER_SIGNUP_ERROR", +}; + +const UserProfileActionTypes = { + UPLOAD_PROFILE_PHOTO: "UPLOAD_PROFILE_PHOTO", + REMOVE_PROFILE_PHOTO: "REMOVE_PROFILE_PHOTO", + UPDATE_PHOTO_ID: "UPDATE_PHOTO_ID", + UPDATE_USER_DETAILS_INIT: "UPDATE_USER_DETAILS_INIT", + UPDATE_USER_DETAILS_SUCCESS: "UPDATE_USER_DETAILS_SUCCESS", +}; + +const UserProfileActionErrorTypes = { + UPDATE_USER_DETAILS_ERROR: "UPDATE_USER_DETAILS_ERROR", + USER_PROFILE_PICTURE_UPLOAD_FAILED: "USER_PROFILE_PICTURE_UPLOAD_FAILED", + USER_IMAGE_INVALID_FILE_CONTENT: "USER_IMAGE_INVALID_FILE_CONTENT", +}; + +const OnboardingActionTypes = { + PROCEED_TO_NEXT_TOUR_STEP: "PROCEED_TO_NEXT_TOUR_STEP", + SET_ACTIVE_TOUR: "SET_ACTIVE_TOUR", + RESET_ACTIVE_TOUR: "RESET_ACTIVE_TOUR", + SET_ACTIVE_TOUR_INDEX: "SET_ACTIVE_TOUR_INDEX", + TOGGLE_ONBOARDING_WIDGET_SELECTION: "TOGGLE_ONBOARDING_WIDGET_SELECTION", + DISABLE_START_SIGNPOSTING: "DISABLE_START_SIGNPOSTING", + REMOVE_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID: + "REMOVE_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID", + SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID: + "SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID", + SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_IDS: + "SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_IDS", + SET_FIRST_TIME_USER_ONBOARDING_COMPLETE: + "SET_FIRST_TIME_USER_ONBOARDING_COMPLETE", + SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL: + "SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL", + SET_FORCE_WIDGET_PANEL_OPEN: "SET_FORCE_WIDGET_PANEL_OPEN", + END_FIRST_TIME_USER_ONBOARDING: "END_FIRST_TIME_USER_ONBOARDING", + UNDO_END_FIRST_TIME_USER_ONBOARDING: "UNDO_END_FIRST_TIME_USER_ONBOARDING", + SET_SIGNPOSTING_OVERLAY: "SET_SIGNPOSTING_OVERLAY", + SIGNPOSTING_MARK_ALL_READ: "SIGNPOSTING_MARK_ALL_READ", + SIGNPOSTING_STEP_UPDATE_INIT: "SIGNPOSTING_STEP_UPDATE_INIT", + SIGNPOSTING_STEP_UPDATE: "SIGNPOSTING_STEP_UPDATE", + SIGNPOSTING_SHOW_TOOLTIP: "SIGNPOSTING_SHOW_TOOLTIP", + SHOW_ANONYMOUS_DATA_POPUP: "SHOW_ANONYMOUS_DATA_POPUP", + FIRST_TIME_USER_ONBOARDING_INIT: "FIRST_TIME_USER_ONBOARDING_INIT", + SET_USER_ROLE_USECASE: "SET_USER_ROLE_USECASE", + SHOW_INFO_MESSAGE: "SHOW_INFO_MESSAGE", + SET_CURRENT_APPLICATION_ID_FOR_CREATE_NEW_APP: + "SET_CURRENT_APPLICATION_ID_FOR_CREATE_NEW_APP", + RESET_CURRENT_APPLICATION_ID_FOR_CREATE_NEW_APP: + "RESET_CURRENT_APPLICATION_ID_FOR_CREATE_NEW_APP", + SET_CURRENT_PLUGIN_ID_FOR_CREATE_NEW_APP: + "SET_CURRENT_PLUGIN_ID_FOR_CREATE_NEW_APP", + RESET_CURRENT_PLUGIN_ID_FOR_CREATE_NEW_APP: + "RESET_CURRENT_PLUGIN_ID_FOR_CREATE_NEW_APP", +}; + +const IDEActionTypes = { + RESET_EDITOR_REQUEST: "RESET_EDITOR_REQUEST", + RESET_EDITOR_SUCCESS: "RESET_EDITOR_SUCCESS", + INITIALIZE_CURRENT_PAGE: "INITIALIZE_CURRENT_PAGE", + INITIALIZE_EDITOR: "INITIALIZE_EDITOR", + INITIALIZE_EDITOR_SUCCESS: "INITIALIZE_EDITOR_SUCCESS", + INITIALIZE_PAGE_VIEWER: "INITIALIZE_PAGE_VIEWER", + INITIALIZE_PAGE_VIEWER_SUCCESS: "INITIALIZE_PAGE_VIEWER_SUCCESS", + SET_EXPLORER_PINNED: "SET_EXPLORER_PINNED", + SET_EXPLORER_ACTIVE: "SET_EXPLORER_ACTIVE", + SET_PREVIEW_MODE: "SET_PREVIEW_MODE", + SET_PREVIEW_MODE_INIT: "SET_PREVIEW_MODE_INIT", + ENTITY_UPDATE_STARTED: "ENTITY_UPDATE_STARTED", + ENTITY_UPDATE_SUCCESS: "ENTITY_UPDATE_SUCCESS", + SET_FOCUS_HISTORY: "SET_FOCUS_HISTORY", + REMOVE_FOCUS_HISTORY: "REMOVE_FOCUS_HISTORY", + SET_FOCUSABLE_PROPERTY_FIELD: "SET_FOCUSABLE_PROPERTY_FIELD", + ROUTE_CHANGED: "ROUTE_CHANGED", + SET_API_PANE_CONFIG_SELECTED_TAB: "SET_API_PANE_CONFIG_SELECTED_TAB", + SET_API_RIGHT_PANE_SELECTED_TAB: "SET_API_RIGHT_PANE_SELECTED_TAB", + SET_EDITOR_FIELD_FOCUS: "SET_EDITOR_FIELD_FOCUS", + SET_FOCUSABLE_INPUT_FIELD: "SET_FOCUSABLE_INPUT_FIELD", + SET_CODE_EDITOR_CURSOR: "SET_CODE_EDITOR_CURSOR", + SET_CODE_EDITOR_CURSOR_HISTORY: "SET_CODE_EDITOR_CURSOR_HISTORY", + SET_EVAL_POPUP_STATE: "SET_EVAL_POPUP_STATE", + APPEND_SELECTED_WIDGET_TO_URL: "APPEND_SELECTED_WIDGET_TO_URL", + SET_ALL_PROPERTY_SECTION_STATE: "SET_ALL_PROPERTY_SECTION_STATE", + SET_PROPERTY_SECTION_STATE: "SET_PROPERTY_SECTION_STATE", + SET_SELECTED_PROPERTY_TAB_INDEX: "SET_SELECTED_PROPERTY_TAB_INDEX", + SET_QUERY_PANE_CONFIG_SELECTED_TAB: "SET_QUERY_PANE_CONFIG_SELECTED_TAB", + SET_JS_PANE_CONFIG_SELECTED_TAB: "SET_JS_PANE_CONFIG_SELECTED_TAB", + SET_SELECTED_PANEL_PROPERTY: "SET_SELECTED_PANEL_PROPERTY", + UNSET_SELECTED_PANEL_PROPERTY: "UNSET_SELECTED_PANEL_PROPERTY", + SET_SELECTED_PANELS: "SET_SELECTED_PANELS", + SET_PANEL_SELECTED_PROPERTY_TAB_INDEX: + "SET_PANEL_SELECTED_PROPERTY_TAB_INDEX", + SET_PANEL_PROPERTY_SECTION_STATE: "SET_PANEL_PROPERTY_SECTION_STATE", + SET_WIDGET_SELECTED_PROPERTY_TAB_INDEX: + "SET_WIDGET_SELECTED_PROPERTY_TAB_INDEX", + SET_WIDGET_PROPERTY_SECTION_STATE: "SET_WIDGET_PROPERTY_SECTION_STATE", + SET_PANEL_PROPERTIES_STATE: "SET_PANEL_PROPERTIES_STATE", + SET_ENTITY_COLLAPSIBLE_STATE: "SET_ENTITY_COLLAPSIBLE_STATE", + SET_ALL_ENTITY_COLLAPSIBLE_STATE: "SET_ALL_ENTITY_COLLAPSIBLE_STATE", + SET_ALL_SUB_ENTITY_COLLAPSIBLE_STATE: "SET_ALL_SUB_ENTITY_COLLAPSIBLE_STATE", + SET_EXPLORER_SWITCH_INDEX: "SET_EXPLORER_SWITCH_INDEX", + WIDGET_INIT_SUCCESS: "WIDGET_INIT_SUCCESS", + SETUP_PAGE_INIT: "SETUP_PAGE_INIT", + SETUP_PAGE_SUCCESS: "SETUP_PAGE_SUCCESS", + SETUP_PUBLISHED_PAGE_INIT: "SETUP_PUBLISHED_PAGE_INIT", + SETUP_PUBLISHED_PAGE_SUCCESS: "SETUP_PUBLISHED_PAGE_SUCCESS", + SET_IDE_EDITOR_VIEW_MODE: "SET_IDE_EDITOR_VIEW_MODE", + RESTORE_IDE_EDITOR_VIEW_MODE: "RESTORE_IDE_EDITOR_VIEW_MODE", + SET_IDE_JS_TABS: "SET_IDE_JS_TABS", + SET_IDE_QUERIES_TABS: "SET_IDE_QUERIES_TABS", + SET_SHOW_QUERY_CREATE_NEW_MODAL: "SET_SHOW_QUERY_CREATE_NEW_MODAL", + SET_WIDGET_SELECTION_BLOCK: "SET_WIDGET_SELECTION_BLOCK", + ALT_FOCUS_WIDGET: "ALT_FOCUS_WIDGET", + CREATE_NEW_JS_FROM_ACTION_CREATOR: "CREATE_NEW_JS_FROM_ACTION_CREATOR", + CREATE_NEW_QUERY_FROM_ACTION_CREATOR: "CREATE_NEW_QUERY_FROM_ACTION_CREATOR", + CLOSE_JS_ACTION_TAB: "CLOSE_JS_ACTION_TAB", + CLOSE_JS_ACTION_TAB_SUCCESS: "CLOSE_JS_ACTION_TAB_SUCCESS", + CLOSE_QUERY_ACTION_TAB: "CLOSE_QUERY_ACTION_TAB", + CLOSE_QUERY_ACTION_TAB_SUCCESS: "CLOSE_QUERY_ACTION_TAB_SUCCESS", +}; + +const IDEActionErrorTypes = { + SETUP_PAGE_ERROR: "SETUP_PAGE_ERROR", + SETUP_PUBLISHED_PAGE_ERROR: "SETUP_PUBLISHED_PAGE_ERROR", +}; + +const ErrorManagementActionTypes = { + REPORT_ERROR: "REPORT_ERROR", + FLUSH_ERRORS: "FLUSH_ERRORS", + FLUSH_AND_REDIRECT: "FLUSH_AND_REDIRECT", + SAFE_CRASH_APPSMITH: "SAFE_CRASH_APPSMITH", + SAFE_CRASH_APPSMITH_REQUEST: "SAFE_CRASH_APPSMITH_REQUEST", +}; + +const WidgetReflowActionTypes = { + STOP_REFLOW: "STOP_REFLOW", + REFLOW_MOVE: "REFLOW_MOVE", +}; + +const WidgetCanvasActionTypes = { + ...WidgetReflowActionTypes, + INIT_CANVAS_LAYOUT: "INIT_CANVAS_LAYOUT", START_CANVAS_SELECTION_FROM_EDITOR: "START_CANVAS_SELECTION_FROM_EDITOR", STOP_CANVAS_SELECTION_FROM_EDITOR: "STOP_CANVAS_SELECTION_FROM_EDITOR", START_CANVAS_SELECTION: "START_CANVAS_SELECTION", STOP_CANVAS_SELECTION: "STOP_CANVAS_SELECTION", - UNDO_CANVAS_ACTION: "UNDO_CANVAS_ACTION", - REDO_CANVAS_ACTION: "REDO_CANVAS_ACTION", - LOAD_WIDGET_CONFIG: "LOAD_WIDGET_CONFIG", - LOAD_PROPERTY_CONFIG: "LOAD_PROPERTY_CONFIG", + WIDGET_ADD_CHILD: "WIDGET_ADD_CHILD", + WIDGET_CHILD_ADDED: "WIDGET_CHILD_ADDED", + WIDGET_REMOVE_CHILD: "WIDGET_REMOVE_CHILD", + WIDGETS_MOVE: "WIDGETS_MOVE", + WIDGETS_ADD_CHILD_AND_MOVE: "WIDGETS_ADD_CHILD_AND_MOVE", + WIDGET_RESIZE: "WIDGET_RESIZE", + WIDGET_DELETE: "WIDGET_DELETE", + WIDGET_BULK_DELETE: "WIDGET_BULK_DELETE", + WIDGET_SINGLE_DELETE: "WIDGET_SINGLE_DELETE", + UPDATE_CANVAS_LAYOUT: "UPDATE_CANVAS_LAYOUT", + DISABLE_WIDGET_DRAG: "DISABLE_WIDGET_DRAG", + SELECT_WIDGET_INIT: "SELECT_WIDGET_INIT", + FOCUS_WIDGET: "FOCUS_WIDGET", + SET_SELECTED_WIDGETS: "SET_SELECTED_WIDGETS", + SET_LAST_SELECTED_WIDGET: "SET_LAST_SELECTED_WIDGET", + SET_WIDGET_DRAGGING: "SET_WIDGET_DRAGGING", + SET_DRAGGING_CANVAS: "SET_DRAGGING_CANVAS", + SET_NEW_WIDGET_DRAGGING: "SET_NEW_WIDGET_DRAGGING", + SET_WIDGET_RESIZING: "SET_WIDGET_RESIZING", + SET_AUTO_CANVAS_RESIZING: "SET_AUTO_CANVAS_RESIZING", + ADD_SUGGESTED_WIDGET: "ADD_SUGGESTED_WIDGET", + MODIFY_META_WIDGETS: "MODIFY_META_WIDGETS", + DELETE_META_WIDGETS: "DELETE_META_WIDGETS", + UPDATE_META_WIDGET_PROPERTY: "UPDATE_META_WIDGET_PROPERTY", + SHOW_MODAL: "SHOW_MODAL", + SHOW_MODAL_BY_NAME: "SHOW_MODAL_BY_NAME", + CLOSE_MODAL: "CLOSE_MODAL", + CREATE_MODAL_INIT: "CREATE_MODAL_INIT", + CREATE_MODAL_SUCCESS: "CREATE_MODAL_SUCCESS", + UPDATE_CANVAS_SIZE: "UPDATE_CANVAS_SIZE", + POPULATE_PAGEDSLS_INIT: "POPULATE_PAGEDSLS_INIT", + POPULATE_PAGEDSLS_SUCCESS: "POPULATE_PAGEDSLS_SUCCESS", + FETCH_PAGE_DSLS_SUCCESS: "FETCH_PAGE_DSLS_SUCCESS", + FETCH_PAGE_DSL_SUCCESS: "FETCH_PAGE_DSL_SUCCESS", + COPY_SELECTED_WIDGET_SUCCESS: "COPY_SELECTED_WIDGET_SUCCESS", + COPY_SELECTED_WIDGET_INIT: "COPY_SELECTED_WIDGET_INIT", + ADD_CANVAS_WIDGET: "ADD_CANVAS_WIDGET", + VERIFY_LAYOUT_SYSTEM_AND_PASTE_WIDGETS: + "VERIFY_LAYOUT_SYSTEM_AND_PASTE_WIDGETS", + PASTE_COPIED_WIDGET_INIT: "PASTE_COPIED_WIDGET_INIT", + PASTE_COPIED_WIDGET_SUCCESS: "PASTE_COPIED_WIDGET_SUCCESS", + CUT_SELECTED_WIDGET: "CUT_SELECTED_WIDGET", + UPDATE_CANVAS_STRUCTURE: "UPDATE_CANVAS_STRUCTURE", + SET_SELECTED_WIDGET_ANCESTRY: "SET_SELECTED_WIDGET_ANCESTRY", + SET_ENTITY_EXPLORER_WIDGET_ANCESTRY: "SET_ENTITY_EXPLORER_WIDGET_ANCESTRY", + SET_WIDGET_LOADING: "SET_WIDGET_LOADING", + SELECT_WIDGETS_IN_AREA: "SELECT_WIDGETS_IN_AREA", + GROUP_WIDGETS_INIT: "GROUP_WIDGETS_INIT", + WIDGET_ADD_NEW_TAB_CHILD: "WIDGET_ADD_NEW_TAB_CHILD", + WIDGET_DELETE_TAB_CHILD: "WIDGET_DELETE_TAB_CHILD", + RECORD_RECENTLY_ADDED_WIDGET: "RECORD_RECENTLY_ADDED_WIDGET", + REMOVE_FROM_RECENTLY_ADDED_WIDGET: "REMOVE_FROM_RECENTLY_ADDED_WIDGET", + SET_AUTO_HEIGHT_LAYOUT_TREE: "SET_AUTO_HEIGHT_LAYOUT_TREE", + UPDATE_MULTIPLE_WIDGET_PROPERTIES: "UPDATE_MULTIPLE_WIDGET_PROPERTIES", + UPDATE_MULTIPLE_META_WIDGET_PROPERTIES: + "UPDATE_MULTIPLE_META_WIDGET_PROPERTIES", + SET_CANVAS_LEVELS_MAP: "SET_CANVAS_LEVELS_MAP", + GENERATE_AUTO_HEIGHT_LAYOUT_TREE: "GENERATE_AUTO_HEIGHT_LAYOUT_TREE", + CHECK_CONTAINERS_FOR_AUTO_HEIGHT: "CHECK_CONTAINERS_FOR_AUTO_HEIGHT", + UPDATE_WIDGET_AUTO_HEIGHT: "UPDATE_WIDGET_AUTO_HEIGHT", + SET_AUTO_HEIGHT_WITH_LIMITS_CHANGING: "SET_AUTO_HEIGHT_WITH_LIMITS_CHANGING", + PROCESS_AUTO_HEIGHT_UPDATES: "PROCESS_AUTO_HEIGHT_UPDATES", + DIRECT_DOM_UPDATE_AUTO_HEIGHT: "DIRECT_DOM_UPDATE_AUTO_HEIGHT", + AUTOLAYOUT_REORDER_WIDGETS: "AUTOLAYOUT_REORDER_WIDGETS", + AUTOLAYOUT_ADD_NEW_WIDGETS: "AUTOLAYOUT_ADD_NEW_WIDGETS", + RECALCULATE_COLUMNS: "RECALCULATE_COLUMNS", + UPDATE_LAYOUT_SYSTEM_TYPE: "UPDATE_LAYOUT_SYSTEM_TYPE", + SET_LAYOUT_CONVERSION_STATE: "SET_LAYOUT_CONVERSION_STATE", + START_CONVERSION_FLOW: "START_CONVERSION_FLOW", + STOP_CONVERSION_FLOW: "STOP_CONVERSION_FLOW", + UPDATE_SNAPSHOT_DETAILS: "UPDATE_SNAPSHOT_DETAILS", + CONVERT_AUTO_TO_FIXED: "CONVERT_AUTO_TO_FIXED", + CONVERT_FIXED_TO_AUTO: "CONVERT_FIXED_TO_AUTO", + REFRESH_THE_APP: "REFRESH_THE_APP", + LOG_LAYOUT_CONVERSION_ERROR: "LOG_LAYOUT_CONVERSION_ERROR", + RESTORE_SNAPSHOT: "RESTORE_SNAPSHOT", + FETCH_LAYOUT_SNAPSHOT_DETAILS: "FETCH_LAYOUT_SNAPSHOT_DETAILS", + DELETE_SNAPSHOT: "DELETE_SNAPSHOT", + UPDATE_WIDGET_DIMENSIONS: "UPDATE_WIDGET_DIMENSIONS", + PROCESS_AUTO_LAYOUT_DIMENSION_UPDATES: + "PROCESS_AUTO_LAYOUT_DIMENSION_UPDATES", + UPDATE_POSITIONS_ON_TAB_CHANGE: "UPDATE_POSITIONS_ON_TAB_CHANGE", +}; + +const WidgetCanvasActionErrorTypes = { + CREATE_MODAL_ERROR: "CREATE_MODAL_ERROR", + POPULATE_PAGEDSLS_ERROR: "POPULATE_PAGEDSLS_ERROR", + FETCH_PAGE_DSL_ERROR: "FETCH_PAGE_DSL_ERROR", + COPY_SELECTED_WIDGET_ERROR: "COPY_SELECTED_WIDGET_ERROR", + PASTE_COPIED_WIDGET_ERROR: "PASTE_COPIED_WIDGET_ERROR", +}; + +const PageActionTypes = { + FETCH_PAGE_INIT: "FETCH_PAGE_INIT", + FETCH_PAGE_SUCCESS: "FETCH_PAGE_SUCCESS", + SAVE_PAGE_INIT: "SAVE_PAGE_INIT", + SAVE_PAGE_SUCCESS: "SAVE_PAGE_SUCCESS", + UPDATE_LAYOUT: "UPDATE_LAYOUT", + CREATE_PAGE_INIT: "CREATE_PAGE_INIT", + CREATE_PAGE_SUCCESS: "CREATE_PAGE_SUCCESS", + FETCH_PAGE_LIST_INIT: "FETCH_PAGE_LIST_INIT", + FETCH_PAGE_LIST_SUCCESS: "FETCH_PAGE_LIST_SUCCESS", + UPDATE_PAGE_LIST: "UPDATE_PAGE_LIST", + CREATE_NEW_PAGE_FROM_ENTITIES: "CREATE_NEW_PAGE_FROM_ENTITIES", + UPDATE_PAGE_INIT: "UPDATE_PAGE_INIT", + UPDATE_PAGE_SUCCESS: "UPDATE_PAGE_SUCCESS", + DELETE_PAGE_INIT: "DELETE_PAGE_INIT", + DELETE_PAGE_SUCCESS: "DELETE_PAGE_SUCCESS", + CLONE_PAGE_INIT: "CLONE_PAGE_INIT", + CLONE_PAGE_SUCCESS: "CLONE_PAGE_SUCCESS", + SET_DEFAULT_APPLICATION_PAGE_INIT: "SET_DEFAULT_APPLICATION_PAGE_INIT", + SET_DEFAULT_APPLICATION_PAGE_SUCCESS: "SET_DEFAULT_APPLICATION_PAGE_SUCCESS", + SWITCH_CURRENT_PAGE_ID: "SWITCH_CURRENT_PAGE_ID", + UNDO_REDO_OPERATION: "UNDO_REDO_OPERATION", + SET_PAGE_ORDER_INIT: "SET_PAGE_ORDER_INIT", + SET_PAGE_ORDER_SUCCESS: "SET_PAGE_ORDER_SUCCESS", + RESET_PAGE_LIST: "RESET_PAGE_LIST", +}; + +const PageActionErrorTypes = { + FETCH_PAGE_ERROR: "FETCH_PAGE_ERROR", + SAVE_PAGE_ERROR: "SAVE_PAGE_ERROR", + CREATE_PAGE_ERROR: "CREATE_PAGE_ERROR", + FETCH_PAGE_LIST_ERROR: "FETCH_PAGE_LIST_ERROR", + UPDATE_PAGE_ERROR: "UPDATE_PAGE_ERROR", + DELETE_PAGE_ERROR: "DELETE_PAGE_ERROR", + CLONE_PAGE_ERROR: "CLONE_PAGE_ERROR", + SET_PAGE_ORDER_ERROR: "SET_PAGE_ORDER_ERROR", +}; + +const ApplicationActionTypes = { UPDATE_APPLICATION: "UPDATE_APPLICATION", UPDATE_APP_LAYOUT: "UPDATE_APP_LAYOUT", UPDATE_APPLICATION_SUCCESS: "UPDATE_APPLICATION_SUCCESS", - PUBLISH: "PUBLISH", + FETCH_APPLICATION_INIT: "FETCH_APPLICATION_INIT", + FETCH_APPLICATION_SUCCESS: "FETCH_APPLICATION_SUCCESS", + CREATE_APPLICATION_INIT: "CREATE_APPLICATION_INIT", + CREATE_APPLICATION_SUCCESS: "CREATE_APPLICATION_SUCCESS", + SET_LAST_UPDATED_TIME: "SET_LAST_UPDATED_TIME", + SEARCH_APPLICATIONS: "SEARCH_APPLICATIONS", + DELETE_APPLICATION_INIT: "DELETE_APPLICATION_INIT", + DELETE_APPLICATION_SUCCESS: "DELETE_APPLICATION_SUCCESS", + CURRENT_APPLICATION_NAME_UPDATE: "CURRENT_APPLICATION_NAME_UPDATE", + CURRENT_APPLICATION_COMMUNITY_TEMPLATE_STATUS_UPDATE: + "CURRENT_APPLICATION_COMMUNITY_TEMPLATE_STATUS_UPDATE", + CURRENT_APPLICATION_LAYOUT_UPDATE: "CURRENT_APPLICATION_LAYOUT_UPDATE", + CURRENT_APPLICATION_ICON_UPDATE: "CURRENT_APPLICATION_ICON_UPDATE", + CURRENT_APPLICATION_EMBED_SETTING_UPDATE: + "CURRENT_APPLICATION_EMBED_SETTING_UPDATE", + UPDATE_NAVIGATION_SETTING: "UPDATE_NAVIGATION_SETTING", + CURRENT_APPLICATION_FORKING_ENABLED_UPDATE: + "CURRENT_APPLICATION_FORKING_ENABLED_UPDATE", + FORK_APPLICATION_INIT: "FORK_APPLICATION_INIT", + FORK_APPLICATION_SUCCESS: "FORK_APPLICATION_SUCCESS", + RESET_CURRENT_APPLICATION: "RESET_CURRENT_APPLICATION", +}; + +const ApplicationActionErrorTypes = { + UPDATE_APPLICATION_ERROR: "UPDATE_APPLICATION_ERROR", + UPDATE_APP_LAYOUT_ERROR: "UPDATE_APP_LAYOUT_ERROR", + FETCH_APPLICATION_ERROR: "FETCH_APPLICATION_ERROR", + CREATE_APPLICATION_ERROR: "CREATE_APPLICATION_ERROR", + DELETE_APPLICATION_ERROR: "DELETE_APPLICATION_ERROR", + SET_DEFAULT_APPLICATION_PAGE_ERROR: "SET_DEFAULT_APPLICATION_PAGE_ERROR", + FORK_APPLICATION_ERROR: "FORK_APPLICATION_ERROR", +}; + +const IDEDebuggerActionTypes = { DEBUGGER_LOG: "DEBUGGER_LOG", DEBUGGER_LOG_INIT: "DEBUGGER_LOG_INIT", DEBUGGER_ERROR_ANALYTICS: "DEBUGGER_ERROR_ANALYTICS", @@ -225,37 +704,135 @@ const ActionTypes = { SHOW_DEBUGGER: "SHOW_DEBUGGER", HIDE_DEBUGGER_ERRORS: "HIDE_DEBUGGER_ERRORS", SET_CURRENT_DEBUGGER_TAB: "SET_CURRENT_DEBUGGER_TAB", + SET_DEBUGGER_SELECTED_TAB: "SET_DEBUGGER_SELECTED_TAB", + SET_DEBUGGER_SELECTED_FILTER: "SET_DEBUGGER_SELECTED_FILTER", + SET_RESPONSE_PANE_HEIGHT: "SET_RESPONSE_PANE_HEIGHT", + SET_ERROR_COUNT: "SET_ERROR_COUNT", + SET_RESPONSE_PANE_SCROLL_POSITION: "SET_RESPONSE_PANE_SCROLL_POSITION", + TOGGLE_EXPAND_ERROR_LOG_ITEM: "TOGGLE_EXPAND_ERROR_LOG_ITEM", + NAVIGATE_TO_ENTITY: "NAVIGATE_TO_ENTITY", + SET_QUERY_PANE_DEBUGGER_STATE: "SET_QUERY_PANE_DEBUGGER_STATE", + SET_API_PANE_DEBUGGER_STATE: "SET_API_PANE_DEBUGGER_STATE", + SET_JS_PANE_DEBUGGER_STATE: "SET_JS_PANE_DEBUGGER_STATE", + SET_CANVAS_DEBUGGER_STATE: "SET_CANVAS_DEBUGGER_STATE", +}; + +const ThemeActionTypes = { SET_THEME: "SET_THEME", - FETCH_WIDGET_CARDS: "FETCH_WIDGET_CARDS", - FETCH_WIDGET_CARDS_SUCCESS: "FETCH_WIDGET_CARDS_SUCCESS", - ADD_PAGE_WIDGET: "ADD_PAGE_WIDGET", - REMOVE_PAGE_WIDGET: "REMOVE_PAGE_WIDGET", - LOAD_API_RESPONSE: "LOAD_API_RESPONSE", - LOAD_QUERY_RESPONSE: "LOAD_QUERY_RESPONSE", + SET_HEADER_META: "SET_HEADER_META", + UPDATE_BETA_CARD_SHOWN: "UPDATE_BETA_CARD_SHOWN", + CLOSE_BETA_CARD_SHOWN: "CLOSE_BETA_CARD_SHOWN", +}; + +const ActionExecutionTypes = { RUN_ACTION_SHORTCUT_REQUEST: "RUN_ACTION_SHORTCUT_REQUEST", RUN_ACTION_REQUEST: "RUN_ACTION_REQUEST", - PLUGIN_SOFT_REFRESH: "PLUGIN_SOFT_REFRESH", RUN_ACTION_CANCELLED: "RUN_ACTION_CANCELLED", RUN_ACTION_SUCCESS: "RUN_ACTION_SUCCESS", CLEAR_ACTION_RESPONSE: "CLEAR_ACTION_RESPONSE", - INIT_API_PANE: "INIT_API_PANE", + SHOW_ACTION_MODAL: "SHOW_ACTION_MODAL", + CANCEL_ACTION_MODAL: "CANCEL_ACTION_MODAL", + CONFIRM_ACTION_MODAL: "CONFIRM_ACTION_MODAL", + EXECUTE_PAGE_LOAD_ACTIONS: "EXECUTE_PAGE_LOAD_ACTIONS", + EXECUTE_PLUGIN_ACTION_REQUEST: "EXECUTE_PLUGIN_ACTION_REQUEST", + EXECUTE_PLUGIN_ACTION_SUCCESS: "EXECUTE_PLUGIN_ACTION_SUCCESS", + SET_ACTION_RESPONSE_DISPLAY_FORMAT: "SET_ACTION_RESPONSE_DISPLAY_FORMAT", +}; + +const ActionExecutionErrorTypes = { + RUN_ACTION_ERROR: "RUN_ACTION_ERROR", + EXECUTE_PLUGIN_ACTION_ERROR: "EXECUTE_PLUGIN_ACTION_ERROR", +}; + +const PluginActionTypes = { + PLUGIN_SOFT_REFRESH: "PLUGIN_SOFT_REFRESH", + FETCH_PLUGINS_REQUEST: "FETCH_PLUGINS_REQUEST", + FETCH_PLUGINS_SUCCESS: "FETCH_PLUGINS_SUCCESS", + FETCH_PLUGIN_FORM_CONFIGS_REQUEST: "FETCH_PLUGIN_FORM_CONFIGS_REQUEST", + FETCH_PLUGIN_FORM_CONFIGS_SUCCESS: "FETCH_PLUGIN_FORM_CONFIGS_SUCCESS", + FETCH_PLUGIN_FORM_SUCCESS: "FETCH_PLUGIN_FORM_SUCCESS", + GET_PLUGIN_FORM_CONFIG_INIT: "GET_PLUGIN_FORM_CONFIG_INIT", + GET_DEFAULT_PLUGINS_REQUEST: "GET_DEFAULT_PLUGINS_REQUEST", + GET_DEFAULT_PLUGINS_SUCCESS: "GET_DEFAULT_PLUGINS_SUCCESS", +}; +const PluginActionErrorTypes = { + FETCH_PLUGINS_ERROR: "FETCH_PLUGINS_ERROR", + FETCH_PLUGIN_FORM_CONFIGS_ERROR: "FETCH_PLUGIN_FORM_CONFIGS_ERROR", + FETCH_PLUGIN_FORM_ERROR: "FETCH_PLUGIN_FORM_ERROR", + GET_DEFAULT_PLUGINS_ERROR: "GET_DEFAULT_PLUGINS_ERROR", +}; + +const UQIFormActionTypes = { + SET_FORM_EVALUATION: "SET_FORM_EVALUATION", + INIT_FORM_EVALUATION: "INIT_FORM_EVALUATION", + RUN_FORM_EVALUATION: "RUN_FORM_EVALUATION", + INIT_TRIGGER_VALUES: "INIT_TRIGGER_VALUES", + FETCH_TRIGGER_VALUES_INIT: "FETCH_TRIGGER_VALUES_INIT", + FETCH_TRIGGER_VALUES_SUCCESS: "FETCH_TRIGGER_VALUES_SUCCESS", + SET_TRIGGER_VALUES_LOADING: "SET_TRIGGER_VALUES_LOADING", + FORM_EVALUATION_EMPTY_BUFFER: "FORM_EVALUATION_EMPTY_BUFFER", +}; + +const ActionActionTypes = { + ...ActionExecutionTypes, + ...UQIFormActionTypes, API_PANE_CHANGE_API: "API_PANE_CHANGE_API", + QUERY_PANE_CHANGE: "QUERY_PANE_CHANGE", EXECUTE_TRIGGER_REQUEST: "EXECUTE_TRIGGER_REQUEST", - LOAD_CANVAS_ACTIONS: "LOAD_CANVAS_ACTIONS", - SAVE_PAGE_INIT: "SAVE_PAGE_INIT", - SAVE_PAGE_SUCCESS: "SAVE_PAGE_SUCCESS", - UPDATE_LAYOUT: "UPDATE_LAYOUT", - WIDGET_ADD_CHILD: "WIDGET_ADD_CHILD", - WIDGET_CHILD_ADDED: "WIDGET_CHILD_ADDED", - WIDGET_REMOVE_CHILD: "WIDGET_REMOVE_CHILD", - WIDGETS_MOVE: "WIDGETS_MOVE", - WIDGETS_ADD_CHILD_AND_MOVE: "WIDGETS_ADD_CHILD_AND_MOVE", - WIDGET_RESIZE: "WIDGET_RESIZE", - WIDGET_DELETE: "WIDGET_DELETE", - WIDGET_BULK_DELETE: "WIDGET_BULK_DELETE", - WIDGET_SINGLE_DELETE: "WIDGET_SINGLE_DELETE", + CREATE_ACTION_REQUEST: "CREATE_ACTION_REQUEST", + CREATE_ACTION_INIT: "CREATE_ACTION_INIT", + CREATE_ACTION_SUCCESS: "CREATE_ACTION_SUCCESS", + FETCH_ACTIONS_INIT: "FETCH_ACTIONS_INIT", + FETCH_ACTIONS_SUCCESS: "FETCH_ACTIONS_SUCCESS", + UPDATE_ACTION_INIT: "UPDATE_ACTION_INIT", + UPDATE_ACTION_SUCCESS: "UPDATE_ACTION_SUCCESS", + DELETE_ACTION_INIT: "DELETE_ACTION_INIT", + DELETE_ACTION_SUCCESS: "DELETE_ACTION_SUCCESS", + SET_EXTRA_FORMDATA: "SET_EXTRA_FORMDATA", + MOVE_ACTION_INIT: "MOVE_ACTION_INIT", + MOVE_ACTION_SUCCESS: "MOVE_ACTION_SUCCESS", + COPY_ACTION_INIT: "COPY_ACTION_INIT", + COPY_ACTION_SUCCESS: "COPY_ACTION_SUCCESS", + FETCH_ACTIONS_FOR_PAGE_INIT: "FETCH_ACTIONS_FOR_PAGE_INIT", + FETCH_ACTIONS_FOR_PAGE_SUCCESS: "FETCH_ACTIONS_FOR_PAGE_SUCCESS", + CREATE_NEW_API_ACTION: "CREATE_NEW_API_ACTION", + CREATE_NEW_QUERY_ACTION: "CREATE_NEW_QUERY_ACTION", + SAVE_ACTION_NAME_INIT: "SAVE_ACTION_NAME_INIT", + SAVE_ACTION_NAME_SUCCESS: "SAVE_ACTION_NAME_SUCCESS", + SET_ACTION_PROPERTY: "SET_ACTION_PROPERTY", + UPDATE_ACTION_PROPERTY: "UPDATE_ACTION_PROPERTY", + SWITCH_DATASOURCE: "SWITCH_DATASOURCE", + SET_ACTION_TO_EXECUTE_ON_PAGELOAD: "SET_ACTION_TO_EXECUTE_ON_PAGELOAD", + TOGGLE_ACTION_EXECUTE_ON_LOAD_SUCCESS: + "TOGGLE_ACTION_EXECUTE_ON_LOAD_SUCCESS", + TOGGLE_ACTION_EXECUTE_ON_LOAD_INIT: "TOGGLE_ACTION_EXECUTE_ON_LOAD_INIT", + UPDATE_API_ACTION_BODY_CONTENT_TYPE: "UPDATE_API_ACTION_BODY_CONTENT_TYPE", +}; + +const ActionActionErrorTypes = { + ...ActionExecutionErrorTypes, + FETCH_ACTIONS_ERROR: "FETCH_ACTIONS_ERROR", + CREATE_ACTION_ERROR: "CREATE_ACTION_ERROR", + UPDATE_ACTION_ERROR: "UPDATE_ACTION_ERROR", + DELETE_ACTION_ERROR: "DELETE_ACTION_ERROR", + MOVE_ACTION_ERROR: "MOVE_ACTION_ERROR", + COPY_ACTION_ERROR: "COPY_ACTION_ERROR", + FETCH_ACTIONS_FOR_PAGE_ERROR: "FETCH_ACTIONS_FOR_PAGE_ERROR", + SAVE_ACTION_NAME_ERROR: "SAVE_ACTION_NAME_ERROR", + SAVE_API_NAME_ERROR: "SAVE_API_NAME_ERROR", + TOGGLE_ACTION_EXECUTE_ON_LOAD_ERROR: "TOGGLE_ACTION_EXECUTE_ON_LOAD_ERROR", +}; + +const PropertyPanelActionTypes = { + ...ActionSelectorReduxActionTypes, SHOW_PROPERTY_PANE: "SHOW_PROPERTY_PANE", - UPDATE_CANVAS_LAYOUT: "UPDATE_CANVAS_LAYOUT", + HIDE_PROPERTY_PANE: "HIDE_PROPERTY_PANE", + TOGGLE_PROPERTY_PANE_WIDGET_NAME_EDIT: + "TOGGLE_PROPERTY_PANE_WIDGET_NAME_EDIT", + SET_PROPERTY_PANE_WIDTH: "SET_PROPERTY_PANE_WIDTH", +}; + +const WidgetOperationsActionTypes = { UPDATE_WIDGET_PROPERTY_REQUEST: "UPDATE_WIDGET_PROPERTY_REQUEST", UPDATE_WIDGET_PROPERTY: "UPDATE_WIDGET_PROPERTY", UPDATE_WIDGET_DYNAMIC_PROPERTY: "UPDATE_WIDGET_DYNAMIC_PROPERTY", @@ -263,31 +840,30 @@ const ActionTypes = { BATCH_UPDATE_MULTIPLE_WIDGETS_PROPERTY: "BATCH_UPDATE_MULTIPLE_WIDGETS_PROPERTY", DELETE_WIDGET_PROPERTY: "DELETE_WIDGET_PROPERTY", - FETCH_PROPERTY_PANE_CONFIGS_INIT: "FETCH_PROPERTY_PANE_CONFIGS_INIT", - FETCH_PROPERTY_PANE_CONFIGS_SUCCESS: "FETCH_PROPERTY_PANE_CONFIGS_SUCCESS", - FETCH_CONFIGS_INIT: "FETCH_CONFIGS_INIT", - ADD_WIDGET_REF: "ADD_WIDGET_REF", - CREATE_ACTION_REQUEST: "CREATE_ACTION_REQUEST", - CREATE_ACTION_INIT: "CREATE_ACTION_INIT", - CREATE_ACTION_SUCCESS: "CREATE_ACTION_SUCCESS", - FETCH_ACTIONS_INIT: "FETCH_ACTIONS_INIT", - FETCH_ACTIONS_SUCCESS: "FETCH_ACTIONS_SUCCESS", - UPDATE_ACTION_INIT: "UPDATE_ACTION_INIT", - UPDATE_ACTION_SUCCESS: "UPDATE_ACTION_SUCCESS", - DELETE_ACTION_INIT: "DELETE_ACTION_INIT", + UPDATE_WIDGET_NAME_INIT: "UPDATE_WIDGET_NAME_INIT", + UPDATE_WIDGET_NAME_SUCCESS: "UPDATE_WIDGET_NAME_SUCCESS", + SET_WIDGET_DYNAMIC_PROPERTY: "SET_WIDGET_DYNAMIC_PROPERTY", + BATCH_SET_WIDGET_DYNAMIC_PROPERTY: "BATCH_SET_WIDGET_DYNAMIC_PROPERTY", + RESET_APPLICATION_WIDGET_STATE_REQUEST: + "RESET_APPLICATION_WIDGET_STATE_REQUEST", +}; + +const WidgetOperationActionErrorTypes = { + WIDGET_OPERATION_ERROR: "WIDGET_OPERATION_ERROR", + WIDGET_DELETE_ERROR: "WIDGET_DELETE_ERROR", + WIDGET_MOVE_ERROR: "WIDGET_MOVE_ERROR", + WIDGET_RESIZE_ERROR: "WIDGET_RESIZE_ERROR", + WIDGET_REMOVE_CHILD_ERROR: "WIDGET_REMOVE_CHILD_ERROR", + WIDGET_ADD_CHILD_ERROR: "WIDGET_ADD_CHILD_ERROR", + WIDGET_SELECTION_ERROR: "WIDGET_SELECTION_ERROR", + UPDATE_WIDGET_NAME_ERROR: "UPDATE_WIDGET_NAME_ERROR", +}; + +const DatasourceEditorActionTypes = { SET_DATASOURCE_EDITOR_MODE: "SET_DATASOURCE_EDITOR_MODE", SET_DATASOURCE_EDITOR_MODE_FLAG: "SET_DATASOURCE_EDITOR_MODE_FLAG", - APPEND_ACTION_AFTER_BUILDING_BLOCK_DROP: - "APPEND_ACTION_AFTER_BUILDING_BLOCK_DROP", SET_DATASOURCE_COLLAPSIBLE_STATE: "SET_DATASOURCE_COLLAPSIBLE_STATE", SET_ALL_DATASOURCE_COLLAPSIBLE_STATE: "SET_ALL_DATASOURCE_COLLAPSIBLE_STATE", - DELETE_ACTION_SUCCESS: "DELETE_ACTION_SUCCESS", - SHOW_ACTION_MODAL: "SHOW_ACTION_MODAL", - CANCEL_ACTION_MODAL: "CANCEL_ACTION_MODAL", - CONFIRM_ACTION_MODAL: "CONFIRM_ACTION_MODAL", - CREATE_QUERY_INIT: "CREATE_QUERY_INIT", - SET_IS_RECONNECTING_DATASOURCES_MODAL_OPEN: - "SET_IS_RECONNECTING_DATASOURCES_MODAL_OPEN", FETCH_DATASOURCES_INIT: "FETCH_DATASOURCES_INIT", FETCH_DATASOURCES_SUCCESS: "FETCH_DATASOURCES_SUCCESS", FETCH_MOCK_DATASOURCES_INIT: "FETCH_MOCK_DATASOURCES_INIT", @@ -320,11 +896,7 @@ const ActionTypes = { FETCH_UNCONFIGURED_DATASOURCE_LIST: "FETCH_UNCONFIGURED_DATASOURCE_LIST", DELETE_DATASOURCE_DRAFT: "DELETE_DATASOURCE_DRAFT", UPDATE_DATASOURCE_DRAFT: "UPDATE_DATASOURCE_DRAFT", - FETCH_PUBLISHED_PAGE_INIT: "FETCH_PUBLISHED_PAGE_INIT", - FETCH_PUBLISHED_PAGE_SUCCESS: "FETCH_PUBLISHED_PAGE_SUCCESS", REDIRECT_AUTHORIZATION_CODE: "REDIRECT_AUTHORIZATION_CODE", - REDIRECT_WINDOW_LOCATION: "REDIRECT_WINDOW_LOCATION", - HISTORY_PUSH: "HISTORY_PUSH", DELETE_DATASOURCE_INIT: "DELETE_DATASOURCE_INIT", DELETE_DATASOURCE_SUCCESS: "DELETE_DATASOURCE_SUCCESS", DELETE_DATASOURCE_CANCELLED: "DELETE_DATASOURCE_CANCELLED", @@ -332,158 +904,106 @@ const ActionTypes = { STORE_AS_DATASOURCE_UPDATE: "STORE_AS_DATASOURCE_UPDATE", STORE_AS_DATASOURCE_COMPLETE: "STORE_AS_DATASOURCE_COMPLETE", RESET_DATASOURCE_BANNER_MESSAGE: "RESET_DATASOURCE_BANNER_MESSAGE", - PUBLISH_APPLICATION_INIT: "PUBLISH_APPLICATION_INIT", - PUBLISH_APPLICATION_SUCCESS: "PUBLISH_APPLICATION_SUCCESS", + UPDATE_DATASOURCE_REFS: "UPDATE_DATASOURCE_REFS", + EXECUTE_DATASOURCE_QUERY_INIT: "EXECUTE_DATASOURCE_QUERY_INIT", + EXECUTE_DATASOURCE_QUERY_SUCCESS: "EXECUTE_DATASOURCE_QUERY_SUCCESS", + REMOVE_TEMP_DATASOURCE_SUCCESS: "REMOVE_TEMP_DATASOURCE_SUCCESS", + SET_DATASOURCE_SAVE_ACTION_FLAG: "SET_DATASOURCE_SAVE_ACTION_FLAG", + SET_DATASOURCE_SAVE_ACTION_FROM_POPUP_FLAG: + "SET_DATASOURCE_SAVE_ACTION_FROM_POPUP_FLAG", + SET_DATASOURCE_DEFAULT_KEY_VALUE_PAIR_SET: + "SET_DATASOURCE_DEFAULT_KEY_VALUE_PAIR_SET", + RESET_DATASOURCE_DEFAULT_KEY_VALUE_PAIR_SET: + "RESET_DATASOURCE_DEFAULT_KEY_VALUE_PAIR_SET", + INITIALIZE_DATASOURCE_FORM_WITH_DEFAULTS: + "INITIALIZE_DATASOURCE_FORM_WITH_DEFAULTS", + SET_GSHEET_TOKEN: "SET_GSHEET_TOKEN", + FILE_PICKER_CALLBACK_ACTION: "FILE_PICKER_CALLBACK_ACTION", + LOAD_FILE_PICKER_ACTION: "LOAD_FILE_PICKER_ACTION", + UPDATE_DATASOURCE_AUTH_STATE: "UPDATE_DATASOURCE_AUTH_STATE", + DATASOURCE_DISCARD_ACTION: "DATASOURCE_DISCARD_ACTION", + SWITCH_ENVIRONMENT_SUCCESS: "SWITCH_ENVIRONMENT_SUCCESS", + SET_DATASOURCE_PREVIEW_SELECTED_TABLE_NAME: + "SET_DATASOURCE_PREVIEW_SELECTED_TABLE_NAME", + FETCH_ENVIRONMENT_SUCCESS: "FETCH_ENVIRONMENT_SUCCESS", +}; +const DatasourceEditorActionErrorTypes = { + FETCH_DATASOURCES_ERROR: "FETCH_DATASOURCES_ERROR", + FETCH_MOCK_DATASOURCES_ERROR: "FETCH_MOCK_DATASOURCES_ERROR", + ADD_MOCK_DATASOURCES_ERROR: "ADD_MOCK_DATASOURCES_ERROR", + UPDATE_DATASOURCE_ERROR: "UPDATE_DATASOURCE_ERROR", + UPDATE_DATASOURCE_NAME_ERROR: "UPDATE_DATASOURCE_NAME_ERROR", + CREATE_DATASOURCE_ERROR: "CREATE_DATASOURCE_ERROR", + DELETE_DATASOURCE_ERROR: "DELETE_DATASOURCE_ERROR", + FETCH_DATASOURCE_STRUCTURE_ERROR: "FETCH_DATASOURCE_STRUCTURE_ERROR", + REFRESH_DATASOURCE_STRUCTURE_ERROR: "REFRESH_DATASOURCE_STRUCTURE_ERROR", + TEST_DATASOURCE_ERROR: "TEST_DATASOURCE_ERROR", + EXECUTE_DATASOURCE_QUERY_ERROR: "EXECUTE_DATASOURCE_QUERY_ERROR", +}; + +const BuildingBlocksActionTypes = { + APPEND_ACTION_AFTER_BUILDING_BLOCK_DROP: + "APPEND_ACTION_AFTER_BUILDING_BLOCK_DROP", + DRAGGING_BUILDING_BLOCK_TO_CANVAS_INIT: + "DRAGGING_BUILDING_BLOCK_TO_CANVAS_INIT", + DRAGGING_BUILDING_BLOCK_TO_CANVAS_SUCCESS: + "DRAGGING_BUILDING_BLOCK_TO_CANVAS_SUCCESS", + SET_CURRENT_FORKING_BUILDING_BLOCK_NAME: + "SET_CURRENT_FORKING_BUILDING_BLOCK_NAME", +}; + +const BuildingBlocksActionErrorTypes = { + DRAGGING_BUILDING_BLOCK_TO_CANVAS_ERROR: + "DRAGGING_BUILDING_BLOCK_TO_CANVAS_ERROR", +}; + +const ShareAppActionTypes = { CHANGE_APPVIEW_ACCESS_INIT: "CHANGE_APPVIEW_ACCESS_INIT", CHANGE_APPVIEW_ACCESS_SUCCESS: "CHANGE_APPVIEW_ACCESS_SUCCESS", - CREATE_PAGE_INIT: "CREATE_PAGE_INIT", - CREATE_NEW_PAGE_FROM_ENTITIES: "CREATE_NEW_PAGE_FROM_ENTITIES", - CREATE_PAGE_SUCCESS: "CREATE_PAGE_SUCCESS", - FETCH_PAGE_LIST_INIT: "FETCH_PAGE_LIST_INIT", - FETCH_PAGE_LIST_SUCCESS: "FETCH_PAGE_LIST_SUCCESS", - UPDATE_PAGE_LIST: "UPDATE_PAGE_LIST", - INITIALIZE_PAGE_VIEWER: "INITIALIZE_PAGE_VIEWER", - INITIALIZE_PAGE_VIEWER_SUCCESS: "INITIALIZE_PAGE_VIEWER_SUCCESS", - FETCH_APPLICATION_INIT: "FETCH_APPLICATION_INIT", - FETCH_APPLICATION_SUCCESS: "FETCH_APPLICATION_SUCCESS", INVITED_USERS_TO_WORKSPACE: "INVITED_USERS_TO_WORKSPACE", - CREATE_APPLICATION_INIT: "CREATE_APPLICATION_INIT", - CREATE_APPLICATION_SUCCESS: "CREATE_APPLICATION_SUCCESS", - UPDATE_WIDGET_PROPERTY_VALIDATION: "UPDATE_WIDGET_PROPERTY_VALIDATION", - HIDE_PROPERTY_PANE: "HIDE_PROPERTY_PANE", - INIT_DATASOURCE_PANE: "INIT_DATASOURCE_PANE", - INIT_QUERY_PANE: "INIT_QUERY_PANE", - QUERY_PANE_CHANGE: "QUERY_PANE_CHANGE", - UPDATE_ROUTES_PARAMS: "UPDATE_ROUTES_PARAMS", - SET_EXTRA_FORMDATA: "SET_EXTRA_FORMDATA", - PERSIST_USER_SESSION: "PERSIST_USER_SESSION", - LOGIN_USER_INIT: "LOGIN_USER_INIT", - LOGIN_USER_SUCCESS: "LOGIN_USER_SUCCESS", - CREATE_USER_INIT: "CREATE_USER_INIT", - CREATE_USER_SUCCESS: "CREATE_USER_SUCCESS", - RESET_USER_PASSWORD_INIT: "RESET_USER_PASSWORD_INIT", - RESET_USER_PASSWORD_SUCCESS: "RESET_USER_PASSWORD_SUCCESS", - FETCH_PLUGINS_REQUEST: "FETCH_PLUGINS_REQUEST", - FETCH_PLUGINS_SUCCESS: "FETCH_PLUGINS_SUCCESS", - FETCH_PLUGIN_FORM_CONFIGS_REQUEST: "FETCH_PLUGIN_FORM_CONFIGS_REQUEST", - FETCH_PLUGIN_FORM_CONFIGS_SUCCESS: "FETCH_PLUGIN_FORM_CONFIGS_SUCCESS", - FETCH_PLUGIN_FORM_SUCCESS: "FETCH_PLUGIN_FORM_SUCCESS", - INVITE_USERS_TO_WORKSPACE_INIT: "INVITE_USERS_TO_WORKSPACE_INIT", - INVITE_USERS_TO_WORKSPACE_SUCCESS: "INVITE_USERS_TO_WORKSPACE_SUCCESS", - FORGOT_PASSWORD_INIT: "FORGOT_PASSWORD_INIT", - FORGOT_PASSWORD_SUCCESS: "FORGOT_PASSWORD_SUCCESS", - RESET_PASSWORD_VERIFY_TOKEN_SUCCESS: "RESET_PASSWORD_VERIFY_TOKEN_SUCCESS", - RESET_PASSWORD_VERIFY_TOKEN_INIT: "RESET_PASSWORD_VERIFY_TOKEN_INIT", - EXECUTE_PAGE_LOAD_ACTIONS: "EXECUTE_PAGE_LOAD_ACTIONS", - SWITCH_WORKSPACE_INIT: "SWITCH_WORKSPACE_INIT", - SWITCH_WORKSPACE_SUCCESS: "SWITCH_WORKSPACE_SUCCESS", - FETCH_WORKSPACE_INIT: "FETCH_WORKSPACE_INIT", - FETCH_WORKSPACE_SUCCESS: "FETCH_WORKSPACE_SUCCESS", - FETCH_WORKSPACES_SUCCESS: "FETCH_WORKSPACES_SUCCES", - FETCH_WORKSPACES_INIT: "FETCH_WORKSPACES_INIT", - SAVE_WORKSPACE_INIT: "SAVE_WORKSPACE_INIT", - SAVE_WORKSPACE_SUCCESS: "SAVE_WORKSPACE_SUCCESS", - UPLOAD_WORKSPACE_LOGO: "UPLOAD_WORKSPACE_LOGO", - REMOVE_WORKSPACE_LOGO: "REMOVE_WORKSPACE_LOGO", - SET_LAST_UPDATED_TIME: "SET_LAST_UPDATED_TIME", - SET_CURRENT_WORKSPACE: "SET_CURRENT_WORKSPACE", - SET_CURRENT_WORKSPACE_ID: "SET_CURRENT_WORKSPACE_ID", - FETCH_CURRENT_WORKSPACE: "FETCH_CURRENT_WORKSPACE", - STORE_DATASOURCE_REFS: "STORE_DATASOURCE_REFS", - UPDATE_DATASOURCE_REFS: "UPDATE_DATASOURCE_REFS", - FETCH_USER_INIT: "FETCH_USER_INIT", - PROP_PANE_MOVED: "PROP_PANE_MOVED", - FETCH_USER_SUCCESS: "FETCH_USER_SUCCESS", - SET_CURRENT_USER_INIT: "SET_CURRENT_USER_INIT", - SET_CURRENT_USER_SUCCESS: "SET_CURRENT_USER_SUCCESS", - LOGOUT_USER_INIT: "LOGOUT_USER_INIT", - LOGOUT_USER_SUCCESS: "LOGOUT_USER_SUCCESS", - VERIFY_INVITE_INIT: "VERIFY_INVITE_INIT", - VERIFY_INVITE_SUCCESS: "VERIFY_INVITE_SUCCESS", - INVITED_USER_SIGNUP_SUCCESS: "INVITED_USER_SIGNUP_SUCCESS", - INVITED_USER_SIGNUP_INIT: "INVITED_USER_SIGNUP_INIT", - DISABLE_WIDGET_DRAG: "DISABLE_WIDGET_DRAG", - SELECT_WIDGET_INIT: "SELECT_WIDGET_INIT", - PARTIAL_IMPORT_MODAL_OPEN: "PARTIAL_IMPORT_MODAL_OPEN", - PARTIAL_IMPORT_INIT: "PARTIAL_IMPORT_INIT", - PARTIAL_IMPORT_SUCCESS: "PARTIAL_IMPORT_SUCCESS", - PARTIAL_EXPORT_MODAL_OPEN: "PARTIAL_EXPORT_MODAL_OPEN", - PARTIAL_EXPORT_INIT: "PARTIAL_EXPORT_INIT", - PARTIAL_EXPORT_SUCCESS: "PARTIAL_EXPORT_SUCCESS", - FOCUS_WIDGET: "FOCUS_WIDGET", - SET_SELECTED_WIDGETS: "SET_SELECTED_WIDGETS", - SET_LAST_SELECTED_WIDGET: "SET_LAST_SELECTED_WIDGET", - SET_WIDGET_DRAGGING: "SET_WIDGET_DRAGGING", - SET_DRAGGING_CANVAS: "SET_DRAGGING_CANVAS", - SET_NEW_WIDGET_DRAGGING: "SET_NEW_WIDGET_DRAGGING", - SET_WIDGET_RESIZING: "SET_WIDGET_RESIZING", - SET_AUTO_CANVAS_RESIZING: "SET_AUTO_CANVAS_RESIZING", - ADD_SUGGESTED_WIDGET: "ADD_SUGGESTED_WIDGET", - MODIFY_META_WIDGETS: "MODIFY_META_WIDGETS", - DELETE_META_WIDGETS: "DELETE_META_WIDGETS", - UPDATE_META_WIDGET_PROPERTY: "UPDATE_META_WIDGET_PROPERTY", - SEARCH_APPLICATIONS: "SEARCH_APPLICATIONS", - UPDATE_PAGE_INIT: "UPDATE_PAGE_INIT", - UPDATE_PAGE_SUCCESS: "UPDATE_PAGE_SUCCESS", - MOVE_ACTION_INIT: "MOVE_ACTION_INIT", - MOVE_ACTION_SUCCESS: "MOVE_ACTION_SUCCESS", - COPY_ACTION_INIT: "COPY_ACTION_INIT", - COPY_ACTION_SUCCESS: "COPY_ACTION_SUCCESS", - DELETE_APPLICATION_INIT: "DELETE_APPLICATION_INIT", - DELETE_APPLICATION_SUCCESS: "DELETE_APPLICATION_SUCCESS", - DELETE_PAGE_INIT: "DELETE_PAGE_INIT", - DELETE_PAGE_SUCCESS: "DELETE_PAGE_SUCCESS", - CLONE_PAGE_INIT: "CLONE_PAGE_INIT", - CLONE_PAGE_SUCCESS: "CLONE_PAGE_SUCCESS", - SET_DEFAULT_APPLICATION_PAGE_INIT: "SET_DEFAULT_APPLICATION_PAGE_INIT", - SET_DEFAULT_APPLICATION_PAGE_SUCCESS: "SET_DEFAULT_APPLICATION_PAGE_SUCCESS", - CREATE_WORKSPACE_INIT: "CREATE_WORKSPACE_INIT", - CREATE_WORKSPACE_SUCCESS: "CREATE_WORKSPACE_SUCCESS", - ADD_USER_TO_WORKSPACE_INIT: "ADD_USER_TO_WORKSPACE_INIT", - ADD_USER_TO_WORKSPACE_SUCCESS: "ADD_USER_TO_WORKSPACE_ERROR", - BATCH_UPDATE_META_PROPS: "BATCH_UPDATE_META_PROPS", - SET_META_PROP: "SET_META_PROP", - SET_META_PROP_AND_EVAL: "SET_META_PROP_AND_EVAL", - META_UPDATE_DEBOUNCED_EVAL: "META_UPDATE_DEBOUNCED_EVAL", - RESET_CHILDREN_WIDGET_META: "RESET_CHILDREN_WIDGET_META", - RESET_WIDGET_META: "RESET_WIDGET_META", - RESET_WIDGET_META_UPDATES: "RESET_WIDGET_META_UPDATES", - RESET_WIDGET_META_EVALUATED: "RESET_WIDGET_META_EVALUATED", - RESET_WIDGETS_META_STATE: "RESET_WIDGETS_META_STATE", - UPDATE_WIDGET_NAME_INIT: "UPDATE_WIDGET_NAME_INIT", - UPDATE_WIDGET_NAME_SUCCESS: "UPDATE_WIDGET_NAME_SUCCESS", - FETCH_ACTIONS_FOR_PAGE_INIT: "FETCH_ACTIONS_FOR_PAGE_INIT", - FETCH_ACTIONS_FOR_PAGE_SUCCESS: "FETCH_ACTIONS_FOR_PAGE_SUCCESS", - EXECUTE_PLUGIN_ACTION_REQUEST: "EXECUTE_PLUGIN_ACTION_REQUEST", - EXECUTE_PLUGIN_ACTION_SUCCESS: "EXECUTE_PLUGIN_ACTION_SUCCESS", - SET_ACTION_RESPONSE_DISPLAY_FORMAT: "SET_ACTION_RESPONSE_DISPLAY_FORMAT", - SET_CURL_MODAL_OPEN: "SET_CURL_MODAL_OPEN", - SET_CURL_MODAL_CLOSE: "SET_CURL_MODAL_CLOSE", - SUBMIT_CURL_FORM_INIT: "SUBMIT_CURL_FORM_INIT", - SUBMIT_CURL_FORM_SUCCESS: "SUBMIT_CURL_FORM_SUCCESS", - SET_WIDGET_DYNAMIC_PROPERTY: "SET_WIDGET_DYNAMIC_PROPERTY", - BATCH_SET_WIDGET_DYNAMIC_PROPERTY: "BATCH_SET_WIDGET_DYNAMIC_PROPERTY", - ADD_API_TO_PAGE_SUCCESS: "ADD_API_TO_PAGE_SUCCESS", - CLEAR_PREVIOUSLY_EXECUTED_QUERY: "CLEAR_PREVIOUSLY_EXECUTED_QUERY", - SHOW_MODAL: "SHOW_MODAL", - SHOW_MODAL_BY_NAME: "SHOW_MODAL_BY_NAME", - CLOSE_MODAL: "CLOSE_MODAL", - CREATE_MODAL_INIT: "CREATE_MODAL_INIT", - CREATE_MODAL_SUCCESS: "CREATE_MODAL_SUCCESS", - UPDATE_CANVAS_SIZE: "UPDATE_CANVAS_SIZE", - SWITCH_CURRENT_PAGE_ID: "SWITCH_CURRENT_PAGE_ID", - BATCHED_UPDATE: "BATCHED_UPDATE", - EXECUTE_BATCH: "EXECUTE_BATCH", +}; + +const ShareAppActionErrorTypes = { + CHANGE_APPVIEW_ACCESS_ERROR: "CHANGE_APPVIEW_ACCESS_ERROR", +}; + +const AppViewActionTypes = { + ...ShareAppActionTypes, + FETCH_PUBLISHED_PAGE_INIT: "FETCH_PUBLISHED_PAGE_INIT", + FETCH_PUBLISHED_PAGE_SUCCESS: "FETCH_PUBLISHED_PAGE_SUCCESS", + PUBLISH_APPLICATION_INIT: "PUBLISH_APPLICATION_INIT", + PUBLISH_APPLICATION_SUCCESS: "PUBLISH_APPLICATION_SUCCESS", FETCH_ALL_PUBLISHED_PAGES: "FETCH_ALL_PUBLISHED_PAGES", - CREATE_NEW_API_ACTION: "CREATE_NEW_API_ACTION", - CREATE_NEW_QUERY_ACTION: "CREATE_NEW_QUERY_ACTION", - SET_LAST_USED_EDITOR_PAGE: "SET_LAST_USED_EDITOR_PAGE", - SET_LAST_SELECTED_PAGE_PAGE: "SET_LAST_SELECTED_PAGE_PAGE", - FETCH_PROVIDER_DETAILS_BY_PROVIDER_ID_INIT: - "FETCH_PROVIDER_DETAILS_BY_PROVIDER_ID_INIT", - FETCH_PROVIDER_DETAILS_BY_PROVIDER_ID_SUCCESS: - "FETCH_PROVIDER_DETAILS_BY_PROVIDER_ID_SUCCESS", - SET_PROVIDERS_LENGTH: "SET_PROVIDERS_LENGTH", + FETCH_ACTIONS_VIEW_MODE_INIT: "FETCH_ACTIONS_VIEW_MODE_INIT", + FETCH_ACTIONS_VIEW_MODE_SUCCESS: "FETCH_ACTIONS_VIEW_MODE_SUCCESS", + FETCH_JS_ACTIONS_VIEW_MODE_INIT: "FETCH_JS_ACTIONS_VIEW_MODE_INIT", + FETCH_JS_ACTIONS_VIEW_MODE_SUCCESS: "FETCH_JS_ACTIONS_VIEW_MODE_SUCCESS", + SET_APP_VIEWER_HEADER_HEIGHT: "SET_APP_VIEWER_HEADER_HEIGHT", + SET_APP_SIDEBAR_PINNED: "SET_APP_SIDEBAR_PINNED", +}; + +const AppViewActionErrorTypes = { + ...ShareAppActionErrorTypes, + FETCH_PUBLISHED_PAGE_ERROR: "FETCH_PUBLISHED_PAGE_ERROR", + PUBLISH_APPLICATION_ERROR: "PUBLISH_APPLICATION_ERROR", + FETCH_ACTIONS_VIEW_MODE_ERROR: "FETCH_ACTION_VIEW_MODE_ERROR", + FETCH_JS_ACTIONS_VIEW_MODE_ERROR: "FETCH_JS_ACTIONS_VIEW_MODE_ERROR", +}; + +const WorkspaceActionTypes = { + INVITE_USERS_TO_WORKSPACE_INIT: "INVITE_USERS_TO_WORKSPACE_INIT", + FETCH_WORKSPACE_SUCCESS: "FETCH_WORKSPACE_SUCCESS", + SAVE_WORKSPACE_INIT: "SAVE_WORKSPACE_INIT", + SAVE_WORKSPACE_SUCCESS: "SAVE_WORKSPACE_SUCCESS", + UPLOAD_WORKSPACE_LOGO: "UPLOAD_WORKSPACE_LOGO", + REMOVE_WORKSPACE_LOGO: "REMOVE_WORKSPACE_LOGO", + SET_CURRENT_WORKSPACE: "SET_CURRENT_WORKSPACE", + SET_CURRENT_WORKSPACE_ID: "SET_CURRENT_WORKSPACE_ID", + FETCH_CURRENT_WORKSPACE: "FETCH_CURRENT_WORKSPACE", + CREATE_WORKSPACE_INIT: "CREATE_WORKSPACE_INIT", + CREATE_WORKSPACE_SUCCESS: "CREATE_WORKSPACE_SUCCESS", + ADD_USER_TO_WORKSPACE_INIT: "ADD_USER_TO_WORKSPACE_INIT", + ADD_USER_TO_WORKSPACE_SUCCESS: "ADD_USER_TO_WORKSPACE_ERROR", FETCH_ALL_APPLICATIONS_OF_WORKSPACE_INIT: "FETCH_ALL_APPLICATIONS_OF_WORKSPACE_INIT", FETCH_ALL_APPLICATIONS_OF_WORKSPACE_SUCCESS: @@ -501,447 +1021,206 @@ const ActionTypes = { LEAVE_WORKSPACE_INIT: "LEAVE_WORKSPACE_INIT", CHANGE_WORKSPACE_USER_ROLE_INIT: "CHANGE_WORKSPACE_USER_ROLE_INIT", CHANGE_WORKSPACE_USER_ROLE_SUCCESS: "CHANGE_WORKSPACE_USER_ROLE_SUCCESS", - UPDATE_USER_DETAILS_INIT: "UPDATE_USER_DETAILS_INIT", - UPDATE_USER_DETAILS_SUCCESS: "UPDATE_USER_DETAILS_SUCCESS", + RESET_CURRENT_WORKSPACE: "RESET_CURRENT_WORKSPACE", + DELETE_WORKSPACE_INIT: "DELETE_WORKSPACE_INIT", + DELETE_WORKSPACE_SUCCESS: "DELETE_WORKSPACE_SUCCESS", + SEARCH_WORKSPACE_ENTITIES_INIT: "SEARCH_WORKSPACE_ENTITIES_INIT", + SEARCH_WORKSPACE_ENTITIES_SUCCESS: "SEARCH_WORKSPACE_ENTITIES_SUCCESS", + UPDATE_THEME_SETTING: "UPDATE_THEME_SETTING", + SEARCH_WORKSPACE_ENTITIES_RESET: "SEARCH_WORKSPACE_ENTITIES_RESET", + FETCH_ENTITIES_OF_WORKSPACE_INIT: "FETCH_ENTITIES_OF_WORKSPACE_INIT", + START_CONSOLIDATED_PAGE_LOAD: "START_CONSOLIDATED_PAGE_LOAD", + END_CONSOLIDATED_PAGE_LOAD: "END_CONSOLIDATED_PAGE_LOAD", +}; +const WorkspaceActionErrorTypes = { + FETCH_USER_DETAILS_ERROR: "FETCH_USER_DETAILS_ERROR", + CHANGE_WORKSPACE_USER_ROLE_ERROR: "CHANGE_WORKSPACE_USER_ROLE_ERROR", + SAVE_WORKSPACE_ERROR: "SAVE_WORKSPACE_ERROR", + FETCH_WORKSPACE_ERROR: "FETCH_WORKSPACE_ERROR", + FETCH_WORKSPACES_ERROR: "FETCH_WORKSPACES_ERROR", + CREATE_WORKSPACE_ERROR: "CREATE_WORKSPACE_ERROR", + ADD_USER_TO_WORKSPACE_ERROR: "ADD_USER_TO_WORKSPACE_ERROR", + FETCH_USER_APPLICATIONS_WORKSPACES_ERROR: + "FETCH_USER_APPLICATIONS_WORKSPACES_ERROR", + FETCH_WORKSPACE_ENTITIES_ERROR: "FETCH_WORKSPACE_ENTITIES_ERROR", + FETCH_ALL_USERS_ERROR: "FETCH_ALL_USERS_ERROR", + FETCH_ALL_ROLES_ERROR: "FETCH_ALL_ROLES_ERROR", + DELETE_WORKSPACE_USER_ERROR: "DELETE_WORKSPACE_USER_ERROR", + DELETE_WORKSPACE_ERROR: "DELETE_WORKSPACE_ERROR", + SEARCH_WORKSPACE_ENTITIES_ERROR: "SEARCH_WORKSPACE_ENTITIES_ERROR", + FETCH_ALL_APPLICATIONS_OF_WORKSPACE_ERROR: + "FETCH_ALL_APPLICATIONS_OF_WORKSPACE_ERROR", +}; + +const CurlImportActionTypes = { + SET_CURL_MODAL_OPEN: "SET_CURL_MODAL_OPEN", + SET_CURL_MODAL_CLOSE: "SET_CURL_MODAL_CLOSE", + SUBMIT_CURL_FORM_INIT: "SUBMIT_CURL_FORM_INIT", + SUBMIT_CURL_FORM_SUCCESS: "SUBMIT_CURL_FORM_SUCCESS", +}; + +const CurlImportActionErrorTypes = { + SUBMIT_CURL_FORM_ERROR: "SUBMIT_CURL_FORM_ERROR", +}; + +const BatchUpdateActionTypes = { + BATCHED_UPDATE: "BATCHED_UPDATE", + EXECUTE_BATCH: "EXECUTE_BATCH", + BATCH_UPDATES_SUCCESS: "BATCH_UPDATES_SUCCESS", +}; + +const HelpActionTypes = { UPDATE_USER_INTERCOM_CONSENT: "UPDATE_USER_INTERCOM_CONSENT", SET_DEFAULT_REFINEMENT: "SET_DEFAULT_REFINEMENT", SET_HELP_MODAL_OPEN: "SET_HELP_MODAL_OPEN", - SAVE_ACTION_NAME_INIT: "SAVE_ACTION_NAME_INIT", - SAVE_ACTION_NAME_SUCCESS: "SAVE_ACTION_NAME_SUCCESS", - UPDATE_API_NAME_DRAFT: "UPDATE_API_NAME_DRAFT", - SET_ACTION_PROPERTY: "SET_ACTION_PROPERTY", - UPDATE_ACTION_PROPERTY: "UPDATE_ACTION_PROPERTY", - SWITCH_DATASOURCE: "SWITCH_DATASOURCE", - INIT_EXPLORER_ENTITY_NAME_EDIT: "INIT_EXPLORER_ENTITY_NAME_EDIT", - FETCH_ACTIONS_VIEW_MODE_INIT: "FETCH_ACTIONS_VIEW_MODE_INIT", - FETCH_ACTIONS_VIEW_MODE_SUCCESS: "FETCH_ACTIONS_VIEW_MODE_SUCCESS", - END_EXPLORER_ENTITY_NAME_EDIT: "END_EXPLORER_ENTITY_NAME_EDIT", - POPULATE_PAGEDSLS_INIT: "POPULATE_PAGEDSLS_INIT", - POPULATE_PAGEDSLS_SUCCESS: "POPULATE_PAGEDSLS_SUCCESS", - FETCH_PAGE_DSLS_SUCCESS: "FETCH_PAGE_DSLS_SUCCESS", - FETCH_PAGE_DSL_SUCCESS: "FETCH_PAGE_DSL_SUCCESS", - SET_URL_DATA: "SET_URL_DATA", - SET_APP_MODE: "SET_APP_MODE", - TOGGLE_PROPERTY_PANE_WIDGET_NAME_EDIT: - "TOGGLE_PROPERTY_PANE_WIDGET_NAME_EDIT", - SET_PROPERTY_PANE_WIDTH: "SET_PROPERTY_PANE_WIDTH", - UPDATE_APP_STORE: "UPDATE_APP_STORE", - SET_ACTION_TO_EXECUTE_ON_PAGELOAD: "SET_ACTION_TO_EXECUTE_ON_PAGELOAD", - TOGGLE_ACTION_EXECUTE_ON_LOAD_SUCCESS: - "TOGGLE_ACTION_EXECUTE_ON_LOAD_SUCCESS", - TOGGLE_ACTION_EXECUTE_ON_LOAD_INIT: "TOGGLE_ACTION_EXECUTE_ON_LOAD_INIT", - COPY_SELECTED_WIDGET_SUCCESS: "COPY_SELECTED_WIDGET_SUCCESS", - COPY_SELECTED_WIDGET_INIT: "COPY_SELECTED_WIDGET_INIT", - ADD_CANVAS_WIDGET: "ADD_CANVAS_WIDGET", - VERIFY_LAYOUT_SYSTEM_AND_PASTE_WIDGETS: - "VERIFY_LAYOUT_SYSTEM_AND_PASTE_WIDGETS", - PASTE_COPIED_WIDGET_INIT: "PASTE_COPIED_WIDGET_INIT", - PASTE_COPIED_WIDGET_SUCCESS: "PASTE_COPIED_WIDGET_SUCCESS", - CUT_SELECTED_WIDGET: "CUT_SELECTED_WIDGET", - SET_EVALUATED_TREE: "SET_EVALUATED_TREE", - SET_EVALUATION_INVERSE_DEPENDENCY_MAP: - "SET_EVALUATION_INVERSE_DEPENDENCY_MAP", - BATCH_UPDATES_SUCCESS: "BATCH_UPDATES_SUCCESS", - UPDATE_CANVAS_STRUCTURE: "UPDATE_CANVAS_STRUCTURE", - SET_SELECTED_WIDGET_ANCESTRY: "SET_SELECTED_WIDGET_ANCESTRY", - SET_ENTITY_EXPLORER_WIDGET_ANCESTRY: "SET_ENTITY_EXPLORER_WIDGET_ANCESTRY", - START_EVALUATION: "START_EVALUATION", - CURRENT_APPLICATION_NAME_UPDATE: "CURRENT_APPLICATION_NAME_UPDATE", - CURRENT_APPLICATION_COMMUNITY_TEMPLATE_STATUS_UPDATE: - "CURRENT_APPLICATION_COMMUNITY_TEMPLATE_STATUS_UPDATE", - CURRENT_APPLICATION_LAYOUT_UPDATE: "CURRENT_APPLICATION_LAYOUT_UPDATE", - CURRENT_APPLICATION_ICON_UPDATE: "CURRENT_APPLICATION_ICON_UPDATE", - CURRENT_APPLICATION_EMBED_SETTING_UPDATE: - "CURRENT_APPLICATION_EMBED_SETTING_UPDATE", - UPDATE_NAVIGATION_SETTING: "UPDATE_NAVIGATION_SETTING", - CURRENT_APPLICATION_FORKING_ENABLED_UPDATE: - "CURRENT_APPLICATION_FORKING_ENABLED_UPDATE", - FORK_APPLICATION_INIT: "FORK_APPLICATION_INIT", - FORK_APPLICATION_SUCCESS: "FORK_APPLICATION_SUCCESS", - IMPORT_APPLICATION_INIT: "IMPORT_APPLICATION_INIT", - IMPORT_APPLICATION_FROM_GIT_INIT: "IMPORT_APPLICATION_FROM_GIT_INIT", - IMPORT_APPLICATION_SUCCESS: "IMPORT_APPLICATION_SUCCESS", - SET_WIDGET_LOADING: "SET_WIDGET_LOADING", - RESET_IMPORT_DATA: "RESET_IMPORT_DATA", - SET_GLOBAL_SEARCH_QUERY: "SET_GLOBAL_SEARCH_QUERY", - SET_GLOBAL_SEARCH_CATEGORY: "SET_GLOBAL_SEARCH_CATEGORY", - TOGGLE_SHOW_GLOBAL_SEARCH_MODAL: "TOGGLE_SHOW_GLOBAL_SEARCH_MODAL", +}; + +const AdminSettingsActionTypes = { FETCH_RELEASES_SUCCESS: "FETCH_RELEASES_SUCCESS", RESET_UNREAD_RELEASES_COUNT: "RESET_UNREAD_RELEASES_COUNT", - SET_FORM_EVALUATION: "SET_FORM_EVALUATION", - INIT_FORM_EVALUATION: "INIT_FORM_EVALUATION", - RUN_FORM_EVALUATION: "RUN_FORM_EVALUATION", - SET_LOADING_ENTITIES: "SET_LOADING_ENTITIES", - RESET_CURRENT_APPLICATION: "RESET_CURRENT_APPLICATION", - RESET_CURRENT_WORKSPACE: "RESET_CURRENT_WORKSPACE", - SELECT_WIDGETS_IN_AREA: "SELECT_WIDGETS_IN_AREA", - RESET_APPLICATION_WIDGET_STATE_REQUEST: - "RESET_APPLICATION_WIDGET_STATE_REQUEST", - SAAS_GET_OAUTH_ACCESS_TOKEN: "SAAS_GET_OAUTH_ACCESS_TOKEN", - GET_OAUTH_ACCESS_TOKEN: "GET_OAUTH_ACCESS_TOKEN", - GET_OAUTH_ACCESS_TOKEN_SUCCESS: "GET_OAUTH_ACCESS_TOKEN_SUCCESS", - GET_OAUTH_ACCESS_TOKEN_ERROR: "GET_OAUTH_ACCESS_TOKEN_ERROR", - RESTORE_RECENT_ENTITIES_REQUEST: "RESTORE_RECENT_ENTITIES_REQUEST", - RESTORE_RECENT_ENTITIES_SUCCESS: "RESTORE_RECENT_ENTITIES_SUCCESS", - SET_RECENT_ENTITIES: "SET_RECENT_ENTITIES", - RESET_RECENT_ENTITIES: "RESET_RECENT_ENTITIES", - UPDATE_API_ACTION_BODY_CONTENT_TYPE: "UPDATE_API_ACTION_BODY_CONTENT_TYPE", - GENERATE_TEMPLATE_PAGE_INIT: "GENERATE_TEMPLATE_PAGE_INIT", - GENERATE_TEMPLATE_PAGE_SUCCESS: "GENERATE_TEMPLATE_PAGE_SUCCESS", - SHOW_TABLE_FILTER_PANE: "SHOW_TABLE_FILTER_PANE", - HIDE_TABLE_FILTER_PANE: "HIDE_TABLE_FILTER_PANE", - TABLE_PANE_MOVED: "TABLE_PANE_MOVED", - FETCH_JS_ACTIONS_INIT: "FETCH_JS_ACTIONS_INIT", - FETCH_JS_ACTIONS_SUCCESS: "FETCH_JS_ACTIONS_SUCCESS", - UPDATE_TEST_PAYLOAD_FOR_COLLECTION: "UPDATE_TEST_PAYLOAD_FOR_COLLECTION", - UPDATE_TEST_PAYLOAD_FOR_JS_ACTION: "UPDATE_TEST_PAYLOAD_FOR_JS_ACTION", - JS_ACTION_REMOTE_EXECUTION_INIT: "JS_ACTION_REMOTE_EXECUTION_INIT", - CREATE_NEW_JS_ACTION: "CREATE_NEW_JS_ACTION", - CREATE_JS_ACTION_INIT: "CREATE_JS_ACTION_INIT", - CREATE_JS_ACTION_SUCCESS: "CREATE_JS_ACTION_SUCCESS", - COPY_JS_ACTION_INIT: "COPY_JS_ACTION_INIT", - COPY_JS_ACTION_SUCCESS: "COPY_JS_ACTION_SUCCESS", - MOVE_JS_ACTION_INIT: "MOVE_JS_ACTION_INIT", - MOVE_JS_ACTION_SUCCESS: "MOVE_JS_ACTION_SUCCESS", - DELETE_JS_ACTION_INIT: "DELETE_JS_ACTION_INIT", - DELETE_JS_ACTION_SUCCESS: "DELETE_JS_ACTION_SUCCESS", - PARSE_UPDATE_JS_ACTION: "PARSE_UPDATE_JS_ACTION", - UPDATE_JS_ACTION_SUCCESS: "UPDATE_JS_ACTION_SUCCESS", - JS_ACTION_SAVE_START: "JS_ACTION_SAVE_START", - JS_ACTION_SAVE_COMPLETE: "JS_ACTION_SAVE_COMPLETE", - EXECUTE_COMMAND: "EXECUTE_COMMAND", - SAVE_JS_COLLECTION_NAME_INIT: "SAVE_JS_COLLECTION_NAME_INIT", - FETCH_JS_ACTIONS_FOR_PAGE_INIT: "FETCH_JS_ACTIONS_FOR_PAGE_INIT", - FETCH_JS_ACTIONS_FOR_PAGE_SUCCESS: "FETCH_JS_ACTIONS_FOR_PAGE_SUCCESS", - SAVE_JS_COLLECTION_NAME_SUCCESS: "SAVE_JS_COLLECTION_NAME_SUCCESS", - FETCH_JS_ACTIONS_VIEW_MODE_INIT: "FETCH_JS_ACTIONS_VIEW_MODE_INIT", - FETCH_JS_ACTIONS_VIEW_MODE_SUCCESS: "FETCH_JS_ACTIONS_VIEW_MODE_SUCCESS", - EXECUTE_JS_FUNCTION_INIT: "EXECUTE_JS_FUNCTION_INIT", - EXECUTE_JS_FUNCTION_SUCCESS: "EXECUTE_JS_FUNCTION_SUCCESS", - SET_JS_FUNCTION_EXECUTION_DATA: "SET_JS_FUNCTION_EXECUTION_DATA", - SET_JS_FUNCTION_EXECUTION_ERRORS: "SET_JS_FUNCTION_EXECUTION_ERRORS", - GET_PLUGIN_FORM_CONFIG_INIT: "GET_PLUGIN_FORM_CONFIG_INIT", - EXECUTE_DATASOURCE_QUERY_INIT: "EXECUTE_DATASOURCE_QUERY_INIT", - EXECUTE_DATASOURCE_QUERY_SUCCESS: "EXECUTE_DATASOURCE_QUERY_SUCCESS", - UNDO_REDO_OPERATION: "UNDO_REDO_OPERATION", - SET_CRUD_INFO_MODAL_OPEN: "SET_CRUD_INFO_MODAL_OPEN", - SET_PAGE_ORDER_INIT: "SET_PAGE_ORDER_INIT", - SET_PAGE_ORDER_SUCCESS: "SET_PAGE_ORDER_SUCCESS", - GROUP_WIDGETS_INIT: "GROUP_WIDGETS_INIT", - WIDGET_ADD_NEW_TAB_CHILD: "WIDGET_ADD_NEW_TAB_CHILD", - WIDGET_DELETE_TAB_CHILD: "WIDGET_DELETE_TAB_CHILD", - GENERATE_SSH_KEY_PAIR_INIT: "GENERATE_SSH_KEY_PAIR_INIT", - SET_REMOTE_URL_INPUT_VALUE: "SET_REMOTE_URL_INPUT_VALUE", - GENERATE_SSH_KEY_PAIR_SUCCESS: "GENERATE_SSH_KEY_PAIR_SUCCESS", - REFACTOR_JS_ACTION_NAME: "REFACTOR_JS_ACTION_NAME", - REFACTOR_JS_ACTION_NAME_SUCCESS: "REFACTOR_JS_ACTION_NAME_SUCCESS", - SET_HEADER_META: "SET_HEADER_META", - TOGGLE_ONBOARDING_WIDGET_SELECTION: "TOGGLE_ONBOARDING_WIDGET_SELECTION", - DISABLE_START_SIGNPOSTING: "DISABLE_START_SIGNPOSTING", - REMOVE_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID: - "REMOVE_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID", - SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID: - "SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_ID", - SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_IDS: - "SET_FIRST_TIME_USER_ONBOARDING_APPLICATION_IDS", - SET_FIRST_TIME_USER_ONBOARDING_COMPLETE: - "SET_FIRST_TIME_USER_ONBOARDING_COMPLETE", - SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL: - "SET_SHOW_FIRST_TIME_USER_ONBOARDING_MODAL", - SET_FORCE_WIDGET_PANEL_OPEN: "SET_FORCE_WIDGET_PANEL_OPEN", - END_FIRST_TIME_USER_ONBOARDING: "END_FIRST_TIME_USER_ONBOARDING", - UNDO_END_FIRST_TIME_USER_ONBOARDING: "UNDO_END_FIRST_TIME_USER_ONBOARDING", - SET_SIGNPOSTING_OVERLAY: "SET_SIGNPOSTING_OVERLAY", - SIGNPOSTING_MARK_ALL_READ: "SIGNPOSTING_MARK_ALL_READ", - SIGNPOSTING_STEP_UPDATE_INIT: "SIGNPOSTING_STEP_UPDATE_INIT", - SIGNPOSTING_STEP_UPDATE: "SIGNPOSTING_STEP_UPDATE", - SIGNPOSTING_SHOW_TOOLTIP: "SIGNPOSTING_SHOW_TOOLTIP", - SHOW_ANONYMOUS_DATA_POPUP: "SHOW_ANONYMOUS_DATA_POPUP", FETCH_ADMIN_SETTINGS: "FETCH_ADMIN_SETTINGS", FETCH_ADMIN_SETTINGS_SUCCESS: "FETCH_ADMIN_SETTINGS_SUCCESS", FETCH_ADMIN_SETTINGS_ERROR: "FETCH_ADMIN_SETTINGS_ERROR", SAVE_ADMIN_SETTINGS: "SAVE_ADMIN_SETTINGS", SAVE_ADMIN_SETTINGS_SUCCESS: "SAVE_ADMIN_SETTINGS_SUCCESS", SAVE_ADMIN_SETTINGS_ERROR: "SAVE_ADMIN_SETTINGS_ERROR", - DOWNLOAD_DOCKER_COMPOSE_FILE: "DOWNLOAD_DOCKER_COMPOSE_FILE", - TOGGLE_RELEASE_NOTES: "TOGGLE_RELEASE_NOTES", - FETCH_RELEASES: "FETCH_RELEASES", - RESTART_SERVER_POLL: "RESTART_SERVER_POLL", - RETRY_RESTART_SERVER_POLL: "RETRY_RESTART_SERVER_POLL", - SET_EXPLORER_PINNED: "SET_EXPLORER_PINNED", - SET_EXPLORER_ACTIVE: "SET_EXPLORER_ACTIVE", - SET_PREVIEW_MODE: "SET_PREVIEW_MODE", - SET_PREVIEW_MODE_INIT: "SET_PREVIEW_MODE_INIT", - SET_PROTECTED_MODE: "SET_PROTECTED_MODE", - SET_CANVAS_CARDS_STATE: "SET_CANVAS_TOP_SECTION_VISIBILITY", - DELETE_CANVAS_CARDS_STATE: "DELETE_CANVAS_CARDS_STATE", - UPDATE_EXPLORER_WIDTH: "UPDATE_EXPLORER_WIDTH", - UPDATE_PROPERTY_PANE_WIDTH: "UPDATE_PROPERTY_PANE_WIDTH", - FIRST_TIME_USER_ONBOARDING_INIT: "FIRST_TIME_USER_ONBOARDING_INIT", - SET_USER_ROLE_USECASE: "SET_USER_ROLE_USECASE", - UPDATE_JS_ACTION_BODY: "UPDATE_JS_ACTION_BODY", - UPDATE_JS_ACTION_BODY_INIT: "UPDATE_JS_ACTION_BODY_INIT", - UPDATE_JS_ACTION_BODY_SUCCESS: "UPDATE_JS_ACTION_BODY_SUCCESS", - SEND_TEST_EMAIL: "SEND_TEST_EMAIL", - SET_FUNCTION_PROPERTY: "SET_FUNCTION_PROPERTY", - UPDATE_JS_FUNCTION_PROPERTY_INIT: "UPDATE_JS_FUNCTION_PROPERTY_INIT", - UPDATE_JS_FUNCTION_PROPERTY_SUCCESS: "UPDATE_JS_FUNCTION_PROPERTY_SUCCESS", - TOGGLE_FUNCTION_EXECUTE_ON_LOAD_INIT: "TOGGLE_FUNCTION_EXECUTE_ON_LOAD_INIT", - TOGGLE_FUNCTION_EXECUTE_ON_LOAD_SUCCESS: - "TOGGLE_FUNCTION_EXECUTE_ON_LOAD_SUCCESS", - SET_JS_ACTION_TO_EXECUTE_ON_PAGELOAD: "SET_JS_ACTION_TO_EXECUTE_ON_PAGELOAD", - SHOW_POST_COMPLETION_MESSAGE: "SHOW_POST_COMPLETION_MESSAGE", - SHOW_INFO_MESSAGE: "SHOW_INFO_MESSAGE", - FORCE_SHOW_CONTENT: "FORCE_SHOW_CONTENT", - UPDATE_REPLAY_ENTITY: "UPDATE_REPLAY_ENTITY", - DELETE_WORKSPACE_INIT: "DELETE_WORKSPACE_INIT", - DELETE_WORKSPACE_SUCCESS: "DELETE_WORKSPACE_SUCCESS", - SET_USER_CURRENT_GEO_LOCATION: "SET_USER_CURRENT_GEO_LOCATION", - SET_DISCONNECTING_GIT_APPLICATION: "SET_DISCONNECTING_GIT_APPLICATION", - SET_APP_THEMING_STACK: "SET_APP_THEMING_STACK", - FETCH_APP_THEMES_INIT: "FETCH_APP_THEMES_INIT", - FETCH_APP_THEMES_SUCCESS: "FETCH_APP_THEMES_SUCCESS", - SET_DEFAULT_SELECTED_THEME_INIT: "SET_DEFAULT_SELECTED_THEME_INIT", - FETCH_SELECTED_APP_THEME_INIT: "FETCH_SELECTED_APP_THEME_INIT", - FETCH_SELECTED_APP_THEME_SUCCESS: "FETCH_SELECTED_APP_THEME_SUCCESS", - UPDATE_SELECTED_APP_THEME_INIT: "UPDATE_SELECTED_APP_THEME_INIT", - UPDATE_SELECTED_APP_THEME_SUCCESS: "UPDATE_SELECTED_APP_THEME_SUCCESS", - CHANGE_SELECTED_APP_THEME_INIT: "CHANGE_SELECTED_APP_THEME_INIT", - CHANGE_SELECTED_APP_THEME_SUCCESS: "CHANGE_SELECTED_APP_THEME_SUCCESS", - SET_PREVIEW_APP_THEME: "SET_PREVIEW_APP_THEME", - SAVE_APP_THEME_INIT: "SAVE_APP_THEME_INIT", - DELETE_APP_THEME_INIT: "DELETE_APP_THEME_INIT", - DELETE_APP_THEME_SUCCESS: "DELETE_APP_THEME_SUCCESS", - RESET_APP_THEME_INIT: "RESET_APP_THEME_INIT", - RESET_APP_THEME_SUCCESS: "RESET_APP_THEME_SUCCESS", + DOWNLOAD_DOCKER_COMPOSE_FILE: "DOWNLOAD_DOCKER_COMPOSE_FILE", + TOGGLE_RELEASE_NOTES: "TOGGLE_RELEASE_NOTES", + FETCH_RELEASES: "FETCH_RELEASES", + RESTART_SERVER_POLL: "RESTART_SERVER_POLL", + RETRY_RESTART_SERVER_POLL: "RETRY_RESTART_SERVER_POLL", + SEND_TEST_EMAIL: "SEND_TEST_EMAIL", + UPLOAD_NAVIGATION_LOGO_INIT: "UPLOAD_NAVIGATION_LOGO_INIT", + UPLOAD_NAVIGATION_LOGO_SUCCESS: "UPLOAD_NAVIGATION_LOGO_SUCCESS", + DELETE_NAVIGATION_LOGO_INIT: "DELETE_NAVIGATION_LOGO_INIT", + DELETE_NAVIGATION_LOGO_SUCCESS: "DELETE_NAVIGATION_LOGO_SUCCESS", +}; + +const AdminSettingsActionErrorTypes = { + FETCH_RELEASES_ERROR: "FETCH_RELEASES_ERROR", + RESTART_SERVER_ERROR: "RESTART_SERVER_ERROR", + UPLOAD_NAVIGATION_LOGO_ERROR: "UPLOAD_NAVIGATION_LOGO_ERROR", + DELETE_NAVIGATION_LOGO_ERROR: "DELETE_NAVIGATION_LOGO_ERROR", +}; + +const TemplateActionsTypes = { + GENERATE_TEMPLATE_PAGE_INIT: "GENERATE_TEMPLATE_PAGE_INIT", + GENERATE_TEMPLATE_PAGE_SUCCESS: "GENERATE_TEMPLATE_PAGE_SUCCESS", + SET_CRUD_INFO_MODAL_OPEN: "SET_CRUD_INFO_MODAL_OPEN", GET_ALL_TEMPLATES_INIT: "GET_ALL_TEMPLATES_INIT", GET_ALL_TEMPLATES_SUCCESS: "GET_ALL_TEMPLATES_SUCCESS", UPDATE_TEMPLATE_FILTERS: "UPDATE_TEMPLATE_FILTERS", RESET_TEMPLATE_FILTERS: "RESET_TEMPLATE_FILTERS", SET_TEMPLATE_SEARCH_QUERY: "SET_TEMPLATE_SEARCH_QUERY", IMPORT_TEMPLATE_TO_APPLICATION_INIT: "IMPORT_TEMPLATE_TO_APPLICATION_INIT", - DRAGGING_BUILDING_BLOCK_TO_CANVAS_INIT: - "DRAGGING_BUILDING_BLOCK_TO_CANVAS_INIT", - DRAGGING_BUILDING_BLOCK_TO_CANVAS_SUCCESS: - "DRAGGING_BUILDING_BLOCK_TO_CANVAS_SUCCESS", IMPORT_TEMPLATE_TO_APPLICATION_SUCCESS: "IMPORT_TEMPLATE_TO_APPLICATION_SUCCESS", IMPORT_TEMPLATE_TO_WORKSPACE_INIT: "IMPORT_TEMPLATE_TO_WORKSPACE_INIT", IMPORT_TEMPLATE_TO_WORKSPACE_SUCCESS: "IMPORT_TEMPLATE_TO_WORKSPACE_SUCCESS", - SET_CURRENT_FORKING_BUILDING_BLOCK_NAME: - "SET_CURRENT_FORKING_BUILDING_BLOCK_NAME", SET_TEMPLATE_NOTIFICATION_SEEN: "SET_TEMPLATE_NOTIFICATION_SEEN", GET_TEMPLATE_NOTIFICATION_SEEN: "GET_TEMPLATE_NOTIFICATION_SEEN", GET_SIMILAR_TEMPLATES_INIT: "GET_SIMILAR_TEMPLATES_INIT", GET_SIMILAR_TEMPLATES_SUCCESS: "GET_SIMILAR_TEMPLATES_SUCCESS" /* This action constants is for identifying the status of the updates of the entities */, - ENTITY_UPDATE_STARTED: "ENTITY_UPDATE_STARTED", - ENTITY_UPDATE_SUCCESS: "ENTITY_UPDATE_SUCCESS", - SET_APP_VIEWER_HEADER_HEIGHT: "SET_APP_VIEWER_HEADER_HEIGHT", - UPDATE_BETA_CARD_SHOWN: "UPDATE_BETA_CARD_SHOWN", - CLOSE_BETA_CARD_SHOWN: "CLOSE_BETA_CARD_SHOWN", - GET_DEFAULT_PLUGINS_REQUEST: "GET_DEFAULT_PLUGINS_REQUEST", - GET_DEFAULT_PLUGINS_SUCCESS: "GET_DEFAULT_PLUGINS_SUCCESS", GET_TEMPLATE_INIT: "GET_TEMPLATES_INIT", GET_TEMPLATE_SUCCESS: "GET_TEMPLATES_SUCCESS", - START_EXECUTE_JS_FUNCTION: "START_EXECUTE_JS_FUNCTION", - RESET_PAGE_LIST: "RESET_PAGE_LIST", - SET_ACTIVE_JS_ACTION: "SET_ACTIVE_JS_ACTION", - RECORD_RECENTLY_ADDED_WIDGET: "RECORD_RECENTLY_ADDED_WIDGET", - REMOVE_FROM_RECENTLY_ADDED_WIDGET: "REMOVE_FROM_RECENTLY_ADDED_WIDGET", SHOW_TEMPLATES_MODAL: "SHOW_TEMPLATES_MODAL", HIDE_TEMPLATES_MODAL: "HIDE_TEMPLATES_MODAL", SHOW_CREATE_APP_FROM_TEMPLATES_MODAL: "SHOW_CREATE_APP_FROM_TEMPLATES_MODAL", HIDE_CREATE_APP_FROM_TEMPLATES_MODAL: "HIDE_CREATE_APP_FROM_TEMPLATES_MODAL", GET_TEMPLATE_FILTERS_INIT: "GET_TEMPLATE_FILTERS_INIT", GET_TEMPLATE_FILTERS_SUCCESS: "GET_TEMPLATE_FILTERS_SUCCESS", - INIT_TRIGGER_VALUES: "INIT_TRIGGER_VALUES", - FETCH_TRIGGER_VALUES_INIT: "FETCH_TRIGGER_VALUES_INIT", - FETCH_TRIGGER_VALUES_SUCCESS: "FETCH_TRIGGER_VALUES_SUCCESS", - SET_TRIGGER_VALUES_LOADING: "SET_TRIGGER_VALUES_LOADING", - OPEN_APP_SETTINGS_PANE: "OPEN_APP_SETTINGS_PANE", - CLOSE_APP_SETTINGS_PANE: "CLOSE_APP_SETTINGS_PANE", - UPDATE_APP_SETTINGS_PANE_SELECTED_TAB: - "UPDATE_APP_SETTINGS_PANE_SELECTED_TAB", - FETCH_CURRENT_TENANT_CONFIG: "FETCH_CURRENT_TENANT_CONFIG", - FETCH_CURRENT_TENANT_CONFIG_SUCCESS: "FETCH_CURRENT_TENANT_CONFIG_SUCCESS", - UPDATE_TENANT_CONFIG: "UPDATE_TENANT_CONFIG", - UPDATE_TENANT_CONFIG_SUCCESS: "UPDATE_TENANT_CONFIG_SUCCESS", - SET_FOCUS_HISTORY: "SET_FOCUS_HISTORY", - REMOVE_FOCUS_HISTORY: "REMOVE_FOCUS_HISTORY", - SET_FOCUSABLE_PROPERTY_FIELD: "SET_FOCUSABLE_PROPERTY_FIELD", - ROUTE_CHANGED: "ROUTE_CHANGED", - SET_API_PANE_CONFIG_SELECTED_TAB: "SET_API_PANE_CONFIG_SELECTED_TAB", - SET_API_RIGHT_PANE_SELECTED_TAB: "SET_API_RIGHT_PANE_SELECTED_TAB", - SET_EDITOR_FIELD_FOCUS: "SET_EDITOR_FIELD_FOCUS", - SET_FOCUSABLE_INPUT_FIELD: "SET_FOCUSABLE_INPUT_FIELD", - SET_CODE_EDITOR_CURSOR: "SET_CODE_EDITOR_CURSOR", - SET_CODE_EDITOR_CURSOR_HISTORY: "SET_CODE_EDITOR_CURSOR_HISTORY", - SET_EVAL_POPUP_STATE: "SET_EVAL_POPUP_STATE", - APPEND_SELECTED_WIDGET_TO_URL: "APPEND_SELECTED_WIDGET_TO_URL", - SET_ALL_PROPERTY_SECTION_STATE: "SET_ALL_PROPERTY_SECTION_STATE", - SET_PROPERTY_SECTION_STATE: "SET_PROPERTY_SECTION_STATE", - SET_SELECTED_PROPERTY_TAB_INDEX: "SET_SELECTED_PROPERTY_TAB_INDEX", - SET_DEBUGGER_SELECTED_TAB: "SET_DEBUGGER_SELECTED_TAB", - SET_DEBUGGER_SELECTED_FILTER: "SET_DEBUGGER_SELECTED_FILTER", - SET_RESPONSE_PANE_HEIGHT: "SET_RESPONSE_PANE_HEIGHT", - SET_ERROR_COUNT: "SET_ERROR_COUNT", - SET_RESPONSE_PANE_SCROLL_POSITION: "SET_RESPONSE_PANE_SCROLL_POSITION", - TOGGLE_EXPAND_ERROR_LOG_ITEM: "TOGGLE_EXPAND_ERROR_LOG_ITEM", - SET_QUERY_PANE_CONFIG_SELECTED_TAB: "SET_QUERY_PANE_CONFIG_SELECTED_TAB", - SET_JS_PANE_CONFIG_SELECTED_TAB: "SET_JS_PANE_CONFIG_SELECTED_TAB", - SET_SELECTED_PANEL_PROPERTY: "SET_SELECTED_PANEL_PROPERTY", - UNSET_SELECTED_PANEL_PROPERTY: "UNSET_SELECTED_PANEL_PROPERTY", - SET_SELECTED_PANELS: "SET_SELECTED_PANELS", - SET_PANEL_SELECTED_PROPERTY_TAB_INDEX: - "SET_PANEL_SELECTED_PROPERTY_TAB_INDEX", - SET_PANEL_PROPERTY_SECTION_STATE: "SET_PANEL_PROPERTY_SECTION_STATE", - SET_WIDGET_SELECTED_PROPERTY_TAB_INDEX: - "SET_WIDGET_SELECTED_PROPERTY_TAB_INDEX", - SET_WIDGET_PROPERTY_SECTION_STATE: "SET_WIDGET_PROPERTY_SECTION_STATE", - SET_PANEL_PROPERTIES_STATE: "SET_PANEL_PROPERTIES_STATE", - SET_ENTITY_COLLAPSIBLE_STATE: "SET_ENTITY_COLLAPSIBLE_STATE", - SET_ALL_ENTITY_COLLAPSIBLE_STATE: "SET_ALL_ENTITY_COLLAPSIBLE_STATE", - SET_ALL_SUB_ENTITY_COLLAPSIBLE_STATE: "SET_ALL_SUB_ENTITY_COLLAPSIBLE_STATE", - SET_EXPLORER_SWITCH_INDEX: "SET_EXPLORER_SWITCH_INDEX", - SET_AUTO_HEIGHT_LAYOUT_TREE: "SET_AUTO_HEIGHT_LAYOUT_TREE", - UPDATE_MULTIPLE_WIDGET_PROPERTIES: "UPDATE_MULTIPLE_WIDGET_PROPERTIES", - UPDATE_MULTIPLE_META_WIDGET_PROPERTIES: - "UPDATE_MULTIPLE_META_WIDGET_PROPERTIES", - SET_CANVAS_LEVELS_MAP: "SET_CANVAS_LEVELS_MAP", - GENERATE_AUTO_HEIGHT_LAYOUT_TREE: "GENERATE_AUTO_HEIGHT_LAYOUT_TREE", - CHECK_CONTAINERS_FOR_AUTO_HEIGHT: "CHECK_CONTAINERS_FOR_AUTO_HEIGHT", - UPDATE_WIDGET_AUTO_HEIGHT: "UPDATE_WIDGET_AUTO_HEIGHT", - SET_LINT_ERRORS: "SET_LINT_ERRORS", - SET_AUTO_HEIGHT_WITH_LIMITS_CHANGING: "SET_AUTO_HEIGHT_WITH_LIMITS_CHANGING", - PROCESS_AUTO_HEIGHT_UPDATES: "PROCESS_AUTO_HEIGHT_UPDATES", - LINT_TREE: "LINT_TREE", - UPDATE_LINT_GLOBALS: "UPDATE_LINT_GLOBALS", - REMOVE_TEMP_DATASOURCE_SUCCESS: "REMOVE_TEMP_DATASOURCE_SUCCESS", - SET_DATASOURCE_SAVE_ACTION_FLAG: "SET_DATASOURCE_SAVE_ACTION_FLAG", - SET_DATASOURCE_SAVE_ACTION_FROM_POPUP_FLAG: - "SET_DATASOURCE_SAVE_ACTION_FROM_POPUP_FLAG", - DIRECT_DOM_UPDATE_AUTO_HEIGHT: "DIRECT_DOM_UPDATE_AUTO_HEIGHT", - SET_DATASOURCE_DEFAULT_KEY_VALUE_PAIR_SET: - "SET_DATASOURCE_DEFAULT_KEY_VALUE_PAIR_SET", - RESET_DATASOURCE_DEFAULT_KEY_VALUE_PAIR_SET: - "RESET_DATASOURCE_DEFAULT_KEY_VALUE_PAIR_SET", - INITIALIZE_DATASOURCE_FORM_WITH_DEFAULTS: - "INITIALIZE_DATASOURCE_FORM_WITH_DEFAULTS", - SEGMENT_INITIALIZED: "SEGMENT_INITIALIZED", - SEGMENT_INIT_UNCERTAIN: "SEGMENT_INIT_UNCERTAIN", - SET_APP_SIDEBAR_PINNED: "SET_APP_SIDEBAR_PINNED", - AUTOLAYOUT_REORDER_WIDGETS: "AUTOLAYOUT_REORDER_WIDGETS", - AUTOLAYOUT_ADD_NEW_WIDGETS: "AUTOLAYOUT_ADD_NEW_WIDGETS", - RECALCULATE_COLUMNS: "RECALCULATE_COLUMNS", - UPDATE_LAYOUT_SYSTEM_TYPE: "UPDATE_LAYOUT_SYSTEM_TYPE", - SET_LAYOUT_CONVERSION_STATE: "SET_LAYOUT_CONVERSION_STATE", - START_CONVERSION_FLOW: "START_CONVERSION_FLOW", - STOP_CONVERSION_FLOW: "STOP_CONVERSION_FLOW", - UPDATE_SNAPSHOT_DETAILS: "UPDATE_SNAPSHOT_DETAILS", - CONVERT_AUTO_TO_FIXED: "CONVERT_AUTO_TO_FIXED", - CONVERT_FIXED_TO_AUTO: "CONVERT_FIXED_TO_AUTO", - REFRESH_THE_APP: "REFRESH_THE_APP", - LOG_LAYOUT_CONVERSION_ERROR: "LOG_LAYOUT_CONVERSION_ERROR", - RESTORE_SNAPSHOT: "RESTORE_SNAPSHOT", - FETCH_LAYOUT_SNAPSHOT_DETAILS: "FETCH_LAYOUT_SNAPSHOT_DETAILS", - DELETE_SNAPSHOT: "DELETE_SNAPSHOT", - UPDATE_WIDGET_DIMENSIONS: "UPDATE_WIDGET_DIMENSIONS", - PROCESS_AUTO_LAYOUT_DIMENSION_UPDATES: - "PROCESS_AUTO_LAYOUT_DIMENSION_UPDATES", - SET_GSHEET_TOKEN: "SET_GSHEET_TOKEN", - FILE_PICKER_CALLBACK_ACTION: "FILE_PICKER_CALLBACK_ACTION", - UPLOAD_NAVIGATION_LOGO_INIT: "UPLOAD_NAVIGATION_LOGO_INIT", - UPLOAD_NAVIGATION_LOGO_SUCCESS: "UPLOAD_NAVIGATION_LOGO_SUCCESS", - DELETE_NAVIGATION_LOGO_INIT: "DELETE_NAVIGATION_LOGO_INIT", - DELETE_NAVIGATION_LOGO_SUCCESS: "DELETE_NAVIGATION_LOGO_SUCCESS", - FETCH_GSHEET_SPREADSHEETS: "FETCH_GSHEET_SPREADSHEETS", - FETCH_GSHEET_SPREADSHEETS_SUCCESS: "FETCH_GSHEET_SPREADSHEETS_SUCCESS", - FETCH_GSHEET_SPREADSHEETS_FAILURE: "FETCH_GSHEET_SPREADSHEETS_FAILURE", - FETCH_GSHEET_SHEETS: "FETCH_GSHEET_SHEETS", - FETCH_GSHEET_SHEETS_SUCCESS: "FETCH_GSHEET_SHEETS_SUCCESS", - FETCH_GSHEET_SHEETS_FAILURE: "FETCH_GSHEET_SHEETS_FAILURE", - FETCH_GSHEET_COLUMNS: "FETCH_GSHEET_COLUMNS", - FETCH_GSHEET_COLUMNS_SUCCESS: "FETCH_GSHEET_COLUMNS_SUCCESS", - FETCH_GSHEET_COLUMNS_FAILURE: "FETCH_GSHEET_COLUMNS_FAILURE", - BIND_WIDGET_TO_DATASOURCE: "BIND_WIDGET_TO_DATASOURCE", - BIND_WIDGET_TO_DATASOURCE_SUCCESS: "BIND_WIDGET_TO_DATASOURCE_SUCCESS", - BIND_WIDGET_TO_DATASOURCE_ERROR: "BIND_WIDGET_TO_DATASOURCE_ERROR", - LOAD_FILE_PICKER_ACTION: "LOAD_FILE_PICKER_ACTION", - UPDATE_AI_CONTEXT: "UPDATE_AI_CONTEXT", - UPDATE_AI_TRIGGERED: "UPDATE_AI_TRIGGERED", - UPDATE_DATASOURCE_AUTH_STATE: "UPDATE_DATASOURCE_AUTH_STATE", - UPDATE_POSITIONS_ON_TAB_CHANGE: "UPDATE_POSITIONS_ON_TAB_CHANGE", - RESET_DATA_TREE: "RESET_DATA_TREE", - DATASOURCE_DISCARD_ACTION: "DATASOURCE_DISCARD_ACTION", - SET_ONE_CLICK_BINDING_OPTIONS_VISIBILITY: - "SET_ONE_CLICK_BINDING_OPTIONS_VISIBILITY", - BUFFERED_ACTION: "BUFFERED_ACTION", - WIDGET_INIT_SUCCESS: "WIDGET_INIT_SUCCESS", - NAVIGATE_TO_ENTITY: "NAVIGATE_TO_ENTITY", - FETCH_PRODUCT_ALERT_INIT: "FETCH_PRODUCT_ALERT_INIT", - FETCH_PRODUCT_ALERT_SUCCESS: "FETCH_PRODUCT_ALERT_SUCCESS", - UPDATE_PRODUCT_ALERT_CONFIG: "UPDATE_PRODUCT_ALERT_CONFIG", PUBLISH_APP_AS_COMMUNITY_TEMPLATE_INIT: "PUBLISH_APP_AS_COMMUNITY_TEMPLATE_INIT", PUBLISH_APP_AS_COMMUNITY_TEMPLATE_SUCCESS: "PUBLISH_APP_AS_COMMUNITY_TEMPLATE_SUCCESS", SET_PUBLISHED_APP_TO_COMMUNITY_PORTAL: "SET_PUBLISHED_APP_TO_COMMUNITY_PORTAL", - FORM_EVALUATION_EMPTY_BUFFER: "FORM_EVALUATION_EMPTY_BUFFER", - CLEAR_CACHE: "CLEAR_CACHE", - TRIGGER_EVAL: "TRIGGER_EVAL", - UPDATE_ACTION_DATA: "UPDATE_ACTION_DATA", - SET_ACTIVE_EDITOR_FIELD: "SET_ACTIVE_EDITOR_FIELD", - RESET_ACTIVE_EDITOR_FIELD: "RESET_ACTIVE_EDITOR_FIELD", - SET_CURRENT_APPLICATION_ID_FOR_CREATE_NEW_APP: - "SET_CURRENT_APPLICATION_ID_FOR_CREATE_NEW_APP", - RESET_CURRENT_APPLICATION_ID_FOR_CREATE_NEW_APP: - "RESET_CURRENT_APPLICATION_ID_FOR_CREATE_NEW_APP", IMPORT_TEMPLATE_TO_APPLICATION_ONBOARDING_FLOW: "IMPORT_TEMPLATE_TO_APPLICATION_ONBOARDING_FLOW", IMPORT_TEMPLATE_TO_APPLICATION_ONBOARDING_FLOW_SUCCESS: "IMPORT_TEMPLATE_TO_APPLICATION_ONBOARDING_FLOW_SUCCESS", SET_ACTIVE_LOADING_TEMPLATE_ID: "SET_ACTIVE_LOADING_TEMPLATE_ID", - SETUP_PAGE_INIT: "SETUP_PAGE_INIT", - SETUP_PAGE_SUCCESS: "SETUP_PAGE_SUCCESS", - SETUP_PUBLISHED_PAGE_INIT: "SETUP_PUBLISHED_PAGE_INIT", - SETUP_PUBLISHED_PAGE_SUCCESS: "SETUP_PUBLISHED_PAGE_SUCCESS", - SET_CURRENT_PLUGIN_ID_FOR_CREATE_NEW_APP: - "SET_CURRENT_PLUGIN_ID_FOR_CREATE_NEW_APP", - RESET_CURRENT_PLUGIN_ID_FOR_CREATE_NEW_APP: - "RESET_CURRENT_PLUGIN_ID_FOR_CREATE_NEW_APP", - SEARCH_WORKSPACE_ENTITIES_INIT: "SEARCH_WORKSPACE_ENTITIES_INIT", - SEARCH_WORKSPACE_ENTITIES_SUCCESS: "SEARCH_WORKSPACE_ENTITIES_SUCCESS", - UPDATE_THEME_SETTING: "UPDATE_THEME_SETTING", - SEARCH_WORKSPACE_ENTITIES_RESET: "SEARCH_WORKSPACE_ENTITIES_RESET", - SET_IDE_EDITOR_VIEW_MODE: "SET_IDE_EDITOR_VIEW_MODE", - RESTORE_IDE_EDITOR_VIEW_MODE: "RESTORE_IDE_EDITOR_VIEW_MODE", - SWITCH_ENVIRONMENT_SUCCESS: "SWITCH_ENVIRONMENT_SUCCESS", - SET_DATASOURCE_PREVIEW_SELECTED_TABLE_NAME: - "SET_DATASOURCE_PREVIEW_SELECTED_TABLE_NAME", - SET_IDE_JS_TABS: "SET_IDE_JS_TABS", - SET_IDE_QUERIES_TABS: "SET_IDE_QUERIES_TABS", - FETCH_ENTITIES_OF_WORKSPACE_INIT: "FETCH_ENTITIES_OF_WORKSPACE_INIT", - START_CONSOLIDATED_PAGE_LOAD: "START_CONSOLIDATED_PAGE_LOAD", - END_CONSOLIDATED_PAGE_LOAD: "END_CONSOLIDATED_PAGE_LOAD", - FETCH_ENVIRONMENT_SUCCESS: "FETCH_ENVIRONMENT_SUCCESS", - SET_SHOW_QUERY_CREATE_NEW_MODAL: "SET_SHOW_QUERY_CREATE_NEW_MODAL", - SET_QUERY_PANE_DEBUGGER_STATE: "SET_QUERY_PANE_DEBUGGER_STATE", - SET_API_PANE_DEBUGGER_STATE: "SET_API_PANE_DEBUGGER_STATE", - SET_JS_PANE_DEBUGGER_STATE: "SET_JS_PANE_DEBUGGER_STATE", - SET_CANVAS_DEBUGGER_STATE: "SET_CANVAS_DEBUGGER_STATE", - SET_WIDGET_SELECTION_BLOCK: "SET_WIDGET_SELECTION_BLOCK", - ALT_FOCUS_WIDGET: "ALT_FOCUS_WIDGET", - CREATE_NEW_JS_FROM_ACTION_CREATOR: "CREATE_NEW_JS_FROM_ACTION_CREATOR", - CREATE_NEW_QUERY_FROM_ACTION_CREATOR: "CREATE_NEW_QUERY_FROM_ACTION_CREATOR", - CLOSE_JS_ACTION_TAB: "CLOSE_JS_ACTION_TAB", - CLOSE_JS_ACTION_TAB_SUCCESS: "CLOSE_JS_ACTION_TAB_SUCCESS", - CLOSE_QUERY_ACTION_TAB: "CLOSE_QUERY_ACTION_TAB", +}; + +const TemplateActionErrorTypes = { + GENERATE_TEMPLATE_PAGE_ERROR: "GENERATE_TEMPLATE_PAGE_ERROR", + GET_ALL_TEMPLATES_ERROR: "GET_ALL_TEMPLATES_ERROR", + GET_SIMILAR_TEMPLATES_ERROR: "GET_SIMILAR_TEMPLATES_ERROR", + IMPORT_TEMPLATE_TO_ORGANISATION_ERROR: + "IMPORT_TEMPLATE_TO_ORGANISATION_ERROR", + IMPORT_TEMPLATE_TO_APPLICATION_ERROR: "IMPORT_TEMPLATE_TO_APPLICATION_ERROR", + IMPORT_TEMPLATE_TO_WORKSPACE_ERROR: "IMPORT_TEMPLATE_TO_WORKSPACE_ERROR", + GET_TEMPLATE_ERROR: "GET_TEMPLATE_ERROR", + GET_TEMPLATE_FILTERS_ERROR: "GET_TEMPLATE_FILTERS_ERROR", + PUBLISH_APP_AS_COMMUNITY_TEMPLATE_ERROR: + "PUBLISH_APP_AS_COMMUNITY_TEMPLATE_ERROR", + IMPORT_TEMPLATE_TO_APPLICATION_ONBOARDING_FLOW_ERROR: + "IMPORT_TEMPLATE_TO_APPLICATION_ONBOARDING_FLOW_ERROR", +}; + +const TableWidgetActionsTypes = { + SHOW_TABLE_FILTER_PANE: "SHOW_TABLE_FILTER_PANE", + HIDE_TABLE_FILTER_PANE: "HIDE_TABLE_FILTER_PANE", + TABLE_PANE_MOVED: "TABLE_PANE_MOVED", +}; + +const AppThemeActionsTypes = { + SET_APP_THEMING_STACK: "SET_APP_THEMING_STACK", + FETCH_APP_THEMES_INIT: "FETCH_APP_THEMES_INIT", + FETCH_APP_THEMES_SUCCESS: "FETCH_APP_THEMES_SUCCESS", + SET_DEFAULT_SELECTED_THEME_INIT: "SET_DEFAULT_SELECTED_THEME_INIT", + FETCH_SELECTED_APP_THEME_INIT: "FETCH_SELECTED_APP_THEME_INIT", + FETCH_SELECTED_APP_THEME_SUCCESS: "FETCH_SELECTED_APP_THEME_SUCCESS", + UPDATE_SELECTED_APP_THEME_INIT: "UPDATE_SELECTED_APP_THEME_INIT", + UPDATE_SELECTED_APP_THEME_SUCCESS: "UPDATE_SELECTED_APP_THEME_SUCCESS", + CHANGE_SELECTED_APP_THEME_INIT: "CHANGE_SELECTED_APP_THEME_INIT", + CHANGE_SELECTED_APP_THEME_SUCCESS: "CHANGE_SELECTED_APP_THEME_SUCCESS", + SET_PREVIEW_APP_THEME: "SET_PREVIEW_APP_THEME", + SAVE_APP_THEME_INIT: "SAVE_APP_THEME_INIT", + DELETE_APP_THEME_INIT: "DELETE_APP_THEME_INIT", + DELETE_APP_THEME_SUCCESS: "DELETE_APP_THEME_SUCCESS", + RESET_APP_THEME_INIT: "RESET_APP_THEME_INIT", + RESET_APP_THEME_SUCCESS: "RESET_APP_THEME_SUCCESS", +}; + +const AppThemeActionErrorTypes = { + FETCH_APP_THEMES_ERROR: "FETCH_APP_THEMES_ERROR", + SET_DEFAULT_SELECTED_THEME_ERROR: "SET_DEFAULT_SELECTED_THEME_ERROR", + FETCH_SELECTED_APP_THEME_ERROR: "FETCH_SELECTED_APP_THEME_ERROR", + UPDATE_SELECTED_APP_THEME_ERROR: "UPDATE_SELECTED_APP_THEME_ERROR", + CHANGE_SELECTED_APP_THEME_ERROR: "CHANGE_SELECTED_APP_THEME_ERROR", + DELETE_APP_THEME_ERROR: "DELETE_APP_THEME_ERROR", +}; + +const AppSettingsActionTypes = { + OPEN_APP_SETTINGS_PANE: "OPEN_APP_SETTINGS_PANE", + CLOSE_APP_SETTINGS_PANE: "CLOSE_APP_SETTINGS_PANE", + UPDATE_APP_SETTINGS_PANE_SELECTED_TAB: + "UPDATE_APP_SETTINGS_PANE_SELECTED_TAB", +}; + +const TenantActionTypes = { + FETCH_CURRENT_TENANT_CONFIG: "FETCH_CURRENT_TENANT_CONFIG", + FETCH_CURRENT_TENANT_CONFIG_SUCCESS: "FETCH_CURRENT_TENANT_CONFIG_SUCCESS", + UPDATE_TENANT_CONFIG: "UPDATE_TENANT_CONFIG", + UPDATE_TENANT_CONFIG_SUCCESS: "UPDATE_TENANT_CONFIG_SUCCESS", + FETCH_PRODUCT_ALERT_INIT: "FETCH_PRODUCT_ALERT_INIT", + FETCH_PRODUCT_ALERT_SUCCESS: "FETCH_PRODUCT_ALERT_SUCCESS", + UPDATE_PRODUCT_ALERT_CONFIG: "UPDATE_PRODUCT_ALERT_CONFIG", +}; + +const TenantActionErrorTypes = { + FETCH_CURRENT_TENANT_CONFIG_ERROR: "FETCH_CURRENT_TENANT_CONFIG_ERROR", + UPDATE_TENANT_CONFIG_ERROR: "UPDATE_TENANT_CONFIG_ERROR", + FETCH_PRODUCT_ALERT_FAILED: "FETCH_PRODUCT_ALERT_FAILED", +}; + +const AnalyticsActionTypes = { + SEGMENT_INITIALIZED: "SEGMENT_INITIALIZED", + SEGMENT_INIT_UNCERTAIN: "SEGMENT_INIT_UNCERTAIN", SET_BUILDING_BLOCK_DRAG_START_TIME: "SET_BUILDING_BLOCK_DRAG_START_TIME", RESET_BUILDING_BLOCK_DRAG_START_TIME: "RESET_BUILDING_BLOCK_DRAG_START_TIME", - CLOSE_QUERY_ACTION_TAB_SUCCESS: "CLOSE_QUERY_ACTION_TAB_SUCCESS", - LINT_SETUP: "LINT_SETUP", SEND_ANALYTICS_FOR_SIDE_BY_SIDE_HOVER: "SEND_ANALYTICS_FOR_SIDE_BY_SIDE_HOVER", RECORD_ANALYTICS_FOR_SIDE_BY_SIDE_WIDGET_HOVER: @@ -952,216 +1231,123 @@ const ActionTypes = { "RESET_ANALYTICS_FOR_SIDE_BY_SIDE_HOVER", }; -export const ReduxActionTypes = { - ...ActionTypes, - ...ActionSelectorReduxActionTypes, +const OneClickBindingActionTypes = { + FETCH_GSHEET_SPREADSHEETS: "FETCH_GSHEET_SPREADSHEETS", + FETCH_GSHEET_SPREADSHEETS_SUCCESS: "FETCH_GSHEET_SPREADSHEETS_SUCCESS", + FETCH_GSHEET_SPREADSHEETS_FAILURE: "FETCH_GSHEET_SPREADSHEETS_FAILURE", + FETCH_GSHEET_SHEETS: "FETCH_GSHEET_SHEETS", + FETCH_GSHEET_SHEETS_SUCCESS: "FETCH_GSHEET_SHEETS_SUCCESS", + FETCH_GSHEET_SHEETS_FAILURE: "FETCH_GSHEET_SHEETS_FAILURE", + FETCH_GSHEET_COLUMNS: "FETCH_GSHEET_COLUMNS", + FETCH_GSHEET_COLUMNS_SUCCESS: "FETCH_GSHEET_COLUMNS_SUCCESS", + FETCH_GSHEET_COLUMNS_FAILURE: "FETCH_GSHEET_COLUMNS_FAILURE", + BIND_WIDGET_TO_DATASOURCE: "BIND_WIDGET_TO_DATASOURCE", + BIND_WIDGET_TO_DATASOURCE_SUCCESS: "BIND_WIDGET_TO_DATASOURCE_SUCCESS", + BIND_WIDGET_TO_DATASOURCE_ERROR: "BIND_WIDGET_TO_DATASOURCE_ERROR", + SET_ONE_CLICK_BINDING_OPTIONS_VISIBILITY: + "SET_ONE_CLICK_BINDING_OPTIONS_VISIBILITY", +}; + +const AIActionTypes = { + UPDATE_AI_CONTEXT: "UPDATE_AI_CONTEXT", + UPDATE_AI_TRIGGERED: "UPDATE_AI_TRIGGERED", +}; + +const PlatformActionErrorTypes = { + API_ERROR: "API_ERROR", }; +export const ReduxActionTypes = { + ...ActionActionTypes, + ...AdminSettingsActionTypes, + ...AnalyticsActionTypes, + ...AIActionTypes, + ...AppCollabActionTypes, + ...ApplicationActionTypes, + ...AppThemeActionsTypes, + ...AppViewActionTypes, + ...AppSettingsActionTypes, + ...BatchUpdateActionTypes, + ...BuildingBlocksActionTypes, + ...DatasourceEditorActionTypes, + ...CurlImportActionTypes, + ...ErrorManagementActionTypes, + ...ExplorerActionTypes, + ...EvaluationActionTypes, + ...FeatureFlagActionTypes, + ...GitActionTypes, + ...HelpActionTypes, + ...IDEActionTypes, + ...IDEDebuggerActionTypes, + ...ImportGitActionTypes, + ...ImportExportActionTypes, + ...JSLibraryActionTypes, + ...JSEditorActionTypes, + ...OnboardingActionTypes, + ...OneClickBindingActionTypes, + ...OmniSearchActionTypes, + ...PageActionTypes, + ...PluginActionTypes, + ...PropertyPanelActionTypes, + ...ResourceMapActionTypes, + ...SnippingModeActionTypes, + ...TableWidgetActionsTypes, + ...TemplateActionsTypes, + ...TenantActionTypes, + ...ThemeActionTypes, + ...UserAuthActionTypes, + ...UserProfileActionTypes, + ...WebsocketActions, + ...WidgetCanvasActionTypes, + ...WidgetOperationsActionTypes, + ...WorkspaceActionTypes, +} as const; + export type ReduxActionType = (typeof ReduxActionTypes)[keyof typeof ReduxActionTypes]; export const ReduxActionErrorTypes = { - GIT_DISCARD_CHANGES_ERROR: "GIT_DISCARD_CHANGES_ERROR", - DELETE_BRANCH_WARNING: "DELETE_BRANCH_WARNING", - DELETE_BRANCH_ERROR: "DELETE_BRANCH_ERROR", - GIT_PULL_ERROR: "GIT_PULL_ERROR", - FETCH_MERGE_STATUS_ERROR: "FETCH_MERGE_STATUS_ERROR", - MERGE_BRANCH_ERROR: "MERGE_BRANCH_ERROR", - FETCH_GIT_STATUS_ERROR: "FETCH_GIT_STATUS_ERROR", - CREATE_NEW_BRANCH_ERROR: "CREATE_NEW_BRANCH_ERROR", - CHECKOUT_BRANCH_ERROR: "CHECKOUT_BRANCH_ERROR", - FETCH_BRANCHES_ERROR: "FETCH_BRANCHES_ERROR", - FETCH_LOCAL_GIT_CONFIG_ERROR: "FETCH_LOCAL_GIT_CONFIG_ERROR", - UPDATE_LOCAL_GIT_CONFIG_ERROR: "UPDATE_LOCAL_GIT_CONFIG_ERROR", - PUSH_TO_GIT_ERROR: "PUSH_TO_GIT_ERROR", - FETCH_SSH_KEY_PAIR_ERROR: "FETCH_SSH_KEY_PAIR_ERROR", - UPDATE_GLOBAL_GIT_CONFIG_ERROR: "UPDATE_GLOBAL_GIT_CONFIG_ERROR", - FETCH_GLOBAL_GIT_CONFIG_ERROR: "FETCH_GLOBAL_GIT_CONFIG_ERROR", - CONNECT_TO_GIT_ERROR: "CONNECT_TO_GIT_ERROR", - DISCONNECT_TO_GIT_ERROR: "DISCONNECT_TO_GIT_ERROR", - COMMIT_TO_GIT_REPO_ERROR: "COMMIT_TO_GIT_REPO_ERROR", - GIT_TOGGLE_AUTOCOMMIT_ENABLED_ERROR: "GIT_TOGGLE_AUTOCOMMIT_ENABLED_ERROR", - GIT_AUTOCOMMIT_PROGRESS_POLLING_ERROR: - "GIT_AUTOCOMMIT_PROGRESS_POLLING_ERROR", - GIT_AUTOCOMMIT_TRIGGER_ERROR: "GIT_AUTOCOMMIT_TRIGGER_ERROR", - GIT_GET_METADATA_ERROR: "GIT_GET_METADATA_ERROR", - FETCH_FEATURE_FLAGS_ERROR: "FETCH_FEATURE_FLAGS_ERROR", - FETCH_NOTIFICATIONS_ERROR: "FETCH_NOTIFICATIONS_ERROR", - MARK_ALL_NOTIFICAIONS_AS_READ_ERROR: "MARK_ALL_NOTIFICAIONS_AS_READ_ERROR", - FETCH_UNREAD_NOTIFICATIONS_COUNT_ERROR: - "FETCH_UNREAD_NOTIFICATIONS_COUNT_ERROR", - INITIALIZE_APPSMITH_ERROR: "INITIALIZE_APPSMITH_ERROR", - API_ERROR: "API_ERROR", - WIDGET_DELETE_ERROR: "WIDGET_DELETE_ERROR", - UPDATE_APPLICATION_ERROR: "UPDATE_APPLICATION_ERROR", - UPDATE_APP_LAYOUT_ERROR: "UPDATE_APP_LAYOUT_ERROR", - WIDGET_MOVE_ERROR: "WIDGET_MOVE_ERROR", - WIDGET_RESIZE_ERROR: "WIDGET_RESIZE_ERROR", - WIDGET_REMOVE_CHILD_ERROR: "WIDGET_REMOVE_CHILD_ERROR", - WIDGET_ADD_CHILD_ERROR: "WIDGET_ADD_CHILD_ERROR", - FETCH_PAGE_ERROR: "FETCH_PAGE_ERROR", - SAVE_PAGE_ERROR: "SAVE_PAGE_ERROR", - FETCH_WIDGET_CARDS_ERROR: "FETCH_WIDGET_CARDS_ERROR", - WIDGET_OPERATION_ERROR: "WIDGET_OPERATION_ERROR", - WIDGET_SELECTION_ERROR: "WIDGET_SELECTION_ERROR", - FETCH_PROPERTY_PANE_CONFIGS_ERROR: "FETCH_PROPERTY_PANE_CONFIGS_ERROR", - FETCH_CONFIGS_ERROR: "FETCH_CONFIGS_ERROR", - PROPERTY_PANE_ERROR: "PROPERTY_PANE_ERROR", - FETCH_ACTIONS_ERROR: "FETCH_ACTIONS_ERROR", - FETCH_JS_ACTIONS_ERROR: "FETCH_JS_ACTIONS_ERROR", - UPDATE_WIDGET_PROPERTY_ERROR: "UPDATE_WIDGET_PROPERTY_ERROR", - CREATE_ACTION_ERROR: "CREATE_ACTION_ERROR", - UPDATE_ACTION_ERROR: "UPDATE_ACTION_ERROR", - DELETE_ACTION_ERROR: "DELETE_ACTION_ERROR", - RUN_ACTION_ERROR: "RUN_ACTION_ERROR", - EXECUTE_PLUGIN_ACTION_ERROR: "EXECUTE_PLUGIN_ACTION_ERROR", - FETCH_DATASOURCES_ERROR: "FETCH_DATASOURCES_ERROR", - FETCH_MOCK_DATASOURCES_ERROR: "FETCH_MOCK_DATASOURCES_ERROR", - ADD_MOCK_DATASOURCES_ERROR: "ADD_MOCK_DATASOURCES_ERROR", - UPDATE_DATASOURCE_ERROR: "UPDATE_DATASOURCE_ERROR", - SAVE_DATASOURCE_NAME_ERROR: "SAVE_DATASOURCE_NAME_ERROR", - UPDATE_DATASOURCE_NAME_ERROR: "UPDATE_DATASOURCE_NAME_ERROR", - CREATE_DATASOURCE_ERROR: "CREATE_DATASOURCE_ERROR", - DELETE_DATASOURCE_ERROR: "DELETE_DATASOURCE_ERROR", - FETCH_DATASOURCE_STRUCTURE_ERROR: "FETCH_DATASOURCE_STRUCTURE_ERROR", - REFRESH_DATASOURCE_STRUCTURE_ERROR: "REFRESH_DATASOURCE_STRUCTURE_ERROR", - CREATE_ONBOARDING_DBQUERY_ERROR: "CREATE_ONBOARDING_DBQUERY_ERROR", - FETCH_PUBLISHED_PAGE_ERROR: "FETCH_PUBLISHED_PAGE_ERROR", - PUBLISH_APPLICATION_ERROR: "PUBLISH_APPLICATION_ERROR", - FETCH_USER_DETAILS_ERROR: "FETCH_USER_DETAILS_ERROR", - CREATE_PAGE_ERROR: "CREATE_PAGE_ERROR", - FETCH_PAGE_LIST_ERROR: "FETCH_PAGE_LIST_ERROR", - FETCH_APPLICATION_ERROR: "FETCH_APPLICATION_ERROR", - CREATE_APPLICATION_ERROR: "CREATE_APPLICATION_ERROR", - LOGIN_USER_ERROR: "LOGIN_USER_ERROR", - CREATE_USER_ERROR: "CREATE_USER_ERROR", - RESET_USER_PASSWORD_ERROR: "RESET_USER_PASSWORD_ERROR", - CHANGE_WORKSPACE_USER_ROLE_ERROR: "CHANGE_WORKSPACE_USER_ROLE_ERROR", - SAVE_JS_EXECUTION_RECORD: "SAVE_JS_EXECUTION_RECORD", - FETCH_PLUGINS_ERROR: "FETCH_PLUGINS_ERROR", - FETCH_PLUGIN_FORM_CONFIGS_ERROR: "FETCH_PLUGIN_FORM_CONFIGS_ERROR", - UPDATE_WORKSPACE_NAME_ERROR: "UPDATE_WORKSPACE_NAME_ERROR", - SWITCH_WORKSPACE_ERROR: "SWITCH_WORKSPACE_ERROR", - TEST_DATASOURCE_ERROR: "TEST_DATASOURCE_ERROR", - FORGOT_PASSWORD_ERROR: "FORGOT_PASSWORD_ERROR", - RESET_PASSWORD_VERIFY_TOKEN_ERROR: "RESET_PASSWORD_VERIFY_TOKEN_ERROR", - INVITE_USERS_TO_WORKSPACE_ERROR: "INVITE_USERS_TO_WORKSPACE_ERROR", - SAVE_WORKSPACE_ERROR: "SAVE_WORKSPACE_ERROR", - FETCH_WORKSPACE_ERROR: "FETCH_WORKSPACE_ERROR", - FETCH_WORKSPACES_ERROR: "FETCH_WORKSPACES_ERROR", - FETCH_USER_ERROR: "FETCH_USER_ERROR", - SET_CURRENT_USER_ERROR: "SET_CURRENT_USER_ERROR", - LOGOUT_USER_ERROR: "LOGOUT_USER_ERROR", - VERIFY_INVITE_ERROR: "VERIFY_INVITE_ERROR", - UPDATE_PAGE_ERROR: "UPDATE_PAGE_ERROR", - MOVE_ACTION_ERROR: "MOVE_ACTION_ERROR", - COPY_ACTION_ERROR: "COPY_ACTION_ERROR", - DELETE_PAGE_ERROR: "DELETE_PAGE_ERROR", - CLONE_PAGE_ERROR: "CLONE_PAGE_ERROR", - DELETE_APPLICATION_ERROR: "DELETE_APPLICATION_ERROR", - SET_DEFAULT_APPLICATION_PAGE_ERROR: "SET_DEFAULT_APPLICATION_PAGE_ERROR", - CREATE_WORKSPACE_ERROR: "CREATE_WORKSPACE_ERROR", - ADD_USER_TO_WORKSPACE_ERROR: "ADD_USER_TO_WORKSPACE_ERROR", - UPDATE_WIDGET_NAME_ERROR: "UPDATE_WIDGET_NAME_ERROR", - FETCH_ACTIONS_FOR_PAGE_ERROR: "FETCH_ACTIONS_FOR_PAGE_ERROR", - SUBMIT_CURL_FORM_ERROR: "SUBMIT_CURL_FORM_ERROR", - ADD_API_TO_PAGE_ERROR: "ADD_API_TO_PAGE_ERROR", - CREATE_MODAL_ERROR: "CREATE_MODAL_ERROR", - SAVE_ACTION_NAME_ERROR: "SAVE_ACTION_NAME_ERROR", - FETCH_USER_APPLICATIONS_WORKSPACES_ERROR: - "FETCH_USER_APPLICATIONS_WORKSPACES_ERROR", - FETCH_WORKSPACE_ENTITIES_ERROR: "FETCH_WORKSPACE_ENTITIES_ERROR", - FORK_APPLICATION_ERROR: "FORK_APPLICATION_ERROR", - IMPORT_APPLICATION_ERROR: "IMPORT_APPLICATION_ERROR", - PARTIAL_IMPORT_ERROR: "PARTIAL_IMPORT_ERROR", - FETCH_ALL_USERS_ERROR: "FETCH_ALL_USERS_ERROR", - FETCH_ALL_ROLES_ERROR: "FETCH_ALL_ROLES_ERROR", - UPDATE_USER_DETAILS_ERROR: "UPDATE_USER_DETAILS_ERROR", - FETCH_ACTIONS_VIEW_MODE_ERROR: "FETCH_ACTION_VIEW_MODE_ERROR", - SAVE_API_NAME_ERROR: "SAVE_API_NAME_ERROR", - POPULATE_PAGEDSLS_ERROR: "POPULATE_PAGEDSLS_ERROR", - FETCH_PAGE_DSL_ERROR: "FETCH_PAGE_DSL_ERROR", - TOGGLE_ACTION_EXECUTE_ON_LOAD_ERROR: "TOGGLE_ACTION_EXECUTE_ON_LOAD_ERROR", - COPY_SELECTED_WIDGET_ERROR: "COPY_SELECTED_WIDGET_ERROR", - PASTE_COPIED_WIDGET_ERROR: "PASTE_COPIED_WIDGET_ERROR", - FAILED_CORRECTING_BINDING_PATHS: "FAILED_CORRECTING_BINDING_PATHS", - CREATE_JS_ACTION_ERROR: "CREATE_JS_ACTION_ERROR", - UPDATE_JS_ACTION_ERROR: "UPDATE_JS_ACTION_ERROR", - COPY_JS_ACTION_ERROR: "COPY_JS_ACTION_ERROR", - MOVE_JS_ACTION_ERROR: "MOVE_JS_ACTION_ERROR", - DELETE_WORKSPACE_USER_ERROR: "DELETE_WORKSPACE_USER_ERROR", - CHANGE_APPVIEW_ACCESS_ERROR: "CHANGE_APPVIEW_ACCESS_ERROR", - SAVE_JS_COLLECTION_NAME_ERROR: "SAVE_JS_COLLECTION_NAME_ERROR", - FETCH_JS_ACTIONS_FOR_PAGE_ERROR: "FETCH_JS_ACTIONS_FOR_PAGE_ERROR", - FETCH_JS_ACTIONS_VIEW_MODE_ERROR: "FETCH_JS_ACTIONS_VIEW_MODE_ERROR", - GENERATE_TEMPLATE_PAGE_ERROR: "GENERATE_TEMPLATE_PAGE_ERROR", - FETCH_PLUGIN_FORM_ERROR: "FETCH_PLUGIN_FORM_ERROR", - EXECUTE_DATASOURCE_QUERY_ERROR: "EXECUTE_DATASOURCE_QUERY_ERROR", - INVITED_USER_SIGNUP_ERROR: "INVITED_USER_SIGNUP_ERROR", - SET_PAGE_ORDER_ERROR: "SET_PAGE_ORDER_ERROR", - DELETE_JS_ACTION_ERROR: "DELETE_JS_ACTION_ERROR", - REFACTOR_JS_ACTION_NAME_ERROR: "REFACTOR_JS_ACTION_NAME_ERROR", - FETCH_RELEASES_ERROR: "FETCH_RELEASES_ERROR", - RESTART_SERVER_ERROR: "RESTART_SERVER_ERROR", - UPDATE_JS_ACTION_BODY_ERROR: "UPDATE_JS_ACTION_BODY_ERROR", - FETCH_APP_THEMES_ERROR: "FETCH_APP_THEMES_ERROR", - SET_DEFAULT_SELECTED_THEME_ERROR: "SET_DEFAULT_SELECTED_THEME_ERROR", - FETCH_SELECTED_APP_THEME_ERROR: "FETCH_SELECTED_APP_THEME_ERROR", - UPDATE_SELECTED_APP_THEME_ERROR: "UPDATE_SELECTED_APP_THEME_ERROR", - CHANGE_SELECTED_APP_THEME_ERROR: "CHANGE_SELECTED_APP_THEME_ERROR", - UPDATE_JS_FUNCTION_PROPERTY_ERROR: "UPDATE_JS_FUNCTION_PROPERTY_ERROR", - DELETE_WORKSPACE_ERROR: "DELETE_WORKSPACE_ERROR", - REFLOW_BETA_FLAGS_INIT_ERROR: "REFLOW_BETA_FLAGS_INIT_ERROR", - DELETE_APP_THEME_ERROR: "DELETE_APP_THEME_ERROR", - GET_ALL_TEMPLATES_ERROR: "GET_ALL_TEMPLATES_ERROR", - GET_SIMILAR_TEMPLATES_ERROR: "GET_SIMILAR_TEMPLATES_ERROR", - IMPORT_TEMPLATE_TO_ORGANISATION_ERROR: - "IMPORT_TEMPLATE_TO_ORGANISATION_ERROR", - IMPORT_TEMPLATE_TO_APPLICATION_ERROR: "IMPORT_TEMPLATE_TO_APPLICATION_ERROR", - IMPORT_TEMPLATE_TO_WORKSPACE_ERROR: "IMPORT_TEMPLATE_TO_WORKSPACE_ERROR", - DRAGGING_BUILDING_BLOCK_TO_CANVAS_ERROR: - "DRAGGING_BUILDING_BLOCK_TO_CANVAS_ERROR", - GET_DEFAULT_PLUGINS_ERROR: "GET_DEFAULT_PLUGINS_ERROR", - GET_TEMPLATE_ERROR: "GET_TEMPLATE_ERROR", - GET_TEMPLATE_FILTERS_ERROR: "GET_TEMPLATE_FILTERS_ERROR", - FETCH_CURRENT_TENANT_CONFIG_ERROR: "FETCH_CURRENT_TENANT_CONFIG_ERROR", - UPDATE_TENANT_CONFIG_ERROR: "UPDATE_TENANT_CONFIG_ERROR", - INSTALL_LIBRARY_FAILED: "INSTALL_LIBRARY_FAILED", - UNINSTALL_LIBRARY_FAILED: "UNINSTALL_LIBRARY_FAILED", - FETCH_JS_LIBRARIES_FAILED: "FETCH_JS_LIBRARIES_FAILED", - UPLOAD_NAVIGATION_LOGO_ERROR: "UPLOAD_NAVIGATION_LOGO_ERROR", - DELETE_NAVIGATION_LOGO_ERROR: "DELETE_NAVIGATION_LOGO_ERROR", - USER_PROFILE_PICTURE_UPLOAD_FAILED: "USER_PROFILE_PICTURE_UPLOAD_FAILED", - USER_IMAGE_INVALID_FILE_CONTENT: "USER_IMAGE_INVALID_FILE_CONTENT", - FETCH_PRODUCT_ALERT_FAILED: "FETCH_PRODUCT_ALERT_FAILED", - PUBLISH_APP_AS_COMMUNITY_TEMPLATE_ERROR: - "PUBLISH_APP_AS_COMMUNITY_TEMPLATE_ERROR", - IMPORT_TEMPLATE_TO_APPLICATION_ONBOARDING_FLOW_ERROR: - "IMPORT_TEMPLATE_TO_APPLICATION_ONBOARDING_FLOW_ERROR", - SETUP_PAGE_ERROR: "SETUP_PAGE_ERROR", - SETUP_PUBLISHED_PAGE_ERROR: "SETUP_PUBLISHED_PAGE_ERROR", - PARTIAL_EXPORT_ERROR: "PARTIAL_EXPORT_ERROR", - SEARCH_WORKSPACE_ENTITIES_ERROR: "SEARCH_WORKSPACE_ENTITIES_ERROR", - FETCH_ALL_APPLICATIONS_OF_WORKSPACE_ERROR: - "FETCH_ALL_APPLICATIONS_OF_WORKSPACE_ERROR", + ...ActionActionErrorTypes, + ...AdminSettingsActionErrorTypes, + ...AppThemeActionErrorTypes, + ...ApplicationActionErrorTypes, + ...AppViewActionErrorTypes, + ...BuildingBlocksActionErrorTypes, + ...CurlImportActionErrorTypes, + ...DatasourceEditorActionErrorTypes, + ...EvaluationActionErrorTypes, + ...FeatureFlagActionErrorTypes, + ...GitActionErrorTypes, + ...IDEActionErrorTypes, + ...ImportExportActionErrorTypes, + ...JSEditorActionErrorTypes, + ...JSLibraryActionErrorTypes, + ...PageActionErrorTypes, + ...PlatformActionErrorTypes, + ...PluginActionErrorTypes, + ...TemplateActionErrorTypes, + ...TenantActionErrorTypes, + ...UserAuthActionErrorTypes, + ...UserProfileActionErrorTypes, + ...WidgetCanvasActionErrorTypes, + ...WidgetOperationActionErrorTypes, + ...WorkspaceActionErrorTypes, }; +export type ReduxActionErrorType = + (typeof ReduxActionErrorTypes)[keyof typeof ReduxActionErrorTypes]; + +export interface ReduxAction { + type: ReduxActionType | ReduxActionErrorType; + payload: T; +} + export const ReduxFormActionTypes = { VALUE_CHANGE: "@@redux-form/CHANGE", ARRAY_REMOVE: "@@redux-form/ARRAY_REMOVE", ARRAY_PUSH: "@@redux-form/ARRAY_PUSH", }; -export enum ReplayReduxActionTypes { - UNDO = "undo", - REDO = "redo", -} - -export const ReflowReduxActionTypes = { - STOP_REFLOW: "STOP_REFLOW", - REFLOW_MOVE: "REFLOW_MOVE", -}; - export const WidgetReduxActionTypes: { [key: string]: string } = { WIDGET_ADD_CHILD: "WIDGET_ADD_CHILD", WIDGET_CHILD_ADDED: "WIDGET_CHILD_ADDED", @@ -1174,16 +1360,10 @@ export const WidgetReduxActionTypes: { [key: string]: string } = { WIDGET_UPDATE_PROPERTY: "WIDGET_UPDATE_PROPERTY", }; -export type ReduxActionErrorType = - (typeof ReduxActionErrorTypes)[keyof typeof ReduxActionErrorTypes]; - -export interface ReduxAction { - type: ReduxActionType | ReduxActionErrorType; - payload: T; -} export interface BufferedReduxAction extends ReduxAction { affectedJSObjects: AffectedJSObjects; } + export type ReduxActionWithoutPayload = Pick, "type">; export interface ReduxActionWithMeta extends ReduxAction { @@ -1223,98 +1403,3 @@ export interface ReduxActionErrorPayload { code?: ERROR_CODES; stackTrace?: string; } - -export interface UpdateCanvasPayload { - pageWidgetId: string; - widgets: { [widgetId: string]: WidgetProps }; - currentLayoutId: string; - currentPageId: string; - currentPageName: string; - currentApplicationId: string; - dsl: Partial; - pageActions: PageAction[][]; - updatedWidgetIds?: string[]; - layoutOnLoadActionErrors?: LayoutOnLoadActionErrors[]; -} - -export interface ShowPropertyPanePayload { - widgetId: string; - callForDragOrResize: boolean; - force: boolean; -} - -export interface Page { - pageName: string; - description?: string; - pageId: string; - basePageId: string; - isDefault: boolean; - latest?: boolean; - isHidden?: boolean; - slug: string; - customSlug?: string; - userPermissions?: string[]; -} - -export interface ClonePageSuccessPayload { - pageName: string; - description?: string; - pageId: string; - basePageId: string; - layoutId: string; - isDefault: boolean; - slug: string; -} - -export interface ApplicationPayload { - id: string; - baseId: string; - name: string; - color?: string; - icon?: string; - workspaceId: string; - defaultPageId: string; - defaultBasePageId: string; - isPublic?: boolean; - userPermissions?: string[]; - appIsExample: boolean; - slug: string; - forkingEnabled?: boolean; - appLayout?: AppLayoutConfig; - gitApplicationMetadata?: GitApplicationMetadata; - lastDeployedAt?: string; - applicationId?: string; - modifiedBy?: string; - modifiedAt?: string; - pages: ApplicationPagePayload[]; - applicationVersion: ApplicationVersion; - isAutoUpdate?: boolean; - isManualUpdate?: boolean; - embedSetting?: AppEmbedSetting; - applicationDetail?: { - appPositioning?: LayoutSystemTypeConfig; - navigationSetting?: NavigationSetting; - themeSetting?: ThemeSetting; - }; - collapseInvisibleWidgets?: boolean; - evaluationVersion?: EvaluationVersion; - isPublishingAppToCommunityTemplate?: boolean; - isCommunityTemplate?: boolean; - publishedAppToCommunityTemplate?: boolean; - forkedFromTemplateTitle?: string; -} - -export interface WorkspaceDetails { - workspace: Workspace; - // TODO: Fix this the next time the file is edited - // eslint-disable-next-line @typescript-eslint/no-explicit-any - applications: any[]; -} - -export interface LoadWidgetEditorPayload { - widgets: WidgetProps[]; -} - -export interface LoadWidgetSidebarPayload { - cards: { [id: string]: WidgetCardProps[] }; -} diff --git a/app/client/src/ce/entities/DataTree/types.ts b/app/client/src/ce/entities/DataTree/types.ts index e795ecb4b6a..4357954002c 100644 --- a/app/client/src/ce/entities/DataTree/types.ts +++ b/app/client/src/ce/entities/DataTree/types.ts @@ -5,7 +5,7 @@ import type { ActionConfig, PluginType } from "entities/Action"; import type { ActionDescription } from "ee/workers/Evaluation/fns"; import type { Variable } from "entities/JSCollection"; import type { DependencyMap, DynamicPath } from "utils/DynamicBindingUtils"; -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import type { MetaWidgetsReduxState } from "reducers/entityReducers/metaWidgetsReducer"; import type { WidgetConfigProps } from "WidgetProvider/constants"; import type { ActionDataState } from "ee/reducers/entityReducers/actionsReducer"; diff --git a/app/client/src/ce/pages/AppViewer/NavigationLogo.tsx b/app/client/src/ce/pages/AppViewer/NavigationLogo.tsx index 7da1628a8d5..eb4f1520592 100644 --- a/app/client/src/ce/pages/AppViewer/NavigationLogo.tsx +++ b/app/client/src/ce/pages/AppViewer/NavigationLogo.tsx @@ -9,7 +9,7 @@ import { getAppMode, getCurrentApplication, } from "ee/selectors/applicationSelectors"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { getCurrentPageId, getViewModePageList, diff --git a/app/client/src/ce/pages/Applications/ApplicationCardList.tsx b/app/client/src/ce/pages/Applications/ApplicationCardList.tsx index 023fe608fc7..d67f0025ed4 100644 --- a/app/client/src/ce/pages/Applications/ApplicationCardList.tsx +++ b/app/client/src/ce/pages/Applications/ApplicationCardList.tsx @@ -7,7 +7,7 @@ import CardList from "pages/Applications/CardList"; import { PaddingWrapper } from "pages/Applications/CommonElements"; import { NoAppsFound } from "ee/pages/Applications"; import ApplicationCard from "pages/Applications/ApplicationCard"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import type { UpdateApplicationPayload } from "ee/api/ApplicationApi"; import { APPLICATION_CARD_LIST_ZERO_STATE, diff --git a/app/client/src/ce/pages/Applications/ResourceListLoader.tsx b/app/client/src/ce/pages/Applications/ResourceListLoader.tsx index 8ef1c861037..0854401ee44 100644 --- a/app/client/src/ce/pages/Applications/ResourceListLoader.tsx +++ b/app/client/src/ce/pages/Applications/ResourceListLoader.tsx @@ -5,7 +5,7 @@ import Card from "components/common/Card"; import CardList from "pages/Applications/CardList"; import { Button } from "@appsmith/ads"; import { PaddingWrapper } from "pages/Applications/CommonElements"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; interface ResourcesLoaderProps { isMobile: boolean; diff --git a/app/client/src/ce/pages/Applications/index.tsx b/app/client/src/ce/pages/Applications/index.tsx index 6e5c770a217..42d32dfee46 100644 --- a/app/client/src/ce/pages/Applications/index.tsx +++ b/app/client/src/ce/pages/Applications/index.tsx @@ -20,7 +20,7 @@ import { NO_WORKSPACE_HEADING, WORKSPACES_HEADING, } from "ee/constants/messages"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import { createWorkspaceSubmitHandler } from "ee/pages/workspace/helpers"; import type { AppState } from "ee/reducers"; diff --git a/app/client/src/ce/reducers/entityReducers/index.ts b/app/client/src/ce/reducers/entityReducers/index.ts index 94a5fed8ecb..e3b2a593c08 100644 --- a/app/client/src/ce/reducers/entityReducers/index.ts +++ b/app/client/src/ce/reducers/entityReducers/index.ts @@ -5,7 +5,6 @@ import canvasWidgetsStructureReducer from "reducers/entityReducers/canvasWidgets import metaWidgetsReducer from "reducers/entityReducers/metaWidgetsReducer"; import datasourceReducer from "reducers/entityReducers/datasourceReducer"; import jsActionsReducer from "ee/reducers/entityReducers/jsActionsReducer"; -import jsExecutionsReducer from "reducers/entityReducers/jsExecutionsReducer"; import metaReducer from "reducers/entityReducers/metaReducer"; import pageListReducer from "reducers/entityReducers/pageListReducer"; import pluginsReducer from "reducers/entityReducers/pluginsReducer"; @@ -25,7 +24,6 @@ export const entityReducerObject = { actions: actionsReducer, datasources: datasourceReducer, pageList: pageListReducer, - jsExecutions: jsExecutionsReducer, plugins: pluginsReducer, meta: metaReducer, app: appReducer, diff --git a/app/client/src/ce/reducers/uiReducers/applicationsReducer.tsx b/app/client/src/ce/reducers/uiReducers/applicationsReducer.tsx index f94454f9e7a..e237b71eb46 100644 --- a/app/client/src/ce/reducers/uiReducers/applicationsReducer.tsx +++ b/app/client/src/ce/reducers/uiReducers/applicationsReducer.tsx @@ -1,8 +1,5 @@ import { createReducer } from "utils/ReducerUtils"; -import type { - ReduxAction, - ApplicationPayload, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes, ReduxActionErrorTypes, @@ -27,6 +24,7 @@ import { } from "constants/AppConstants"; import produce from "immer"; import { isEmpty } from "lodash"; +import type { ApplicationPayload } from "entities/Application"; export const initialState: ApplicationsReduxState = { isSavingAppName: false, diff --git a/app/client/src/ce/reducers/uiReducers/editorReducer.tsx b/app/client/src/ce/reducers/uiReducers/editorReducer.tsx index 4bd36aaf8af..98cc02f0246 100644 --- a/app/client/src/ce/reducers/uiReducers/editorReducer.tsx +++ b/app/client/src/ce/reducers/uiReducers/editorReducer.tsx @@ -1,8 +1,5 @@ import { createReducer } from "utils/ReducerUtils"; -import type { - ReduxAction, - UpdateCanvasPayload, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes, ReduxActionErrorTypes, @@ -13,6 +10,7 @@ import type { PageAction, } from "constants/AppsmithActionConstants/ActionConstants"; import type { UpdatePageResponse } from "api/PageApi"; +import type { UpdateCanvasPayload } from "actions/pageActions"; export const initialState: EditorReduxState = { widgetConfigBuilt: false, diff --git a/app/client/src/ce/reducers/uiReducers/selectedWorkspaceReducer.ts b/app/client/src/ce/reducers/uiReducers/selectedWorkspaceReducer.ts index 864bc7f0d93..18e546fad77 100644 --- a/app/client/src/ce/reducers/uiReducers/selectedWorkspaceReducer.ts +++ b/app/client/src/ce/reducers/uiReducers/selectedWorkspaceReducer.ts @@ -1,8 +1,6 @@ import { createImmerReducer } from "utils/ReducerUtils"; -import type { - ApplicationPayload, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionErrorTypes, ReduxActionTypes, diff --git a/app/client/src/ce/sagas/ApplicationSagas.tsx b/app/client/src/ce/sagas/ApplicationSagas.tsx index e48e0f6e887..e529199407b 100644 --- a/app/client/src/ce/sagas/ApplicationSagas.tsx +++ b/app/client/src/ce/sagas/ApplicationSagas.tsx @@ -1,8 +1,4 @@ -import type { - ApplicationPayload, - Page, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionErrorTypes, ReduxActionTypes, @@ -122,6 +118,8 @@ import { import equal from "fast-deep-equal"; import { getFromServerWhenNoPrefetchedResult } from "sagas/helper"; import { getIsAnvilLayoutEnabled } from "layoutSystems/anvil/integrations/selectors"; +import type { Page } from "entities/Page"; +import type { ApplicationPayload } from "entities/Application"; export const findDefaultPage = (pages: ApplicationPagePayload[] = []) => { const defaultPage = pages.find((page) => page.isDefault) ?? pages[0]; diff --git a/app/client/src/ce/sagas/PageSagas.tsx b/app/client/src/ce/sagas/PageSagas.tsx index 78ae4982403..c58237cc015 100644 --- a/app/client/src/ce/sagas/PageSagas.tsx +++ b/app/client/src/ce/sagas/PageSagas.tsx @@ -1,9 +1,5 @@ import type { AppState } from "ee/reducers"; -import type { - Page, - ReduxAction, - UpdateCanvasPayload, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionErrorTypes, ReduxActionTypes, @@ -18,6 +14,7 @@ import type { SetPageOrderActionPayload, SetupPageActionPayload, SetupPublishedPageActionPayload, + UpdateCanvasPayload, UpdatePageActionPayload, } from "actions/pageActions"; import { @@ -148,6 +145,7 @@ import { ActionExecutionContext } from "entities/Action"; import type { LayoutSystemTypes } from "layoutSystems/types"; import { getIsAnvilLayout } from "layoutSystems/anvil/integrations/selectors"; import { convertToBasePageIdSelector } from "selectors/pageListSelectors"; +import type { Page } from "entities/Page"; export const checkIfMigrationIsNeeded = ( fetchPageResponse?: FetchPageResponse, diff --git a/app/client/src/ce/sagas/index.tsx b/app/client/src/ce/sagas/index.tsx index d93601044c6..e18571b0790 100644 --- a/app/client/src/ce/sagas/index.tsx +++ b/app/client/src/ce/sagas/index.tsx @@ -42,7 +42,6 @@ import snapshotSagas from "sagas/SnapshotSagas"; import snipingModeSagas from "sagas/SnipingModeSagas"; import templateSagas from "sagas/TemplatesSagas"; import themeSagas from "sagas/ThemeSaga"; -import utilSagas from "sagas/UtilSagas"; import websocketSagas from "sagas/WebsocketSagas/WebsocketSagas"; import actionExecutionChangeListeners from "sagas/WidgetLoadingSaga"; import widgetOperationSagas from "sagas/WidgetOperationSagas"; @@ -83,7 +82,6 @@ export const sagas = [ onboardingSagas, actionExecutionChangeListeners, formEvaluationChangeListener, - utilSagas, globalSearchSagas, websocketSagas, debuggerSagas, diff --git a/app/client/src/ce/selectors/applicationSelectors.tsx b/app/client/src/ce/selectors/applicationSelectors.tsx index 26c0ca0eda3..50be9a4195a 100644 --- a/app/client/src/ce/selectors/applicationSelectors.tsx +++ b/app/client/src/ce/selectors/applicationSelectors.tsx @@ -5,7 +5,7 @@ import type { ApplicationsReduxState, creatingApplicationMap, } from "ee/reducers/uiReducers/applicationsReducer"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import Fuse from "fuse.js"; import type { GitApplicationMetadata } from "ee/api/ApplicationApi"; import { getApplicationsOfWorkspace } from "ee/selectors/selectedWorkspaceSelectors"; diff --git a/app/client/src/ce/utils/actionExecutionUtils.ts b/app/client/src/ce/utils/actionExecutionUtils.ts index 7159403f469..f80e29b2122 100644 --- a/app/client/src/ce/utils/actionExecutionUtils.ts +++ b/app/client/src/ce/utils/actionExecutionUtils.ts @@ -1,7 +1,7 @@ import type { Action } from "entities/Action"; import { ActionExecutionContext } from "entities/Action"; import type { JSAction, JSCollection } from "entities/JSCollection"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import store from "store"; import { getAppMode } from "ee/selectors/applicationSelectors"; import { getDatasource } from "ee/selectors/entitiesSelector"; diff --git a/app/client/src/components/editorComponents/form/fields/StyledFormComponents.tsx b/app/client/src/components/editorComponents/form/fields/StyledFormComponents.tsx index 259abf538ea..6cc500f53a4 100644 --- a/app/client/src/components/editorComponents/form/fields/StyledFormComponents.tsx +++ b/app/client/src/components/editorComponents/form/fields/StyledFormComponents.tsx @@ -8,8 +8,8 @@ export const StyledFormInfo = styled.span<{ config?: ControlProps }>` //SWITCH and CHECKBOX display label text and form input aligned side by side props?.config?.controlType !== "SWITCH" && props?.config?.controlType !== "CHECKBOX" - ? "block;" - : "inline-block;"} + ? "block" + : "inline-block"}; font-weight: normal; color: var(--ads-v2-color-fg-muted); font-size: 12px; @@ -19,7 +19,12 @@ export const StyledFormInfo = styled.span<{ config?: ControlProps }>` props?.config?.controlType !== "CHECKBOX" ? "1px" : "0px"}; - margin-top: 5px; + margin-top: ${(props) => + //SWITCH and CHECKBOX display label text and form input aligned side by side but not for others + props?.config?.controlType === "SWITCH" || + props?.config?.controlType === "CHECKBOX" + ? "0px" + : "5px"}; margin-bottom: ${(props) => //SWITCH and CHECKBOX display label text and form input aligned side by side but not for others props?.config?.controlType !== "SWITCH" && @@ -30,15 +35,15 @@ export const StyledFormInfo = styled.span<{ config?: ControlProps }>` `; const FormSubtitleText = styled.span<{ config?: ControlProps }>` -display: ${(props) => - //SWITCH and CHECKBOX display label text and form input aligned side by side - props?.config?.controlType !== "SWITCH" && - props?.config?.controlType !== "CHECKBOX" - ? "block;" - : "inline;"} -font-weight: normal; -color: var(--ads-v2-color-fg-muted); -font-size: 12px; + display: ${(props) => + //SWITCH and CHECKBOX display label text and form input aligned side by side + props?.config?.controlType !== "SWITCH" && + props?.config?.controlType !== "CHECKBOX" + ? "block" + : "inline"}; + font-weight: normal; + color: var(--ads-v2-color-fg-muted); + font-size: 12px; `; //Styled help text, intended to be used with Form Fields diff --git a/app/client/src/components/formControls/DynamicTextFieldControl.tsx b/app/client/src/components/formControls/DynamicTextFieldControl.tsx index f4bbbf696ff..de390e699e6 100644 --- a/app/client/src/components/formControls/DynamicTextFieldControl.tsx +++ b/app/client/src/components/formControls/DynamicTextFieldControl.tsx @@ -73,7 +73,7 @@ class DynamicTextControl extends BaseControl< disabled={this.props.disabled} evaluatedPopUpLabel={this?.props?.label} evaluationSubstitutionType={evaluationSubstitutionType} - height="calc(100vh / 4)" + height="200px" mode={mode} name={this.props.configProperty} placeholder={placeholderText} diff --git a/app/client/src/entities/Application/index.ts b/app/client/src/entities/Application/index.ts new file mode 100644 index 00000000000..b0be6ea5f11 --- /dev/null +++ b/app/client/src/entities/Application/index.ts @@ -0,0 +1 @@ +export { type ApplicationPayload } from "./types"; diff --git a/app/client/src/entities/Application/types.ts b/app/client/src/entities/Application/types.ts new file mode 100644 index 00000000000..b2d657ba229 --- /dev/null +++ b/app/client/src/entities/Application/types.ts @@ -0,0 +1,48 @@ +import type { AppLayoutConfig } from "reducers/entityReducers/pageListReducer"; +import type { ApplicationVersion } from "ee/actions/applicationActions"; +import type { LayoutSystemTypeConfig } from "layoutSystems/types"; +import type { NavigationSetting, ThemeSetting } from "constants/AppConstants"; +import type { EvaluationVersion } from "constants/EvalConstants"; +import type { + AppEmbedSetting, + ApplicationPagePayload, + GitApplicationMetadata, +} from "ee/api/ApplicationApi"; + +export interface ApplicationPayload { + id: string; + baseId: string; + name: string; + color?: string; + icon?: string; + workspaceId: string; + defaultPageId: string; + defaultBasePageId: string; + isPublic?: boolean; + userPermissions?: string[]; + appIsExample: boolean; + slug: string; + forkingEnabled?: boolean; + appLayout?: AppLayoutConfig; + gitApplicationMetadata?: GitApplicationMetadata; + lastDeployedAt?: string; + applicationId?: string; + modifiedBy?: string; + modifiedAt?: string; + pages: ApplicationPagePayload[]; + applicationVersion: ApplicationVersion; + isAutoUpdate?: boolean; + isManualUpdate?: boolean; + embedSetting?: AppEmbedSetting; + applicationDetail?: { + appPositioning?: LayoutSystemTypeConfig; + navigationSetting?: NavigationSetting; + themeSetting?: ThemeSetting; + }; + collapseInvisibleWidgets?: boolean; + evaluationVersion?: EvaluationVersion; + isPublishingAppToCommunityTemplate?: boolean; + isCommunityTemplate?: boolean; + publishedAppToCommunityTemplate?: boolean; + forkedFromTemplateTitle?: string; +} diff --git a/app/client/src/entities/Engine/AppEditorEngine.ts b/app/client/src/entities/Engine/AppEditorEngine.ts index ab77ec903a9..c8b7608d81f 100644 --- a/app/client/src/entities/Engine/AppEditorEngine.ts +++ b/app/client/src/entities/Engine/AppEditorEngine.ts @@ -19,7 +19,7 @@ import { fetchActions, } from "actions/pluginActionActions"; import { fetchPluginFormConfigs } from "actions/pluginActions"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { ReduxActionErrorTypes, ReduxActionTypes, diff --git a/app/client/src/entities/Engine/index.ts b/app/client/src/entities/Engine/index.ts index 1239baddd49..a1824c5591b 100644 --- a/app/client/src/entities/Engine/index.ts +++ b/app/client/src/entities/Engine/index.ts @@ -1,6 +1,6 @@ import { fetchApplication } from "ee/actions/applicationActions"; import { setAppMode, updateAppStore } from "actions/pageActions"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { ReduxActionErrorTypes, ReduxActionTypes, diff --git a/app/client/src/entities/Page/index.ts b/app/client/src/entities/Page/index.ts new file mode 100644 index 00000000000..1f25732afb3 --- /dev/null +++ b/app/client/src/entities/Page/index.ts @@ -0,0 +1 @@ +export type { Page } from "./types"; diff --git a/app/client/src/entities/Page/types.ts b/app/client/src/entities/Page/types.ts new file mode 100644 index 00000000000..762ed54811c --- /dev/null +++ b/app/client/src/entities/Page/types.ts @@ -0,0 +1,12 @@ +export interface Page { + pageName: string; + description?: string; + pageId: string; + basePageId: string; + isDefault: boolean; + latest?: boolean; + isHidden?: boolean; + slug: string; + customSlug?: string; + userPermissions?: string[]; +} diff --git a/app/client/src/entities/Replay/ReplayEntity/ReplayOperations.ts b/app/client/src/entities/Replay/ReplayEntity/ReplayOperations.ts new file mode 100644 index 00000000000..5458f6494d2 --- /dev/null +++ b/app/client/src/entities/Replay/ReplayEntity/ReplayOperations.ts @@ -0,0 +1,4 @@ +export enum ReplayOperation { + UNDO = "undo", + REDO = "redo", +} diff --git a/app/client/src/entities/URLRedirect/DefaultURLRedirect.ts b/app/client/src/entities/URLRedirect/DefaultURLRedirect.ts index 41b0cfa64c5..c2bda9640c2 100644 --- a/app/client/src/entities/URLRedirect/DefaultURLRedirect.ts +++ b/app/client/src/entities/URLRedirect/DefaultURLRedirect.ts @@ -1,5 +1,5 @@ import { ApplicationVersion } from "ee/actions/applicationActions"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { APP_MODE } from "entities/App"; import { select } from "redux-saga/effects"; import { builderURL } from "ee/RouteBuilder"; diff --git a/app/client/src/entities/URLRedirect/SlugURLRedirect.ts b/app/client/src/entities/URLRedirect/SlugURLRedirect.ts index 19b3baa4229..1b98d747578 100644 --- a/app/client/src/entities/URLRedirect/SlugURLRedirect.ts +++ b/app/client/src/entities/URLRedirect/SlugURLRedirect.ts @@ -1,7 +1,5 @@ -import type { - ApplicationPayload, - Page, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { Page } from "entities/Page"; import { APP_MODE } from "entities/App"; import { select } from "redux-saga/effects"; import { fillPathname, viewerURL } from "ee/RouteBuilder"; diff --git a/app/client/src/layoutSystems/anvil/common/AnvilFlexComponent.tsx b/app/client/src/layoutSystems/anvil/common/AnvilFlexComponent.tsx index f745e0ae020..b3f3b6274e2 100644 --- a/app/client/src/layoutSystems/anvil/common/AnvilFlexComponent.tsx +++ b/app/client/src/layoutSystems/anvil/common/AnvilFlexComponent.tsx @@ -15,7 +15,7 @@ import { Layers } from "constants/Layers"; import { noop } from "utils/AppsmithUtils"; import { convertFlexGrowToFlexBasis } from "../sectionSpaceDistributor/utils/spaceDistributionEditorUtils"; import styles from "./styles.module.css"; -import { AnvilDataAttributes } from "widgets/anvil/constants"; +import { AnvilDataAttributes } from "widgets/wds/constants"; const anvilWidgetStyleProps: CSSProperties = { position: "relative", diff --git a/app/client/src/layoutSystems/anvil/common/hooks/useWidgetBorderStyles.ts b/app/client/src/layoutSystems/anvil/common/hooks/useWidgetBorderStyles.ts index f0801abcc65..f3beef2eeaf 100644 --- a/app/client/src/layoutSystems/anvil/common/hooks/useWidgetBorderStyles.ts +++ b/app/client/src/layoutSystems/anvil/common/hooks/useWidgetBorderStyles.ts @@ -10,11 +10,7 @@ import { useSelector } from "react-redux"; import { combinedPreviewModeSelector } from "selectors/editorSelectors"; import { isWidgetFocused, isWidgetSelected } from "selectors/widgetSelectors"; -export function useWidgetBorderStyles( - widgetId: string, - widgetType: string, - elevatedBackground?: boolean, -) { +export function useWidgetBorderStyles(widgetId: string, widgetType: string) { /** Selectors */ const isFocused = useSelector(isWidgetFocused(widgetId)); const isSelected = useSelector(isWidgetSelected(widgetId)); @@ -44,14 +40,13 @@ export function useWidgetBorderStyles( if (isPreviewMode) { return {}; } - const isZoneDistributingSpace = - widgetsEffectedBySpaceDistribution.zones.includes(widgetId); - // If the widget is a zone and is distributing space and has no elevated background - const isZoneNotElevated = isZoneDistributingSpace && !elevatedBackground; + + const isSectionDistributingSpace = + widgetsEffectedBySpaceDistribution.section == widgetId; // Show the border if the widget has widgets being dragged or redistributed inside it const showDraggedOnBorder = (highlightShown && highlightShown.canvasId === widgetId) || - isZoneNotElevated; + isSectionDistributingSpace; const onCanvasUI = WidgetFactory.getConfig(widgetType)?.onCanvasUI; diff --git a/app/client/src/layoutSystems/anvil/editor/AnvilEditorFlexComponent.tsx b/app/client/src/layoutSystems/anvil/editor/AnvilEditorFlexComponent.tsx index a8a08e5420e..9ec2bdf280c 100644 --- a/app/client/src/layoutSystems/anvil/editor/AnvilEditorFlexComponent.tsx +++ b/app/client/src/layoutSystems/anvil/editor/AnvilEditorFlexComponent.tsx @@ -47,7 +47,6 @@ export const AnvilEditorFlexComponent = (props: AnvilFlexComponentProps) => { props.widgetName, props.isVisible, props.widgetType, - !!props.elevatedBackground, ref, ); useAnvilWidgetDrag(props.widgetId, props.widgetType, props.layoutId, ref); diff --git a/app/client/src/layoutSystems/anvil/editor/AnvilWidgetName/selectors.ts b/app/client/src/layoutSystems/anvil/editor/AnvilWidgetName/selectors.ts index 013500361c9..5d0a86a7d1b 100644 --- a/app/client/src/layoutSystems/anvil/editor/AnvilWidgetName/selectors.ts +++ b/app/client/src/layoutSystems/anvil/editor/AnvilWidgetName/selectors.ts @@ -70,17 +70,24 @@ export function shouldSelectOrFocus(widgetId: string) { isWidgetFocused, isDistributingSpace, ) => { - const baseCondition = isEditorOpen && !isDragging && !isDistributingSpace; + const baseCondition = isEditorOpen && !isDragging; let onCanvasUIState: NameComponentStates = "none"; if (baseCondition) { if (isWidgetSelected) onCanvasUIState = "select"; + + // when dragging the resizing handle, the action also makes + // the widget selected but we want to show it as focused while distributing space + if (isWidgetSelected && isDistributingSpace) onCanvasUIState = "focus"; + // A widget can be focused and selected at the same time. // I'm not sure if these should be mutually exclusive states. if (isWidgetFocused && !isWidgetSelected) onCanvasUIState = "focus"; } + if (highlightShown && highlightShown.canvasId === widgetId) { onCanvasUIState = "focus"; } + return onCanvasUIState; }, ); diff --git a/app/client/src/layoutSystems/anvil/editor/canvasArenas/hooks/useAnvilDnDListenerStates.ts b/app/client/src/layoutSystems/anvil/editor/canvasArenas/hooks/useAnvilDnDListenerStates.ts index 7d39902e6bf..1bb0747e291 100644 --- a/app/client/src/layoutSystems/anvil/editor/canvasArenas/hooks/useAnvilDnDListenerStates.ts +++ b/app/client/src/layoutSystems/anvil/editor/canvasArenas/hooks/useAnvilDnDListenerStates.ts @@ -15,7 +15,7 @@ import { getWidgetHierarchy } from "layoutSystems/anvil/utils/paste/utils"; import type { AnvilGlobalDnDStates } from "../../canvas/hooks/useAnvilGlobalDnDStates"; import { getWidgets } from "sagas/selectors"; import { useMemo } from "react"; -import { ZoneWidget } from "widgets/anvil/ZoneWidget"; +import { WDSZoneWidget } from "widgets/wds/WDSZoneWidget"; import { useAnvilWidgetElevation } from "../../canvas/providers/AnvilWidgetElevationProvider"; interface AnvilDnDListenerStatesProps { @@ -144,7 +144,7 @@ export const useAnvilDnDListenerStates = ({ }, [widgetProps, allWidgets]); const isElevatedWidget = useMemo(() => { - if (widgetProps.type === ZoneWidget.type) { + if (widgetProps.type === WDSZoneWidget.type) { const isAnyZoneElevated = allSiblingsWidgetIds.some( (each) => !!elevatedWidgets[each], ); diff --git a/app/client/src/layoutSystems/anvil/editor/canvasArenas/hooks/useAnvilWidgetDrop.ts b/app/client/src/layoutSystems/anvil/editor/canvasArenas/hooks/useAnvilWidgetDrop.ts index 46cf0d2a6f5..e03b3003b10 100644 --- a/app/client/src/layoutSystems/anvil/editor/canvasArenas/hooks/useAnvilWidgetDrop.ts +++ b/app/client/src/layoutSystems/anvil/editor/canvasArenas/hooks/useAnvilWidgetDrop.ts @@ -7,7 +7,7 @@ import type { AnvilHighlightInfo } from "layoutSystems/anvil/utils/anvilTypes"; import { useCallback } from "react"; import { useDispatch } from "react-redux"; import type { AnvilDnDListenerStates } from "./useAnvilDnDListenerStates"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; export const useAnvilWidgetDrop = ( canvasId: string, diff --git a/app/client/src/layoutSystems/anvil/editor/canvasArenas/utils/utils.ts b/app/client/src/layoutSystems/anvil/editor/canvasArenas/utils/utils.ts index 6b5db412e6b..c88f582e28e 100644 --- a/app/client/src/layoutSystems/anvil/editor/canvasArenas/utils/utils.ts +++ b/app/client/src/layoutSystems/anvil/editor/canvasArenas/utils/utils.ts @@ -7,7 +7,7 @@ import WidgetFactory from "WidgetProvider/factory"; import type { CanvasWidgetsReduxState } from "reducers/entityReducers/canvasWidgetsReducer"; import type { DragDetails } from "reducers/uiReducers/dragResizeReducer"; import { AnvilDraggedWidgetTypesEnum } from "../types"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; import { HIGHLIGHT_SIZE } from "layoutSystems/anvil/utils/constants"; import { getWidgetHierarchy } from "layoutSystems/anvil/utils/paste/utils"; diff --git a/app/client/src/layoutSystems/anvil/editor/hooks/useAnvilWidgetStyles.ts b/app/client/src/layoutSystems/anvil/editor/hooks/useAnvilWidgetStyles.ts index a76e124fd53..65dd6ecb5eb 100644 --- a/app/client/src/layoutSystems/anvil/editor/hooks/useAnvilWidgetStyles.ts +++ b/app/client/src/layoutSystems/anvil/editor/hooks/useAnvilWidgetStyles.ts @@ -4,14 +4,13 @@ import { useSelector } from "react-redux"; import { useWidgetBorderStyles } from "layoutSystems/anvil/common/hooks/useWidgetBorderStyles"; import type { AppState } from "ee/reducers"; import { getIsNewWidgetBeingDragged } from "sagas/selectors"; -import { AnvilDataAttributes } from "widgets/anvil/constants"; +import { AnvilDataAttributes } from "widgets/wds/constants"; export const useAnvilWidgetStyles = ( widgetId: string, widgetName: string, isVisible = true, widgetType: string, - elevatedBackground: boolean, ref: React.RefObject, // Ref object to reference the AnvilFlexComponent ) => { // Selectors to determine whether the widget is selected or dragging @@ -20,11 +19,7 @@ export const useAnvilWidgetStyles = ( (state: AppState) => state.ui.widgetDragResize.isDragging, ); // Get widget border styles using useWidgetBorderStyles - const widgetBorderStyles = useWidgetBorderStyles( - widgetId, - widgetType, - elevatedBackground, - ); + const widgetBorderStyles = useWidgetBorderStyles(widgetId, widgetType); // Effect hook to apply widget border styles to the widget useEffect(() => { diff --git a/app/client/src/layoutSystems/anvil/integrations/sagas/anvilDraggingSagas/anvilDraggingSagas.test.ts b/app/client/src/layoutSystems/anvil/integrations/sagas/anvilDraggingSagas/anvilDraggingSagas.test.ts index def078c838b..2e3d2e9d1c3 100644 --- a/app/client/src/layoutSystems/anvil/integrations/sagas/anvilDraggingSagas/anvilDraggingSagas.test.ts +++ b/app/client/src/layoutSystems/anvil/integrations/sagas/anvilDraggingSagas/anvilDraggingSagas.test.ts @@ -6,8 +6,8 @@ import { LayoutComponentTypes } from "layoutSystems/anvil/utils/anvilTypes"; import { expectSaga } from "redux-saga-test-plan"; import { getWidgets } from "sagas/selectors"; import { registerWidgets } from "WidgetProvider/factory/registrationHelper"; -import { SectionWidget } from "widgets/anvil/SectionWidget"; -import { ZoneWidget } from "widgets/anvil/ZoneWidget"; +import { WDSSectionWidget } from "widgets/wds/WDSSectionWidget"; +import { WDSZoneWidget } from "widgets/wds/WDSZoneWidget"; import { WDSButtonWidget } from "widgets/wds/WDSButtonWidget"; import { getCanvasWidth, @@ -39,8 +39,8 @@ describe("", () => { beforeAll(() => { registerLayoutComponents(); registerWidgets([ - SectionWidget, - ZoneWidget, + WDSSectionWidget, + WDSZoneWidget, WDSButtonWidget, WDSModalWidget, ]); diff --git a/app/client/src/layoutSystems/anvil/layoutComponents/components/section/index.tsx b/app/client/src/layoutSystems/anvil/layoutComponents/components/section/index.tsx index 3f053c587ec..7ffe2466e83 100644 --- a/app/client/src/layoutSystems/anvil/layoutComponents/components/section/index.tsx +++ b/app/client/src/layoutSystems/anvil/layoutComponents/components/section/index.tsx @@ -7,7 +7,7 @@ import { import WidgetRow from "../WidgetRow"; import { SectionRow } from "./SectionRow"; import type { FlexLayoutProps } from "../FlexLayout"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; import { SectionSpaceDistributor } from "layoutSystems/anvil/sectionSpaceDistributor/SectionSpaceDistributor"; class Section extends WidgetRow { diff --git a/app/client/src/layoutSystems/anvil/utils/anvilChecksUtils.ts b/app/client/src/layoutSystems/anvil/utils/anvilChecksUtils.ts index 4fcb5c99293..b7f68bcef67 100644 --- a/app/client/src/layoutSystems/anvil/utils/anvilChecksUtils.ts +++ b/app/client/src/layoutSystems/anvil/utils/anvilChecksUtils.ts @@ -4,7 +4,7 @@ import { updateAnvilParentPostWidgetDeletion } from "layoutSystems/anvil/utils/l import type { FlattenedWidgetProps } from "WidgetProvider/constants"; import { MAIN_CONTAINER_WIDGET_ID } from "constants/WidgetConstants"; import type { CanvasWidgetsReduxState } from "reducers/entityReducers/canvasWidgetsReducer"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; import { updateSectionWithDefaultSpaceDistribution, updateSectionsDistributedSpace, diff --git a/app/client/src/layoutSystems/anvil/utils/constants.ts b/app/client/src/layoutSystems/anvil/utils/constants.ts index 5e0be9284b8..ca127656209 100644 --- a/app/client/src/layoutSystems/anvil/utils/constants.ts +++ b/app/client/src/layoutSystems/anvil/utils/constants.ts @@ -1,6 +1,6 @@ import { FlexLayerAlignment } from "layoutSystems/common/utils/constants"; import type { HighlightPayload, HighlightRenderInfo } from "./anvilTypes"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; export const MOBILE_BREAKPOINT = 480; diff --git a/app/client/src/layoutSystems/anvil/utils/layouts/update/mainCanvasLayoutUtils.ts b/app/client/src/layoutSystems/anvil/utils/layouts/update/mainCanvasLayoutUtils.ts index 647e0fb323b..3123a7c9669 100644 --- a/app/client/src/layoutSystems/anvil/utils/layouts/update/mainCanvasLayoutUtils.ts +++ b/app/client/src/layoutSystems/anvil/utils/layouts/update/mainCanvasLayoutUtils.ts @@ -11,7 +11,7 @@ import LayoutFactory from "layoutSystems/anvil/layoutComponents/LayoutFactory"; import { call } from "redux-saga/effects"; import { severTiesFromParents, transformMovedWidgets } from "./moveUtils"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; import { MAIN_CONTAINER_WIDGET_ID } from "constants/WidgetConstants"; import { addNewAnvilWidgetToDSL } from "layoutSystems/anvil/integrations/sagas/anvilWidgetAdditionSagas/helpers"; diff --git a/app/client/src/layoutSystems/anvil/utils/layouts/update/sectionUtils.ts b/app/client/src/layoutSystems/anvil/utils/layouts/update/sectionUtils.ts index 54fd4b7fe70..7dcc3614d0d 100644 --- a/app/client/src/layoutSystems/anvil/utils/layouts/update/sectionUtils.ts +++ b/app/client/src/layoutSystems/anvil/utils/layouts/update/sectionUtils.ts @@ -13,7 +13,7 @@ import type { CanvasWidgetsReduxState } from "reducers/entityReducers/canvasWidg import { call } from "redux-saga/effects"; import { severTiesFromParents, transformMovedWidgets } from "./moveUtils"; import type { FlattenedWidgetProps } from "WidgetProvider/constants"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; import { addNewAnvilWidgetToDSL } from "layoutSystems/anvil/integrations/sagas/anvilWidgetAdditionSagas/helpers"; export function* createSectionAndAddWidget( diff --git a/app/client/src/layoutSystems/anvil/utils/layouts/update/zoneUtils.ts b/app/client/src/layoutSystems/anvil/utils/layouts/update/zoneUtils.ts index 96ece0e14b2..457b2330065 100644 --- a/app/client/src/layoutSystems/anvil/utils/layouts/update/zoneUtils.ts +++ b/app/client/src/layoutSystems/anvil/utils/layouts/update/zoneUtils.ts @@ -11,7 +11,7 @@ import { call } from "redux-saga/effects"; import { addWidgetsToChildTemplate } from "./additionUtils"; import type { FlattenedWidgetProps } from "WidgetProvider/constants"; import { isLargeWidget } from "../../widgetUtils"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; import { moveWidgets, severTiesFromParents, diff --git a/app/client/src/layoutSystems/anvil/utils/paste/sectionPasteUtils.ts b/app/client/src/layoutSystems/anvil/utils/paste/sectionPasteUtils.ts index a4b2e2d52a8..c088bdd1467 100644 --- a/app/client/src/layoutSystems/anvil/utils/paste/sectionPasteUtils.ts +++ b/app/client/src/layoutSystems/anvil/utils/paste/sectionPasteUtils.ts @@ -6,7 +6,7 @@ import type { } from "./types"; import { getDestinedParent } from "./destinationUtils"; import type { FlattenedWidgetProps } from "WidgetProvider/constants"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; import type { LayoutProps } from "../anvilTypes"; import { all, call } from "redux-saga/effects"; import { addPastedWidgets } from "./utils"; diff --git a/app/client/src/layoutSystems/anvil/utils/sectionOperationUtils.ts b/app/client/src/layoutSystems/anvil/utils/sectionOperationUtils.ts index 8a1c83732ef..d0f7435fd86 100644 --- a/app/client/src/layoutSystems/anvil/utils/sectionOperationUtils.ts +++ b/app/client/src/layoutSystems/anvil/utils/sectionOperationUtils.ts @@ -13,7 +13,7 @@ import { generateReactKey } from "utils/generators"; import type BaseLayoutComponent from "../layoutComponents/BaseLayoutComponent"; import LayoutFactory from "../layoutComponents/LayoutFactory"; import { defaultHighlightRenderInfo } from "../utils/constants"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { anvilWidgets } from "widgets/wds/constants"; import { getUpdatedListOfWidgetsAfterAddingNewWidget } from "../integrations/sagas/anvilWidgetAdditionSagas"; /** diff --git a/app/client/src/pages/AppViewer/Navigation/Sidebar.tsx b/app/client/src/pages/AppViewer/Navigation/Sidebar.tsx index cf012e47a28..d02634db11c 100644 --- a/app/client/src/pages/AppViewer/Navigation/Sidebar.tsx +++ b/app/client/src/pages/AppViewer/Navigation/Sidebar.tsx @@ -1,8 +1,6 @@ import React, { useEffect, useState } from "react"; -import type { - ApplicationPayload, - Page, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { Page } from "entities/Page"; import { NAVIGATION_SETTINGS, SIDEBAR_WIDTH } from "constants/AppConstants"; import { get } from "lodash"; import { useDispatch, useSelector } from "react-redux"; diff --git a/app/client/src/pages/AppViewer/Navigation/TopInline.tsx b/app/client/src/pages/AppViewer/Navigation/TopInline.tsx index 59f9b914db1..af4b4152baa 100644 --- a/app/client/src/pages/AppViewer/Navigation/TopInline.tsx +++ b/app/client/src/pages/AppViewer/Navigation/TopInline.tsx @@ -1,9 +1,5 @@ import { useLocation } from "react-router-dom"; import React, { useEffect, useLayoutEffect, useRef, useState } from "react"; -import type { - ApplicationPayload, - Page, -} from "ee/constants/ReduxActionConstants"; import { useWindowSizeHooks } from "utils/hooks/dragResizeHooks"; import MenuItem from "./components/MenuItem"; import { Container } from "./TopInline.styled"; @@ -16,13 +12,9 @@ import { import { useSelector } from "react-redux"; import { getIsAppSettingsPaneWithNavigationTabOpen } from "selectors/appSettingsPaneSelectors"; import { throttle } from "lodash"; +import type { NavigationProps } from "./constants"; -interface TopInlineProps { - currentApplicationDetails?: ApplicationPayload; - pages: Page[]; -} - -export function TopInline(props: TopInlineProps) { +export function TopInline(props: NavigationProps) { const { currentApplicationDetails, pages } = props; const location = useLocation(); const { pathname } = location; diff --git a/app/client/src/pages/AppViewer/Navigation/TopStacked.tsx b/app/client/src/pages/AppViewer/Navigation/TopStacked.tsx index e688af41adc..16a9ac8cc48 100644 --- a/app/client/src/pages/AppViewer/Navigation/TopStacked.tsx +++ b/app/client/src/pages/AppViewer/Navigation/TopStacked.tsx @@ -2,26 +2,15 @@ import React, { useRef, useEffect, useState, useCallback } from "react"; import { useLocation } from "react-router-dom"; import MenuItemContainer from "./components/MenuItemContainer"; import MenuItem from "./components/MenuItem"; -import type { - ApplicationPayload, - Page, -} from "ee/constants/ReduxActionConstants"; import useThrottledRAF from "utils/hooks/useThrottledRAF"; import { NAVIGATION_SETTINGS } from "constants/AppConstants"; import { get } from "lodash"; import { useSelector } from "react-redux"; import { getSelectedAppTheme } from "selectors/appThemingSelectors"; import { Container, ScrollBtnContainer } from "./TopStacked.styled"; +import type { NavigationProps } from "./constants"; -// TODO - @Dhruvik - ImprovedAppNav -// Replace with NavigationProps if nothing changes -// appsmith/app/client/src/pages/AppViewer/Navigation/constants.ts -interface TopStackedProps { - currentApplicationDetails?: ApplicationPayload; - pages: Page[]; -} - -export function TopStacked(props: TopStackedProps) { +export function TopStacked(props: NavigationProps) { const { currentApplicationDetails, pages } = props; const selectedTheme = useSelector(getSelectedAppTheme); const navColorStyle = diff --git a/app/client/src/pages/AppViewer/Navigation/components/BackToAppsButton.tsx b/app/client/src/pages/AppViewer/Navigation/components/BackToAppsButton.tsx index 1610cda872d..08e526fda9d 100644 --- a/app/client/src/pages/AppViewer/Navigation/components/BackToAppsButton.tsx +++ b/app/client/src/pages/AppViewer/Navigation/components/BackToAppsButton.tsx @@ -7,7 +7,7 @@ import { getMenuItemTextColor } from "pages/AppViewer/utils"; import type { NavigationSetting } from "constants/AppConstants"; import { NAVIGATION_SETTINGS } from "constants/AppConstants"; import { get } from "lodash"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { useHistory } from "react-router"; import styled from "styled-components"; import { getCurrentUser } from "selectors/usersSelectors"; diff --git a/app/client/src/pages/AppViewer/Navigation/components/MenuItem.tsx b/app/client/src/pages/AppViewer/Navigation/components/MenuItem.tsx index 0416c5f5149..a481f950c62 100644 --- a/app/client/src/pages/AppViewer/Navigation/components/MenuItem.tsx +++ b/app/client/src/pages/AppViewer/Navigation/components/MenuItem.tsx @@ -1,5 +1,5 @@ import React from "react"; -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import type { NavigationSetting } from "constants/AppConstants"; import { NAVIGATION_SETTINGS } from "constants/AppConstants"; import { APP_MODE } from "entities/App"; diff --git a/app/client/src/pages/AppViewer/Navigation/components/MoreDropdownButton.tsx b/app/client/src/pages/AppViewer/Navigation/components/MoreDropdownButton.tsx index 80751878546..a68575bc55f 100644 --- a/app/client/src/pages/AppViewer/Navigation/components/MoreDropdownButton.tsx +++ b/app/client/src/pages/AppViewer/Navigation/components/MoreDropdownButton.tsx @@ -11,7 +11,7 @@ import { StyledMenuItemInDropdown, StyleMoreDropdownButton, } from "./MoreDropdownButton.styled"; -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import { getAppMode } from "ee/selectors/applicationSelectors"; import { APP_MODE } from "entities/App"; import { builderURL, viewerURL } from "ee/RouteBuilder"; diff --git a/app/client/src/pages/AppViewer/Navigation/components/ShareButton.tsx b/app/client/src/pages/AppViewer/Navigation/components/ShareButton.tsx index 8dc30737a5a..21e81ac2268 100644 --- a/app/client/src/pages/AppViewer/Navigation/components/ShareButton.tsx +++ b/app/client/src/pages/AppViewer/Navigation/components/ShareButton.tsx @@ -7,7 +7,7 @@ import { getSelectedAppTheme } from "selectors/appThemingSelectors"; import { getApplicationNameTextColor } from "pages/AppViewer/utils"; import { NAVIGATION_SETTINGS } from "constants/AppConstants"; import { get } from "lodash"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { APPLICATION_INVITE, createMessage, diff --git a/app/client/src/pages/AppViewer/Navigation/components/TopHeader.tsx b/app/client/src/pages/AppViewer/Navigation/components/TopHeader.tsx index 9e73c9b5ea0..f4d8394c57f 100644 --- a/app/client/src/pages/AppViewer/Navigation/components/TopHeader.tsx +++ b/app/client/src/pages/AppViewer/Navigation/components/TopHeader.tsx @@ -1,7 +1,5 @@ -import type { - ApplicationPayload, - Page, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { Page } from "entities/Page"; import { NAVIGATION_SETTINGS } from "constants/AppConstants"; import { get } from "lodash"; import { useHref } from "pages/Editor/utils"; diff --git a/app/client/src/pages/AppViewer/Navigation/constants.ts b/app/client/src/pages/AppViewer/Navigation/constants.ts index 7d0d59f1baa..ac5c0c57cbd 100644 --- a/app/client/src/pages/AppViewer/Navigation/constants.ts +++ b/app/client/src/pages/AppViewer/Navigation/constants.ts @@ -1,7 +1,5 @@ -import type { - ApplicationPayload, - Page, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { Page } from "entities/Page"; export interface NavigationProps { pages: Page[]; diff --git a/app/client/src/pages/AppViewer/Navigation/index.tsx b/app/client/src/pages/AppViewer/Navigation/index.tsx index 4296450d71e..6056575735b 100644 --- a/app/client/src/pages/AppViewer/Navigation/index.tsx +++ b/app/client/src/pages/AppViewer/Navigation/index.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useRef, useState } from "react"; import { useLocation } from "react-router-dom"; import { ThemeProvider } from "styled-components"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { useDispatch, useSelector } from "react-redux"; import type { AppState } from "ee/reducers"; import { diff --git a/app/client/src/pages/AppViewer/PageMenu.tsx b/app/client/src/pages/AppViewer/PageMenu.tsx index fb44c5f3473..30788fe981e 100644 --- a/app/client/src/pages/AppViewer/PageMenu.tsx +++ b/app/client/src/pages/AppViewer/PageMenu.tsx @@ -1,8 +1,6 @@ import React, { useState, useEffect, useRef } from "react"; -import type { - ApplicationPayload, - Page, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { Page } from "entities/Page"; import { getAppMode } from "ee/selectors/applicationSelectors"; import { useSelector } from "react-redux"; import classNames from "classnames"; diff --git a/app/client/src/pages/AppViewer/PageTabs.tsx b/app/client/src/pages/AppViewer/PageTabs.tsx index 53571921969..c852ab01ea9 100644 --- a/app/client/src/pages/AppViewer/PageTabs.tsx +++ b/app/client/src/pages/AppViewer/PageTabs.tsx @@ -2,10 +2,8 @@ import React, { useRef, useEffect, useState } from "react"; import { NavLink, useLocation } from "react-router-dom"; import styled from "styled-components"; import { get } from "lodash"; -import type { - ApplicationPayload, - Page, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { Page } from "entities/Page"; import { isEllipsisActive, trimQueryString } from "utils/helpers"; import { getTypographyByKey, TooltipComponent } from "@appsmith/ads-old"; import { getAppMode } from "ee/selectors/applicationSelectors"; diff --git a/app/client/src/pages/AppViewer/index.tsx b/app/client/src/pages/AppViewer/index.tsx index 865e8ffe10e..5fab3e349ef 100644 --- a/app/client/src/pages/AppViewer/index.tsx +++ b/app/client/src/pages/AppViewer/index.tsx @@ -36,7 +36,7 @@ import { initAppViewerAction } from "actions/initActions"; import { WidgetGlobaStyles } from "globalStyles/WidgetGlobalStyles"; import useWidgetFocus from "utils/hooks/useWidgetFocus/useWidgetFocus"; import HtmlTitle from "./AppViewerHtmlTitle"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { getAppThemeSettings, getCurrentApplication, diff --git a/app/client/src/pages/Applications/ApplicationCard.tsx b/app/client/src/pages/Applications/ApplicationCard.tsx index 87dbf30e3c5..2f61f2d02e1 100644 --- a/app/client/src/pages/Applications/ApplicationCard.tsx +++ b/app/client/src/pages/Applications/ApplicationCard.tsx @@ -6,7 +6,7 @@ import React, { useMemo, } from "react"; import styled, { ThemeContext } from "styled-components"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { hasDeleteApplicationPermission, isPermitted, diff --git a/app/client/src/pages/Editor/APIEditor/Editor.tsx b/app/client/src/pages/Editor/APIEditor/Editor.tsx index 3da40cb6348..03871bf0be8 100644 --- a/app/client/src/pages/Editor/APIEditor/Editor.tsx +++ b/app/client/src/pages/Editor/APIEditor/Editor.tsx @@ -24,7 +24,7 @@ import CenteredWrapper from "components/designSystems/appsmith/CenteredWrapper"; import { changeApi } from "actions/apiPaneActions"; import * as Sentry from "@sentry/react"; import EntityNotFoundPane from "pages/Editor/EntityNotFoundPane"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { getActionByBaseId, getPageList, diff --git a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/DraggablePageList.tsx b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/DraggablePageList.tsx index 459ffb8e9bb..736ccd8136c 100644 --- a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/DraggablePageList.tsx +++ b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/DraggablePageList.tsx @@ -1,6 +1,6 @@ import { setPageOrder } from "actions/pageActions"; import styled from "styled-components"; -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; // import classNames from "classnames"; import { DraggableList } from "@appsmith/ads-old"; import { MenuIcons } from "icons/MenuIcons"; diff --git a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/EmbedSettings/MakeApplicationForkable.tsx b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/EmbedSettings/MakeApplicationForkable.tsx index e4c2d7b1afa..ab4aa395431 100644 --- a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/EmbedSettings/MakeApplicationForkable.tsx +++ b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/EmbedSettings/MakeApplicationForkable.tsx @@ -13,7 +13,7 @@ import { createMessage, IN_APP_EMBED_SETTING } from "ee/constants/messages"; import PropertyHelpLabel from "pages/Editor/PropertyPane/PropertyHelpLabel"; import { useDispatch, useSelector } from "react-redux"; import { updateApplication } from "ee/actions/applicationActions"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { getIsFetchingApplications } from "ee/selectors/selectedWorkspaceSelectors"; interface ConfirmEnableForkingModalProps { diff --git a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx index 13ee62cc188..ccc978ab72d 100644 --- a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx +++ b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/PageSettings.tsx @@ -15,7 +15,7 @@ import { PAGE_SETTINGS_SET_AS_HOMEPAGE_TOOLTIP_NON_HOME_PAGE, PAGE_SETTINGS_ACTION_NAME_CONFLICT_ERROR, } from "ee/constants/messages"; -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import classNames from "classnames"; import { Input, Switch } from "@appsmith/ads"; import ManualUpgrades from "components/BottomBar/ManualUpgrades"; diff --git a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/index.tsx b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/index.tsx index c44a3748895..69063ec7c0f 100644 --- a/app/client/src/pages/Editor/AppSettingsPane/AppSettings/index.tsx +++ b/app/client/src/pages/Editor/AppSettingsPane/AppSettings/index.tsx @@ -1,4 +1,4 @@ -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import { ThemePropertyPane } from "pages/Editor/ThemePropertyPane"; import { WDSThemePropertyPane } from "pages/Editor/WDSThemePropertyPane"; import React, { useEffect, useState } from "react"; diff --git a/app/client/src/pages/Editor/EditorName/EditableName.tsx b/app/client/src/pages/Editor/EditorName/EditableName.tsx index 51d6aaae27e..7c039b45fb4 100644 --- a/app/client/src/pages/Editor/EditorName/EditableName.tsx +++ b/app/client/src/pages/Editor/EditorName/EditableName.tsx @@ -22,6 +22,7 @@ export type EditableAppNameProps = CommonComponentProps & { onBlur?: (value: string) => void; isEditingDefault?: boolean; inputValidation?: (value: string) => string | boolean; + hideEditIcon?: boolean; fill?: boolean; isError?: boolean; isEditing: boolean; diff --git a/app/client/src/pages/Editor/EditorName/index.tsx b/app/client/src/pages/Editor/EditorName/index.tsx index 161beb75f64..abb3fd5743d 100644 --- a/app/client/src/pages/Editor/EditorName/index.tsx +++ b/app/client/src/pages/Editor/EditorName/index.tsx @@ -123,6 +123,7 @@ export function EditorName(props: EditorNameProps) { defaultValue={defaultValue} editInteractionKind={props.editInteractionKind} fill={props.fill} + hideEditIcon inputValidation={inputValidation} isEditing={isEditing} isEditingDefault={isEditingDefault} diff --git a/app/client/src/pages/Editor/Explorer/Pages/index.tsx b/app/client/src/pages/Editor/Explorer/Pages/index.tsx index 06f6da923f0..7d6cf45fa98 100644 --- a/app/client/src/pages/Editor/Explorer/Pages/index.tsx +++ b/app/client/src/pages/Editor/Explorer/Pages/index.tsx @@ -13,7 +13,7 @@ import { import { EntityClassNames } from "../Entity"; import { createNewPageFromEntities } from "actions/pageActions"; import { ADD_PAGE_TOOLTIP, createMessage } from "ee/constants/messages"; -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import { getNextEntityName } from "utils/AppsmithUtils"; import { getExplorerPinned } from "selectors/explorerSelector"; import { setExplorerPinnedAction } from "actions/explorerActions"; diff --git a/app/client/src/pages/Editor/FormConfig.tsx b/app/client/src/pages/Editor/FormConfig.tsx index f6385ec64f5..ecc27ce13f7 100644 --- a/app/client/src/pages/Editor/FormConfig.tsx +++ b/app/client/src/pages/Editor/FormConfig.tsx @@ -68,6 +68,12 @@ interface FormConfigProps extends FormControlProps { changesViewType: boolean; } +const controlsWithSubtitleInTop = [ + "ARRAY_FIELD", + "WHERE_CLAUSE", + "QUERY_DYNAMIC_TEXT", +]; + // top contains label, subtitle, urltext, tooltip, display type // bottom contains the info and error text // props.children will render the form element @@ -177,6 +183,7 @@ function renderFormConfigTop(props: { changesViewType: boolean; }) { const { + controlType, encrypted, isRequired, label, @@ -186,16 +193,21 @@ function renderFormConfigTop(props: { url, urlText, } = { ...props.config }; + const shouldRenderSubtitle = + subtitle && controlsWithSubtitleInTop.includes(controlType); return (
{!nestedFormControl && // if the form control is a nested form control hide its label - (label?.length > 0 || encrypted || tooltipText || subtitle) && ( + (label?.length > 0 || + encrypted || + tooltipText || + shouldRenderSubtitle) && ( <> @@ -238,7 +250,7 @@ function renderFormConfigTop(props: { /> )} - {subtitle && ( + {shouldRenderSubtitle && ( {subtitle} )} @@ -256,9 +268,12 @@ function renderFormConfigBottom(props: { config: ControlProps; configErrors?: EvaluationError[]; }) { - const { controlType, info } = { ...props.config }; + const { controlType, info, subtitle } = { ...props.config }; return ( <> + {subtitle && !controlsWithSubtitleInTop.includes(controlType) && ( + {subtitle} + )} {info && ( { } }); + objectKeys(groupedCards).forEach((tag) => { + if (tag === WIDGET_TAGS.SUGGESTED_WIDGETS) return; + + groupedCards[tag] = sortBy(groupedCards[tag], [ + "displayOrder", + "displayName", + ]); + }); + return groupedCards; }; diff --git a/app/client/src/pages/common/SearchBar/ApplicationSearchItem.tsx b/app/client/src/pages/common/SearchBar/ApplicationSearchItem.tsx index 791eebd9de8..65c64098c9b 100644 --- a/app/client/src/pages/common/SearchBar/ApplicationSearchItem.tsx +++ b/app/client/src/pages/common/SearchBar/ApplicationSearchItem.tsx @@ -1,4 +1,4 @@ -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { Text } from "@appsmith/ads"; import React from "react"; import { SearchListItem } from "./WorkspaceSearchItems"; diff --git a/app/client/src/pages/common/SearchBar/EntitySearchBar.tsx b/app/client/src/pages/common/SearchBar/EntitySearchBar.tsx index 8d51cabd84b..4e9bc1e2f35 100644 --- a/app/client/src/pages/common/SearchBar/EntitySearchBar.tsx +++ b/app/client/src/pages/common/SearchBar/EntitySearchBar.tsx @@ -22,7 +22,7 @@ import HomepageHeaderAction from "pages/common/SearchBar/HomepageHeaderAction"; import ProfileDropdown from "pages/common/ProfileDropdown"; import MobileSideBar from "pages/common/MobileSidebar"; import { resetSearchEntity, searchEntities } from "ee/actions/workspaceActions"; -import type { ApplicationPayload } from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; import { viewerURL } from "ee/RouteBuilder"; import { getIsFetchingEntities, diff --git a/app/client/src/pages/tests/mockData.ts b/app/client/src/pages/tests/mockData.ts index a8f2e4c81a7..97b2163b950 100644 --- a/app/client/src/pages/tests/mockData.ts +++ b/app/client/src/pages/tests/mockData.ts @@ -1,5 +1,5 @@ import type { ApplicationResponsePayload } from "ee/api/ApplicationApi"; -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import type { UpdateCurrentPagePayload } from "actions/pageActions"; import store from "store"; diff --git a/app/client/src/reducers/entityReducers/canvasWidgetsReducer.ts b/app/client/src/reducers/entityReducers/canvasWidgetsReducer.ts index dc6ae194644..b4cfabe4a3c 100644 --- a/app/client/src/reducers/entityReducers/canvasWidgetsReducer.ts +++ b/app/client/src/reducers/entityReducers/canvasWidgetsReducer.ts @@ -1,8 +1,5 @@ import { createImmerReducer } from "utils/ReducerUtils"; -import type { - UpdateCanvasPayload, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import type { WidgetProps } from "widgets/BaseWidget"; import { uniq, get, set } from "lodash"; @@ -13,6 +10,7 @@ import { getCanvasWidgetHeightsToUpdate, } from "utils/WidgetSizeUtils"; import { klona } from "klona"; +import type { UpdateCanvasPayload } from "actions/pageActions"; /* This type is an object whose keys are widgetIds and values are arrays with property paths and property values diff --git a/app/client/src/reducers/entityReducers/canvasWidgetsStructureReducer.ts b/app/client/src/reducers/entityReducers/canvasWidgetsStructureReducer.ts index 7054e63f11b..ac9b4fc21a0 100644 --- a/app/client/src/reducers/entityReducers/canvasWidgetsStructureReducer.ts +++ b/app/client/src/reducers/entityReducers/canvasWidgetsStructureReducer.ts @@ -1,8 +1,5 @@ import { createImmerReducer } from "utils/ReducerUtils"; -import type { - UpdateCanvasPayload, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import type { WidgetProps } from "widgets/BaseWidget"; import type { WidgetType } from "constants/WidgetConstants"; @@ -10,6 +7,7 @@ import { MAIN_CONTAINER_WIDGET_ID } from "constants/WidgetConstants"; import { CANVAS_DEFAULT_MIN_ROWS } from "constants/AppConstants"; import { denormalize } from "utils/canvasStructureHelpers"; import { klona } from "klona"; +import type { UpdateCanvasPayload } from "actions/pageActions"; export type FlattenedWidgetProps = | (WidgetProps & { diff --git a/app/client/src/reducers/entityReducers/jsExecutionsReducer.ts b/app/client/src/reducers/entityReducers/jsExecutionsReducer.ts deleted file mode 100644 index a9d9760a45d..00000000000 --- a/app/client/src/reducers/entityReducers/jsExecutionsReducer.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { createReducer } from "utils/ReducerUtils"; -import type { ReduxAction } from "ee/constants/ReduxActionConstants"; -import { ReduxActionErrorTypes } from "ee/constants/ReduxActionConstants"; - -export type JSExecutionRecord = Record; -const initialState: JSExecutionRecord = {}; -const jsExecutionsReducer = createReducer(initialState, { - [ReduxActionErrorTypes.SAVE_JS_EXECUTION_RECORD]: ( - state: JSExecutionRecord, - action: ReduxAction, - ) => { - return { - ...state, - ...action.payload, - }; - }, -}); - -export default jsExecutionsReducer; diff --git a/app/client/src/reducers/entityReducers/pageListReducer.tsx b/app/client/src/reducers/entityReducers/pageListReducer.tsx index 7dfc09f5c3f..f9cdd60eac1 100644 --- a/app/client/src/reducers/entityReducers/pageListReducer.tsx +++ b/app/client/src/reducers/entityReducers/pageListReducer.tsx @@ -1,13 +1,10 @@ -import type { - ClonePageSuccessPayload, - Page, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionErrorTypes, ReduxActionTypes, } from "ee/constants/ReduxActionConstants"; import type { + ClonePageSuccessPayload, DeletePageActionPayload, GenerateCRUDSuccess, UpdateCurrentPagePayload, @@ -18,6 +15,7 @@ import type { UpdatePageResponse } from "api/PageApi"; import { sortBy } from "lodash"; import type { DSL } from "reducers/uiReducers/pageCanvasStructureReducer"; import { createReducer } from "utils/ReducerUtils"; +import type { Page } from "entities/Page"; const initialState: PageListReduxState = { pages: [], diff --git a/app/client/src/reducers/uiReducers/authReducer.ts b/app/client/src/reducers/uiReducers/authReducer.ts index c758badc440..0e2b03d907d 100644 --- a/app/client/src/reducers/uiReducers/authReducer.ts +++ b/app/client/src/reducers/uiReducers/authReducer.ts @@ -22,14 +22,6 @@ const authReducer = createReducer(initialState, { isValidatingToken: false, isTokenValid: false, }), - [ReduxActionTypes.VERIFY_INVITE_INIT]: () => ({ - isTokenValid: false, - isValidatingToken: true, - }), - [ReduxActionTypes.VERIFY_INVITE_SUCCESS]: () => ({ - isValidatingToken: false, - isTokenValid: true, - }), [ReduxActionErrorTypes.VERIFY_INVITE_ERROR]: () => ({ isValidatingToken: false, isTokenValid: false, diff --git a/app/client/src/reducers/uiReducers/mainCanvasReducer.ts b/app/client/src/reducers/uiReducers/mainCanvasReducer.ts index 32dc48a99ec..cc40d8631a6 100644 --- a/app/client/src/reducers/uiReducers/mainCanvasReducer.ts +++ b/app/client/src/reducers/uiReducers/mainCanvasReducer.ts @@ -1,14 +1,12 @@ import { createImmerReducer } from "utils/ReducerUtils"; -import type { - ReduxAction, - UpdateCanvasPayload, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import { layoutConfigurations, MAIN_CONTAINER_WIDGET_ID, } from "constants/WidgetConstants"; import type { UpdateCanvasLayoutPayload } from "actions/controlActions"; +import type { UpdateCanvasPayload } from "actions/pageActions"; const initialState: MainCanvasReduxState = { initialized: false, diff --git a/app/client/src/reducers/uiReducers/propertyPaneReducer.tsx b/app/client/src/reducers/uiReducers/propertyPaneReducer.tsx index 90bdd475795..f64a52173ab 100644 --- a/app/client/src/reducers/uiReducers/propertyPaneReducer.tsx +++ b/app/client/src/reducers/uiReducers/propertyPaneReducer.tsx @@ -1,10 +1,8 @@ -import type { - ReduxAction, - ShowPropertyPanePayload, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import { DEFAULT_PROPERTY_PANE_WIDTH } from "constants/AppConstants"; import { createImmerReducer } from "utils/ReducerUtils"; +import type { ShowPropertyPanePayload } from "actions/propertyPaneActions"; export interface SelectedPropertyPanel { [path: string]: number; diff --git a/app/client/src/reducers/uiReducers/reflowReducer.ts b/app/client/src/reducers/uiReducers/reflowReducer.ts index 67230607e62..43631db5d73 100644 --- a/app/client/src/reducers/uiReducers/reflowReducer.ts +++ b/app/client/src/reducers/uiReducers/reflowReducer.ts @@ -1,6 +1,8 @@ import { createReducer } from "utils/ReducerUtils"; -import type { ReduxAction } from "ee/constants/ReduxActionConstants"; -import { ReflowReduxActionTypes } from "ee/constants/ReduxActionConstants"; +import { + type ReduxAction, + ReduxActionTypes, +} from "ee/constants/ReduxActionConstants"; import type { ReflowedSpaceMap } from "reflow/reflowTypes"; const initialState: widgetReflow = { @@ -9,12 +11,12 @@ const initialState: widgetReflow = { }; export const widgetReflowReducer = createReducer(initialState, { - [ReflowReduxActionTypes.STOP_REFLOW]: () => { + [ReduxActionTypes.STOP_REFLOW]: () => { return { isReflowing: false, }; }, - [ReflowReduxActionTypes.REFLOW_MOVE]: ( + [ReduxActionTypes.REFLOW_MOVE]: ( state: widgetReflow, action: ReduxAction<{ reflowingWidgets: ReflowedSpaceMap }>, ) => { diff --git a/app/client/src/reducers/uiReducers/tableFilterPaneReducer.tsx b/app/client/src/reducers/uiReducers/tableFilterPaneReducer.tsx index 29b1d7a2c19..ea7301fabb4 100644 --- a/app/client/src/reducers/uiReducers/tableFilterPaneReducer.tsx +++ b/app/client/src/reducers/uiReducers/tableFilterPaneReducer.tsx @@ -1,9 +1,7 @@ import { createReducer } from "utils/ReducerUtils"; -import type { - ReduxAction, - ShowPropertyPanePayload, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; +import type { ShowPropertyPanePayload } from "actions/propertyPaneActions"; const initialState: TableFilterPaneReduxState = { isVisible: false, diff --git a/app/client/src/reducers/uiReducers/usersReducer.ts b/app/client/src/reducers/uiReducers/usersReducer.ts index 8e7030d8d81..066f4fa9caf 100644 --- a/app/client/src/reducers/uiReducers/usersReducer.ts +++ b/app/client/src/reducers/uiReducers/usersReducer.ts @@ -44,18 +44,6 @@ const usersReducer = createReducer(initialState, { fetchingUser: true, }, }), - [ReduxActionTypes.PROP_PANE_MOVED]: ( - state: UsersReduxState, - action: ReduxAction, - ) => ({ - ...state, - propPanePreferences: { - isMoved: true, - position: { - ...action.payload.position, - }, - }, - }), [ReduxActionTypes.FETCH_USER_DETAILS_SUCCESS]: ( state: UsersReduxState, action: ReduxAction, @@ -142,13 +130,6 @@ const usersReducer = createReducer(initialState, { ...state, loadingStates: { ...state.loadingStates, fetchingUser: false }, }), - [ReduxActionTypes.SET_CURRENT_USER_SUCCESS]: ( - state: UsersReduxState, - action: ReduxAction, - ) => ({ - ...state, - current: action.payload, - }), [ReduxActionTypes.LOGOUT_USER_SUCCESS]: ( state: UsersReduxState, action: ReduxAction, diff --git a/app/client/src/sagas/ActionExecution/NavigateActionSaga.ts b/app/client/src/sagas/ActionExecution/NavigateActionSaga.ts index d8ce8468882..eccd2baba77 100644 --- a/app/client/src/sagas/ActionExecution/NavigateActionSaga.ts +++ b/app/client/src/sagas/ActionExecution/NavigateActionSaga.ts @@ -1,7 +1,8 @@ import { call, put, select } from "redux-saga/effects"; import { getCurrentPageId, getPageList } from "selectors/editorSelectors"; import _ from "lodash"; -import { ReduxActionTypes, type Page } from "ee/constants/ReduxActionConstants"; +import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import AnalyticsUtil from "ee/utils/AnalyticsUtil"; import { getAppMode } from "ee/selectors/applicationSelectors"; import { APP_MODE } from "entities/App"; diff --git a/app/client/src/sagas/ActionExecution/PluginActionSaga.ts b/app/client/src/sagas/ActionExecution/PluginActionSaga.ts index 6e48b2d56c7..2759ec73896 100644 --- a/app/client/src/sagas/ActionExecution/PluginActionSaga.ts +++ b/app/client/src/sagas/ActionExecution/PluginActionSaga.ts @@ -24,10 +24,8 @@ import { makeUpdateJSCollection, } from "sagas/JSPaneSagas"; -import type { - ApplicationPayload, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionErrorTypes, ReduxActionTypes, diff --git a/app/client/src/sagas/ApiPaneSagas.ts b/app/client/src/sagas/ApiPaneSagas.ts index 6339111cd93..a0e973df329 100644 --- a/app/client/src/sagas/ApiPaneSagas.ts +++ b/app/client/src/sagas/ApiPaneSagas.ts @@ -6,7 +6,6 @@ import omit from "lodash/omit"; import { all, call, put, select, take, takeEvery } from "redux-saga/effects"; import * as Sentry from "@sentry/react"; import type { - ApplicationPayload, ReduxAction, ReduxActionWithMeta, } from "ee/constants/ReduxActionConstants"; @@ -85,6 +84,7 @@ import { import { DEFAULT_CREATE_APPSMITH_AI_CONFIG } from "constants/ApiEditorConstants/AppsmithAIEditorConstants"; import { checkAndGetPluginFormConfigsSaga } from "./PluginSagas"; import { convertToBasePageIdSelector } from "selectors/pageListSelectors"; +import type { ApplicationPayload } from "entities/Application"; function* syncApiParamsSaga( actionPayload: ReduxActionWithMeta, diff --git a/app/client/src/sagas/DatasourcesSagas.ts b/app/client/src/sagas/DatasourcesSagas.ts index 5e0a60e6b2f..74eeff3d84d 100644 --- a/app/client/src/sagas/DatasourcesSagas.ts +++ b/app/client/src/sagas/DatasourcesSagas.ts @@ -19,7 +19,6 @@ import { import { get, isEmpty, merge, omit, partition, set } from "lodash"; import equal from "fast-deep-equal/es6"; import type { - ApplicationPayload, ReduxAction, ReduxActionWithCallbacks, ReduxActionWithMeta, @@ -177,6 +176,7 @@ import { getFromServerWhenNoPrefetchedResult } from "./helper"; import { executeGoogleApi } from "./loadGoogleApi"; import type { ActionParentEntityTypeInterface } from "ee/entities/Engine/actionHelpers"; import { getCurrentModuleId } from "ee/selectors/modulesSelector"; +import type { ApplicationPayload } from "entities/Application"; function* fetchDatasourcesSaga( action: ReduxAction< diff --git a/app/client/src/sagas/GitSyncSagas.ts b/app/client/src/sagas/GitSyncSagas.ts index 75649e61bc8..8b7007533d1 100644 --- a/app/client/src/sagas/GitSyncSagas.ts +++ b/app/client/src/sagas/GitSyncSagas.ts @@ -1,5 +1,4 @@ import type { - ApplicationPayload, ReduxAction, ReduxActionWithCallbacks, } from "ee/constants/ReduxActionConstants"; @@ -137,6 +136,7 @@ import { toast } from "@appsmith/ads"; import { gitExtendedSagas } from "ee/sagas/GitExtendedSagas"; import { selectFeatureFlagCheck } from "ee/selectors/featureFlagsSelectors"; import { FEATURE_FLAG } from "ee/entities/FeatureFlag"; +import type { ApplicationPayload } from "entities/Application"; export function* handleRepoLimitReachedError(response?: ApiResponse) { const { responseMeta } = response || {}; diff --git a/app/client/src/sagas/InitSagas.ts b/app/client/src/sagas/InitSagas.ts index 639a114fbbc..c9fa6ae85fe 100644 --- a/app/client/src/sagas/InitSagas.ts +++ b/app/client/src/sagas/InitSagas.ts @@ -13,8 +13,6 @@ import { takeLeading, } from "redux-saga/effects"; import type { - ApplicationPayload, - Page, ReduxAction, ReduxActionWithoutPayload, } from "ee/constants/ReduxActionConstants"; @@ -90,6 +88,8 @@ import { startNestedSpan, startRootSpan, } from "UITelemetry/generateTraces"; +import type { ApplicationPayload } from "entities/Application"; +import type { Page } from "entities/Page"; export const URL_CHANGE_ACTIONS = [ ReduxActionTypes.CURRENT_APPLICATION_NAME_UPDATE, diff --git a/app/client/src/sagas/ModalSagas.ts b/app/client/src/sagas/ModalSagas.ts index 8cd62f22378..b57cb919c62 100644 --- a/app/client/src/sagas/ModalSagas.ts +++ b/app/client/src/sagas/ModalSagas.ts @@ -35,7 +35,11 @@ import type { FlattenedWidgetProps, } from "reducers/entityReducers/canvasWidgetsReducer"; import { updateWidgetMetaPropAndEval } from "actions/metaActions"; -import { focusWidget, showModal } from "actions/widgetActions"; +import { + closePropertyPane, + focusWidget, + showModal, +} from "actions/widgetActions"; import log from "loglevel"; import { flatten } from "lodash"; import WidgetFactory from "WidgetProvider/factory"; @@ -53,6 +57,7 @@ import { getModalWidgetType } from "selectors/widgetSelectors"; import { AnvilReduxActionTypes } from "layoutSystems/anvil/integrations/actions/actionTypes"; import { getWidgetSelectionBlock } from "selectors/ui"; import { getIsAnvilLayout } from "layoutSystems/anvil/integrations/selectors"; +import { showPropertyPane } from "../actions/propertyPaneActions"; const WidgetTypes = WidgetFactory.widgetTypes; @@ -174,14 +179,13 @@ export function* showModalSaga(action: ReduxAction<{ modalId: string }>) { ); yield delay(1000); } - yield put({ - type: ReduxActionTypes.SHOW_PROPERTY_PANE, - payload: { + yield put( + showPropertyPane({ widgetId: action.payload.modalId, callForDragOrResize: undefined, force: true, - }, - }); + }), + ); } export function* closeModalSaga( @@ -198,10 +202,7 @@ export function* closeModalSaga( modalName, ); widgetIds = widget ? [widget.widgetId] : []; - yield put({ - type: ReduxActionTypes.SHOW_PROPERTY_PANE, - payload: {}, - }); + yield put(closePropertyPane()); } else { // If modalName is not provided, find all open modals // Get all meta prop records diff --git a/app/client/src/sagas/PartialImportExportSagas/PartialExportSagas.ts b/app/client/src/sagas/PartialImportExportSagas/PartialExportSagas.ts index 1488957a52e..7caf770bcb3 100644 --- a/app/client/src/sagas/PartialImportExportSagas/PartialExportSagas.ts +++ b/app/client/src/sagas/PartialImportExportSagas/PartialExportSagas.ts @@ -1,10 +1,8 @@ import ApplicationApi, { type exportApplicationRequest, } from "ee/api/ApplicationApi"; -import type { - ApplicationPayload, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionErrorTypes, ReduxActionTypes, diff --git a/app/client/src/sagas/QueryPaneSagas.ts b/app/client/src/sagas/QueryPaneSagas.ts index e703ac1a0bf..89855780738 100644 --- a/app/client/src/sagas/QueryPaneSagas.ts +++ b/app/client/src/sagas/QueryPaneSagas.ts @@ -8,8 +8,8 @@ import { fork, } from "redux-saga/effects"; import * as Sentry from "@sentry/react"; +import type { ApplicationPayload } from "entities/Application"; import type { - ApplicationPayload, ReduxAction, ReduxActionWithMeta, } from "ee/constants/ReduxActionConstants"; diff --git a/app/client/src/sagas/ReplaySaga.ts b/app/client/src/sagas/ReplaySaga.ts index dd45d0b82ff..bd45f700dc2 100644 --- a/app/client/src/sagas/ReplaySaga.ts +++ b/app/client/src/sagas/ReplaySaga.ts @@ -17,10 +17,7 @@ import { } from "selectors/propertyPaneSelectors"; import { closePropertyPane } from "actions/widgetActions"; import { selectWidgetInitAction } from "actions/widgetSelectionActions"; -import type { - ReduxAction, - ReplayReduxActionTypes, -} from "ee/constants/ReduxActionConstants"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import { flashElementsById } from "utils/helpers"; import { @@ -85,9 +82,10 @@ import type { Plugin } from "api/PluginApi"; import { UIComponentTypes } from "api/PluginApi"; import { getCurrentEnvironmentId } from "ee/selectors/environmentSelectors"; import { updateAndSaveAnvilLayout } from "layoutSystems/anvil/utils/anvilChecksUtils"; +import type { ReplayOperation } from "entities/Replay/ReplayEntity/ReplayOperations"; export interface UndoRedoPayload { - operation: ReplayReduxActionTypes; + operation: ReplayOperation; } export default function* undoRedoListenerSaga() { diff --git a/app/client/src/sagas/SaaSPaneSagas.ts b/app/client/src/sagas/SaaSPaneSagas.ts index 05af0c5c792..0d862f3c135 100644 --- a/app/client/src/sagas/SaaSPaneSagas.ts +++ b/app/client/src/sagas/SaaSPaneSagas.ts @@ -1,8 +1,6 @@ import { all, put, select, takeEvery } from "redux-saga/effects"; -import type { - ApplicationPayload, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import history from "utils/history"; import { diff --git a/app/client/src/sagas/TemplatesSagas.ts b/app/client/src/sagas/TemplatesSagas.ts index ff921256d2c..806fe006c9e 100644 --- a/app/client/src/sagas/TemplatesSagas.ts +++ b/app/client/src/sagas/TemplatesSagas.ts @@ -3,10 +3,8 @@ import { fetchApplication, showReconnectDatasourceModal, } from "ee/actions/applicationActions"; -import type { - ApplicationPayload, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionErrorTypes, ReduxActionTypes, diff --git a/app/client/src/sagas/UtilSagas.ts b/app/client/src/sagas/UtilSagas.ts index fc27b2a8b1e..4aea4c52d1a 100644 --- a/app/client/src/sagas/UtilSagas.ts +++ b/app/client/src/sagas/UtilSagas.ts @@ -1,30 +1,8 @@ -import { all, takeEvery, race, put, take } from "redux-saga/effects"; -import type { ReduxAction } from "ee/constants/ReduxActionConstants"; +import { race, put, take } from "redux-saga/effects"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; -import history from "utils/history"; import { showActionConfirmationModal } from "actions/pluginActionActions"; import type { ModalInfo } from "reducers/uiReducers/modalActionReducer"; -function* redirectWindowLocationSaga( - actionPayload: ReduxAction<{ url: string }>, -) { - window.location.href = actionPayload.payload.url; -} - -function* historyPushSaga(actionPayload: ReduxAction<{ url: string }>) { - history.push(actionPayload.payload.url); -} - -export default function* root() { - yield all([ - takeEvery(ReduxActionTypes.HISTORY_PUSH, historyPushSaga), - takeEvery( - ReduxActionTypes.REDIRECT_WINDOW_LOCATION, - redirectWindowLocationSaga, - ), - ]); -} - export function* requestModalConfirmationSaga(payload: ModalInfo) { yield put(showActionConfirmationModal(payload)); diff --git a/app/client/src/sagas/WebsocketSagas/WebsocketSagas.ts b/app/client/src/sagas/WebsocketSagas/WebsocketSagas.ts index 1e533cc179b..305053fb4b8 100644 --- a/app/client/src/sagas/WebsocketSagas/WebsocketSagas.ts +++ b/app/client/src/sagas/WebsocketSagas/WebsocketSagas.ts @@ -3,10 +3,7 @@ import { io } from "socket.io-client"; import type { EventChannel, Task } from "redux-saga"; import { eventChannel } from "redux-saga"; import { fork, take, call, cancel, put } from "redux-saga/effects"; -import { - ReduxActionTypes, - ReduxSagaChannels, -} from "ee/constants/ReduxActionConstants"; +import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import { WEBSOCKET_EVENTS, RTS_BASE_PATH, @@ -92,7 +89,7 @@ function* readFromAppSocket(socket: any) { function* writeToAppSocket(socket: any) { while (true) { const { payload } = yield take( - ReduxSagaChannels.WEBSOCKET_APP_LEVEL_WRITE_CHANNEL, + ReduxActionTypes.WEBSOCKET_APP_LEVEL_WRITE_CHANNEL, ); // reconnect to reset connection at the server try { @@ -163,7 +160,7 @@ function* readFromPageSocket(socket: any) { function* writeToPageSocket(socket: any) { while (true) { const { payload } = yield take( - ReduxSagaChannels.WEBSOCKET_PAGE_LEVEL_WRITE_CHANNEL, + ReduxActionTypes.WEBSOCKET_PAGE_LEVEL_WRITE_CHANNEL, ); // reconnect to reset connection at the server try { diff --git a/app/client/src/sagas/WidgetDeletionSagas.ts b/app/client/src/sagas/WidgetDeletionSagas.ts index 8095cee393f..84720338d4f 100644 --- a/app/client/src/sagas/WidgetDeletionSagas.ts +++ b/app/client/src/sagas/WidgetDeletionSagas.ts @@ -4,10 +4,8 @@ import type { } from "actions/pageActions"; import { closePropertyPane, closeTableFilterPane } from "actions/widgetActions"; import { selectWidgetInitAction } from "actions/widgetSelectionActions"; -import type { - ApplicationPayload, - ReduxAction, -} from "ee/constants/ReduxActionConstants"; +import type { ApplicationPayload } from "entities/Application"; +import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import { ReduxActionErrorTypes, ReduxActionTypes, diff --git a/app/client/src/sagas/layoutConversionSagas.ts b/app/client/src/sagas/layoutConversionSagas.ts index 170b59caa83..9c5a36e6967 100644 --- a/app/client/src/sagas/layoutConversionSagas.ts +++ b/app/client/src/sagas/layoutConversionSagas.ts @@ -1,6 +1,6 @@ import { setLayoutConversionStateAction } from "actions/autoLayoutActions"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import type { ReduxAction } from "ee/constants/ReduxActionConstants"; import type { AppState } from "ee/reducers"; import { LayoutSystemTypes } from "layoutSystems/types"; diff --git a/app/client/src/sagas/selectors.tsx b/app/client/src/sagas/selectors.tsx index dc8efdc1d87..fa08783db1d 100644 --- a/app/client/src/sagas/selectors.tsx +++ b/app/client/src/sagas/selectors.tsx @@ -10,7 +10,7 @@ import _, { defaults, omit } from "lodash"; import type { WidgetType } from "constants/WidgetConstants"; import { WIDGET_PROPS_TO_SKIP_FROM_EVAL } from "constants/WidgetConstants"; import type { ActionData } from "ee/reducers/entityReducers/actionsReducer"; -import type { Page } from "ee/constants/ReduxActionConstants"; +import type { Page } from "entities/Page"; import { getActions, getPlugins } from "ee/selectors/entitiesSelector"; import type { Plugin } from "api/PluginApi"; import type { DragDetails } from "reducers/uiReducers/dragResizeReducer"; diff --git a/app/client/src/selectors/editorSelectors.tsx b/app/client/src/selectors/editorSelectors.tsx index e6237748fde..247cd906b83 100644 --- a/app/client/src/selectors/editorSelectors.tsx +++ b/app/client/src/selectors/editorSelectors.tsx @@ -11,7 +11,6 @@ import type { } from "reducers/entityReducers/pageListReducer"; import type { WidgetCardProps, WidgetProps } from "widgets/BaseWidget"; -import type { Page } from "ee/constants/ReduxActionConstants"; import { ApplicationVersion } from "ee/actions/applicationActions"; import type { OccupiedSpace, @@ -48,6 +47,7 @@ import { getLayoutSystemType } from "./layoutSystemSelectors"; import { protectedModeSelector } from "./gitSyncSelectors"; import { getIsAnvilLayout } from "layoutSystems/anvil/integrations/selectors"; import { getCurrentApplication } from "ee/selectors/applicationSelectors"; +import type { Page } from "entities/Page"; const getIsDraggingOrResizing = (state: AppState) => state.ui.widgetDragResize.isResizing || state.ui.widgetDragResize.isDragging; @@ -348,6 +348,7 @@ export const getWidgetCards = createSelector( const { detachFromLayout = false, displayName, + displayOrder, iconSVG, isSearchWildcard, key, @@ -375,6 +376,7 @@ export const getWidgetCards = createSelector( columns, detachFromLayout, displayName, + displayOrder, icon: iconSVG, thumbnail: thumbnailSVG, IconCmp, diff --git a/app/client/src/utils/hooks/dragResizeHooks.tsx b/app/client/src/utils/hooks/dragResizeHooks.tsx index e2668a1982f..a86efb37505 100644 --- a/app/client/src/utils/hooks/dragResizeHooks.tsx +++ b/app/client/src/utils/hooks/dragResizeHooks.tsx @@ -2,6 +2,8 @@ import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import { useCallback, useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import { snipingModeSelector } from "selectors/editorSelectors"; +import { showPropertyPane } from "actions/propertyPaneActions"; +import { closePropertyPane } from "actions/widgetActions"; export const useShowPropertyPane = () => { const dispatch = useDispatch(); @@ -13,20 +15,16 @@ export const useShowPropertyPane = () => { // Don't show property pane in comment mode if (isSnipingMode) return; - dispatch( - // If widgetId is not provided, we don't show the property pane. - // However, if callForDragOrResize is provided, it will be a start or end of a drag or resize action - // callForDragOrResize payload is handled in SHOW_PROPERTY_PANE action. - // Ergo, when either widgetId or callForDragOrResize are provided, SHOW_PROPERTY_PANE - // Else, HIDE_PROPERTY_PANE - { - type: - widgetId || callForDragOrResize - ? ReduxActionTypes.SHOW_PROPERTY_PANE - : ReduxActionTypes.HIDE_PROPERTY_PANE, - payload: { widgetId, callForDragOrResize, force }, - }, - ); + // If widgetId is not provided, we don't show the property pane. + // However, if callForDragOrResize is provided, it will be a start or end of a drag or resize action + // callForDragOrResize payload is handled in SHOW_PROPERTY_PANE action. + // Ergo, when either widgetId or callForDragOrResize are provided, SHOW_PROPERTY_PANE + // Else, HIDE_PROPERTY_PANE + if (widgetId || callForDragOrResize) { + dispatch(showPropertyPane({ widgetId, callForDragOrResize, force })); + } else { + dispatch(closePropertyPane(force)); + } }, [dispatch, isSnipingMode], ); diff --git a/app/client/src/widgets/BaseWidget.tsx b/app/client/src/widgets/BaseWidget.tsx index df17d804493..3d507769353 100644 --- a/app/client/src/widgets/BaseWidget.tsx +++ b/app/client/src/widgets/BaseWidget.tsx @@ -571,6 +571,7 @@ export interface WidgetCardProps { type: WidgetType; key?: string; displayName: string; + displayOrder?: number; icon: string; thumbnail?: string; isBeta?: boolean; diff --git a/app/client/src/widgets/JSONFormWidget/fields/useRegisterFieldValidity.ts b/app/client/src/widgets/JSONFormWidget/fields/useRegisterFieldValidity.ts index 663afb547a0..58c2811ebd0 100644 --- a/app/client/src/widgets/JSONFormWidget/fields/useRegisterFieldValidity.ts +++ b/app/client/src/widgets/JSONFormWidget/fields/useRegisterFieldValidity.ts @@ -35,31 +35,25 @@ function useRegisterFieldValidity({ */ setTimeout(() => { try { - isValid - ? startAndEndSpanForFn("JSONFormWidget.clearErrors", {}, () => { - if (error) { - clearErrors(fieldName); - } - }) - : startAndEndSpanForFn("JSONFormWidget.setError", {}, () => { - setError(fieldName, { - type: fieldType, - message: "Invalid field", - }); + if (isValid) { + if (error) { + startAndEndSpanForFn("JSONFormWidget.clearErrors", {}, () => { + clearErrors(fieldName); }); + } + } else { + startAndEndSpanForFn("JSONFormWidget.setError", {}, () => { + setError(fieldName, { + type: fieldType, + message: "Invalid field", + }); + }); + } } catch (e) { Sentry.captureException(e); } }, 0); - }, [ - isValid, - fieldName, - fieldType, - setMetaInternalFieldState, - error, - clearErrors, - setError, - ]); + }, [isValid, fieldName, fieldType, error, clearErrors, setError]); useEffect(() => { setMetaInternalFieldState((prevState) => { diff --git a/app/client/src/widgets/SelectWidget/widget/derived.js b/app/client/src/widgets/SelectWidget/widget/derived.js index befe6480f24..61a49f48d2e 100644 --- a/app/client/src/widgets/SelectWidget/widget/derived.js +++ b/app/client/src/widgets/SelectWidget/widget/derived.js @@ -8,13 +8,13 @@ export default { if (typeof props.optionLabel === "string") { labels = sourceData.map((d) => d[props.optionLabel]); } else if (_.isArray(props.optionLabel)) { - labels = props.optionLabel; + labels = sourceData.map((d, i) => d[props.optionLabel[i]]); } if (typeof props.optionValue === "string") { values = sourceData.map((d) => d[props.optionValue]); } else if (_.isArray(props.optionValue)) { - values = props.optionValue; + values = sourceData.map((d, i) => d[props.optionValue[i]]); } return sourceData.map((d, i) => ({ diff --git a/app/client/src/widgets/TableWidgetV2/component/cellComponents/SelectCell.tsx b/app/client/src/widgets/TableWidgetV2/component/cellComponents/SelectCell.tsx index fbf3b7208b1..792f1672e2c 100644 --- a/app/client/src/widgets/TableWidgetV2/component/cellComponents/SelectCell.tsx +++ b/app/client/src/widgets/TableWidgetV2/component/cellComponents/SelectCell.tsx @@ -200,6 +200,7 @@ export const SelectCell = (props: SelectProps) => { const cellLabelValue = useMemo(() => { if (releaseTableSelectCellLabelValue) { + if (!options.length) return value; const selectedOption = options.find( (option) => option[TableSelectColumnOptionKeys.VALUE] === value, ); diff --git a/app/client/src/widgets/anvil/SectionWidget/index.tsx b/app/client/src/widgets/anvil/SectionWidget/index.tsx deleted file mode 100644 index 0d6809d673e..00000000000 --- a/app/client/src/widgets/anvil/SectionWidget/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import SectionWidget from "./widget"; - -export { SectionWidget }; diff --git a/app/client/src/widgets/anvil/ZoneWidget/index.tsx b/app/client/src/widgets/anvil/ZoneWidget/index.tsx deleted file mode 100644 index 2e3640067a5..00000000000 --- a/app/client/src/widgets/anvil/ZoneWidget/index.tsx +++ /dev/null @@ -1,3 +0,0 @@ -import ZoneWidget from "./widget"; - -export { ZoneWidget }; diff --git a/app/client/src/widgets/anvil/constants.ts b/app/client/src/widgets/anvil/constants.ts deleted file mode 100644 index c60988dd4bf..00000000000 --- a/app/client/src/widgets/anvil/constants.ts +++ /dev/null @@ -1,31 +0,0 @@ -export const anvilWidgets = { - SECTION_WIDGET: "SECTION_WIDGET", - ZONE_WIDGET: "ZONE_WIDGET", -}; - -export enum Elevations { - SECTION_ELEVATION = 1, - ZONE_ELEVATION = 2, - CARD_ELEVATION = 3, -} - -/** - * The data attribute that will be used to identify the anvil widget name in the DOM. - */ -export const AnvilDataAttributes = { - MODAL_SIZE: "data-size", - WIDGET_NAME: "data-widget-name", - IS_SELECTED_WIDGET: "data-selected", -}; - -/** - * The default values that will be applied to all widgets. - * This is the default for the API that allows widgets to define their selection and focus colors. - */ -export const DEFAULT_WIDGET_ON_CANVAS_UI = { - selectionBGCSSVar: "--on-canvas-ui-widget-selection", - focusBGCSSVar: "--on-canvas-ui-widget-focus", - selectionColorCSSVar: "--on-canvas-ui-widget-focus", - focusColorCSSVar: "--on-canvas-ui-widget-selection", - disableParentSelection: false, -}; diff --git a/app/client/src/widgets/index.ts b/app/client/src/widgets/index.ts index 84f7365175d..e4f7c3ca0f9 100644 --- a/app/client/src/widgets/index.ts +++ b/app/client/src/widgets/index.ts @@ -73,14 +73,18 @@ import { WDSSwitchGroupWidget } from "./wds/WDSSwitchGroupWidget"; import { WDSRadioGroupWidget } from "./wds/WDSRadioGroupWidget"; import { WDSMenuButtonWidget } from "./wds/WDSMenuButtonWidget"; import CustomWidget from "./CustomWidget"; -import { SectionWidget } from "./anvil/SectionWidget"; -import { ZoneWidget } from "./anvil/ZoneWidget"; +import { WDSSectionWidget } from "./wds/WDSSectionWidget"; +import { WDSZoneWidget } from "./wds/WDSZoneWidget"; import { WDSHeadingWidget } from "./wds/WDSHeadingWidget"; import { WDSParagraphWidget } from "./wds/WDSParagraphWidget"; import { WDSModalWidget } from "./wds/WDSModalWidget"; import { WDSStatsWidget } from "./wds/WDSStatsWidget"; import { WDSKeyValueWidget } from "./wds/WDSKeyValueWidget"; import { WDSInlineButtonsWidget } from "./wds/WDSInlineButtonsWidget"; +import { WDSEmailInputWidget } from "./wds/WDSEmailInputWidget"; +import { WDSPasswordInputWidget } from "./wds/WDSPasswordInputWidget"; +import { WDSNumberInputWidget } from "./wds/WDSNumberInputWidget"; +import { WDSMultilineInputWidget } from "./wds/WDSMultilineInputWidget"; const LegacyWidgets = [ CanvasWidget, @@ -165,14 +169,18 @@ const WDSWidgets = [ WDSRadioGroupWidget, WDSMenuButtonWidget, CustomWidget, - SectionWidget, - ZoneWidget, + WDSSectionWidget, + WDSZoneWidget, WDSParagraphWidget, WDSHeadingWidget, WDSModalWidget, WDSStatsWidget, WDSKeyValueWidget, WDSInlineButtonsWidget, + WDSEmailInputWidget, + WDSPasswordInputWidget, + WDSNumberInputWidget, + WDSMultilineInputWidget, ]; const Widgets = [ diff --git a/app/client/src/widgets/anvil/Container.tsx b/app/client/src/widgets/wds/Container.tsx similarity index 100% rename from app/client/src/widgets/anvil/Container.tsx rename to app/client/src/widgets/wds/Container.tsx diff --git a/app/client/src/widgets/wds/WDSButtonWidget/config/defaultsConfig.ts b/app/client/src/widgets/wds/WDSButtonWidget/config/defaultsConfig.ts index 69ee8269b7d..afb0ed2fa91 100644 --- a/app/client/src/widgets/wds/WDSButtonWidget/config/defaultsConfig.ts +++ b/app/client/src/widgets/wds/WDSButtonWidget/config/defaultsConfig.ts @@ -1,6 +1,7 @@ import { RecaptchaTypes } from "components/constants"; -import { COLORS, BUTTON_VARIANTS, objectKeys } from "@appsmith/wds"; +import { COLORS, BUTTON_VARIANTS } from "@appsmith/wds"; import { ResponsiveBehavior } from "layoutSystems/common/utils/constants"; +import { objectKeys } from "@appsmith/utils"; import { BUTTON_WIDGET_DEFAULT_LABEL, createMessage, diff --git a/app/client/src/widgets/wds/WDSButtonWidget/config/propertyPaneConfig/styleConfig.ts b/app/client/src/widgets/wds/WDSButtonWidget/config/propertyPaneConfig/styleConfig.ts index f68cd5d644a..249b14196ce 100644 --- a/app/client/src/widgets/wds/WDSButtonWidget/config/propertyPaneConfig/styleConfig.ts +++ b/app/client/src/widgets/wds/WDSButtonWidget/config/propertyPaneConfig/styleConfig.ts @@ -1,6 +1,7 @@ import { capitalize } from "lodash"; import { ValidationTypes } from "constants/WidgetValidation"; -import { COLORS, BUTTON_VARIANTS, objectKeys } from "@appsmith/wds"; +import { COLORS, BUTTON_VARIANTS } from "@appsmith/wds"; +import { objectKeys } from "@appsmith/utils"; export const propertyPaneStyleConfig = [ { diff --git a/app/client/src/widgets/wds/WDSCurrencyInputWidget/config/propertyPaneConfig/contentConfig.ts b/app/client/src/widgets/wds/WDSCurrencyInputWidget/config/propertyPaneConfig/contentConfig.ts index c3f2d815371..4df85db375a 100644 --- a/app/client/src/widgets/wds/WDSCurrencyInputWidget/config/propertyPaneConfig/contentConfig.ts +++ b/app/client/src/widgets/wds/WDSCurrencyInputWidget/config/propertyPaneConfig/contentConfig.ts @@ -1,11 +1,17 @@ import { CurrencyTypeOptions } from "constants/Currency"; import { ValidationTypes } from "constants/WidgetValidation"; import { AutocompleteDataType } from "utils/autocomplete/AutocompleteDataType"; +import { propertyPaneContentConfig as WdsInputWidgetPropertyPaneContentConfig } from "widgets/wds/WDSInputWidget/config/propertyPaneConfig/contentConfig"; import * as validations from "./validations"; import { countryToFlag } from "../../widget/helpers"; +const inputTypeSectionConfig = WdsInputWidgetPropertyPaneContentConfig.find( + (config) => config.sectionName === "Type", +); + export const propertyPaneContentConfig = [ + inputTypeSectionConfig, { sectionName: "Data", children: [ diff --git a/app/client/src/widgets/wds/WDSEmailInputWidget/index.ts b/app/client/src/widgets/wds/WDSEmailInputWidget/index.ts new file mode 100644 index 00000000000..11c4b32d1f4 --- /dev/null +++ b/app/client/src/widgets/wds/WDSEmailInputWidget/index.ts @@ -0,0 +1,3 @@ +import { WDSEmailInputWidget } from "./widget"; + +export { WDSEmailInputWidget }; diff --git a/app/client/src/widgets/wds/WDSEmailInputWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSEmailInputWidget/widget/index.tsx new file mode 100644 index 00000000000..332d42413c7 --- /dev/null +++ b/app/client/src/widgets/wds/WDSEmailInputWidget/widget/index.tsx @@ -0,0 +1,36 @@ +import { WDSInputWidget } from "widgets/wds/WDSInputWidget"; +import { EmailInputIcon, EmailInputThumbnail } from "appsmith-icons"; +import { WIDGET_TAGS } from "constants/WidgetConstants"; +import { INPUT_TYPES } from "widgets/wds/WDSInputWidget/constants"; +import type { WidgetBaseConfiguration } from "WidgetProvider/constants"; + +class WDSEmailInputWidget extends WDSInputWidget { + static type = "WDS_EMAIL_INPUT_WIDGET"; + + static getConfig(): WidgetBaseConfiguration { + return { + ...super.getConfig(), + displayOrder: undefined, + tags: [WIDGET_TAGS.INPUTS], + name: "Email Input", + }; + } + + static getDefaults() { + return { + ...super.getDefaults(), + inputType: INPUT_TYPES.EMAIL, + widgetName: "EmailInput", + }; + } + + static getMethods() { + return { + ...super.getMethods(), + IconCmp: EmailInputIcon, + ThumbnailCmp: EmailInputThumbnail, + }; + } +} + +export { WDSEmailInputWidget }; diff --git a/app/client/src/widgets/wds/WDSIconButtonWidget/config/defaultsConfig.ts b/app/client/src/widgets/wds/WDSIconButtonWidget/config/defaultsConfig.ts index 452738ded5b..8e381fa449b 100644 --- a/app/client/src/widgets/wds/WDSIconButtonWidget/config/defaultsConfig.ts +++ b/app/client/src/widgets/wds/WDSIconButtonWidget/config/defaultsConfig.ts @@ -1,4 +1,5 @@ -import { BUTTON_VARIANTS, COLORS, objectKeys } from "@appsmith/wds"; +import { BUTTON_VARIANTS, COLORS } from "@appsmith/wds"; +import { objectKeys } from "@appsmith/utils"; import { ResponsiveBehavior } from "layoutSystems/common/utils/constants"; export const defaultsConfig = { diff --git a/app/client/src/widgets/wds/WDSIconButtonWidget/config/propertyPaneConfig/styleConfig.ts b/app/client/src/widgets/wds/WDSIconButtonWidget/config/propertyPaneConfig/styleConfig.ts index 12089e2ab03..787a2e1d8e7 100644 --- a/app/client/src/widgets/wds/WDSIconButtonWidget/config/propertyPaneConfig/styleConfig.ts +++ b/app/client/src/widgets/wds/WDSIconButtonWidget/config/propertyPaneConfig/styleConfig.ts @@ -1,5 +1,6 @@ import { capitalize } from "lodash"; -import { BUTTON_VARIANTS, COLORS, objectKeys } from "@appsmith/wds"; +import { BUTTON_VARIANTS, COLORS } from "@appsmith/wds"; +import { objectKeys } from "@appsmith/utils"; import { ValidationTypes } from "constants/WidgetValidation"; export const propertyPaneStyleConfig = [ diff --git a/app/client/src/widgets/wds/WDSInlineButtonsWidget/config/propertyPaneConfig/contentConfig.ts b/app/client/src/widgets/wds/WDSInlineButtonsWidget/config/propertyPaneConfig/contentConfig.ts index 09f68229417..939e9d599ab 100644 --- a/app/client/src/widgets/wds/WDSInlineButtonsWidget/config/propertyPaneConfig/contentConfig.ts +++ b/app/client/src/widgets/wds/WDSInlineButtonsWidget/config/propertyPaneConfig/contentConfig.ts @@ -1,10 +1,11 @@ -import { BUTTON_VARIANTS, COLORS, objectKeys } from "@appsmith/wds"; +import { BUTTON_VARIANTS, COLORS } from "@appsmith/wds"; import { BUTTON_WIDGET_DEFAULT_LABEL, createMessage, } from "ee/constants/messages"; import { ValidationTypes } from "constants/WidgetValidation"; import { capitalize } from "lodash"; +import { objectKeys } from "@appsmith/utils"; export const propertyPaneContentConfig = [ { diff --git a/app/client/src/widgets/wds/WDSInputWidget/config/metaConfig.ts b/app/client/src/widgets/wds/WDSInputWidget/config/metaConfig.ts index e5b0ab73b13..a62239251e8 100644 --- a/app/client/src/widgets/wds/WDSInputWidget/config/metaConfig.ts +++ b/app/client/src/widgets/wds/WDSInputWidget/config/metaConfig.ts @@ -2,6 +2,7 @@ import { WIDGET_TAGS } from "constants/WidgetConstants"; export const metaConfig = { name: "Input", + displayOrder: 1, tags: [WIDGET_TAGS.SUGGESTED_WIDGETS, WIDGET_TAGS.INPUTS], needsMeta: true, searchTags: [ diff --git a/app/client/src/widgets/wds/WDSInputWidget/config/propertyPaneConfig/contentConfig.ts b/app/client/src/widgets/wds/WDSInputWidget/config/propertyPaneConfig/contentConfig.ts index 6131968e70b..175acb771c0 100644 --- a/app/client/src/widgets/wds/WDSInputWidget/config/propertyPaneConfig/contentConfig.ts +++ b/app/client/src/widgets/wds/WDSInputWidget/config/propertyPaneConfig/contentConfig.ts @@ -12,7 +12,7 @@ import type { InputWidgetProps } from "../../widget/types"; export const propertyPaneContentConfig = [ { - sectionName: "Data", + sectionName: "Type", children: [ { helpText: "Changes the type of data captured in the input", @@ -40,12 +40,25 @@ export const propertyPaneContentConfig = [ label: "Email", value: "EMAIL", }, + { + label: "Phone number", + value: "PHONE_NUMBER", + }, + { + label: "Currency", + value: "CURRENCY", + }, ], isBindProperty: false, isTriggerProperty: false, updateHook: inputTypeUpdateHook, dependencies: ["defaultText"], }, + ], + }, + { + sectionName: "Data", + children: [ { helpText: "Sets the default text of the widget. The text is updated if the default text changes", diff --git a/app/client/src/widgets/wds/WDSInputWidget/constants.ts b/app/client/src/widgets/wds/WDSInputWidget/constants.ts index 025c99c5725..945c8e0b646 100644 --- a/app/client/src/widgets/wds/WDSInputWidget/constants.ts +++ b/app/client/src/widgets/wds/WDSInputWidget/constants.ts @@ -7,3 +7,13 @@ export const INPUT_TYPES = { PHONE_NUMBER: "PHONE_NUMBER", MULTI_LINE_TEXT: "MULTI_LINE_TEXT", } as const; + +export const INPUT_TYPE_TO_WIDGET_TYPE_MAP = { + [INPUT_TYPES.TEXT]: "WDS_INPUT_WIDGET", + [INPUT_TYPES.EMAIL]: "WDS_EMAIL_INPUT_WIDGET", + [INPUT_TYPES.NUMBER]: "WDS_NUMBER_INPUT_WIDGET", + [INPUT_TYPES.PASSWORD]: "WDS_PASSWORD_INPUT_WIDGET", + [INPUT_TYPES.MULTI_LINE_TEXT]: "WDS_MULTILINE_INPUT_WIDGET", + [INPUT_TYPES.CURRENCY]: "WDS_CURRENCY_INPUT_WIDGET", + [INPUT_TYPES.PHONE_NUMBER]: "WDS_PHONE_INPUT_WIDGET", +}; diff --git a/app/client/src/widgets/wds/WDSInputWidget/widget/helper.ts b/app/client/src/widgets/wds/WDSInputWidget/widget/helper.ts index 7154611fbd0..acc3392993d 100644 --- a/app/client/src/widgets/wds/WDSInputWidget/widget/helper.ts +++ b/app/client/src/widgets/wds/WDSInputWidget/widget/helper.ts @@ -11,8 +11,11 @@ import { import type { InputType } from "../component/types"; import type { WidgetProps } from "widgets/BaseWidget"; -import { INPUT_TYPES } from "../constants"; import type { InputWidgetProps, Validation } from "./types"; +import { INPUT_TYPE_TO_WIDGET_TYPE_MAP, INPUT_TYPES } from "../constants"; +import type { PropertyUpdates } from "WidgetProvider/constants"; +import { getDefaultISDCode } from "widgets/wds/WDSPhoneInputWidget/constants"; +import { getDefaultCurrency } from "widgets/wds/WDSCurrencyInputWidget/constants"; /** * parses text to number if inputType is number @@ -131,11 +134,9 @@ export const validateInput = (props: InputWidgetProps): Validation => { export function inputTypeUpdateHook( props: WidgetProps, propertyName: string, - // TODO: Fix this the next time the file is edited - // eslint-disable-next-line @typescript-eslint/no-explicit-any - propertyValue: any, + propertyValue: InputType, ) { - const updates = [ + const updates: PropertyUpdates[] = [ { propertyPath: propertyName, propertyValue: propertyValue, @@ -149,5 +150,35 @@ export function inputTypeUpdateHook( propertyValue: isInputTypeEmailOrPassword(propertyValue), }); + // we will also change the widgetType based on the inputType + updates.push({ + propertyPath: "type", + propertyValue: INPUT_TYPE_TO_WIDGET_TYPE_MAP[propertyValue], + }); + + // in case we are chaging to phone input type & there is no + // defaultDiaCode property in the widget, we will default the country code to US + if ( + props.defaultDialCode === undefined && + propertyValue === INPUT_TYPES.PHONE_NUMBER + ) { + updates.push({ + propertyPath: "defaultDialCode", + propertyValue: getDefaultISDCode().dial_code, + }); + } + + // in case we are changing to currency input type & there is no + // defaultCurrency property in the widget, we will default the currency to USD + if ( + props.defaultCurrencyCode === undefined && + propertyValue === INPUT_TYPES.CURRENCY + ) { + updates.push({ + propertyPath: "defaultCurrencyCode", + propertyValue: getDefaultCurrency().currency, + }); + } + return updates; } diff --git a/app/client/src/widgets/wds/WDSInputWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSInputWidget/widget/index.tsx index 8e266721181..71698b222a2 100644 --- a/app/client/src/widgets/wds/WDSInputWidget/widget/index.tsx +++ b/app/client/src/widgets/wds/WDSInputWidget/widget/index.tsx @@ -13,11 +13,12 @@ import { WDSBaseInputWidget } from "../../WDSBaseInputWidget"; import type { DerivedPropertiesMap } from "WidgetProvider/factory"; import { EventType } from "constants/AppsmithActionConstants/ActionConstants"; import type { KeyDownEvent } from "widgets/wds/WDSBaseInputWidget/component/types"; +import type { WidgetBaseConfiguration } from "WidgetProvider/constants"; class WDSInputWidget extends WDSBaseInputWidget { static type = "WDS_INPUT_WIDGET"; - static getConfig() { + static getConfig(): WidgetBaseConfiguration { return config.metaConfig; } diff --git a/app/client/src/widgets/wds/WDSKeyValueWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSKeyValueWidget/widget/index.tsx index 6e1be032329..492a94305d1 100644 --- a/app/client/src/widgets/wds/WDSKeyValueWidget/widget/index.tsx +++ b/app/client/src/widgets/wds/WDSKeyValueWidget/widget/index.tsx @@ -1,12 +1,16 @@ +import { WIDGET_TAGS } from "constants/WidgetConstants"; import { WDSInputWidget } from "widgets/wds/WDSInputWidget"; import { KeyValueIcon, KeyValueThumbnail } from "appsmith-icons"; +import type { WidgetBaseConfiguration } from "WidgetProvider/constants"; class WDSKeyValueWidget extends WDSInputWidget { static type = "WDS_KEY_VALUE_WIDGET"; - static getConfig() { + static getConfig(): WidgetBaseConfiguration { return { ...super.getConfig(), + displayOrder: undefined, + tags: [WIDGET_TAGS.INPUTS], name: "KeyValue", }; } diff --git a/app/client/src/widgets/wds/WDSMenuButtonWidget/config/defaultsConfig.ts b/app/client/src/widgets/wds/WDSMenuButtonWidget/config/defaultsConfig.ts index 2d9ce1ff683..41cd481fe90 100644 --- a/app/client/src/widgets/wds/WDSMenuButtonWidget/config/defaultsConfig.ts +++ b/app/client/src/widgets/wds/WDSMenuButtonWidget/config/defaultsConfig.ts @@ -1,5 +1,6 @@ -import { BUTTON_VARIANTS, COLORS, objectKeys } from "@appsmith/wds"; +import { BUTTON_VARIANTS, COLORS } from "@appsmith/wds"; import type { WidgetDefaultProps } from "WidgetProvider/constants"; +import { objectKeys } from "@appsmith/utils"; export const defaultsConfig = { label: "Open The Menu…", diff --git a/app/client/src/widgets/wds/WDSMenuButtonWidget/config/propertyPaneConfig/styleConfig.ts b/app/client/src/widgets/wds/WDSMenuButtonWidget/config/propertyPaneConfig/styleConfig.ts index d863b9c2e33..7a440bacf9b 100644 --- a/app/client/src/widgets/wds/WDSMenuButtonWidget/config/propertyPaneConfig/styleConfig.ts +++ b/app/client/src/widgets/wds/WDSMenuButtonWidget/config/propertyPaneConfig/styleConfig.ts @@ -1,6 +1,7 @@ import { capitalize } from "lodash"; import { ValidationTypes } from "constants/WidgetValidation"; -import { BUTTON_VARIANTS, COLORS, ICONS, objectKeys } from "@appsmith/wds"; +import { BUTTON_VARIANTS, COLORS, ICONS } from "@appsmith/wds"; +import { objectKeys } from "@appsmith/utils"; import type { MenuButtonWidgetProps } from "../../widget/types"; diff --git a/app/client/src/widgets/wds/WDSModalWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSModalWidget/widget/index.tsx index 79c8907e842..6f1899fe9bd 100644 --- a/app/client/src/widgets/wds/WDSModalWidget/widget/index.tsx +++ b/app/client/src/widgets/wds/WDSModalWidget/widget/index.tsx @@ -21,7 +21,7 @@ import { ModalLayoutProvider } from "layoutSystems/anvil/layoutComponents/ModalL import styles from "./styles.module.css"; import { getAnvilWidgetDOMId } from "layoutSystems/common/utils/LayoutElementPositionsObserver/utils"; import { widgetTypeClassname } from "widgets/WidgetUtils"; -import { AnvilDataAttributes } from "widgets/anvil/constants"; +import { AnvilDataAttributes } from "widgets/wds/constants"; class WDSModalWidget extends BaseWidget { static type = "WDS_MODAL_WIDGET"; diff --git a/app/client/src/widgets/wds/WDSMultilineInputWidget/index.ts b/app/client/src/widgets/wds/WDSMultilineInputWidget/index.ts new file mode 100644 index 00000000000..92291887523 --- /dev/null +++ b/app/client/src/widgets/wds/WDSMultilineInputWidget/index.ts @@ -0,0 +1,3 @@ +import { WDSMultilineInputWidget } from "./widget"; + +export { WDSMultilineInputWidget }; diff --git a/app/client/src/widgets/wds/WDSMultilineInputWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSMultilineInputWidget/widget/index.tsx new file mode 100644 index 00000000000..d7174375c8b --- /dev/null +++ b/app/client/src/widgets/wds/WDSMultilineInputWidget/widget/index.tsx @@ -0,0 +1,36 @@ +import { WIDGET_TAGS } from "constants/WidgetConstants"; +import { WDSInputWidget } from "widgets/wds/WDSInputWidget"; +import { MultilineInputIcon, MultilineInputThumbnail } from "appsmith-icons"; +import { INPUT_TYPES } from "widgets/wds/WDSInputWidget/constants"; +import type { WidgetBaseConfiguration } from "WidgetProvider/constants"; + +class WDSMultilineInputWidget extends WDSInputWidget { + static type = "WDS_MULTILINE_INPUT_WIDGET"; + + static getConfig(): WidgetBaseConfiguration { + return { + ...super.getConfig(), + displayOrder: undefined, + tags: [WIDGET_TAGS.INPUTS], + name: "Multiline Input", + }; + } + + static getDefaults() { + return { + ...super.getDefaults(), + inputType: INPUT_TYPES.MULTI_LINE_TEXT, + widgetName: "MultilineInput", + }; + } + + static getMethods() { + return { + ...super.getMethods(), + IconCmp: MultilineInputIcon, + ThumbnailCmp: MultilineInputThumbnail, + }; + } +} + +export { WDSMultilineInputWidget }; diff --git a/app/client/src/widgets/wds/WDSNumberInputWidget/index.ts b/app/client/src/widgets/wds/WDSNumberInputWidget/index.ts new file mode 100644 index 00000000000..def29a56ac8 --- /dev/null +++ b/app/client/src/widgets/wds/WDSNumberInputWidget/index.ts @@ -0,0 +1,3 @@ +import { WDSNumberInputWidget } from "./widget"; + +export { WDSNumberInputWidget }; diff --git a/app/client/src/widgets/wds/WDSNumberInputWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSNumberInputWidget/widget/index.tsx new file mode 100644 index 00000000000..f5404cf22d7 --- /dev/null +++ b/app/client/src/widgets/wds/WDSNumberInputWidget/widget/index.tsx @@ -0,0 +1,36 @@ +import { WIDGET_TAGS } from "constants/WidgetConstants"; +import { WDSInputWidget } from "widgets/wds/WDSInputWidget"; +import { NumberInputIcon, NumberInputThumbnail } from "appsmith-icons"; +import { INPUT_TYPES } from "widgets/wds/WDSInputWidget/constants"; +import type { WidgetBaseConfiguration } from "WidgetProvider/constants"; + +class WDSNumberInputWidget extends WDSInputWidget { + static type = "WDS_NUMBER_INPUT_WIDGET"; + + static getConfig(): WidgetBaseConfiguration { + return { + ...super.getConfig(), + displayOrder: undefined, + tags: [WIDGET_TAGS.INPUTS], + name: "Number Input", + }; + } + + static getDefaults() { + return { + ...super.getDefaults(), + inputType: INPUT_TYPES.NUMBER, + widgetName: "NumberInput", + }; + } + + static getMethods() { + return { + ...super.getMethods(), + IconCmp: NumberInputIcon, + ThumbnailCmp: NumberInputThumbnail, + }; + } +} + +export { WDSNumberInputWidget }; diff --git a/app/client/src/widgets/wds/WDSPasswordInputWidget/index.ts b/app/client/src/widgets/wds/WDSPasswordInputWidget/index.ts new file mode 100644 index 00000000000..01b9eb9090e --- /dev/null +++ b/app/client/src/widgets/wds/WDSPasswordInputWidget/index.ts @@ -0,0 +1,3 @@ +import { WDSPasswordInputWidget } from "./widget"; + +export { WDSPasswordInputWidget }; diff --git a/app/client/src/widgets/wds/WDSPasswordInputWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSPasswordInputWidget/widget/index.tsx new file mode 100644 index 00000000000..69b17b523d8 --- /dev/null +++ b/app/client/src/widgets/wds/WDSPasswordInputWidget/widget/index.tsx @@ -0,0 +1,36 @@ +import { WIDGET_TAGS } from "constants/WidgetConstants"; +import { WDSInputWidget } from "widgets/wds/WDSInputWidget"; +import { PasswordInputIcon, PasswordInputThumbnail } from "appsmith-icons"; +import { INPUT_TYPES } from "widgets/wds/WDSInputWidget/constants"; +import type { WidgetBaseConfiguration } from "WidgetProvider/constants"; + +class WDSPasswordInputWidget extends WDSInputWidget { + static type = "WDS_PASSWORD_INPUT_WIDGET"; + + static getConfig(): WidgetBaseConfiguration { + return { + ...super.getConfig(), + displayOrder: undefined, + tags: [WIDGET_TAGS.INPUTS], + name: "Password Input", + }; + } + + static getDefaults() { + return { + ...super.getDefaults(), + inputType: INPUT_TYPES.PASSWORD, + widgetName: "PasswordInput", + }; + } + + static getMethods() { + return { + ...super.getMethods(), + IconCmp: PasswordInputIcon, + ThumbnailCmp: PasswordInputThumbnail, + }; + } +} + +export { WDSPasswordInputWidget }; diff --git a/app/client/src/widgets/wds/WDSPhoneInputWidget/config/propertyPaneConfig/contentConfig.ts b/app/client/src/widgets/wds/WDSPhoneInputWidget/config/propertyPaneConfig/contentConfig.ts index d019a42fc51..12446c69935 100644 --- a/app/client/src/widgets/wds/WDSPhoneInputWidget/config/propertyPaneConfig/contentConfig.ts +++ b/app/client/src/widgets/wds/WDSPhoneInputWidget/config/propertyPaneConfig/contentConfig.ts @@ -2,11 +2,17 @@ import { ISDCodeOptions } from "constants/ISDCodes_v2"; import type { ISDCodeProps } from "constants/ISDCodes_v2"; import { ValidationTypes } from "constants/WidgetValidation"; import { AutocompleteDataType } from "utils/autocomplete/AutocompleteDataType"; +import { propertyPaneContentConfig as WdsInputWidgetPropertyPaneContentConfig } from "widgets/wds/WDSInputWidget/config/propertyPaneConfig/contentConfig"; import { countryToFlag } from "../../widget/helpers"; import { defaultValueValidation } from "./validations"; +const inputTypeSectionConfig = WdsInputWidgetPropertyPaneContentConfig.find( + (config) => config.sectionName === "Type", +); + export const propertyPaneContentConfig = [ + inputTypeSectionConfig, { sectionName: "Data", children: [ diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/anvilConfig.ts b/app/client/src/widgets/wds/WDSSectionWidget/config/anvilConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/SectionWidget/widget/config/anvilConfig.ts rename to app/client/src/widgets/wds/WDSSectionWidget/config/anvilConfig.ts diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/autocompleteConfig.ts b/app/client/src/widgets/wds/WDSSectionWidget/config/autocompleteConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/SectionWidget/widget/config/autocompleteConfig.ts rename to app/client/src/widgets/wds/WDSSectionWidget/config/autocompleteConfig.ts diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/baseConfig.ts b/app/client/src/widgets/wds/WDSSectionWidget/config/baseConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/SectionWidget/widget/config/baseConfig.ts rename to app/client/src/widgets/wds/WDSSectionWidget/config/baseConfig.ts diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/defaultConfig.ts b/app/client/src/widgets/wds/WDSSectionWidget/config/defaultConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/SectionWidget/widget/config/defaultConfig.ts rename to app/client/src/widgets/wds/WDSSectionWidget/config/defaultConfig.ts diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/index.ts b/app/client/src/widgets/wds/WDSSectionWidget/config/index.ts similarity index 100% rename from app/client/src/widgets/anvil/SectionWidget/widget/config/index.ts rename to app/client/src/widgets/wds/WDSSectionWidget/config/index.ts diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/methodsConfig.ts b/app/client/src/widgets/wds/WDSSectionWidget/config/methodsConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/SectionWidget/widget/config/methodsConfig.ts rename to app/client/src/widgets/wds/WDSSectionWidget/config/methodsConfig.ts diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/propertyPaneContent.ts b/app/client/src/widgets/wds/WDSSectionWidget/config/propertyPaneContent.ts similarity index 100% rename from app/client/src/widgets/anvil/SectionWidget/widget/config/propertyPaneContent.ts rename to app/client/src/widgets/wds/WDSSectionWidget/config/propertyPaneContent.ts diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/config/propertyPaneStyle.ts b/app/client/src/widgets/wds/WDSSectionWidget/config/propertyPaneStyle.ts similarity index 100% rename from app/client/src/widgets/anvil/SectionWidget/widget/config/propertyPaneStyle.ts rename to app/client/src/widgets/wds/WDSSectionWidget/config/propertyPaneStyle.ts diff --git a/app/client/src/widgets/wds/WDSSectionWidget/index.tsx b/app/client/src/widgets/wds/WDSSectionWidget/index.tsx new file mode 100644 index 00000000000..f87917d4897 --- /dev/null +++ b/app/client/src/widgets/wds/WDSSectionWidget/index.tsx @@ -0,0 +1,3 @@ +import WDSSectionWidget from "./widget"; + +export { WDSSectionWidget }; diff --git a/app/client/src/widgets/anvil/SectionWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSSectionWidget/widget/index.tsx similarity index 92% rename from app/client/src/widgets/anvil/SectionWidget/widget/index.tsx rename to app/client/src/widgets/wds/WDSSectionWidget/widget/index.tsx index af973fe16cc..f1f7ee0dde6 100644 --- a/app/client/src/widgets/anvil/SectionWidget/widget/index.tsx +++ b/app/client/src/widgets/wds/WDSSectionWidget/widget/index.tsx @@ -17,15 +17,15 @@ import { propertyPaneStyle, methodsConfig, autocompleteConfig, -} from "./config"; +} from "../config"; import type { WidgetProps, WidgetState } from "widgets/BaseWidget"; import type { LayoutProps } from "layoutSystems/anvil/utils/anvilTypes"; import BaseWidget from "widgets/BaseWidget"; import type { ReactNode } from "react"; import React from "react"; -import { ContainerComponent } from "widgets/anvil/Container"; +import { ContainerComponent } from "widgets/wds/Container"; import { LayoutProvider } from "layoutSystems/anvil/layoutComponents/LayoutProvider"; -import { Elevations, anvilWidgets } from "widgets/anvil/constants"; +import { Elevations, anvilWidgets } from "widgets/wds/constants"; import type { CanvasWidgetsReduxState } from "reducers/entityReducers/canvasWidgetsReducer"; import type { CopiedWidgetData, @@ -35,7 +35,7 @@ import type { import { call } from "redux-saga/effects"; import { pasteWidgetsInSection } from "layoutSystems/anvil/utils/paste/sectionPasteUtils"; -class SectionWidget extends BaseWidget { +class WDSSectionWidget extends BaseWidget { static type = anvilWidgets.SECTION_WIDGET; static getConfig(): WidgetBaseConfiguration { @@ -152,8 +152,9 @@ class SectionWidget extends BaseWidget { } } -export interface SectionWidgetProps extends ContainerWidgetProps { +export interface WDSSectionWidgetProps + extends ContainerWidgetProps { layout: LayoutProps[]; } -export default SectionWidget; +export default WDSSectionWidget; diff --git a/app/client/src/widgets/wds/WDSStatsWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSStatsWidget/widget/index.tsx index 5dafafb8b97..413c51ced05 100644 --- a/app/client/src/widgets/wds/WDSStatsWidget/widget/index.tsx +++ b/app/client/src/widgets/wds/WDSStatsWidget/widget/index.tsx @@ -7,8 +7,8 @@ import * as config from "../config"; import { StatsComponent } from "../component"; import type { StatsWidgetProps } from "./types"; import type { AnvilConfig } from "WidgetProvider/constants"; -import { Elevations } from "widgets/anvil/constants"; -import { ContainerComponent } from "widgets/anvil/Container"; +import { Elevations } from "widgets/wds/constants"; +import { ContainerComponent } from "widgets/wds/Container"; class WDSStatsWidget extends BaseWidget { constructor(props: StatsWidgetProps) { diff --git a/app/client/src/widgets/wds/WDSTableWidget/config/propertyPaneConfig/PanelConfig/General.ts b/app/client/src/widgets/wds/WDSTableWidget/config/propertyPaneConfig/PanelConfig/General.ts index 31f36c3cdd3..fdb04dc0e98 100644 --- a/app/client/src/widgets/wds/WDSTableWidget/config/propertyPaneConfig/PanelConfig/General.ts +++ b/app/client/src/widgets/wds/WDSTableWidget/config/propertyPaneConfig/PanelConfig/General.ts @@ -2,7 +2,8 @@ import { ValidationTypes } from "constants/WidgetValidation"; import type { TableWidgetProps } from "widgets/wds/WDSTableWidget/constants"; import { ColumnTypes } from "widgets/wds/WDSTableWidget/constants"; import { hideByColumnType } from "../../../widget/propertyUtils"; -import { BUTTON_VARIANTS, objectKeys } from "@appsmith/wds"; +import { BUTTON_VARIANTS } from "@appsmith/wds"; +import { objectKeys } from "@appsmith/utils"; export default { sectionName: "General", diff --git a/app/client/src/widgets/wds/WDSToolbarButtonsWidget/config/propertyPaneConfig/styleConfig.ts b/app/client/src/widgets/wds/WDSToolbarButtonsWidget/config/propertyPaneConfig/styleConfig.ts index 7eb310043fd..40c9451493f 100644 --- a/app/client/src/widgets/wds/WDSToolbarButtonsWidget/config/propertyPaneConfig/styleConfig.ts +++ b/app/client/src/widgets/wds/WDSToolbarButtonsWidget/config/propertyPaneConfig/styleConfig.ts @@ -1,6 +1,7 @@ -import { BUTTON_VARIANTS, COLORS, objectKeys } from "@appsmith/wds"; +import { BUTTON_VARIANTS, COLORS } from "@appsmith/wds"; import { ValidationTypes } from "constants/WidgetValidation"; import { capitalize } from "lodash"; +import { objectKeys } from "@appsmith/utils"; export const propertyPaneStyleConfig = [ { diff --git a/app/client/src/widgets/wds/WDSZoneWidget/index.tsx b/app/client/src/widgets/wds/WDSZoneWidget/index.tsx new file mode 100644 index 00000000000..dc22de02736 --- /dev/null +++ b/app/client/src/widgets/wds/WDSZoneWidget/index.tsx @@ -0,0 +1,3 @@ +import WDSZoneWidget from "./widget"; + +export { WDSZoneWidget }; diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/anvilConfig.ts b/app/client/src/widgets/wds/WDSZoneWidget/widget/config/anvilConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/ZoneWidget/widget/config/anvilConfig.ts rename to app/client/src/widgets/wds/WDSZoneWidget/widget/config/anvilConfig.ts diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/autocompleteConfig.ts b/app/client/src/widgets/wds/WDSZoneWidget/widget/config/autocompleteConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/ZoneWidget/widget/config/autocompleteConfig.ts rename to app/client/src/widgets/wds/WDSZoneWidget/widget/config/autocompleteConfig.ts diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/baseConfig.ts b/app/client/src/widgets/wds/WDSZoneWidget/widget/config/baseConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/ZoneWidget/widget/config/baseConfig.ts rename to app/client/src/widgets/wds/WDSZoneWidget/widget/config/baseConfig.ts diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/defaultConfig.ts b/app/client/src/widgets/wds/WDSZoneWidget/widget/config/defaultConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/ZoneWidget/widget/config/defaultConfig.ts rename to app/client/src/widgets/wds/WDSZoneWidget/widget/config/defaultConfig.ts diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/index.ts b/app/client/src/widgets/wds/WDSZoneWidget/widget/config/index.ts similarity index 100% rename from app/client/src/widgets/anvil/ZoneWidget/widget/config/index.ts rename to app/client/src/widgets/wds/WDSZoneWidget/widget/config/index.ts diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/methodsConfig.ts b/app/client/src/widgets/wds/WDSZoneWidget/widget/config/methodsConfig.ts similarity index 100% rename from app/client/src/widgets/anvil/ZoneWidget/widget/config/methodsConfig.ts rename to app/client/src/widgets/wds/WDSZoneWidget/widget/config/methodsConfig.ts diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/propertyPaneContent.ts b/app/client/src/widgets/wds/WDSZoneWidget/widget/config/propertyPaneContent.ts similarity index 100% rename from app/client/src/widgets/anvil/ZoneWidget/widget/config/propertyPaneContent.ts rename to app/client/src/widgets/wds/WDSZoneWidget/widget/config/propertyPaneContent.ts diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/config/propertyPaneStyle.ts b/app/client/src/widgets/wds/WDSZoneWidget/widget/config/propertyPaneStyle.ts similarity index 100% rename from app/client/src/widgets/anvil/ZoneWidget/widget/config/propertyPaneStyle.ts rename to app/client/src/widgets/wds/WDSZoneWidget/widget/config/propertyPaneStyle.ts diff --git a/app/client/src/widgets/anvil/ZoneWidget/widget/index.tsx b/app/client/src/widgets/wds/WDSZoneWidget/widget/index.tsx similarity index 92% rename from app/client/src/widgets/anvil/ZoneWidget/widget/index.tsx rename to app/client/src/widgets/wds/WDSZoneWidget/widget/index.tsx index 6371540d712..35026db2507 100644 --- a/app/client/src/widgets/anvil/ZoneWidget/widget/index.tsx +++ b/app/client/src/widgets/wds/WDSZoneWidget/widget/index.tsx @@ -22,9 +22,9 @@ import BaseWidget from "widgets/BaseWidget"; import type { WidgetProps, WidgetState } from "widgets/BaseWidget"; import type { LayoutProps } from "layoutSystems/anvil/utils/anvilTypes"; import type { ContainerWidgetProps } from "widgets/ContainerWidget/widget"; -import { ContainerComponent } from "widgets/anvil/Container"; +import { ContainerComponent } from "widgets/wds/Container"; import { LayoutProvider } from "layoutSystems/anvil/layoutComponents/LayoutProvider"; -import { Elevations, anvilWidgets } from "widgets/anvil/constants"; +import { Elevations, anvilWidgets } from "widgets/wds/constants"; import type { CanvasWidgetsReduxState } from "reducers/entityReducers/canvasWidgetsReducer"; import type { CopiedWidgetData, @@ -35,7 +35,7 @@ import { call } from "redux-saga/effects"; import { pasteWidgetsInZone } from "layoutSystems/anvil/utils/paste/zonePasteUtils"; import { SectionColumns } from "layoutSystems/anvil/sectionSpaceDistributor/constants"; -class ZoneWidget extends BaseWidget { +class WDSZoneWidget extends BaseWidget { static type = anvilWidgets.ZONE_WIDGET; static getConfig(): WidgetBaseConfiguration { @@ -153,8 +153,8 @@ class ZoneWidget extends BaseWidget { } } -export interface ZoneWidgetProps extends ContainerWidgetProps { +export interface WDSZoneWidgetProps extends ContainerWidgetProps { layout: LayoutProps[]; } -export default ZoneWidget; +export default WDSZoneWidget; diff --git a/app/client/src/widgets/wds/constants.ts b/app/client/src/widgets/wds/constants.ts index b03a8b465aa..a4ac01a32eb 100644 --- a/app/client/src/widgets/wds/constants.ts +++ b/app/client/src/widgets/wds/constants.ts @@ -1,5 +1,36 @@ -import { getCanvasClassName } from "utils/generators"; -import { anvilWidgets } from "widgets/anvil/constants"; +import { getCanvasClassName } from "../../utils/generators"; + +export const anvilWidgets = { + SECTION_WIDGET: "SECTION_WIDGET", + ZONE_WIDGET: "ZONE_WIDGET", +}; + +export enum Elevations { + SECTION_ELEVATION = 1, + ZONE_ELEVATION = 2, + CARD_ELEVATION = 3, +} + +/** + * The data attribute that will be used to identify the anvil widget name in the DOM. + */ +export const AnvilDataAttributes = { + MODAL_SIZE: "data-size", + WIDGET_NAME: "data-widget-name", + IS_SELECTED_WIDGET: "data-selected", +}; + +/** + * The default values that will be applied to all widgets. + * This is the default for the API that allows widgets to define their selection and focus colors. + */ +export const DEFAULT_WIDGET_ON_CANVAS_UI = { + selectionBGCSSVar: "--on-canvas-ui-widget-selection", + focusBGCSSVar: "--on-canvas-ui-widget-focus", + selectionColorCSSVar: "--on-canvas-ui-widget-focus", + focusColorCSSVar: "--on-canvas-ui-widget-selection", + disableParentSelection: false, +}; export const WDS_V2_WIDGET_MAP = { BUTTON_WIDGET: "WDS_BUTTON_WIDGET", @@ -22,6 +53,10 @@ export const WDS_V2_WIDGET_MAP = { STATBOX_WIDGET: "WDS_STATS_WIDGET", KEY_VALUE_WIDGET: "WDS_KEY_VALUE_WIDGET", INLINE_BUTTONS_WIDGET: "WDS_INLINE_BUTTONS_WIDGET", + EMAIL_INPUT_WIDGET: "WDS_EMAIL_INPUT_WIDGET", + PASSWORD_INPUT_WIDGET: "WDS_PASSWORD_INPUT_WIDGET", + NUMBER_INPUT_WIDGET: "WDS_NUMBER_INPUT_WIDGET", + MULTILINE_INPUT_WIDGET: "WDS_MULTILINE_INPUT_WIDGET", // Anvil layout widgets ZONE_WIDGET: anvilWidgets.ZONE_WIDGET, diff --git a/app/client/test/factories/AppIDEFactoryUtils.ts b/app/client/test/factories/AppIDEFactoryUtils.ts index 21e2b06da74..5eccc699e18 100644 --- a/app/client/test/factories/AppIDEFactoryUtils.ts +++ b/app/client/test/factories/AppIDEFactoryUtils.ts @@ -2,7 +2,6 @@ import store from "store"; import { EditorViewMode } from "ee/entities/IDE/constants"; import type { AppState } from "ee/reducers"; import MockPluginsState from "test/factories/MockPluginsState"; -import type { Page } from "ee/constants/ReduxActionConstants"; import type { Action } from "entities/Action"; import type { IDETabs, @@ -13,6 +12,7 @@ import type { JSCollection } from "entities/JSCollection"; import type { FocusHistory } from "reducers/uiReducers/focusHistoryReducer"; import type { Datasource } from "entities/Datasource"; import type { FeatureFlags } from "ee/entities/FeatureFlag"; +import type { Page } from "entities/Page"; interface IDEStateArgs { ideView?: EditorViewMode; diff --git a/app/client/test/factories/PageFactory.ts b/app/client/test/factories/PageFactory.ts index 50ab3730bbe..f2af347adee 100644 --- a/app/client/test/factories/PageFactory.ts +++ b/app/client/test/factories/PageFactory.ts @@ -1,5 +1,5 @@ +import type { Page } from "entities/Page"; import * as Factory from "factory.ts"; -import type { Page } from "ee/constants/ReduxActionConstants"; function generateRandomHexId() { const hexChars = "0123456789abcdef"; diff --git a/app/client/test/sagas.ts b/app/client/test/sagas.ts index f3c730b6553..fcdf46d64a9 100644 --- a/app/client/test/sagas.ts +++ b/app/client/test/sagas.ts @@ -24,7 +24,6 @@ import queryPaneSagas from "../src/sagas/QueryPaneSagas"; import saaSPaneSagas from "../src/sagas/SaaSPaneSagas"; import snipingModeSagas from "../src/sagas/SnipingModeSagas"; import themeSagas from "../src/sagas/ThemeSaga"; -import utilSagas from "../src/sagas/UtilSagas"; import websocketSagas from "../src/sagas/WebsocketSagas/WebsocketSagas"; import actionExecutionChangeListeners from "../src/sagas/WidgetLoadingSaga"; import widgetOperationSagas from "../src/sagas/WidgetOperationSagas"; @@ -50,7 +49,6 @@ export const sagasToRunForTests = [ themeSagas, actionExecutionChangeListeners, formEvaluationChangeListener, - utilSagas, saaSPaneSagas, globalSearchSagas, websocketSagas, diff --git a/app/client/test/testCommon.ts b/app/client/test/testCommon.ts index 0baeccc4da4..a1494d6fe9f 100644 --- a/app/client/test/testCommon.ts +++ b/app/client/test/testCommon.ts @@ -1,4 +1,3 @@ -import type { Page } from "ee/constants/ReduxActionConstants"; import { ReduxActionTypes } from "ee/constants/ReduxActionConstants"; import { initEditorAction } from "actions/initActions"; import { setAppMode, updateCurrentPage } from "actions/pageActions"; @@ -12,6 +11,7 @@ import type { AppState } from "ee/reducers"; import type { WidgetEntity } from "ee/entities/DataTree/types"; import urlBuilder from "ee/entities/URLRedirect/URLAssembly"; import type { FlattenedWidgetProps } from "reducers/entityReducers/canvasWidgetsStructureReducer"; +import type { Page } from "entities/Page"; const pageId = "0123456789abcdef00000000"; diff --git a/app/client/yarn.lock b/app/client/yarn.lock index 7c6546836cc..e2c9c3e3958 100644 --- a/app/client/yarn.lock +++ b/app/client/yarn.lock @@ -228,6 +228,18 @@ __metadata: languageName: unknown linkType: soft +"@appsmith/eslint-plugin@workspace:^, @appsmith/eslint-plugin@workspace:packages/eslint-plugin": + version: 0.0.0-use.local + resolution: "@appsmith/eslint-plugin@workspace:packages/eslint-plugin" + languageName: unknown + linkType: soft + +"@appsmith/utils@workspace:^, @appsmith/utils@workspace:packages/utils": + version: 0.0.0-use.local + resolution: "@appsmith/utils@workspace:packages/utils" + languageName: unknown + linkType: soft + "@appsmith/wds-headless@workspace:^, @appsmith/wds-headless@workspace:packages/design-system/headless": version: 0.0.0-use.local resolution: "@appsmith/wds-headless@workspace:packages/design-system/headless" @@ -277,6 +289,7 @@ __metadata: version: 0.0.0-use.local resolution: "@appsmith/wds@workspace:packages/design-system/widgets" dependencies: + "@appsmith/utils": "workspace:^" "@appsmith/wds-headless": "workspace:^" "@appsmith/wds-theming": "workspace:^" "@emotion/css": ^11.11.2 @@ -10904,12 +10917,12 @@ __metadata: linkType: hard "@types/jest@npm:*, @types/jest@npm:^29.2.3": - version: 29.4.0 - resolution: "@types/jest@npm:29.4.0" + version: 29.5.12 + resolution: "@types/jest@npm:29.5.12" dependencies: expect: ^29.0.0 pretty-format: ^29.0.0 - checksum: 23760282362a252e6690314584d83a47512d4cd61663e957ed3398ecf98195fe931c45606ee2f9def12f8ed7d8aa102d492ec42d26facdaf8b78094a31e6568e + checksum: 19b1efdeed9d9a60a81edc8226cdeae5af7479e493eaed273e01243891c9651f7b8b4c08fc633a7d0d1d379b091c4179bbaa0807af62542325fd72f2dd17ce1c languageName: node linkType: hard @@ -13143,6 +13156,8 @@ __metadata: dependencies: "@appsmith/ads": "workspace:^" "@appsmith/ads-old": "workspace:^" + "@appsmith/eslint-plugin": "workspace:^" + "@appsmith/utils": "workspace:^" "@appsmith/wds": "workspace:^" "@appsmith/wds-theming": "workspace:^" "@aws-sdk/client-s3": ^3.622.0 @@ -13307,6 +13322,7 @@ __metadata: eslint-plugin-prettier: ^5.0.0 eslint-plugin-react: ^7.33.2 eslint-plugin-react-hooks: ^4.6.0 + eslint-plugin-react-perf: ^3.3.2 eslint-plugin-sort-destructure-keys: ^1.5.0 eslint-plugin-storybook: ^0.6.15 eslint-plugin-testing-library: ^6.2.0 @@ -18885,6 +18901,15 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react-perf@npm:^3.3.2": + version: 3.3.2 + resolution: "eslint-plugin-react-perf@npm:3.3.2" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 236982166bfb598c758a2ef0ba69e5173521c0f6481a8767aca5d29cf32928789d4bc1c7316aa274706baab820828bdb36336508c492071916bdb234a4c99417 + languageName: node + linkType: hard + "eslint-plugin-react@npm:^7.27.1, eslint-plugin-react@npm:^7.33.2": version: 7.33.2 resolution: "eslint-plugin-react@npm:7.33.2" @@ -24771,15 +24796,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - "lru-cache@npm:^7.7.1": version: 7.17.0 resolution: "lru-cache@npm:7.17.0" @@ -31983,13 +31999,11 @@ __metadata: linkType: hard "semver@npm:7.x, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.5.4 - resolution: "semver@npm:7.5.4" - dependencies: - lru-cache: ^6.0.0 + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3 + checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 languageName: node linkType: hard @@ -34009,11 +34023,11 @@ __metadata: linkType: hard "ts-api-utils@npm:^1.0.1": - version: 1.0.3 - resolution: "ts-api-utils@npm:1.0.3" + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" peerDependencies: typescript: ">=4.2.0" - checksum: 441cc4489d65fd515ae6b0f4eb8690057add6f3b6a63a36073753547fb6ce0c9ea0e0530220a0b282b0eec535f52c4dfc315d35f8a4c9a91c0def0707a714ca6 + checksum: c746ddabfdffbf16cb0b0db32bb287236a19e583057f8649ee7c49995bb776e1d3ef384685181c11a1a480369e022ca97512cb08c517b2d2bd82c83754c97012 languageName: node linkType: hard @@ -34047,7 +34061,7 @@ __metadata: languageName: node linkType: hard -"ts-jest@npm:29.1.0, ts-jest@npm:^29.1.0": +"ts-jest@npm:29.1.0": version: 29.1.0 resolution: "ts-jest@npm:29.1.0" dependencies: @@ -34080,6 +34094,43 @@ __metadata: languageName: node linkType: hard +"ts-jest@npm:^29.1.0": + version: 29.2.4 + resolution: "ts-jest@npm:29.2.4" + dependencies: + bs-logger: 0.x + ejs: ^3.1.10 + fast-json-stable-stringify: 2.x + jest-util: ^29.0.0 + json5: ^2.2.3 + lodash.memoize: 4.x + make-error: 1.x + semver: ^7.5.3 + yargs-parser: ^21.0.1 + peerDependencies: + "@babel/core": ">=7.0.0-beta.0 <8" + "@jest/transform": ^29.0.0 + "@jest/types": ^29.0.0 + babel-jest: ^29.0.0 + jest: ^29.0.0 + typescript: ">=4.3 <6" + peerDependenciesMeta: + "@babel/core": + optional: true + "@jest/transform": + optional: true + "@jest/types": + optional: true + babel-jest: + optional: true + esbuild: + optional: true + bin: + ts-jest: cli.js + checksum: 142246f12bb11d5edbfb5a65e298097667e2c4d390e316e356416ce00d3cd157220dbfb9de2a56b38f30776bc92ba59eff9fd78e9345ba4c6712783f27f5475a + languageName: node + linkType: hard + "ts-loader@npm:^9.4.1": version: 9.4.1 resolution: "ts-loader@npm:9.4.1" diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/ActionSpanCE.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/ActionSpanCE.java index 42c2e3753f2..eec93d4a08f 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/ActionSpanCE.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/ActionSpanCE.java @@ -23,13 +23,10 @@ public class ActionSpanCE { public static final String GET_UNPUBLISHED_ACTION = APPSMITH_SPAN_PREFIX + "get.action.unpublished"; public static final String GET_VIEW_MODE_ACTION = APPSMITH_SPAN_PREFIX + "get.action.viewmode"; public static final String GET_ACTION_REPOSITORY_CALL = APPSMITH_SPAN_PREFIX + "get.action.repository.call"; - public static final String VIEW_MODE_FILTER_ACTION = ACTIONS_VIEW_MODE_PREFIX + "filter"; - public static final String VIEW_MODE_SANITISE_ACTION = ACTIONS_VIEW_MODE_PREFIX + "sanitise"; public static final String VIEW_MODE_INITIAL_ACTION = ACTIONS_VIEW_MODE_PREFIX + "initial"; public static final String VIEW_MODE_FINAL_ACTION = ACTIONS_VIEW_MODE_PREFIX + "final"; public static final String VIEW_MODE_SET_PLUGIN_ID_AND_TYPE_JS = ACTIONS_VIEW_MODE_PREFIX + "set_js"; public static final String VIEW_MODE_SET_PLUGIN_ID_AND_TYPE_ACTION = ACTIONS_VIEW_MODE_PREFIX + "set_action"; public static final String VIEW_MODE_FETCH_PLUGIN_FROM_DB = ACTIONS_VIEW_MODE_PREFIX + "plugindb"; public static final String VIEW_MODE_FETCH_ACTIONS_FROM_DB = ACTIONS_VIEW_MODE_PREFIX + "fetchactions"; - public static final String VIEW_MODE_FETCH_ACTIONS_FROM_DB_QUERY = ACTIONS_VIEW_MODE_PREFIX + "actionsdb"; } diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/PageSpanCE.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/PageSpanCE.java index 30e388b1579..42169197bee 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/PageSpanCE.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/constants/spans/ce/PageSpanCE.java @@ -1,10 +1,14 @@ package com.appsmith.external.constants.spans.ce; -import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.CONSOLIDATED_API_PREFIX; - public class PageSpanCE { - public static final String GET_PAGE = CONSOLIDATED_API_PREFIX + "getpage"; - public static final String GET_PAGE_WITHOUT_BRANCH = CONSOLIDATED_API_PREFIX + "without_branch"; - public static final String GET_PAGE_WITH_BRANCH = CONSOLIDATED_API_PREFIX + "with_branch"; - public static final String FETCH_PAGE_FROM_DB = CONSOLIDATED_API_PREFIX + "pagedb"; + public static final String PAGES = "pages."; + public static final String GET_PAGE = PAGES + "getpage"; + public static final String GET_PAGE_WITHOUT_BRANCH = PAGES + "without_branch"; + public static final String GET_PAGE_WITH_BRANCH = PAGES + "with_branch"; + public static final String FETCH_PAGE_FROM_DB = PAGES + "fetch_page"; + + public static final String FETCH_PAGES_BY_APP_ID_DB = PAGES + "fetch_pages_by_app_id"; + public static final String MARK_RECENTLY_ACCESSED_RESOURCES_PAGES = PAGES + "update_recently_accessed_pages"; + public static final String PREPARE_APPLICATION_PAGES_DTO_FROM_PAGES = PAGES + "generate_app_pages_dto"; + public static final String MIGRATE_DSL = PAGES + "migrate_dsl"; } diff --git a/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/chat.json b/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/chat.json deleted file mode 100644 index 46dded48fc0..00000000000 --- a/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/chat.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "identifier": "CHAT", - "controlType": "SECTION", - "conditionals": { - "show": "{{actionConfiguration.formData.command.data === 'CHAT'}}" - }, - "children": [ - { - "label": "Models", - "tooltipText": "Select the model for response generation", - "subtitle": "ID of the model to use.", - "isRequired": true, - "propertyName": "chat_model_id", - "configProperty": "actionConfiguration.formData.chatModel.data", - "controlType": "DROP_DOWN", - "initialValue": "", - "options": [], - "placeholderText": "All models will be fetched.", - "fetchOptionsConditionally": true, - "setFirstOptionAsDefault": true, - "alternateViewTypes": ["json"], - "conditionals": { - "enable": "{{true}}", - "fetchDynamicValues": { - "condition": "{{actionConfiguration.formData.command.data === 'CHAT'}}", - "config": { - "params": { - "requestType": "CHAT_MODELS", - "displayType": "DROP_DOWN" - } - } - } - } - }, - { - "label": "Max Tokens", - "tooltipText": "The maximum number of tokens to generate in the chat completion.", - "subtitle": "The maximum number of tokens to generate in the chat completion.", - "Description": "Put a positive integer value", - "configProperty": "actionConfiguration.formData.maxTokens", - "controlType": "INPUT_TEXT", - "initialValue": "256", - "isRequired": true, - "dataType": "NUMBER", - "customStyles": { - "width": "270px", - "minWidth": "270px" - } - }, - { - "label": "System Prompt", - "Description": "Provide additional instructions for the AI model as system prompt", - "subtitle": "Provide additional instructions for the AI model as system prompt", - "configProperty": "actionConfiguration.formData.systemPrompt.data", - "controlType": "QUERY_DYNAMIC_INPUT_TEXT", - "placeholderText": "Write some text or use {{ }} to reference a dynamic text value", - "initialValue": "", - "isRequired": false, - "customStyles": { - "width": "590px", - "minWidth": "400px" - } - }, - { - "label": "Messages", - "tooltipText": "Ask a question", - "subtitle": "A list of messages comprising the conversation so far.", - "propertyName": "messages", - "isRequired": true, - "configProperty": "actionConfiguration.formData.messages.data", - "controlType": "ARRAY_FIELD", - "addMoreButtonLabel": "Add message", - "alternateViewTypes": ["json"], - "schema": [ - { - "label": "Role", - "key": "role", - "controlType": "DROP_DOWN", - "initialValue": "Human", - "options": [ - { - "label": "Human", - "value": "Human" - }, - { - "label": "Assistant", - "value": "Assistant" - } - ] - }, - { - "label": "Content", - "key": "content", - "controlType": "QUERY_DYNAMIC_INPUT_TEXT", - "placeholderText": "{{ UserInput.text }}" - } - ] - }, - { - "label": "Temperature", - "tooltipText": "Put a value between 0 and 1", - "Description": "Put a value between 0 and 1", - "subtitle": "Defaults to 1. Ranges from 0 to 1. Use temp closer to 0 for analytical / multiple choice, and closer to 1 for creative and generative tasks.", - "configProperty": "actionConfiguration.formData.temperature", - "controlType": "INPUT_TEXT", - "dataType": "NUMBER", - "initialValue": "1", - "isRequired": false, - "customStyles": { - "width": "270px", - "minWidth": "270px" - } - } - ] -} diff --git a/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/root.json b/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/root.json index 00213a57eae..2b674a2fc49 100644 --- a/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/root.json +++ b/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/root.json @@ -1,29 +1,342 @@ { "editor": [ { - "controlType": "SECTION", - "identifier": "SELECTOR", + "controlType": "SECTION_V2", + "identifier": "SECTION-ONE", "children": [ { - "label": "Command", - "description": "Choose the method you would like to use", - "configProperty": "actionConfiguration.formData.command.data", - "controlType": "DROP_DOWN", - "isRequired": true, - "initialValue": "CHAT", - "options": [ + "controlType": "DOUBLE_COLUMN_ZONE", + "identifier": "SO-Z1", + "children": [ { - "label": "Chat", - "value": "CHAT" + "label": "Command", + "description": "Choose the method you would like to use", + "configProperty": "actionConfiguration.formData.command.data", + "controlType": "DROP_DOWN", + "isRequired": true, + "initialValue": "CHAT", + "options": [ + { + "label": "Chat", + "value": "CHAT" + }, + { + "label": "Vision", + "value": "VISION" + } + ] + } + ] + }, + { + "controlType": "DOUBLE_COLUMN_ZONE", + "identifier": "SO-Z2", + "conditionals": { + "show": "{{actionConfiguration.formData.command.data === 'CHAT'}}" + }, + "children": [ + { + "label": "Models", + "tooltipText": "Select the model for response generation", + "subtitle": "ID of the model to use.", + "isRequired": true, + "propertyName": "chat_model_id", + "configProperty": "actionConfiguration.formData.chatModel.data", + "controlType": "DROP_DOWN", + "initialValue": "", + "options": [], + "placeholderText": "All models will be fetched.", + "fetchOptionsConditionally": true, + "setFirstOptionAsDefault": true, + "alternateViewTypes": ["json"], + "conditionals": { + "enable": "{{true}}", + "fetchDynamicValues": { + "condition": "{{actionConfiguration.formData.command.data === 'CHAT'}}", + "config": { + "params": { + "requestType": "CHAT_MODELS", + "displayType": "DROP_DOWN" + } + } + } + } }, { - "label": "Vision", - "value": "VISION" + "label": "Max Tokens", + "tooltipText": "The maximum number of tokens to generate in the chat completion.", + "subtitle": "The maximum number of tokens to generate in the chat completion.", + "Description": "Put a positive integer value", + "configProperty": "actionConfiguration.formData.maxTokens", + "controlType": "INPUT_TEXT", + "initialValue": "256", + "isRequired": true, + "dataType": "NUMBER", + "customStyles": { + "width": "270px", + "minWidth": "270px" + } + } + ] + }, + { + "controlType": "SINGLE_COLUMN_ZONE", + "identifier": "SO-Z3", + "conditionals": { + "show": "{{actionConfiguration.formData.command.data === 'CHAT'}}" + }, + "children": [ + { + "label": "System Prompt", + "Description": "Provide additional instructions for the AI model as system prompt", + "subtitle": "Provide additional instructions for the AI model as system prompt", + "configProperty": "actionConfiguration.formData.systemPrompt.data", + "controlType": "QUERY_DYNAMIC_TEXT", + "placeholderText": "Write some text or use {{ }} to reference a dynamic text value", + "initialValue": "", + "isRequired": false, + "customStyles": { + "width": "590px", + "minWidth": "400px" + } + } + ] + }, + { + "controlType": "DOUBLE_COLUMN_ZONE", + "identifier": "SO-Z4", + "conditionals": { + "show": "{{actionConfiguration.formData.command.data === 'VISION'}}" + }, + "children": [ + { + "label": "Models", + "tooltipText": "Select the model for response generation", + "subtitle": "ID of the model to use.", + "isRequired": true, + "propertyName": "vision_model_id", + "configProperty": "actionConfiguration.formData.visionModel.data", + "controlType": "DROP_DOWN", + "initialValue": "", + "options": [], + "placeholderText": "All models will be fetched.", + "fetchOptionsConditionally": true, + "setFirstOptionAsDefault": true, + "alternateViewTypes": ["json"], + "conditionals": { + "enable": "{{true}}", + "fetchDynamicValues": { + "condition": "{{actionConfiguration.formData.command.data === 'VISION'}}", + "config": { + "params": { + "requestType": "VISION_MODELS", + "displayType": "DROP_DOWN" + } + } + } + } + }, + { + "label": "Max Tokens", + "tooltipText": "The maximum number of tokens to generate in the chat completion.", + "subtitle": "The maximum number of tokens to generate in the chat completion.", + "Description": "Put a positive integer value", + "configProperty": "actionConfiguration.formData.maxTokens", + "controlType": "INPUT_TEXT", + "initialValue": "256", + "isRequired": true, + "dataType": "NUMBER", + "customStyles": { + "width": "270px", + "minWidth": "270px" + } + } + ] + }, + { + "controlType": "SINGLE_COLUMN_ZONE", + "identifier": "SO-Z5", + "conditionals": { + "show": "{{actionConfiguration.formData.command.data === 'VISION'}}" + }, + "children": [ + { + "label": "System Prompt", + "Description": "Provide additional instructions for the AI model as system prompt", + "subtitle": "Provide additional instructions for the AI model as system prompt", + "configProperty": "actionConfiguration.formData.systemPrompt.data", + "controlType": "QUERY_DYNAMIC_TEXT", + "placeholderText": "Write some text or use {{ }} to reference a dynamic text value", + "initialValue": "", + "isRequired": false + } + ] + } + ] + }, + { + "controlType": "SECTION_V2", + "identifier": "SECTION-TWO", + "children": [ + { + "controlType": "SINGLE_COLUMN_ZONE", + "identifier": "ST-Z1", + "conditionals": { + "show": "{{actionConfiguration.formData.command.data === 'CHAT'}}" + }, + "children": [ + { + "label": "Messages", + "tooltipText": "Ask a question", + "subtitle": "A list of messages comprising the conversation so far.", + "propertyName": "messages", + "isRequired": true, + "configProperty": "actionConfiguration.formData.messages.data", + "controlType": "ARRAY_FIELD", + "addMoreButtonLabel": "Add message", + "alternateViewTypes": ["json"], + "schema": [ + { + "label": "Role", + "key": "role", + "controlType": "DROP_DOWN", + "initialValue": "Human", + "options": [ + { + "label": "Human", + "value": "Human" + }, + { + "label": "Assistant", + "value": "Assistant" + } + ] + }, + { + "label": "Content", + "key": "content", + "controlType": "QUERY_DYNAMIC_INPUT_TEXT", + "placeholderText": "{{ UserInput.text }}" + } + ] + } + ] + }, + { + "controlType": "SINGLE_COLUMN_ZONE", + "identifier": "ST-Z2", + "conditionals": { + "show": "{{actionConfiguration.formData.command.data === 'VISION'}}" + }, + "children": [ + { + "label": "Messages", + "tooltipText": "Ask a question", + "subtitle": "A list of messages comprising the conversation so far. You can pass base64 encoded image directly in the request.", + "propertyName": "messages", + "isRequired": true, + "configProperty": "actionConfiguration.formData.messages.data", + "controlType": "ARRAY_FIELD", + "addMoreButtonLabel": "Add message", + "alternateViewTypes": ["json"], + "schema": [ + { + "label": "Role", + "key": "role", + "controlType": "DROP_DOWN", + "initialValue": "Human", + "options": [ + { + "label": "Human", + "value": "Human" + }, + { + "label": "Assistant", + "value": "Assistant" + } + ] + }, + { + "label": "Type", + "key": "type", + "controlType": "DROP_DOWN", + "initialValue": "text", + "options": [ + { + "label": "Text", + "value": "text" + }, + { + "label": "Image", + "value": "image" + } + ] + }, + { + "label": "Content", + "key": "content", + "controlType": "QUERY_DYNAMIC_INPUT_TEXT", + "placeholderText": "{{Img1.image}} or {{Input1.text}}" + } + ] + } + ] + } + ] + }, + { + "controlType": "SECTION_V2", + "identifier": "SECTION-THREE", + "children": [ + { + "controlType": "DOUBLE_COLUMN_ZONE", + "identifier": "STH-Z1", + "conditionals": { + "show": "{{actionConfiguration.formData.command.data === 'CHAT'}}" + }, + "children": [ + { + "label": "Temperature", + "tooltipText": "Put a value between 0 and 1", + "Description": "Put a value between 0 and 1", + "subtitle": "Defaults to 1. Ranges from 0 to 1. Use temp closer to 0 for analytical / multiple choice, and closer to 1 for creative and generative tasks.", + "configProperty": "actionConfiguration.formData.temperature", + "controlType": "INPUT_TEXT", + "dataType": "NUMBER", + "initialValue": "1", + "isRequired": false, + "customStyles": { + "width": "270px", + "minWidth": "270px" + } + } + ] + }, + { + "controlType": "DOUBLE_COLUMN_ZONE", + "identifier": "STH-Z2", + "conditionals": { + "show": "{{actionConfiguration.formData.command.data === 'VISION'}}" + }, + "children": [ + { + "label": "Temperature", + "tooltipText": "Put a value between 0 and 1", + "Description": "Put a value between 0 and 1", + "subtitle": "Defaults to 1. Ranges from 0 to 1. Use temp closer to 0 for analytical / multiple choice, and closer to 1 for creative and generative tasks.", + "configProperty": "actionConfiguration.formData.temperature", + "controlType": "INPUT_TEXT", + "dataType": "NUMBER", + "initialValue": "1", + "isRequired": false, + "customStyles": { + "width": "270px", + "minWidth": "270px" + } } ] } ] } - ], - "files": ["chat.json", "vision.json"] + ] } diff --git a/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/vision.json b/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/vision.json deleted file mode 100644 index 5830fe8588f..00000000000 --- a/app/server/appsmith-plugins/anthropicPlugin/src/main/resources/editor/vision.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "identifier": "VISION", - "controlType": "SECTION", - "conditionals": { - "show": "{{actionConfiguration.formData.command.data === 'VISION'}}" - }, - "children": [ - { - "label": "Models", - "tooltipText": "Select the model for response generation", - "subtitle": "ID of the model to use.", - "isRequired": true, - "propertyName": "vision_model_id", - "configProperty": "actionConfiguration.formData.visionModel.data", - "controlType": "DROP_DOWN", - "initialValue": "", - "options": [], - "placeholderText": "All models will be fetched.", - "fetchOptionsConditionally": true, - "setFirstOptionAsDefault": true, - "alternateViewTypes": ["json"], - "conditionals": { - "enable": "{{true}}", - "fetchDynamicValues": { - "condition": "{{actionConfiguration.formData.command.data === 'VISION'}}", - "config": { - "params": { - "requestType": "VISION_MODELS", - "displayType": "DROP_DOWN" - } - } - } - } - }, - { - "label": "Max Tokens", - "tooltipText": "The maximum number of tokens to generate in the chat completion.", - "subtitle": "The maximum number of tokens to generate in the chat completion.", - "Description": "Put a positive integer value", - "configProperty": "actionConfiguration.formData.maxTokens", - "controlType": "INPUT_TEXT", - "initialValue": "256", - "isRequired": true, - "dataType": "NUMBER", - "customStyles": { - "width": "270px", - "minWidth": "270px" - } - }, - { - "label": "System Prompt", - "Description": "Provide additional instructions for the AI model as system prompt", - "subtitle": "Provide additional instructions for the AI model as system prompt", - "configProperty": "actionConfiguration.formData.systemPrompt.data", - "controlType": "QUERY_DYNAMIC_INPUT_TEXT", - "placeholderText": "Write some text or use {{ }} to reference a dynamic text value", - "initialValue": "", - "isRequired": false - }, - { - "label": "Messages", - "tooltipText": "Ask a question", - "subtitle": "A list of messages comprising the conversation so far. You can pass base64 encoded image directly in the request.", - "propertyName": "messages", - "isRequired": true, - "configProperty": "actionConfiguration.formData.messages.data", - "controlType": "ARRAY_FIELD", - "addMoreButtonLabel": "Add message", - "alternateViewTypes": ["json"], - "schema": [ - { - "label": "Role", - "key": "role", - "controlType": "DROP_DOWN", - "initialValue": "Human", - "options": [ - { - "label": "Human", - "value": "Human" - }, - { - "label": "Assistant", - "value": "Assistant" - } - ] - }, - { - "label": "Type", - "key": "type", - "controlType": "DROP_DOWN", - "initialValue": "text", - "options": [ - { - "label": "Text", - "value": "text" - }, - { - "label": "Image", - "value": "image" - } - ] - }, - { - "label": "Content", - "key": "content", - "controlType": "QUERY_DYNAMIC_INPUT_TEXT", - "placeholderText": "{{Img1.image}} or {{Input1.text}}" - } - ] - }, - { - "label": "Temperature", - "tooltipText": "Put a value between 0 and 1", - "Description": "Put a value between 0 and 1", - "subtitle": "Defaults to 1. Ranges from 0 to 1. Use temp closer to 0 for analytical / multiple choice, and closer to 1 for creative and generative tasks.", - "configProperty": "actionConfiguration.formData.temperature", - "controlType": "INPUT_TEXT", - "dataType": "NUMBER", - "initialValue": "1", - "isRequired": false, - "customStyles": { - "width": "270px", - "minWidth": "270px" - } - } - ] -} diff --git a/app/server/appsmith-plugins/postgresPlugin/src/main/java/com/external/plugins/PostgresPlugin.java b/app/server/appsmith-plugins/postgresPlugin/src/main/java/com/external/plugins/PostgresPlugin.java index 003b8ddde36..218eba72eb7 100644 --- a/app/server/appsmith-plugins/postgresPlugin/src/main/java/com/external/plugins/PostgresPlugin.java +++ b/app/server/appsmith-plugins/postgresPlugin/src/main/java/com/external/plugins/PostgresPlugin.java @@ -884,7 +884,7 @@ public Mono getStructure( setFragments.deleteCharAt(setFragments.length() - 1); } - final String quotedTableName = table.getName().replaceFirst("\\.(\\w+)", ".\"$1\""); + final String quotedTableName = table.getName().replaceFirst("\\.(.+)", ".\"$1\""); table.getTemplates() .addAll(List.of( new DatasourceStructure.Template( diff --git a/app/server/appsmith-plugins/postgresPlugin/src/test/java/com/external/plugins/PostgresPluginTest.java b/app/server/appsmith-plugins/postgresPlugin/src/test/java/com/external/plugins/PostgresPluginTest.java index 7c2b084aeb8..b15878ccbc5 100644 --- a/app/server/appsmith-plugins/postgresPlugin/src/test/java/com/external/plugins/PostgresPluginTest.java +++ b/app/server/appsmith-plugins/postgresPlugin/src/test/java/com/external/plugins/PostgresPluginTest.java @@ -191,6 +191,40 @@ public static void setUp() { + " texts VARCHAR[2] ,\n" + " rating FLOAT4 \n" + ")"); + + statement.execute("CREATE TABLE \"testing-table-data\" (\n" + + " id serial PRIMARY KEY,\n" + + " name VARCHAR,\n" + + " age INTEGER,\n" + + " email VARCHAR (255) UNIQUE,\n" + + " join_date DATE,\n" + + " salary FLOAT4\n" + + ")"); + statement.execute("CREATE TABLE \"table_name-123\" (\n" + + " id serial PRIMARY KEY,\n" + + " name VARCHAR,\n" + + " age INTEGER,\n" + + " email VARCHAR (255) UNIQUE,\n" + + " join_date DATE,\n" + + " salary FLOAT4\n" + + ")"); + statement.execute("CREATE TABLE \"table-name.with.dots\" (\n" + + " id serial PRIMARY KEY,\n" + + " name VARCHAR,\n" + + " age INTEGER,\n" + + " email VARCHAR (255) UNIQUE,\n" + + " join_date DATE,\n" + + " salary FLOAT4\n" + + ")"); + + statement.execute("CREATE TABLE \"table@name#special$chars\" (\n" + + " id serial PRIMARY KEY,\n" + + " name VARCHAR,\n" + + " age INTEGER,\n" + + " email VARCHAR (255) UNIQUE,\n" + + " join_date DATE,\n" + + " salary FLOAT4\n" + + ")"); } try (Statement statement = connection.createStatement()) { @@ -236,6 +270,22 @@ public static void setUp() { + "'{\"country\":\"japan\", \"city\":\"kyoto\"}', 'A Lincoln'" + ")"); } + try (Statement statement = connection.createStatement()) { + statement.execute( + "INSERT INTO \"testing-table-data\" VALUES (" + " 1, '', 30, '', '2023-07-31', 75000.00" + ")"); + } + try (Statement statement = connection.createStatement()) { + statement.execute("INSERT INTO \"table_name-123\" VALUES (" + + " 1, 'John Doe', 30, 'john.doe@example.com', '2023-07-31', 75000.00" + ")"); + } + try (Statement statement = connection.createStatement()) { + statement.execute("INSERT INTO \"table-name.with.dots\" VALUES (" + + " 1, 'Jane Doe', 28, 'jane.doe@example.com', '2023-08-01', 65000.00" + ")"); + } + try (Statement statement = connection.createStatement()) { + statement.execute("INSERT INTO \"table@name#special$chars\" VALUES (" + + " 1, 'Alice Smith', 35, 'alice.smith@example.com', '2023-08-15', 80000.00" + ")"); + } } catch (SQLException throwable) { throwable.printStackTrace(); @@ -299,6 +349,198 @@ private DatasourceStructure.Table findTableByName(List structureMono = pluginExecutor + .datasourceCreate(dsConfig) + .flatMap(connection -> pluginExecutor.getStructure(connection, dsConfig)); + + StepVerifier.create(structureMono) + .assertNext(structure -> { + assertNotNull(structure); + DatasourceStructure.Table sampleTable = + findTableByName(structure.getTables(), "public.table@name#special$chars"); + assertNotNull(sampleTable); + assertEquals(DatasourceStructure.TableType.TABLE, sampleTable.getType()); + assertArrayEquals( + new DatasourceStructure.Column[] { + new DatasourceStructure.Column( + "id", "int4", "nextval('\"table@name#special$chars_id_seq\"'::regclass)", true), + new DatasourceStructure.Column("name", "varchar", null, false), + new DatasourceStructure.Column("age", "int4", null, false), + new DatasourceStructure.Column("email", "varchar", null, false), + new DatasourceStructure.Column("join_date", "date", null, false), + new DatasourceStructure.Column("salary", "float4", null, false), + }, + sampleTable.getColumns().toArray()); + + final DatasourceStructure.PrimaryKey samplePrimaryKey = + new DatasourceStructure.PrimaryKey("table@name#special$chars_pkey", new ArrayList<>()); + samplePrimaryKey.getColumnNames().add("id"); + assertArrayEquals( + new DatasourceStructure.Key[] {samplePrimaryKey}, + sampleTable.getKeys().toArray()); + + assertArrayEquals( + new DatasourceStructure.Template[] { + new DatasourceStructure.Template( + "SELECT", "SELECT * FROM public.\"table@name#special$chars\" LIMIT 10;", true), + new DatasourceStructure.Template( + "INSERT", + "INSERT INTO public.\"table@name#special$chars\" " + + "(\"name\", \"age\", \"email\", \"join_date\", \"salary\")\n " + + "VALUES ('', 1, '', '2019-07-01', 1.0);", + false), + new DatasourceStructure.Template( + "UPDATE", + "UPDATE public.\"table@name#special$chars\" SET\n" + + " \"name\" = '',\n" + + " \"age\" = 1,\n" + + " \"email\" = '',\n" + + " \"join_date\" = '2019-07-01',\n" + + " \"salary\" = 1.0\n" + + " WHERE 1 = 0; -- Specify a valid condition here. Removing the condition may update every row in the table!", + false), + new DatasourceStructure.Template( + "DELETE", + "DELETE FROM public.\"table@name#special$chars\"\n" + + " WHERE 1 = 0; -- Specify a valid condition here. Removing the condition may delete everything in the table!", + false), + }, + sampleTable.getTemplates().toArray()); + }) + .verifyComplete(); + } + + @Test + public void testStructure_containing_underscore_and_hyphen() throws SQLException { + DatasourceConfiguration dsConfig = createDatasourceConfiguration(); + Mono structureMono = pluginExecutor + .datasourceCreate(dsConfig) + .flatMap(connection -> pluginExecutor.getStructure(connection, dsConfig)); + + StepVerifier.create(structureMono) + .assertNext(structure -> { + assertNotNull(structure); + DatasourceStructure.Table sampleTable = + findTableByName(structure.getTables(), "public.table_name-123"); + assertNotNull(sampleTable); + assertEquals(DatasourceStructure.TableType.TABLE, sampleTable.getType()); + assertArrayEquals( + new DatasourceStructure.Column[] { + new DatasourceStructure.Column( + "id", "int4", "nextval('\"table_name-123_id_seq\"'::regclass)", true), + new DatasourceStructure.Column("name", "varchar", null, false), + new DatasourceStructure.Column("age", "int4", null, false), + new DatasourceStructure.Column("email", "varchar", null, false), + new DatasourceStructure.Column("join_date", "date", null, false), + new DatasourceStructure.Column("salary", "float4", null, false), + }, + sampleTable.getColumns().toArray()); + + final DatasourceStructure.PrimaryKey samplePrimaryKey = + new DatasourceStructure.PrimaryKey("table_name-123_pkey", new ArrayList<>()); + samplePrimaryKey.getColumnNames().add("id"); + assertArrayEquals( + new DatasourceStructure.Key[] {samplePrimaryKey}, + sampleTable.getKeys().toArray()); + + assertArrayEquals( + new DatasourceStructure.Template[] { + new DatasourceStructure.Template( + "SELECT", "SELECT * FROM public.\"table_name-123\" LIMIT 10;", true), + new DatasourceStructure.Template( + "INSERT", + "INSERT INTO public.\"table_name-123\" " + + "(\"name\", \"age\", \"email\", \"join_date\", \"salary\")\n " + + "VALUES ('', 1, '', '2019-07-01', 1.0);", + false), + new DatasourceStructure.Template( + "UPDATE", + "UPDATE public.\"table_name-123\" SET\n" + + " \"name\" = '',\n" + + " \"age\" = 1,\n" + + " \"email\" = '',\n" + + " \"join_date\" = '2019-07-01',\n" + + " \"salary\" = 1.0\n" + + " WHERE 1 = 0; -- Specify a valid condition here. Removing the condition may update every row in the table!", + false), + new DatasourceStructure.Template( + "DELETE", + "DELETE FROM public.\"table_name-123\"\n" + + " WHERE 1 = 0; -- Specify a valid condition here. Removing the condition may delete everything in the table!", + false), + }, + sampleTable.getTemplates().toArray()); + }) + .verifyComplete(); + } + + @Test + public void testStructure_containing_dots() { + DatasourceConfiguration dsConfig = createDatasourceConfiguration(); + Mono structureMono = pluginExecutor + .datasourceCreate(dsConfig) + .flatMap(connection -> pluginExecutor.getStructure(connection, dsConfig)); + + StepVerifier.create(structureMono) + .assertNext(structure -> { + assertNotNull(structure); + DatasourceStructure.Table sampleTable = + findTableByName(structure.getTables(), "public.table-name.with.dots"); + assertNotNull(sampleTable); + assertEquals(DatasourceStructure.TableType.TABLE, sampleTable.getType()); + assertArrayEquals( + new DatasourceStructure.Column[] { + new DatasourceStructure.Column( + "id", "int4", "nextval('\"table-name.with.dots_id_seq\"'::regclass)", true), + new DatasourceStructure.Column("name", "varchar", null, false), + new DatasourceStructure.Column("age", "int4", null, false), + new DatasourceStructure.Column("email", "varchar", null, false), + new DatasourceStructure.Column("join_date", "date", null, false), + new DatasourceStructure.Column("salary", "float4", null, false), + }, + sampleTable.getColumns().toArray()); + + final DatasourceStructure.PrimaryKey samplePrimaryKey = + new DatasourceStructure.PrimaryKey("table-name.with.dots_pkey", new ArrayList<>()); + samplePrimaryKey.getColumnNames().add("id"); + assertArrayEquals( + new DatasourceStructure.Key[] {samplePrimaryKey}, + sampleTable.getKeys().toArray()); + + assertArrayEquals( + new DatasourceStructure.Template[] { + new DatasourceStructure.Template( + "SELECT", "SELECT * FROM public.\"table-name.with.dots\" LIMIT 10;", true), + new DatasourceStructure.Template( + "INSERT", + "INSERT INTO public.\"table-name.with.dots\" " + + "(\"name\", \"age\", \"email\", \"join_date\", \"salary\")\n " + + "VALUES ('', 1, '', '2019-07-01', 1.0);", + false), + new DatasourceStructure.Template( + "UPDATE", + "UPDATE public.\"table-name.with.dots\" SET\n" + + " \"name\" = '',\n" + + " \"age\" = 1,\n" + + " \"email\" = '',\n" + + " \"join_date\" = '2019-07-01',\n" + + " \"salary\" = 1.0\n" + + " WHERE 1 = 0; -- Specify a valid condition here. Removing the condition may update every row in the table!", + false), + new DatasourceStructure.Template( + "DELETE", + "DELETE FROM public.\"table-name.with.dots\"\n" + + " WHERE 1 = 0; -- Specify a valid condition here. Removing the condition may delete everything in the table!", + false), + }, + sampleTable.getTemplates().toArray()); + }) + .verifyComplete(); + } + @Test public void testConnectPostgresContainer() { @@ -501,7 +743,7 @@ public void testStructure() { StepVerifier.create(structureMono) .assertNext(structure -> { assertNotNull(structure); - assertEquals(5, structure.getTables().size()); + assertEquals(9, structure.getTables().size()); DatasourceStructure.Table campusTable = findTableByName(structure.getTables(), "public.campus"); assertNotNull(campusTable); @@ -696,6 +938,73 @@ public void testStructure() { .verifyComplete(); } + @Test + public void testStructure_containing_hyphen() { + + DatasourceConfiguration dsConfig = createDatasourceConfiguration(); + Mono structureMono = pluginExecutor + .datasourceCreate(dsConfig) + .flatMap(connection -> pluginExecutor.getStructure(connection, dsConfig)); + + StepVerifier.create(structureMono) + .assertNext(structure -> { + assertNotNull(structure); + assertEquals(9, structure.getTables().size()); + + DatasourceStructure.Table sampleTable = + findTableByName(structure.getTables(), "public.testing-table-data"); + assertNotNull(sampleTable); + assertEquals(DatasourceStructure.TableType.TABLE, sampleTable.getType()); + assertArrayEquals( + new DatasourceStructure.Column[] { + new DatasourceStructure.Column( + "id", "int4", "nextval('\"testing-table-data_id_seq\"'::regclass)", true), + new DatasourceStructure.Column("name", "varchar", null, false), + new DatasourceStructure.Column("age", "int4", null, false), + new DatasourceStructure.Column("email", "varchar", null, false), + new DatasourceStructure.Column("join_date", "date", null, false), + new DatasourceStructure.Column("salary", "float4", null, false), + }, + sampleTable.getColumns().toArray()); + + final DatasourceStructure.PrimaryKey samplePrimaryKey = + new DatasourceStructure.PrimaryKey("testing-table-data_pkey", new ArrayList<>()); + samplePrimaryKey.getColumnNames().add("id"); + assertArrayEquals( + new DatasourceStructure.Key[] {samplePrimaryKey}, + sampleTable.getKeys().toArray()); + + assertArrayEquals( + new DatasourceStructure.Template[] { + new DatasourceStructure.Template( + "SELECT", "SELECT * FROM public.\"testing-table-data\" LIMIT 10;", true), + new DatasourceStructure.Template( + "INSERT", + "INSERT INTO public.\"testing-table-data\" " + + "(\"name\", \"age\", \"email\", \"join_date\", \"salary\")\n " + + "VALUES ('', 1, '', '2019-07-01', 1.0);", + false), + new DatasourceStructure.Template( + "UPDATE", + "UPDATE public.\"testing-table-data\" SET\n" + + " \"name\" = '',\n" + + " \"age\" = 1,\n" + + " \"email\" = '',\n" + + " \"join_date\" = '2019-07-01',\n" + + " \"salary\" = 1.0\n" + + " WHERE 1 = 0; -- Specify a valid condition here. Removing the condition may update every row in the table!", + false), + new DatasourceStructure.Template( + "DELETE", + "DELETE FROM public.\"testing-table-data\"\n" + + " WHERE 1 = 0; -- Specify a valid condition here. Removing the condition may delete everything in the table!", + false), + }, + sampleTable.getTemplates().toArray()); + }) + .verifyComplete(); + } + @Test public void testStaleConnectionCheck() { DatasourceConfiguration dsConfig = createDatasourceConfiguration(); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/helpers/ObservationUtils.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/helpers/ObservationUtils.java new file mode 100644 index 00000000000..09590490b0c --- /dev/null +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/helpers/ObservationUtils.java @@ -0,0 +1,13 @@ +package com.appsmith.server.helpers; + +import com.appsmith.server.domains.ApplicationMode; + +import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.CONSOLIDATED_API_PREFIX; +import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.EDIT; +import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.VIEW; + +public class ObservationUtils { + public static String getQualifiedSpanName(String spanName, ApplicationMode mode) { + return CONSOLIDATED_API_PREFIX + (ApplicationMode.PUBLISHED.equals(mode) ? VIEW : EDIT) + spanName; + } +} diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/base/NewActionServiceCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/base/NewActionServiceCE.java index 7b2c4b71384..b52362f4268 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/base/NewActionServiceCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/base/NewActionServiceCE.java @@ -78,6 +78,9 @@ Flux findAllByApplicationIdAndViewMode( Flux findAllByApplicationIdAndViewMode( String applicationId, Boolean viewMode, Optional permission, Optional sort); + Flux findAllByApplicationIdAndPluginType( + String applicationId, Boolean viewMode, AclPermission permission, Sort sort, List pluginTypes); + Flux getActionsForViewMode(String applicationId); ActionViewDTO generateActionViewDTO(NewAction action, ActionDTO actionDTO, boolean viewMode); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/base/NewActionServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/base/NewActionServiceCEImpl.java index 952a7605d80..0ea6e88c480 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/base/NewActionServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/newactions/base/NewActionServiceCEImpl.java @@ -81,10 +81,6 @@ import static com.appsmith.external.constants.spans.ActionSpan.GET_ACTION_REPOSITORY_CALL; import static com.appsmith.external.constants.spans.ce.ActionSpanCE.VIEW_MODE_FETCH_ACTIONS_FROM_DB; import static com.appsmith.external.constants.spans.ce.ActionSpanCE.VIEW_MODE_FETCH_PLUGIN_FROM_DB; -import static com.appsmith.external.constants.spans.ce.ActionSpanCE.VIEW_MODE_FILTER_ACTION; -import static com.appsmith.external.constants.spans.ce.ActionSpanCE.VIEW_MODE_FINAL_ACTION; -import static com.appsmith.external.constants.spans.ce.ActionSpanCE.VIEW_MODE_INITIAL_ACTION; -import static com.appsmith.external.constants.spans.ce.ActionSpanCE.VIEW_MODE_SANITISE_ACTION; import static com.appsmith.external.constants.spans.ce.ActionSpanCE.VIEW_MODE_SET_PLUGIN_ID_AND_TYPE_ACTION; import static com.appsmith.external.constants.spans.ce.ActionSpanCE.VIEW_MODE_SET_PLUGIN_ID_AND_TYPE_JS; import static com.appsmith.external.helpers.AppsmithBeanUtils.copyNestedNonNullProperties; @@ -733,32 +729,27 @@ public Flux findByPageIdAndViewMode(String pageId, Boolean viewMode, return repository.findByPageIdAndViewMode(pageId, viewMode, permission).flatMap(this::sanitizeAction); } + @Override + public Flux findAllByApplicationIdAndPluginType( + String applicationId, + Boolean viewMode, + AclPermission permission, + Sort sort, + List excludedPluginTypes) { + return repository + .findPublishedActionsByApplicationIdAndPluginType(applicationId, excludedPluginTypes, permission, sort) + .name(VIEW_MODE_FETCH_ACTIONS_FROM_DB) + .tap(Micrometer.observation(observationRegistry)); + } + @Override public Flux findAllByApplicationIdAndViewMode( String applicationId, Boolean viewMode, AclPermission permission, Sort sort) { return repository .findByApplicationId(applicationId, permission, sort) - .name(VIEW_MODE_FETCH_ACTIONS_FROM_DB) - .tap(Micrometer.observation(observationRegistry)) // In case of view mode being true, filter out all the actions which haven't been published - .flatMap(action -> { - if (Boolean.TRUE.equals(viewMode)) { - // In case we are trying to fetch published actions but this action has not been published, do - // not return - if (action.getPublishedAction() == null) { - return Mono.empty(); - } - } - // No need to handle the edge case of unpublished action not being present. This is not possible - // because every created action starts from an unpublishedAction state. - - return Mono.just(action); - }) - .name(VIEW_MODE_FILTER_ACTION) - .tap(Micrometer.observation(observationRegistry)) - .flatMap(this::sanitizeAction) - .name(VIEW_MODE_SANITISE_ACTION) - .tap(Micrometer.observation(observationRegistry)); + .flatMap(action -> this.filterAction(action, viewMode)) + .flatMap(this::sanitizeAction); } @Override @@ -792,15 +783,13 @@ public Flux getActionsForViewMode(String applicationId) { return Flux.error(new AppsmithException(AppsmithError.INVALID_PARAMETER, FieldName.APPLICATION_ID)); } + List excludedPluginTypes = List.of(PluginType.JS.toString()); + // fetch the published actions by applicationId // No need to sort the results - return findAllByApplicationIdAndViewMode(applicationId, true, actionPermission.getExecutePermission(), null) - .name(VIEW_MODE_INITIAL_ACTION) - .tap(Micrometer.observation(observationRegistry)) - .filter(newAction -> !PluginType.JS.equals(newAction.getPluginType())) - .map(action -> generateActionViewDTO(action, action.getPublishedAction(), true)) - .name(VIEW_MODE_FINAL_ACTION) - .tap(Micrometer.observation(observationRegistry)); + return findAllByApplicationIdAndPluginType( + applicationId, true, actionPermission.getExecutePermission(), null, excludedPluginTypes) + .map(action -> generateActionViewDTO(action, action.getPublishedAction(), true)); } @Override @@ -1083,6 +1072,20 @@ public Mono sanitizeAction(NewAction action) { return actionMono; } + public Mono filterAction(NewAction action, Boolean viewMode) { + if (Boolean.TRUE.equals(viewMode)) { + // In case we are trying to fetch published actions but this action has not been published, do + // not return + if (action.getPublishedAction() == null) { + return Mono.empty(); + } + } + // No need to handle the edge case of unpublished action not being present. This is not possible + // because every created action starts from an unpublishedAction state. + + return Mono.just(action); + } + public Flux addMissingPluginDetailsIntoAllActions(List actionList) { Mono> pluginMapMono = Mono.just(defaultPluginMap); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/newpages/base/NewPageServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/newpages/base/NewPageServiceCEImpl.java index 0d1740b912b..ee3aca5221d 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/newpages/base/NewPageServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/newpages/base/NewPageServiceCEImpl.java @@ -50,8 +50,11 @@ import static com.appsmith.external.constants.spans.ce.PageSpanCE.GET_PAGE; import static com.appsmith.external.constants.spans.ce.PageSpanCE.GET_PAGE_WITHOUT_BRANCH; import static com.appsmith.external.constants.spans.ce.PageSpanCE.GET_PAGE_WITH_BRANCH; +import static com.appsmith.external.constants.spans.ce.PageSpanCE.MARK_RECENTLY_ACCESSED_RESOURCES_PAGES; +import static com.appsmith.external.constants.spans.ce.PageSpanCE.PREPARE_APPLICATION_PAGES_DTO_FROM_PAGES; import static com.appsmith.external.helpers.AppsmithBeanUtils.copyNewFieldValuesIntoOldObject; import static com.appsmith.server.exceptions.AppsmithError.INVALID_PARAMETER; +import static com.appsmith.server.helpers.ObservationUtils.getQualifiedSpanName; @Slf4j public class NewPageServiceCEImpl extends BaseService implements NewPageServiceCE { @@ -299,8 +302,13 @@ public Mono createApplicationPagesDTO( .then(); } - return markedRecentlyAccessedMono.then( - Mono.fromCallable(() -> getApplicationPagesDTO(branchedApplication, newPages, viewMode))); + ApplicationMode applicationMode = viewMode ? ApplicationMode.PUBLISHED : ApplicationMode.EDIT; + return markedRecentlyAccessedMono + .name(getQualifiedSpanName(MARK_RECENTLY_ACCESSED_RESOURCES_PAGES, applicationMode)) + .tap(Micrometer.observation(observationRegistry)) + .then(Mono.fromCallable(() -> getApplicationPagesDTO(branchedApplication, newPages, viewMode)) + .name(getQualifiedSpanName(PREPARE_APPLICATION_PAGES_DTO_FROM_PAGES, applicationMode)) + .tap(Micrometer.observation(observationRegistry))); } private List getApplicationPages(Application application, boolean viewMode) { @@ -549,7 +557,7 @@ public Mono findByBranchNameAndBasePageIdAndApplicationMode( } return this.findByBranchNameAndBasePageId(branchName, basePageId, permission) - .name(GET_PAGE) + .name(getQualifiedSpanName(GET_PAGE, mode)) .tap(Micrometer.observation(observationRegistry)); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCE.java index 47957edb548..3bd9822f22a 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCE.java @@ -37,6 +37,9 @@ Flux findAllActionsByNameAndPageIdsAndViewMode( Flux findByApplicationId(String applicationId, AclPermission aclPermission, Sort sort); + Flux findPublishedActionsByApplicationIdAndPluginType( + String applicationId, List pluginTypes, AclPermission aclPermission, Sort sort); + Flux findByApplicationId( String applicationId, Optional aclPermission, Optional sort); diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java index 37de19d0f3d..b86ea47ffff 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java @@ -22,7 +22,6 @@ import org.springframework.data.mongodb.core.aggregation.MatchOperation; import org.springframework.data.mongodb.core.aggregation.ProjectionOperation; import org.springframework.data.mongodb.core.query.Criteria; -import reactor.core.observability.micrometer.Micrometer; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -31,7 +30,6 @@ import java.util.Optional; import java.util.Set; -import static com.appsmith.external.constants.spans.ce.ActionSpanCE.VIEW_MODE_FETCH_ACTIONS_FROM_DB_QUERY; import static org.springframework.data.mongodb.core.aggregation.Aggregation.group; import static org.springframework.data.mongodb.core.aggregation.Aggregation.match; import static org.springframework.data.mongodb.core.aggregation.Aggregation.newAggregation; @@ -52,9 +50,7 @@ public Flux findByApplicationId(String applicationId, AclPermission a return queryBuilder() .criteria(getCriterionForFindByApplicationId(applicationId)) .permission(aclPermission) - .all() - .name(VIEW_MODE_FETCH_ACTIONS_FROM_DB_QUERY) - .tap(Micrometer.observation(observationRegistry)); + .all(); } @Override @@ -206,6 +202,29 @@ protected BridgeQuery getCriterionForFindByApplicationId(String appli return Bridge.equal(NewAction.Fields.applicationId, applicationId); } + @Override + public Flux findPublishedActionsByApplicationIdAndPluginType( + String applicationId, List excludedPluginTypes, AclPermission aclPermission, Sort sort) { + return queryBuilder() + .criteria(getCriterionForFindPublishedActionsByApplicationIdAndPluginType( + applicationId, excludedPluginTypes)) + .permission(aclPermission) + .sort(sort) + .all(); + } + + protected BridgeQuery getCriterionForFindPublishedActionsByApplicationIdAndPluginType( + String applicationId, List excludedPluginTypes) { + final BridgeQuery q = getCriterionForFindByApplicationId(applicationId); + q.and(Bridge.or( + Bridge.notIn(NewAction.Fields.pluginType, excludedPluginTypes), + Bridge.isNull(NewAction.Fields.pluginType))); + + q.isNotNull(NewAction.Fields.publishedAction_pageId); + + return q; + } + @Override public Flux findByApplicationIdAndViewMode( String applicationId, Boolean viewMode, AclPermission aclPermission) { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ApplicationPageServiceImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ApplicationPageServiceImpl.java index 0a44c4e365d..808a45405e4 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ApplicationPageServiceImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ApplicationPageServiceImpl.java @@ -24,6 +24,7 @@ import com.appsmith.server.solutions.PagePermission; import com.appsmith.server.solutions.WorkspacePermission; import com.appsmith.server.themes.base.ThemeService; +import io.micrometer.observation.ObservationRegistry; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.reactive.TransactionalOperator; @@ -58,7 +59,8 @@ public ApplicationPageServiceImpl( DatasourcePermission datasourcePermission, DSLMigrationUtils dslMigrationUtils, ClonePageService actionClonePageService, - ClonePageService actionCollectionClonePageService) { + ClonePageService actionCollectionClonePageService, + ObservationRegistry observationRegistry) { super( workspaceService, applicationService, @@ -86,6 +88,7 @@ public ApplicationPageServiceImpl( datasourcePermission, dslMigrationUtils, actionClonePageService, - actionCollectionClonePageService); + actionCollectionClonePageService, + observationRegistry); } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/ApplicationPageServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/ApplicationPageServiceCEImpl.java index a00586c16e5..e4a6a9ca494 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/ApplicationPageServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/ApplicationPageServiceCEImpl.java @@ -58,6 +58,7 @@ import com.appsmith.server.solutions.WorkspacePermission; import com.appsmith.server.themes.base.ThemeService; import com.google.common.base.Strings; +import io.micrometer.observation.ObservationRegistry; import jakarta.annotation.Nullable; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -66,6 +67,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.reactive.TransactionalOperator; import org.springframework.util.StringUtils; +import reactor.core.observability.micrometer.Micrometer; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import reactor.util.function.Tuple2; @@ -82,8 +84,11 @@ import java.util.Set; import java.util.stream.Collectors; +import static com.appsmith.external.constants.spans.ce.PageSpanCE.FETCH_PAGES_BY_APP_ID_DB; +import static com.appsmith.external.constants.spans.ce.PageSpanCE.MIGRATE_DSL; import static com.appsmith.server.acl.AclPermission.MANAGE_APPLICATIONS; import static com.appsmith.server.constants.CommonConstants.EVALUATION_VERSION; +import static com.appsmith.server.helpers.ObservationUtils.getQualifiedSpanName; import static com.appsmith.server.helpers.ce.PolicyUtil.policyMapToSet; import static org.apache.commons.lang.ObjectUtils.defaultIfNull; @@ -122,6 +127,7 @@ public class ApplicationPageServiceCEImpl implements ApplicationPageServiceCE { private final DSLMigrationUtils dslMigrationUtils; private final ClonePageService actionClonePageService; private final ClonePageService actionCollectionClonePageService; + private final ObservationRegistry observationRegistry; @Override public Mono createPage(PageDTO page) { @@ -261,7 +267,9 @@ public Mono> getPagesBasedOnApplicationMode( return newPageService .findNewPagesByApplicationId(branchedApplication.getId(), pagePermission.getReadPermission()) .filter(newPage -> pageIds.contains(newPage.getId())) - .collectList(); + .collectList() + .name(getQualifiedSpanName(FETCH_PAGES_BY_APP_ID_DB, applicationMode)) + .tap(Micrometer.observation(observationRegistry)); } @Override @@ -284,10 +292,13 @@ public Mono getPageDTOAfterMigratingDSL(NewPage newPage, boolean viewMo @Override public Mono getPageAndMigrateDslByBranchAndBasePageId( String defaultPageId, String branchName, boolean viewMode, boolean migrateDsl) { + ApplicationMode applicationMode = viewMode ? ApplicationMode.PUBLISHED : ApplicationMode.EDIT; // Fetch the page with read permission in both editor and in viewer. return newPageService .findByBranchNameAndBasePageId(branchName, defaultPageId, pagePermission.getReadPermission()) - .flatMap(newPage -> getPageDTOAfterMigratingDSL(newPage, viewMode, migrateDsl)); + .flatMap(newPage -> getPageDTOAfterMigratingDSL(newPage, viewMode, migrateDsl) + .name(getQualifiedSpanName(MIGRATE_DSL, applicationMode)) + .tap(Micrometer.observation(observationRegistry))); } @Override diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/ConsolidatedAPIServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/ConsolidatedAPIServiceCEImpl.java index 92c80b79145..15fc9b8e251 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/ConsolidatedAPIServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/services/ce/ConsolidatedAPIServiceCEImpl.java @@ -53,12 +53,10 @@ import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.ACTIONS_SPAN; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.ACTION_COLLECTIONS_SPAN; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.APPLICATION_ID_SPAN; -import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.CONSOLIDATED_API_PREFIX; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.CURRENT_PAGE_SPAN; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.CURRENT_THEME_SPAN; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.CUSTOM_JS_LIB_SPAN; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.DATASOURCES_SPAN; -import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.EDIT; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.FEATURE_FLAG_SPAN; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.FORM_CONFIG_SPAN; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.MOCK_DATASOURCES_SPAN; @@ -69,11 +67,11 @@ import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.TENANT_SPAN; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.THEMES_SPAN; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.USER_PROFILE_SPAN; -import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.VIEW; import static com.appsmith.external.constants.spans.ConsolidatedApiSpanNames.WORKSPACE_SPAN; import static com.appsmith.server.constants.ce.FieldNameCE.APPLICATION_ID; import static com.appsmith.server.constants.ce.FieldNameCE.APP_MODE; import static com.appsmith.server.constants.ce.FieldNameCE.WORKSPACE_ID; +import static com.appsmith.server.helpers.ObservationUtils.getQualifiedSpanName; import static org.apache.commons.lang3.StringUtils.isBlank; @Slf4j @@ -124,10 +122,6 @@ private Mono> toResponseDTO(Mono mono) { return mono.map(this::getSuccessResponse).onErrorResume(this::getErrorResponseMono); } - public static String getQualifiedSpanName(String spanName, ApplicationMode mode) { - return CONSOLIDATED_API_PREFIX + (ApplicationMode.PUBLISHED.equals(mode) ? VIEW : EDIT) + spanName; - } - /** * This method is meant to be used by the client application at the time of 1st page load. Client currently makes * several API calls to fetch all the required data. This method consolidates all that data and returns them as