日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SAP Spartacus 3.0 的一些变化

發布時間:2023/12/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAP Spartacus 3.0 的一些变化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SAP Spartacus 確實使用到了Bootstrap這個框架:

Technical Changes in Spartacus 3.0

Breaking Changes

Translations (i18n) changed

  • fixed the typo in the key user.register.managementInMyAccount (previously …managmentInMyAccount)
  • key checkout.checkoutReview.editShippingMethod has been removed
  • key checkout.checkoutReview.editPaymentMethod has been removed

Default Router options changed

The Angular router can be initialized with so-called ExtraOptions in the forRoot method fo the RouterModule. See https://angular.io/api/router/ExtraOptions for more information on those options.

The default ExtraOptions have changed with 3.0. Before 3.0, Spartacus set the anchorScrolling and scrollPositionRestoration options. In Spartacus 3.0, the scrollPositionRestoration has dropped, and the relativeLinkResolution and initialNavigation has been added. See the below table for the actual values and reasoning

Option< 3.0> 3.0
anchorScrolling'enabled''enabled'
scrollPositionRestoration'enabled'(removed)
relativeLinkResolutionn/a'corrected'
initialNavigationn/a'enabled'

The enabled scrollPositionRestoration was causing a bad experience in most cases, as it would scroll the page to the top on each route change. This is unexpected in a single page experience.

The corrected relativeLinkResolution is used to opt-in to a fix that has been added in angular. This will become default from angular 11 onwards.

The enabled initialNavigation provides better experience with server side rendering, starting initial navigation before the root component is created and blocking bootstrap until the initial navigation is complete. More details available in Angular documentation.

The RouterModule.forRoot() method can actually only be called once in an angular application. This makes the default options rather opinionated, which is why the default configurations are carefully selected in Spartacus. The options that have been added/removed can be provided in your custom application with the Angular ROUTER_CONFIGURATION injection token. For example:

providers: [{provide: ROUTER_CONFIGURATION,useValue: {scrollPositionRestoration: 'enabled',},}, ];

There’s no automation (schematics) planned for this change.

Page Layout

With version 2.1 we’ve started to add the page layout based style class to the root element of the application (cx-storefront). This is done in addition to the style class added by the PageLayoutComponent. The style class on the PageLayoutComponent was considered to be too limited, as it would not affect selectors outside the page template component.

The implementation of the page layout based style class has moved from the PageLayoutComponent to the PageTemplateDirective. This results in a cleaner PageLayoutComponent with a constructor that no longer requires the lower level renderer2 service and ElementRef. The constructor reduces to the following signature:

constructor(protected pageLayoutService: PageLayoutService) {}

We’ve also made the PageLayoutService a protected argument, so that it is extensible.

There’s no automation (schematics) planned to migrate constructors automatically.

Static CMS structure config changes

  • default-header-config and default-cms-content-config have been removed. Use defaultCmsContentProviders instead to create CMS content.

Occ prefix

Default value for backend.occ.prefix configuration option was changed from /rest/v2/ to /occ/v2/.

Storefront config

  • New config SeoConfig is imported.

ContentPageMetaResolver

ContentPageMetaResolver has a new required constructor dependency RoutingPageMetaResolver.

LoginFormComponent

It’s no longer the responsibility of the LoginFormComponent to redirect to the anticipated page (it no longer calls the method AuthRedirectService.redirect).
Now the redirecting logic is placed inside the core AuthService to support more OAuth flows.

LoginFormComponent no longer has properties loginAsGuest, sub and the method ngOnDestroy.

HttpClientModule is not imported in feature libraries

In most cases HttpClientModule should only be imported in the root app module, as importing it in lazy-loaded modules can
cause unexpected side effects regarding the visibility of HTTP_INTERCEPTORS, etc. To fix this, we removed all HttpClientModule imports from all our
feature libraries and moved them to recipes.

There’s no automation (schematics) planned for this change.

SSR Engine Optimizations

NgExpressEngineDecorator now adds SSR Optimization logic on top of the universal engine by default.

NgExpressEngineDecorator was moved from @spartacus/core to @spartacus/setup/ssr. Also NgExpressEngineDecorator.get() method now accepts an additional second parameter to fine-tune SSR optimizations. Passing null there will turn off optimizations by removing optimization layer completely (bring back default 2.x behavior).

Store finder functionality has been moved to a new library

Store finder logic from @spartacus/core and store finder components from @spartacus/storefront were moved to respective entrypoints in @spartacus/misc/storefinder.
Store finder translations (storeFinderTranslations) and translation chunks (storeFinderTranslationChunksConfig) were moved to @spartacus/misc/storefinder/assets.
Store finder functionality is now also lazy-loadable out of the box.

StockNotificationComponent

StockNotificationComponent has a new required dependency UserIdService, but no more depends on AuthService.

CmsComponentsService

Method CmsComponentsService.getChildRoutes changed return type from Route[] to CmsComponentChildRoutesConfig

Config cmsComponents

The property childRoutes of config cmsComponents changed type from Route[] to Route[] | CmsComponentChildRoutesConfig.

PageMetaService lazy-loading related changes

  • Protected method PageMetaService.getMetaResolver changed its return type from PageMateResolver to Observable<PageMetaResolver> so it can take into account page meta resolvers from lazy loaded features.
  • PageMetaService’s constructor is now using UnifiedInjector instead of injecting PageMetaResolver token directly.

ConverterService lazy-loading related changes

  • ConverterService constructor is now using UnifiedInjector instead of standard Injector

Payload for constructor of PlaceOrder class from Checkout actions requires an additional property

  • Checkout.action constructor payload now needs a termsChecked additional property

PlaceOrderComponent

  • placeOrderSubscription property was removed - no replacement
  • The component has new required constructor dependencies: CheckoutReplenishmentFormService, LaunchDialogService and ViewContainerRef.

Property renamed in SearchConfig interface

Old NameNew Name
sortCodesort

Changes in CheckoutStepsState interface

  • New property: currently required poNumber: { po: string; costCenter: string; };
  • Change type: property orderDetails type has been changed from Order to Order | ReplenishmentOrder

Changes in CheckoutState interface

  • New property: currently required paymentTypes: PaymentTypesState;
  • New property: currently required orderType: OrderTypesState;

OutletRefDirective unregisters template on destroy

The directive’s template in unregistered from outlet on directive destroy.

Before v3.0, when an instance of OutletRefDirective was destroyed (removed from DOM), its template remained registered for the Outlet, which could cause the same template being rendered multiple times in case of re-creation of the same [cxOutletRef] later on. Now it’s fixed.

CartItemComponent lost members

CartItemComponent lost members:

  • @Output() view - instead use [cxModal] directive to close modal on link click
  • viewItem() - instead use [cxModal] directive to close modal on link click

CartItemListComponent

There can be more than one cart entry with the same product code. So now they are referenced by the property entryNumber instead of the product code in CartItemListComponent.

AddToCartComponent

AddToCartComponent lost members:

  • increment - use new numberOfEntriesBeforeAdd instead
  • cartEntry$ - use activeCartService.getLastEntry(productCode) instead

Auth module refactor

  • @spartacus/core have new dependency on angular-oauth2-oidc library. It’s used to handle OAuth login/logout flows in spartacus.

Store

  • AuthSelectors were removed. Selectors related to client token were moved under ClientAuthSelectors. User token is no longer stored in ngrx store. To get the token use AuthStorageService.getToken method.
  • StateWithAuth was removed. State related to client token was moved to StateWithClientAuth. Data related to user token are stored in AuthStorageService and UserIdService.
  • AuthState was removed. State related to client token was moved to ClientAuthState. Data related to user token are stored in AuthStorageService and UserIdService.
  • UserTokenState was removed. Data related to user token are no longer stored in ngrx store. User token is stored in AuthStorageService and user id is stored in UserIdService.
  • AUTH_FEATURE was removed. Client token state is under the key from CLIENT_AUTH_FEATURE variable.
  • CLIENT_TOKEN_DATA variable value changed to [Client auth] Client Token Data. Previously it was [Auth] Client Token Data.
  • AuthActions now only contains Login and Logout action class and LOGIN, LOGOUT variables with action type. Actions related to client token (LoadClientToken...) are now available under ClientAuthActions export. Constant LOGOUT_CUSTOMER_SUPPORT_AGENT is available in AsmActions export. Actions related to user token were removed (LOAD_USER_TOKEN, LOAD_USER_TOKEN_FAIL, LOAD_USER_TOKEN_SUCCESS, REFRESH_USER_TOKEN, REFRESH_USER_TOKEN_FAIL, REFRESH_USER_TOKEN_SUCCESS, REVOKE_USER_TOKEN, REVOKE_USER_TOKEN_FAIL, REVOKE_USER_TOKEN_SUCCESS, LoadUserToken, LoadUserTokenFail, LoadUserTokenSuccess, RefreshUserToken, RefreshUserTokenSuccess, RefreshUserTokenFail, RevokeUserToken, RevokeUserTokenSuccess and RevokeUserTokenFail). Instead initialize user token load, refresh or revoke with methods exposed in AuthService and OAuthLibWrapperService.

Models

  • UserToken interface was replaced with AuthToken interface. New interface contains different properties than the previous to match requirements of angular-oauth2-oidc library.
  • AuthenticationToken interface was removed. Use AuthToken or ClientToken directly.
  • Occ.UserGroupList interface was removed.
  • Occ.UserSignUp interface was removed.

Guards

  • NotAuthGuard now returns Observable<UrlTree> for homepage for logged in users instead of invoking redirect. Constructor also changed for this guard. RoutingService is no longer needed, but SemanticPathService and Router is now required.
  • AuthGuard now returns Observable<UrlTree> for login page for anonymous users instead of invoking redirect. Constructor also changed for this guard. RoutingService is no longer needed, but SemanticPathService is now required.

Services

  • AuthRedirectService now requires AuthRedirectStorageService. Make sure to provide it. It is an replacement for private variable redirectUrl.
  • AuthService now requires UserIdService, OAuthLibWrapperService, AuthStorageService, AuthRedirectService and RoutingService.
  • AuthService.authorize was renamed to loginWithCredentials. It returns Promise that resolves after login procedure completes. Instead of dispatching action the method now invokes login method from the OAuth library and sets correct userId, dispatches Login action and redirects to previously visited page.
  • AuthService.getOccUserId was removed from AuthService. Use UserIdService.getUserId method instead. It is the direct replacement.
  • AuthService.invokeWithUserId was moved to UserIdService. It is available under the same name.
  • AuthService.getUserToken was removed. To check if user is logged in use isUserLoggedIn and to get user id use UserIdService.getUserId. If you need access to tokens then use AuthStorageService.getToken.
  • AuthService.refreshUserToken was moved and renamed to OAuthLibWrapperService.refreshToken. The behavior changed as well. It not only dispatches action, but performs complete refresh token procedure from OAuth library.
  • AuthService.authorizeWithToken was removed. Instead you can create object of the shape AuthToken and pass to AuthStorageService.setToken.
  • AuthService.logout method changed behavior to redirect to logout page. Then the method AuthService.coreLogout will be dispatched and perform operations previously done by logout method (Logout action dispatch, clearing local state, revoking tokens).
  • AuthService.getClientToken, AuthService.refreshClientToken and AuthService.isClientTokenLoaded were moved to ClientTokenService.

Config

  • AuthConfig no longer extends OccConfig.
  • login and revoke endpoints were removed from OccConfig. login endpoint is now available under tokenEndpoint property in AuthConfig. revoke endpoint is available under revokeEndpoint property in AuthConfig.
  • storageSync configuration for auth branch in ngrx store was removed. State of token, userId is now synchronized with AuthStatePersistenceService. Override this service if you want to sync more properties to localStorage (eg. refresh_token).
  • storageSync configuration for anonymous-consents branch in ngrx store was removed. State is now synchronized with AnonymousConsentsStatePersistenceService. Override this service if you want to sync more/less properties to localStorage.

KymaModule

KymaModule were removed with all it’s code. We expose the same functionality through configuration of auth.

To fetch OpenId token along with access token in Resource Owner Password Flow you have to use following configuration.

authentication: {client_id: 'client4kyma',client_secret: 'secret',OAuthLibConfig: {responseType: 'id_token',scope: 'openid',customTokenParameters: ['token_type', 'id_token'],} }

Then you can access OpenId token with OAuthLibWrapperService.getIdToken method. For more options related to OpenId token look into angular-oauth2-oidc library documentation.

ASM module refactor

  • getCustomerSupportAgentTokenState, getCustomerSupportAgentToken and getCustomerSupportAgentTokenLoading were removed from AsmSelectors. To get token use AuthStorageService.getToken and AsmAuthStorageService.getTokenTarget to check if it belongs to CS agent.
  • Effects in AsmModule now instead of makeErrorSerializable use normalizeHttpError for error transformation.
  • storageSync configuration for asm branch in ngrx store was removed. State of ASM UI, tokens is now synchronized with AsmStatePersistenceService.
  • CSAGENT_TOKEN_DATA variable was removed.
  • AsmState.csagentToken was removed. Token is now stored in AuthStorageService. Check AsmAuthStorageService.getTokenTarget to validate if the token belongs to the CS agent.
  • AsmActions no longer contains actions related to customer agent token (LoadCustomerSupportAgentToken, LoadCustomerSupportAgentTokenFail, LoadCustomerSupportAgentTokenSuccess). Instead interact directly with CsAgentAuthService.
  • CustomerSupportAgentTokenInterceptor interceptor was removed. Token and error handling for CS agent requests are now handled by AuthInterceptor and AsmAuthHttpHeaderService.

AsmAuthService

Service was renamed to CsAgentAuthService. AsmAuthService is now responsible for making AuthService aware of ASM and adjusts it for CS agent support.

  • AsmAuthService.authorizeCustomerSupportAgent was moved to CsAgentAuthService. It now performs full login flow for CS agent and resolves when it completes.
  • AsmAuthService.startCustomerEmulationSession was moved to CsAgentAuthService. Behavior haven’t changed.
  • AsmAuthService.isCustomerEmulationToken was removed. To check token use AuthStorageService.getToken and to check if it belongs to CS agent use AsmAuthStorageService.getTokenTarget.
  • AsmAuthService.getCustomerSupportAgentToken was removed. To check token use AuthStorageService.getToken and to check if it belongs to CS agent use AsmAuthStorageService.getTokenTarget.
  • AsmAuthService.getCustomerSupportAgentTokenLoading was moved to CsAgentAuthService. Warning! It is not implemented there yet.
  • AsmAuthService.logoutCustomerSupportAgent was moved to CsAgentAuthService. It performs logout procedure for CS agent and resolves when it completes.

CDC library

  • CdcUserTokenEffects now uses normalizeHttpError for error serialization.
  • CdcUserTokenEffects.loadCdcUserToken$ effect now calls CdcAuthService.loginWithToken instead of dispatching AuthActions.LoadUserTokenSuccess action.
  • CdcAuthService no longer extends AuthService.
  • CdcAuthService have new required dependencies. AuthStorageService, UserIdService, GlobalMessageService and AuthRedirectService needs to provided.
  • CdcAuthService.authorizeWithCustomCdcFlow method was renamed to loginWithCustomCdcFlow.
  • CdcAuthService.logout method was removed. Now CDC hooks into logout process, by providing CdcLogoutGuard as LogoutGuard.
  • CdcJsService now requires AuthService as CdcAuthService no longer extends it. AuthService should be passed after CdcAuthService. CdcAuthService is available in service under cdcAuth and AuthService is available under auth property. Additionally GlobalMessageService and AuthRedirectService are not longer required. We don’t provide automatic migration for that constructor change!

OrderDetailHeadlineComponent

Order detail headline component has been removed.

OrderDetailShippingComponent

The following functions have been removed from the component:

  • getAddressCardContent()
  • getBillingAddressCardContent()
  • getPaymentCardContent()
  • getShippingMethodCardContent()

OrderConfirmationOverviewComponent

The following functions have been removed from the component:

  • getAddressCardContent()

  • getDeliveryModeCardContent()

  • getPaymentInfoCardContent()

  • getBillingAddressCardContent()

  • order$ now has a return type of Observable<any> instead of Observable<Order>

The type of BaseSiteService is changed

Before it was:

  • BaseSiteService implements SiteContext<string>

Now it is:

  • BaseSiteService implements SiteContext<BaseSite>

The return type of the function getAll() is changed from:

  • getAll(): Observable<string[]>

to:

  • getAll(): Observable<BaseSite[]>

The return type of the function setActive(baseSite: string) is changed from:

  • setActive(baseSite: string): Subscription

to:

  • setActive(baseSite: string): void

ConfigInitializerService’s constructor has an additional parameter added

Before it was:

constructor(@Inject(Config) protected config: any,@Optional()@Inject(CONFIG_INITIALIZER_FORROOT_GUARD)protected initializerGuard) {}

Now it is:

constructor(@Inject(Config) protected config: any,@Optional()@Inject(CONFIG_INITIALIZER_FORROOT_GUARD)protected initializerGuard,@Inject(RootConfig) protected rootConfig: any

CmsComponentsService constructor has an additional parameter added

Before it was:

constructor(protected config: CmsConfig,@Inject(PLATFORM_ID) protected platformId: Object) {}

Now it is:

constructor(protected config: CmsConfig,@Inject(PLATFORM_ID) protected platformId: Object,protected featureModules?: FeatureModulesService) {}

configurationFactory was removed

Configuration merging logic now uses separate tokens for default configuration and user configuration.

CheckoutProgressMobileBottomComponent

  • routerState$ property has been removed. This logic is now handled by checkoutStepService.
  • activeStepUrl property has been removed. This logic is now handled by checkoutStepService.
  • steps property has been removed - use steps$ instead.

CheckoutProgressMobileTopComponent

  • routerState$ property has been removed. This logic is now handled by checkoutStepService.
  • activeStepUrl property has been removed. This logic is now handled by checkoutStepService.
  • steps property has been removed - use steps$ instead.

CheckoutProgressComponent

  • routerState$ property has been removed. This logic is now handled by checkoutStepService.
  • activeStepUrl property has been removed. This logic is now handled by checkoutStepService.
  • steps property has been removed - use steps$ instead.

DeliveryModeComponent

  • checkoutStepUrlNext property has been removed. This logic is now handled by checkoutStepService.
  • checkoutStepUrlPrevious property has been removed. This logic is now handled by checkoutStepService.

OrderDetailShippingComponent

  • getPaymentCardContent was removed, please check the OrderOverviewComponent instead.
  • getShippingMethodCardContent was removed, please check the OrderOverviewComponent instead.
  • getAddressCardContent was removed, please check the OrderOverviewComponent instead.
  • getBillingAddressCardContent was removed, please check the OrderOverviewComponent instead.

PaymentMethodComponent

  • checkoutStepUrlNext property has been removed. This logic is now handled by checkoutStepService.
  • checkoutStepUrlPrevious property has been removed. This logic is now handled by checkoutStepService.
  • goNext method has been renamed to next.
  • goPrevious method has been renamed to back.

ShippingAddressComponent

  • existingAddresses$ property has been removed.
  • newAddressFormManuallyOpened property has been renamed to addressFormOpened.
  • goNext method has been renamed to next.
  • goPrevious method has been renamed to back.

CheckoutAuthGuard

  • canActivate method now returns type Observable<boolean | UrlTree.

CheckoutConfigService

  • steps property has been removed - use checkoutStepService instead.
  • checkoutStepService method has been removed - use checkoutStepRoute method in checkoutStepService instead.
  • getFirstCheckoutStepRoute method has been removed - use getFirstCheckoutStepRoute method in checkoutStepService instead.
  • getFirstCheckoutStepRoute method has been removed - use getFirstCheckoutStepRoute method in checkoutStepService instead.
  • getNextCheckoutStepUrl method has been removed - use getNextCheckoutStepUrl method in checkoutStepService instead.
  • getPreviousCheckoutStepUrl method has been removed - use getPreviousCheckoutStepUrl method in checkoutStepService instead.
  • getCurrentStepIndex method has been removed - use getCurrentStepIndex method in checkoutStepService instead.
  • CheckoutConfigService no longer uses RoutingConfigService.

Method placeOrder in CheckoutAdapter, OccCheckoutAdapter and CheckoutConnector

The method placeOrder of CheckoutAdapter, OccCheckoutAdapter and CheckoutConnector now has 3rd, a new required argument termsChecked: boolean.

BreakpointService

  • Public getter method window() was removed. Instead directly reference the windowRef.
  • Protected method getClosest was removed. Instead use the method getBreakpoint.
  • Property _breakpoints has been removed.
  • Public getter breakpoint$ was removed. Instead use the property breakpoint$.
  • BreakpointService has new required platform dependency.

ProtectedRoutesGuard

The return type of the method ProtectedRoutesGuard.canActivate changed from Observable<boolean> to Observable<boolean | UrlTree>

ItemCounterComponent

  • The component now implements OnInit and OnDestroy.

ViewComponent

  • Protected getter method splitViewCount was removed.

UpdateEmailComponent

  • Method onSuccess changed its return type from void to Promise<void> in order to wait for the logout to complete before updating the email.

StorefrontComponent

  • collapseMenuIfClickOutside method param type changed from MouseEvent to any. Behaviour has also been modified to only trigger when header element is passed to the function.

StarRatingComponent

  • The component uses HostBinding to bind to css custom properties (available since angular 9), which is why we no longer need the ElementRef and Renderer2 in the constructor. There’s a automated constructor migration added for the 3.0 release.
  • ngOnInit is no longer used
  • the setRate no longer requires a 2nd argument (force)
  • the setRateOnEvent() method is replaced by reusing the setRate() (this is also fixing a bug), we bind keydown.space now directly form the view. The more generic keydown output binding is removed.

CartNotEmptyGuard

  • Method canActivate changed its return type from Observable<boolean> to Observable<boolean | UrlTree> to support OAuth flows.
  • new required constructor dependency SemanticPathService.
  • new required constructor dependency Router.
  • no longer uses RoutingService. This service usage was replaced with the corresponding methods from Router and SemanticPathService.

NotCheckoutAuthGuard

  • Method canActivate changed its return type from Observable<boolean> to Observable<boolean | UrlTree> to support OAuth flows.

ProductVariantGuard

  • Method canActivate now requires a parameter of type ActivatedRouteSnapshot.

LogoutGuard

  • Method canActivate changed its return type from Observable<boolean> to Observable<boolean | UrlTree> to support OAuth flows.
  • Method logout return type has been changed from void to Promise<any> to support OAuth flows.
  • Method redirect was removed. Use getRedirectUrl instead.

CurrentProductService

  • getProduct method will now only emit distinct product.

MultiCartStatePersistenceService

  • sync method has been renamed to initSync.

ProductReferenceService

  • get method has been removed. Use getProductReferences and loadProductReferences methods instead.

LanguageService

  • Method setActive changed its return type from Subscription to void.

CurrencyService

  • Method setActive changed its return type from Subscription to void.

OccCmsComponentAdapter

The OCC CMS component API in SAP Commerce Cloud before version 1905 was using a POST method. This has changed in 1905 (using GET going forward). Spartacus has supported both version from version 1.0 by using a legacy flag to distinguish this backend API behavior. With release 3.0 we maintain the support for the pre 1905 CMS component API, but the implementation has moved to a separate adapter (LegacyOccCmsComponentAdapter). With that change, we’re also dropping the legacy flag in the OCC configuration.

UserState

The interface for the ngrx state UserState now has new required properties: replenishmentOrders, replenishmentOrder and costCenters.

CloseAccountModalComponent

The property userToken$ of CloseAccountModalComponent has been replaced with isLoggedIn$ of type Observable<boolean>.

BaseSiteState

The interface BaseSiteState has now a new required property entities: BaseSiteEntities.

UserService

  • Method loadOrderList of UserService also loads replenishment orders when the url contains a replenishment code.

UserOrderService

  • Method getTitles of UserOrderService will load titles when it is empty.

Checkout selectors

  • Selector getCheckoutOrderDetails changed its MemoizedSelector return types. Instead of Order now we get union Order | ReplenishmentOrder.

ProductListComponentService

  • Property sub was removed from ProductListComponentService. It is no longer used.
  • Method setQuery was removed from ProductListComponentService. It is no longer used.
  • Method viewPage was removed from ProductListComponentService. It is no longer used.

ProductCarouselService

The following functions have been removed from the component:

  • getProductReferences()

CheckoutService

  • Method placeOrder of CheckoutService now requires termsChecked parameter.
  • Method getOrderDetails changed its return type from Observable<Order> to Observable<Order | ReplenishmentOrder>.

AnonymousConsentTemplatesAdapter

  • Method loadAnonymousConsents of AnonymousConsentTemplatesAdapter is no longer optional.

AnonymousConsentTemplatesConnector

  • Method loadAnonymousConsents of AnonymousConsentTemplatesConnector changed the return type from Observable<AnonymousConsent[] | null> to Observable<AnonymousConsent[]>,

SplitViewComponent

  • The property subscription of SplitViewComponent is no longer protected. It’s private now.

Automated Migrations for Version 3

  • CheckoutProgressMobileBottomComponent no longer uses CheckoutConfig, RoutingService and RoutingConfigService. These services usage was replaced with the corresponding methods from CheckoutStepService. This service needs to be provided to CheckoutProgressMobileBottomComponent.
  • CheckoutAuthGuard no longer uses RoutingService. This service usage was replaced with the corresponding methods from Router and SemanticPathService. Additional services UserService and GlobalMessageService also need to be provided to CheckoutAuthGuard.
  • CheckoutProgressMobileTopComponent no longer uses CheckoutConfig, RoutingService and RoutingConfigService. These services usage was replaced with the corresponding methods from CheckoutStepService. This service needs to be provided to CheckoutProgressMobileTopComponent.
  • CheckoutProgressComponent no longer uses CheckoutConfig, RoutingService and RoutingConfigService. These services usage was replaced with the corresponding methods form CheckoutStepService. This service needs to be provided to CheckoutProgressComponent.
  • DeliveryModeSetGuard no longer uses CheckoutConfigService. This service usage was replaced with the corresponding methods form CheckoutStepService. This service needs to be provided to DeliveryModeSetGuard.
  • DeliveryModeComponent no longer uses RoutingService. This service usage was replaced with the corresponding methods form CheckoutStepService. This service needs to be provided to DeliveryModeComponent.
  • LoginFormComponent no longer uses ActivatedRoute, CheckoutConfigService and AuthRedirectService. The logic using these services was moved to a different component.
  • OrderDetailShippingComponent no longer uses TranslationService. The logic using these services was moved to OrderDetailShippingComponent.
  • PaymentDetailsSetGuard no longer uses CheckoutConfigService. This service usage was replaced with the corresponding methods form CheckoutStepService. This service needs to be provided to PaymentDetailsSetGuard.
  • PaymentMethodComponent no longer uses CheckoutConfigService and RoutingService. These services usage was replaced with the corresponding methods form CheckoutStepService. This service needs to be provided to PaymentMethodComponent.
  • ReviewSubmitComponent no longer uses CheckoutConfigService. This service usage was replaced with the corresponding methods form CheckoutStepService. In addition, PaymentTypeService, CheckoutCostCenterService and UserCostCenterService need to be provided to ReviewSubmitComponent.
  • ShippingAddressSetGuard no longer uses CheckoutConfigService. This service usage was replaced with the corresponding methods form CheckoutStepService. This service needs to be provided to ShippingAddressSetGuard.
  • ShippingAddressComponent no longer uses CheckoutConfigService and RoutingService. These services usage was replaced with the corresponding methods form CheckoutStepService. This service needs to be provided to ShippingAddressComponent.
  • MultiCartService now requires the additional provider UserIdService.
  • PageSlotComponent no longer uses CmsComponentsService. This service usage was replaces with the PageSlotService.
  • ForbiddenHandler now uses GlobalMessageService, AuthService, OccEndpointsService.
  • CheckoutPaymentService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService.
  • CheckoutService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService.
  • CustomerCouponService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService.
  • OrderReturnRequestService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService.
  • UserAddressService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService.
  • UserConsentService now also requires UserIdService.
  • UserInterestsService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService.
  • UserNotificationPreferenceService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService.
  • UserOrderService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService. Now also requires RoutingService.
  • UserPaymentService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService.
  • UserService no longer uses AuthService. This service usage was replaced with the corresponding methods from UserIdService.
  • ActiveCartService no longer uses AuthService. This service usage was replaces with the UserIdService.
  • CartVoucherService no longer uses AuthService. This service usage was replaces with the UserIdService.
  • SelectiveCartService no longer uses AuthService. This service usage was replaces with the UserIdService.
  • WishListService no longer uses AuthService. This service usage was replaces with the UserIdService.
  • CheckoutDeliveryService no longer uses AuthService. This service usage was replaces with the UserIdService.
  • UnauthorizedErrorHandler has been removed.
  • StarRatingComponent no longer uses ElementRef and Renderer2.
  • ProductCarouselService no longer uses ProductReferenceService.
  • NotCheckoutAuthGuard no longer uses RoutingService. This service usage was replaced with the corresponding methods from SemanticPathService and Router.
  • StoreFinderSearchConfig has been removed. SearchConfig should be used instead.
  • ForgotPasswordComponent now also requires AuthConfigService.
  • OrderHistoryComponent now also requires UserReplenishmentOrderService.
  • OrderReturnGuard no longer uses RoutingService. This service usage was replaced with the corresponding methods from Router and SemanticPathService.
  • OrderCancellationGuard no longer uses RoutingService. This service usage was replaced with the corresponding methods from Router and SemanticPathService.
  • OutletRefDirective no longer uses FeatureConfigService.
  • OutletService no longer uses FeatureConfigService.
  • RoutingService now also requires RoutingParamsService.
  • TOKEN_REVOCATION_HEADER has been removed.
  • JsonLdScriptFactory now also requires SeoConfig.
  • LogoutGuard no longer uses RoutingService. This service usage was replaced with the corresponding methods from Router.
  • ProductVariantGuard no longer uses RoutingService. This service usage was replaced with the corresponding methods from Router and SemanticPathService.
  • FeatureModulesService no longer has getInjectors method.
  • CmsComponentsService no longer has getInjectors method.
  • ViewComponent now also requires ChangeDetectorRef.
  • SplitViewDeactivateGuard has been removed.
  • FeatureModulesService no longer uses Compiler. Newly added method getModule does not need it anymore.
  • FeatureModulesService no longer uses Injector. Newly added method getModule does not need it anymore.
  • FeatureModulesService now uses LazyModulesService.
  • JsonLdProductReviewBuilder now uses SeoConfig.
  • RegisterComponent now uses AuthConfigService.
  • SplitViewComponent now also requires BreakpointService and ElementRef.
  • CheckoutGuard now also requires CheckoutStepService.
  • OrderConfirmationOverviewComponent no longer uses TranslationService. The logic using this service was moved to the OrderOverviewComponent.

總結

以上是生活随笔為你收集整理的SAP Spartacus 3.0 的一些变化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产破处在线视频 | 在线观看www91 | 日韩视频一二三区 | 99色在线观看视频 | 8090yy亚洲精品久久 | 日韩免费电影网站 | 国产va精品免费观看 | 日韩成人精品一区二区 | 国产一卡久久电影永久 | 国产精品自产拍在线观看蜜 | 亚州中文av | 国产欧美精品一区二区三区四区 | 久久久色| 日本韩国精品一区二区在线观看 | 免费观看一级 | 国产91成人在在线播放 | 国产对白av| 久久久影片 | 色爽网站 | 亚洲午夜小视频 | 精品成人免费 | 久久看免费视频 | 午夜精品福利在线 | 亚洲视频综合 | 久久高清国产视频 | 国产精品亚洲综合久久 | 精品久久电影 | 欧美一区三区四区 | 狠狠操狠狠操 | 成年人免费在线观看网站 | 成人免费一区二区三区在线观看 | 免费a视频 | 丁香花在线视频观看免费 | 天天爽天天做 | 久草新在线| 蜜臀久久99精品久久久久久网站 | 国产精品久久久久久久久软件 | 亚洲第一成网站 | 三级黄在线 | 久久欧洲视频 | 手机在线免费av | 久久精品日本啪啪涩涩 | 成人在线网站观看 | 久久精品4 | 国产精品国产亚洲精品看不卡 | 一区二区三区电影 | 午夜久久福利 | 亚洲国产精品第一区二区 | 成人免费91 | 四虎在线免费观看视频 | 欧美日韩一区二区三区免费视频 | 中文字幕中文字幕中文字幕 | 久久高清毛片 | 黄色1级毛片 | 黄色小网站在线观看 | 久久字幕 | 91超碰免费在线 | 国产在线观看你懂得 | 亚洲美女精品 | 999久久久免费精品国产 | 日韩成人中文字幕 | 国产精品毛片一区二区三区 | 国产精品一级在线 | 天天干夜夜擦 | 黄色av电影 | 国产精品福利久久久 | av福利免费 | 在线观看精品国产 | 久久久精品午夜 | av免费高清观看 | 亚洲综合小说电影qvod | 日韩在线视频观看免费 | 一区二区三区不卡在线 | 人人讲 | 亚洲成人精品国产 | 最新色站 | 久久艹在线观看 | 精品在线一区二区三区 | 国产日韩精品一区二区在线观看播放 | 日韩亚洲在线观看 | 日本女人在线观看 | 亚洲视频aaa | 久草爱视频 | 亚洲国产高清在线观看视频 | 精品国产一二三四区 | 久久免费福利视频 | 日韩有码网站 | 亚洲精品九九 | 一区二区三区四区五区在线 | 欧美 亚洲 另类 激情 另类 | 日韩有码第一页 | 亚洲区精品视频 | 久久国产精品一区二区三区 | 久久成人国产精品免费软件 | 国产热re99久久6国产精品 | 国产精品午夜久久久久久99热 | 国产福利91精品一区 | 国产精品久久久免费看 | 国产成人精品久久久久蜜臀 | 在线91播放 | 亚洲欧美va | 992tv又爽又黄的免费视频 | 香蕉视频免费在线播放 | 日日干天夜夜 | 国产自制av | 国产99久久久国产精品免费看 | 亚洲热久久| zzijzzij亚洲日本少妇熟睡 | 中文字幕在线人 | 91精品啪 | 免费精品国产 | 国语麻豆 | www.在线观看av | 日韩av成人在线观看 | 一区二区视频在线观看免费 | 天天射天天舔天天干 | 国产一级黄色片免费看 | 日本最新中文字幕 | 国产精品久久久久毛片大屁完整版 | 亚洲精品视频在线观看免费视频 | 成人午夜片av在线看 | 伊人伊成久久人综合网站 | 久久久久久久久久网站 | 黄色视屏免费在线观看 | 免费高清国产 | 丝袜美女在线观看 | 最新av在线播放 | 欧美日韩久久不卡 | 欧美日韩不卡一区二区 | 久久久久 | 欧美精品小视频 | 啪啪小视频网站 | 在线视频日韩 | 国产高清专区 | 色在线亚洲| 欧美成人精品三级在线观看播放 | 欧美日韩在线免费观看 | 免费观看国产精品 | 1024手机看片国产 | 色com网| 999久久久精品视频 日韩高清www | 国产老熟 | 中文字幕亚洲欧美 | 久久人人爽人人爽人人片av软件 | 国产不卡精品视频 | 娇妻呻吟一区二区三区 | 麻豆视频在线 | 在线导航av | 欧美日韩国产一区 | 精久久久久 | 视频高清| 在线看片成人 | 国产成人一二三 | 在线观看蜜桃视频 | 久草在线视频中文 | 欧美 日韩 视频 | 人人爱天天操 | 四虎影院在线观看av | 超碰人人草人人 | 国产精品 999| 国产精品免费久久久久影院仙踪林 | 午夜美女网站 | 欧美大片www | 久久久精品午夜 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 99视频国产在线 | 狠狠干我 | 97超碰人人澡| 欧美大片在线看免费观看 | 日韩v在线 | 亚洲精品久久久久久久蜜桃 | 中文字幕亚洲欧美日韩2019 | 欧美日韩在线免费观看视频 | 91色在线观看视频 | 亚洲精品视频网 | 97视频在线 | 国产欧美精品在线观看 | 人人爱人人添 | 黄色影院在线播放 | 亚洲天堂网站 | 欧美性色综合 | 蜜臀久久99精品久久久无需会员 | 亚洲激情精品 | 亚洲成人国产精品 | 亚洲精品中文在线资源 | 在线国产激情视频 | 五月婷丁香网 | 91精品在线免费视频 | 久久久久久久久久久久久久av | 综合在线观看色 | av女优中文字幕在线观看 | 久久99深爱久久99精品 | 99久久精品国产一区二区成人 | 成人在线免费视频 | 00av视频 | 伊人天堂av | 国产97av | 国产精品久久免费看 | 国产精品热| 欧美综合国产 | 天天操天天能 | 91精品久久久久 | 欧美日韩不卡一区二区 | 日韩在线| 国产激情小视频在线观看 | 亚洲黄色片| 一区二区三区 中文字幕 | 国产色婷婷精品综合在线手机播放 | 日韩在线免费观看视频 | 在线视频 区 | 国语精品久久 | 久热色超碰 | 久久美女高清视频 | 永久精品视频 | 天天干国产| 成人午夜影院在线观看 | 成人久久久久 | 日韩久久视频 | 国产精品 视频 | 最新中文在线视频 | 日本黄色a级大片 | 91视频国产免费 | 91视频在线免费下载 | 欧美在线视频一区二区 | 中文字幕在线影院 | 精品人妖videos欧美人妖 | 欧美激情综合五月色丁香 | 日本久久久久久久久 | 综合网伊人 | 蜜臀av在线一区二区三区 | 精品久久久一区二区 | 九九涩涩av台湾日本热热 | 九七视频在线观看 | 国产黄在线观看 | 日韩精品不卡在线 | 99这里只有| 国产aaa免费视频 | 精品在线二区 | 亚洲国产中文字幕在线 | 在线欧美小视频 | 国产在线高清精品 | 中文字幕在线观看亚洲 | 天天操夜夜爱 | 精品超碰 | 在线观看av国产 | 国产黑丝一区二区 | 九九久久国产 | 免费看黄20分钟 | 国产黄a三级三级 | 亚洲欧美视频网站 | 午夜av片| 91精品第一页| 成人免费视频a | 免费观看福利视频 | 在线国产中文字幕 | 99精品视频一区二区 | 日韩二区精品 | 成人a级大片 | 亚洲视频播放 | 成人免费视频网 | 中文字幕av免费 | 这里只有精彩视频 | 精品国产电影 | 久久tv | 久久免费看a级毛毛片 | 久久免费视频8 | 色视频国产直接看 | 超碰在线观看97 | 免费看的黄色 | 黄色高清视频在线观看 | 国产精品久久99综合免费观看尤物 | 91在线操 | 久草观看 | 亚洲激情在线观看 | 97国产超碰 | 亚洲免费精品一区二区 | 久久久综合 | 91麻豆免费看 | 中文字幕av免费观看 | 国产日韩视频在线播放 | 久久久亚洲国产精品麻豆综合天堂 | 国产一区在线视频播放 | 伊人中文在线 | 精品自拍sae8—视频 | 福利视频午夜 | 一级黄色在线视频 | 在线a视频免费观看 | 美女免费电影 | 午夜久久久久久久久久久 | 欧美污在线观看 | 久久国产免 | 精品国产一区二区三区四 | 麻豆 videos | 欧美精品久久人人躁人人爽 | 亚洲一区二区精品在线 | 亚洲国产三级在线 | 色91在线| 麻豆视频免费网站 | 狠狠伊人 | 日精品在线观看 | 国产精品小视频网站 | 99精品在线视频观看 | 久久久久美女 | 国产精品成人一区 | 一区二区三区四区影院 | 亚洲国产精品视频在线观看 | 一区二区视频电影在线观看 | 黄色小网站在线观看 | 国产一卡在线 | 成人观看视频 | 日韩一级电影在线观看 | 四虎国产精品成人免费影视 | 免费男女羞羞的视频网站中文字幕 | 丝袜美腿亚洲综合 | 国产精品一区二区三区久久 | 久久久久综合精品福利啪啪 | 女人18精品一区二区三区 | 国产一级淫片在线观看 | 五月天视频网站 | 激情婷婷综合网 | 西西444www| 天天操夜夜操夜夜操 | 日本精品视频网站 | 欧美日韩国产网站 | 久久精品8 | 毛片基地黄久久久久久天堂 | 免费合欢视频成人app | 黄色a在线| 91av亚洲| 国产日韩欧美在线观看视频 | av网站地址| 黄污视频网站大全 | 中文字幕资源在线观看 | 日日射天天射 | 四虎永久免费网站 | 国产va饥渴难耐女保洁员在线观看 | 亚洲va欧美va人人爽春色影视 | 亚洲涩涩一区 | 国产精品免费在线观看视频 | 91在线你懂的 | 久久在线免费 | 亚洲免费在线看 | 国产成人精品亚洲a | 激情综合网五月婷婷 | 日本性视频 | 久久伦理电影网 | 日本成人a | 黄色在线观看www | 色国产精品一区在线观看 | 欧美另类xxx| 欧美一二区视频 | 成人a视频在线观看 | 特级西西人体444是什么意思 | 午夜久久久久 | 欧美激情另类 | 中文字幕视频网站 | 国产视频一 | 国产黄视频在线观看 | 伊人网站| wwwwwww黄 | 在线欧美a | 免费激情网 | 国产精品久久久久久久久软件 | 日韩欧美极品 | 国产精品成人一区二区三区吃奶 | 成人a级黄色片 | 五月天堂色 | 国产伦精品一区二区三区… | 国产中出在线观看 | 亚洲欧洲中文日韩久久av乱码 | www.狠狠操.com | 88av网站| 国产精品久久久久久久久毛片 | 婷婷综合av| 在线有码中文字幕 | 亚洲视频 在线观看 | 丁香久久综合 | 久久精品日产第一区二区三区乱码 | 免费视频久久久久 | 在线 国产一区 | 久久久久免费精品国产 | www五月天com | 日日操网 | 人人射人人爽 | 成人免费视频播放 | 国产精品久久av | 成年人视频免费在线 | 亚洲欧美日韩国产一区二区三区 | 欧美专区国产专区 | 最新高清无码专区 | 狠狠干夜夜 | 97精产国品一二三产区在线 | 在线观看深夜视频 | 99在线视频观看 | 日本在线观看一区二区三区 | 欧美精品久久久久a | 欧美成人影音 | 99精品偷拍视频一区二区三区 | 91成人精品一区在线播放69 | 日韩成人一级大片 | 国产不卡精品视频 | 国产在线观看h | 丝袜av网站 | 精品91久久久久 | 日韩三级免费观看 | 日韩精品视频免费看 | 免费成人av网站 | 伊人天堂网 | 丝袜制服天堂 | 亚洲精品乱码久久久久久蜜桃不爽 | av理论电影 | 黄色网www | 久久国产一区二区 | 亚洲国产精品一区二区久久hs | 亚洲成年人av | 天天综合在线观看 | 精品久久免费看 | free,性欧美 九九交易行官网 | 四虎影视成人永久免费观看视频 | 日日干激情五月 | 国产麻豆剧果冻传媒视频播放量 | 色瓜 | 久久久高清视频 | 久久精品aaa | 黄色在线看网站 | 国产成人av在线影院 | 日韩在线观看中文 | 免费观看第二部31集 | 国产一区在线免费观看 | 这里只有精品视频在线 | 国产高清久久 | 天天综合网天天综合色 | 91久久奴性调教 | 久久99精品久久久久久清纯直播 | 日韩欧美国产激情在线播放 | 欧美在线99 | 黄色一级在线观看 | 中文字幕av有码 | 天天射夜夜爽 | 992tv成人免费看片 | av免费福利 | 美女在线观看网站 | www.香蕉 | 91网页版免费观看 | 免费99视频| 国产视频一区二区在线 | a视频在线播放 | 日本高清xxxx | 日韩av免费一区二区 | 成人动漫精品一区二区 | 日韩激情av在线 | 九九久久影视 | www.久热 | 精品二区久久 | 99精品亚洲| 国产黄色在线网站 | 999久久国产 | 国内精品免费久久影院 | 久久久www成人免费精品张筱雨 | 开心色婷婷 | 在线免费观看不卡av | 成年人电影毛片 | 午夜精品久久久久99热app | 伊人中文网 | av高清一区二区三区 | 成人av中文字幕在线观看 | 日韩大片免费观看 | 国产成人久久av免费高清密臂 | 午夜精品av | 在线观看亚洲a | 中文字幕观看av | 久草在线视频在线观看 | 91麻豆精品国产91久久久久久久久 | 色美女在线 | 五月天天天操 | 日韩二三区 | 亚洲永久av | 日韩精品视频在线观看网址 | 日韩av女优视频 | 久久99视频 | 国产特级毛片aaaaaa | 亚洲我射av| 国产麻豆精品传媒av国产下载 | 色综合 久久精品 | 国产专区欧美专区 | 天天操天天色天天 | 狠狠躁日日躁 | 亚州国产精品久久久 | 一区二区成人国产精品 | www..com毛片 | 9999在线| 丁香六月综合网 | 亚洲天堂精品视频 | 99视频这里有精品 | 色婷婷激情 | 欧美91视频 | 国产中文字幕在线视频 | 国产在线高清精品 | 日本激情中文字幕 | 久久久免费精品国产一区二区 | 91传媒激情理伦片 | 综合网成人 | 免费人成在线观看 | 日韩av图片 | 天天干夜夜夜操天 | 欧美色图亚洲图片 | 日韩欧美国产精品 | 久久久国产一区二区三区四区小说 | 国产精品久久久久一区二区三区 | 亚洲精品婷婷 | 500部大龄熟乱视频使用方法 | 国产99久久久精品 | 亚洲精品午夜久久久久久久久久久 | 中文字幕日韩有码 | 黄色在线观看www | 国产中文字幕在线看 | 久久精品免费看 | 久久免费99精品久久久久久 | 在线免费观看黄 | 亚洲一二视频 | 天堂v中文| 美女视频久久久 | 免费在线观看av的网站 | 欧洲视频一区 | 免费国产亚洲视频 | 欧美激情精品一区 | 97超在线视频 | 久久精品一区二 | 国产成人亚洲在线电影 | 欧美激情综合五月 | 五月天色综合 | 婷婷久久综合网 | 亚州精品在线视频 | 天天干天天操天天爱 | 久久手机视频 | 一区二区三区免费在线观看视频 | 九七在线视频 | 91av在线免费观看 | 欧美日韩国产在线精品 | 一区二区三区在线播放 | 国产精品免费久久久久影院仙踪林 | 日韩欧美高清 | 久久成人精品电影 | 中文字幕在线观看一区二区 | 久久国语露脸国产精品电影 | 亚洲欧洲美洲av | 国产精品欧美精品 | 日韩精品一区二区三区第95 | 黄色片视频在线观看 | 国产剧情一区 | 日韩激情网 | 精品久久久久久久久久久久 | 国产精品一区二区三区在线播放 | 久久国产精品一区二区三区 | 中文字幕欧美日韩va免费视频 | 亚洲一区二区视频 | 91福利在线导航 | 亚洲国产av精品毛片鲁大师 | 日韩有色| 高清av网 | 久久精品一区二区三 | 91在线播放国产 | 一本一本久久a久久精品牛牛影视 | 国产婷婷精品av在线 | 婷婷免费在线视频 | 久久99热这里只有精品国产 | 中文字幕在线观看一区二区 | 精品一区二区三区四区在线 | 久热国产视频 | 天堂av影院 | 亚州激情视频 | 国产精品99久久久久久武松影视 | 人人爱人人做人人爽 | 97色se| 久久久国产高清 | 国产免费av一区二区三区 | 天天色天天射天天干 | 婷婷六月中文字幕 | 97精品国产97久久久久久免费 | 国产一区在线看 | 99爱视频 | 色中色亚洲 | 99亚洲精品在线 | 97视频在线观看成人 | 国产精品久久久777 成人手机在线视频 | 国产男女爽爽爽免费视频 | 国产精品一区二区62 | 夜色资源站国产www在线视频 | 国产精品手机视频 | 欧美欧美| 国产精品久久久久久久久软件 | 天天做天天爱夜夜爽 | 国产又粗又长又硬免费视频 | 国产一区二区精品久久91 | 一级一片免费视频 | 亚洲国产精品影院 | 国产在线免费观看 | 91在线中文 | 国产精品亚洲片夜色在线 | 成人黄色电影在线 | 四虎影视成人永久免费观看亚洲欧美 | 久久深夜 | 在线观看视频国产一区 | 国产日产精品一区二区三区四区 | 色婷婷六月天 | 日韩av不卡在线播放 | 视频在线观看国产 | 久草视频国产 | 久久久久久免费 | 国产精品国内免费一区二区三区 | 91禁看片 | 欧美午夜理伦三级在线观看 | 日韩免费不卡视频 | 久久久久久久久久久精 | 久热精品国产 | 一区二区三区在线视频观看58 | 色99网| 4p变态网欧美系列 | 久久99亚洲精品 | 日韩电影在线观看一区 | 天天干天天拍天天操 | 免费日p视频| 亚洲午夜在线视频 | 亚洲精品在线免费 | 毛片www| 久久久久精 | www.五月天 | 91精选在线 | 欧美日韩国产一区二区三区在线观看 | 国产视频精品久久 | 91精品久久久久久久91蜜桃 | 99视频一区 | 久草视频在线免费看 | 国产精品丝袜久久久久久久不卡 | 亚洲区视频在线 | 精品久久久久久久久亚洲 | 99精品欧美一区二区蜜桃免费 | 麻豆视频大全 | 婷婷综合导航 | 成人久久免费 | 99国产精品一区 | 久久99深爱久久99精品 | 91精品久久久久久粉嫩 | 日韩资源在线播放 | 在线精品一区二区 | 91视频免费播放 | 日韩在线观看第一页 | 黄网站免费大全入口 | 亚洲香蕉在线观看 | a在线免费观看视频 | 国产成人1区 | 一区二区三区四区五区在线 | 五月婷婷香蕉 | 久久国产精品二国产精品中国洋人 | 亚洲国产美女久久久久 | 国产视频日韩 | 日日夜夜综合 | 日韩成人在线免费观看 | 中文字幕在线观看完整 | 欧美日韩一区三区 | 免费色婷婷 | 国产精品欧美日韩在线观看 | 国产精品成人a免费观看 | 中文字幕xxxx | 欧美日韩视频在线一区 | 成人在线视频免费 | 99在线精品观看 | 国产福利免费看 | 高清国产午夜精品久久久久久 | 久久综合精品国产一区二区三区 | 在线免费日韩 | 欧美贵妇性狂欢 | 日韩极品视频在线观看 | 在线免费黄色片 | 国产99久久精品 | japanesexxxxfreehd乱熟 | 手机av电影在线观看 | 久久精品视频在线播放 | 亚洲成人影音 | 久久蜜臀一区二区三区av | 91一区一区三区 | 黄色在线视频网址 | 亚洲另类交 | 日本在线观看中文字幕无线观看 | 国内成人精品2018免费看 | 99久久99久久精品 | 久久香蕉国产精品麻豆粉嫩av | 国产精品欧美日韩 | 免费成人av网站 | 久久久久久久久久久免费视频 | 亚洲国产成人久久综合 | 国产美女主播精品一区二区三区 | 91豆花在线 | 在线观看亚洲精品视频 | 天天综合入口 | 黄色免费观看网址 | 亚洲精品影院在线观看 | 亚洲精品免费视频 | wwwww.国产| 97福利| 五月综合婷 | 国产亚洲精品久久久久久久久久 | 国产资源免费 | 中文字幕在线有码 | 日本91在线 | 亚洲a在线观看 | 在线观看视频在线观看 | 狠狠躁日日躁 | 精品一区电影 | 伊人www22综合色 | 奇米777777| 国产精品一区二区av麻豆 | 精品国内自产拍在线观看视频 | 天天综合网入口 | 三级av片| 欧美性另类 | 日韩一区二区三区免费电影 | 五月婷婷综合在线观看 | 97精品久久| 国产精品九九久久久久久久 | 精品国产免费久久 | 在线看黄网站 | 韩国精品在线 | 欧美精品免费一区二区 | 天天爱天天草 | 一区在线观看 | 国产99久久九九精品免费 | 丁香视频五月 | 麻豆成人网| 日批视频国产 | 中文字幕在线字幕中文 | 成人a大片| 日本婷婷色 | 久产久精国产品 | 免费日韩一区二区 | 在线免费观看成人 | 人人干人人干人人干 | 91精品欧美| 97人人射 | 成年人在线观看网站 | 中文字幕在线观看网站 | 国产午夜精品久久久久久久久久 | 成年人免费观看国产 | 精品福利在线视频 | 久久精品网址 | 五月激情视频 | 日韩在线观看中文 | 五月亚洲综合 | 成年人在线观看视频免费 | 特级xxxxx欧美 | av在线电影网站 | 久久久久国产精品免费 | 亚洲最新av网址 | 17videosex性欧美 | 超碰97国产精品人人cao | 亚洲精品在线二区 | 在线视频99 | 亚洲国产精品一区二区久久hs | 日本爱爱片 | 婷婷伊人五月天 | 美女黄视频免费 | 精品国产一二三 | 美女福利视频一区二区 | 91亚洲影院 | 高清视频一区二区三区 | 日日操夜夜操狠狠操 | 波多野结衣在线观看一区 | 99视频在线精品国自产拍免费观看 | 在线观看黄色免费视频 | 国产v亚洲v | 欧美日韩国产欧美 | 黄色av三级在线 | 天天综合中文 | 久久视频在线观看免费 | 99久久久久久久 | 日本在线观看中文字幕 | 国产成人资源 | 久久成人综合 | 亚洲精品国产精品国产 | 在线免费视频你懂的 | a在线播放 | 免费在线观看黄网站 | 国内精品久久久久久久久久久 | 日韩在线电影一区二区 | 国产黄色电影 | 日韩有码在线播放 | 免费日p视频 | 美女久久久久久 | 日本巨乳在线 | 色婷婷久久久综合中文字幕 | 日韩视频一二三区 | 日韩久久精品一区 | 91色影院 | 成人欧美一区二区三区在线观看 | 日韩在线理论 | 日韩免费在线视频 | 嫩草av在线 | 久久综合五月 | 国产精品入口久久 | 一区二区三区精品在线视频 | 免费的成人av | 国产一区二区三区高清播放 | 天天干干| 在线观看aaa | 五月天伊人网 | 99精品视频网站 | 在线黄色免费av | 日本中文字幕久久 | 在线视频18在线视频4k | 亚洲欧洲国产视频 | 香蕉在线观看视频 | 久久少妇免费视频 | 国产午夜不卡 | 久草热久草视频 | 亚洲电影图片小说 | 91在线色| 久久一线 | 久久久久久久久久影院 | 操操操日日 | 日韩亚洲欧美中文字幕 | 国产1区2区 | 国产小视频国产精品 | 成人亚洲精品久久久久 | 在线观看av网 | 久久成人免费电影 | 伊人av综合 | 久久亚洲视频 | 天天综合天天综合 | 亚洲精品乱码久久久久久久久久 | www.日韩免费| 日韩中文字幕电影 | 看全黄大色黄大片 | 九九久久影视 | 久久夜色电影 | 国产精品美女久久久免费 | 麻豆91在线 | 一区二区三区在线免费观看视频 | 2021久久 | 国产精品二区三区 | 99精品在线 | 一级片视频免费观看 | 久久中文字幕导航 | 免费h精品视频在线播放 | 91在线小视频 | 一区二区视频播放 | 91精品国产成人 | 成年人视频免费在线播放 | 精品久久毛片 | 中文字幕九九 | 少妇精69xxtheporn| 亚洲欧美视频在线观看 | 超碰人人草 | 99精品国产视频 | 午夜精品久久 | 97超碰超碰久久福利超碰 | 日本中文一级片 | 国产高清av免费在线观看 | 狠狠激情中文字幕 | 久久成人精品电影 | 亚洲人成在 | 国内丰满少妇猛烈精品播 | 欧美日韩在线观看一区二区三区 | 久久久五月天 | 中文在线亚洲 | 欧美一级黄大片 | 国产成人久久精品77777综合 | 91片黄在线观 | 久久精品这里热有精品 | 国产又粗又猛又黄 | 国产a级免费 | 国产精品永久免费视频 | 国产在线黄 | 国产婷婷色| 91.麻豆视频 | 中文永久字幕 | 伊人国产视频 | 欧美男男激情videos | 国产电影黄色av | 91热视频| 久久蜜臀av | 国产一级片直播 | 天天做日日爱夜夜爽 | 中文字幕成人一区 | 2022中文字幕在线观看 | 激情黄色av | 狠狠色丁香婷婷综合久久片 | 黄色网免费| 99久久精品无码一区二区毛片 | 激情视频网页 | 亚洲视频2| 狠狠躁夜夜躁人人爽视频 | av网址aaa| 国产一卡二卡四卡国 | 99爱视频在线观看 | 最近中文字幕在线播放 | 色综合www | 日韩中文在线电影 | 亚洲精品无 | 国产一二区在线观看 | 国产剧在线观看片 | 亚洲在线视频网站 | 激情久久一区二区三区 | 亚洲日本va午夜在线电影 | 久99久中文字幕在线 | 成人免费在线观看av | 国产最新在线视频 | 欧美精品久久人人躁人人爽 | 涩av在线 | 国产成人1区 | 免费在线播放黄色 | 国产精品自产拍在线观看中文 | 91国内在线 | 18久久久久久 | 成人黄色大片在线免费观看 | 欧美热久久 | 精品国产一区二区三区久久久蜜臀 | 久草免费资源 | 欧美日韩免费观看一区=区三区 | 中文字幕国产精品 | 国产精品一区二区果冻传媒 | 国模精品在线 | 91在线视频播放 | 91麻豆精品国产91久久久久久 | 日本精品视频网站 | 91免费在线播放 | 欧美一级电影免费观看 | 粉嫩aⅴ一区二区三区 | 国模精品一区二区三区 | 国产精品麻豆视频 | 中文字幕有码在线播放 | 国产精品白浆视频 | 久久久久女人精品毛片 | 欧美 日韩 国产 中文字幕 | 亚洲精品久久久久久中文传媒 | 国产精品毛片完整版 | 日韩在线视频线视频免费网站 | 日本视频久久久 | 国产成人精品午夜在线播放 | 最新久久久 | 日韩精品第1页 | 又黄又爽又刺激视频 | 激情导航 | 亚洲欧美日韩国产精品一区午夜 | 久久国产精品99精国产 | 国产精品美女视频 | 国产在线精品一区二区三区 | 国产欧美三级 | 国产精品久久久久久久久久新婚 | 99夜色| 91精品国产乱码久久 | 在线免费中文字幕 | 综合色播 | 青青草视频精品 | 91视频免费| 免费看的黄网站软件 | 激情网站网址 | 91高清在线| 日日夜夜中文字幕 | 在线观看小视频 | 一级成人在线 | a黄色一级 | 国产精品不卡在线观看 | 国产99中文字幕 | 国产精品99久久久精品 | 国内精品视频久久 | 一区二区在线影院 | 伊人国产视频 | 久久久www成人免费毛片 | 日韩理论电影在线观看 | 国外av在线 | 中文字幕在线色 | 九草在线视频 | 欧美成人一区二区 | 97视频播放| 麻豆精品在线 | 天天干天天在线 | 一区二区三区福利 | 久久精品亚洲一区二区三区观看模式 | 婷婷久月 | 综合久久精品 | 成人精品视频 | 亚洲精品国产第一综合99久久 | 成人午夜免费福利 | 九九久久精品 | 欧美亚洲专区 | 在线看的av网站 | av在线免费网站 | 欧美日韩国语 | 久久久一本精品99久久精品66 | 91精品老司机久久一区啪 | 久久国产品 | 久久久毛片 | 久久伦理网 | 国产专区在线视频 | 久久国产精品一二三区 | 国产91对白在线播 | 欧美日韩中文另类 | 韩日精品视频 |