getGlobalWidgets()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 188
Code Lines 186

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 186
dl 0
loc 188
rs 8
c 1
b 0
f 1
cc 1
nc 1
nop 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
/**
4
 * This file is part of the Spryker Commerce OS.
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
declare(strict_types = 1);
9
10
namespace Pyz\Yves\ShopApplication;
11
12
use Pyz\Yves\CompanyPage\Plugin\ShopApplication\CompanyUserRestrictionHandlerPlugin;
13
use Pyz\Yves\CompanyWidget\Widget\MenuItemCompanyWidget;
14
use Pyz\Yves\CustomerFullNameWidget\Widget\CustomerFullNameWidget;
15
use Pyz\Yves\ProductSetWidget\Widget\ProductSetIdsWidget;
16
use Spryker\Yves\CustomerDataChangeRequest\Widget\CustomerEmailChangeRequestWidget;
17
use Spryker\Yves\ErrorHandler\Plugin\Application\ErrorHandlerApplicationPlugin;
18
use Spryker\Yves\EventDispatcher\Plugin\Application\EventDispatcherApplicationPlugin;
19
use Spryker\Yves\Form\Plugin\Application\FormApplicationPlugin;
20
use Spryker\Yves\Http\Plugin\Application\YvesHttpApplicationPlugin;
21
use Spryker\Yves\Locale\Plugin\Application\LocaleApplicationPlugin;
22
use Spryker\Yves\Messenger\Plugin\Application\FlashMessengerApplicationPlugin;
23
use Spryker\Yves\MultiFactorAuth\Widget\MultiFactorAuthHandlerWidget;
24
use Spryker\Yves\MultiFactorAuth\Widget\SetMultiFactorAuthMenuItemWidget;
25
use Spryker\Yves\Router\Plugin\Application\RouterApplicationPlugin;
26
use Spryker\Yves\Security\Plugin\Application\YvesSecurityApplicationPlugin;
27
use Spryker\Yves\Session\Plugin\Application\SessionApplicationPlugin;
28
use Spryker\Yves\Sitemap\Widget\SitemapWidget;
29
use Spryker\Yves\Translator\Plugin\Application\TranslatorApplicationPlugin;
30
use Spryker\Yves\Twig\Plugin\Application\TwigApplicationPlugin;
31
use Spryker\Yves\Validator\Plugin\Application\ValidatorApplicationPlugin;
32
use SprykerFeature\Yves\SelfServicePortal\Plugin\ShopApplication\AddressFormItemsByShipmentTypeWidgetCacheKeyGeneratorStrategyPlugin;
33
use SprykerFeature\Yves\SelfServicePortal\Plugin\ShopApplication\SingleAddressPerShipmentTypeWidgetCacheKeyGeneratorStrategyPlugin;
34
use SprykerFeature\Yves\SelfServicePortal\Plugin\ShopApplication\SspDashboardFilterControllerEventHandlerPlugin;
35
use SprykerFeature\Yves\SelfServicePortal\Plugin\ShopApplication\SspServiceCancelWidgetCacheKeyGeneratorStrategyPlugin;
36
use SprykerFeature\Yves\SelfServicePortal\Plugin\ShopApplication\SspServiceChangeScheduledTimeLinkWidgetCacheKeyGeneratorStrategyPlugin;
37
use SprykerFeature\Yves\SelfServicePortal\Widget\AssetCompatibilityLabelWidget;
38
use SprykerFeature\Yves\SelfServicePortal\Widget\CreateOrderSspInquiryWidget;
39
use SprykerFeature\Yves\SelfServicePortal\Widget\DashboardMenuItemWidget;
40
use SprykerFeature\Yves\SelfServicePortal\Widget\ListCartItemsByShipmentTypeWidget;
41
use SprykerFeature\Yves\SelfServicePortal\Widget\ServiceListWidget;
42
use SprykerFeature\Yves\SelfServicePortal\Widget\SingleAddressPerShipmentTypeWidget;
43
use SprykerFeature\Yves\SelfServicePortal\Widget\SspAddressFormItemsByShipmentTypeWidget;
44
use SprykerFeature\Yves\SelfServicePortal\Widget\SspAssetFilterNameWidget;
45
use SprykerFeature\Yves\SelfServicePortal\Widget\SspAssetFilterWidget;
46
use SprykerFeature\Yves\SelfServicePortal\Widget\SspAssetInfoForItemWidget;
47
use SprykerFeature\Yves\SelfServicePortal\Widget\SspAssetListWidget;
48
use SprykerFeature\Yves\SelfServicePortal\Widget\SspAssetMenuItemWidget;
49
use SprykerFeature\Yves\SelfServicePortal\Widget\SspCartItemAssetSelectorWidget;
50
use SprykerFeature\Yves\SelfServicePortal\Widget\SspCompanyFilesMenuItemWidget;
51
use SprykerFeature\Yves\SelfServicePortal\Widget\SspFileListWidget;
52
use SprykerFeature\Yves\SelfServicePortal\Widget\SspInquiryListWidget;
53
use SprykerFeature\Yves\SelfServicePortal\Widget\SspInquiryMenuItemWidget;
54
use SprykerFeature\Yves\SelfServicePortal\Widget\SspItemAssetSelectorWidget;
55
use SprykerFeature\Yves\SelfServicePortal\Widget\SspListMenuItemWidget;
56
use SprykerFeature\Yves\SelfServicePortal\Widget\SspProductOfferPriceWidget;
57
use SprykerFeature\Yves\SelfServicePortal\Widget\SspServiceCancelWidget;
58
use SprykerFeature\Yves\SelfServicePortal\Widget\SspServiceChangeScheduledTimeLinkWidget;
59
use SprykerFeature\Yves\SelfServicePortal\Widget\SspServiceDetectorWidget;
60
use SprykerFeature\Yves\SelfServicePortal\Widget\SspServiceListWidget;
61
use SprykerFeature\Yves\SelfServicePortal\Widget\SspServiceMenuItemWidget;
62
use SprykerFeature\Yves\SelfServicePortal\Widget\SspServicePointGeoCodeWidget;
63
use SprykerFeature\Yves\SelfServicePortal\Widget\SspServicePointNameForItemWidget;
64
use SprykerFeature\Yves\SelfServicePortal\Widget\SspServicePointSearchWidget;
65
use SprykerFeature\Yves\SelfServicePortal\Widget\SspShipmentTypeServicePointSelectorWidget;
66
use SprykerShop\Yves\AgentWidget\Widget\AgentControlBarWidget;
67
use SprykerShop\Yves\AssetWidget\Widget\AssetWidget;
68
use SprykerShop\Yves\AvailabilityNotificationWidget\Widget\AvailabilityNotificationSubscriptionWidget;
69
use SprykerShop\Yves\BarcodeWidget\Widget\BarcodeWidget;
70
use SprykerShop\Yves\BusinessOnBehalfWidget\Widget\BusinessOnBehalfStatusWidget;
71
use SprykerShop\Yves\CartCodeWidget\Widget\CartCodeFormWidget;
72
use SprykerShop\Yves\CartNoteWidget\Plugin\ShopApplication\CartItemNoteFormWidgetCacheKeyGeneratorStrategyPlugin;
73
use SprykerShop\Yves\CartNoteWidget\Widget\CartItemNoteFormWidget;
74
use SprykerShop\Yves\CartNoteWidget\Widget\CartNoteFormWidget;
75
use SprykerShop\Yves\CartPage\Widget\AddItemsFormWidget;
76
use SprykerShop\Yves\CartPage\Widget\AddToCartFormWidget;
77
use SprykerShop\Yves\CartPage\Widget\CartAddProductAsSeparateItemWidget;
78
use SprykerShop\Yves\CartPage\Widget\CartChangeQuantityFormWidget;
79
use SprykerShop\Yves\CartPage\Widget\CartSummaryHideTaxAmountWidget;
80
use SprykerShop\Yves\CartPage\Widget\ProductAbstractAddToCartButtonWidget;
81
use SprykerShop\Yves\CartPage\Widget\RemoveFromCartFormWidget;
82
use SprykerShop\Yves\CartReorderPage\Widget\CartReorderItemCheckboxWidget;
83
use SprykerShop\Yves\CartReorderPage\Widget\CartReorderItemsWidget;
84
use SprykerShop\Yves\CartReorderPage\Widget\CartReorderWidget;
85
use SprykerShop\Yves\CategoryImageStorageWidget\Widget\CategoryImageStorageWidget;
86
use SprykerShop\Yves\CheckoutWidget\Widget\CheckoutBreadcrumbWidget;
87
use SprykerShop\Yves\CheckoutWidget\Widget\ProceedToCheckoutButtonWidget;
88
use SprykerShop\Yves\ClickAndCollectPageExample\Plugin\ShopApplication\ClickAndCollectServicePointAddressFormWidgetCacheKeyGeneratorStrategyPlugin;
89
use SprykerShop\Yves\ClickAndCollectPageExample\Widget\ClickAndCollectServicePointAddressFormWidget;
90
use SprykerShop\Yves\CommentWidget\Widget\CommentThreadWidget;
91
use SprykerShop\Yves\CompanyPage\Plugin\ShopApplication\CheckBusinessOnBehalfCompanyUserHandlerPlugin;
92
use SprykerShop\Yves\CompanyPage\Plugin\ShopApplication\CompanyBusinessUnitControllerRestrictionPlugin;
93
use SprykerShop\Yves\CompanyWidget\Widget\CompanyBusinessUnitAddressWidget;
94
use SprykerShop\Yves\CompanyWidget\Widget\CompanyMenuItemWidget;
95
use SprykerShop\Yves\ConfigurableBundleNoteWidget\Widget\ConfiguredBundleNoteWidget;
96
use SprykerShop\Yves\ConfigurableBundleWidget\Widget\QuoteConfiguredBundleWidget;
97
use SprykerShop\Yves\CurrencyWidget\Widget\CurrencyWidget;
98
use SprykerShop\Yves\CustomerPage\Plugin\Application\CustomerConfirmationUserCheckerApplicationPlugin;
99
use SprykerShop\Yves\CustomerPage\Widget\CustomerNavigationWidget;
100
use SprykerShop\Yves\CustomerValidationPage\Plugin\ShopApplication\LogoutInvalidatedCustomerFilterControllerEventHandlerPlugin;
101
use SprykerShop\Yves\DiscountPromotionWidget\Plugin\ShopApplication\CartDiscountPromotionProductListWidgetCacheKeyGeneratorStrategyPlugin;
102
use SprykerShop\Yves\DiscountPromotionWidget\Widget\CartDiscountPromotionProductListWidget;
103
use SprykerShop\Yves\LanguageSwitcherWidget\Widget\LanguageSwitcherWidget;
104
use SprykerShop\Yves\MerchantOpeningHoursWidget\Widget\MerchantOpeningHoursWidget;
105
use SprykerShop\Yves\MerchantProductOfferWidget\Widget\MerchantProductOffersSelectWidget;
106
use SprykerShop\Yves\MerchantProductOfferWidget\Widget\MerchantProductOfferWidget;
107
use SprykerShop\Yves\MerchantProductWidget\Widget\MerchantProductWidget;
108
use SprykerShop\Yves\MerchantRelationRequestWidget\Widget\MerchantRelationRequestCreateButtonWidget;
109
use SprykerShop\Yves\MerchantRelationRequestWidget\Widget\MerchantRelationRequestCreateLinkWidget;
110
use SprykerShop\Yves\MerchantRelationRequestWidget\Widget\MerchantRelationRequestMenuItemWidget;
111
use SprykerShop\Yves\MerchantRelationshipWidget\Widget\MerchantRelationshipLinkListWidget;
112
use SprykerShop\Yves\MerchantRelationshipWidget\Widget\MerchantRelationshipMenuItemWidget;
113
use SprykerShop\Yves\MerchantSalesOrderWidget\Widget\MerchantOrderReferenceForItemsWidget;
114
use SprykerShop\Yves\MerchantSalesReturnWidget\Plugin\MerchantSalesReturnCreateFormWidgetCacheKeyGeneratorStrategyPlugin;
115
use SprykerShop\Yves\MerchantSalesReturnWidget\Widget\MerchantSalesReturnCreateFormWidget;
116
use SprykerShop\Yves\MerchantSearchWidget\Widget\MerchantSearchWidget;
117
use SprykerShop\Yves\MerchantWidget\Plugin\ShopApplication\SoldByMerchantWidgetCacheKeyGeneratorStrategyPlugin;
118
use SprykerShop\Yves\MerchantWidget\Widget\ShoppingListMerchantWidget;
119
use SprykerShop\Yves\MerchantWidget\Widget\SoldByMerchantWidget;
120
use SprykerShop\Yves\MoneyWidget\Widget\CurrencyIsoCodeWidget;
121
use SprykerShop\Yves\MultiCartWidget\Widget\AddToMultiCartWidget;
122
use SprykerShop\Yves\MultiCartWidget\Widget\CartOperationsWidget;
123
use SprykerShop\Yves\MultiCartWidget\Widget\MiniCartWidget;
124
use SprykerShop\Yves\MultiCartWidget\Widget\MultiCartListWidget;
125
use SprykerShop\Yves\MultiCartWidget\Widget\MultiCartMenuItemWidget;
126
use SprykerShop\Yves\MultiCartWidget\Widget\QuickOrderPageWidget;
127
use SprykerShop\Yves\NewsletterWidget\Widget\NewsletterSubscriptionSummaryWidget;
128
use SprykerShop\Yves\NewsletterWidget\Widget\NewsletterSubscriptionWidget;
129
use SprykerShop\Yves\OrderCancelWidget\Widget\OrderCancelButtonWidget;
130
use SprykerShop\Yves\OrderCustomReferenceWidget\Widget\OrderCustomReferenceWidget;
131
use SprykerShop\Yves\PaymentAppWidget\Widget\ExpressCheckoutPaymentWidget;
132
use SprykerShop\Yves\PersistentCartShareWidget\Widget\ShareCartByLinkWidget;
133
use SprykerShop\Yves\PriceProductVolumeWidget\Widget\CurrentProductPriceVolumeWidget;
134
use SprykerShop\Yves\PriceProductWidget\Widget\PriceProductWidget;
135
use SprykerShop\Yves\PriceWidget\Widget\PriceModeSwitcherWidget;
136
use SprykerShop\Yves\ProductAlternativeWidget\Widget\ProductAlternativeListWidget;
137
use SprykerShop\Yves\ProductAlternativeWidget\Widget\ShoppingListProductAlternativeWidget;
138
use SprykerShop\Yves\ProductAlternativeWidget\Widget\WishlistProductAlternativeWidget;
139
use SprykerShop\Yves\ProductBarcodeWidget\Widget\ProductBarcodeWidget;
140
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleCartItemsListWidget;
141
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleItemCounterWidget;
142
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleItemsMultiCartItemsListWidget;
143
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleMultiCartItemsListWidget;
144
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleProductDetailPageItemsListWidget;
145
use SprykerShop\Yves\ProductCategoryWidget\Widget\ProductBreadcrumbsWithCategoriesWidget;
146
use SprykerShop\Yves\ProductCategoryWidget\Widget\ProductSchemaOrgCategoryWidget;
147
use SprykerShop\Yves\ProductConfigurationCartWidget\Widget\ProductConfigurationCartItemDisplayWidget;
148
use SprykerShop\Yves\ProductConfigurationCartWidget\Widget\ProductConfigurationCartPageButtonWidget;
149
use SprykerShop\Yves\ProductConfigurationCartWidget\Widget\ProductConfigurationQuoteValidatorWidget;
150
use SprykerShop\Yves\ProductConfigurationShoppingListWidget\Widget\ProductConfigurationShoppingListItemDisplayWidget;
151
use SprykerShop\Yves\ProductConfigurationShoppingListWidget\Widget\ProductConfigurationShoppingListPageButtonWidget;
152
use SprykerShop\Yves\ProductConfigurationWidget\Widget\ProductConfigurationProductDetailPageButtonWidget;
153
use SprykerShop\Yves\ProductConfigurationWidget\Widget\ProductConfigurationProductViewDisplayWidget;
154
use SprykerShop\Yves\ProductDiscontinuedWidget\Widget\ProductDiscontinuedNoteWidget;
155
use SprykerShop\Yves\ProductDiscontinuedWidget\Widget\ProductDiscontinuedWidget;
156
use SprykerShop\Yves\ProductGroupWidget\Widget\ProductGroupColorWidget;
157
use SprykerShop\Yves\ProductGroupWidget\Widget\ProductGroupWidget;
158
use SprykerShop\Yves\ProductLabelWidget\Widget\ProductAbstractLabelWidget;
159
use SprykerShop\Yves\ProductLabelWidget\Widget\ProductConcreteLabelWidget;
160
use SprykerShop\Yves\ProductMeasurementUnitWidget\Widget\CartProductMeasurementUnitQuantitySelectorWidget;
161
use SprykerShop\Yves\ProductMeasurementUnitWidget\Widget\ManageProductMeasurementUnitWidget;
162
use SprykerShop\Yves\ProductOfferServicePointAvailabilityWidget\Widget\ProductOfferServicePointAvailabilityDisplayWidget;
163
use SprykerShop\Yves\ProductOfferServicePointAvailabilityWidget\Widget\ProductOfferServicePointAvailabilityWidget;
164
use SprykerShop\Yves\ProductOfferShoppingListWidget\Widget\ProductOfferShoppingListWidget;
165
use SprykerShop\Yves\ProductOfferWidget\Widget\ShoppingListProductOfferWidget;
166
use SprykerShop\Yves\ProductOptionWidget\Widget\ProductOptionConfiguratorWidget;
167
use SprykerShop\Yves\ProductPackagingUnitWidget\Widget\ProductPackagingUnitWidget;
168
use SprykerShop\Yves\ProductRelationWidget\Widget\SimilarProductsWidget;
169
use SprykerShop\Yves\ProductRelationWidget\Widget\UpSellingProductsWidget;
170
use SprykerShop\Yves\ProductReplacementForWidget\Widget\ProductReplacementForListWidget;
171
use SprykerShop\Yves\ProductReviewWidget\Widget\DisplayProductAbstractReviewWidget;
172
use SprykerShop\Yves\ProductReviewWidget\Widget\ProductDetailPageReviewWidget;
173
use SprykerShop\Yves\ProductReviewWidget\Widget\ProductRatingFilterWidget;
174
use SprykerShop\Yves\ProductReviewWidget\Widget\ProductReviewDisplayWidget;
175
use SprykerShop\Yves\ProductSearchWidget\Widget\ProductConcreteAddWidget;
176
use SprykerShop\Yves\ProductSearchWidget\Widget\ProductConcreteSearchGridWidget;
177
use SprykerShop\Yves\ProductSearchWidget\Widget\ProductConcreteSearchWidget;
178
use SprykerShop\Yves\ProductWidget\Widget\CatalogPageProductWidget;
179
use SprykerShop\Yves\ProductWidget\Widget\CmsProductGroupWidget;
180
use SprykerShop\Yves\ProductWidget\Widget\CmsProductWidget;
181
use SprykerShop\Yves\ProductWidget\Widget\PdpProductRelationWidget;
182
use SprykerShop\Yves\ProductWidget\Widget\PdpProductReplacementForListWidget;
183
use SprykerShop\Yves\ProductWidget\Widget\ProductAlternativeWidget;
184
use SprykerShop\Yves\QuoteApprovalWidget\Plugin\ShopApplication\QuoteApprovalStatusWidgetCacheKeyGeneratorStrategyPlugin;
185
use SprykerShop\Yves\QuoteApprovalWidget\Plugin\ShopApplication\QuoteApprovalWidgetCacheKeyGeneratorStrategyPlugin;
186
use SprykerShop\Yves\QuoteApprovalWidget\Plugin\ShopApplication\QuoteApproveRequestWidgetCacheKeyGeneratorStrategyPlugin;
187
use SprykerShop\Yves\QuoteApprovalWidget\Widget\QuoteApprovalStatusWidget;
188
use SprykerShop\Yves\QuoteApprovalWidget\Widget\QuoteApprovalWidget;
189
use SprykerShop\Yves\QuoteApprovalWidget\Widget\QuoteApproveRequestWidget;
190
use SprykerShop\Yves\QuoteRequestAgentWidget\Widget\QuoteRequestAgentCancelWidget;
191
use SprykerShop\Yves\QuoteRequestAgentWidget\Widget\QuoteRequestAgentOverviewWidget;
192
use SprykerShop\Yves\QuoteRequestWidget\Widget\QuoteRequestActionsWidget;
193
use SprykerShop\Yves\QuoteRequestWidget\Widget\QuoteRequestCancelWidget;
194
use SprykerShop\Yves\QuoteRequestWidget\Widget\QuoteRequestCartWidget;
195
use SprykerShop\Yves\QuoteRequestWidget\Widget\QuoteRequestCreateWidget;
196
use SprykerShop\Yves\QuoteRequestWidget\Widget\QuoteRequestMenuItemWidget;
197
use SprykerShop\Yves\SalesConfigurableBundleWidget\Widget\OrderItemsConfiguredBundleWidget;
198
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\CancelOrderAmendmentWidget;
199
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\OrderAmendmentItemLinkWidget;
200
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\OrderAmendmentWidget;
201
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\UpdateOrderCheckoutSubmitButtonTextWidget;
202
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\UpdateOrderCheckoutSuccessTitleWidget;
203
use SprykerShop\Yves\SalesOrderThresholdWidget\Widget\SalesOrderThresholdWidget;
204
use SprykerShop\Yves\SalesProductBundleWidget\Widget\OrderItemsProductBundleWidget;
205
use SprykerShop\Yves\SalesProductConfigurationWidget\Widget\ProductConfigurationOrderItemDisplayWidget;
206
use SprykerShop\Yves\SalesServicePointWidget\Widget\SalesServicePointNameForShipmentGroupWidget;
207
use SprykerShop\Yves\ServicePointWidget\Widget\ServicePointNameForShipmentGroupWidget;
208
use SprykerShop\Yves\ServicePointWidget\Widget\ServicePointSearchWidget;
209
use SprykerShop\Yves\SharedCartWidget\Widget\CartDeleteSharingCompanyUsersListWidget;
210
use SprykerShop\Yves\SharedCartWidget\Widget\CartListPermissionGroupWidget;
211
use SprykerShop\Yves\SharedCartWidget\Widget\SharedCartDetailsWidget;
212
use SprykerShop\Yves\SharedCartWidget\Widget\SharedCartOperationsWidget;
213
use SprykerShop\Yves\SharedCartWidget\Widget\SharedCartPermissionGroupWidget;
214
use SprykerShop\Yves\SharedCartWidget\Widget\SharedCartShareWidget;
215
use SprykerShop\Yves\ShipmentTypeWidget\Plugin\ShopApplication\ShipmentTypeAddressFormWidgetCacheKeyGeneratorStrategyPlugin;
216
use SprykerShop\Yves\ShipmentTypeWidget\Widget\ShipmentTypeAddressFormWidget;
217
use SprykerShop\Yves\ShopApplication\Plugin\Application\ShopApplicationApplicationPlugin;
218
use SprykerShop\Yves\ShopApplication\ShopApplicationDependencyProvider as SprykerShopApplicationDependencyProvider;
219
use SprykerShop\Yves\ShoppingListNoteWidget\Widget\ShoppingListItemNoteWidget;
220
use SprykerShop\Yves\ShoppingListPage\Widget\ShoppingListDismissWidget;
221
use SprykerShop\Yves\ShoppingListWidget\Widget\AddItemsToShoppingListWidget;
222
use SprykerShop\Yves\ShoppingListWidget\Widget\AddToShoppingListWidget;
223
use SprykerShop\Yves\ShoppingListWidget\Widget\CreateShoppingListFromCartWidget;
224
use SprykerShop\Yves\ShoppingListWidget\Widget\ShoppingListMenuItemWidget;
225
use SprykerShop\Yves\ShoppingListWidget\Widget\ShoppingListNavigationMenuWidget;
226
use SprykerShop\Yves\ShoppingListWidget\Widget\ShoppingListSubtotalWidget;
227
use SprykerShop\Yves\StoreWidget\Plugin\ShopApplication\StoreApplicationPlugin;
228
use SprykerShop\Yves\StoreWidget\Widget\StoreSwitcherWidget;
229
use SprykerShop\Yves\TabsWidget\Widget\FullTextSearchTabsWidget;
230
use SprykerShop\Yves\TraceableEventWidget\Widget\TraceableEventWidget;
231
use SprykerShop\Yves\WebProfilerWidget\Plugin\Application\WebProfilerApplicationPlugin;
232
233
/**
234
 * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
235
 */
236
class ShopApplicationDependencyProvider extends SprykerShopApplicationDependencyProvider
237
{
238
    /**
239
     * @return array<string>
240
     */
241
    protected function getGlobalWidgets(): array
242
    {
243
        return [
244
            AddToMultiCartWidget::class,
245
            AddToShoppingListWidget::class,
246
            AgentControlBarWidget::class,
247
            BusinessOnBehalfStatusWidget::class,
248
            CartDeleteSharingCompanyUsersListWidget::class,
249
            CartDiscountPromotionProductListWidget::class,
250
            CartCodeFormWidget::class,
251
            CartItemNoteFormWidget::class,
252
            CartListPermissionGroupWidget::class,
253
            CartNoteFormWidget::class,
254
            CartOperationsWidget::class,
255
            CartProductMeasurementUnitQuantitySelectorWidget::class,
256
            CatalogPageProductWidget::class,
257
            CheckoutBreadcrumbWidget::class,
258
            CmsProductGroupWidget::class,
259
            CmsProductWidget::class,
260
            CompanyMenuItemWidget::class,
261
            CreateShoppingListFromCartWidget::class,
262
            CurrencyWidget::class,
263
            CurrencyIsoCodeWidget::class,
264
            CustomerNavigationWidget::class,
265
            DisplayProductAbstractReviewWidget::class,
266
            ProductGroupColorWidget::class,
267
            LanguageSwitcherWidget::class,
268
            ManageProductMeasurementUnitWidget::class,
269
            MiniCartWidget::class,
270
            MultiCartListWidget::class,
271
            MultiCartMenuItemWidget::class,
272
            QuoteRequestMenuItemWidget::class,
273
            NewsletterSubscriptionWidget::class,
274
            NewsletterSubscriptionSummaryWidget::class,
275
            PdpProductRelationWidget::class,
276
            PdpProductReplacementForListWidget::class,
277
            ProductReplacementForListWidget::class,
278
            PriceModeSwitcherWidget::class,
279
            ProductAbstractLabelWidget::class,
280
            ProductAlternativeListWidget::class,
281
            ProductAlternativeWidget::class,
282
            ProductBarcodeWidget::class,
283
            ProductBreadcrumbsWithCategoriesWidget::class,
284
            ProductBundleCartItemsListWidget::class,
285
            ProductBundleItemCounterWidget::class,
286
            ProductBundleItemsMultiCartItemsListWidget::class,
287
            ProductBundleMultiCartItemsListWidget::class,
288
            ProductConcreteLabelWidget::class,
289
            ProductDetailPageReviewWidget::class,
290
            ProductDiscontinuedNoteWidget::class,
291
            ProductDiscontinuedWidget::class,
292
            ProductGroupWidget::class,
293
            ProductOptionConfiguratorWidget::class,
294
            ProductPackagingUnitWidget::class,
295
            CurrentProductPriceVolumeWidget::class,
296
            ProductRatingFilterWidget::class,
297
            ProductReviewDisplayWidget::class,
298
            QuickOrderPageWidget::class,
299
            SalesOrderThresholdWidget::class,
300
            ShareCartByLinkWidget::class,
301
            SharedCartDetailsWidget::class,
302
            SharedCartOperationsWidget::class,
303
            SharedCartPermissionGroupWidget::class,
304
            SharedCartShareWidget::class,
305
            ShoppingListDismissWidget::class,
306
            ShoppingListItemNoteWidget::class,
307
            ShoppingListMenuItemWidget::class,
308
            ShoppingListNavigationMenuWidget::class,
309
            ShoppingListProductAlternativeWidget::class,
310
            ShoppingListSubtotalWidget::class,
311
            SimilarProductsWidget::class,
312
            UpSellingProductsWidget::class,
313
            WishlistProductAlternativeWidget::class,
314
            CompanyBusinessUnitAddressWidget::class,
315
            FullTextSearchTabsWidget::class,
316
            QuoteApprovalStatusWidget::class,
317
            QuoteApproveRequestWidget::class,
318
            ProceedToCheckoutButtonWidget::class,
319
            QuoteApprovalWidget::class,
320
            ProductConcreteSearchWidget::class,
321
            ProductConcreteSearchGridWidget::class,
322
            PriceProductWidget::class,
323
            AddItemsToShoppingListWidget::class,
324
            CategoryImageStorageWidget::class,
325
            AvailabilityNotificationSubscriptionWidget::class,
326
            ProductConcreteAddWidget::class,
327
            QuoteRequestCreateWidget::class,
328
            QuoteRequestCartWidget::class,
329
            QuoteRequestCancelWidget::class,
330
            QuoteRequestAgentOverviewWidget::class,
331
            QuoteRequestAgentCancelWidget::class,
332
            CommentThreadWidget::class,
333
            QuoteConfiguredBundleWidget::class,
334
            ConfiguredBundleNoteWidget::class,
335
            QuoteRequestActionsWidget::class,
336
            OrderCustomReferenceWidget::class,
337
            OrderItemsConfiguredBundleWidget::class,
338
            BarcodeWidget::class,
339
            AddToCartFormWidget::class,
340
            AddItemsFormWidget::class,
341
            CartChangeQuantityFormWidget::class,
342
            OrderItemsProductBundleWidget::class,
343
            RemoveFromCartFormWidget::class,
344
            ProductAbstractAddToCartButtonWidget::class,
345
            OrderCancelButtonWidget::class,
346
            MenuItemCompanyWidget::class,
347
            CustomerFullNameWidget::class,
348
            ProductSetIdsWidget::class,
349
            CartAddProductAsSeparateItemWidget::class,
350
            SoldByMerchantWidget::class,
351
            MerchantProductWidget::class,
352
            MerchantProductOfferWidget::class,
353
            MerchantOpeningHoursWidget::class,
354
            MerchantOrderReferenceForItemsWidget::class,
355
            MerchantSalesReturnCreateFormWidget::class,
356
            ShoppingListMerchantWidget::class,
357
            ShoppingListProductOfferWidget::class,
358
            StoreSwitcherWidget::class,
359
            ProductOfferShoppingListWidget::class,
360
            MerchantProductOffersSelectWidget::class,
361
            MerchantSearchWidget::class,
362
            ProductSchemaOrgCategoryWidget::class,
363
            AssetWidget::class,
364
            ProductBundleProductDetailPageItemsListWidget::class,
365
            ProductConfigurationCartPageButtonWidget::class,
366
            ProductConfigurationCartItemDisplayWidget::class,
367
            ProductConfigurationProductDetailPageButtonWidget::class,
368
            ProductConfigurationProductViewDisplayWidget::class,
369
            ProductConfigurationOrderItemDisplayWidget::class,
370
            ProductConfigurationQuoteValidatorWidget::class,
371
            ProductConfigurationShoppingListItemDisplayWidget::class,
372
            ProductConfigurationShoppingListPageButtonWidget::class,
373
            CartSummaryHideTaxAmountWidget::class,
374
            MerchantRelationRequestCreateLinkWidget::class,
375
            MerchantRelationRequestCreateButtonWidget::class,
376
            MerchantRelationRequestMenuItemWidget::class,
377
            MerchantRelationshipMenuItemWidget::class,
378
            MerchantRelationshipLinkListWidget::class,
379
            TraceableEventWidget::class,
380
            ExpressCheckoutPaymentWidget::class,
381
            CustomerEmailChangeRequestWidget::class,
382
            SetMultiFactorAuthMenuItemWidget::class,
383
            MultiFactorAuthHandlerWidget::class,
384
            SitemapWidget::class,
385
            CartReorderWidget::class,
386
            CartReorderItemCheckboxWidget::class,
387
            CartReorderItemsWidget::class,
388
            OrderAmendmentWidget::class,
389
            OrderAmendmentItemLinkWidget::class,
390
            CancelOrderAmendmentWidget::class,
391
            UpdateOrderCheckoutSubmitButtonTextWidget::class,
392
            UpdateOrderCheckoutSuccessTitleWidget::class,
393
            CreateOrderSspInquiryWidget::class,
394
            SspInquiryMenuItemWidget::class,
395
            SspCompanyFilesMenuItemWidget::class,
396
            DashboardMenuItemWidget::class,
397
            SspInquiryListWidget::class,
398
            SspAssetListWidget::class,
399
            SspFileListWidget::class,
400
            SspServiceMenuItemWidget::class,
401
            SspServiceChangeScheduledTimeLinkWidget::class,
402
            SspServiceCancelWidget::class,
403
            SspShipmentTypeServicePointSelectorWidget::class,
404
            SspServicePointNameForItemWidget::class,
405
            SspAssetMenuItemWidget::class,
406
            ListCartItemsByShipmentTypeWidget::class,
407
            SspListMenuItemWidget::class,
408
            SspAssetInfoForItemWidget::class,
409
            SspServiceDetectorWidget::class,
410
            SspCartItemAssetSelectorWidget::class,
411
            SspItemAssetSelectorWidget::class,
412
            SspProductOfferPriceWidget::class,
413
            SspAddressFormItemsByShipmentTypeWidget::class,
414
            ServiceListWidget::class,
415
            SspServicePointSearchWidget::class,
416
            SspServicePointGeoCodeWidget::class,
417
            SingleAddressPerShipmentTypeWidget::class,
418
            SspServiceListWidget::class,
419
            AssetCompatibilityLabelWidget::class,
420
            SspAssetFilterNameWidget::class,
421
            SspAssetFilterWidget::class,
422
            ServicePointSearchWidget::class,
423
            ClickAndCollectServicePointAddressFormWidget::class,
424
            SalesServicePointNameForShipmentGroupWidget::class,
425
            ServicePointNameForShipmentGroupWidget::class,
426
            ShipmentTypeAddressFormWidget::class,
427
            ProductOfferServicePointAvailabilityWidget::class,
428
            ProductOfferServicePointAvailabilityDisplayWidget::class,
429
        ];
430
    }
431
432
    /**
433
     * @return array<\SprykerShop\Yves\ShopApplicationExtension\Dependency\Plugin\WidgetCacheKeyGeneratorStrategyPluginInterface>
434
     */
435
    protected function getWidgetCacheKeyGeneratorStrategyPlugins(): array
436
    {
437
        return [
438
            new QuoteApprovalStatusWidgetCacheKeyGeneratorStrategyPlugin(),
439
            new QuoteApproveRequestWidgetCacheKeyGeneratorStrategyPlugin(),
440
            new QuoteApprovalWidgetCacheKeyGeneratorStrategyPlugin(),
441
            new CartDiscountPromotionProductListWidgetCacheKeyGeneratorStrategyPlugin(),
442
            new CartItemNoteFormWidgetCacheKeyGeneratorStrategyPlugin(),
443
            new MerchantSalesReturnCreateFormWidgetCacheKeyGeneratorStrategyPlugin(),
444
            new SoldByMerchantWidgetCacheKeyGeneratorStrategyPlugin(),
445
            new ClickAndCollectServicePointAddressFormWidgetCacheKeyGeneratorStrategyPlugin(),
446
            new ShipmentTypeAddressFormWidgetCacheKeyGeneratorStrategyPlugin(),
447
            new SingleAddressPerShipmentTypeWidgetCacheKeyGeneratorStrategyPlugin(),
448
            new AddressFormItemsByShipmentTypeWidgetCacheKeyGeneratorStrategyPlugin(),
449
            new SspServiceCancelWidgetCacheKeyGeneratorStrategyPlugin(),
450
            new SspServiceChangeScheduledTimeLinkWidgetCacheKeyGeneratorStrategyPlugin(),
451
        ];
452
    }
453
454
    /**
455
     * @return array<\SprykerShop\Yves\ShopApplicationExtension\Dependency\Plugin\FilterControllerEventHandlerPluginInterface>
456
     */
457
    protected function getFilterControllerEventSubscriberPlugins(): array
458
    {
459
        return [
460
            new CompanyUserRestrictionHandlerPlugin(),
461
            new CheckBusinessOnBehalfCompanyUserHandlerPlugin(), #BusinessOnBehalfFeature
462
            new CompanyBusinessUnitControllerRestrictionPlugin(),
463
            new LogoutInvalidatedCustomerFilterControllerEventHandlerPlugin(),
464
            new SspDashboardFilterControllerEventHandlerPlugin(),
465
        ];
466
    }
467
468
    /**
469
     * @return array<\Spryker\Shared\ApplicationExtension\Dependency\Plugin\ApplicationPluginInterface>
470
     */
471
    protected function getApplicationPlugins(): array
472
    {
473
        $applicationPlugins = [
474
            new YvesHttpApplicationPlugin(),
475
            new TwigApplicationPlugin(),
476
            new EventDispatcherApplicationPlugin(),
477
            new ShopApplicationApplicationPlugin(),
478
            new StoreApplicationPlugin(),
479
            new LocaleApplicationPlugin(),
480
            new TranslatorApplicationPlugin(),
481
            new RouterApplicationPlugin(),
482
            new SessionApplicationPlugin(),
483
            new ErrorHandlerApplicationPlugin(),
484
            new FlashMessengerApplicationPlugin(),
485
            new FormApplicationPlugin(),
486
            new ValidatorApplicationPlugin(),
487
            new YvesSecurityApplicationPlugin(),
488
            new CustomerConfirmationUserCheckerApplicationPlugin(),
489
        ];
490
491
        if (class_exists(WebProfilerApplicationPlugin::class)) {
492
            $applicationPlugins[] = new WebProfilerApplicationPlugin();
493
        }
494
495
        return $applicationPlugins;
496
    }
497
}
498