diff --git a/composer.json b/composer.json
index b5126d0e57f95ae73e1150baf66132dd7d50f7ac..4f4e66c40dce3949a05ec61694962377f020aa48 100644
--- a/composer.json
+++ b/composer.json
@@ -182,7 +182,7 @@
         "drupal/views_fieldsets": "3.3",
         "drupal/views_infinite_scroll": "1.7",
         "drupal/views_slideshow": "4.4",
-        "drupal/webform": "5.18",
+        "drupal/webform": "5.19",
         "drupal/webform_views": "5.0-alpha2",
         "drush-ops/behat-drush-endpoint": "0.0.5",
         "drush/drush": "9.7.1",
diff --git a/composer.lock b/composer.lock
index f236c210129e68b2d4a2a38a66033362972d9ff0..5542ece1b6cb0a96ea6a1cb71cfb53a96ae4aa84 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "b2b8534ed98ce807918cdc6dee798bb7",
+    "content-hash": "7d04d999ffb2799cb603e1ebbf72a5cb",
     "packages": [
         {
             "name": "alchemy/zippy",
@@ -8700,17 +8700,17 @@
         },
         {
             "name": "drupal/webform",
-            "version": "5.18.0",
+            "version": "5.19.0",
             "source": {
                 "type": "git",
                 "url": "https://git.drupalcode.org/project/webform.git",
-                "reference": "8.x-5.18"
+                "reference": "8.x-5.19"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://ftp.drupal.org/files/projects/webform-8.x-5.18.zip",
-                "reference": "8.x-5.18",
-                "shasum": "539d0ba5bacc402cf6ea2a3419ae164703a09aa0"
+                "url": "https://ftp.drupal.org/files/projects/webform-8.x-5.19.zip",
+                "reference": "8.x-5.19",
+                "shasum": "90a2084c2647bca791cc8b18a7e2a3b49f3da7ea"
             },
             "require": {
                 "drupal/core": "^8.8"
@@ -8749,8 +8749,8 @@
             "type": "drupal-module",
             "extra": {
                 "drupal": {
-                    "version": "8.x-5.18",
-                    "datestamp": "1593034084",
+                    "version": "8.x-5.19",
+                    "datestamp": "1593681136",
                     "security-coverage": {
                         "status": "covered",
                         "message": "Covered by Drupal's security advisory policy"
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index b7ea18a483aab5cc3a0d0752cbf33d861ffc4151..f5f7de47316d90c8d16b37116b28ea4257df1381 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -8973,18 +8973,18 @@
     },
     {
         "name": "drupal/webform",
-        "version": "5.18.0",
-        "version_normalized": "5.18.0.0",
+        "version": "5.19.0",
+        "version_normalized": "5.19.0.0",
         "source": {
             "type": "git",
             "url": "https://git.drupalcode.org/project/webform.git",
-            "reference": "8.x-5.18"
+            "reference": "8.x-5.19"
         },
         "dist": {
             "type": "zip",
-            "url": "https://ftp.drupal.org/files/projects/webform-8.x-5.18.zip",
-            "reference": "8.x-5.18",
-            "shasum": "539d0ba5bacc402cf6ea2a3419ae164703a09aa0"
+            "url": "https://ftp.drupal.org/files/projects/webform-8.x-5.19.zip",
+            "reference": "8.x-5.19",
+            "shasum": "90a2084c2647bca791cc8b18a7e2a3b49f3da7ea"
         },
         "require": {
             "drupal/core": "^8.8"
@@ -9023,8 +9023,8 @@
         "type": "drupal-module",
         "extra": {
             "drupal": {
-                "version": "8.x-5.18",
-                "datestamp": "1593034084",
+                "version": "8.x-5.19",
+                "datestamp": "1593681136",
                 "security-coverage": {
                     "status": "covered",
                     "message": "Covered by Drupal's security advisory policy"
diff --git a/web/modules/webform/css/webform.element.rating.css b/web/modules/webform/css/webform.element.rating.css
index 49720d0b95ce12604ce550bbf9a0a6a56deeef18..f338c6b21204f734a5be71e2d0c1d631f072bf72 100644
--- a/web/modules/webform/css/webform.element.rating.css
+++ b/web/modules/webform/css/webform.element.rating.css
@@ -3,20 +3,6 @@
  * Rating element styles.
  */
 
-/**
- * Visually hide the rating input.
- */
-html.js .form-webform-rating,
-html.js .form-webform-rating[style*="display: none"] {
-  display: inline !important;
-  position: absolute !important;
-  overflow: hidden;
-  clip: rect(1px, 1px, 1px, 1px);
-  width: 1px;
-  height: 1px;
-  word-wrap: normal;
-}
-
 div.svg div.rateit-range {
   background: url(../images/rating/star-normal.svg);
 }
diff --git a/web/modules/webform/css/webform.form.css b/web/modules/webform/css/webform.form.css
index 10a27400e5977f2dfac8e86d943e69d5aaf9a560..201bf548f588a045a7cac86392460a3373253d82 100644
--- a/web/modules/webform/css/webform.form.css
+++ b/web/modules/webform/css/webform.form.css
@@ -3,6 +3,20 @@
  * Webform form styles.
  */
 
+/**
+ * This allows components to be hidden when a JS plugin provides the UI.
+ */
+html.js .js-webform-visually-hidden,
+html.js .js-webform-visually-hidden[style*="display: none"] {
+  display: inline !important;
+  position: absolute !important;
+  overflow: hidden;
+  clip: rect(1px, 1px, 1px, 1px);
+  width: 1px;
+  height: 1px;
+  word-wrap: normal;
+}
+
 /**
  * Element states.
  * @see \Drupal\webform\WebformSubmissionConditionsValidator::buildForm
diff --git a/web/modules/webform/js/webform.element.rating.js b/web/modules/webform/js/webform.element.rating.js
index 52a16fcbbb68bcbc2aa026a22268812d15918e8c..820e6705e3373c2e5ca2160cdf0acc51ab7b1f37 100644
--- a/web/modules/webform/js/webform.element.rating.js
+++ b/web/modules/webform/js/webform.element.rating.js
@@ -17,16 +17,17 @@
    */
   Drupal.behaviors.webformRating = {
     attach: function (context) {
-      if (!$.fn.rateit) {
-        return;
-      }
-
       $(context)
         .find('[data-rateit-backingfld]')
         .once('webform-rating')
         .each(function () {
           var $rateit = $(this);
           var $input = $($rateit.attr('data-rateit-backingfld'));
+          if (!$.fn.rateit) {
+            $rateit.remove();
+            $input.removeClass('js-webform-visually-hidden');
+            return;
+          }
 
           // Rateit only initialize inputs on load.
           if (document.readyState === 'complete') {
diff --git a/web/modules/webform/js/webform.form.submit_once.js b/web/modules/webform/js/webform.form.submit_once.js
index cd0a2ccccdd325679a51f8cb5a6e3b53b7564355..6c2f440718da76f465db50b56f28cab63a757ee2 100644
--- a/web/modules/webform/js/webform.form.submit_once.js
+++ b/web/modules/webform/js/webform.form.submit_once.js
@@ -17,7 +17,7 @@
    */
   Drupal.behaviors.webformSubmitOnce = {
     attach: function (context) {
-      $('.js-webform-submit-once', context).each(function () {
+      $('.js-webform-submit-once', context).once('webform-submit-once').each(function () {
         var $form = $(this);
         // Remove data-webform-submitted.
         $form.removeData('webform-submitted');
diff --git a/web/modules/webform/modules/webform_access/webform_access.info.yml b/web/modules/webform/modules/webform_access/webform_access.info.yml
index 3ba8af72395dc8d3bf4731a4bf9e72931228f940..9bafe54c88f1f1da132bd05151ef8fd8a627cefc 100644
--- a/web/modules/webform/modules/webform_access/webform_access.info.yml
+++ b/web/modules/webform/modules/webform_access/webform_access.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_node'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/webform_attachment_test.info.yml b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/webform_attachment_test.info.yml
index f5efbf1c890d3bc9e74aec369d63b7e4e017199a..9fc10a2760b75034bbc24b1ba69cdb07e43d26de 100644
--- a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/webform_attachment_test.info.yml
+++ b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/webform_attachment_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_attachment'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_attachment/webform_attachment.info.yml b/web/modules/webform/modules/webform_attachment/webform_attachment.info.yml
index 5670dca5d2d351f21a82d658eaff94f3ffe77e15..41db4f6beb391df55eb1c6db2d93683c9a81bfe0 100644
--- a/web/modules/webform/modules/webform_attachment/webform_attachment.info.yml
+++ b/web/modules/webform/modules/webform_attachment/webform_attachment.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_bootstrap/tests/modules/webform_bootstrap_test_module/webform_bootstrap_test_module.info.yml b/web/modules/webform/modules/webform_bootstrap/tests/modules/webform_bootstrap_test_module/webform_bootstrap_test_module.info.yml
index 2168aee54e16269e6196eff743e2a7964d948c7f..8cf9b1528d760c0170cdd666b5c23c9daa1f2309 100644
--- a/web/modules/webform/modules/webform_bootstrap/tests/modules/webform_bootstrap_test_module/webform_bootstrap_test_module.info.yml
+++ b/web/modules/webform/modules/webform_bootstrap/tests/modules/webform_bootstrap_test_module/webform_bootstrap_test_module.info.yml
@@ -8,7 +8,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_bootstrap'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_bootstrap/tests/themes/webform_bootstrap_test_theme/webform_bootstrap_test_theme.info.yml b/web/modules/webform/modules/webform_bootstrap/tests/themes/webform_bootstrap_test_theme/webform_bootstrap_test_theme.info.yml
index 3e312777d23b3b9a5addb7919bf4b6123c5dac29..21ec6199b2b5e57ac99ec5b5c74c9ead904882fa 100644
--- a/web/modules/webform/modules/webform_bootstrap/tests/themes/webform_bootstrap_test_theme/webform_bootstrap_test_theme.info.yml
+++ b/web/modules/webform/modules/webform_bootstrap/tests/themes/webform_bootstrap_test_theme/webform_bootstrap_test_theme.info.yml
@@ -22,7 +22,7 @@ regions:
 libraries:
   - 'webform_bootstrap_test_theme/global-styling'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_bootstrap/webform_bootstrap.info.yml b/web/modules/webform/modules/webform_bootstrap/webform_bootstrap.info.yml
index eec1a7c4c114b264a992611de5db667fb6d0de7c..ba4951a7e02951be8d4baf50f8c1dd0d3ee0c067 100644
--- a/web/modules/webform/modules/webform_bootstrap/webform_bootstrap.info.yml
+++ b/web/modules/webform/modules/webform_bootstrap/webform_bootstrap.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/webform_cards_test.info.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/webform_cards_test.info.yml
index 4ed74b0701c0dbbca2ed9f4b4713a145c03f594d..fb9091ebc62e39ba09e263d210ce69dd30988562 100644
--- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/webform_cards_test.info.yml
+++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/webform_cards_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_cards'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_cards/webform_cards.info.yml b/web/modules/webform/modules/webform_cards/webform_cards.info.yml
index 1b9b3c80c3c9b7585f0a9064e7503df3af28a104..9c14051876d9dc7fcf33f442542bfc6a354eeaa0 100644
--- a/web/modules/webform/modules/webform_cards/webform_cards.info.yml
+++ b/web/modules/webform/modules/webform_cards/webform_cards.info.yml
@@ -9,7 +9,7 @@ dependencies:
   - 'webform:webform_clientside_validation'
   - 'drupal:inline_form_errors'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/webform_clientside_validation_test.info.yml b/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/webform_clientside_validation_test.info.yml
index 9646ddaf721a5ad509bdbba032d445cfed6c494d..baed14609d96e7b7fb2583457e39cf44952680d1 100644
--- a/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/webform_clientside_validation_test.info.yml
+++ b/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/webform_clientside_validation_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_clientside_validation'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_clientside_validation/webform_clientside_validation.info.yml b/web/modules/webform/modules/webform_clientside_validation/webform_clientside_validation.info.yml
index 09b6674fe4a7e4c5faa6e84ef12bcc7bff3a195e..982ae1b6379e20ff639c105fb69637f533fd50c2 100644
--- a/web/modules/webform/modules/webform_clientside_validation/webform_clientside_validation.info.yml
+++ b/web/modules/webform/modules/webform_clientside_validation/webform_clientside_validation.info.yml
@@ -8,7 +8,7 @@ dependencies:
   - 'clientside_validation:clientside_validation'
   - 'clientside_validation:clientside_validation_jquery'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.info.yml b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.info.yml
index 7f0e69cdfff65809c8c255d6b63f2d875c6980eb..04cf0903ee2b768afe3a18b596dc993a10b65068 100644
--- a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.info.yml
+++ b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.info.yml
@@ -9,7 +9,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_node'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.info.yml b/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.info.yml
index 9bfdd6c7328fcddb1d6d28ade2f7d8f418120fef..9d9f5662487617ec55eddc043eedaff60b9f3005 100644
--- a/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.info.yml
+++ b/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.info.yml
@@ -13,7 +13,7 @@ dependencies:
   - 'webform:webform_scheduled_email'
   - 'webform:webform_share'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_demo/webform_demo_group/webform_demo_group.info.yml b/web/modules/webform/modules/webform_demo/webform_demo_group/webform_demo_group.info.yml
index dba2ae599a3b8517d3da0d7ba2a12b09510e8614..a2bef7eb9b53b15c55e0c2a4cdc44dc6ff11ce87 100644
--- a/web/modules/webform/modules/webform_demo/webform_demo_group/webform_demo_group.info.yml
+++ b/web/modules/webform/modules/webform_demo/webform_demo_group/webform_demo_group.info.yml
@@ -11,7 +11,7 @@ dependencies:
   - 'webform:webform_node'
   - 'webform:webform_group'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.info.yml b/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.info.yml
index 5ce458166ed4d46739ff562608711cfe02080479..0d19bda83780e81dd0be106a5d3f479d8b2d8168 100644
--- a/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.info.yml
+++ b/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.info.yml
@@ -10,7 +10,7 @@ dependencies:
   - 'webform:webform_node'
   - 'webform:webform_access'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_devel/webform_devel.info.yml b/web/modules/webform/modules/webform_devel/webform_devel.info.yml
index 92c48f8c4584ca3b109d76d88596dea94ff8222f..e906910031d496900e317af801ef125e3ab32d54 100644
--- a/web/modules/webform/modules/webform_devel/webform_devel.info.yml
+++ b/web/modules/webform/modules/webform_devel/webform_devel.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'devel:devel'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_editorial/webform_editorial.info.yml b/web/modules/webform/modules/webform_editorial/webform_editorial.info.yml
index d2fcb654abaef9611cc1c3ffe15bceec6c1dd143..6233d63e71915c010959f278417a902dfed44df0 100644
--- a/web/modules/webform/modules/webform_editorial/webform_editorial.info.yml
+++ b/web/modules/webform/modules/webform_editorial/webform_editorial.info.yml
@@ -8,7 +8,7 @@ hidden: true
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_entity_print/src/Plugin/Derivative/WebformEntityPrintWebformExporterDeriver.php b/web/modules/webform/modules/webform_entity_print/src/Plugin/Derivative/WebformEntityPrintWebformExporterDeriver.php
index 48fe7b8f2113a313346743e7b34b92b72015afa4..a42128396d3328f72c3df3a1d34ca3387d7c5ec7 100644
--- a/web/modules/webform/modules/webform_entity_print/src/Plugin/Derivative/WebformEntityPrintWebformExporterDeriver.php
+++ b/web/modules/webform/modules/webform_entity_print/src/Plugin/Derivative/WebformEntityPrintWebformExporterDeriver.php
@@ -19,7 +19,7 @@ public function getDerivativeDefinitions($base_plugin_definition) {
       $this->derivatives[$id] = $base_plugin_definition;
       $this->derivatives[$id]['id'] = $id;
       $this->derivatives[$id]['label'] = $this->t('@label documents', $t_args);
-      $this->derivatives[$id]['description'] = $this->t('Exports results as @label documents');
+      $this->derivatives[$id]['description'] = $this->t('Exports results as @label documents', $t_args);
     }
     return $this->derivatives;
   }
diff --git a/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/webform_entity_print_test.info.yml b/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/webform_entity_print_test.info.yml
index 77aed7df4d2f7bfdf5628a8eb3c5cb840ed7c221..785507fd104d60c093b0b3df698c1e0ece7067d1 100644
--- a/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/webform_entity_print_test.info.yml
+++ b/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/webform_entity_print_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_entity_print'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_entity_print/webform_entity_print.info.yml b/web/modules/webform/modules/webform_entity_print/webform_entity_print.info.yml
index d9781f6f5fb1112ef1487fb3dd5134d8e8547b1b..e8a0a66e1c2d1f54e4b5deec5679bdeda8438245 100644
--- a/web/modules/webform/modules/webform_entity_print/webform_entity_print.info.yml
+++ b/web/modules/webform/modules/webform_entity_print/webform_entity_print.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'webform:webform'
   - 'entity_print:entity_print'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/webform_entity_print_attachment_test.info.yml b/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/webform_entity_print_attachment_test.info.yml
index 1e12511a4129a36887d783550448a0e43cd0fdf9..1c0a21f61b01b62477251b6c09e09f8882dcf7d6 100644
--- a/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/webform_entity_print_attachment_test.info.yml
+++ b/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/webform_entity_print_attachment_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_entity_print_attachment'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_entity_print_attachment/webform_entity_print_attachment.info.yml b/web/modules/webform/modules/webform_entity_print_attachment/webform_entity_print_attachment.info.yml
index ff5392e3051e4922596fbd3867051674bf91ce41..d7f5a99f830608de0624463181aba9f5c292e188 100644
--- a/web/modules/webform/modules/webform_entity_print_attachment/webform_entity_print_attachment.info.yml
+++ b/web/modules/webform/modules/webform_entity_print_attachment/webform_entity_print_attachment.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'webform:webform_attachment'
   - 'webform:webform_entity_print'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_example_composite/webform_example_composite.info.yml b/web/modules/webform/modules/webform_example_composite/webform_example_composite.info.yml
index ca2fe0518b58dc238de69a4b7935b0bfe44bb6f9..4f765fc8c77ca5d85745c7d8f5807797681e1009 100644
--- a/web/modules/webform/modules/webform_example_composite/webform_example_composite.info.yml
+++ b/web/modules/webform/modules/webform_example_composite/webform_example_composite.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_example_custom_form/webform_example_custom_form.info.yml b/web/modules/webform/modules/webform_example_custom_form/webform_example_custom_form.info.yml
index 7622b25699ae539fcec32ddddb4307ae25c7db6b..969668b4ea8dcf63a23904393cf6c0173b62b12b 100644
--- a/web/modules/webform/modules/webform_example_custom_form/webform_example_custom_form.info.yml
+++ b/web/modules/webform/modules/webform_example_custom_form/webform_example_custom_form.info.yml
@@ -8,7 +8,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_devel'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_example_element/webform_example_element.info.yml b/web/modules/webform/modules/webform_example_element/webform_example_element.info.yml
index a48c6cc31775dc03d257e360d4b2b05576442329..21d296d8dcbe84a78e2df61cd379a7dee2b56bc7 100644
--- a/web/modules/webform/modules/webform_example_element/webform_example_element.info.yml
+++ b/web/modules/webform/modules/webform_example_element/webform_example_element.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_example_element_properties/webform_example_element_properties.info.yml b/web/modules/webform/modules/webform_example_element_properties/webform_example_element_properties.info.yml
index c53e13a9f90427f5ca48e077f64fcdb30c60a737..c406002014ff17be4960ab53e3ddc48ab447eb0b 100644
--- a/web/modules/webform/modules/webform_example_element_properties/webform_example_element_properties.info.yml
+++ b/web/modules/webform/modules/webform_example_element_properties/webform_example_element_properties.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_ui'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_example_handler/webform_example_handler.info.yml b/web/modules/webform/modules/webform_example_handler/webform_example_handler.info.yml
index 32f04e71be96119538d30845154ac49862e87c80..740dbd9eb7ea39581016a75bf11e845429c2eb84 100644
--- a/web/modules/webform/modules/webform_example_handler/webform_example_handler.info.yml
+++ b/web/modules/webform/modules/webform_example_handler/webform_example_handler.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_example_remote_post/webform_example_remote_post.info.yml b/web/modules/webform/modules/webform_example_remote_post/webform_example_remote_post.info.yml
index abb68e9e7d780dc19e3e4f469540707d0f70f330..fef24e31d08283b130b13265a3a34b051c6886ec 100644
--- a/web/modules/webform/modules/webform_example_remote_post/webform_example_remote_post.info.yml
+++ b/web/modules/webform/modules/webform_example_remote_post/webform_example_remote_post.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'token:token'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_example_variant/webform_example_variant.info.yml b/web/modules/webform/modules/webform_example_variant/webform_example_variant.info.yml
index 27a12d9e0661cea5d41d97638df932d72bb23882..0786a91d189df65af8a533937d076e8271847a37 100644
--- a/web/modules/webform/modules/webform_example_variant/webform_example_variant.info.yml
+++ b/web/modules/webform/modules/webform_example_variant/webform_example_variant.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_examples/webform_examples.info.yml b/web/modules/webform/modules/webform_examples/webform_examples.info.yml
index f8ab38b146a3fda79d6c4bcc3932653cdf9db0de..6a7a041c0fe448577e3422257e37a861cd4b2308 100644
--- a/web/modules/webform/modules/webform_examples/webform_examples.info.yml
+++ b/web/modules/webform/modules/webform_examples/webform_examples.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_examples_accessibility/webform_examples_accessibility.info.yml b/web/modules/webform/modules/webform_examples_accessibility/webform_examples_accessibility.info.yml
index 273125a1cc9227269d7494f931240c2a91b59373..d396c7eb4706251eb0959452b85da4385425e861 100644
--- a/web/modules/webform/modules/webform_examples_accessibility/webform_examples_accessibility.info.yml
+++ b/web/modules/webform/modules/webform_examples_accessibility/webform_examples_accessibility.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'drupal:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/webform_group_test.info.yml b/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/webform_group_test.info.yml
index 79ef40a2efad728892eed78840c60870b6d545e8..69f9fa407bc257ea6889bba1ed1189c3cb78da05 100644
--- a/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/webform_group_test.info.yml
+++ b/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/webform_group_test.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'webform:webform_group'
   - 'group:group_test_config'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_group/webform_group.info.yml b/web/modules/webform/modules/webform_group/webform_group.info.yml
index 58b7c78395a1d3664e8983f2e9fba8cfcb289c31..9770e984e0c2eb2a699939ecde1bd75cb806d028 100644
--- a/web/modules/webform/modules/webform_group/webform_group.info.yml
+++ b/web/modules/webform/modules/webform_group/webform_group.info.yml
@@ -10,7 +10,7 @@ dependencies:
   - 'group:group'
   - 'group:gnode'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/webform_icheck_test.info.yml b/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/webform_icheck_test.info.yml
index 566a524e82bcfb8c3c8a78fde9ae78463887c5d5..3ceaf1dbcecfcf490e9b28b5ead516cc42465d1e 100644
--- a/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/webform_icheck_test.info.yml
+++ b/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/webform_icheck_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_icheck'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_icheck/webform_icheck.info.yml b/web/modules/webform/modules/webform_icheck/webform_icheck.info.yml
index 6c4bea67fc013e152d92c503691587a2c21f52ef..cb872068d3a527c35489b3c143007f3b6ab3bc46 100644
--- a/web/modules/webform/modules/webform_icheck/webform_icheck.info.yml
+++ b/web/modules/webform/modules/webform_icheck/webform_icheck.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_image_select/src/WebformImageSelectImagesDeleteForm.php b/web/modules/webform/modules/webform_image_select/src/WebformImageSelectImagesDeleteForm.php
index 58c52cf6c4a9c28742fdf6fcf6d8db3796b367a2..14b54e16878bd52471b4275ddd9cafed5959098c 100644
--- a/web/modules/webform/modules/webform_image_select/src/WebformImageSelectImagesDeleteForm.php
+++ b/web/modules/webform/modules/webform_image_select/src/WebformImageSelectImagesDeleteForm.php
@@ -39,7 +39,7 @@ public function getDetails() {
 
     $t_args = [
       '%label' => $this->getEntity()->label(),
-      '@entity-type' => $this->getEntity()->getEntityType()->getLowercaseLabel(),
+      '@entity-type' => $this->getEntity()->getEntityType()->getSingularLabel(),
     ];
 
     $details = [];
diff --git a/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/webform_image_select_test.info.yml b/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/webform_image_select_test.info.yml
index 6ac50dc105e61793d84c86fec5f84003381e7b5a..66cea1d101b085834152a0f2e8792e9735944a21 100644
--- a/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/webform_image_select_test.info.yml
+++ b/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/webform_image_select_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_image_select'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_image_select/webform_image_select.info.yml b/web/modules/webform/modules/webform_image_select/webform_image_select.info.yml
index ebe60bc11bbfa001bc3cdf695e93ad2a3a434f39..b536d9d211105c7dbf6a6fd279811894233333c2 100644
--- a/web/modules/webform/modules/webform_image_select/webform_image_select.info.yml
+++ b/web/modules/webform/modules/webform_image_select/webform_image_select.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/webform_jqueryui_buttons_test.info.yml b/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/webform_jqueryui_buttons_test.info.yml
index 20871efcea5e6405f12cc1c3b07af3f78fd06daf..2d2a1998df22e000c35d2222847fba39cf9c7394 100644
--- a/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/webform_jqueryui_buttons_test.info.yml
+++ b/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/webform_jqueryui_buttons_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_jqueryui_buttons'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_jqueryui_buttons/webform_jqueryui_buttons.info.yml b/web/modules/webform/modules/webform_jqueryui_buttons/webform_jqueryui_buttons.info.yml
index 15017bc9725b85bc840b8b647d46bc61896a8c8f..8e8006cb86178399af37a945cde43c7a84f3accd 100644
--- a/web/modules/webform/modules/webform_jqueryui_buttons/webform_jqueryui_buttons.info.yml
+++ b/web/modules/webform/modules/webform_jqueryui_buttons/webform_jqueryui_buttons.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/webform_location_geocomplete_test.info.yml b/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/webform_location_geocomplete_test.info.yml
index 80ae7bfa345dc41e27325565f4ca0e9bd358db50..105f3f81da165b08eb04ed3089f323be7b137dba 100644
--- a/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/webform_location_geocomplete_test.info.yml
+++ b/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/webform_location_geocomplete_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_location_geocomplete'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_location_geocomplete/webform_location_geocomplete.info.yml b/web/modules/webform/modules/webform_location_geocomplete/webform_location_geocomplete.info.yml
index 58e4330a7979bef6b11958e207ec511265cd7b69..6b98829bec877439bf5a57457978409374892555 100644
--- a/web/modules/webform/modules/webform_location_geocomplete/webform_location_geocomplete.info.yml
+++ b/web/modules/webform/modules/webform_location_geocomplete/webform_location_geocomplete.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.info.yml b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.info.yml
index f3e733f4014b1c63839ce8d23d0b44a81da9a762..48f1d65ae4da3e701afaddda7fc06c986347ecd9 100644
--- a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.info.yml
+++ b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.info.yml
@@ -13,7 +13,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_node'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/webform_node_test_translation.info.yml b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/webform_node_test_translation.info.yml
index a248b67830eee0b9db1f31ac2b1821f813acf005..9a50c8893fb6133cbfeb14b867812cda322d3bc4 100644
--- a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/webform_node_test_translation.info.yml
+++ b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/webform_node_test_translation.info.yml
@@ -9,7 +9,7 @@ dependencies:
   - 'webform:webform_test_translation'
   - 'drupal:content_translation'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_node/webform_node.info.yml b/web/modules/webform/modules/webform_node/webform_node.info.yml
index ea7e1856b1a644df3ae45de788d2e1fd2871b18f..cbd79e58e14fd47c974a80ac90babacf1de17489 100644
--- a/web/modules/webform/modules/webform_node/webform_node.info.yml
+++ b/web/modules/webform/modules/webform_node/webform_node.info.yml
@@ -11,7 +11,7 @@ dependencies:
   - 'drupal:user'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/webform_options_custom_entity_test.info.yml b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/webform_options_custom_entity_test.info.yml
index 4eff688f624bef94c8a91eb7ec62a60c6b76bc29..e15027cc3324018af5a9b91fcf7924dd483b1fa6 100644
--- a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/webform_options_custom_entity_test.info.yml
+++ b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/webform_options_custom_entity_test.info.yml
@@ -8,7 +8,7 @@ dependencies:
   - 'webform:webform_options_limit'
   - 'webform:webform_options_custom'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/webform_options_custom_test.info.yml b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/webform_options_custom_test.info.yml
index 6da05c4e2e66d9f91de4757d80cc6e1650d078d1..1135576ac86a73b45b8dbc62a31f174e716142f5 100644
--- a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/webform_options_custom_test.info.yml
+++ b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/webform_options_custom_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_options_custom'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_options_custom/webform_options_custom.info.yml b/web/modules/webform/modules/webform_options_custom/webform_options_custom.info.yml
index 5b47f0b4130e8254353f3dbda0d935f4086f279a..6d934332fde3dde3e777e7247f006e295a72b690 100644
--- a/web/modules/webform/modules/webform_options_custom/webform_options_custom.info.yml
+++ b/web/modules/webform/modules/webform_options_custom/webform_options_custom.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/webform_options_limit_test.info.yml b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/webform_options_limit_test.info.yml
index e61d85ece48b7cee7e70d118d48c0088f4f211fb..0cb0e82b50b3c080b9e94b246a4a451daedf4183 100644
--- a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/webform_options_limit_test.info.yml
+++ b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/webform_options_limit_test.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_options_limit'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_options_limit/webform_options_limit.info.yml b/web/modules/webform/modules/webform_options_limit/webform_options_limit.info.yml
index b93c7880807db07268a3ef8ea37d55ea0ae16367..fb8b7a011c473fb17a0b12922f5567834e0def54 100644
--- a/web/modules/webform/modules/webform_options_limit/webform_options_limit.info.yml
+++ b/web/modules/webform/modules/webform_options_limit/webform_options_limit.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/webform_scheduled_email_test.info.yml b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/webform_scheduled_email_test.info.yml
index 6391cbd3c7a0430c43fe5c6804892f1473c7c260..fd9e9ec37c8d2f7adca8aec2faed09e5179ba59d 100644
--- a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/webform_scheduled_email_test.info.yml
+++ b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/webform_scheduled_email_test.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_scheduled_email'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/webform_scheduled_email_test_translation.info.yml b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/webform_scheduled_email_test_translation.info.yml
index c31398584f4b5c91c22a9791f7030c5e2981a455..60cce0a1c76b58a15aa2caf9225ceb70cb9cddb8 100644
--- a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/webform_scheduled_email_test_translation.info.yml
+++ b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/webform_scheduled_email_test_translation.info.yml
@@ -10,7 +10,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_scheduled_email'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_scheduled_email/webform_scheduled_email.info.yml b/web/modules/webform/modules/webform_scheduled_email/webform_scheduled_email.info.yml
index 6319809853c0bff413a46aafd9ecc12eb32eea22..6484ae453bc169e9ef138d12535b50acea285dfa 100644
--- a/web/modules/webform/modules/webform_scheduled_email/webform_scheduled_email.info.yml
+++ b/web/modules/webform/modules/webform_scheduled_email/webform_scheduled_email.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_share/webform_share.info.yml b/web/modules/webform/modules/webform_share/webform_share.info.yml
index 20348a2ed3e119707f22ba7714ea63300d0e1682..f307f51ee191fffd2a80e97af203470aa5794fc3 100644
--- a/web/modules/webform/modules/webform_share/webform_share.info.yml
+++ b/web/modules/webform/modules/webform_share/webform_share.info.yml
@@ -7,7 +7,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_shortcuts/webform_shortcuts.info.yml b/web/modules/webform/modules/webform_shortcuts/webform_shortcuts.info.yml
index c476bb64d1f4342f45b7aed1326ad641365f7284..78905deb32e11521adedf80fed7e3aab00553d41 100644
--- a/web/modules/webform/modules/webform_shortcuts/webform_shortcuts.info.yml
+++ b/web/modules/webform/modules/webform_shortcuts/webform_shortcuts.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'webform:webform'
   - 'webform:webform_ui'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/webform_submission_export_import_test.info.yml b/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/webform_submission_export_import_test.info.yml
index 216f551af0c51741b428cb67a0304d4cee596a09..88ae2014ad05ae729a9b3a33f447cc4a4344d2e1 100644
--- a/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/webform_submission_export_import_test.info.yml
+++ b/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/webform_submission_export_import_test.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'webform:webform_submission_export_import'
   - 'webform:webform_image_select'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_submission_export_import/webform_submission_export_import.info.yml b/web/modules/webform/modules/webform_submission_export_import/webform_submission_export_import.info.yml
index e92841e688cf56d5d8c575e19a1c9f69f902c3be..f3c6c2ebb143437024cd99ca9e9517df7059e9af 100644
--- a/web/modules/webform/modules/webform_submission_export_import/webform_submission_export_import.info.yml
+++ b/web/modules/webform/modules/webform_submission_export_import/webform_submission_export_import.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_submission_log/webform_submission_log.info.yml b/web/modules/webform/modules/webform_submission_log/webform_submission_log.info.yml
index a100eca2ce83aa88c6345a004651c81a9538dc78..9382471d6c8fae8f1d8ad5836dbeef8fce74512a 100644
--- a/web/modules/webform/modules/webform_submission_log/webform_submission_log.info.yml
+++ b/web/modules/webform/modules/webform_submission_log/webform_submission_log.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_templates/webform_templates.info.yml b/web/modules/webform/modules/webform_templates/webform_templates.info.yml
index c49ca87ffb9443534bdb0b403bd9dbc2ff1a7560..5ee0597285b149f4483b5c93ff3e3b62a2184d10 100644
--- a/web/modules/webform/modules/webform_templates/webform_templates.info.yml
+++ b/web/modules/webform/modules/webform_templates/webform_templates.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/webform_toggles_test.info.yml b/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/webform_toggles_test.info.yml
index 1bf80787b1869cf7ff769e91701e34dd5537d6d3..00a9a0bdacfe32e4aa42c3f0b87700919f776c7c 100644
--- a/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/webform_toggles_test.info.yml
+++ b/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/webform_toggles_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform_toggles'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_toggles/webform_toggles.info.yml b/web/modules/webform/modules/webform_toggles/webform_toggles.info.yml
index 114a8a6189f82c24a84fbeec7c172d1140d87653..e036250a31ecd9b7d72a163eafe3d3b6de9dc76c 100644
--- a/web/modules/webform/modules/webform_toggles/webform_toggles.info.yml
+++ b/web/modules/webform/modules/webform_toggles/webform_toggles.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/modules/webform_ui/src/Form/WebformUiElementFormBase.php b/web/modules/webform/modules/webform_ui/src/Form/WebformUiElementFormBase.php
index e5f0773ba5bbd01e6d1bcc1f0ad86055f6d63c17..09be9680a0ab3bdc98b7d16228938fa6d53916cd 100644
--- a/web/modules/webform/modules/webform_ui/src/Form/WebformUiElementFormBase.php
+++ b/web/modules/webform/modules/webform_ui/src/Form/WebformUiElementFormBase.php
@@ -451,7 +451,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
     $this->messenger()->addStatus($this->t('%title has been @action.', $t_args));
 
     // Determine add element parent key.
-    $save_and_add_element = ($op === (string) $this->t('Save + Add element')) ? TRUE : FALSE;
+    $save_and_add_element = ((string) $op === (string) $this->t('Save + Add element')) ? TRUE : FALSE;
     $add_element = ($element_plugin->isContainer($this->getElement())) ? $key : $parent_key;
     $add_element = $add_element ? Html::getClass($add_element) : '_root_';
 
diff --git a/web/modules/webform/modules/webform_ui/webform_ui.info.yml b/web/modules/webform/modules/webform_ui/webform_ui.info.yml
index 30a6d1462cd357152d41ec4f8107bf750ab3586f..28f783ef89d4266c88c13c595681af771b21b2d5 100644
--- a/web/modules/webform/modules/webform_ui/webform_ui.info.yml
+++ b/web/modules/webform/modules/webform_ui/webform_ui.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/src/Element/WebformRating.php b/web/modules/webform/src/Element/WebformRating.php
index 2d87b83c027b68d13560fb528131c3864b77ea1b..5ff2dd33cdb696f62e7e0f3107bd8eed5c347fc7 100644
--- a/web/modules/webform/src/Element/WebformRating.php
+++ b/web/modules/webform/src/Element/WebformRating.php
@@ -57,6 +57,9 @@ public static function processWebformRating(&$element, FormStateInterface $form_
    */
   public static function preRenderWebformRating(array $element) {
     $element['#attributes']['type'] = 'range';
+
+    $element['#attributes']['class'][] = 'js-webform-visually-hidden';
+
     Element::setAttributes($element, ['id', 'name', 'value', 'step', 'min', 'max']);
     static::setAttributes($element, ['form-webform-rating']);
 
diff --git a/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerate.php b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerate.php
index 9174c0485ad1b87aaf977b2504fec5c8f3a6a7e6..9ddb6112a656e7f59359ee9d6b5a7767b5378d9b 100644
--- a/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerate.php
+++ b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerate.php
@@ -2,18 +2,8 @@
 
 namespace Drupal\webform\Plugin\DevelGenerate;
 
-use Drupal\Core\Database\Connection;
-use Drupal\Core\Entity\EntityTypeManagerInterface;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Messenger\MessengerInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
-use Drupal\Core\Serialization\Yaml;
 use Drupal\devel_generate\DevelGenerateBase;
-use Drupal\webform\Utility\WebformArrayHelper;
-use Drupal\webform\WebformEntityReferenceManagerInterface;
-use Drupal\webform\WebformSubmissionGenerateInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\HttpFoundation\RequestStack;
 
 /**
  * Provides a WebformSubmissionDevelGenerate plugin.
@@ -34,477 +24,13 @@
  */
 class WebformSubmissionDevelGenerate extends DevelGenerateBase implements ContainerFactoryPluginInterface {
 
-  /**
-   * Track in webform submission are being generated.
-   *
-   * @var bool
-   */
-  protected static $generatingSubmissions = FALSE;
-
-  /**
-   * The current request.
-   *
-   * @var null|\Symfony\Component\HttpFoundation\Request
-   */
-  protected $request;
-
-  /**
-   * The database object.
-   *
-   * @var object
-   */
-  protected $database;
-
-  /**
-   * The entity type manager.
-   *
-   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
-   */
-  protected $entityTypeManager;
-
-  /**
-   * The webform storage.
-   *
-   * @var \Drupal\Core\Entity\EntityStorageInterface
-   */
-  protected $webformStorage;
-
-  /**
-   * The webform submission storage.
-   *
-   * @var \Drupal\Core\Entity\EntityStorageInterface
-   */
-  protected $webformSubmissionStorage;
-
-  /**
-   * The webform submission generation service.
-   *
-   * @var \Drupal\webform\WebformSubmissionGenerateInterface
-   */
-  protected $webformSubmissionGenerate;
-
-  /**
-   * The webform entity reference manager.
-   *
-   * @var \Drupal\webform\WebformEntityReferenceManagerInterface
-   */
-  protected $webformEntityReferenceManager;
-
-  /**
-   * The messenger.
-   *
-   * @var \Drupal\Core\Messenger\MessengerInterface
-   */
-  protected $messenger;
-
-  /**
-   * Constructs a WebformSubmissionDevelGenerate object.
-   *
-   * @param array $configuration
-   *   A configuration array containing information about the plugin instance.
-   * @param string $plugin_id
-   *   The plugin_id for the plugin instance.
-   * @param mixed $plugin_definition
-   *   The plugin implementation definition.
-   * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
-   *   The request stack.
-   * @param \Drupal\Core\Database\Connection $database
-   *   The database.
-   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
-   *   The entity type manager.
-   * @param \Drupal\Core\Messenger\MessengerInterface $messenger
-   *   The messenger.
-   * @param \Drupal\webform\WebformSubmissionGenerateInterface $webform_submission_generate
-   *   The webform submission generator.
-   * @param \Drupal\webform\WebformEntityReferenceManagerInterface $webform_entity_reference_manager
-   *   The webform entity reference manager.
-   */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition, RequestStack $request_stack, Connection $database, EntityTypeManagerInterface $entity_type_manager, MessengerInterface $messenger, WebformSubmissionGenerateInterface $webform_submission_generate, WebformEntityReferenceManagerInterface $webform_entity_reference_manager) {
-    parent::__construct($configuration, $plugin_id, $plugin_definition);
-
-    $this->request = $request_stack->getCurrentRequest();
-    $this->database = $database;
-    $this->entityTypeManager = $entity_type_manager;
-    $this->messenger = $messenger;
-    $this->webformSubmissionGenerate = $webform_submission_generate;
-    $this->webformEntityReferenceManager = $webform_entity_reference_manager;
-    $this->webformStorage = $entity_type_manager->getStorage('webform');
-    $this->webformSubmissionStorage = $entity_type_manager->getStorage('webform_submission');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition,
-      $container->get('request_stack'),
-      $container->get('database'),
-      $container->get('entity_type.manager'),
-      $container->get('messenger'),
-      $container->get('webform_submission.generate'),
-      $container->get('webform.entity_reference_manager')
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function settingsForm(array $form, FormStateInterface $form_state) {
-    $form['message'] = [
-      '#type' => 'webform_message',
-      '#message_message' => $this->t('Please note that no emails will be sent while generating webform submissions.'),
-      '#message_type' => 'warning',
-    ];
-
-    $options = [];
-    foreach ($this->webformStorage->loadMultiple() as $webform) {
-      $options[$webform->id()] = $webform->label();
-    }
-
-    $webform_id = $this->request->get('webform_id');
-    $source_entity_type = $this->request->get('entity_type');
-    $source_entity_id = $this->request->get('entity_id');
-    $source_entity = ($source_entity_type && $source_entity_id) ? \Drupal::entityTypeManager()->getStorage($source_entity_type)->load($source_entity_id) : NULL;
-
-    if ($webform_id && isset($options[$webform_id])) {
-      $form['webform_ids'] = [
-        '#type' => 'value',
-        '#value' => [$webform_id => $webform_id],
-      ];
-      $form['webform'] = [
-        '#type' => 'item',
-        '#title' => $this->t('Webform'),
-        '#markup' => $options[$webform_id],
-      ];
-    }
-    else {
-      $form['webform_ids'] = [
-        '#type' => 'checkboxes',
-        '#title' => $this->t('Webform'),
-        '#description' => $this->t('Restrict submissions to these webforms.'),
-        '#required' => TRUE,
-        '#options' => $options,
-      ];
-    }
-
-    if ($source_entity) {
-      $form['submitted'] = [
-        '#type' => 'item',
-        '#title' => $this->t('Submitted to'),
-        '#markup' => $source_entity->toLink()->toString(),
-      ];
-      $form['entity-type'] = ['#type' => 'value', '#value' => $source_entity_type];
-      $form['entity-id'] = ['#type' => 'value', '#value' => $source_entity_id];
-    }
-    elseif ($webform_id && isset($options[$webform_id])) {
-      $form['entity-type'] = ['#type' => 'value', '#value' => ''];
-      $form['entity-id'] = ['#type' => 'value', '#value' => ''];
-    }
-    else {
-      $entity_types = \Drupal::service('entity_type.repository')->getEntityTypeLabels(TRUE);
-      $form['submitted'] = [
-        '#type' => 'item',
-        '#title' => $this->t('Submitted to'),
-      ];
-      $form['submitted']['container'] = [
-        '#prefix' => '<div class="container-inline">',
-        '#suffix' => '</div>',
-      ];
-      $form['submitted']['container']['entity-type'] = [
-        '#type' => 'select',
-        '#title' => $this->t('Entity type'),
-        '#title_display' => 'invisible',
-        '#empty_option' => $this->t('- None -'),
-        '#options' => $entity_types,
-        '#default_value' => $this->getSetting('entity-type'),
-      ];
-      $form['submitted']['container']['entity-id'] = [
-        '#type' => 'number',
-        '#title' => $this->t('Entity id'),
-        '#title_display' => 'invisible',
-        '#default_value' => $this->getSetting('entity-id'),
-        '#min' => 1,
-        '#size' => 10,
-        '#states' => [
-          'invisible' => [
-            ':input[name="entity-type"]' => ['value' => ''],
-          ],
-        ],
-      ];
-    }
-
-    $form['num'] = [
-      '#type' => 'number',
-      '#title' => $this->t('Number of submissions?'),
-      '#min' => 1,
-      '#required' => TRUE,
-      '#default_value' => $this->getSetting('num'),
-    ];
-
-    $form['kill'] = [
-      '#type' => 'checkbox',
-      '#title' => $this->t('Delete existing submissions in specified webform before generating new submissions'),
-      '#default_value' => $this->getSetting('kill'),
-    ];
-
-    $form['#validate'] = [[$this, 'validateForm']];
-    return $form;
-  }
-
-  /**
-   * Custom validation handler.
-   */
-  public function validateForm(array $form, FormStateInterface $form_state) {
-    $webform_ids = array_filter($form_state->getValue('webform_ids'));
-
-    // Let default webform validation handle requiring webform ids.
-    if (empty($webform_ids)) {
-      return;
-    }
-
-    $entity_type = $form_state->getValue('entity-type');
-    $entity_id = $form_state->getValue('entity-id');
-    if ($entity_type) {
-      if ($error = $this->validateEntity($webform_ids, $entity_type, $entity_id)) {
-        $form_state->setErrorByName('entity_type', $error);
-      }
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function generateElements(array $values) {
-    $this->generateSubmissions($values);
-  }
-
-  /**
-   * Generates submissions for a list of given webforms.
-   *
-   * @param array $values
-   *   The element values from the settings webform.
-   */
-  protected function generateSubmissions(array $values) {
-    static::$generatingSubmissions = TRUE;
-    if (!empty($values['kill'])) {
-      $this->deleteWebformSubmissions($values['webform_ids'], $values['entity-type'], $values['entity-id']);
-      $this->setMessage($this->t('Deleted existing submissions.'));
-    }
-    if (!empty($values['webform_ids'])) {
-      $this->initializeGenerate($values);
-      $start = time();
-      for ($i = 1; $i <= $values['num']; $i++) {
-        $this->generateSubmission($values);
-        if (function_exists('drush_log') && $i % drush_get_option('feedback', 1000) === 0) {
-          $now = time();
-          $dt_args = [
-            '@feedback' => drush_get_option('feedback', 1000),
-            '@rate' => (drush_get_option('feedback', 1000) * 60) / ($now - $start),
-          ];
-          drush_log(dt('Completed @feedback submissions (@rate submissions/min)', $dt_args), 'ok');
-          $start = $now;
-        }
-      }
-    }
-    $this->setMessage($this->formatPlural($values['num'], '1 submissions created.', 'Finished creating @count submissions'));
-    static::$generatingSubmissions = FALSE;
-  }
-
-  /**
-   * Deletes all submissions of given webforms.
-   *
-   * @param array $webform_ids
-   *   Array of webform ids.
-   * @param string|null $entity_type
-   *   A webform source entity type.
-   * @param int|null $entity_id
-   *   A webform source entity id.
-   */
-  protected function deleteWebformSubmissions(array $webform_ids, $entity_type = NULL, $entity_id = NULL) {
-    $webforms = $this->webformStorage->loadMultiple($webform_ids);
-    $entity = ($entity_type && $entity_id) ? $this->entityTypeManager->getStorage($entity_type)->load($entity_id) : NULL;
-    foreach ($webforms as $webform) {
-      $this->webformSubmissionStorage->deleteAll($webform, $entity);
-    }
-  }
-
-  /**
-   * Add 'users' that contains a list of uids.
-   *
-   * @param array $values
-   *   The element values from the settings webform.
-   */
-  protected function initializeGenerate(array &$values) {
-    // Set user id.$devel_generate_manager = \Drupal::service('plugin.manager.develgenerate')
-    $users = $this->getUsers();
-    $users = array_merge($users, ['0']);
-    $values['users'] = $users;
-
-    // Set created min and max.
-    $values['created_min'] = strtotime('-1 month');
-    $values['created_max'] = time();
-
-    // Set entity type and id default value.
-    $values += [
-      'num' => 50,
-      'entity-type' => '',
-      'entity-id' => '',
-    ];
-  }
-
-  /**
-   * Create one node. Used by both batch and non-batch code branches.
-   */
-  protected function generateSubmission(&$results) {
-    $webform_id = array_rand(array_filter($results['webform_ids']));
-    /** @var \Drupal\webform\WebformInterface $webform */
-    $webform = $this->webformStorage->load($webform_id);
-
-    $users = $results['users'];
-    $uid = $users[array_rand($users)];
-    $entity_type = $results['entity-type'];
-    $entity_id = $results['entity-id'];
-
-    // Get submission URL from source entity or webform.
-    $url = $webform->toUrl();
-    if ($entity_type && $entity_id) {
-      $source_entity = \Drupal::entityTypeManager()->getStorage($entity_type)->load($entity_id);
-      if ($source_entity->hasLinkTemplate('canonical')) {
-        $url = $source_entity->toUrl();
-      }
-    }
-
-    $timestamp = rand($results['created_min'], $results['created_max']);
-    $this->webformSubmissionStorage->create([
-      'webform_id' => $webform_id,
-      'entity_type' => $entity_type,
-      'entity_id' => $entity_id,
-      'uid' => $uid,
-      'remote_addr' => mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255),
-      'uri' => preg_replace('#^' . base_path() . '#', '/', $url->toString()),
-      'data' => Yaml::encode($this->webformSubmissionGenerate->getData($webform)),
-      'created' => $timestamp,
-      'changed' => $timestamp,
-    ])->save();
-  }
+  use WebformSubmissionDevelGenerateTrait;
 
   /**
    * {@inheritdoc}
    */
-  public function validateDrushParams($args) {
-    $webform_id = array_shift($args);
-    $webform_ids = [$webform_id => $webform_id];
-    $values = [
-      'webform_ids' => $webform_ids,
-      'num' => array_shift($args) ?: 50,
-      'kill' => drush_get_option('kill') ?: FALSE,
-    ];
-
-    if (empty($webform_id)) {
-      return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Webform id required'));
-    }
-
-    if (!$this->webformStorage->load($webform_id)) {
-      return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Invalid webform name: @name', ['@name' => $webform_id]));
-    }
-
-    if ($this->isNumber($values['num']) === FALSE) {
-      return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Invalid number of submissions: @num', ['@num' => $values['num']]));
-    }
-
-    $entity_type = drush_get_option('entity-type');
-    $entity_id = drush_get_option('entity-id');
-    if ($entity_type || $entity_id) {
-      if ($error = $this->validateEntity($webform_ids, $entity_type, $entity_id)) {
-        return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', $error);
-      }
-      else {
-        $values['entity-type'] = $entity_type;
-        $values['entity-id'] = $entity_id;
-      }
-    }
-
-    return $values;
-  }
-
-  /**
-   * Retrieve 50 uids from the database.
-   *
-   * @return array
-   *   An array of uids.
-   */
-  protected function getUsers() {
-    $users = [];
-    $result = $this->database->queryRange('SELECT uid FROM {users}', 0, 50);
-    foreach ($result as $record) {
-      $users[] = $record->uid;
-    }
-    return $users;
-  }
-
-  /**
-   * Track if webform submissions are being generated.
-   *
-   * Used to block emails from being sent while using devel generate.
-   *
-   * @return bool
-   *   TRUE if webform submissions are being generated.
-   */
-  public static function isGeneratingSubmissions() {
-    return static::$generatingSubmissions;
-  }
-
-  /**
-   * Validate webform source entity type and id.
-   *
-   * @param array $webform_ids
-   *   An array webform ids.
-   * @param string $entity_type
-   *   An entity type.
-   * @param int $entity_id
-   *   An entity id.
-   *
-   * @return string
-   *   An error message or NULL if there are no validation errors.
-   */
-  protected function validateEntity(array $webform_ids, $entity_type, $entity_id) {
-    $t = function_exists('dt') ? 'dt' : 't';
-
-    if (!$entity_type) {
-      return $t('Entity type is required');
-    }
-
-    if (!$entity_id) {
-      return $t('Entity id is required');
-    }
-
-    $dt_args = ['@entity_type' => $entity_type, '@entity_id' => $entity_id];
-
-    $source_entity = $this->entityTypeManager->getStorage($entity_type)->load($entity_id);
-    if (!$source_entity) {
-      return $t('Unable to load @entity_type:@entity_id', $dt_args);
-    }
-
-    $dt_args['@title'] = $source_entity->label();
-
-    $webform_field_name = $this->webformEntityReferenceManager->getFieldName($source_entity);
-    if (!$webform_field_name) {
-      return $t("'@title' (@entity_type:@entity_id) does not have a 'webform' field.", $dt_args);
-    }
-
-    if (count($webform_ids) > 1) {
-      return $t("'@title' (@entity_type:@entity_id) can only be associated with a single webform.", $dt_args);
-    }
-
-    $dt_args['@webform_ids'] = WebformArrayHelper::toString($webform_ids, $t('or'));
-    if (!in_array($source_entity->webform->target_id, $webform_ids)) {
-      return $t("'@title' (@entity_type:@entity_id) does not have a '@webform_ids' webform associated with it.", $dt_args);
-    }
-
-    return NULL;
+  public function validateDrushParams(array $args, array $options = []) {
+    return $this->_validateDrushParams($args);
   }
 
 }
diff --git a/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateDeprecated.php b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateDeprecated.php
new file mode 100644
index 0000000000000000000000000000000000000000..1fc0c4d58ac68aaf8d24502e1595d26333a6a96b
--- /dev/null
+++ b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateDeprecated.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Drupal\webform\Plugin\DevelGenerate;
+
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Drupal\devel_generate\DevelGenerateBase;
+
+/**
+ * Provides a WebformSubmissionDevelGenerate deprecated plugin.
+ *
+ * Use deprecated generator because the devel_generate.module changed the
+ * DevelGenerateBaseInterface.
+ *
+ * @see https://www.drupal.org/project/webform/issues/3155654
+ * @see https://gitlab.com/drupalspoons/devel/-/issues/324
+ */
+class WebformSubmissionDevelGenerateDeprecated extends DevelGenerateBase implements ContainerFactoryPluginInterface {
+
+  use WebformSubmissionDevelGenerateTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function validateDrushParams($args) {
+    return $this->_validateDrushParams($args);
+  }
+
+}
diff --git a/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php
new file mode 100644
index 0000000000000000000000000000000000000000..978bada6e93a2dc3accbfcc3ff91858baebc3dd9
--- /dev/null
+++ b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php
@@ -0,0 +1,496 @@
+<?php
+
+namespace Drupal\webform\Plugin\DevelGenerate;
+
+use Drupal\Core\Database\Connection;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Messenger\MessengerInterface;
+use Drupal\Core\Serialization\Yaml;
+use Drupal\webform\Utility\WebformArrayHelper;
+use Drupal\webform\WebformEntityReferenceManagerInterface;
+use Drupal\webform\WebformSubmissionGenerateInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\HttpFoundation\RequestStack;
+
+/**
+ * Provides a WebformSubmissionDevelGenerate trait.
+ *
+ * @see webform_devel_generate_info_alter()
+ */
+trait WebformSubmissionDevelGenerateTrait {
+
+  /**
+   * Track in webform submission are being generated.
+   *
+   * @var bool
+   */
+  protected static $generatingSubmissions = FALSE;
+
+  /**
+   * The current request.
+   *
+   * @var null|\Symfony\Component\HttpFoundation\Request
+   */
+  protected $request;
+
+  /**
+   * The database object.
+   *
+   * @var object
+   */
+  protected $database;
+
+  /**
+   * The entity type manager.
+   *
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
+   */
+  protected $entityTypeManager;
+
+  /**
+   * The webform storage.
+   *
+   * @var \Drupal\Core\Entity\EntityStorageInterface
+   */
+  protected $webformStorage;
+
+  /**
+   * The webform submission storage.
+   *
+   * @var \Drupal\Core\Entity\EntityStorageInterface
+   */
+  protected $webformSubmissionStorage;
+
+  /**
+   * The webform submission generation service.
+   *
+   * @var \Drupal\webform\WebformSubmissionGenerateInterface
+   */
+  protected $webformSubmissionGenerate;
+
+  /**
+   * The webform entity reference manager.
+   *
+   * @var \Drupal\webform\WebformEntityReferenceManagerInterface
+   */
+  protected $webformEntityReferenceManager;
+
+  /**
+   * The messenger.
+   *
+   * @var \Drupal\Core\Messenger\MessengerInterface
+   */
+  protected $messenger;
+
+  /**
+   * Constructs a WebformSubmissionDevelGenerate object.
+   *
+   * @param array $configuration
+   *   A configuration array containing information about the plugin instance.
+   * @param string $plugin_id
+   *   The plugin_id for the plugin instance.
+   * @param mixed $plugin_definition
+   *   The plugin implementation definition.
+   * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
+   *   The request stack.
+   * @param \Drupal\Core\Database\Connection $database
+   *   The database.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+   *   The entity type manager.
+   * @param \Drupal\Core\Messenger\MessengerInterface $messenger
+   *   The messenger.
+   * @param \Drupal\webform\WebformSubmissionGenerateInterface $webform_submission_generate
+   *   The webform submission generator.
+   * @param \Drupal\webform\WebformEntityReferenceManagerInterface $webform_entity_reference_manager
+   *   The webform entity reference manager.
+   */
+  public function __construct(array $configuration, $plugin_id, $plugin_definition, RequestStack $request_stack, Connection $database, EntityTypeManagerInterface $entity_type_manager, MessengerInterface $messenger, WebformSubmissionGenerateInterface $webform_submission_generate, WebformEntityReferenceManagerInterface $webform_entity_reference_manager) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition);
+
+    $this->request = $request_stack->getCurrentRequest();
+    $this->database = $database;
+    $this->entityTypeManager = $entity_type_manager;
+    $this->messenger = $messenger;
+    $this->webformSubmissionGenerate = $webform_submission_generate;
+    $this->webformEntityReferenceManager = $webform_entity_reference_manager;
+    $this->webformStorage = $entity_type_manager->getStorage('webform');
+    $this->webformSubmissionStorage = $entity_type_manager->getStorage('webform_submission');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
+    return new static(
+      $configuration,
+      $plugin_id,
+      $plugin_definition,
+      $container->get('request_stack'),
+      $container->get('database'),
+      $container->get('entity_type.manager'),
+      $container->get('messenger'),
+      $container->get('webform_submission.generate'),
+      $container->get('webform.entity_reference_manager')
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function settingsForm(array $form, FormStateInterface $form_state) {
+    $form['message'] = [
+      '#type' => 'webform_message',
+      '#message_message' => $this->t('Please note that no emails will be sent while generating webform submissions.'),
+      '#message_type' => 'warning',
+    ];
+
+    $options = [];
+    foreach ($this->webformStorage->loadMultiple() as $webform) {
+      $options[$webform->id()] = $webform->label();
+    }
+
+    $webform_id = $this->request->get('webform_id');
+    $source_entity_type = $this->request->get('entity_type');
+    $source_entity_id = $this->request->get('entity_id');
+    $source_entity = ($source_entity_type && $source_entity_id) ? \Drupal::entityTypeManager()->getStorage($source_entity_type)->load($source_entity_id) : NULL;
+
+    if ($webform_id && isset($options[$webform_id])) {
+      $form['webform_ids'] = [
+        '#type' => 'value',
+        '#value' => [$webform_id => $webform_id],
+      ];
+      $form['webform'] = [
+        '#type' => 'item',
+        '#title' => $this->t('Webform'),
+        '#markup' => $options[$webform_id],
+      ];
+    }
+    else {
+      $form['webform_ids'] = [
+        '#type' => 'checkboxes',
+        '#title' => $this->t('Webform'),
+        '#description' => $this->t('Restrict submissions to these webforms.'),
+        '#required' => TRUE,
+        '#options' => $options,
+      ];
+    }
+
+    if ($source_entity) {
+      $form['submitted'] = [
+        '#type' => 'item',
+        '#title' => $this->t('Submitted to'),
+        '#markup' => $source_entity->toLink()->toString(),
+      ];
+      $form['entity-type'] = ['#type' => 'value', '#value' => $source_entity_type];
+      $form['entity-id'] = ['#type' => 'value', '#value' => $source_entity_id];
+    }
+    elseif ($webform_id && isset($options[$webform_id])) {
+      $form['entity-type'] = ['#type' => 'value', '#value' => ''];
+      $form['entity-id'] = ['#type' => 'value', '#value' => ''];
+    }
+    else {
+      $entity_types = \Drupal::service('entity_type.repository')->getEntityTypeLabels(TRUE);
+      $form['submitted'] = [
+        '#type' => 'item',
+        '#title' => $this->t('Submitted to'),
+      ];
+      $form['submitted']['container'] = [
+        '#prefix' => '<div class="container-inline">',
+        '#suffix' => '</div>',
+      ];
+      $form['submitted']['container']['entity-type'] = [
+        '#type' => 'select',
+        '#title' => $this->t('Entity type'),
+        '#title_display' => 'invisible',
+        '#empty_option' => $this->t('- None -'),
+        '#options' => $entity_types,
+        '#default_value' => $this->getSetting('entity-type'),
+      ];
+      $form['submitted']['container']['entity-id'] = [
+        '#type' => 'number',
+        '#title' => $this->t('Entity id'),
+        '#title_display' => 'invisible',
+        '#default_value' => $this->getSetting('entity-id'),
+        '#min' => 1,
+        '#size' => 10,
+        '#states' => [
+          'invisible' => [
+            ':input[name="entity-type"]' => ['value' => ''],
+          ],
+        ],
+      ];
+    }
+
+    $form['num'] = [
+      '#type' => 'number',
+      '#title' => $this->t('Number of submissions?'),
+      '#min' => 1,
+      '#required' => TRUE,
+      '#default_value' => $this->getSetting('num'),
+    ];
+
+    $form['kill'] = [
+      '#type' => 'checkbox',
+      '#title' => $this->t('Delete existing submissions in specified webform before generating new submissions'),
+      '#default_value' => $this->getSetting('kill'),
+    ];
+
+    $form['#validate'] = [[$this, 'validateForm']];
+    return $form;
+  }
+
+  /**
+   * Custom validation handler.
+   */
+  public function validateForm(array $form, FormStateInterface $form_state) {
+    $webform_ids = array_filter($form_state->getValue('webform_ids'));
+
+    // Let default webform validation handle requiring webform ids.
+    if (empty($webform_ids)) {
+      return;
+    }
+
+    $entity_type = $form_state->getValue('entity-type');
+    $entity_id = $form_state->getValue('entity-id');
+    if ($entity_type) {
+      if ($error = $this->validateEntity($webform_ids, $entity_type, $entity_id)) {
+        $form_state->setErrorByName('entity_type', $error);
+      }
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function generateElements(array $values) {
+    $this->generateSubmissions($values);
+  }
+
+  /**
+   * Generates submissions for a list of given webforms.
+   *
+   * @param array $values
+   *   The element values from the settings webform.
+   */
+  protected function generateSubmissions(array $values) {
+    static::$generatingSubmissions = TRUE;
+    if (!empty($values['kill'])) {
+      $this->deleteWebformSubmissions($values['webform_ids'], $values['entity-type'], $values['entity-id']);
+      $this->setMessage($this->t('Deleted existing submissions.'));
+    }
+    if (!empty($values['webform_ids'])) {
+      $this->initializeGenerate($values);
+      $start = time();
+      for ($i = 1; $i <= $values['num']; $i++) {
+        $this->generateSubmission($values);
+        if (function_exists('drush_log') && $i % drush_get_option('feedback', 1000) === 0) {
+          $now = time();
+          $dt_args = [
+            '@feedback' => drush_get_option('feedback', 1000),
+            '@rate' => (drush_get_option('feedback', 1000) * 60) / ($now - $start),
+          ];
+          drush_log(dt('Completed @feedback submissions (@rate submissions/min)', $dt_args), 'ok');
+          $start = $now;
+        }
+      }
+    }
+    $this->setMessage($this->formatPlural($values['num'], '1 submissions created.', 'Finished creating @count submissions'));
+    static::$generatingSubmissions = FALSE;
+  }
+
+  /**
+   * Deletes all submissions of given webforms.
+   *
+   * @param array $webform_ids
+   *   Array of webform ids.
+   * @param string|null $entity_type
+   *   A webform source entity type.
+   * @param int|null $entity_id
+   *   A webform source entity id.
+   */
+  protected function deleteWebformSubmissions(array $webform_ids, $entity_type = NULL, $entity_id = NULL) {
+    $webforms = $this->webformStorage->loadMultiple($webform_ids);
+    $entity = ($entity_type && $entity_id) ? $this->entityTypeManager->getStorage($entity_type)->load($entity_id) : NULL;
+    foreach ($webforms as $webform) {
+      $this->webformSubmissionStorage->deleteAll($webform, $entity);
+    }
+  }
+
+  /**
+   * Add 'users' that contains a list of uids.
+   *
+   * @param array $values
+   *   The element values from the settings webform.
+   */
+  protected function initializeGenerate(array &$values) {
+    // Set user id.$devel_generate_manager = \Drupal::service('plugin.manager.develgenerate')
+    $users = $this->getUsers();
+    $users = array_merge($users, ['0']);
+    $values['users'] = $users;
+
+    // Set created min and max.
+    $values['created_min'] = strtotime('-1 month');
+    $values['created_max'] = time();
+
+    // Set entity type and id default value.
+    $values += [
+      'num' => 50,
+      'entity-type' => '',
+      'entity-id' => '',
+    ];
+  }
+
+  /**
+   * Create one node. Used by both batch and non-batch code branches.
+   */
+  protected function generateSubmission(&$results) {
+    $webform_id = array_rand(array_filter($results['webform_ids']));
+    /** @var \Drupal\webform\WebformInterface $webform */
+    $webform = $this->webformStorage->load($webform_id);
+
+    $users = $results['users'];
+    $uid = $users[array_rand($users)];
+    $entity_type = $results['entity-type'];
+    $entity_id = $results['entity-id'];
+
+    // Get submission URL from source entity or webform.
+    $url = $webform->toUrl();
+    if ($entity_type && $entity_id) {
+      $source_entity = \Drupal::entityTypeManager()->getStorage($entity_type)->load($entity_id);
+      if ($source_entity->hasLinkTemplate('canonical')) {
+        $url = $source_entity->toUrl();
+      }
+    }
+
+    $timestamp = rand($results['created_min'], $results['created_max']);
+    $this->webformSubmissionStorage->create([
+      'webform_id' => $webform_id,
+      'entity_type' => $entity_type,
+      'entity_id' => $entity_id,
+      'uid' => $uid,
+      'remote_addr' => mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255) . '.' . mt_rand(0, 255),
+      'uri' => preg_replace('#^' . base_path() . '#', '/', $url->toString()),
+      'data' => Yaml::encode($this->webformSubmissionGenerate->getData($webform)),
+      'created' => $timestamp,
+      'changed' => $timestamp,
+    ])->save();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function _validateDrushParams($args) {
+    $webform_id = array_shift($args);
+    $webform_ids = [$webform_id => $webform_id];
+    $values = [
+      'webform_ids' => $webform_ids,
+      'num' => array_shift($args) ?: 50,
+      'kill' => drush_get_option('kill') ?: FALSE,
+    ];
+
+    if (empty($webform_id)) {
+      return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Webform id required'));
+    }
+
+    if (!$this->webformStorage->load($webform_id)) {
+      return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Invalid webform name: @name', ['@name' => $webform_id]));
+    }
+
+    if ($this->isNumber($values['num']) === FALSE) {
+      return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Invalid number of submissions: @num', ['@num' => $values['num']]));
+    }
+
+    $entity_type = drush_get_option('entity-type');
+    $entity_id = drush_get_option('entity-id');
+    if ($entity_type || $entity_id) {
+      if ($error = $this->validateEntity($webform_ids, $entity_type, $entity_id)) {
+        return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', $error);
+      }
+      else {
+        $values['entity-type'] = $entity_type;
+        $values['entity-id'] = $entity_id;
+      }
+    }
+
+    return $values;
+  }
+
+  /**
+   * Retrieve 50 uids from the database.
+   *
+   * @return array
+   *   An array of uids.
+   */
+  protected function getUsers() {
+    $users = [];
+    $result = $this->database->queryRange('SELECT uid FROM {users}', 0, 50);
+    foreach ($result as $record) {
+      $users[] = $record->uid;
+    }
+    return $users;
+  }
+
+  /**
+   * Track if webform submissions are being generated.
+   *
+   * Used to block emails from being sent while using devel generate.
+   *
+   * @return bool
+   *   TRUE if webform submissions are being generated.
+   */
+  public static function isGeneratingSubmissions() {
+    return static::$generatingSubmissions;
+  }
+
+  /**
+   * Validate webform source entity type and id.
+   *
+   * @param array $webform_ids
+   *   An array webform ids.
+   * @param string $entity_type
+   *   An entity type.
+   * @param int $entity_id
+   *   An entity id.
+   *
+   * @return string
+   *   An error message or NULL if there are no validation errors.
+   */
+  protected function validateEntity(array $webform_ids, $entity_type, $entity_id) {
+    $t = function_exists('dt') ? 'dt' : 't';
+
+    if (!$entity_type) {
+      return $t('Entity type is required');
+    }
+
+    if (!$entity_id) {
+      return $t('Entity id is required');
+    }
+
+    $dt_args = ['@entity_type' => $entity_type, '@entity_id' => $entity_id];
+
+    $source_entity = $this->entityTypeManager->getStorage($entity_type)->load($entity_id);
+    if (!$source_entity) {
+      return $t('Unable to load @entity_type:@entity_id', $dt_args);
+    }
+
+    $dt_args['@title'] = $source_entity->label();
+
+    $webform_field_name = $this->webformEntityReferenceManager->getFieldName($source_entity);
+    if (!$webform_field_name) {
+      return $t("'@title' (@entity_type:@entity_id) does not have a 'webform' field.", $dt_args);
+    }
+
+    if (count($webform_ids) > 1) {
+      return $t("'@title' (@entity_type:@entity_id) can only be associated with a single webform.", $dt_args);
+    }
+
+    $dt_args['@webform_ids'] = WebformArrayHelper::toString($webform_ids, $t('or'));
+    if (!in_array($source_entity->webform->target_id, $webform_ids)) {
+      return $t("'@title' (@entity_type:@entity_id) does not have a '@webform_ids' webform associated with it.", $dt_args);
+    }
+
+    return NULL;
+  }
+
+}
diff --git a/web/modules/webform/src/Plugin/WebformVariant/BrokenWebformVariant.php b/web/modules/webform/src/Plugin/WebformVariant/BrokenWebformVariant.php
index 43d74832c5cf9abf5676b9762109ffdf210850c0..508e8fa77dd389f228a7f73e2a1b0311005a6d40 100644
--- a/web/modules/webform/src/Plugin/WebformVariant/BrokenWebformVariant.php
+++ b/web/modules/webform/src/Plugin/WebformVariant/BrokenWebformVariant.php
@@ -5,13 +5,13 @@
 use Drupal\webform\Plugin\WebformVariantBase;
 
 /**
- * Defines a fallback plugin for missing webform handler plugins.
+ * Defines a fallback plugin for missing webform variant plugins.
  *
  * @WebformVariant(
  *   id = "broken",
  *   label = @Translation("Broken/Missing"),
  *   category = @Translation("Broken"),
- *   description = @Translation("Broken/missing webform handler plugin.")
+ *   description = @Translation("Broken/missing webform variant plugin.")
  * )
  */
 class BrokenWebformVariant extends WebformVariantBase {
diff --git a/web/modules/webform/src/WebformAddonsManager.php b/web/modules/webform/src/WebformAddonsManager.php
index 6a1d8a67f77037fb41f099b3b673b48cb5376187..f94c6bd81aed0e5c52e1db6c40477cb4d2b23811 100644
--- a/web/modules/webform/src/WebformAddonsManager.php
+++ b/web/modules/webform/src/WebformAddonsManager.php
@@ -370,6 +370,14 @@ protected function initProjects() {
       'category' => 'enhancement',
     ];
 
+    // Enhancement: Webform IP Geo.
+    $projects['webform_ip_geo'] = [
+      'title' => $this->t('Webform IP Geo'),
+      'description' => $this->t('Provides a simple way to extract geo data from the IP of a webform submission.'),
+      'url' => Url::fromUri('https://www.drupal.org/project/webform_ip_geo'),
+      'category' => 'enhancement',
+    ];
+
     // Enhancement: Webform Navigation.
     $projects['webformnavigation'] = [
       'title' => $this->t('Webform Navigation'),
@@ -701,6 +709,14 @@ protected function initProjects() {
       'category' => 'integration',
     ];
 
+    // Integrations: Webform Hubspot Integration
+    $projects['hubspot_api_integration'] = [
+      'title' => $this->t('Webform Hubspot Integration'),
+      'description' => $this->t('Provides a Webform handler that integrates with Hubspot.'),
+      'url' => Url::fromUri('https://www.drupal.org/project/hubspot_api_integration'),
+      'category' => 'integration',
+    ];
+
     // Integration: Webform Jira Integration.
     $projects['webform_jira'] = [
       'title' => $this->t('Webform Jira Integration'),
@@ -709,6 +725,14 @@ protected function initProjects() {
       'category' => 'integration',
     ];
 
+    // Integrations: Lightweight Webform Mailchimp.
+    $projects['lwm'] = [
+      'title' => $this->t('Lightweight Webform Mailchimp'),
+      'description' => $this->t('Manage and processing a Mailchimp lightweight connection from a Drupal webform.'),
+      'url' => Url::fromUri('https://www.drupal.org/project/lwm'),
+      'category' => 'integration',
+    ];
+
     // Integrations: Webform MailChimp.
     $projects['webform_mailchimp'] = [
       'title' => $this->t('Webform MailChimp'),
@@ -765,6 +789,14 @@ protected function initProjects() {
       'category' => 'integration',
     ];
 
+    // Integrations: Webform SendGrid.
+    $projects['webform_sendgrid'] = [
+      'title' => $this->t('Webform SendGrid'),
+      'description' => $this->t('Provide a webform handler for sending submission data to SendGrids Contact/Marketing/Lists API.'),
+      'url' => Url::fromUri('https://www.drupal.org/project/webform_sendgrid'),
+      'category' => 'integration',
+    ];
+
     // Integrations: Webform Simplenews Handler.
     $projects['webform_simplenews_handler'] = [
       'title' => $this->t('Webform Simplenews Handler'),
diff --git a/web/modules/webform/src/WebformHelpManager.php b/web/modules/webform/src/WebformHelpManager.php
index 6c9e3157c8c7a01ea2151dc9f1dddc161e59abc9..5802ffe9e6c7cea1618e0ad7b869d330afc2c519 100644
--- a/web/modules/webform/src/WebformHelpManager.php
+++ b/web/modules/webform/src/WebformHelpManager.php
@@ -1364,6 +1364,12 @@ protected function initVideos() {
         'youtube_id' => 'WQG6163r9Rs',
         'presentation_id' => '1Mn7qlSR_njTZcGAM3PNQZR8Tvg7qtPhZFQja7Mj5uzI',
       ],
+      'everyone' => [
+        'title' => $this->t('Webforms for Everyone'),
+        'content' => $this->t('This presentation explores how site owners, site builders, and developers can leverage the Webform module for Drupal 8 to build complex and robust forms for their end-users.'),
+        'youtube_id' => 'zvilAbrczGM',
+        'presentation_id' => '1APpt-55Ht_WLZc656KfQUXUoIAb-PTOmbMwSYSAw6G4',
+      ],
     ];
 
     // WebWash (www.webwash.net/).
diff --git a/web/modules/webform/src/WebformOptionsListBuilder.php b/web/modules/webform/src/WebformOptionsListBuilder.php
index 769effb90cc05f88ccc0890dcc028a23603e0f03..d24ca4cdef6a63f831984be8236c23212048bc90 100644
--- a/web/modules/webform/src/WebformOptionsListBuilder.php
+++ b/web/modules/webform/src/WebformOptionsListBuilder.php
@@ -139,7 +139,7 @@ public function buildHeader() {
       'class' => [RESPONSIVE_PRIORITY_LOW],
     ];
     $header['used_by'] = [
-      'data' => $this->t('Used by Webforms / Composites'),
+      'data' => $this->t('Used by'),
       'class' => [RESPONSIVE_PRIORITY_LOW],
     ];
     return $header + parent::buildHeader();
diff --git a/web/modules/webform/tests/modules/webform_test/webform_test.info.yml b/web/modules/webform/tests/modules/webform_test/webform_test.info.yml
index 6e188a75bc481294d80e964b092eeb8d27b92c52..192c85b7ba1f663c7c879af7924f0f5875ab7222 100644
--- a/web/modules/webform/tests/modules/webform_test/webform_test.info.yml
+++ b/web/modules/webform/tests/modules/webform_test/webform_test.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_ajax/webform_test_ajax.info.yml b/web/modules/webform/tests/modules/webform_test_ajax/webform_test_ajax.info.yml
index cda4272d92ae81add20e845e69f065f453f592d8..6ca3ee5ae9b6306085b26e3f83acc07f616de63b 100644
--- a/web/modules/webform/tests/modules/webform_test_ajax/webform_test_ajax.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_ajax/webform_test_ajax.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'drupal:block'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_alter_hooks/webform_test_alter_hooks.info.yml b/web/modules/webform/tests/modules/webform_test_alter_hooks/webform_test_alter_hooks.info.yml
index 68e15b3c163171ad707f6bbb133bc93c997239ae..344d5ab9e332d9c4fa3cbac39de227f8064c9d62 100644
--- a/web/modules/webform/tests/modules/webform_test_alter_hooks/webform_test_alter_hooks.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_alter_hooks/webform_test_alter_hooks.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_block_context/webform_test_block_context.info.yml b/web/modules/webform/tests/modules/webform_test_block_context/webform_test_block_context.info.yml
index 42df2e152fa018d8efdd5c6120167d27aae1dfca..0c01852553f1191156e4d4b279dce47ba4e476f1 100644
--- a/web/modules/webform/tests/modules/webform_test_block_context/webform_test_block_context.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_block_context/webform_test_block_context.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'drupal:block'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_block_custom/webform_test_block_custom.info.yml b/web/modules/webform/tests/modules/webform_test_block_custom/webform_test_block_custom.info.yml
index 9d499785bd0fda91344c8697a9720d2b695924f9..1b6e95c2bf0a07469b8db1a0959d70cebf4071fc 100644
--- a/web/modules/webform/tests/modules/webform_test_block_custom/webform_test_block_custom.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_block_custom/webform_test_block_custom.info.yml
@@ -8,7 +8,7 @@ dependencies:
   - 'drupal:block_content'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_block_submission_limit/webform_test_block_submission_limit.info.yml b/web/modules/webform/tests/modules/webform_test_block_submission_limit/webform_test_block_submission_limit.info.yml
index 06517d7fb9e20e04d0eb680c48ffa628a301314b..4dfe0da374d9111329ebabf11acddaf532a901d9 100644
--- a/web/modules/webform/tests/modules/webform_test_block_submission_limit/webform_test_block_submission_limit.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_block_submission_limit/webform_test_block_submission_limit.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'drupal:block'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_config_performance/webform_test_config_performance.info.yml b/web/modules/webform/tests/modules/webform_test_config_performance/webform_test_config_performance.info.yml
index 0bb77e50ec024beabfe1859f7f621d58c72724a0..b340fea19c6f1132f6544db0b486ad22bc070885 100644
--- a/web/modules/webform/tests/modules/webform_test_config_performance/webform_test_config_performance.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_config_performance/webform_test_config_performance.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_element/webform_test_element.info.yml b/web/modules/webform/tests/modules/webform_test_element/webform_test_element.info.yml
index d579311da5396dd124a3686066ec8587f16f276a..edb2a67f283d0d703b4265eaa2b2a54baca095e0 100644
--- a/web/modules/webform/tests/modules/webform_test_element/webform_test_element.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_element/webform_test_element.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_element_input_masks/webform_test_element_input_masks.info.yml b/web/modules/webform/tests/modules/webform_test_element_input_masks/webform_test_element_input_masks.info.yml
index efc88f5185ecf2dc9fe818aa75732f22b82d3c20..1b66f8e1faa0604dea1b70f7b06498d366374705 100644
--- a/web/modules/webform/tests/modules/webform_test_element_input_masks/webform_test_element_input_masks.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_element_input_masks/webform_test_element_input_masks.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_entity_reference/webform_test_entity_reference_views.info.yml b/web/modules/webform/tests/modules/webform_test_entity_reference/webform_test_entity_reference_views.info.yml
index 805fd597b14f5df127f2d1e9e8773d8fa95c0bf0..7fde6162810d6d4169aaba7d6c4be0e8efc718b8 100644
--- a/web/modules/webform/tests/modules/webform_test_entity_reference/webform_test_entity_reference_views.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_entity_reference/webform_test_entity_reference_views.info.yml
@@ -9,7 +9,7 @@ dependencies:
   - 'drupal:views'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_exporter/webform_test_exporter.info.yml b/web/modules/webform/tests/modules/webform_test_exporter/webform_test_exporter.info.yml
index b8c1c10af9b50b845e3df6e64e311670704676b6..11871bb08659f4a2635cc41c4fb1d2bc912bac54 100644
--- a/web/modules/webform/tests/modules/webform_test_exporter/webform_test_exporter.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_exporter/webform_test_exporter.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_handler/webform_test_handler.info.yml b/web/modules/webform/tests/modules/webform_test_handler/webform_test_handler.info.yml
index 46f8bd120cdd42404b80343ad5bf6089fdbe0049..989457e2f8706d6a54e7134b52e3e94c358b674e 100644
--- a/web/modules/webform/tests/modules/webform_test_handler/webform_test_handler.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_handler/webform_test_handler.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_handler_invoke_alter/webform_test_handler_invoke_alter.info.yml b/web/modules/webform/tests/modules/webform_test_handler_invoke_alter/webform_test_handler_invoke_alter.info.yml
index e60902c262bc08b24c32a2072b9d8f4956f96636..19bde0d1a5cf16cd08edd8386ccdd62ba3c8dc71 100644
--- a/web/modules/webform/tests/modules/webform_test_handler_invoke_alter/webform_test_handler_invoke_alter.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_handler_invoke_alter/webform_test_handler_invoke_alter.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_handler_remote_post/webform_test_handler_remote_post.info.yml b/web/modules/webform/tests/modules/webform_test_handler_remote_post/webform_test_handler_remote_post.info.yml
index e25e8ee74633a10de5e6a6f10f3d45c4aab98835..ccb1e766cc1dee2c72c2ac75ca9d78b3277b1ea9 100644
--- a/web/modules/webform/tests/modules/webform_test_handler_remote_post/webform_test_handler_remote_post.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_handler_remote_post/webform_test_handler_remote_post.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_markup/webform_test_markup.info.yml b/web/modules/webform/tests/modules/webform_test_markup/webform_test_markup.info.yml
index f817da315d4c6f4ea5600106cb66abcfc0be168e..7fd811b73322dccb986a825417255056bcc44feb 100644
--- a/web/modules/webform/tests/modules/webform_test_markup/webform_test_markup.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_markup/webform_test_markup.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_message_custom/webform_test_message_custom.info.yml b/web/modules/webform/tests/modules/webform_test_message_custom/webform_test_message_custom.info.yml
index 9a74fddabfeed889d80291ac9711a205c1deabe6..d5735d51543bf7abe912bb9e33fe602a30ea3bef 100644
--- a/web/modules/webform/tests/modules/webform_test_message_custom/webform_test_message_custom.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_message_custom/webform_test_message_custom.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_options/webform_test_options.info.yml b/web/modules/webform/tests/modules/webform_test_options/webform_test_options.info.yml
index 468721f67c6980c0d70836589358fa9ee917c728..624a03a55305f667fec5d87d9bfd72e8affd9a42 100644
--- a/web/modules/webform/tests/modules/webform_test_options/webform_test_options.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_options/webform_test_options.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_paragraphs/webform_test_paragraphs.info.yml b/web/modules/webform/tests/modules/webform_test_paragraphs/webform_test_paragraphs.info.yml
index 775273166bf3dbc6c4c59f9432ed31713495d73b..04c3013ed079aae73d41c5cc81a3a51f3d7bb925 100644
--- a/web/modules/webform/tests/modules/webform_test_paragraphs/webform_test_paragraphs.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_paragraphs/webform_test_paragraphs.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'paragraphs:paragraphs'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_rest/webform_test_rest.info.yml b/web/modules/webform/tests/modules/webform_test_rest/webform_test_rest.info.yml
index 7bed75d798fa5684fb8141ecea9e444c7c4a54b6..354f73abdcf9370a4211e76e474b3b40ee1568c6 100644
--- a/web/modules/webform/tests/modules/webform_test_rest/webform_test_rest.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_rest/webform_test_rest.info.yml
@@ -9,7 +9,7 @@ dependencies:
   - 'drupal:serialization'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_submissions/webform_test_submissions.info.yml b/web/modules/webform/tests/modules/webform_test_submissions/webform_test_submissions.info.yml
index 196ff4f0bd451ff05505a4e4ac60a9058cbba472..2aa6a70b916d47ed912d24cb38087815d171c1a8 100644
--- a/web/modules/webform/tests/modules/webform_test_submissions/webform_test_submissions.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_submissions/webform_test_submissions.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - 'drupal:node'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.info.yml b/web/modules/webform/tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.info.yml
index b8c6e91ac207a5305f8f5b3ec62283de193a798d..ea814cf0b74d2e4416783790d8967c489016ae36 100644
--- a/web/modules/webform/tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_translation/webform_test_translation.info.yml b/web/modules/webform/tests/modules/webform_test_translation/webform_test_translation.info.yml
index 5b3f63935faf55fba8fed0a67418ddde18372a95..44f5e96d749bb52e280d7cdcea44c3517397c66a 100644
--- a/web/modules/webform/tests/modules/webform_test_translation/webform_test_translation.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_translation/webform_test_translation.info.yml
@@ -9,7 +9,7 @@ dependencies:
   - 'drupal:locale'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_translation_lingotek/webform_test_translation_lingotek.info.yml b/web/modules/webform/tests/modules/webform_test_translation_lingotek/webform_test_translation_lingotek.info.yml
index 3f0613b65528ef4239698f6eb40db849a6e63230..16c8a62a843b0a82571ca8058fe539cc7d795606 100644
--- a/web/modules/webform/tests/modules/webform_test_translation_lingotek/webform_test_translation_lingotek.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_translation_lingotek/webform_test_translation_lingotek.info.yml
@@ -10,7 +10,7 @@ dependencies:
   - 'lingotek:lingotek'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_validate/webform_test_validate.info.yml b/web/modules/webform/tests/modules/webform_test_validate/webform_test_validate.info.yml
index 514dbc79d78b7ccce17a7424f12a3c7e87886f2a..f3a8a87407942a2d6ea67c2e49c7399853a53b59 100644
--- a/web/modules/webform/tests/modules/webform_test_validate/webform_test_validate.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_validate/webform_test_validate.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_variant/webform_test_variant.info.yml b/web/modules/webform/tests/modules/webform_test_variant/webform_test_variant.info.yml
index 719a4ec99b13704b11bd79aa7dd043520bedd322..4c339563ff2ffa93f7b8593f63090131d52d598d 100644
--- a/web/modules/webform/tests/modules/webform_test_variant/webform_test_variant.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_variant/webform_test_variant.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_views/webform_test_views.info.yml b/web/modules/webform/tests/modules/webform_test_views/webform_test_views.info.yml
index a64713aea5522b2adb6417cf0e06745247ee995d..ed0990b8b6af250b7811c60264e004ca56d9bda1 100644
--- a/web/modules/webform/tests/modules/webform_test_views/webform_test_views.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_views/webform_test_views.info.yml
@@ -9,7 +9,7 @@ dependencies:
   - 'drupal:views'
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/modules/webform_test_wizard_custom/webform_test_wizard_custom.info.yml b/web/modules/webform/tests/modules/webform_test_wizard_custom/webform_test_wizard_custom.info.yml
index de9678e5ff5dac50f8db33979da796f14e384995..c932c6b2759ab7debe6546d65035849dd22f9254 100644
--- a/web/modules/webform/tests/modules/webform_test_wizard_custom/webform_test_wizard_custom.info.yml
+++ b/web/modules/webform/tests/modules/webform_test_wizard_custom/webform_test_wizard_custom.info.yml
@@ -6,7 +6,7 @@ core_version_requirement: ^8.8
 dependencies:
   - 'webform:webform'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementRatingTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementRatingTest.php
index d005dc6775a31fa621abe32b90179b17022380a0..b2528674fd260dd2ac35001cc79c0b4e230b8448 100644
--- a/web/modules/webform/tests/src/Functional/Element/WebformElementRatingTest.php
+++ b/web/modules/webform/tests/src/Functional/Element/WebformElementRatingTest.php
@@ -24,17 +24,17 @@ public function testRating() {
 
     // Check basic rating display.
     $this->assertRaw('<label for="edit-rating-basic">rating_basic</label>');
-    $this->assertRaw('<input data-drupal-selector="edit-rating-basic" type="range" id="edit-rating-basic" name="rating_basic" value="0" step="1" min="0" max="5" class="form-webform-rating" />');
+    $this->assertRaw('<input data-drupal-selector="edit-rating-basic" type="range" class="js-webform-visually-hidden form-webform-rating" id="edit-rating-basic" name="rating_basic" value="0" step="1" min="0" max="5" />');
     $this->assertRaw('<div class="rateit svg rateit-medium" data-rateit-min="0" data-rateit-max="5" data-rateit-step="1" data-rateit-resetable="false" data-rateit-readonly="false" data-rateit-backingfld="[data-drupal-selector=&quot;edit-rating-basic&quot;]" data-rateit-value="" data-rateit-starheight="24" data-rateit-starwidth="24">');
 
     // Check advanced rating display.
     $this->assertRaw('<label for="edit-rating-advanced">rating_advanced</label>');
-    $this->assertRaw('<input data-drupal-selector="edit-rating-advanced" type="range" id="edit-rating-advanced" name="rating_advanced" value="0" step="0.1" min="0" max="10" class="form-webform-rating" />');
+    $this->assertRaw('<input data-drupal-selector="edit-rating-advanced" type="range" class="js-webform-visually-hidden form-webform-rating" id="edit-rating-advanced" name="rating_advanced" value="0" step="0.1" min="0" max="10" />');
     $this->assertRaw('<div class="rateit svg rateit-large" data-rateit-min="0" data-rateit-max="10" data-rateit-step="0.1" data-rateit-resetable="true" data-rateit-readonly="false" data-rateit-backingfld="[data-drupal-selector=&quot;edit-rating-advanced&quot;]" data-rateit-value="" data-rateit-starheight="32" data-rateit-starwidth="32">');
 
     // Check required rating display.
     $this->assertRaw('<label for="edit-rating-required" class="js-form-required form-required">rating_required</label>');
-    $this->assertRaw('<input data-drupal-selector="edit-rating-required" type="range" id="edit-rating-required" name="rating_required" value="0" step="1" min="0" max="5" class="form-webform-rating required" required="required" aria-required="true" />');
+    $this->assertRaw('<input data-drupal-selector="edit-rating-required" type="range" class="js-webform-visually-hidden form-webform-rating required" id="edit-rating-required" name="rating_required" value="0" step="1" min="0" max="5" required="required" aria-required="true" />');
     $this->assertRaw('<div class="rateit svg rateit-medium" data-rateit-min="0" data-rateit-max="5" data-rateit-step="1" data-rateit-resetable="false" data-rateit-readonly="false" data-rateit-backingfld="[data-drupal-selector=&quot;edit-rating-required&quot;]" data-rateit-value="" data-rateit-starheight="24" data-rateit-starwidth="24"></div>');
 
     // Check processing.
diff --git a/web/modules/webform/tests/themes/webform_test_bartik/webform_test_bartik.info.yml b/web/modules/webform/tests/themes/webform_test_bartik/webform_test_bartik.info.yml
index e71d2497a7b80423779d6c604c25e66e58698334..69a6a048575690da8df62cd7b30058a633a1ac65 100644
--- a/web/modules/webform/tests/themes/webform_test_bartik/webform_test_bartik.info.yml
+++ b/web/modules/webform/tests/themes/webform_test_bartik/webform_test_bartik.info.yml
@@ -5,7 +5,7 @@ name: 'Webform Bartik test'
 description: 'Support theme for webform Bartik integration testing.'
 package: 'Webform Testing'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/webform.info.yml b/web/modules/webform/webform.info.yml
index b8b2b2e8ade88d8a835f0ad7807ecde9a6d8a878..5b5fe1012d137d6aef80e83dac9e987b8b5829b2 100644
--- a/web/modules/webform/webform.info.yml
+++ b/web/modules/webform/webform.info.yml
@@ -8,7 +8,7 @@ dependencies:
   - 'drupal:field'
   - 'drupal:user'
 
-# Information added by Drupal.org packaging script on 2020-06-24
-version: '8.x-5.18'
+# Information added by Drupal.org packaging script on 2020-07-02
+version: '8.x-5.19'
 project: 'webform'
-datestamp: 1593034091
+datestamp: 1593681142
diff --git a/web/modules/webform/webform.module b/web/modules/webform/webform.module
index 3f17cedf038aee54820573c6c25e8d62328d8a4b..d6d9163b692659f9e7ef49942797e9ba3642e228 100644
--- a/web/modules/webform/webform.module
+++ b/web/modules/webform/webform.module
@@ -386,11 +386,18 @@ function _webform_clear_webform_submission_list_cache_tag(EntityInterface $entit
  * Implements hook_mail().
  */
 function webform_mail($key, &$message, $params) {
-  // Never send emails when using devel generate to create 1000's of
-  // submissions.
-  if (\Drupal::moduleHandler()->moduleExists('devel_generate')
-    && \Drupal\webform\Plugin\DevelGenerate\WebformSubmissionDevelGenerate::isGeneratingSubmissions()) {
-    $message['send'] = FALSE;
+  // Never send emails when using devel generate to create
+  // 1000's of submissions.
+  if (\Drupal::moduleHandler()->moduleExists('devel_generate')) {
+    /** @var \Drupal\devel_generate\DevelGeneratePluginManager $devel_generate */
+    $devel_generate = \Drupal::service('plugin.manager.develgenerate');
+    $definition = $devel_generate->getDefinition('webform_submission', FALSE);
+    if ($definition) {
+      $class = $definition['class'];
+      if ($class::isGeneratingSubmissions()) {
+        $message['send'] = FALSE;
+      }
+    }
   }
 
   // Set default parameters.
@@ -747,6 +754,30 @@ function webform_process_states(array &$elements, $key = '#attributes') {
   WebformFormHelper::processStates($elements, $key);
 }
 
+/******************************************************************************/
+// Devel generate info hooks.
+/******************************************************************************/
+
+/**
+ * Implements hook_devel_generate_info_alter()
+ */
+function webform_devel_generate_info_alter(array &$generators) {
+  if (!isset($generators['webform_submission'])) {
+    return;
+  }
+
+  // Use deprecated generator because the devel_generate.module changed the
+  // DevelGenerateBaseInterface.
+  //
+  // @see \Drupal\webform\Plugin\DevelGenerate\WebformSubmissionDevelGenerateDeprecated
+  // @see https://www.drupal.org/project/webform/issues/3155654
+  // @see https://gitlab.com/drupalspoons/devel/-/issues/324
+  $info = \Drupal::service('extension.list.module')->getExtensionInfo('devel_generate');
+  if (!empty($info['version']) && strpos($info['version'], '8.x-') === 0) {
+    $generators['webform_submission']['class'] = 'Drupal\webform\Plugin\DevelGenerate\WebformSubmissionDevelGenerateDeprecated';
+  }
+}
+
 /******************************************************************************/
 // Element info hooks.
 /******************************************************************************/