From aa6a86c889e5582b50a8e4af09d69fbd9b4a3eb8 Mon Sep 17 00:00:00 2001 From: Christoph Hinssen <33626130+ChristophHi@users.noreply.github.com> Date: Tue, 18 Jun 2024 12:12:23 +0200 Subject: [PATCH 01/23] chore: deprecate obsolete CPQ entities and remove test (#18971) The removed test refers to a class that cannot be used anymore due to a change in the CPQ DC setup. Only the commerce based CPQ orchestration is supported. --- .../default-configurator-core.config.ts | 2 +- .../rest/cpq-configurator-endpoint.config.ts | 5 + .../rest/cpq-configurator-endpoint.service.ts | 6 +- .../cpq/rest/cpq-configurator-rest.adapter.ts | 6 +- .../cpq/rest/cpq-configurator-rest.module.ts | 6 +- .../cpq/rest/cpq-configurator-rest.service.ts | 6 +- ...efault-cpq-configurator-endpoint.config.ts | 6 +- .../cpq/interceptor/cpq-access-data.models.ts | 4 + .../interceptor/cpq-access-loader.service.ts | 6 +- .../cpq-access-storage.service.spec.ts | 358 ------------------ .../interceptor/cpq-access-storage.service.ts | 6 +- .../cpq-configurator-auth.config.ts | 6 +- .../cpq-configurator-interceptor.module.ts | 6 +- .../cpq-configurator-rest.interceptor.ts | 5 + .../default-cpq-configurator-auth.config.ts | 6 +- 15 files changed, 65 insertions(+), 369 deletions(-) delete mode 100644 feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-storage.service.spec.ts diff --git a/feature-libs/product-configurator/rulebased/core/config/default-configurator-core.config.ts b/feature-libs/product-configurator/rulebased/core/config/default-configurator-core.config.ts index a9cca1e1169..c9f09206911 100644 --- a/feature-libs/product-configurator/rulebased/core/config/default-configurator-core.config.ts +++ b/feature-libs/product-configurator/rulebased/core/config/default-configurator-core.config.ts @@ -9,6 +9,6 @@ import { ConfiguratorCoreConfig } from './configurator-core.config'; export const defaultConfiguratorCoreConfig: ConfiguratorCoreConfig = { productConfigurator: { enableVariantSearch: false, - cpqOverOcc: false, + cpqOverOcc: true, }, }; diff --git a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-endpoint.config.ts b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-endpoint.config.ts index f2ed6468e0f..d6ed657d0a4 100644 --- a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-endpoint.config.ts +++ b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-endpoint.config.ts @@ -7,6 +7,11 @@ import { Injectable } from '@angular/core'; import { Config } from '@spartacus/core'; +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ interface CpqConfiguratorBackendConfig { cpq?: { endpoints: { diff --git a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-endpoint.service.ts b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-endpoint.service.ts index cb6e48b554a..04d70ba79ac 100644 --- a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-endpoint.service.ts +++ b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-endpoint.service.ts @@ -9,7 +9,11 @@ import { Injectable, inject } from '@angular/core'; import { LoggerService, StringTemplate } from '@spartacus/core'; import { MARKER_HEADER_CPQ_CONFIGURATOR } from '@spartacus/product-configurator/rulebased/root'; import { CpqConfiguratorEndpointConfig } from './cpq-configurator-endpoint.config'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ @Injectable({ providedIn: 'root' }) export class CpqConfiguratorEndpointService { protected logger = inject(LoggerService); diff --git a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.adapter.ts b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.adapter.ts index 074b50edbb2..e49d9230829 100644 --- a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.adapter.ts +++ b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.adapter.ts @@ -18,7 +18,11 @@ import { Observable, of } from 'rxjs'; import { map, switchMap } from 'rxjs/operators'; import { CpqConfiguratorOccService } from './../occ/cpq-configurator-occ.service'; import { CpqConfiguratorRestService } from './cpq-configurator-rest.service'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ @Injectable() export class CpqConfiguratorRestAdapter implements RulebasedConfiguratorAdapter diff --git a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.module.ts b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.module.ts index 63aa5a67a7c..d5d9144f7db 100644 --- a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.module.ts +++ b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.module.ts @@ -10,7 +10,11 @@ import { provideDefaultConfig } from '@spartacus/core'; import { RulebasedConfiguratorConnector } from '@spartacus/product-configurator/rulebased'; import { CpqConfiguratorRestAdapter } from './cpq-configurator-rest.adapter'; import { defaultCpqConfiguratorEndpointConfig } from './default-cpq-configurator-endpoint.config'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ @NgModule({ imports: [CommonModule], diff --git a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.service.ts b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.service.ts index 4365db70b49..ea53eea3a96 100644 --- a/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.service.ts +++ b/feature-libs/product-configurator/rulebased/cpq/rest/cpq-configurator-rest.service.ts @@ -18,7 +18,11 @@ import { } from '../common/converters/cpq-configurator.converters'; import { CpqConfiguratorEndpointService } from './cpq-configurator-endpoint.service'; import { Cpq } from '../common/cpq.models'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ @Injectable({ providedIn: 'root' }) export class CpqConfiguratorRestService { constructor( diff --git a/feature-libs/product-configurator/rulebased/cpq/rest/default-cpq-configurator-endpoint.config.ts b/feature-libs/product-configurator/rulebased/cpq/rest/default-cpq-configurator-endpoint.config.ts index 487ac9ca8f2..88e36468013 100644 --- a/feature-libs/product-configurator/rulebased/cpq/rest/default-cpq-configurator-endpoint.config.ts +++ b/feature-libs/product-configurator/rulebased/cpq/rest/default-cpq-configurator-endpoint.config.ts @@ -5,7 +5,11 @@ */ import { CpqConfiguratorEndpointConfig } from './cpq-configurator-endpoint.config'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ export const defaultCpqConfiguratorEndpointConfig: CpqConfiguratorEndpointConfig = { backend: { diff --git a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-data.models.ts b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-data.models.ts index 46c9eaefaea..417af26f2ed 100644 --- a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-data.models.ts +++ b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-data.models.ts @@ -7,6 +7,10 @@ /** * * Authorization data required for communicating with CPQ + * + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. */ export interface CpqAccessData { /** diff --git a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-loader.service.ts b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-loader.service.ts index e83cdab97e5..f8fb233ad96 100644 --- a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-loader.service.ts +++ b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-loader.service.ts @@ -10,7 +10,11 @@ import { OccEndpointsService, UserIdService } from '@spartacus/core'; import { Observable } from 'rxjs'; import { switchMap } from 'rxjs/operators'; import { CpqAccessData } from './cpq-access-data.models'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ @Injectable({ providedIn: 'root' }) export class CpqAccessLoaderService { constructor( diff --git a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-storage.service.spec.ts b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-storage.service.spec.ts deleted file mode 100644 index 591285a6364..00000000000 --- a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-storage.service.spec.ts +++ /dev/null @@ -1,358 +0,0 @@ -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { Type } from '@angular/core'; -import { - discardPeriodicTasks, - fakeAsync, - flush, - TestBed, - tick, - waitForAsync, -} from '@angular/core/testing'; -import { AuthService } from '@spartacus/core'; -import { cold } from 'jasmine-marbles'; -import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; -import { take } from 'rxjs/operators'; -import { CpqAccessData } from './cpq-access-data.models'; -import { CpqAccessLoaderService } from './cpq-access-loader.service'; -import { CpqAccessStorageService } from './cpq-access-storage.service'; -import { CpqConfiguratorAuthConfig } from './cpq-configurator-auth.config'; -import { defaultCpqConfiguratorAuthConfig } from './default-cpq-configurator-auth.config'; -import createSpy = jasmine.createSpy; - -const oneHour: number = 1000 * 60; -const accessData: CpqAccessData = { - accessToken: 'validToken', - endpoint: 'https://cpq', - accessTokenExpirationTime: Date.now() + oneHour, -}; - -const anotherAccessData: CpqAccessData = { - accessToken: 'anotherValidToken', - endpoint: 'https://cpq', - accessTokenExpirationTime: Date.now() + oneHour, -}; -const expiredAccessData: CpqAccessData = { - accessToken: 'expiredToken', - endpoint: 'https://cpq', - accessTokenExpirationTime: Date.now() - oneHour, -}; -const accessDataSoonExpiring: CpqAccessData = { - accessToken: 'validTokenSoonExpiring', - endpoint: 'https://cpq', - accessTokenExpirationTime: 0, -}; -let accessDataObs: Observable; -let authDataObs: Observable; -let accessDataSubject: Subject; -let authDataSubject: Subject; -let httpBehaviour = true; -class CpqAccessLoaderServiceMock { - getCpqAccessData = createSpy().and.callFake(() => { - return httpBehaviour ? accessDataObs.pipe(take(1)) : accessDataObs; - }); -} - -class AuthServiceMock { - isUserLoggedIn = createSpy().and.callFake(() => authDataObs); -} - -const TIME_UNTIL_TOKEN_EXPIRES = 60000; // one minute - -describe('CpqAccessStorageService', () => { - let serviceUnderTest: CpqAccessStorageService; - let cpqAccessLoaderService: CpqAccessLoaderService; - const originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; - - beforeAll(function () { - jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; - }); - - afterAll(function () { - jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout; - }); - - beforeEach( - waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - providers: [ - { - provide: CpqAccessLoaderService, - useClass: CpqAccessLoaderServiceMock, - }, - { - provide: CpqConfiguratorAuthConfig, - useValue: defaultCpqConfiguratorAuthConfig, - }, - { - provide: AuthService, - useClass: AuthServiceMock, - }, - ], - }); - - serviceUnderTest = TestBed.inject( - CpqAccessStorageService as Type - ); - cpqAccessLoaderService = TestBed.inject( - CpqAccessLoaderService as Type - ); - - accessDataSoonExpiring.accessTokenExpirationTime = - Date.now() + TIME_UNTIL_TOKEN_EXPIRES; - - accessDataObs = accessDataSubject = new Subject(); - authDataObs = authDataSubject = new BehaviorSubject(true); - httpBehaviour = true; - }) - ); - - afterEach(() => { - authDataSubject.next(false); // stops the auto pulling of access data - }); - - it('should create service', () => { - expect(serviceUnderTest).toBeDefined(); - }); - - it('should return access data', () => { - accessDataObs = of(accessData); - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBeDefined(); - expect(returnedData.accessToken).toEqual(accessData.accessToken); - expect(returnedData.accessTokenExpirationTime).toEqual( - accessData.accessTokenExpirationTime - ); - expect(returnedData.endpoint).toEqual(accessData.endpoint); - }); - }); - - it('should cache access data', () => { - let counter = 0; - // first request - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBeDefined(); - counter++; - }); - // second request, while first is in progress () - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBeDefined(); - counter++; - }); - - // fulfill first request - accessDataSubject.next(accessData); - - // third request - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBeDefined(); - counter++; - }); - - expect(counter).toBe(3); - }); - - it('should not return access data if token is expired', fakeAsync(() => { - accessDataObs = accessDataSubject = new BehaviorSubject( - expiredAccessData - ); - let hasCpqAccessDataEmitted = false; - serviceUnderTest.getCpqAccessData().subscribe(() => { - hasCpqAccessDataEmitted = true; - }); - discardPeriodicTasks(); - expect(hasCpqAccessDataEmitted).toBe(false); - })); - - it('should do only one additional call when expired token is emitted followed by valid one', fakeAsync(() => { - const subscription = serviceUnderTest.getCpqAccessData().subscribe(); - subscription.add(serviceUnderTest.getCpqAccessData().subscribe()); - subscription.add(serviceUnderTest.getCpqAccessData().subscribe()); - subscription.add(serviceUnderTest.getCpqAccessData().subscribe()); - accessDataSubject.next(expiredAccessData); - accessDataSubject.next(accessData); - - tick(TIME_UNTIL_TOKEN_EXPIRES); - expect(cpqAccessLoaderService.getCpqAccessData).toHaveBeenCalledTimes(2); - subscription.unsubscribe(); - discardPeriodicTasks(); - })); - - it('should accept token that soon expires', (done) => { - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(accessDataSoonExpiring); - done(); - }); - accessDataSubject.next(accessDataSoonExpiring); - }); - - it('should not return emissions with tokens that are not valid at all', () => { - httpBehaviour = false; - accessDataObs = cold('--yxx', { x: accessData, y: expiredAccessData }); - const expectedObs = cold('---xx', { x: accessData }); - expect(serviceUnderTest.getCpqAccessData()).toBeObservable(expectedObs); - }); - - it('should trigger new call if token expires over time', fakeAsync(() => { - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(accessDataSoonExpiring); - }); - accessDataSubject.next(accessDataSoonExpiring); - - tick(TIME_UNTIL_TOKEN_EXPIRES); - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(accessData); - }); - accessDataSubject.next(accessData); - discardPeriodicTasks(); - })); - - it('should use only one publication for multiple observables after cache refresh', fakeAsync(() => { - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(accessDataSoonExpiring); - }); - const existingObs = takeOneCpqAccessData(); - existingObs.subscribe((returnedData) => { - expect(returnedData).toBe(accessDataSoonExpiring); - expect(cpqAccessLoaderService.getCpqAccessData).toHaveBeenCalledTimes(1); - }); - accessDataSubject.next(accessDataSoonExpiring); - - tick(TIME_UNTIL_TOKEN_EXPIRES); - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(accessData); - existingObs.subscribe((data) => { - expect(data).toBe(accessData); - //We expect one more call to the backend as token expired - expect(cpqAccessLoaderService.getCpqAccessData).toHaveBeenCalledTimes( - 2 - ); - }); - }); - accessDataSubject.next(accessData); - discardPeriodicTasks(); - })); - - it('should cancel refresh of expired token on user log out', fakeAsync(() => { - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(accessDataSoonExpiring); - }); - accessDataSubject.next(accessDataSoonExpiring); - authDataSubject.next(false); - - tick(TIME_UNTIL_TOKEN_EXPIRES); - accessDataSubject.next(anotherAccessData); - expect(cpqAccessLoaderService.getCpqAccessData).toHaveBeenCalledTimes(1); - discardPeriodicTasks(); - })); - - it('should fetch new token after logoff/login cycle', fakeAsync(() => { - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(accessDataSoonExpiring); - }); - accessDataSubject.next(accessDataSoonExpiring); - authDataSubject.next(false); - - tick(TIME_UNTIL_TOKEN_EXPIRES); - serviceUnderTest.getCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(anotherAccessData); - //We expect one more call to the backend as token expired - expect(cpqAccessLoaderService.getCpqAccessData).toHaveBeenCalledTimes(2); - }); - accessDataSubject.next(accessData); // nobody should receive this, as user is logged off - - flush(); - authDataSubject.next(true); - accessDataSubject.next(anotherAccessData); - discardPeriodicTasks(); - })); - - it('should get new token after refresh', (done) => { - const obs = takeOneCpqAccessData(); - accessDataSubject.next(accessData); - serviceUnderTest.renewCpqAccessData(); - accessDataSubject.next(anotherAccessData); - obs.subscribe((returnedData) => { - expect(returnedData).toBe(anotherAccessData); - expect(cpqAccessLoaderService.getCpqAccessData).toHaveBeenCalledTimes(2); - done(); - }); - }); - - it('should not emit old token after refresh anymore', fakeAsync(() => { - const obs = takeOneCpqAccessData(); - accessDataSubject.next(accessData); - serviceUnderTest.renewCpqAccessData(); - obs.subscribe((returnedData) => { - expect(returnedData).toBe(anotherAccessData); - expect(cpqAccessLoaderService.getCpqAccessData).toHaveBeenCalledTimes(2); - }); - flush(); - accessDataSubject.next(anotherAccessData); - discardPeriodicTasks(); - })); - - it('should not fail on refresh when not initialized', (done) => { - serviceUnderTest.renewCpqAccessData(); - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(accessData); - expect(cpqAccessLoaderService.getCpqAccessData).toHaveBeenCalledTimes(1); - done(); - }); - accessDataSubject.next(accessData); - }); - - it('should only refresh when user is logged in', (done) => { - //make sure obs is initiated (in contrast to previous test) - const obs = serviceUnderTest.getCpqAccessData(); - accessDataSubject.next(accessData); - authDataSubject.next(false); - serviceUnderTest.renewCpqAccessData(); - accessDataSubject.next(anotherAccessData); - obs.subscribe((returnedData) => { - expect(returnedData).toBe(accessData); - expect(cpqAccessLoaderService.getCpqAccessData).toHaveBeenCalledTimes(2); - done(); - }); - authDataSubject.next(true); - accessDataSubject.next(accessData); - }); - - it('should be able to still fetch new access data after error', () => { - takeOneCpqAccessData().subscribe({ - next: () => { - fail('should throw an error'); - }, - error: (error) => { - expect(error).toBeDefined(); - accessDataObs = of(accessData); - takeOneCpqAccessData().subscribe((returnedData) => { - expect(returnedData).toBe(accessData); - }); - }, - }); - accessDataSubject.error('fail'); - }); - - describe('fetchNextTokenIn', () => { - it('should throw error in case auth configuration is incomplete', () => { - serviceUnderTest['config'].productConfigurator.cpq = undefined; - expect(() => - serviceUnderTest['fetchNextTokenIn'](accessData) - ).toThrowError(); - }); - }); - - describe('isTokenExpired', () => { - it('should throw error in case auth configuration is incomplete', () => { - serviceUnderTest['config'].productConfigurator.cpq = undefined; - expect(() => - serviceUnderTest['isTokenExpired'](accessData) - ).toThrowError(); - }); - }); - - function takeOneCpqAccessData(): Observable { - return serviceUnderTest.getCpqAccessData().pipe(take(1)); - } -}); diff --git a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-storage.service.ts b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-storage.service.ts index f6cb0eb9f29..be4be0234f3 100644 --- a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-storage.service.ts +++ b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-access-storage.service.ts @@ -17,7 +17,11 @@ import { import { CpqAccessData } from './cpq-access-data.models'; import { CpqAccessLoaderService } from './cpq-access-loader.service'; import { CpqConfiguratorAuthConfig } from './cpq-configurator-auth.config'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ @Injectable({ providedIn: 'root' }) export class CpqAccessStorageService implements OnDestroy { protected readonly EXPIRED_TOKEN: CpqAccessData = { diff --git a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-auth.config.ts b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-auth.config.ts index ea076b4ee08..8766de412c6 100644 --- a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-auth.config.ts +++ b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-auth.config.ts @@ -7,7 +7,11 @@ import { Injectable } from '@angular/core'; import { Config } from '@spartacus/core'; import '@spartacus/product-configurator/common'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ export interface ProductConfiguratorCpqAuthConfig { cpq?: { authentication: { diff --git a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-interceptor.module.ts b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-interceptor.module.ts index 2cda83e012d..2ffdb89f54f 100644 --- a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-interceptor.module.ts +++ b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-interceptor.module.ts @@ -10,7 +10,11 @@ import { NgModule } from '@angular/core'; import { provideDefaultConfig } from '@spartacus/core'; import { CpqConfiguratorRestInterceptor } from './cpq-configurator-rest.interceptor'; import { defaultCpqConfiguratorAuthConfig } from './default-cpq-configurator-auth.config'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ @NgModule({ imports: [CommonModule], providers: [ diff --git a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-rest.interceptor.ts b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-rest.interceptor.ts index c1658fb320a..0bd2db50710 100644 --- a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-rest.interceptor.ts +++ b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/cpq-configurator-rest.interceptor.ts @@ -26,6 +26,11 @@ import { CpqAccessStorageService } from './cpq-access-storage.service'; */ export const MARKER_HEADER_CPQ_CONFIGURATOR = 'x-cpq-configurator'; +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ @Injectable({ providedIn: 'root', }) diff --git a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/default-cpq-configurator-auth.config.ts b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/default-cpq-configurator-auth.config.ts index 8cbd8320d26..e5bc941d863 100644 --- a/feature-libs/product-configurator/rulebased/root/cpq/interceptor/default-cpq-configurator-auth.config.ts +++ b/feature-libs/product-configurator/rulebased/root/cpq/interceptor/default-cpq-configurator-auth.config.ts @@ -5,7 +5,11 @@ */ import { CpqConfiguratorAuthConfig } from './cpq-configurator-auth.config'; - +/** + * @deprecated since 2211.25. Not needed for commerce based CPQ orchestration (which is the default communication flavour). + * Refer to configuration setting ConfiguratorCoreConfig.productConfigurator.cpqOverOcc = true. + * The other flavour (performing direct calls from composable storefront to CPQ) is technically no longer supported. + */ export const defaultCpqConfiguratorAuthConfig: CpqConfiguratorAuthConfig = { productConfigurator: { cpq: { From 6f22b90a3421c97e8b073cec66717fa377fa6b7b Mon Sep 17 00:00:00 2001 From: LarisaStar <61147963+Larisa-Staroverova@users.noreply.github.com> Date: Tue, 18 Jun 2024 14:20:41 +0200 Subject: [PATCH 02/23] fix: display filter button on the overview page for non-variants with one group(#18975) In mobile resolution --- ...gurator-overview-filter-button.component.html | 2 +- ...ator-overview-filter-button.component.spec.ts | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/feature-libs/product-configurator/rulebased/components/overview-filter-button/configurator-overview-filter-button.component.html b/feature-libs/product-configurator/rulebased/components/overview-filter-button/configurator-overview-filter-button.component.html index 6dfc1af47f0..97b58bea57a 100644 --- a/feature-libs/product-configurator/rulebased/components/overview-filter-button/configurator-overview-filter-button.component.html +++ b/feature-libs/product-configurator/rulebased/components/overview-filter-button/configurator-overview-filter-button.component.html @@ -6,7 +6,7 @@ > diff --git a/feature-libs/product-configurator/rulebased/components/overview-filter-button/configurator-overview-filter-button.component.spec.ts b/feature-libs/product-configurator/rulebased/components/overview-filter-button/configurator-overview-filter-button.component.spec.ts index 4c19528016c..6896d56f8ee 100644 --- a/feature-libs/product-configurator/rulebased/components/overview-filter-button/configurator-overview-filter-button.component.spec.ts +++ b/feature-libs/product-configurator/rulebased/components/overview-filter-button/configurator-overview-filter-button.component.spec.ts @@ -143,9 +143,21 @@ describe('ConfigurationOverviewFilterButtonComponent', () => { expect(htmlElem.classList.contains('ghost')).toBeFalsy(); }); - it('should render no filter button for variant', () => { + it('should render filter button for variant in case there is more than one group', () => { isDisplayOnlyVariant = true; - ovConfig.overview.possibleGroups = []; + fixture.detectChanges(); + + CommonConfiguratorTestUtilsService.expectElementPresent( + expect, + htmlElem, + '.cx-config-filter-button' + ); + }); + + it('should render no filter button for variant in case there is only one group', () => { + isDisplayOnlyVariant = true; + ovConfig.overview.possibleGroups = + ovConfig.overview.possibleGroups.slice(1); fixture.detectChanges(); CommonConfiguratorTestUtilsService.expectElementNotPresent( From 0390c4825f2f9997bc75022ea997657ce4b2912f Mon Sep 17 00:00:00 2001 From: LarisaStar <61147963+Larisa-Staroverova@users.noreply.github.com> Date: Wed, 19 Jun 2024 11:31:25 +0200 Subject: [PATCH 03/23] fix: Visibility of add-to-cart button on mobile (#18976) Closes CXSPA-7598 --- ...configurator-group-title.component.spec.ts | 22 +++++++++++++++++-- .../configurator-group-title.component.ts | 12 ++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/feature-libs/product-configurator/rulebased/components/group-title/configurator-group-title.component.spec.ts b/feature-libs/product-configurator/rulebased/components/group-title/configurator-group-title.component.spec.ts index 22a0819bdc1..9810eb2af1e 100644 --- a/feature-libs/product-configurator/rulebased/components/group-title/configurator-group-title.component.spec.ts +++ b/feature-libs/product-configurator/rulebased/components/group-title/configurator-group-title.component.spec.ts @@ -171,10 +171,19 @@ describe('ConfiguratorGroupTitleComponent', () => { spyOn(breakpointService, 'isDown').and.returnValue(of(true)); fixture.detectChanges(); expect(component).toBeDefined(); - expect(configuratorStorefrontUtilsService.changeStyling).toHaveBeenCalled(); + expect( + configuratorStorefrontUtilsService.changeStyling + ).toHaveBeenCalledTimes(2); expect( configuratorStorefrontUtilsService.changeStyling ).toHaveBeenCalledWith('.PreHeader', 'display', 'block'); + expect( + configuratorStorefrontUtilsService.changeStyling + ).toHaveBeenCalledWith( + 'cx-configurator-add-to-cart-button', + 'z-index', + '0' + ); expect( configuratorStorefrontUtilsService.focusFirstActiveElement ).toHaveBeenCalledWith('cx-hamburger-menu'); @@ -189,10 +198,19 @@ describe('ConfiguratorGroupTitleComponent', () => { htmlElem, 'cx-hamburger-menu' ); - expect(configuratorStorefrontUtilsService.changeStyling).toHaveBeenCalled(); + expect( + configuratorStorefrontUtilsService.changeStyling + ).toHaveBeenCalledTimes(2); expect( configuratorStorefrontUtilsService.changeStyling ).toHaveBeenCalledWith('.PreHeader', 'display', 'none'); + expect( + configuratorStorefrontUtilsService.changeStyling + ).toHaveBeenCalledWith( + 'cx-configurator-add-to-cart-button', + 'z-index', + 'calc(var(--cx-popover-z-index) + 10)' + ); expect( configuratorStorefrontUtilsService.focusFirstActiveElement ).toHaveBeenCalledWith('.cx-group-title'); diff --git a/feature-libs/product-configurator/rulebased/components/group-title/configurator-group-title.component.ts b/feature-libs/product-configurator/rulebased/components/group-title/configurator-group-title.component.ts index cac151d4bb3..6460617c913 100644 --- a/feature-libs/product-configurator/rulebased/components/group-title/configurator-group-title.component.ts +++ b/feature-libs/product-configurator/rulebased/components/group-title/configurator-group-title.component.ts @@ -35,6 +35,7 @@ export class ConfiguratorGroupTitleComponent implements OnInit, OnDestroy { @HostBinding('class.ghost') ghostStyle = true; protected subscription = new Subscription(); protected readonly PRE_HEADER = '.PreHeader'; + protected readonly ADD_TO_CART_BUTTON = 'cx-configurator-add-to-cart-button'; displayedGroup$: Observable = this.configRouterExtractorService.extractRouterData().pipe( @@ -67,6 +68,12 @@ export class ConfiguratorGroupTitleComponent implements OnInit, OnDestroy { 'display', 'none' ); + this.configuratorStorefrontUtilsService.changeStyling( + this.ADD_TO_CART_BUTTON, + 'z-index', + 'calc(var(--cx-popover-z-index) + 10)' + ); + this.configuratorStorefrontUtilsService.focusFirstActiveElement( '.cx-group-title' ); @@ -76,6 +83,11 @@ export class ConfiguratorGroupTitleComponent implements OnInit, OnDestroy { 'display', 'block' ); + this.configuratorStorefrontUtilsService.changeStyling( + this.ADD_TO_CART_BUTTON, + 'z-index', + '0' + ); this.configuratorStorefrontUtilsService.focusFirstActiveElement( 'cx-hamburger-menu' ); From 2a25815be4ca35d84d63520f03d01bbd90ca8338 Mon Sep 17 00:00:00 2001 From: LarisaStar <61147963+Larisa-Staroverova@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:22:02 +0200 Subject: [PATCH 04/23] fix: Dialog for immediate conflict resolution is broken for mobile (#18981) Closes CXSPA-7599 --- .../_configurator-conflict-solver-dialog.scss | 22 ++++--------------- 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/feature-libs/product-configurator/rulebased/styles/_configurator-conflict-solver-dialog.scss b/feature-libs/product-configurator/rulebased/styles/_configurator-conflict-solver-dialog.scss index 08455a57f89..a8d3a2fc71b 100644 --- a/feature-libs/product-configurator/rulebased/styles/_configurator-conflict-solver-dialog.scss +++ b/feature-libs/product-configurator/rulebased/styles/_configurator-conflict-solver-dialog.scss @@ -33,10 +33,6 @@ } .cx-modal-content { - @include media-breakpoint-down(md) { - height: 100vh !important; - } - .cx-dialog-header { outline: 0; padding-inline-start: 16px; @@ -72,7 +68,6 @@ display: flex; flex-direction: row; align-items: center; - padding-inline-start: 0px; padding-inline-end: 5px; margin-block-start: 12px; margin-block-end: 12px; @@ -83,28 +78,19 @@ align-self: center; font-size: 30px; padding-inline-start: 15px; - padding-inline-end: 18px; + padding-inline-end: 15px; padding-block-start: 5px; padding-block-end: 15px; } } + .cx-msg-warning, cx-configurator-conflict-description { padding-inline-start: 0px; - padding-block-start: 0px; - padding-block-end: 0px; + padding-block-start: 5px; + padding-block-end: 5px; } } - - .cx-modal-footer { - display: flex; - justify-content: center; - margin-block-start: 15px; - padding-inline-start: 16px; - padding-inline-end: 16px; - padding-block-start: 16px; - padding-block-end: 16px; - } } } From f40b7abeb4b47bbac84970c628b0f551b6e51b68 Mon Sep 17 00:00:00 2001 From: Hak Woo Kim Date: Wed, 19 Jun 2024 13:02:37 -0400 Subject: [PATCH 05/23] chore: upgrade prettierrc to 3.2.5 (CXSPA-7333) (#18986) Co-authored-by: Hakwoo Kim --- .prettierrc | 3 +- .../asm-create-customer-form.component.html | 10 +- ...asm-create-customer-form.component.spec.ts | 44 +- .../asm-main-ui/asm-main-ui.component.spec.ts | 50 ++- .../asm-session-timer.component.spec.ts | 34 +- .../asm-toggle-ui.component.spec.ts | 16 +- .../csagent-login-form.component.spec.ts | 32 +- .../customer-emulation.component.spec.ts | 50 ++- .../customer-list.component.spec.ts | 70 ++-- .../customer-selection.component.spec.ts | 64 ++- .../asm/core/store/effects/customer.effect.ts | 5 +- .../asm-customer-360-table.component.html | 3 +- ...stomer-360-section-context-source.model.ts | 2 +- ...tomer-360-promotion-listing.component.scss | 6 +- .../_asm-bind-cart-dialog.component.scss | 4 +- .../components/_asm-main-ui.component.scss | 3 +- .../_asm-save-cart-dialog.component.scss | 4 +- ..._asm-switch-customer-dialog.component.scss | 4 +- .../_customer-selection.component.scss | 4 +- .../abstract-order-context.directive.spec.ts | 30 +- .../added-to-cart-dialog.component.html | 6 +- .../applied-coupons.component.spec.ts | 38 +- .../cart-coupon/cart-coupon.component.spec.ts | 38 +- .../cart-coupon/cart-coupon.component.ts | 2 +- .../cart-details.component.spec.ts | 56 ++- .../components/cart-page-layout-handler.ts | 14 +- ...cart-proceed-to-checkout.component.spec.ts | 34 +- .../cart-proceed-to-checkout.component.ts | 5 +- .../cart-item-list-row.component.html | 2 +- .../cart-item/cart-item.component.spec.ts | 54 ++- .../order-summary.component.spec.ts | 28 +- .../cart-totals/cart-totals.component.spec.ts | 24 +- .../mini-cart/mini-cart.component.spec.ts | 26 +- .../save-for-later.component.spec.ts | 24 +- ...saved-cart-details-items.component.spec.ts | 78 ++-- .../add-to-wish-list.component.spec.ts | 46 +-- .../wish-list-item.component.spec.ts | 32 +- .../wish-list/wish-list.component.spec.ts | 26 +- ...heckout-delivery-address.component.spec.ts | 106 +++-- .../checkout-payment-type.component.spec.ts | 110 +++-- .../checkout-payment-type.component.ts | 2 +- .../checkout-review-submit.component.spec.ts | 96 +++-- ...out-billing-address-form.component.spec.ts | 62 ++- ...heckout-delivery-address.component.spec.ts | 100 +++-- .../checkout-delivery-mode.component.spec.ts | 58 ++- .../checkout-login.component.spec.ts | 28 +- .../checkout-orchestrator.component.spec.ts | 12 +- .../checkout-order-summary.component.spec.ts | 32 +- .../checkout-payment-form.component.spec.ts | 94 +++-- .../checkout-payment-method.component.spec.ts | 98 +++-- .../checkout-place-order.component.spec.ts | 36 +- ...t-progress-mobile-bottom.component.spec.ts | 26 +- ...kout-progress-mobile-top.component.spec.ts | 25 +- .../checkout-progress.component.spec.ts | 28 +- .../checkout-review-submit.component.spec.ts | 72 ++-- .../adapters/occ-checkout-payment.adapter.ts | 3 +- .../checkout-place-order.component.spec.ts | 64 ++- ...dule-replenishment-order.component.spec.ts | 26 +- ...heckout-replenishment-form.service.spec.ts | 12 +- .../customer-ticketing-list.component.spec.ts | 74 ++-- ...nt-v2-customer-ticketing.component.spec.ts | 46 +-- .../estimated-delivery-date.component.spec.ts | 38 +- .../amend-order-actions.component.spec.ts | 38 +- .../amend-order-items.component.spec.ts | 36 +- ...ancel-order-confirmation.component.spec.ts | 38 +- .../cancel-order.component.spec.ts | 28 +- .../order-cancellation.service.ts | 2 +- .../returns/order-return.service.ts | 2 +- ...eturn-order-confirmation.component.spec.ts | 28 +- .../return-order.component.spec.ts | 28 +- .../my-account-v2-orders.component.spec.ts | 36 +- ...order-confirmation-items.component.spec.ts | 30 +- ...mation-thank-you-message.component.spec.ts | 34 +- ...rder-confirmation-totals.component.spec.ts | 16 +- ...rder-guest-register-form.component.spec.ts | 34 +- ...y-account-v2-order-consignments.service.ts | 15 +- ...v2-order-details-actions.component.spec.ts | 34 +- .../order-detail-actions.component.spec.ts | 40 +- .../order-detail-billing.component.spec.ts | 26 +- .../tracking-events.component.spec.ts | 36 +- .../order-consigned-entries.component.spec.ts | 44 +- .../order-detail-items.component.spec.ts | 58 ++- .../order-detail-reorder.component.spec.ts | 36 +- .../reorder-dialog.component.spec.ts | 68 ++-- .../order-detail-totals.component.spec.ts | 30 +- .../order-overview.component.ts | 4 +- ...t-v2-consignment-entries.component.spec.ts | 30 +- ...consolidated-information.component.spec.ts | 38 +- ...account-v2-order-history.component.spec.ts | 52 ++- .../order-history.component.spec.ts | 48 ++- ...rder-cancellation-dialog.component.spec.ts | 38 +- ...hment-order-cancellation.component.spec.ts | 34 +- ...replenishment-order-history.component.html | 17 +- ...lenishment-order-history.component.spec.ts | 58 ++- .../return-request-items.component.spec.ts | 28 +- .../return-request-overview.component.spec.ts | 20 +- .../return-request-totals.component.spec.ts | 20 +- ...rder-return-request-list.component.spec.ts | 38 +- .../reorder-order.connector.spec.ts | 24 +- ...uled-replenishment-order.connector.spec.ts | 24 +- .../my-account-v2-order-history.service.ts | 2 +- .../occ-reorder-order-normalizer.spec.ts | 24 +- ...occ-replenishment-order-normalizer.spec.ts | 24 +- .../occ-return-request-normalizer.spec.ts | 2 +- ...eplenishment-order-form-serializer.spec.ts | 12 +- .../occ-order-history.adapter.spec.ts | 385 ++++++++---------- .../occ-reorder-order.adapter.spec.ts | 20 +- ...eduled-replenishment-order.adapter.spec.ts | 22 +- .../account-summary-header.component.html | 8 +- .../shared/message/message.model.ts | 2 +- .../message/services/message.service.ts | 2 +- .../shared/sub-list/sub-list.service.ts | 2 +- .../core/services/budget.service.ts | 2 +- .../core/services/org-unit.service.ts | 4 +- .../core/utils/get-item-status.ts | 4 +- .../list/order-approval-list.component.html | 12 +- .../occ-order-approval-normalizer.spec.ts | 2 +- .../unit-level-order-overview.component.ts | 14 +- .../adapters/occ-unit-order.adapter.spec.ts | 31 +- .../user-registration-form.component.spec.ts | 54 ++- .../presentational/store/store.component.ts | 3 +- .../store/selectors/stock.selectors.spec.ts | 5 +- .../occ-pickup-location.adapter.spec.ts | 22 +- .../occ/adapters/occ-stock.adapter.spec.ts | 22 +- ...r-cart-entry-bundle-info.component.spec.ts | 14 +- ...igurator-cart-entry-info.component.spec.ts | 44 +- ...ator-issues-notification.component.spec.ts | 52 ++- .../configure-product.component.ts | 8 +- ...figurator-router-extractor.service.spec.ts | 24 +- .../common-configurator-utils.service.spec.ts | 24 +- ...rator-add-to-cart-button.component.spec.ts | 138 ++++--- ...gurator-attribute-footer.component.spec.ts | 54 ++- ...gurator-attribute-header.component.spec.ts | 88 ++-- ...configurator-attribute-header.component.ts | 4 +- ...r-attribute-product-card.component.spec.ts | 62 ++- ...rator-attribute-quantity.component.spec.ts | 42 +- ...ute-multi-selection-base.component.spec.ts | 34 +- ...te-single-selection-base.component.spec.ts | 44 +- ...-attribute-checkbox-list.component.spec.ts | 74 ++-- ...rator-attribute-checkbox.component.spec.ts | 54 ++- ...ator-attribute-drop-down.component.spec.ts | 84 ++-- ...or-attribute-input-field.component.spec.ts | 76 ++-- ...e-multi-selection-bundle.component.spec.ts | 82 ++-- ...ibute-multi-selection-image.component.html | 2 +- ...te-multi-selection-image.component.spec.ts | 82 ++-- ...bute-numeric-input-field.component.spec.ts | 96 +++-- ...r-attribute-radio-button.component.spec.ts | 82 ++-- ...ator-attribute-read-only.component.spec.ts | 44 +- ...e-selection-bundle-dropdown.component.html | 20 +- ...election-bundle-dropdown.component.spec.ts | 104 +++-- ...-single-selection-bundle.component.spec.ts | 77 ++-- ...bute-single-selection-image.component.html | 2 +- ...e-single-selection-image.component.spec.ts | 76 ++-- ...flict-and-error-messages.component.spec.ts | 42 +- ...tor-conflict-description.component.spec.ts | 32 +- ...r-conflict-solver-dialog.component.spec.ts | 46 +-- ...ator-conflict-suggestion.component.spec.ts | 26 +- ...configurator-exit-button.component.spec.ts | 58 ++- .../form/configurator-form.component.spec.ts | 76 ++-- .../configurator-group-menu.component.spec.ts | 84 ++-- ...configurator-group-title.component.spec.ts | 80 ++-- .../configurator-group.component.spec.ts | 138 ++++--- ...rator-overview-attribute.component.spec.ts | 22 +- ...verview-bundle-attribute.component.spec.ts | 24 +- ...ator-overview-filter-bar.component.spec.ts | 36 +- ...r-overview-filter-button.component.spec.ts | 56 ++- ...r-overview-filter-dialog.component.spec.ts | 32 +- ...igurator-overview-filter.component.spec.ts | 14 +- ...nfigurator-overview-form.component.spec.ts | 52 ++- ...nfigurator-overview-menu.component.spec.ts | 34 +- ...view-notification-banner.component.spec.ts | 44 +- ...gurator-overview-sidebar.component.spec.ts | 64 ++- ...or-previous-next-buttons.component.spec.ts | 68 ++-- ...nfigurator-price-summary.component.spec.ts | 52 ++- .../configurator-price.component.spec.ts | 26 +- ...nfigurator-product-title.component.spec.ts | 76 ++-- ...figurator-restart-dialog.component.spec.ts | 54 ++- .../configurator-show-more.component.spec.ts | 26 +- .../configurator-tab-bar.component.spec.ts | 66 ++- ...figurator-update-message.component.spec.ts | 52 ++- .../facade/configurator-cart.service.spec.ts | 54 ++- .../configurator-commons.service.spec.ts | 48 ++- .../configurator-group-status.service.spec.ts | 14 +- .../configurator-groups.service.spec.ts | 40 +- .../configurator-router.listener.spec.ts | 38 +- .../utils/configurator-utils.service.spec.ts | 12 +- .../configurator-basic-effect.service.spec.ts | 12 +- ...q-configurator-normalizer-utils.service.ts | 4 +- ...q-configurator-page-layout-handler.spec.ts | 38 +- ...t-configurator-page-layout-handler.spec.ts | 38 +- ...field-add-to-cart-button.component.spec.ts | 50 ++- ...figurator-textfield-form.component.spec.ts | 52 ++- ...eld-input-field-readonly.component.spec.ts | 14 +- ...or-textfield-input-field.component.spec.ts | 14 +- .../configurator-textfield.service.spec.ts | 34 +- ...mage-zoom-product-images.component.spec.ts | 100 ++--- ...ct-image-zoom-thumbnails.component.spec.ts | 18 +- .../product-image-zoom-view.component.spec.ts | 47 +-- ...oduct-variants-container.component.spec.ts | 46 +-- ...t-variant-color-selector.component.spec.ts | 18 +- ...ct-variant-size-selector.component.spec.ts | 30 +- ...t-variant-style-selector.component.spec.ts | 36 +- ...duct-variant-style-icons.component.spec.ts | 24 +- .../comments/quote-comments.component.spec.ts | 62 ++- .../quote-confirm-dialog.component.spec.ts | 38 +- .../quote-header-overview.component.spec.ts | 56 ++- .../items/quote-items.component.spec.ts | 44 +- .../store-finder-grid.component.spec.ts | 32 +- .../store-finder-header.component.spec.ts | 20 +- .../store-finder-list-item.component.spec.ts | 32 +- ...inder-pagination-details.component.spec.ts | 14 +- .../store-finder-list.component.spec.ts | 40 +- ...ore-finder-search-result.component.spec.ts | 26 +- .../store-finder-search.component.spec.ts | 36 +- ...finder-store-description.component.spec.ts | 28 +- .../store-finder-store.component.spec.ts | 44 +- ...tore-finder-stores-count.component.spec.ts | 34 +- .../store-finder.component.spec.ts | 14 +- .../login-form-component.service.spec.ts | 36 +- .../login-form/login-form.component.spec.ts | 38 +- .../login-register.component.spec.ts | 8 +- .../components/login/login.component.spec.ts | 44 +- .../otp-login-form.component.spec.ts | 42 +- ...ation-token-form-component.service.spec.ts | 42 +- .../verification-token-form.component.spec.ts | 56 ++- .../address-book.component.spec.ts | 38 +- .../address-form.component.spec.ts | 66 ++- ...ggested-addresses-dialog.component.spec.ts | 28 +- .../close-account-modal.component.spec.ts | 66 ++- .../close-account.component.spec.ts | 32 +- .../forgot-password-component.service.spec.ts | 38 +- .../forgot-password.component.spec.ts | 54 ++- .../register/register.component.spec.ts | 92 ++--- .../components/register/register.component.ts | 2 +- .../reset-password.component.spec.ts | 38 +- .../my-account-v2-email.component.spec.ts | 54 ++- .../update-email-component.service.spec.ts | 52 ++- .../update-email.component.spec.ts | 54 ++- .../my-account-v2-password.component.spec.ts | 46 +-- .../update-password.component.spec.ts | 56 ++- .../my-account-v2-profile.component.spec.ts | 50 ++- .../update-profile.component.spec.ts | 64 ++- .../cdc-login-form-component.service.spec.ts | 48 ++- ...-forgot-password-component.service.spec.ts | 40 +- ...cdc-update-email-component.service.spec.ts | 64 ++- .../attributes/attributes.directive.ts | 5 +- ...ndising-carousel.component.service.spec.ts | 9 +- .../merchandising-carousel.component.spec.ts | 324 +++++++-------- .../cds-merchandising-product.service.ts | 2 +- .../profile-tag.component.spec.ts | 24 +- .../recent-searches.component.html | 2 +- .../compact-add-to-cart.component.spec.ts | 60 ++- .../paged-list/paged-list.component.html | 2 +- .../paged-list/paged-list.component.spec.ts | 24 +- ...ual-viewer-animation-slider.component.html | 15 +- .../schedule-lines.component.spec.ts | 36 +- package-lock.json | 21 +- package.json | 2 +- .../cms/store/actions/components.action.ts | 4 +- .../actions/navigation-entry-item.action.ts | 5 +- .../core/src/cms/store/actions/page.action.ts | 5 +- .../config-initializer.service.spec.ts | 4 +- .../core/src/config/config-providers.spec.ts | 2 +- .../core/src/config/config.module.spec.ts | 2 +- .../core/src/config/utils/deep-merge.spec.ts | 74 ++-- .../feature-level.directive.spec.ts | 68 ++-- .../directives/feature.directive.spec.ts | 34 +- .../feature-toggles-providers.spec.ts | 4 +- .../http-timeout/http-timeout.interceptor.ts | 5 +- .../adapters/product/occ-product.adapter.ts | 2 +- .../adapters/site-context/occ-site.adapter.ts | 8 +- .../config-from-meta-tag-factory.spec.ts | 12 +- .../occ-requests-optimizer.service.ts | 2 +- .../store/actions/product-search.action.ts | 5 +- .../product/store/actions/product.action.ts | 16 +- .../routing/store/effects/router.effect.ts | 5 +- .../site-context-url-serializer.spec.ts | 4 +- .../entity-loader/entity-loader.action.ts | 6 +- .../spartacus-feature-toggles.ts | 6 +- .../component-deprecations.ts | 7 +- .../mechanism/rename-symbol/rename-symbol.ts | 3 +- .../src/shared/utils/import-utils.ts | 3 +- .../schematics/src/shared/utils/lib-utils.ts | 2 +- .../src/shared/utils/tree-file-system.ts | 5 +- .../src/shared/utils/workspace-utils.ts | 9 +- projects/storefrontapp/src/index.html | 2 +- ...onsent-management-banner.component.spec.ts | 34 +- ...mous-consent-open-dialog.component.spec.ts | 26 +- .../banner-carousel/banner-carousel.spec.ts | 32 +- .../paragraph/paragraph.component.spec.ts | 28 +- .../tab-paragraph-container.component.spec.ts | 38 +- .../global-message.component.spec.ts | 20 +- .../misc/icon/icon.component.spec.ts | 40 +- .../misc/message/message.component.spec.ts | 22 +- .../promotions/promotions.component.spec.ts | 16 +- .../language-currency.component.spec.ts | 74 ++-- .../site-context-selector.component.spec.ts | 74 ++-- .../consent-management-form.component.spec.ts | 14 +- .../consent-management.component.spec.ts | 64 ++- ...-consent-management-form.component.spec.ts | 14 +- ...nt-v2-consent-management.component.spec.ts | 64 ++- ...my-account-v2-navigation.component.spec.ts | 35 +- ...account-v2-notification-preference.spec.ts | 32 +- .../coupon-card/coupon-card.component.spec.ts | 38 +- .../coupon-dialog.component.spec.ts | 28 +- .../coupon-claim.component.spec.ts | 22 +- .../my-coupons/my-coupons.component.html | 13 +- .../my-coupons/my-coupons.component.spec.ts | 50 ++- .../my-interests/my-interests.component.html | 30 +- .../my-interests.component.spec.ts | 46 +-- .../notification-preference.component.spec.ts | 34 +- .../payment-methods.component.spec.ts | 46 +-- .../breadcrumb/breadcrumb.component.spec.ts | 30 +- .../category-navigation.component.spec.ts | 34 +- .../footer-navigation.component.spec.ts | 52 ++- .../navigation/navigation.component.spec.ts | 32 +- .../page-header/page-title.component.spec.ts | 30 +- .../search-box/search-box.component.spec.ts | 83 ++-- .../product-carousel-item.component.spec.ts | 98 ++--- .../product-carousel.component.spec.ts | 49 +-- .../product-images.component.spec.ts | 96 ++--- .../product-intro.component.spec.ts | 46 +-- .../container/product-list.component.spec.ts | 90 ++-- .../product-scroll.component.spec.ts | 56 ++- .../active-facets.component.spec.ts | 22 +- .../facet-list/facet-list.component.spec.ts | 48 ++- .../facet/facet.component.html | 4 +- .../facet/facet.component.spec.ts | 36 +- ...product-facet-navigation.component.spec.ts | 142 +++---- .../services/product-facet.service.ts | 2 +- .../product-grid-item.component.spec.ts | 58 ++- .../product-list-item.component.spec.ts | 58 ++- .../product-view/product-view.component.html | 4 +- .../product-view.component.spec.ts | 14 +- .../product-summary.component.spec.ts | 26 +- .../product-attributes.component.spec.ts | 26 +- .../product-details-tab.component.spec.ts | 40 +- .../product-reviews.component.html | 2 +- .../product-reviews.component.spec.ts | 52 ++- .../stock-notification-dialog.component.html | 8 +- ...tock-notification-dialog.component.spec.ts | 36 +- .../stock-notification.component.spec.ts | 56 ++- .../outlet-ref/outlet-ref.directive.spec.ts | 30 +- .../outlet/outlet.directive.spec.ts | 224 +++++----- .../component-wrapper.directive.spec.ts | 24 +- .../inner-components-host.directive.spec.ts | 76 ++-- .../page-layout/page-layout.component.spec.ts | 12 +- .../add-to-home-screen.components.spec.ts | 28 +- .../autofocus/auto-focus.directive.spec.ts | 30 +- .../autofocus/auto-focus.service.spec.ts | 36 +- .../base/base-focus.directive.spec.ts | 32 +- .../base/base-focus.service.spec.ts | 16 +- .../block/block-focus.directive.spec.ts | 26 +- .../escape/escape-focus.directive.spec.ts | 46 +-- .../escape/escape-focus.service.spec.ts | 36 +- .../keyboard-focus/focus.directive.spec.ts | 34 +- .../lock/lock-focus.directive.spec.ts | 30 +- .../lock/lock-focus.service.spec.ts | 26 +- .../persist/persist-focus.directive.spec.ts | 34 +- .../persist/persist-focus.service.spec.ts | 32 +- .../services/keyboard-focus.service.spec.ts | 14 +- .../services/select-focus.util.spec.ts | 20 +- .../tab/tab-focus.directive.spec.ts | 30 +- .../tab/tab-focus.service.spec.ts | 32 +- .../trap/trap-focus.directive.spec.ts | 28 +- .../visible/visible-focus.directive.spec.ts | 34 +- .../component/skip-link.component.spec.ts | 28 +- .../directive/skip-link.directive.spec.ts | 28 +- .../service/skip-link.service.spec.ts | 36 +- .../layout/main/storefront.component.spec.ts | 54 ++- ...anonymous-consent-dialog.component.spec.ts | 62 ++- .../components/card/card.component.spec.ts | 28 +- .../carousel/carousel.component.html | 2 +- .../carousel/carousel.component.spec.ts | 28 +- .../components/carousel/carousel.component.ts | 5 +- .../form-errors/form-errors.component.spec.ts | 28 +- ...ssword-visibility-toggle.component.spec.ts | 40 +- ...ssword-visibility-toggle.directive.spec.ts | 40 +- .../item-counter.component.spec.ts | 100 ++--- .../pagination/pagination.builder.ts | 8 +- .../pagination/pagination.component.spec.ts | 30 +- .../sorting/sorting.component.spec.ts | 14 +- .../total/total.component.spec.ts | 14 +- .../ng-select-a11y.directive.ts | 5 +- .../progress-button.component.spec.ts | 14 +- .../split-view/view/view.component.spec.ts | 32 +- .../truncate-text-popover.component.spec.ts | 22 +- .../supplement-hash-anchors.pipe.ts | 5 +- .../content/navigation/_scroll-to-top.scss | 7 +- .../scss/components/layout/_skip-link.scss | 4 +- .../scss/components/layout/_split-view.scss | 5 +- .../misc/pagination/_pagination.scss | 4 +- .../scss/components/misc/table/_table.scss | 4 +- .../scss/layout/_page-fold.scss | 4 +- .../theme/santorini-updated/_variables.scss | 15 +- .../scss/theme/santorini/_variables.scss | 15 +- .../scss/theme/sparta/_variables.scss | 15 +- tools/schematics/dependency-collector.ts | 2 +- 398 files changed, 6771 insertions(+), 7576 deletions(-) diff --git a/.prettierrc b/.prettierrc index 544138be456..c1a6f667131 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,3 +1,4 @@ { - "singleQuote": true + "singleQuote": true, + "trailingComma": "es5" } diff --git a/feature-libs/asm/components/asm-create-customer-form/asm-create-customer-form.component.html b/feature-libs/asm/components/asm-create-customer-form/asm-create-customer-form.component.html index 38e9cde6b90..c407d368005 100644 --- a/feature-libs/asm/components/asm-create-customer-form/asm-create-customer-form.component.html +++ b/feature-libs/asm/components/asm-create-customer-form/asm-create-customer-form.component.html @@ -102,19 +102,13 @@ {{ variant.name }}
{{ variant.value }}
@@ -198,11 +188,7 @@

{{ 'myInterests.header' | cxTranslate }}

- +
{{ 'configurator.overviewFilter.byGroup' | cxTranslate }}
From 5ae476792f20173a8695e0ab3a5a5ae22da8341b Mon Sep 17 00:00:00 2001 From: Hak Woo Kim Date: Mon, 24 Jun 2024 09:40:11 -0400 Subject: [PATCH 13/23] fix: remove flaky from express checkout (CXSPA-7064) (#18990) Co-authored-by: Hakwoo Kim --- ...xpress-checkout.e2e-flaky.cy.ts => express-checkout.e2e.cy.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename projects/storefrontapp-e2e-cypress/cypress/e2e/regression/checkout/{express-checkout.e2e-flaky.cy.ts => express-checkout.e2e.cy.ts} (100%) diff --git a/projects/storefrontapp-e2e-cypress/cypress/e2e/regression/checkout/express-checkout.e2e-flaky.cy.ts b/projects/storefrontapp-e2e-cypress/cypress/e2e/regression/checkout/express-checkout.e2e.cy.ts similarity index 100% rename from projects/storefrontapp-e2e-cypress/cypress/e2e/regression/checkout/express-checkout.e2e-flaky.cy.ts rename to projects/storefrontapp-e2e-cypress/cypress/e2e/regression/checkout/express-checkout.e2e.cy.ts From 70b6319bb6d1105e259d4c03121ea695bc0e7a2d Mon Sep 17 00:00:00 2001 From: sdrozdsap <163305268+sdrozdsap@users.noreply.github.com> Date: Tue, 25 Jun 2024 13:52:26 +0100 Subject: [PATCH 14/23] fix: Increment quantity button styling issue (#18993) --- feature-libs/cart/base/styles/components/_item-counter.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/feature-libs/cart/base/styles/components/_item-counter.scss b/feature-libs/cart/base/styles/components/_item-counter.scss index 0c5c3af8c5f..2f5f680dbc6 100644 --- a/feature-libs/cart/base/styles/components/_item-counter.scss +++ b/feature-libs/cart/base/styles/components/_item-counter.scss @@ -85,6 +85,8 @@ font-size: var(--cx-font-size, 2rem); line-height: 0; color: var(--cx-color-text); + padding-inline-start: 0; + padding-inline-end: 0; &:focus { box-shadow: 0 0 0 0; } From 02c48d27f9579f0d6ee23ab0e918f77dbded6ec2 Mon Sep 17 00:00:00 2001 From: sdrozdsap <163305268+sdrozdsap@users.noreply.github.com> Date: Tue, 25 Jun 2024 14:54:39 +0100 Subject: [PATCH 15/23] fix: My Account navigation disappears on mobile view (#18994) --- .../navigation/navigation/navigation-ui.component.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/projects/storefrontlib/cms-components/navigation/navigation/navigation-ui.component.ts b/projects/storefrontlib/cms-components/navigation/navigation/navigation-ui.component.ts index d0a500181ea..9e970eeb74e 100644 --- a/projects/storefrontlib/cms-components/navigation/navigation/navigation-ui.component.ts +++ b/projects/storefrontlib/cms-components/navigation/navigation/navigation-ui.component.ts @@ -297,11 +297,7 @@ export class NavigationUIComponent implements OnInit, OnDestroy { clear(): void { this.openNodes = []; - if ( - !this.featureConfigService?.isEnabled('a11yNavigationUiKeyboardControls') - ) { - this.updateClasses(); - } + this.updateClasses(); } onMouseEnter(event: MouseEvent) { From a02095f9a204678cce4f1230d68eb4ab2a7f8b68 Mon Sep 17 00:00:00 2001 From: Radhep Sabapathipillai <34665674+RadhepS@users.noreply.github.com> Date: Tue, 25 Jun 2024 11:30:58 -0400 Subject: [PATCH 16/23] Release 2211.25.0-3 (#18992) Closes: https://jira.tools.sap/browse/CXSPA-7702 --- core-libs/setup/package.json | 10 +- feature-libs/asm/package.json | 18 +- feature-libs/cart/package.json | 12 +- feature-libs/checkout/package.json | 16 +- .../__snapshots__/index_spec.ts.snap | 4 +- feature-libs/customer-ticketing/package.json | 12 +- .../estimated-delivery-date/package.json | 14 +- feature-libs/order/package.json | 16 +- feature-libs/organization/package.json | 16 +- .../__snapshots__/index_spec.ts.snap | 10 +- feature-libs/pdf-invoices/package.json | 10 +- feature-libs/pickup-in-store/package.json | 18 +- .../product-configurator/package.json | 16 +- .../__snapshots__/index_spec.ts.snap | 6 +- feature-libs/product/package.json | 10 +- .../__snapshots__/index_spec.ts.snap | 4 +- feature-libs/qualtrics/package.json | 8 +- feature-libs/quote/package.json | 12 +- .../__snapshots__/index_spec.ts.snap | 2 +- .../requested-delivery-date/package.json | 16 +- feature-libs/smartedit/package.json | 6 +- feature-libs/storefinder/package.json | 10 +- feature-libs/tracking/package.json | 6 +- feature-libs/user/package.json | 10 +- integration-libs/cdc/package.json | 14 +- integration-libs/cdp/package.json | 6 +- integration-libs/cds/package.json | 14 +- .../digital-payments/package.json | 12 +- .../epd-visualization/package.json | 12 +- integration-libs/opps/package.json | 8 +- integration-libs/s4om/package.json | 16 +- integration-libs/segment-refs/package.json | 6 +- projects/assets/package.json | 2 +- projects/core/package.json | 2 +- projects/schematics/package.json | 2 +- projects/schematics/src/dependencies.json | 272 +++++++++--------- .../ng-add/__snapshots__/index_spec.ts.snap | 10 +- projects/ssr-tests/package.json | 2 +- projects/storefrontlib/package.json | 4 +- projects/storefrontstyles/package.json | 2 +- .../storefrontstyles/scss/_versioning.scss | 4 +- tools/config/const.ts | 2 +- 42 files changed, 326 insertions(+), 326 deletions(-) diff --git a/core-libs/setup/package.json b/core-libs/setup/package.json index 461e30ae105..4c04c20fb8b 100644 --- a/core-libs/setup/package.json +++ b/core-libs/setup/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/setup", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Includes features that makes Spartacus and it's setup easier and streamlined.", "keywords": [ "spartacus", @@ -21,10 +21,10 @@ "peerDependencies": { "@angular/core": "^17.0.5", "@angular/ssr": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/user": "2211.24.1" + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3" }, "optionalDependencies": { "@angular/platform-server": "^17.0.5", diff --git a/feature-libs/asm/package.json b/feature-libs/asm/package.json index a808dc709a6..3bb8a8e7413 100644 --- a/feature-libs/asm/package.json +++ b/feature-libs/asm/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/asm", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "ASM feature library for Spartacus", "keywords": [ "spartacus", @@ -32,14 +32,14 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefinder": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefinder": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/feature-libs/cart/package.json b/feature-libs/cart/package.json index 534cc7faba6..3a392ff1cde 100644 --- a/feature-libs/cart/package.json +++ b/feature-libs/cart/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/cart", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "", "keywords": [ "spartacus", @@ -37,11 +37,11 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, diff --git a/feature-libs/checkout/package.json b/feature-libs/checkout/package.json index cf5f70c5bcc..daa023959e6 100644 --- a/feature-libs/checkout/package.json +++ b/feature-libs/checkout/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/checkout", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Checkout feature library for Spartacus", "keywords": [ "spartacus", @@ -32,13 +32,13 @@ "@angular/router": "^17.0.5", "@ng-select/ng-select": "^12.0.4", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, diff --git a/feature-libs/checkout/schematics/add-checkout/__snapshots__/index_spec.ts.snap b/feature-libs/checkout/schematics/add-checkout/__snapshots__/index_spec.ts.snap index 57de34f62f4..147c42f5e8e 100644 --- a/feature-libs/checkout/schematics/add-checkout/__snapshots__/index_spec.ts.snap +++ b/feature-libs/checkout/schematics/add-checkout/__snapshots__/index_spec.ts.snap @@ -63,7 +63,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) @@ -514,7 +514,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) diff --git a/feature-libs/customer-ticketing/package.json b/feature-libs/customer-ticketing/package.json index e1e02c772a0..b7ffc4c77e2 100644 --- a/feature-libs/customer-ticketing/package.json +++ b/feature-libs/customer-ticketing/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/customer-ticketing", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Customer-Ticketing library for Spartacus", "keywords": [ "spartacus", @@ -30,11 +30,11 @@ "@angular/core": "^17.0.5", "@angular/forms": "^17.0.5", "@angular/router": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/feature-libs/estimated-delivery-date/package.json b/feature-libs/estimated-delivery-date/package.json index 665bc3ac290..5f06026f09b 100644 --- a/feature-libs/estimated-delivery-date/package.json +++ b/feature-libs/estimated-delivery-date/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/estimated-delivery-date", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Estimated Delivery Date library for Spartacus", "keywords": [ "spartacus", @@ -28,12 +28,12 @@ "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/feature-libs/order/package.json b/feature-libs/order/package.json index da20e1d8c54..1eb58117145 100644 --- a/feature-libs/order/package.json +++ b/feature-libs/order/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/order", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Order feature library for Spartacus", "keywords": [ "spartacus", @@ -33,13 +33,13 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/pdf-invoices": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/pdf-invoices": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/feature-libs/organization/package.json b/feature-libs/organization/package.json index e228b36ac36..26d3ed4913d 100644 --- a/feature-libs/organization/package.json +++ b/feature-libs/organization/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/organization", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Organization library for Spartacus", "keywords": [ "spartacus", @@ -33,13 +33,13 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, diff --git a/feature-libs/organization/schematics/add-organization/__snapshots__/index_spec.ts.snap b/feature-libs/organization/schematics/add-organization/__snapshots__/index_spec.ts.snap index 30be2ccf67d..013d99f13a4 100644 --- a/feature-libs/organization/schematics/add-organization/__snapshots__/index_spec.ts.snap +++ b/feature-libs/organization/schematics/add-organization/__snapshots__/index_spec.ts.snap @@ -51,7 +51,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) @@ -270,7 +270,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) @@ -489,7 +489,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) @@ -708,7 +708,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) @@ -927,7 +927,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) diff --git a/feature-libs/pdf-invoices/package.json b/feature-libs/pdf-invoices/package.json index 1e2a2a298cc..2229332238f 100644 --- a/feature-libs/pdf-invoices/package.json +++ b/feature-libs/pdf-invoices/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/pdf-invoices", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Invoices library for Spartacus", "keywords": [ "spartacus", @@ -29,10 +29,10 @@ "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", "@angular/forms": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/feature-libs/pickup-in-store/package.json b/feature-libs/pickup-in-store/package.json index 4c1d90639f7..98ab7945762 100644 --- a/feature-libs/pickup-in-store/package.json +++ b/feature-libs/pickup-in-store/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/pickup-in-store", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "", "keywords": [ "spartacus", @@ -32,14 +32,14 @@ "@angular/router": "^17.0.5", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefinder": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefinder": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, diff --git a/feature-libs/product-configurator/package.json b/feature-libs/product-configurator/package.json index 30d6df12a25..3851be28f97 100644 --- a/feature-libs/product-configurator/package.json +++ b/feature-libs/product-configurator/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/product-configurator", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Product configurator feature library for Spartacus", "keywords": [ "spartacus", @@ -33,13 +33,13 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/checkout": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/checkout": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/feature-libs/product-configurator/schematics/add-product-configurator/__snapshots__/index_spec.ts.snap b/feature-libs/product-configurator/schematics/add-product-configurator/__snapshots__/index_spec.ts.snap index f986c18192c..050a924bfaf 100644 --- a/feature-libs/product-configurator/schematics/add-product-configurator/__snapshots__/index_spec.ts.snap +++ b/feature-libs/product-configurator/schematics/add-product-configurator/__snapshots__/index_spec.ts.snap @@ -58,7 +58,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) @@ -307,7 +307,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) @@ -542,7 +542,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } })] }) diff --git a/feature-libs/product/package.json b/feature-libs/product/package.json index 3dcff9dc411..0b3828e8e80 100644 --- a/feature-libs/product/package.json +++ b/feature-libs/product/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/product", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Product library for Spartacus", "keywords": [ "spartacus", @@ -29,10 +29,10 @@ "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", "@angular/router": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, diff --git a/feature-libs/product/schematics/add-product/__snapshots__/index_spec.ts.snap b/feature-libs/product/schematics/add-product/__snapshots__/index_spec.ts.snap index 129f4bbc86c..f7467e91e51 100644 --- a/feature-libs/product/schematics/add-product/__snapshots__/index_spec.ts.snap +++ b/feature-libs/product/schematics/add-product/__snapshots__/index_spec.ts.snap @@ -51,7 +51,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) @@ -270,7 +270,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) diff --git a/feature-libs/qualtrics/package.json b/feature-libs/qualtrics/package.json index b4a39e2956b..073f736e8c7 100644 --- a/feature-libs/qualtrics/package.json +++ b/feature-libs/qualtrics/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/qualtrics", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Qualtrics library for Spartacus", "keywords": [ "spartacus", @@ -30,9 +30,9 @@ "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, diff --git a/feature-libs/quote/package.json b/feature-libs/quote/package.json index 4e93a6f8928..7e583e9fce3 100644 --- a/feature-libs/quote/package.json +++ b/feature-libs/quote/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/quote", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "", "keywords": [ "spartacus", @@ -32,11 +32,11 @@ "@angular/core": "^17.0.5", "@angular/forms": "^17.0.5", "@angular/router": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, diff --git a/feature-libs/quote/schematics/add-quote/__snapshots__/index_spec.ts.snap b/feature-libs/quote/schematics/add-quote/__snapshots__/index_spec.ts.snap index 2f94189b07e..e4508f9b72b 100644 --- a/feature-libs/quote/schematics/add-quote/__snapshots__/index_spec.ts.snap +++ b/feature-libs/quote/schematics/add-quote/__snapshots__/index_spec.ts.snap @@ -55,7 +55,7 @@ import { defaultCmsContentProviders, layoutConfig, mediaConfig } from "@spartacu }, }), provideConfig({ features: { - level: '2211.24' + level: '2211.25' } }), provideConfig(defaultB2bOccConfig)] }) diff --git a/feature-libs/requested-delivery-date/package.json b/feature-libs/requested-delivery-date/package.json index b921265ddf0..f48a07f309d 100644 --- a/feature-libs/requested-delivery-date/package.json +++ b/feature-libs/requested-delivery-date/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/requested-delivery-date", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Requested Delivery Date library for Spartacus", "keywords": [ "spartacus", @@ -29,13 +29,13 @@ "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", "@angular/forms": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/checkout": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/checkout": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/feature-libs/smartedit/package.json b/feature-libs/smartedit/package.json index e7751f73383..891154d985d 100644 --- a/feature-libs/smartedit/package.json +++ b/feature-libs/smartedit/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/smartedit", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Smart Edit feature library for Spartacus", "keywords": [ "spartacus", @@ -23,8 +23,8 @@ "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/feature-libs/storefinder/package.json b/feature-libs/storefinder/package.json index 8c6e8a74143..d2971812058 100644 --- a/feature-libs/storefinder/package.json +++ b/feature-libs/storefinder/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/storefinder", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Store finder feature library for Spartacus", "keywords": [ "spartacus", @@ -32,10 +32,10 @@ "@angular/router": "^17.0.5", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, diff --git a/feature-libs/tracking/package.json b/feature-libs/tracking/package.json index 52f21e52c1d..04f0ef645f4 100644 --- a/feature-libs/tracking/package.json +++ b/feature-libs/tracking/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/tracking", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Spartacus tracking and personalization library", "keywords": [ "spartacus", @@ -27,8 +27,8 @@ "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/feature-libs/user/package.json b/feature-libs/user/package.json index 54d744cbcd7..a117bfbc81f 100644 --- a/feature-libs/user/package.json +++ b/feature-libs/user/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/user", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "User feature library for Spartacus", "keywords": [ "spartacus", @@ -32,10 +32,10 @@ "@angular/router": "^17.0.5", "@ng-select/ng-select": "^12.0.4", "@ngrx/store": "^17.0.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/integration-libs/cdc/package.json b/integration-libs/cdc/package.json index f7448c2f01a..290940ad120 100644 --- a/integration-libs/cdc/package.json +++ b/integration-libs/cdc/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/cdc", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Customer Data Cloud Integration library for Spartacus", "keywords": [ "spartacus", @@ -30,12 +30,12 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/asm": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/organization": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/asm": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/organization": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/integration-libs/cdp/package.json b/integration-libs/cdp/package.json index f1dfdaea999..aa0438bfccc 100644 --- a/integration-libs/cdp/package.json +++ b/integration-libs/cdp/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/cdp", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Customer Data Platform Integration library for Spartacus", "keywords": [ "spartacus", @@ -24,8 +24,8 @@ "peerDependencies": { "@angular-devkit/schematics": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/customer-ticketing": "2211.24.1", - "@spartacus/schematics": "2211.24.1", + "@spartacus/customer-ticketing": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/integration-libs/cds/package.json b/integration-libs/cds/package.json index f9df785be79..a9d8620b008 100644 --- a/integration-libs/cds/package.json +++ b/integration-libs/cds/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/cds", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Context Driven Service library for Spartacus", "keywords": [ "spartacus", @@ -28,12 +28,12 @@ "@angular/core": "^17.0.5", "@angular/router": "^17.0.5", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/tracking": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/tracking": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/integration-libs/digital-payments/package.json b/integration-libs/digital-payments/package.json index 557a1681bcf..46c9d00cd06 100644 --- a/integration-libs/digital-payments/package.json +++ b/integration-libs/digital-payments/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/digital-payments", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Digital Payments Integration library for Spartacus", "keywords": [ "spartacus", @@ -27,11 +27,11 @@ "@angular/forms": "^17.0.5", "@angular/router": "^17.0.5", "@ng-select/ng-select": "^12.0.4", - "@spartacus/cart": "2211.24.1", - "@spartacus/checkout": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/checkout": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/integration-libs/epd-visualization/package.json b/integration-libs/epd-visualization/package.json index 33f3a522f56..9515920d388 100644 --- a/integration-libs/epd-visualization/package.json +++ b/integration-libs/epd-visualization/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/epd-visualization", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "SAP Enterprise Product Development Visualization integration library for Spartacus", "keywords": [ "spartacus", @@ -38,11 +38,11 @@ "@angular/forms": "^17.0.5", "@angular/router": "^17.0.5", "@sapui5/ts-types-esm": "1.120.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, diff --git a/integration-libs/opps/package.json b/integration-libs/opps/package.json index 89215925f14..b804742ada9 100644 --- a/integration-libs/opps/package.json +++ b/integration-libs/opps/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/opps", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "OPPS (Omni-Channel Personalization and Promotions Services) library for Spartacus", "keywords": [ "spartacus", @@ -24,9 +24,9 @@ "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", "@angular/router": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/integration-libs/s4om/package.json b/integration-libs/s4om/package.json index 9b0e9665a76..16f69686a24 100644 --- a/integration-libs/s4om/package.json +++ b/integration-libs/s4om/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/s4om", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "S/4HANA Order Management (b2b feature)", "keywords": [ "spartacus", @@ -23,13 +23,13 @@ "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/pdf-invoices": "2211.24.1", - "@spartacus/requested-delivery-date": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/pdf-invoices": "2211.25.0-3", + "@spartacus/requested-delivery-date": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/integration-libs/segment-refs/package.json b/integration-libs/segment-refs/package.json index 41b8bb34d71..b034da4876f 100644 --- a/integration-libs/segment-refs/package.json +++ b/integration-libs/segment-refs/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/segment-refs", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "segment-refs", "keywords": [ "spartacus", @@ -23,8 +23,8 @@ "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", "rxjs": "^7.8.0" }, "publishConfig": { diff --git a/projects/assets/package.json b/projects/assets/package.json index 064ff0a68be..654fa03a62b 100644 --- a/projects/assets/package.json +++ b/projects/assets/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/assets", - "version": "2211.24.1", + "version": "2211.25.0-3", "homepage": "https://github.com/SAP/spartacus", "repository": "https://github.com/SAP/spartacus/tree/develop/projects/assets", "scripts": { diff --git a/projects/core/package.json b/projects/core/package.json index ed3cfa6a99d..0d8b9a1c228 100644 --- a/projects/core/package.json +++ b/projects/core/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/core", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Spartacus - the core framework", "keywords": [ "spartacus", diff --git a/projects/schematics/package.json b/projects/schematics/package.json index a659ee6ae9d..38c3346b0ca 100644 --- a/projects/schematics/package.json +++ b/projects/schematics/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/schematics", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Spartacus schematics", "keywords": [ "spartacus", diff --git a/projects/schematics/src/dependencies.json b/projects/schematics/src/dependencies.json index b6cdf3cb2e6..71b58138cf5 100644 --- a/projects/schematics/src/dependencies.json +++ b/projects/schematics/src/dependencies.json @@ -38,7 +38,7 @@ "@ngrx/effects": "^17.0.1", "@ngrx/router-store": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/core": "2211.24.1", + "@spartacus/core": "2211.25.0-3", "ngx-infinite-scroll": "^17.0.0", "rxjs": "^7.8.0" }, @@ -51,10 +51,10 @@ "@spartacus/setup": { "@angular/core": "^17.0.5", "@angular/ssr": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/user": "2211.24.1" + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3" }, "@spartacus/asm": { "@angular-devkit/schematics": "^17.0.5", @@ -64,14 +64,14 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefinder": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefinder": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/cart": { @@ -83,11 +83,11 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, @@ -99,13 +99,13 @@ "@angular/router": "^17.0.5", "@ng-select/ng-select": "^12.0.4", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, @@ -115,23 +115,23 @@ "@angular/core": "^17.0.5", "@angular/forms": "^17.0.5", "@angular/router": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/estimated-delivery-date": { "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/order": { @@ -143,13 +143,13 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/pdf-invoices": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/pdf-invoices": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/organization": { @@ -161,13 +161,13 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, @@ -176,10 +176,10 @@ "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", "@angular/forms": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/pickup-in-store": { @@ -190,14 +190,14 @@ "@angular/router": "^17.0.5", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefinder": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefinder": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, @@ -206,10 +206,10 @@ "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", "@angular/router": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, @@ -222,22 +222,22 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/checkout": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/checkout": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/qualtrics": { "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, @@ -247,11 +247,11 @@ "@angular/core": "^17.0.5", "@angular/forms": "^17.0.5", "@angular/router": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, @@ -260,21 +260,21 @@ "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", "@angular/forms": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/checkout": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/checkout": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/smartedit": { "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/storefinder": { @@ -285,10 +285,10 @@ "@angular/router": "^17.0.5", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, @@ -296,8 +296,8 @@ "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/user": { @@ -308,10 +308,10 @@ "@angular/router": "^17.0.5", "@ng-select/ng-select": "^12.0.4", "@ngrx/store": "^17.0.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/cdc": { @@ -323,19 +323,19 @@ "@ng-select/ng-select": "^12.0.4", "@ngrx/effects": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/asm": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/organization": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/user": "2211.24.1", + "@spartacus/asm": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/organization": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/user": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/cdp": { "@angular-devkit/schematics": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/customer-ticketing": "2211.24.1", - "@spartacus/schematics": "2211.24.1", + "@spartacus/customer-ticketing": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/cds": { @@ -344,12 +344,12 @@ "@angular/core": "^17.0.5", "@angular/router": "^17.0.5", "@ngrx/store": "^17.0.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/order": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/tracking": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/order": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/tracking": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/digital-payments": { @@ -359,11 +359,11 @@ "@angular/forms": "^17.0.5", "@angular/router": "^17.0.5", "@ng-select/ng-select": "^12.0.4", - "@spartacus/cart": "2211.24.1", - "@spartacus/checkout": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/checkout": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/epd-visualization": { @@ -373,11 +373,11 @@ "@angular/forms": "^17.0.5", "@angular/router": "^17.0.5", "@sapui5/ts-types-esm": "1.120.1", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "bootstrap": "^4.6.2", "rxjs": "^7.8.0" }, @@ -386,30 +386,30 @@ "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", "@angular/router": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/s4om": { "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/cart": "2211.24.1", - "@spartacus/core": "2211.24.1", - "@spartacus/pdf-invoices": "2211.24.1", - "@spartacus/requested-delivery-date": "2211.24.1", - "@spartacus/schematics": "2211.24.1", - "@spartacus/storefront": "2211.24.1", - "@spartacus/styles": "2211.24.1", + "@spartacus/cart": "2211.25.0-3", + "@spartacus/core": "2211.25.0-3", + "@spartacus/pdf-invoices": "2211.25.0-3", + "@spartacus/requested-delivery-date": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", + "@spartacus/storefront": "2211.25.0-3", + "@spartacus/styles": "2211.25.0-3", "rxjs": "^7.8.0" }, "@spartacus/segment-refs": { "@angular-devkit/schematics": "^17.0.5", "@angular/common": "^17.0.5", "@angular/core": "^17.0.5", - "@spartacus/core": "2211.24.1", - "@spartacus/schematics": "2211.24.1", + "@spartacus/core": "2211.25.0-3", + "@spartacus/schematics": "2211.25.0-3", "rxjs": "^7.8.0" }, "storefrontapp": { diff --git a/projects/schematics/src/ng-add/__snapshots__/index_spec.ts.snap b/projects/schematics/src/ng-add/__snapshots__/index_spec.ts.snap index 645b1e90739..292b3702747 100644 --- a/projects/schematics/src/ng-add/__snapshots__/index_spec.ts.snap +++ b/projects/schematics/src/ng-add/__snapshots__/index_spec.ts.snap @@ -60,11 +60,11 @@ exports[`Spartacus Schematics: ng-add should add spartacus properly with SSR 2`] "@ngrx/effects": "^17.0.1", "@ngrx/router-store": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/assets": "~2211.24.1", - "@spartacus/core": "~2211.24.1", - "@spartacus/setup": "~2211.24.1", - "@spartacus/storefront": "~2211.24.1", - "@spartacus/styles": "~2211.24.1", + "@spartacus/assets": "~2211.25.0-3", + "@spartacus/core": "~2211.25.0-3", + "@spartacus/setup": "~2211.25.0-3", + "@spartacus/storefront": "~2211.25.0-3", + "@spartacus/styles": "~2211.25.0-3", "angular-oauth2-oidc": "^17.0.1", "bootstrap": "^4.6.2", "express": "^4.18.2", diff --git a/projects/ssr-tests/package.json b/projects/ssr-tests/package.json index 188f5df4f49..48db9b266f2 100644 --- a/projects/ssr-tests/package.json +++ b/projects/ssr-tests/package.json @@ -1,6 +1,6 @@ { "name": "ssr-tests", - "version": "2211.24.1", + "version": "2211.25.0-3", "private": true, "description": "Spartacus SSR Tests", "keywords": [ diff --git a/projects/storefrontlib/package.json b/projects/storefrontlib/package.json index 313d4c6b7be..5aadbe72c5a 100644 --- a/projects/storefrontlib/package.json +++ b/projects/storefrontlib/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/storefront", - "version": "2211.24.1", + "version": "2211.25.0-3", "keywords": [ "spartacus", "storefront", @@ -23,7 +23,7 @@ "@ngrx/effects": "^17.0.1", "@ngrx/router-store": "^17.0.1", "@ngrx/store": "^17.0.1", - "@spartacus/core": "2211.24.1", + "@spartacus/core": "2211.25.0-3", "ngx-infinite-scroll": "^17.0.0", "rxjs": "^7.8.0" }, diff --git a/projects/storefrontstyles/package.json b/projects/storefrontstyles/package.json index e43f9dfcce1..fe2f56a8ebd 100644 --- a/projects/storefrontstyles/package.json +++ b/projects/storefrontstyles/package.json @@ -1,6 +1,6 @@ { "name": "@spartacus/styles", - "version": "2211.24.1", + "version": "2211.25.0-3", "description": "Style library containing global styles", "keywords": [ "spartacus", diff --git a/projects/storefrontstyles/scss/_versioning.scss b/projects/storefrontstyles/scss/_versioning.scss index 144ee396c1f..a465d76881b 100644 --- a/projects/storefrontstyles/scss/_versioning.scss +++ b/projects/storefrontstyles/scss/_versioning.scss @@ -28,8 +28,8 @@ // or `$styleVersion` are enabled. $_fullVersion: ( major: 2211, - minor: 24, - patch: 1, + minor: 25, + patch: 0, ); // The _global_ major version. Any (left over) styles from previous stable versions diff --git a/tools/config/const.ts b/tools/config/const.ts index 1f11ba30701..cc3bbac56d0 100644 --- a/tools/config/const.ts +++ b/tools/config/const.ts @@ -10,4 +10,4 @@ export const SPARTACUS_SCOPE = '@spartacus'; export const SAP_SCOPE = 'sap'; export const SAPUI5_TYPES = '@sapui5/ts-types-esm'; export const SPARTACUS_SCHEMATICS = `${SPARTACUS_SCOPE}/schematics`; -export const PUBLISHING_VERSION = '2211.24.1'; +export const PUBLISHING_VERSION = '2211.25.0-3'; From 7581dce755ae43d5641dc1391f23c7cd3f62cfd9 Mon Sep 17 00:00:00 2001 From: PioBar <72926984+Pio-Bar@users.noreply.github.com> Date: Wed, 26 Jun 2024 11:07:51 +0200 Subject: [PATCH 17/23] feat: (CXSPA-1045) - image gallery zoom accessible by keyboard (#18820) Co-authored-by: Piotr Bartkowiak Co-authored-by: Miguel Estrada <15113219+developpeurweb@users.noreply.github.com> --- .../product-image-zoom-view.component.html | 72 +++++++++++++++---- .../product-image-zoom-view.component.spec.ts | 40 ++++++++++- .../product-image-zoom-view.component.ts | 32 ++++++++- .../product-image-zoom.module.ts | 8 ++- .../styles/_product-image-zoom-view.scss | 50 +++++++++++++ .../assets/src/translations/en/common.json | 2 + .../feature-toggles/config/feature-toggles.ts | 6 ++ .../spartacus/spartacus-features.module.ts | 1 + .../misc/icon/fontawesome-icon.config.ts | 2 + .../cms-components/misc/icon/icon.model.ts | 2 + 10 files changed, 197 insertions(+), 18 deletions(-) diff --git a/feature-libs/product/image-zoom/components/product-image-zoom/product-image-zoom-view/product-image-zoom-view.component.html b/feature-libs/product/image-zoom/components/product-image-zoom/product-image-zoom-view/product-image-zoom-view.component.html index f508b7ee34f..d0a498bab8f 100644 --- a/feature-libs/product/image-zoom/components/product-image-zoom/product-image-zoom-view/product-image-zoom-view.component.html +++ b/feature-libs/product/image-zoom/components/product-image-zoom/product-image-zoom-view/product-image-zoom-view.component.html @@ -9,24 +9,70 @@ - - -
+ +
+
+ + +
+
+ + + +
+ +
-
- - +
+ + + +
+
- - {{ - 'addToWishList.add' | cxTranslate - }} - - + +
+ + + +
diff --git a/feature-libs/cart/wish-list/components/add-to-wishlist/add-to-wish-list.component.spec.ts b/feature-libs/cart/wish-list/components/add-to-wishlist/add-to-wish-list.component.spec.ts index 2d49e89ddbf..236ffcd977d 100644 --- a/feature-libs/cart/wish-list/components/add-to-wishlist/add-to-wish-list.component.spec.ts +++ b/feature-libs/cart/wish-list/components/add-to-wishlist/add-to-wish-list.component.spec.ts @@ -14,6 +14,7 @@ import { Cart, OrderEntry } from '@spartacus/cart/base/root'; import { WishListFacade } from '@spartacus/cart/wish-list/root'; import { AuthService, I18nTestingModule, Product } from '@spartacus/core'; import { CurrentProductService } from '@spartacus/storefront'; +import { MockFeatureDirective } from 'projects/storefrontlib/shared/test/mock-feature-directive'; import { BehaviorSubject, Observable, of } from 'rxjs'; import { AddToWishListComponent } from './add-to-wish-list.component'; import createSpy = jasmine.createSpy; @@ -113,6 +114,7 @@ describe('AddToWishListComponent', () => { MockIconComponent, MockUrlPipe, MockAtMessageDirective, + MockFeatureDirective, ], providers: [ { provide: AuthService, useClass: MockAuthService }, diff --git a/feature-libs/cart/wish-list/components/add-to-wishlist/add-to-wish-list.module.ts b/feature-libs/cart/wish-list/components/add-to-wishlist/add-to-wish-list.module.ts index 3dbefc18af4..98757588831 100644 --- a/feature-libs/cart/wish-list/components/add-to-wishlist/add-to-wish-list.module.ts +++ b/feature-libs/cart/wish-list/components/add-to-wishlist/add-to-wish-list.module.ts @@ -9,11 +9,12 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { CmsConfig, + FeaturesConfigModule, I18nModule, provideDefaultConfig, UrlModule, } from '@spartacus/core'; -import { IconModule, AtMessageModule } from '@spartacus/storefront'; +import { AtMessageModule, IconModule } from '@spartacus/storefront'; import { AddToWishListComponent } from './add-to-wish-list.component'; @NgModule({ @@ -24,6 +25,7 @@ import { AddToWishListComponent } from './add-to-wish-list.component'; RouterModule, UrlModule, AtMessageModule, + FeaturesConfigModule, ], providers: [ provideDefaultConfig({ diff --git a/feature-libs/product/image-zoom/components/product-image-zoom/product-image-zoom-trigger/product-image-zoom-trigger.component.html b/feature-libs/product/image-zoom/components/product-image-zoom/product-image-zoom-trigger/product-image-zoom-trigger.component.html index c1b15c76197..27b3464a10e 100644 --- a/feature-libs/product/image-zoom/components/product-image-zoom/product-image-zoom-trigger/product-image-zoom-trigger.component.html +++ b/feature-libs/product/image-zoom/components/product-image-zoom/product-image-zoom-trigger/product-image-zoom-trigger.component.html @@ -1,4 +1,16 @@ + + + + + + + + + +
{{ 'productDetails.noReviews' | cxTranslate }} diff --git a/projects/storefrontlib/cms-components/product/product-intro/product-intro.component.spec.ts b/projects/storefrontlib/cms-components/product/product-intro/product-intro.component.spec.ts index dcb3fd60ff8..9415326f1c1 100644 --- a/projects/storefrontlib/cms-components/product/product-intro/product-intro.component.spec.ts +++ b/projects/storefrontlib/cms-components/product/product-intro/product-intro.component.spec.ts @@ -10,6 +10,7 @@ import { ComponentCreateEvent, ComponentDestroyEvent, } from '@spartacus/storefront'; +import { MockFeatureDirective } from 'projects/storefrontlib/shared/test/mock-feature-directive'; import { EMPTY, Observable, of } from 'rxjs'; import { CurrentProductService } from '../current-product.service'; import { ProductIntroComponent } from './product-intro.component'; @@ -50,7 +51,11 @@ describe('ProductIntroComponent in product', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ imports: [I18nTestingModule], - declarations: [ProductIntroComponent, MockStarRatingComponent], + declarations: [ + ProductIntroComponent, + MockStarRatingComponent, + MockFeatureDirective, + ], providers: [ { provide: CurrentProductService, diff --git a/projects/storefrontlib/cms-components/product/product-intro/product-intro.module.ts b/projects/storefrontlib/cms-components/product/product-intro/product-intro.module.ts index 0c11a2cd209..12baebf8782 100644 --- a/projects/storefrontlib/cms-components/product/product-intro/product-intro.module.ts +++ b/projects/storefrontlib/cms-components/product/product-intro/product-intro.module.ts @@ -6,12 +6,17 @@ import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; -import { CmsConfig, I18nModule, provideDefaultConfig } from '@spartacus/core'; +import { + CmsConfig, + FeaturesConfigModule, + I18nModule, + provideDefaultConfig, +} from '@spartacus/core'; import { StarRatingModule } from '../../../shared/components/star-rating/star-rating.module'; import { ProductIntroComponent } from './product-intro.component'; @NgModule({ - imports: [CommonModule, I18nModule, StarRatingModule], + imports: [CommonModule, I18nModule, StarRatingModule, FeaturesConfigModule], providers: [ provideDefaultConfig({ cmsComponents: { From f7e3d10edd8a333f2a9c0c7e34dd3691fa1098a4 Mon Sep 17 00:00:00 2001 From: Radhep Sabapathipillai <34665674+RadhepS@users.noreply.github.com> Date: Wed, 26 Jun 2024 13:47:35 -0400 Subject: [PATCH 19/23] chore: update sampledata workflow script to include 2211 (#19003) closes: https://jira.tools.sap/browse/CXSPA-7740 --- ci-scripts/publish-sample-data.sh | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/ci-scripts/publish-sample-data.sh b/ci-scripts/publish-sample-data.sh index 45a9c403557..d2e418599bf 100755 --- a/ci-scripts/publish-sample-data.sh +++ b/ci-scripts/publish-sample-data.sh @@ -4,8 +4,12 @@ TAG_NAME="sampledata" SAMPLE_DATA_ASSETS_FOLDER="sample-data-assets" STOREFRONT_FILE_NAME="spartacussampledata" -SAMPLE_DATA_UNRELEASED_BRANCH="release/6.x" -UNRELEASED_SPARTACUS_VERSION_NAME="$STOREFRONT_FILE_NAME-version-6-x" + +SAMPLE_DATA_UNRELEASED_BRANCH="release/2211.x" +UNRELEASED_SPARTACUS_VERSION_NAME="$STOREFRONT_FILE_NAME-version-2211-x" + +SAMPLE_DATA_UNRELEASED_BRANCH6="release/6.x" +UNRELEASED_SPARTACUS_VERSION_NAME6="$STOREFRONT_FILE_NAME-version-6-x" SAMPLE_DATA_CURRENT_BRANCH="release/5.x" CURRENT_SPARTACUS_VERSION_NAME="$STOREFRONT_FILE_NAME-version-5-x" @@ -23,12 +27,17 @@ function download_sample_data_from_spartacussample_repo { } echo "-----" -echo "Downloading UNRELEASED sample data for 6.x" +echo "Downloading PREVIOUS sample data for 6.x" download_sample_data_from_spartacussample_repo $SAMPLE_DATA_UNRELEASED_BRANCH $UNRELEASED_SPARTACUS_VERSION_NAME echo "-----" -echo "Downloading CURRENT sample data for 5.x" +echo "Downloading PREVIOUS sample data for 6.x" + +download_sample_data_from_spartacussample_repo $SAMPLE_DATA_UNRELEASED_BRANCH6 $UNRELEASED_SPARTACUS_VERSION_NAME6 + +echo "-----" +echo "Downloading PREVIOUS sample data for 5.x" download_sample_data_from_spartacussample_repo $SAMPLE_DATA_CURRENT_BRANCH $CURRENT_SPARTACUS_VERSION_NAME @@ -55,7 +64,8 @@ echo "-----" echo "Create a release with created tag" gh release create $TAG_NAME ./$SAMPLE_DATA_ASSETS_FOLDER/** --repo "https://$GH_TOKEN@github.com/SAP-samples/cloud-commerce-sample-setup.git" --title "Spartacus Sample Data" --notes "Spartacus sample data releases: -6-x: unreleased -5-x: current release +2211-x: current release +6-x: previous release +5-x: previous release 4-x: previous release -3-x: old release" +3-x: old release" \ No newline at end of file From 75e8ca4045bb4d936a77d5395b5049161f89faf9 Mon Sep 17 00:00:00 2001 From: Radhep Sabapathipillai <34665674+RadhepS@users.noreply.github.com> Date: Wed, 26 Jun 2024 16:38:32 -0400 Subject: [PATCH 20/23] chore: optimize release script to avoid timeouts (#19006) closes: https://jira.tools.sap/browse/CXSPA-7607 --- .npmignore | 1 + ci-scripts/release-packer.sh | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.npmignore b/.npmignore index 3ba6feeee01..b7599e66bb7 100644 --- a/.npmignore +++ b/.npmignore @@ -2,3 +2,4 @@ sonar-project.properties sub-folder/ .pipeline/ +tmp/** diff --git a/ci-scripts/release-packer.sh b/ci-scripts/release-packer.sh index 690df6b02f4..17583a51e24 100755 --- a/ci-scripts/release-packer.sh +++ b/ci-scripts/release-packer.sh @@ -5,12 +5,15 @@ set -e shopt -s extglob dotglob +# Build all the libraries and generate the dist folders to use when releasing +function build_libs { + npm ci && npm run build:libs +} + # Configure the project to move everything into a sub-folder to keep root clean for publishing function configure_project { mkdir sub-folder mv !(sub-folder) sub-folder - cd sub-folder - npm ci && npm run build:libs } # Clear root containing the old package so the next package can be published @@ -49,6 +52,8 @@ function pack { if [[ $1 == 'configure' ]]; then configure_project +elif [[ $1 == 'build' ]]; then + build_libs else clear_root pack "$1" From e543cfa9b12fe733917055ad47294321728f4fe5 Mon Sep 17 00:00:00 2001 From: Reid-McNaughton <99927305+Reid-McNaughton@users.noreply.github.com> Date: Thu, 27 Jun 2024 10:55:15 +1200 Subject: [PATCH 21/23] fix: set color for toolbar buttons (#18980) CXSPA-7616 The a11yImproveContrast feature toggle caused an unexpected change in the foreground color used in floating toolbar buttons. This change restores the old behaviour. --- .../visual-viewer-toolbar-button.component.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/integration-libs/epd-visualization/styles/components/visual-viewer/visual-viewer-toolbar-button.component.scss b/integration-libs/epd-visualization/styles/components/visual-viewer/visual-viewer-toolbar-button.component.scss index e20c98b5bfb..5d6388f8bbe 100644 --- a/integration-libs/epd-visualization/styles/components/visual-viewer/visual-viewer-toolbar-button.component.scss +++ b/integration-libs/epd-visualization/styles/components/visual-viewer/visual-viewer-toolbar-button.component.scss @@ -56,6 +56,7 @@ } .btn-link { + color: var(--cx-color-text) !important; text-decoration: none !important; font-size: $small-font-size; @@ -68,6 +69,10 @@ } } + button:disabled { + color: var(--cx-color-dark) !important; + } + .checked { background-color: var(--cx-color-background); } From 2c46b3769f03a3eb8a1add3efa546342842969e5 Mon Sep 17 00:00:00 2001 From: Roman <129765378+rmch91@users.noreply.github.com> Date: Fri, 28 Jun 2024 15:22:22 +0200 Subject: [PATCH 22/23] fix: Fix sonar issues (#19011) --- .../styles/_pickup-option-dialog.scss | 12 +++++------- .../pickup-in-store/styles/_store-search.scss | 7 +++---- .../content/navigation/_scroll-to-top.scss | 1 - .../scss/components/layout/header/_header.scss | 18 ++++++++---------- .../layout/header/_site-context-selector.scss | 1 - .../scss/cxbase/blocks/buttons.scss | 1 - 6 files changed, 16 insertions(+), 24 deletions(-) diff --git a/feature-libs/pickup-in-store/styles/_pickup-option-dialog.scss b/feature-libs/pickup-in-store/styles/_pickup-option-dialog.scss index 8b206307255..33acc877e9d 100644 --- a/feature-libs/pickup-in-store/styles/_pickup-option-dialog.scss +++ b/feature-libs/pickup-in-store/styles/_pickup-option-dialog.scss @@ -16,18 +16,16 @@ } @extend .modal-content; - .cx-dialog-header { - .cx-dialog-title { - @include type('3'); - margin-inline-start: var(--cx-margin-left, 0.875rem); - } - } - .cx-dialog-header { margin-bottom: 0; padding-bottom: 0; border: none; margin-top: 1.15rem; + + .cx-dialog-title { + @include type('3'); + margin-inline-start: var(--cx-margin-left, 0.875rem); + } } .cx-dialog-body { diff --git a/feature-libs/pickup-in-store/styles/_store-search.scss b/feature-libs/pickup-in-store/styles/_store-search.scss index 302e8607860..6112e6874b7 100644 --- a/feature-libs/pickup-in-store/styles/_store-search.scss +++ b/feature-libs/pickup-in-store/styles/_store-search.scss @@ -20,13 +20,12 @@ } .cx-find-a-store-button { flex-basis: 100%; - margin-top: 1rem; - margin-bottom: 1rem; + margin-top: 0; + margin-bottom: 0; + @media screen and (min-width: 927px) { flex-basis: 40%; } - margin-top: 0; - margin-bottom: 0; } .cx-find-a-store-link-container { @include media-breakpoint-down(sm) { diff --git a/projects/storefrontstyles/scss/components/content/navigation/_scroll-to-top.scss b/projects/storefrontstyles/scss/components/content/navigation/_scroll-to-top.scss index 0900b72ecab..3cec128b3ad 100644 --- a/projects/storefrontstyles/scss/components/content/navigation/_scroll-to-top.scss +++ b/projects/storefrontstyles/scss/components/content/navigation/_scroll-to-top.scss @@ -16,7 +16,6 @@ height: inherit; width: inherit; font-size: 30px; - border-radius: 4px; color: var(--cx-color-inverse); background-color: var(--cx-color-primary); border: transparent; diff --git a/projects/storefrontstyles/scss/components/layout/header/_header.scss b/projects/storefrontstyles/scss/components/layout/header/_header.scss index f0752c7b855..4920c7e6c40 100644 --- a/projects/storefrontstyles/scss/components/layout/header/_header.scss +++ b/projects/storefrontstyles/scss/components/layout/header/_header.scss @@ -134,6 +134,14 @@ $space: 0.5rem; .cx-hamburger { display: block; + + &.is-active { + .hamburger-inner, + .hamburger-inner::before, + .hamburger-inner::after { + background-color: var(--cx-color-primary); + } + } } @include media-breakpoint-only(xs) { @@ -202,16 +210,6 @@ $space: 0.5rem; } } - .cx-hamburger { - &.is-active { - .hamburger-inner, - .hamburger-inner::before, - .hamburger-inner::after { - background-color: var(--cx-color-primary); - } - } - } - .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after { diff --git a/projects/storefrontstyles/scss/components/layout/header/_site-context-selector.scss b/projects/storefrontstyles/scss/components/layout/header/_site-context-selector.scss index 83f372e3da8..a34cbb8b1b3 100644 --- a/projects/storefrontstyles/scss/components/layout/header/_site-context-selector.scss +++ b/projects/storefrontstyles/scss/components/layout/header/_site-context-selector.scss @@ -35,7 +35,6 @@ $caretSize: 7px; } select { - color: inherit; background-color: var(--cx-color-light); color: var(--cx-color-text); border: 0; diff --git a/projects/storefrontstyles/scss/cxbase/blocks/buttons.scss b/projects/storefrontstyles/scss/cxbase/blocks/buttons.scss index 8f37b8a3ead..fc3313ef1a2 100644 --- a/projects/storefrontstyles/scss/cxbase/blocks/buttons.scss +++ b/projects/storefrontstyles/scss/cxbase/blocks/buttons.scss @@ -196,7 +196,6 @@ button { &:focus { //this here below will not work unles cx global colors are initially declared in rbg - border-color: var(--cx-color-primary); box-shadow: 0 0 0 0.2em var(--cx-color-visual-focus); background-color: var(--cx-color-transparent); color: var(--cx-color-primary); From 83ebd99566b4f00dce557ac677bd988140188c8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Fra=C5=9B?= Date: Fri, 28 Jun 2024 22:03:30 +0200 Subject: [PATCH 23/23] fix: CXSPA-7665 Remove circular dependency from organization config factories (#19014) closes: https://jira.tools.sap/browse/CXSPA-7665 --- .../components/budget/budget-components.module.ts | 5 +---- .../components/budget/budget.config.ts | 12 ++++++------ .../cost-center/cost-center-components.module.ts | 5 +---- .../components/cost-center/cost-center.config.ts | 10 +++++----- .../permission/permission-components.module.ts | 5 +---- .../components/permission/permission.config.ts | 10 +++++----- .../components/unit/units-components.module.ts | 5 +---- .../administration/components/unit/units.config.ts | 12 ++++++------ .../user-group/user-group-components.module.ts | 5 +---- .../components/user-group/user-group.config.ts | 10 +++++----- .../components/user/user-components.module.ts | 3 +-- .../administration/components/user/user.config.ts | 10 +++++----- 12 files changed, 38 insertions(+), 54 deletions(-) diff --git a/feature-libs/organization/administration/components/budget/budget-components.module.ts b/feature-libs/organization/administration/components/budget/budget-components.module.ts index 21711248305..8e860bfd649 100644 --- a/feature-libs/organization/administration/components/budget/budget-components.module.ts +++ b/feature-libs/organization/administration/components/budget/budget-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -25,9 +24,7 @@ import { BudgetFormModule } from './form/budget-form.module'; ], providers: [ provideDefaultConfig(budgetCmsConfig), - provideDefaultConfigFactory(budgetTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(budgetTableConfigFactory), ], }) export class BudgetComponentsModule {} diff --git a/feature-libs/organization/administration/components/budget/budget.config.ts b/feature-libs/organization/administration/components/budget/budget.config.ts index 262e105f106..a1499721262 100644 --- a/feature-libs/organization/administration/components/budget/budget.config.ts +++ b/feature-libs/organization/administration/components/budget/budget.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard } from '@spartacus/organization/administration/core'; import { ROUTE_PARAMS } from '@spartacus/organization/administration/root'; import { TableConfig } from '@spartacus/storefront'; @@ -80,11 +81,10 @@ export const budgetCmsConfig: CmsConfig = { }, }; -// TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release -export function budgetTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { +export function budgetTableConfigFactory(): TableConfig { + // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newBudgetTableConfig; } return budgetTableConfig; diff --git a/feature-libs/organization/administration/components/cost-center/cost-center-components.module.ts b/feature-libs/organization/administration/components/cost-center/cost-center-components.module.ts index 5ba3e238212..81edb925128 100644 --- a/feature-libs/organization/administration/components/cost-center/cost-center-components.module.ts +++ b/feature-libs/organization/administration/components/cost-center/cost-center-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -30,9 +29,7 @@ import { CostCenterFormModule } from './form/cost-center-form.module'; ], providers: [ provideDefaultConfig(costCenterCmsConfig), - provideDefaultConfigFactory(costCenterTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(costCenterTableConfigFactory), ], }) export class CostCenterComponentsModule {} diff --git a/feature-libs/organization/administration/components/cost-center/cost-center.config.ts b/feature-libs/organization/administration/components/cost-center/cost-center.config.ts index a241fd9c139..a95b2685237 100644 --- a/feature-libs/organization/administration/components/cost-center/cost-center.config.ts +++ b/feature-libs/organization/administration/components/cost-center/cost-center.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard } from '@spartacus/organization/administration/core'; import { ROUTE_PARAMS } from '@spartacus/organization/administration/root'; import { TableConfig } from '@spartacus/storefront'; @@ -93,11 +94,10 @@ export const costCenterCmsConfig: CmsConfig = { }, }; -export function costCenterTableConfigFactory( - featureConfigService: FeatureConfigService -): TableConfig { +export function costCenterTableConfigFactory(): TableConfig { // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newCostCenterTableConfig; } return costCenterTableConfig; diff --git a/feature-libs/organization/administration/components/permission/permission-components.module.ts b/feature-libs/organization/administration/components/permission/permission-components.module.ts index 3ac4052cb12..9d828a2a8eb 100644 --- a/feature-libs/organization/administration/components/permission/permission-components.module.ts +++ b/feature-libs/organization/administration/components/permission/permission-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -26,9 +25,7 @@ import { ], providers: [ provideDefaultConfig(permissionCmsConfig), - provideDefaultConfigFactory(permissionTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(permissionTableConfigFactory), ], }) export class PermissionComponentsModule {} diff --git a/feature-libs/organization/administration/components/permission/permission.config.ts b/feature-libs/organization/administration/components/permission/permission.config.ts index b1dfe4c7788..69e30f7e4e2 100644 --- a/feature-libs/organization/administration/components/permission/permission.config.ts +++ b/feature-libs/organization/administration/components/permission/permission.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard } from '@spartacus/organization/administration/core'; import { ROUTE_PARAMS } from '@spartacus/organization/administration/root'; import { TableConfig } from '@spartacus/storefront'; @@ -72,11 +73,10 @@ export const permissionCmsConfig: CmsConfig = { }, }; -export function permissionTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { +export function permissionTableConfigFactory(): TableConfig { // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newPermissionTableConfig; } return permisionTableConfig; diff --git a/feature-libs/organization/administration/components/unit/units-components.module.ts b/feature-libs/organization/administration/components/unit/units-components.module.ts index 5a649ad944d..9b831540571 100644 --- a/feature-libs/organization/administration/components/unit/units-components.module.ts +++ b/feature-libs/organization/administration/components/unit/units-components.module.ts @@ -7,7 +7,6 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -35,9 +34,7 @@ import { unitsCmsConfig, unitsTableConfigFactory } from './units.config'; ], providers: [ provideDefaultConfig(unitsCmsConfig), - provideDefaultConfigFactory(unitsTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(unitsTableConfigFactory), ], }) export class UnitsComponentsModule {} diff --git a/feature-libs/organization/administration/components/unit/units.config.ts b/feature-libs/organization/administration/components/unit/units.config.ts index 70dd9e1a2db..a8dc3e33be5 100644 --- a/feature-libs/organization/administration/components/unit/units.config.ts +++ b/feature-libs/organization/administration/components/unit/units.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard, OrgUnitGuard, @@ -194,11 +195,10 @@ export const unitsCmsConfig: CmsConfig = { }, }; -export function unitsTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { - // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release +export function unitsTableConfigFactory(): TableConfig { + // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newUnitsTableConfig; } return unitsTableConfig; diff --git a/feature-libs/organization/administration/components/user-group/user-group-components.module.ts b/feature-libs/organization/administration/components/user-group/user-group-components.module.ts index 3d45d77499d..c217106e398 100644 --- a/feature-libs/organization/administration/components/user-group/user-group-components.module.ts +++ b/feature-libs/organization/administration/components/user-group/user-group-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -30,9 +29,7 @@ import { UserGroupUserModule } from './users/user-group-user-list.module'; ], providers: [ provideDefaultConfig(userGroupCmsConfig), - provideDefaultConfigFactory(userGroupTableConfigFactory, [ - FeatureConfigService, - ]), + provideDefaultConfigFactory(userGroupTableConfigFactory), ], }) export class UserGroupComponentsModule {} diff --git a/feature-libs/organization/administration/components/user-group/user-group.config.ts b/feature-libs/organization/administration/components/user-group/user-group.config.ts index 78f7eec601a..1bf0fecd6d8 100644 --- a/feature-libs/organization/administration/components/user-group/user-group.config.ts +++ b/feature-libs/organization/administration/components/user-group/user-group.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard } from '@spartacus/organization/administration/core'; import { ROUTE_PARAMS } from '@spartacus/organization/administration/root'; import { TableConfig } from '@spartacus/storefront'; @@ -111,11 +112,10 @@ export const userGroupCmsConfig: CmsConfig = { }, }; -export function userGroupTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { +export function userGroupTableConfigFactory(): TableConfig { // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newUserGroupTableConfig; } return userGroupTableConfig; diff --git a/feature-libs/organization/administration/components/user/user-components.module.ts b/feature-libs/organization/administration/components/user/user-components.module.ts index 862708a8880..9f145526de7 100644 --- a/feature-libs/organization/administration/components/user/user-components.module.ts +++ b/feature-libs/organization/administration/components/user/user-components.module.ts @@ -6,7 +6,6 @@ import { NgModule } from '@angular/core'; import { - FeatureConfigService, provideDefaultConfig, provideDefaultConfigFactory, } from '@spartacus/core'; @@ -30,7 +29,7 @@ import { userCmsConfig, userTableConfigFactory } from './user.config'; ], providers: [ provideDefaultConfig(userCmsConfig), - provideDefaultConfigFactory(userTableConfigFactory, [FeatureConfigService]), + provideDefaultConfigFactory(userTableConfigFactory), ], }) export class UserComponentsModule {} diff --git a/feature-libs/organization/administration/components/user/user.config.ts b/feature-libs/organization/administration/components/user/user.config.ts index 579d819f203..7b64cebe7bd 100644 --- a/feature-libs/organization/administration/components/user/user.config.ts +++ b/feature-libs/organization/administration/components/user/user.config.ts @@ -4,7 +4,8 @@ * SPDX-License-Identifier: Apache-2.0 */ -import { AuthGuard, CmsConfig, FeatureConfigService } from '@spartacus/core'; +import { inject } from '@angular/core'; +import { AuthGuard, CmsConfig, FeatureToggles } from '@spartacus/core'; import { AdminGuard, UserGuard, @@ -141,11 +142,10 @@ export const userCmsConfig: CmsConfig = { }, }; -export function userTableConfigFactory( - featureConfigService?: FeatureConfigService -): TableConfig { +export function userTableConfigFactory(): TableConfig { // TODO: (CXSPA-7155) - Remove feature flag and legacy config next major release - if (featureConfigService?.isEnabled('a11yOrganizationLinkableCells')) { + const featureToggles = inject(FeatureToggles); + if (featureToggles.a11yOrganizationLinkableCells) { return newUserTableConfig; } return userTableConfig;