44namespace Loki \AdminComponents \Form \Fieldset ;
55
66use Loki \AdminComponents \Component \Form \FormRepository ;
7- use Loki \AdminComponents \Exception \NoProviderException ;
87use Loki \AdminComponents \Form \Field \FieldFactory ;
98use Loki \AdminComponents \Form \Field \FieldsResolver ;
10- use Loki \AdminComponents \Provider \ FormProviderInterface ;
9+ use Loki \AdminComponents \Form \ Fieldset \ FieldsetsResolver \ FieldsetsResolverInterface ;
1110use Magento \Framework \View \Element \AbstractBlock ;
1211
1312class FieldsetsResolver
1413{
1514 public function __construct (
1615 private FieldsetFactory $ fieldsetFactory ,
1716 private FieldsResolver $ fieldsResolver ,
18- private FieldFactory $ fieldFactory
17+ private FieldFactory $ fieldFactory ,
18+ /** @var FieldsetsResolverInterface[] */ private array $ fieldsetsResolvers = []
1919 ) {
2020 }
2121
@@ -26,12 +26,9 @@ public function resolve(
2626 FormRepository $ formRepository ,
2727 AbstractBlock $ block ,
2828 ): array {
29- try {
30- $ provider = $ formRepository ->getProvider ();
31- if ($ provider instanceof FormProviderInterface) {
32- return $ provider ->getForm ()->getFieldsets ();
33- }
34- } catch (NoProviderException $ e ) {
29+ $ fieldsets = [];
30+ foreach ($ this ->fieldsetsResolvers as $ fieldsetsResolver ) {
31+ $ fieldsets = $ fieldsetsResolver ->resolve ($ formRepository , $ fieldsets );
3532 }
3633
3734 $ fieldsetDefinitions = (array )$ block ->getFieldsets ();
0 commit comments