@acorex/platform-generator 19.2.12 → 19.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/generators.json +10 -0
- package/package.json +4 -1
- package/src/bin/interactive-entity-creator.js +448 -0
- package/src/bin/test-entity-creator.js +48 -0
- package/src/generators/app-module/files/src/app/app.module.ts.template +0 -3
- package/src/generators/app-module/files/src/app/modules/root/sample/sample.service.ts.template +1 -1
- package/src/generators/app-module/files/src/app/modules/root/sample/sample.types.ts.template +1 -1
- package/src/generators/create-app-module/files/__fileName__/src/index.ts__tmpl__ +9 -0
- package/src/generators/create-app-module/files/__fileName__/src/lib/__fileName__.module.ts__tmpl__ +44 -0
- package/src/generators/create-app-module/files/__fileName__/src/lib/const.ts__tmpl__ +19 -0
- package/src/generators/create-app-module/files/__fileName__/src/lib/entity.provider.ts__tmpl__ +33 -0
- package/src/generators/create-app-module/files/__fileName__/src/lib/menu.provider.ts__tmpl__ +29 -0
- package/src/generators/create-app-module/files/__fileName__/src/lib/permission.provider.ts__tmpl__ +13 -0
- package/src/generators/create-app-module/files/__fileName__/src/lib/search-command.provider.ts__tmpl__ +17 -0
- package/src/generators/create-app-module/files/__fileName__/src/lib/setting.provider.ts__tmpl__ +29 -0
- package/src/generators/create-module-entity/files/__entityFileName__.entity.ts__tmpl__ +150 -0
- package/src/generators/create-module-entity/files/__entityFileName__.service.ts__tmpl__ +16 -0
- package/src/generators/create-module-entity/files/__entityFileName__.types.ts__tmpl__ +6 -0
- package/src/generators/create-module-entity/files/index.ts__tmpl__ +3 -0
- package/src/generators/create-module-entity/generator.d.ts +11 -0
- package/src/generators/create-module-entity/generator.js +338 -20
- package/src/generators/create-module-entity/generator.js.map +1 -1
- package/src/generators/create-module-entity/schema.json +85 -2
- package/src/generators/create-tag-entity/files/index.ts__tmpl__ +3 -0
- package/src/generators/create-tag-entity/files/tag-__entityFileName__.entity.ts__tmpl__ +240 -0
- package/src/generators/create-tag-entity/files/tag-__entityFileName__.service.ts__tmpl__ +16 -0
- package/src/generators/create-tag-entity/files/tag-__entityFileName__.types.ts__tmpl__ +6 -0
- package/src/generators/create-tag-entity/generator.d.ts +7 -0
- package/src/generators/create-tag-entity/generator.js +111 -0
- package/src/generators/create-tag-entity/generator.js.map +1 -0
- package/src/generators/create-tag-entity/schema.json +16 -0
- package/src/generators/create-widget/files/__fileName__-widget-column.component.ts__tmpl__ +11 -0
- package/src/generators/create-widget/files/__fileName__-widget-edit.component.ts__tmpl__ +35 -0
- package/src/generators/create-widget/files/__fileName__-widget-filter.component.ts__tmpl__ +12 -0
- package/src/generators/create-widget/files/__fileName__-widget-print.component.ts__tmpl__ +11 -0
- package/src/generators/create-widget/files/__fileName__-widget-view.component.ts__tmpl__ +14 -0
- package/src/generators/create-widget/files/__fileName__-widget.config.ts__tmpl__ +44 -0
- package/src/generators/create-widget/files/index.ts__tmpl__ +6 -0
- package/src/generators/create-widget/generator.d.ts +8 -0
- package/src/generators/create-widget/generator.js +99 -0
- package/src/generators/create-widget/generator.js.map +1 -0
- package/src/generators/create-widget/schema.d.ts +6 -0
- package/src/generators/create-widget/schema.json +66 -0
- package/src/generators/index.d.ts +0 -0
- package/src/generators/index.js +1 -0
- package/src/generators/index.js.map +1 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';
|
|
2
|
+
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
3
|
+
import { inject } from '@angular/core';
|
|
4
|
+
import { RootConfig } from './const';
|
|
5
|
+
|
|
6
|
+
export class AXMMenuProvider implements AXPMenuProvider {
|
|
7
|
+
private entityService = inject(AXPEntityService);
|
|
8
|
+
|
|
9
|
+
async provide(context: AXPMenuProviderContext): Promise<void> {
|
|
10
|
+
const scope = RootConfig.config.i18n;
|
|
11
|
+
const module = RootConfig.module;
|
|
12
|
+
|
|
13
|
+
// context.addItems([
|
|
14
|
+
// {
|
|
15
|
+
// priority: 9001,
|
|
16
|
+
// text: `t('module-name', {scope:"${scope}"})`,
|
|
17
|
+
// icon: module.icon,
|
|
18
|
+
// children: [
|
|
19
|
+
// {
|
|
20
|
+
// text: `t("entity-name", { scope: "common" })`,
|
|
21
|
+
// path: this.entityService.createPath(module.name, RootConfig.entities.category.name),
|
|
22
|
+
// icon: RootConfig.entities.category.icon,
|
|
23
|
+
// priority: 1,
|
|
24
|
+
// }
|
|
25
|
+
// ],
|
|
26
|
+
// },
|
|
27
|
+
// ]);
|
|
28
|
+
}
|
|
29
|
+
}
|
package/src/generators/create-app-module/files/__fileName__/src/lib/permission.provider.ts__tmpl__
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AXPPermissionProvider, AXPPermissionProviderContext } from '@acorex/platform/auth';
|
|
2
|
+
|
|
3
|
+
export class AXMPermissionProvider implements AXPPermissionProvider {
|
|
4
|
+
async provide(context: AXPPermissionProviderContext): Promise<void> {
|
|
5
|
+
// context.addPermissions([
|
|
6
|
+
// {
|
|
7
|
+
// name: 'view_templates',
|
|
8
|
+
// title: 'Permission to view templates',
|
|
9
|
+
// isArchived: false,
|
|
10
|
+
// },
|
|
11
|
+
// ]);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex/platform/common';
|
|
2
|
+
|
|
3
|
+
export class AXMSearchCommandProvider extends AXPSearchCommandProvider {
|
|
4
|
+
commands: AXPSearchResult[] = [
|
|
5
|
+
// {
|
|
6
|
+
// group: 'command',
|
|
7
|
+
// title: 'New Form Template',
|
|
8
|
+
// icon: RootConfig.entities.template.icon,
|
|
9
|
+
// description: 'Create a new form template for designing reusable forms.', // Added description
|
|
10
|
+
// commands: {
|
|
11
|
+
// 'create-entity': {
|
|
12
|
+
// entity: `${RootConfig.module.name}.${RootConfig.entities.template.name}`,
|
|
13
|
+
// },
|
|
14
|
+
// },
|
|
15
|
+
// }
|
|
16
|
+
];
|
|
17
|
+
}
|
package/src/generators/create-app-module/files/__fileName__/src/lib/setting.provider.ts__tmpl__
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';
|
|
2
|
+
|
|
3
|
+
export class AXMSettingProvider implements AXPSettingDefinitionProvider {
|
|
4
|
+
async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {
|
|
5
|
+
// context
|
|
6
|
+
// // Add Form Template Group
|
|
7
|
+
// .addGroup('form-template', 'Form Template', 'Settings related to form templates.', RootConfig.module.icon)
|
|
8
|
+
// // Start Interface Section
|
|
9
|
+
// .addSection('interface', 'UI Interface', 'Customize the user interface for forms.')
|
|
10
|
+
// .addSetting({
|
|
11
|
+
// key: 'history-panel',
|
|
12
|
+
// title: 'Show History Panel',
|
|
13
|
+
// scope: 'U',
|
|
14
|
+
// isInherited: true,
|
|
15
|
+
// defaultValue: false,
|
|
16
|
+
// widget: {
|
|
17
|
+
// type: AXPWidgetsCatalog.toggle,
|
|
18
|
+
// },
|
|
19
|
+
// description: 'Enable or disable the history panel for forms.',
|
|
20
|
+
// validationRules: [
|
|
21
|
+
// {
|
|
22
|
+
// rule: 'required',
|
|
23
|
+
// },
|
|
24
|
+
// ],
|
|
25
|
+
// })
|
|
26
|
+
// .endSection()
|
|
27
|
+
// .endGroup();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';
|
|
2
|
+
import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
|
|
3
|
+
import { Injector } from '@angular/core';
|
|
4
|
+
import { RootConfig } from '../../const';
|
|
5
|
+
import { AXM<%= entityClassName %>Service } from './<%= entityFileName %>.service';
|
|
6
|
+
|
|
7
|
+
export async function <%= entityPropertyName %>Factory(injector: Injector): Promise<AXPEntity | null> {
|
|
8
|
+
const dataService = injector.get(AXM<%= entityClassName %>Service);
|
|
9
|
+
const i18n = RootConfig.config.i18n;
|
|
10
|
+
|
|
11
|
+
const entityDef: AXPEntity = {
|
|
12
|
+
module: RootConfig.module.name,
|
|
13
|
+
name: RootConfig.entities.<%= entityPropertyName %>.name,
|
|
14
|
+
source: '',
|
|
15
|
+
title: RootConfig.entities.<%= entityPropertyName %>.title,
|
|
16
|
+
formats: {
|
|
17
|
+
individual: RootConfig.entities.<%= entityPropertyName %>.title,
|
|
18
|
+
plural: RootConfig.entities.<%= entityPropertyName %>.titlePlural,
|
|
19
|
+
searchResult: {
|
|
20
|
+
title: '{{ title }}',
|
|
21
|
+
description: RootConfig.module.title,
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
relatedEntities: [],
|
|
25
|
+
groups: [
|
|
26
|
+
{
|
|
27
|
+
id: 'section',
|
|
28
|
+
title: RootConfig.entities.<%= entityPropertyName %>.title,
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
properties: [
|
|
32
|
+
<%- entityPropertiesCode -%>
|
|
33
|
+
],
|
|
34
|
+
columns: [<%- entityColumnsCode -%>],
|
|
35
|
+
commands: {
|
|
36
|
+
create: {
|
|
37
|
+
execute: async (data: any) => {
|
|
38
|
+
const res = await dataService.insertOne(data);
|
|
39
|
+
return { id: res };
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
delete: {
|
|
43
|
+
execute: async (id: any) => {
|
|
44
|
+
return await dataService.deleteOne(id);
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
update: {
|
|
48
|
+
execute: async (data: any) => {
|
|
49
|
+
return await dataService.updateOne(data.id, data);
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
queries: {
|
|
54
|
+
byKey: {
|
|
55
|
+
execute: async (id: string) => {
|
|
56
|
+
return await dataService.getOne(id);
|
|
57
|
+
},
|
|
58
|
+
type: AXPEntityQueryType.Single,
|
|
59
|
+
},
|
|
60
|
+
list: {
|
|
61
|
+
execute: async (e: any) => {
|
|
62
|
+
return await dataService.query({ skip: e.skip, take: e.take, filter: e.filter });
|
|
63
|
+
},
|
|
64
|
+
type: AXPEntityQueryType.List,
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
interfaces: {
|
|
68
|
+
master: {
|
|
69
|
+
create: {
|
|
70
|
+
sections: [
|
|
71
|
+
{
|
|
72
|
+
id: 'section',
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
properties: [
|
|
76
|
+
<%- layoutPropertiesCode -%>
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
update: {
|
|
80
|
+
sections: [
|
|
81
|
+
{
|
|
82
|
+
id: 'section',
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
properties: [
|
|
86
|
+
<%- layoutPropertiesCode -%>
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
single: {
|
|
90
|
+
title: '{{title}}',
|
|
91
|
+
sections: [
|
|
92
|
+
{
|
|
93
|
+
id: 'section',
|
|
94
|
+
layout: {
|
|
95
|
+
positions: {
|
|
96
|
+
lg: {
|
|
97
|
+
colSpan: 12,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
properties: [
|
|
104
|
+
<%- layoutPropertiesCode -%>
|
|
105
|
+
],
|
|
106
|
+
actions: [],
|
|
107
|
+
},
|
|
108
|
+
list: {
|
|
109
|
+
actions: [
|
|
110
|
+
{
|
|
111
|
+
title: `t("create", { scope: "common" })`,
|
|
112
|
+
command: 'create-entity',
|
|
113
|
+
priority: 'primary',
|
|
114
|
+
type: 'create',
|
|
115
|
+
scope: AXPEntityCommandScope.TypeLevel,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
title: 't("deleteItems", { scope: "common" })',
|
|
119
|
+
command: 'delete-entity',
|
|
120
|
+
priority: 'primary',
|
|
121
|
+
type: 'delete',
|
|
122
|
+
scope: AXPEntityCommandScope.Selected,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
title: 't("detail", { scope: "common" })',
|
|
126
|
+
command: 'open-entity',
|
|
127
|
+
priority: 'secondary',
|
|
128
|
+
type: 'view',
|
|
129
|
+
scope: AXPEntityCommandScope.Individual,
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
title: 't("delete", { scope: "common" })',
|
|
133
|
+
command: 'delete-entity',
|
|
134
|
+
priority: 'secondary',
|
|
135
|
+
type: 'delete',
|
|
136
|
+
scope: AXPEntityCommandScope.Individual,
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
views: [
|
|
140
|
+
createAllQueryView({
|
|
141
|
+
sorts: [{ name: '<%= firstPropertyName %>', dir: 'asc' }]
|
|
142
|
+
}),
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
return entityDef;
|
|
150
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { RootConfig } from '../../const';
|
|
4
|
+
import { AXM<%= moduleClassName %><%= entityClassName %>EntityModel } from './<%= entityFileName %>.types';
|
|
5
|
+
|
|
6
|
+
export abstract class AXM<%= entityClassName %>Service extends AXMEntityCrudServiceImpl<
|
|
7
|
+
string,
|
|
8
|
+
AXM<%= moduleClassName %><%= entityClassName %>EntityModel
|
|
9
|
+
> {}
|
|
10
|
+
|
|
11
|
+
@Injectable()
|
|
12
|
+
export class AXM<%= entityClassName %>ServiceImpl extends AXM<%= entityClassName %>Service {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(`${RootConfig.module.name}.${RootConfig.entities.<%= entityPropertyName %>.name}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -2,6 +2,17 @@ import { Tree } from '@nx/devkit';
|
|
|
2
2
|
interface Schema {
|
|
3
3
|
moduleName: string;
|
|
4
4
|
name: string;
|
|
5
|
+
properties?: string[] | string;
|
|
6
|
+
dataTypes?: string[] | string;
|
|
7
|
+
required?: string[] | string;
|
|
8
|
+
colSpans?: string[] | string;
|
|
9
|
+
orders?: string[] | string;
|
|
10
|
+
icon?: string;
|
|
11
|
+
enableSorts?: string[] | string;
|
|
12
|
+
enableFilters?: string[] | string;
|
|
13
|
+
enableInlineFilters?: string[] | string;
|
|
14
|
+
inColumns?: string[] | string;
|
|
15
|
+
entity?: boolean;
|
|
5
16
|
}
|
|
6
17
|
export default function (tree: Tree, schema: Schema): Promise<void>;
|
|
7
18
|
export {};
|