diff --git a/npm/ng-packs/packages/feature-management/src/lib/actions/feature-management.actions.ts b/npm/ng-packs/packages/feature-management/src/lib/actions/feature-management.actions.ts deleted file mode 100644 index 65791be948..0000000000 --- a/npm/ng-packs/packages/feature-management/src/lib/actions/feature-management.actions.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { FeatureManagement } from '../models'; - -/** - * @deprecated To be deleted in v4.0. - */ -export class GetFeatures { - static readonly type = '[FeatureManagement] Get Features'; - constructor(public payload: FeatureManagement.Provider) {} -} - -/** - * @deprecated To be deleted in v4.0. - */ -export class UpdateFeatures { - static readonly type = '[FeatureManagement] Update Features'; - constructor(public payload: FeatureManagement.Provider & FeatureManagement.Features) {} -} diff --git a/npm/ng-packs/packages/feature-management/src/lib/actions/index.ts b/npm/ng-packs/packages/feature-management/src/lib/actions/index.ts deleted file mode 100644 index 66678fb322..0000000000 --- a/npm/ng-packs/packages/feature-management/src/lib/actions/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './feature-management.actions'; diff --git a/npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts b/npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts index 4061965085..84ab3d6984 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/feature-management.module.ts @@ -1,22 +1,16 @@ import { CoreModule } from '@abp/ng.core'; import { ThemeSharedModule } from '@abp/ng.theme.shared'; import { NgModule } from '@angular/core'; -import { NgxsModule } from '@ngxs/store'; import { NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; -import { FreeTextInputDirective } from './directives/free-text-input.directive'; +import { NgxsModule } from '@ngxs/store'; import { FeatureManagementComponent } from './components/feature-management/feature-management.component'; -import { FeatureManagementState } from './states/feature-management.state'; +import { FreeTextInputDirective } from './directives/free-text-input.directive'; const exported = [FeatureManagementComponent, FreeTextInputDirective]; @NgModule({ declarations: [...exported], - imports: [ - CoreModule, - ThemeSharedModule, - NgbNavModule, - NgxsModule.forFeature([FeatureManagementState]), - ], + imports: [CoreModule, ThemeSharedModule, NgbNavModule, NgxsModule.forFeature([])], exports: [...exported], }) export class FeatureManagementModule {} diff --git a/npm/ng-packs/packages/feature-management/src/lib/models/feature-management.ts b/npm/ng-packs/packages/feature-management/src/lib/models/feature-management.ts index ef53e6d11c..c04d917515 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/models/feature-management.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/models/feature-management.ts @@ -1,50 +1,6 @@ import { EventEmitter } from '@angular/core'; export namespace FeatureManagement { - /** - * @deprecated To be deleted in v4.0. - */ - export interface State { - features: Feature[]; - } - - /** - * @deprecated To be deleted in v4.0. - */ - export interface ValueType { - name: string; - properties: object; - validator: object; - } - - /** - * @deprecated To be deleted in v4.0. - */ - export interface Feature { - name: string; - displayName: string; - value: string; - description?: string; - valueType?: ValueType; - depth?: number; - parentName?: string; - } - - /** - * @deprecated To be deleted in v4.0. - */ - export interface Features { - features: Feature[]; - } - - /** - * @deprecated To be deleted in v4.0. - */ - export interface Provider { - providerName: string; - providerKey: string; - } - export interface FeatureManagementComponentInputs { visible: boolean; readonly providerName: string; diff --git a/npm/ng-packs/packages/feature-management/src/lib/services/feature-management-state.service.ts b/npm/ng-packs/packages/feature-management/src/lib/services/feature-management-state.service.ts deleted file mode 100644 index 20c76c41ae..0000000000 --- a/npm/ng-packs/packages/feature-management/src/lib/services/feature-management-state.service.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Injectable } from '@angular/core'; -import { Store } from '@ngxs/store'; -import { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions'; -import { FeatureManagementState } from '../states/feature-management.state'; - -@Injectable({ - providedIn: 'root', -}) -export class FeatureManagementStateService { - constructor(private store: Store) {} - - getFeatures() { - return this.store.selectSnapshot(FeatureManagementState.getFeatures); - } - - dispatchGetFeatures(...args: ConstructorParameters) { - return this.store.dispatch(new GetFeatures(...args)); - } - - dispatchUpdateFeatures(...args: ConstructorParameters) { - return this.store.dispatch(new UpdateFeatures(...args)); - } -} diff --git a/npm/ng-packs/packages/feature-management/src/lib/services/feature-management.service.ts b/npm/ng-packs/packages/feature-management/src/lib/services/feature-management.service.ts deleted file mode 100644 index ad66f0946e..0000000000 --- a/npm/ng-packs/packages/feature-management/src/lib/services/feature-management.service.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Injectable } from '@angular/core'; -import { RestService, Rest } from '@abp/ng.core'; -import { Store } from '@ngxs/store'; -import { Observable } from 'rxjs'; -import { FeatureManagement } from '../models'; - -@Injectable({ - providedIn: 'root', -}) -/** - * @deprecated Use FeaturesService instead. To be deleted in v4.0. - */ -export class FeatureManagementService { - apiName = 'FeatureManagement'; - - constructor(private rest: RestService, private store: Store) {} - - getFeatures(params: FeatureManagement.Provider): Observable { - const request: Rest.Request = { - method: 'GET', - url: '/api/feature-management/features', - params, - }; - return this.rest.request(request, { - apiName: this.apiName, - }); - } - - updateFeatures({ - features, - providerKey, - providerName, - }: FeatureManagement.Provider & FeatureManagement.Features): Observable { - const request: Rest.Request = { - method: 'PUT', - url: '/api/feature-management/features', - body: { features }, - params: { providerKey, providerName }, - }; - return this.rest.request(request, { apiName: this.apiName }); - } -} diff --git a/npm/ng-packs/packages/feature-management/src/lib/services/index.ts b/npm/ng-packs/packages/feature-management/src/lib/services/index.ts deleted file mode 100644 index 1243410ea6..0000000000 --- a/npm/ng-packs/packages/feature-management/src/lib/services/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './feature-management.service'; -export * from './feature-management-state.service'; diff --git a/npm/ng-packs/packages/feature-management/src/lib/states/feature-management.state.ts b/npm/ng-packs/packages/feature-management/src/lib/states/feature-management.state.ts deleted file mode 100644 index 4ea68704f2..0000000000 --- a/npm/ng-packs/packages/feature-management/src/lib/states/feature-management.state.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Action, Selector, State, StateContext } from '@ngxs/store'; -import { tap } from 'rxjs/operators'; -import { GetFeatures, UpdateFeatures } from '../actions/feature-management.actions'; -import { FeatureManagement } from '../models/feature-management'; -import { FeatureManagementService } from '../services/feature-management.service'; -import { Injectable } from '@angular/core'; - -/** - * @deprecated To be deleted in v4.0. - */ -@State({ - name: 'FeatureManagementState', - defaults: { features: {} } as FeatureManagement.State, -}) -@Injectable() -export class FeatureManagementState { - @Selector() - static getFeatures({ features }: FeatureManagement.State) { - return features || []; - } - - constructor(private featureManagementService: FeatureManagementService) {} - - @Action(GetFeatures) - getFeatures({ patchState }: StateContext, { payload }: GetFeatures) { - return this.featureManagementService.getFeatures(payload).pipe( - tap(({ features = [] }) => - patchState({ - features, - }), - ), - ); - } - - @Action(UpdateFeatures) - updateFeatures(_, { payload }: UpdateFeatures) { - return this.featureManagementService.updateFeatures(payload); - } -} diff --git a/npm/ng-packs/packages/feature-management/src/lib/states/index.ts b/npm/ng-packs/packages/feature-management/src/lib/states/index.ts deleted file mode 100644 index 3c9c6e26d6..0000000000 --- a/npm/ng-packs/packages/feature-management/src/lib/states/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './feature-management.state'; diff --git a/npm/ng-packs/packages/feature-management/src/lib/tests/feature-management-state.service.spec.ts b/npm/ng-packs/packages/feature-management/src/lib/tests/feature-management-state.service.spec.ts deleted file mode 100644 index 5d59755cbd..0000000000 --- a/npm/ng-packs/packages/feature-management/src/lib/tests/feature-management-state.service.spec.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { createServiceFactory, SpectatorService, SpyObject } from '@ngneat/spectator/jest'; -import { Store } from '@ngxs/store'; -import { FeatureManagementStateService } from '../services/feature-management-state.service'; -import { FeatureManagementState } from '../states'; -import * as FeatureManagementActions from '../actions'; - -describe('FeatureManagementStateService', () => { - let service: FeatureManagementStateService; - let spectator: SpectatorService; - let store: SpyObject; - - const createService = createServiceFactory({ - service: FeatureManagementStateService, - mocks: [Store], - }); - beforeEach(() => { - spectator = createService(); - service = spectator.service; - store = spectator.inject(Store); - }); - - test('should have the all FeatureManagementState static methods', () => { - const reg = /(?<=static )(.*)(?=\()/gm; - FeatureManagementState.toString() - .match(reg) - .forEach(fnName => { - expect(service[fnName]).toBeTruthy(); - - const spy = jest.spyOn(store, 'selectSnapshot'); - spy.mockClear(); - - const isDynamicSelector = FeatureManagementState[fnName].name !== 'memoized'; - - if (isDynamicSelector) { - FeatureManagementState[fnName] = jest.fn((...args) => args); - service[fnName]('test', 0, {}); - expect(FeatureManagementState[fnName]).toHaveBeenCalledWith('test', 0, {}); - } else { - service[fnName](); - expect(spy).toHaveBeenCalledWith(FeatureManagementState[fnName]); - } - }); - }); - - test('should have a dispatch method for every FeatureManagementState action', () => { - const reg = /(?<=dispatch)(\w+)(?=\()/gm; - FeatureManagementStateService.toString() - .match(reg) - .forEach(fnName => { - expect(FeatureManagementActions[fnName]).toBeTruthy(); - - const spy = jest.spyOn(store, 'dispatch'); - spy.mockClear(); - - const params = Array.from(new Array(FeatureManagementActions[fnName].length)); - - service[`dispatch${fnName}`](...params); - expect(spy).toHaveBeenCalledWith(new FeatureManagementActions[fnName](...params)); - }); - }); -});