From 70730e9a9c3779c619cb1807f85a8902bab8f677 Mon Sep 17 00:00:00 2001
From: Pravin Gaikwad <33942-Rajeshreeputra@users.noreply.drupalcode.org>
Date: Wed, 17 Jul 2024 08:13:09 +0000
Subject: [PATCH] Issue #3450953 by Rajeshreeputra, ankitv18: Automated Drupal
 11 compatibility fixes for component

---
 .gitlab-ci.yml                                | 49 +------------------
 component.info.yml                            |  2 +-
 composer.json                                 |  4 +-
 .../component_example.info.yml                |  2 +-
 .../example_blank/example_blank.component.yml |  3 ++
 .../example_blank/example_blank.twig          |  6 +++
 .../example_config.component.yml              |  3 ++
 .../example_config/example_config.twig        |  6 +++
 .../example_react_calc.component.yml          |  3 ++
 .../example_react_calc.twig                   |  6 +++
 .../example_react_lib.component.yml           |  3 ++
 .../example_react_lib/example_react_lib.twig  |  6 +++
 .../example_tabs/example_tabs.component.yml   |  3 ++
 .../components/example_tabs/example_tabs.twig |  6 +++
 src/ComponentDiscovery.php                    |  2 +-
 src/ComponentServiceProvider.php              |  2 +-
 .../Derivative/ComponentBlockDeriver.php      |  1 +
 17 files changed, 53 insertions(+), 54 deletions(-)
 create mode 100644 modules/component_example/components/example_blank/example_blank.twig
 create mode 100644 modules/component_example/components/example_config/example_config.twig
 create mode 100644 modules/component_example/components/example_react_calc/example_react_calc.twig
 create mode 100644 modules/component_example/components/example_react_lib/example_react_lib.twig
 create mode 100644 modules/component_example/components/example_tabs/example_tabs.twig

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 28c3bc3..2ebbf8c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -50,50 +50,5 @@ variables:
   OPT_IN_TEST_PREVIOUS_MAJOR: 1
   OPT_IN_TEST_PREVIOUS_MINOR: 1
   OPT_IN_TEST_NEXT_MINOR: 1
-
-
-###################################################################################
-#
-#                                        *
-#                                       /(
-#                                      ((((,
-#                                    /(((((((
-#                                   ((((((((((*
-#                                ,(((((((((((((((
-#                              ,(((((((((((((((((((
-#                            ((((((((((((((((((((((((*
-#                         *(((((((((((((((((((((((((((((
-#                       ((((((((((((((((((((((((((((((((((*
-#                    *((((((((((((((((((  .((((((((((((((((((
-#                  ((((((((((((((((((.       /(((((((((((((((((*
-#                /(((((((((((((((((            .(((((((((((((((((,
-#             ,((((((((((((((((((                 ((((((((((((((((((
-#           .((((((((((((((((((((                   .(((((((((((((((((
-#          (((((((((((((((((((((((                     ((((((((((((((((/
-#        (((((((((((((((((((((((((((/                    ,(((((((((((((((*
-#      .((((((((((((((/  /(((((((((((((.                   ,(((((((((((((((
-#     *((((((((((((((      ,(((((((((((((/                   *((((((((((((((.
-#    ((((((((((((((,          /(((((((((((((.                  ((((((((((((((,
-#   (((((((((((((/              ,(((((((((((((*                 ,(((((((((((((,
-#  *(((((((((((((                .(((((((((((((((                ,(((((((((((((
-#  ((((((((((((/                /((((((((((((((((((.              ,((((((((((((/
-# (((((((((((((              *(((((((((((((((((((((((*             *((((((((((((
-# (((((((((((((            ,(((((((((((((..(((((((((((((           *((((((((((((
-# ((((((((((((,          /((((((((((((*      /((((((((((((/         ((((((((((((
-# (((((((((((((        /((((((((((((/          (((((((((((((*       ((((((((((((
-# (((((((((((((/     /((((((((((((               ,((((((((((((,    *((((((((((((
-#  ((((((((((((((  *(((((((((((/                   *((((((((((((.  ((((((((((((/
-#  *((((((((((((((((((((((((((,                      /(((((((((((((((((((((((((
-#   (((((((((((((((((((((((((                         ((((((((((((((((((((((((,
-#   .(((((((((((((((((((((((/                         ,(((((((((((((((((((((((
-#     ((((((((((((((((((((((/                         ,(((((((((((((((((((((/
-#      *(((((((((((((((((((((                         (((((((((((((((((((((,
-#       ,(((((((((((((((((((((,                      ((((((((((((((((((((/
-#         ,(((((((((((((((((((((*                  /((((((((((((((((((((
-#            ((((((((((((((((((((((,           ,/((((((((((((((((((((,
-#              ,(((((((((((((((((((((((((((((((((((((((((((((((((((
-#                 .(((((((((((((((((((((((((((((((((((((((((((((
-#                     .((((((((((((((((((((((((((((((((((((,.
-#                          .,(((((((((((((((((((((((((.
-#
-###################################################################################
\ No newline at end of file
+  OPT_IN_TEST_NEXT_MAJOR: 1
+  RUN_JOB_UPGRADE_STATUS: 1
diff --git a/component.info.yml b/component.info.yml
index dbe71bf..223a1eb 100644
--- a/component.info.yml
+++ b/component.info.yml
@@ -2,4 +2,4 @@ name: Component
 type: module
 description: 'Easily add JS components to Drupal as blocks, with only a single yml file.'
 package: Component
-core_version_requirement: ^8 || ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
diff --git a/composer.json b/composer.json
index d814b46..4a2e990 100644
--- a/composer.json
+++ b/composer.json
@@ -15,7 +15,5 @@
     "source": "https://git.drupalcode.org/project/component"
   },
   "license": "GPL-2.0-or-later",
-  "minimum-stability": "dev",
-  "require": {
-  }
+  "minimum-stability": "dev"
 }
diff --git a/modules/component_example/component_example.info.yml b/modules/component_example/component_example.info.yml
index a593bbf..227ee99 100644
--- a/modules/component_example/component_example.info.yml
+++ b/modules/component_example/component_example.info.yml
@@ -2,6 +2,6 @@ name: Component example
 type: module
 description: 'An example module with some sample components for reference.'
 package: Component
-core_version_requirement: ^8 || ^9 || ^10
+core_version_requirement: ^9 || ^10 || ^11
 dependencies:
   - component:component
diff --git a/modules/component_example/components/example_blank/example_blank.component.yml b/modules/component_example/components/example_blank/example_blank.component.yml
index c76091c..f52d390 100644
--- a/modules/component_example/components/example_blank/example_blank.component.yml
+++ b/modules/component_example/components/example_blank/example_blank.component.yml
@@ -1,2 +1,5 @@
 name: Example blank
 description: 'This is a blank component for testing.'
+props:
+  type: object
+  properties: {}
diff --git a/modules/component_example/components/example_blank/example_blank.twig b/modules/component_example/components/example_blank/example_blank.twig
new file mode 100644
index 0000000..8ab052a
--- /dev/null
+++ b/modules/component_example/components/example_blank/example_blank.twig
@@ -0,0 +1,6 @@
+{#
+/**
+ * @file
+ * Required Twig template for components as of Drupal 10.3.
+ */
+#}
diff --git a/modules/component_example/components/example_config/example_config.component.yml b/modules/component_example/components/example_config/example_config.component.yml
index 1caf413..edc7fb6 100644
--- a/modules/component_example/components/example_config/example_config.component.yml
+++ b/modules/component_example/components/example_config/example_config.component.yml
@@ -40,3 +40,6 @@ form_configuration:
     type: date
     title: 'Birthday'
     default_value: '2227-01-20'
+props:
+  type: object
+  properties: {}
diff --git a/modules/component_example/components/example_config/example_config.twig b/modules/component_example/components/example_config/example_config.twig
new file mode 100644
index 0000000..8ab052a
--- /dev/null
+++ b/modules/component_example/components/example_config/example_config.twig
@@ -0,0 +1,6 @@
+{#
+/**
+ * @file
+ * Required Twig template for components as of Drupal 10.3.
+ */
+#}
diff --git a/modules/component_example/components/example_react_calc/example_react_calc.component.yml b/modules/component_example/components/example_react_calc/example_react_calc.component.yml
index 1387ee0..0b15407 100644
--- a/modules/component_example/components/example_react_calc/example_react_calc.component.yml
+++ b/modules/component_example/components/example_react_calc/example_react_calc.component.yml
@@ -11,4 +11,7 @@ dependencies:
  - component/example_react_lib
 cache:
   max-age: 0
+props:
+  type: object
+  properties: {}
 # Inspired by: https://codepen.io/jlmortola/pen/VPYaEv
diff --git a/modules/component_example/components/example_react_calc/example_react_calc.twig b/modules/component_example/components/example_react_calc/example_react_calc.twig
new file mode 100644
index 0000000..8ab052a
--- /dev/null
+++ b/modules/component_example/components/example_react_calc/example_react_calc.twig
@@ -0,0 +1,6 @@
+{#
+/**
+ * @file
+ * Required Twig template for components as of Drupal 10.3.
+ */
+#}
diff --git a/modules/component_example/components/example_react_lib/example_react_lib.component.yml b/modules/component_example/components/example_react_lib/example_react_lib.component.yml
index daab796..4cf3dae 100644
--- a/modules/component_example/components/example_react_lib/example_react_lib.component.yml
+++ b/modules/component_example/components/example_react_lib/example_react_lib.component.yml
@@ -14,3 +14,6 @@ js:
   //unpkg.com/react-dom@16.7.0/umd/react-dom.production.min.js: { type: external, minified: true, crossorigin: anonymous }
   //unpkg.com/create-react-class@15.6.0/create-react-class.min.js : { type: external, minified: true, crossorigin: anonymous }
   //unpkg.com/babel-standalone@6/babel.min.js: { type: external, minified: true, crossorigin: anonymous }
+props:
+  type: object
+  properties: {}
diff --git a/modules/component_example/components/example_react_lib/example_react_lib.twig b/modules/component_example/components/example_react_lib/example_react_lib.twig
new file mode 100644
index 0000000..8ab052a
--- /dev/null
+++ b/modules/component_example/components/example_react_lib/example_react_lib.twig
@@ -0,0 +1,6 @@
+{#
+/**
+ * @file
+ * Required Twig template for components as of Drupal 10.3.
+ */
+#}
diff --git a/modules/component_example/components/example_tabs/example_tabs.component.yml b/modules/component_example/components/example_tabs/example_tabs.component.yml
index 47837aa..170679c 100755
--- a/modules/component_example/components/example_tabs/example_tabs.component.yml
+++ b/modules/component_example/components/example_tabs/example_tabs.component.yml
@@ -44,3 +44,6 @@ form_configuration:
 # https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Render!theme.api.php/group/theme_render/8.2.x#sec_caching
 cache:
   max-age: 60
+props:
+  type: object
+  properties: {}
diff --git a/modules/component_example/components/example_tabs/example_tabs.twig b/modules/component_example/components/example_tabs/example_tabs.twig
new file mode 100644
index 0000000..8ab052a
--- /dev/null
+++ b/modules/component_example/components/example_tabs/example_tabs.twig
@@ -0,0 +1,6 @@
+{#
+/**
+ * @file
+ * Required Twig template for components as of Drupal 10.3.
+ */
+#}
diff --git a/src/ComponentDiscovery.php b/src/ComponentDiscovery.php
index 89f9d9c..1c96d6a 100755
--- a/src/ComponentDiscovery.php
+++ b/src/ComponentDiscovery.php
@@ -6,7 +6,7 @@ use Drupal\Component\Discovery\DiscoveryException;
 use Drupal\Component\Serialization\Exception\InvalidDataTypeException;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Extension\ThemeHandlerInterface;
-use Drupal\Core\Serialization\Yaml;
+use Drupal\Component\Serialization\Yaml;
 use Drupal\Core\Site\Settings;
 use Psr\Log\LoggerInterface;
 
diff --git a/src/ComponentServiceProvider.php b/src/ComponentServiceProvider.php
index 1d8bf7a..da45664 100644
--- a/src/ComponentServiceProvider.php
+++ b/src/ComponentServiceProvider.php
@@ -7,7 +7,7 @@ use Drupal\Core\DependencyInjection\ServiceProviderBase;
 use Symfony\Component\DependencyInjection\Reference;
 
 /**
- * Component service provider 
+ * Component service provider.
  */
 class ComponentServiceProvider extends ServiceProviderBase {
 
diff --git a/src/Plugin/Derivative/ComponentBlockDeriver.php b/src/Plugin/Derivative/ComponentBlockDeriver.php
index 4d8de86..9478774 100644
--- a/src/Plugin/Derivative/ComponentBlockDeriver.php
+++ b/src/Plugin/Derivative/ComponentBlockDeriver.php
@@ -3,6 +3,7 @@
 namespace Drupal\component\Plugin\Derivative;
 
 use Drupal\component\ComponentDiscoveryInterface;
+use Drupal\Component\Plugin\Derivative\DeriverBase;
 use Drupal\Core\Plugin\Context\ContextDefinition;
 use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
-- 
GitLab