diff --git a/npm/ng-packs/packages/identity-config/README.md b/npm/ng-packs/packages/identity-config/README.md new file mode 100644 index 0000000000..8754748f6a --- /dev/null +++ b/npm/ng-packs/packages/identity-config/README.md @@ -0,0 +1 @@ +# @abp/ng.identity.config \ No newline at end of file diff --git a/npm/ng-packs/packages/identity-config/karma.conf.js b/npm/ng-packs/packages/identity-config/karma.conf.js new file mode 100644 index 0000000000..47f6e498d2 --- /dev/null +++ b/npm/ng-packs/packages/identity-config/karma.conf.js @@ -0,0 +1,32 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, '../../coverage/identity-config'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/npm/ng-packs/packages/identity-config/ng-package.json b/npm/ng-packs/packages/identity-config/ng-package.json new file mode 100644 index 0000000000..d72870cd39 --- /dev/null +++ b/npm/ng-packs/packages/identity-config/ng-package.json @@ -0,0 +1,7 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/identity-config", + "lib": { + "entryFile": "src/public-api.ts" + } +} diff --git a/npm/ng-packs/packages/identity-config/package.json b/npm/ng-packs/packages/identity-config/package.json new file mode 100644 index 0000000000..e7989e56de --- /dev/null +++ b/npm/ng-packs/packages/identity-config/package.json @@ -0,0 +1,7 @@ +{ + "name": "@abp/ng.identity.config", + "version": "0.0.1", + "publishConfig": { + "access": "public" + } +} diff --git a/npm/ng-packs/packages/identity-config/src/lib/identity-config.module.ts b/npm/ng-packs/packages/identity-config/src/lib/identity-config.module.ts new file mode 100644 index 0000000000..9753ed0d08 --- /dev/null +++ b/npm/ng-packs/packages/identity-config/src/lib/identity-config.module.ts @@ -0,0 +1,10 @@ +import { NgModule, APP_INITIALIZER } from '@angular/core'; +import { noop, CoreModule } from '@abp/ng.core'; +import { IdentityConfigService } from './services/identity-config.service'; +import { ThemeSharedModule } from '@abp/ng.theme.shared'; + +@NgModule({ + imports: [CoreModule, ThemeSharedModule], + providers: [{ provide: APP_INITIALIZER, deps: [IdentityConfigService], useFactory: noop, multi: true }], +}) +export class IdentityConfigModule {} diff --git a/npm/ng-packs/packages/identity-config/src/lib/services/identity-config.service.ts b/npm/ng-packs/packages/identity-config/src/lib/services/identity-config.service.ts new file mode 100644 index 0000000000..fe78f8e810 --- /dev/null +++ b/npm/ng-packs/packages/identity-config/src/lib/services/identity-config.service.ts @@ -0,0 +1,32 @@ +import { ABP_ROUTES, eLayoutType, RestService } from '@abp/ng.core'; +import { Injectable } from '@angular/core'; +import { Router } from '@angular/router'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root', +}) +export class IdentityConfigService { + constructor(private router: Router, private restService: RestService) { + ABP_ROUTES.push( + { + name: 'AbpUiNavigation::Menu:Administration', + path: '', + order: 1, + wrapper: true, + }, + { + name: 'AbpIdentity::Menu:IdentityManagement', + path: 'identity', + order: 1, + parentName: 'AbpUiNavigation::Menu:Administration', + layout: eLayoutType.application, + iconClass: 'fa fa-id-card-o', + children: [ + { path: 'roles', name: 'AbpIdentity::Roles', order: 2, requiredPolicy: 'AbpIdentity.Roles' }, + { path: 'users', name: 'AbpIdentity::Users', order: 1, requiredPolicy: 'AbpIdentity.Users' }, + ], + }, + ); + } +} diff --git a/npm/ng-packs/packages/identity-config/src/public-api.ts b/npm/ng-packs/packages/identity-config/src/public-api.ts new file mode 100644 index 0000000000..e702653211 --- /dev/null +++ b/npm/ng-packs/packages/identity-config/src/public-api.ts @@ -0,0 +1,2 @@ +export * from './lib/services/identity-config.service'; +export * from './lib/identity-config.module'; diff --git a/npm/ng-packs/packages/identity-config/src/test.ts b/npm/ng-packs/packages/identity-config/src/test.ts new file mode 100644 index 0000000000..978c64fb83 --- /dev/null +++ b/npm/ng-packs/packages/identity-config/src/test.ts @@ -0,0 +1,21 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone'; +import 'zone.js/dist/zone-testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +declare const require: any; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/npm/ng-packs/packages/identity-config/tsconfig.lib.json b/npm/ng-packs/packages/identity-config/tsconfig.lib.json new file mode 100644 index 0000000000..bd23948e59 --- /dev/null +++ b/npm/ng-packs/packages/identity-config/tsconfig.lib.json @@ -0,0 +1,26 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/lib", + "target": "es2015", + "declaration": true, + "inlineSources": true, + "types": [], + "lib": [ + "dom", + "es2018" + ] + }, + "angularCompilerOptions": { + "annotateForClosureCompiler": true, + "skipTemplateCodegen": true, + "strictMetadataEmit": true, + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true, + "enableResourceInlining": true + }, + "exclude": [ + "src/test.ts", + "**/*.spec.ts" + ] +} diff --git a/npm/ng-packs/packages/identity-config/tsconfig.spec.json b/npm/ng-packs/packages/identity-config/tsconfig.spec.json new file mode 100644 index 0000000000..16da33db07 --- /dev/null +++ b/npm/ng-packs/packages/identity-config/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "outDir": "../../out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "files": [ + "src/test.ts" + ], + "include": [ + "**/*.spec.ts", + "**/*.d.ts" + ] +} diff --git a/npm/ng-packs/packages/identity-config/tslint.json b/npm/ng-packs/packages/identity-config/tslint.json new file mode 100644 index 0000000000..8c3919ea62 --- /dev/null +++ b/npm/ng-packs/packages/identity-config/tslint.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tslint.json", + "rules": { + "directive-selector": [ + true, + "attribute", + "abp", + "camelCase" + ], + "component-selector": [ + true, + "element", + "abp", + "kebab-case" + ] + } +} diff --git a/npm/ng-packs/packages/identity/src/lib/constants/routes.ts b/npm/ng-packs/packages/identity/src/lib/constants/routes.ts index cece75ad63..1dfc53245e 100644 --- a/npm/ng-packs/packages/identity/src/lib/constants/routes.ts +++ b/npm/ng-packs/packages/identity/src/lib/constants/routes.ts @@ -1,5 +1,9 @@ import { eLayoutType, ABP } from '@abp/ng.core'; +/** + * + * @deprecated + */ export const IDENTITY_ROUTES = { routes: [ { diff --git a/npm/ng-packs/packages/identity/src/lib/identity.module.ts b/npm/ng-packs/packages/identity/src/lib/identity.module.ts index d94ba410d9..15b1b1c7cb 100644 --- a/npm/ng-packs/packages/identity/src/lib/identity.module.ts +++ b/npm/ng-packs/packages/identity/src/lib/identity.module.ts @@ -27,6 +27,10 @@ import { NgxValidateCoreModule } from '@ngx-validate/core'; }) export class IdentityModule {} +/** + * + * @deprecated + */ export function IdentityProviders(): Provider[] { return []; }