From 10469d4169e607f2ebe2aa659e6e8c5991bd6908 Mon Sep 17 00:00:00 2001 From: sumeyye Date: Mon, 17 Nov 2025 14:06:53 +0300 Subject: [PATCH] add: cms kit library skeleton --- npm/ng-packs/packages/cms-kit/README.md | 87 +++++++++++++++++++ .../cms-kit/admin/config/ng-package.json | 6 ++ .../cms-kit/admin/config/src/enums/index.ts | 2 + .../admin/config/src/enums/policy-names.ts | 9 ++ .../admin/config/src/enums/route-names.ts | 9 ++ .../cms-kit-admin-config.provider.ts | 6 ++ .../admin/config/src/providers/index.ts | 2 + .../config/src/providers/route.provider.ts | 80 +++++++++++++++++ .../cms-kit/admin/config/src/public-api.ts | 2 + .../packages/cms-kit/admin/ng-package.json | 6 ++ .../cms-kit/admin/src/cms-kit-admin.routes.ts | 33 +++++++ .../cms-kit/admin/src/components/index.ts | 8 ++ .../cms-kit/admin/src/defaults/index.ts | 0 .../cms-kit/admin/src/enums/components.ts | 28 ++++++ .../packages/cms-kit/admin/src/enums/index.ts | 1 + .../admin/src/models/config-options.ts | 3 + .../cms-kit/admin/src/models/index.ts | 1 + .../packages/cms-kit/admin/src/public-api.ts | 8 ++ .../src/resolvers/extensions.resolver.ts | 8 ++ .../cms-kit/admin/src/resolvers/index.ts | 1 + .../cms-kit/admin/src/services/index.ts | 8 ++ .../admin/src/tokens/extensions.token.ts | 4 + .../cms-kit/admin/src/tokens/index.ts | 1 + npm/ng-packs/packages/cms-kit/jest.config.ts | 23 +++++ npm/ng-packs/packages/cms-kit/ng-package.json | 8 ++ npm/ng-packs/packages/cms-kit/package.json | 17 ++++ npm/ng-packs/packages/cms-kit/project.json | 38 ++++++++ .../cms-kit/public/config/ng-package.json | 6 ++ .../cms-kit/public/config/src/enums/index.ts | 2 + .../public/config/src/enums/policy-names.ts | 5 ++ .../public/config/src/enums/route-names.ts | 5 ++ .../cms-kit-public-config.provider.ts | 6 ++ .../public/config/src/providers/index.ts | 2 + .../config/src/providers/route.provider.ts | 31 +++++++ .../cms-kit/public/config/src/public-api.ts | 2 + .../packages/cms-kit/public/ng-package.json | 6 ++ .../public/src/lib/cms-kit-public.routes.ts | 27 ++++++ .../public/src/lib/components/index.ts | 5 ++ .../public/src/lib/enums/components.ts | 11 +++ .../cms-kit/public/src/lib/enums/index.ts | 1 + .../public/src/lib/models/config-options.ts | 3 + .../cms-kit/public/src/lib/models/index.ts | 1 + .../cms-kit/public/src/lib/public-api.ts | 7 ++ .../src/lib/resolvers/extensions.resolver.ts | 8 ++ .../cms-kit/public/src/lib/resolvers/index.ts | 1 + .../cms-kit/public/src/lib/services/index.ts | 7 ++ .../public/src/lib/tokens/extensions.token.ts | 4 + .../cms-kit/public/src/lib/tokens/index.ts | 1 + .../packages/cms-kit/public/src/public-api.ts | 3 + .../packages/cms-kit/src/public-api.ts | 3 + .../packages/cms-kit/src/test-setup.ts | 1 + npm/ng-packs/packages/cms-kit/tsconfig.json | 16 ++++ .../packages/cms-kit/tsconfig.lib.json | 15 ++++ .../packages/cms-kit/tsconfig.lib.prod.json | 7 ++ .../packages/cms-kit/tsconfig.spec.json | 9 ++ 55 files changed, 594 insertions(+) create mode 100644 npm/ng-packs/packages/cms-kit/README.md create mode 100644 npm/ng-packs/packages/cms-kit/admin/config/ng-package.json create mode 100644 npm/ng-packs/packages/cms-kit/admin/config/src/enums/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/config/src/enums/policy-names.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/config/src/enums/route-names.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/config/src/providers/cms-kit-admin-config.provider.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/config/src/providers/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/config/src/providers/route.provider.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/config/src/public-api.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/ng-package.json create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/cms-kit-admin.routes.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/components/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/defaults/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/enums/components.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/enums/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/models/config-options.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/models/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/public-api.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/resolvers/extensions.resolver.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/resolvers/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/services/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/tokens/extensions.token.ts create mode 100644 npm/ng-packs/packages/cms-kit/admin/src/tokens/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/jest.config.ts create mode 100644 npm/ng-packs/packages/cms-kit/ng-package.json create mode 100644 npm/ng-packs/packages/cms-kit/package.json create mode 100644 npm/ng-packs/packages/cms-kit/project.json create mode 100644 npm/ng-packs/packages/cms-kit/public/config/ng-package.json create mode 100644 npm/ng-packs/packages/cms-kit/public/config/src/enums/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/config/src/enums/policy-names.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/config/src/enums/route-names.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/config/src/providers/cms-kit-public-config.provider.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/config/src/providers/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/config/src/providers/route.provider.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/config/src/public-api.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/ng-package.json create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/cms-kit-public.routes.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/components/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/enums/components.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/enums/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/models/config-options.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/models/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/public-api.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/resolvers/extensions.resolver.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/resolvers/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/services/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/tokens/extensions.token.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/lib/tokens/index.ts create mode 100644 npm/ng-packs/packages/cms-kit/public/src/public-api.ts create mode 100644 npm/ng-packs/packages/cms-kit/src/public-api.ts create mode 100644 npm/ng-packs/packages/cms-kit/src/test-setup.ts create mode 100644 npm/ng-packs/packages/cms-kit/tsconfig.json create mode 100644 npm/ng-packs/packages/cms-kit/tsconfig.lib.json create mode 100644 npm/ng-packs/packages/cms-kit/tsconfig.lib.prod.json create mode 100644 npm/ng-packs/packages/cms-kit/tsconfig.spec.json diff --git a/npm/ng-packs/packages/cms-kit/README.md b/npm/ng-packs/packages/cms-kit/README.md new file mode 100644 index 0000000000..e0fd2fce15 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/README.md @@ -0,0 +1,87 @@ +# @abp/ng.cms-kit + +ABP CMS Kit Angular package providing admin and public functionality for content management. + +## Structure + +This package is organized into two main sub-packages: + +- **Admin** (`admin/`) - Admin interface for managing CMS content +- **Public** (`public/`) - Public-facing components for displaying CMS content + +## Installation + +```bash +npm install @abp/ng.cms-kit +``` + +## Usage + +### Admin + +```typescript +import { provideCmsKitAdminConfig } from '@abp/ng.cms-kit/admin/config'; +import { createRoutes } from '@abp/ng.cms-kit/admin'; + +// In your app config +export const appConfig: ApplicationConfig = { + providers: [ + provideCmsKitAdminConfig(), + // ... other providers + ], +}; + +// In your routes +export const routes: Routes = [ + { + path: 'cms-kit', + loadChildren: () => import('@abp/ng.cms-kit/admin').then(m => m.createRoutes()), + }, +]; +``` + +### Public + +```typescript +import { provideCmsKitPublicConfig } from '@abp/ng.cms-kit/public/config'; +import { createRoutes } from '@abp/ng.cms-kit/public'; + +// In your app config +export const appConfig: ApplicationConfig = { + providers: [ + provideCmsKitPublicConfig(), + // ... other providers + ], +}; + +// In your routes +export const routes: Routes = [ + { + path: 'cms-kit', + loadChildren: () => import('@abp/ng.cms-kit/public').then(m => m.createRoutes()), + }, +]; +``` + +## Features + +### Admin Features + +- Comments management +- Tags management +- Pages management +- Blogs management +- Blog posts management +- Menus management +- Global resources management + +### Public Features + +- Public page viewing +- Public blog and blog post viewing +- Commenting functionality +- Shared components (MarkedItemToggle, PopularTags, Rating, ReactionSelection, Tags) + +## Documentation + +For more information, see the [ABP Documentation](https://docs.abp.io). diff --git a/npm/ng-packs/packages/cms-kit/admin/config/ng-package.json b/npm/ng-packs/packages/cms-kit/admin/config/ng-package.json new file mode 100644 index 0000000000..f55dff93db --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/config/ng-package.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../../../node_modules/ng-packagr/ng-entrypoint.schema.json", + "lib": { + "entryFile": "src/public-api.ts" + } +} diff --git a/npm/ng-packs/packages/cms-kit/admin/config/src/enums/index.ts b/npm/ng-packs/packages/cms-kit/admin/config/src/enums/index.ts new file mode 100644 index 0000000000..4a7a6a0e23 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/config/src/enums/index.ts @@ -0,0 +1,2 @@ +export * from './policy-names'; +export * from './route-names'; diff --git a/npm/ng-packs/packages/cms-kit/admin/config/src/enums/policy-names.ts b/npm/ng-packs/packages/cms-kit/admin/config/src/enums/policy-names.ts new file mode 100644 index 0000000000..020d19804b --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/config/src/enums/policy-names.ts @@ -0,0 +1,9 @@ +export enum eCmsKitAdminPolicyNames { + Comments = 'CmsKit.Comments', + Tags = 'CmsKit.Tags', + Pages = 'CmsKit.Pages', + Blogs = 'CmsKit.Blogs', + BlogPosts = 'CmsKit.BlogPosts', + Menus = 'CmsKit.Menus', + GlobalResources = 'CmsKit.GlobalResources', +} diff --git a/npm/ng-packs/packages/cms-kit/admin/config/src/enums/route-names.ts b/npm/ng-packs/packages/cms-kit/admin/config/src/enums/route-names.ts new file mode 100644 index 0000000000..d5a502c2f5 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/config/src/enums/route-names.ts @@ -0,0 +1,9 @@ +export enum eCmsKitAdminRouteNames { + Comments = 'CmsKit::Menu:Comments', + Tags = 'CmsKit::Menu:Tags', + Pages = 'CmsKit::Menu:Pages', + Blogs = 'CmsKit::Menu:Blogs', + BlogPosts = 'CmsKit::Menu:BlogPosts', + Menus = 'CmsKit::Menu:Menus', + GlobalResources = 'CmsKit::Menu:GlobalResources', +} diff --git a/npm/ng-packs/packages/cms-kit/admin/config/src/providers/cms-kit-admin-config.provider.ts b/npm/ng-packs/packages/cms-kit/admin/config/src/providers/cms-kit-admin-config.provider.ts new file mode 100644 index 0000000000..e8d6401535 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/config/src/providers/cms-kit-admin-config.provider.ts @@ -0,0 +1,6 @@ +import { Provider, makeEnvironmentProviders } from '@angular/core'; +import { CMS_KIT_ADMIN_ROUTE_PROVIDERS } from './route.provider'; + +export function provideCmsKitAdminConfig() { + return makeEnvironmentProviders([CMS_KIT_ADMIN_ROUTE_PROVIDERS]); +} diff --git a/npm/ng-packs/packages/cms-kit/admin/config/src/providers/index.ts b/npm/ng-packs/packages/cms-kit/admin/config/src/providers/index.ts new file mode 100644 index 0000000000..60d286b5f4 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/config/src/providers/index.ts @@ -0,0 +1,2 @@ +export * from './cms-kit-admin-config.provider'; +export * from './route.provider'; diff --git a/npm/ng-packs/packages/cms-kit/admin/config/src/providers/route.provider.ts b/npm/ng-packs/packages/cms-kit/admin/config/src/providers/route.provider.ts new file mode 100644 index 0000000000..7fcb4acdd2 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/config/src/providers/route.provider.ts @@ -0,0 +1,80 @@ +import { eLayoutType, RoutesService } from '@abp/ng.core'; +import { eThemeSharedRouteNames } from '@abp/ng.theme.shared'; +import { inject, provideAppInitializer } from '@angular/core'; +import { eCmsKitAdminPolicyNames } from '../enums/policy-names'; +import { eCmsKitAdminRouteNames } from '../enums/route-names'; + +export const CMS_KIT_ADMIN_ROUTE_PROVIDERS = [ + provideAppInitializer(() => { + configureRoutes(); + }), +]; + +export function configureRoutes() { + const routesService = inject(RoutesService); + routesService.add([ + { + path: '/cms-kit/comments', + name: eCmsKitAdminRouteNames.Comments, + parentName: eThemeSharedRouteNames.Administration, + order: 100, + layout: eLayoutType.application, + iconClass: 'fa fa-comments', + requiredPolicy: eCmsKitAdminPolicyNames.Comments, + }, + { + path: '/cms-kit/tags', + name: eCmsKitAdminRouteNames.Tags, + parentName: eThemeSharedRouteNames.Administration, + order: 101, + layout: eLayoutType.application, + iconClass: 'fa fa-tags', + requiredPolicy: eCmsKitAdminPolicyNames.Tags, + }, + { + path: '/cms-kit/pages', + name: eCmsKitAdminRouteNames.Pages, + parentName: eThemeSharedRouteNames.Administration, + order: 102, + layout: eLayoutType.application, + iconClass: 'fa fa-file', + requiredPolicy: eCmsKitAdminPolicyNames.Pages, + }, + { + path: '/cms-kit/blogs', + name: eCmsKitAdminRouteNames.Blogs, + parentName: eThemeSharedRouteNames.Administration, + order: 103, + layout: eLayoutType.application, + iconClass: 'fa fa-blog', + requiredPolicy: eCmsKitAdminPolicyNames.Blogs, + }, + { + path: '/cms-kit/blog-posts', + name: eCmsKitAdminRouteNames.BlogPosts, + parentName: eThemeSharedRouteNames.Administration, + order: 104, + layout: eLayoutType.application, + iconClass: 'fa fa-file-alt', + requiredPolicy: eCmsKitAdminPolicyNames.BlogPosts, + }, + { + path: '/cms-kit/menus', + name: eCmsKitAdminRouteNames.Menus, + parentName: eThemeSharedRouteNames.Administration, + order: 105, + layout: eLayoutType.application, + iconClass: 'fa fa-bars', + requiredPolicy: eCmsKitAdminPolicyNames.Menus, + }, + { + path: '/cms-kit/global-resources', + name: eCmsKitAdminRouteNames.GlobalResources, + parentName: eThemeSharedRouteNames.Administration, + order: 106, + layout: eLayoutType.application, + iconClass: 'fa fa-globe', + requiredPolicy: eCmsKitAdminPolicyNames.GlobalResources, + }, + ]); +} diff --git a/npm/ng-packs/packages/cms-kit/admin/config/src/public-api.ts b/npm/ng-packs/packages/cms-kit/admin/config/src/public-api.ts new file mode 100644 index 0000000000..0003cebbef --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/config/src/public-api.ts @@ -0,0 +1,2 @@ +export * from './enums'; +export * from './providers'; diff --git a/npm/ng-packs/packages/cms-kit/admin/ng-package.json b/npm/ng-packs/packages/cms-kit/admin/ng-package.json new file mode 100644 index 0000000000..e09fb3fd03 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/ng-package.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../../node_modules/ng-packagr/ng-entrypoint.schema.json", + "lib": { + "entryFile": "src/public-api.ts" + } +} diff --git a/npm/ng-packs/packages/cms-kit/admin/src/cms-kit-admin.routes.ts b/npm/ng-packs/packages/cms-kit/admin/src/cms-kit-admin.routes.ts new file mode 100644 index 0000000000..31d1b884e5 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/cms-kit-admin.routes.ts @@ -0,0 +1,33 @@ +import { Routes } from '@angular/router'; +import { Provider } from '@angular/core'; +import { + RouterOutletComponent, + authGuard, + permissionGuard, + ReplaceableRouteContainerComponent, +} from '@abp/ng.core'; +import { eCmsKitAdminComponents } from './enums'; + +export interface CmsKitAdminConfigOptions { + // Extension point contributors +} + +export function createRoutes(config: CmsKitAdminConfigOptions = {}): Routes { + return [ + { + path: '', + component: RouterOutletComponent, + providers: provideCmsKitAdminContributors(config), + canActivate: [authGuard, permissionGuard], + children: [ + // Routes will be added here + ], + }, + ]; +} + +function provideCmsKitAdminContributors(options: CmsKitAdminConfigOptions = {}): Provider[] { + return [ + // Contributors will be added here + ]; +} diff --git a/npm/ng-packs/packages/cms-kit/admin/src/components/index.ts b/npm/ng-packs/packages/cms-kit/admin/src/components/index.ts new file mode 100644 index 0000000000..4173f31c58 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/components/index.ts @@ -0,0 +1,8 @@ +// Components will be exported here +// export * from './comments'; +// export * from './tags'; +// export * from './pages'; +// export * from './blogs'; +// export * from './blog-posts'; +// export * from './menus'; +// export * from './global-resources'; diff --git a/npm/ng-packs/packages/cms-kit/admin/src/defaults/index.ts b/npm/ng-packs/packages/cms-kit/admin/src/defaults/index.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/npm/ng-packs/packages/cms-kit/admin/src/enums/components.ts b/npm/ng-packs/packages/cms-kit/admin/src/enums/components.ts new file mode 100644 index 0000000000..d910be904b --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/enums/components.ts @@ -0,0 +1,28 @@ +export enum eCmsKitAdminComponents { + CommentList = 'CmsKit.Admin.CommentList', + CommentApprove = 'CmsKit.Admin.CommentApprove', + CommentDetails = 'CmsKit.Admin.CommentDetails', + + TagList = 'CmsKit.Admin.TagList', + TagCreate = 'CmsKit.Admin.TagCreate', + TagEdit = 'CmsKit.Admin.TagEdit', + + PageList = 'CmsKit.Admin.PageList', + PageCreate = 'CmsKit.Admin.PageCreate', + PageEdit = 'CmsKit.Admin.PageEdit', + + BlogList = 'CmsKit.Admin.BlogList', + BlogCreate = 'CmsKit.Admin.BlogCreate', + BlogEdit = 'CmsKit.Admin.BlogEdit', + BlogFeatures = 'CmsKit.Admin.BlogFeatures', + + BlogPostList = 'CmsKit.Admin.BlogPostList', + BlogPostCreate = 'CmsKit.Admin.BlogPostCreate', + BlogPostEdit = 'CmsKit.Admin.BlogPostEdit', + + MenuItemList = 'CmsKit.Admin.MenuItemList', + MenuItemCreate = 'CmsKit.Admin.MenuItemCreate', + MenuItemEdit = 'CmsKit.Admin.MenuItemEdit', + + GlobalResourceList = 'CmsKit.Admin.GlobalResourceList', +} diff --git a/npm/ng-packs/packages/cms-kit/admin/src/enums/index.ts b/npm/ng-packs/packages/cms-kit/admin/src/enums/index.ts new file mode 100644 index 0000000000..07635cbbc8 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/enums/index.ts @@ -0,0 +1 @@ +export * from './components'; diff --git a/npm/ng-packs/packages/cms-kit/admin/src/models/config-options.ts b/npm/ng-packs/packages/cms-kit/admin/src/models/config-options.ts new file mode 100644 index 0000000000..8b2584bb68 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/models/config-options.ts @@ -0,0 +1,3 @@ +export interface CmsKitAdminConfigOptions { + // Extension point contributors will be added here +} diff --git a/npm/ng-packs/packages/cms-kit/admin/src/models/index.ts b/npm/ng-packs/packages/cms-kit/admin/src/models/index.ts new file mode 100644 index 0000000000..d474226b19 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/models/index.ts @@ -0,0 +1 @@ +export * from './config-options'; diff --git a/npm/ng-packs/packages/cms-kit/admin/src/public-api.ts b/npm/ng-packs/packages/cms-kit/admin/src/public-api.ts new file mode 100644 index 0000000000..01b1709e8f --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/public-api.ts @@ -0,0 +1,8 @@ +// export * from './components'; +// export * from './defaults'; +export * from './enums'; +// export * from './models'; +export * from './resolvers'; +// export * from './services'; +export * from './tokens'; +export * from './cms-kit-admin.routes'; diff --git a/npm/ng-packs/packages/cms-kit/admin/src/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/cms-kit/admin/src/resolvers/extensions.resolver.ts new file mode 100644 index 0000000000..bcd300ab62 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/resolvers/extensions.resolver.ts @@ -0,0 +1,8 @@ +import { ResolveFn } from '@angular/router'; + +// Resolvers will be defined here +// Example: +// export const cmsKitAdminResolver: ResolveFn = (route, state) => { +// // Resolver implementation +// return null; +// }; diff --git a/npm/ng-packs/packages/cms-kit/admin/src/resolvers/index.ts b/npm/ng-packs/packages/cms-kit/admin/src/resolvers/index.ts new file mode 100644 index 0000000000..1be292f2b0 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/resolvers/index.ts @@ -0,0 +1 @@ +export * from './extensions.resolver'; diff --git a/npm/ng-packs/packages/cms-kit/admin/src/services/index.ts b/npm/ng-packs/packages/cms-kit/admin/src/services/index.ts new file mode 100644 index 0000000000..a607f1e450 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/services/index.ts @@ -0,0 +1,8 @@ +// Services will be exported here +// export * from './comments'; +// export * from './tags'; +// export * from './pages'; +// export * from './blogs'; +// export * from './blog-posts'; +// export * from './menus'; +// export * from './global-resources'; diff --git a/npm/ng-packs/packages/cms-kit/admin/src/tokens/extensions.token.ts b/npm/ng-packs/packages/cms-kit/admin/src/tokens/extensions.token.ts new file mode 100644 index 0000000000..2887603976 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/tokens/extensions.token.ts @@ -0,0 +1,4 @@ +import { InjectionToken } from '@angular/core'; + +// Extension tokens will be defined here +export const EXTENSIONS_IDENTIFIER = new InjectionToken('EXTENSIONS_IDENTIFIER'); diff --git a/npm/ng-packs/packages/cms-kit/admin/src/tokens/index.ts b/npm/ng-packs/packages/cms-kit/admin/src/tokens/index.ts new file mode 100644 index 0000000000..33233400a2 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/admin/src/tokens/index.ts @@ -0,0 +1 @@ +export * from './extensions.token'; diff --git a/npm/ng-packs/packages/cms-kit/jest.config.ts b/npm/ng-packs/packages/cms-kit/jest.config.ts new file mode 100644 index 0000000000..f09b31369e --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/jest.config.ts @@ -0,0 +1,23 @@ +/* eslint-disable */ +export default { + displayName: 'cms-kit', + preset: '../../jest.preset.js', + setupFilesAfterEnv: ['/src/test-setup.ts'], + globals: {}, + coverageDirectory: '../../coverage/packages/cms-kit', + transform: { + '^.+.(ts|mjs|js|html)$': [ + 'jest-preset-angular', + { + tsconfig: '/tsconfig.spec.json', + stringifyContentPathRegex: '\\.(html|svg)$', + }, + ], + }, + transformIgnorePatterns: ['node_modules/(?!.*.mjs$)'], + snapshotSerializers: [ + 'jest-preset-angular/build/serializers/no-ng-attributes', + 'jest-preset-angular/build/serializers/ng-snapshot', + 'jest-preset-angular/build/serializers/html-comment', + ], +}; diff --git a/npm/ng-packs/packages/cms-kit/ng-package.json b/npm/ng-packs/packages/cms-kit/ng-package.json new file mode 100644 index 0000000000..67615baced --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/ng-package.json @@ -0,0 +1,8 @@ +{ + "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", + "dest": "../../dist/packages/cms-kit", + "lib": { + "entryFile": "src/public-api.ts" + }, + "allowedNonPeerDependencies": ["@abp/ng.theme.shared", "@abp/ng.components"] +} diff --git a/npm/ng-packs/packages/cms-kit/package.json b/npm/ng-packs/packages/cms-kit/package.json new file mode 100644 index 0000000000..56963a6d57 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/package.json @@ -0,0 +1,17 @@ +{ + "name": "@abp/ng.cms-kit", + "version": "~10.0.0-rc.3", + "homepage": "https://abp.io", + "repository": { + "type": "git", + "url": "https://github.com/abpframework/abp.git" + }, + "dependencies": { + "@abp/ng.components": "~10.0.0-rc.3", + "@abp/ng.theme.shared": "~10.0.0-rc.3", + "tslib": "^2.0.0" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/npm/ng-packs/packages/cms-kit/project.json b/npm/ng-packs/packages/cms-kit/project.json new file mode 100644 index 0000000000..e8690be02c --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/project.json @@ -0,0 +1,38 @@ +{ + "name": "cms-kit", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "projectType": "library", + "sourceRoot": "packages/cms-kit/src", + "prefix": "abp", + "targets": { + "build": { + "executor": "@nx/angular:package", + "outputs": ["{workspaceRoot}/dist/packages/cms-kit"], + "options": { + "project": "packages/cms-kit/ng-package.json" + }, + "configurations": { + "production": { + "tsConfig": "packages/cms-kit/tsconfig.lib.prod.json" + }, + "development": { + "tsConfig": "packages/cms-kit/tsconfig.lib.json" + } + }, + "defaultConfiguration": "production" + }, + "test": { + "executor": "@nx/jest:jest", + "outputs": ["{workspaceRoot}/coverage/packages/cms-kit"], + "options": { + "jestConfig": "packages/cms-kit/jest.config.ts" + } + }, + "lint": { + "executor": "@nx/eslint:lint", + "outputs": ["{options.outputFile}"] + } + }, + "tags": [], + "implicitDependencies": ["core", "theme-shared", "components"] +} diff --git a/npm/ng-packs/packages/cms-kit/public/config/ng-package.json b/npm/ng-packs/packages/cms-kit/public/config/ng-package.json new file mode 100644 index 0000000000..f55dff93db --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/config/ng-package.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../../../node_modules/ng-packagr/ng-entrypoint.schema.json", + "lib": { + "entryFile": "src/public-api.ts" + } +} diff --git a/npm/ng-packs/packages/cms-kit/public/config/src/enums/index.ts b/npm/ng-packs/packages/cms-kit/public/config/src/enums/index.ts new file mode 100644 index 0000000000..4a7a6a0e23 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/config/src/enums/index.ts @@ -0,0 +1,2 @@ +export * from './policy-names'; +export * from './route-names'; diff --git a/npm/ng-packs/packages/cms-kit/public/config/src/enums/policy-names.ts b/npm/ng-packs/packages/cms-kit/public/config/src/enums/policy-names.ts new file mode 100644 index 0000000000..cf2aa04983 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/config/src/enums/policy-names.ts @@ -0,0 +1,5 @@ +export enum eCmsKitPublicPolicyNames { + Pages = 'CmsKit.Pages', + Blogs = 'CmsKit.Blogs', + Comments = 'CmsKit.Comments', +} diff --git a/npm/ng-packs/packages/cms-kit/public/config/src/enums/route-names.ts b/npm/ng-packs/packages/cms-kit/public/config/src/enums/route-names.ts new file mode 100644 index 0000000000..b85fe1716f --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/config/src/enums/route-names.ts @@ -0,0 +1,5 @@ +export enum eCmsKitPublicRouteNames { + Pages = 'CmsKit::Public:Pages', + Blogs = 'CmsKit::Public:Blogs', + BlogPosts = 'CmsKit::Public:BlogPosts', +} diff --git a/npm/ng-packs/packages/cms-kit/public/config/src/providers/cms-kit-public-config.provider.ts b/npm/ng-packs/packages/cms-kit/public/config/src/providers/cms-kit-public-config.provider.ts new file mode 100644 index 0000000000..cd7eaff0cd --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/config/src/providers/cms-kit-public-config.provider.ts @@ -0,0 +1,6 @@ +import { Provider, makeEnvironmentProviders } from '@angular/core'; +import { CMS_KIT_PUBLIC_ROUTE_PROVIDERS } from './route.provider'; + +export function provideCmsKitPublicConfig() { + return makeEnvironmentProviders([CMS_KIT_PUBLIC_ROUTE_PROVIDERS]); +} diff --git a/npm/ng-packs/packages/cms-kit/public/config/src/providers/index.ts b/npm/ng-packs/packages/cms-kit/public/config/src/providers/index.ts new file mode 100644 index 0000000000..eaf80e9bf5 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/config/src/providers/index.ts @@ -0,0 +1,2 @@ +export * from './cms-kit-public-config.provider'; +export * from './route.provider'; diff --git a/npm/ng-packs/packages/cms-kit/public/config/src/providers/route.provider.ts b/npm/ng-packs/packages/cms-kit/public/config/src/providers/route.provider.ts new file mode 100644 index 0000000000..e4ce26c5e1 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/config/src/providers/route.provider.ts @@ -0,0 +1,31 @@ +import { RoutesService } from '@abp/ng.core'; +import { inject, provideAppInitializer } from '@angular/core'; +import { eCmsKitPublicPolicyNames } from '../enums/policy-names'; +import { eCmsKitPublicRouteNames } from '../enums/route-names'; + +export const CMS_KIT_PUBLIC_ROUTE_PROVIDERS = [ + provideAppInitializer(() => { + configureRoutes(); + }), +]; + +export function configureRoutes() { + const routesService = inject(RoutesService); + routesService.add([ + { + path: '/cms-kit/pages/:slug', + name: eCmsKitPublicRouteNames.Pages, + requiredPolicy: eCmsKitPublicPolicyNames.Pages, + }, + { + path: '/cms-kit/blogs', + name: eCmsKitPublicRouteNames.Blogs, + requiredPolicy: eCmsKitPublicPolicyNames.Blogs, + }, + { + path: '/cms-kit/blogs/:blogSlug/:blogPostSlug', + name: eCmsKitPublicRouteNames.BlogPosts, + requiredPolicy: eCmsKitPublicPolicyNames.Blogs, + }, + ]); +} diff --git a/npm/ng-packs/packages/cms-kit/public/config/src/public-api.ts b/npm/ng-packs/packages/cms-kit/public/config/src/public-api.ts new file mode 100644 index 0000000000..0003cebbef --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/config/src/public-api.ts @@ -0,0 +1,2 @@ +export * from './enums'; +export * from './providers'; diff --git a/npm/ng-packs/packages/cms-kit/public/ng-package.json b/npm/ng-packs/packages/cms-kit/public/ng-package.json new file mode 100644 index 0000000000..e09fb3fd03 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/ng-package.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../../node_modules/ng-packagr/ng-entrypoint.schema.json", + "lib": { + "entryFile": "src/public-api.ts" + } +} diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/cms-kit-public.routes.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/cms-kit-public.routes.ts new file mode 100644 index 0000000000..3d6cdea1dc --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/cms-kit-public.routes.ts @@ -0,0 +1,27 @@ +import { Routes } from '@angular/router'; +import { Provider } from '@angular/core'; +import { RouterOutletComponent, ReplaceableRouteContainerComponent } from '@abp/ng.core'; +import { eCmsKitPublicComponents } from './enums'; + +export interface CmsKitPublicConfigOptions { + // Extension point contributors +} + +export function createRoutes(config: CmsKitPublicConfigOptions = {}): Routes { + return [ + { + path: '', + component: RouterOutletComponent, + providers: provideCmsKitPublicContributors(config), + children: [ + // Routes will be added here + ], + }, + ]; +} + +function provideCmsKitPublicContributors(options: CmsKitPublicConfigOptions = {}): Provider[] { + return [ + // Contributors will be added here + ]; +} diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/components/index.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/components/index.ts new file mode 100644 index 0000000000..d96c0b7b47 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/components/index.ts @@ -0,0 +1,5 @@ +// Components will be exported here +// export * from './pages'; +// export * from './blogs'; +// export * from './comments'; +// export * from './shared'; diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/enums/components.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/enums/components.ts new file mode 100644 index 0000000000..7bb11b68d4 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/enums/components.ts @@ -0,0 +1,11 @@ +export enum eCmsKitPublicComponents { + PageView = 'CmsKit.Public.PageView', + BlogList = 'CmsKit.Public.BlogList', + BlogPostView = 'CmsKit.Public.BlogPostView', + Commenting = 'CmsKit.Public.Commenting', + MarkedItemToggle = 'CmsKit.Public.MarkedItemToggle', + PopularTags = 'CmsKit.Public.PopularTags', + Rating = 'CmsKit.Public.Rating', + ReactionSelection = 'CmsKit.Public.ReactionSelection', + Tags = 'CmsKit.Public.Tags', +} diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/enums/index.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/enums/index.ts new file mode 100644 index 0000000000..07635cbbc8 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/enums/index.ts @@ -0,0 +1 @@ +export * from './components'; diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/models/config-options.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/models/config-options.ts new file mode 100644 index 0000000000..b4334fbe81 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/models/config-options.ts @@ -0,0 +1,3 @@ +export interface CmsKitPublicConfigOptions { + // Extension point contributors will be added here +} diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/models/index.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/models/index.ts new file mode 100644 index 0000000000..d474226b19 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/models/index.ts @@ -0,0 +1 @@ +export * from './config-options'; diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/public-api.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/public-api.ts new file mode 100644 index 0000000000..f1724c6076 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/public-api.ts @@ -0,0 +1,7 @@ +// export * from './components'; +export * from './enums'; +export * from './models'; +// export * from './services'; +export * from './tokens'; +export * from './resolvers'; +// export * from './cms-kit-public.routes'; diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/resolvers/extensions.resolver.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/resolvers/extensions.resolver.ts new file mode 100644 index 0000000000..092c5367bf --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/resolvers/extensions.resolver.ts @@ -0,0 +1,8 @@ +import { ResolveFn } from '@angular/router'; + +// Resolvers will be defined here +// Example: +// export const cmsKitPublicResolver: ResolveFn = (route, state) => { +// // Resolver implementation +// return null; +// }; diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/resolvers/index.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/resolvers/index.ts new file mode 100644 index 0000000000..1be292f2b0 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/resolvers/index.ts @@ -0,0 +1 @@ +export * from './extensions.resolver'; diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/services/index.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/services/index.ts new file mode 100644 index 0000000000..159868b2f3 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/services/index.ts @@ -0,0 +1,7 @@ +// Services will be exported here +// export * from './pages'; +// export * from './blogs'; +// export * from './comments'; +// export * from './menus'; +// export * from './global-resources'; +// export * from './marked-items'; diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/tokens/extensions.token.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/tokens/extensions.token.ts new file mode 100644 index 0000000000..2887603976 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/tokens/extensions.token.ts @@ -0,0 +1,4 @@ +import { InjectionToken } from '@angular/core'; + +// Extension tokens will be defined here +export const EXTENSIONS_IDENTIFIER = new InjectionToken('EXTENSIONS_IDENTIFIER'); diff --git a/npm/ng-packs/packages/cms-kit/public/src/lib/tokens/index.ts b/npm/ng-packs/packages/cms-kit/public/src/lib/tokens/index.ts new file mode 100644 index 0000000000..33233400a2 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/lib/tokens/index.ts @@ -0,0 +1 @@ +export * from './extensions.token'; diff --git a/npm/ng-packs/packages/cms-kit/public/src/public-api.ts b/npm/ng-packs/packages/cms-kit/public/src/public-api.ts new file mode 100644 index 0000000000..17cae63d98 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/public/src/public-api.ts @@ -0,0 +1,3 @@ +// Main package entry point +// Use @abp/ng.cms-kit/admin or @abp/ng.cms-kit/public for specific functionality +export {}; diff --git a/npm/ng-packs/packages/cms-kit/src/public-api.ts b/npm/ng-packs/packages/cms-kit/src/public-api.ts new file mode 100644 index 0000000000..17cae63d98 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/src/public-api.ts @@ -0,0 +1,3 @@ +// Main package entry point +// Use @abp/ng.cms-kit/admin or @abp/ng.cms-kit/public for specific functionality +export {}; diff --git a/npm/ng-packs/packages/cms-kit/src/test-setup.ts b/npm/ng-packs/packages/cms-kit/src/test-setup.ts new file mode 100644 index 0000000000..1100b3e8a6 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/src/test-setup.ts @@ -0,0 +1 @@ +import 'jest-preset-angular/setup-jest'; diff --git a/npm/ng-packs/packages/cms-kit/tsconfig.json b/npm/ng-packs/packages/cms-kit/tsconfig.json new file mode 100644 index 0000000000..03261df5a4 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + }, + { + "path": "./tsconfig.spec.json" + } + ], + "compilerOptions": { + "target": "es2020" + } +} diff --git a/npm/ng-packs/packages/cms-kit/tsconfig.lib.json b/npm/ng-packs/packages/cms-kit/tsconfig.lib.json new file mode 100644 index 0000000000..22d2695db8 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/tsconfig.lib.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "target": "ES2022", + "declaration": true, + "declarationMap": true, + "inlineSources": true, + "types": [], + "lib": ["dom", "es2020"], + "useDefineForClassFields": false + }, + "exclude": ["src/test-setup.ts", "**/*.spec.ts", "jest.config.ts"], + "include": ["**/*.ts"] +} diff --git a/npm/ng-packs/packages/cms-kit/tsconfig.lib.prod.json b/npm/ng-packs/packages/cms-kit/tsconfig.lib.prod.json new file mode 100644 index 0000000000..ac741195d8 --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/tsconfig.lib.prod.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.lib.json", + "compilerOptions": { + "declarationMap": false + }, + "exclude": ["**/*.spec.ts", "jest.config.ts", "src/test-setup.ts", "**/*.test.ts"] +} diff --git a/npm/ng-packs/packages/cms-kit/tsconfig.spec.json b/npm/ng-packs/packages/cms-kit/tsconfig.spec.json new file mode 100644 index 0000000000..f6d8ffcc9f --- /dev/null +++ b/npm/ng-packs/packages/cms-kit/tsconfig.spec.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "module": "commonjs", + "types": ["jest", "node"] + }, + "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] +}