@simitgroup/simpleapp-generator 1.0.8 → 1.0.9
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/README.md +4 -0
- package/dist/generate.js +3 -1
- package/dist/generate.js.map +1 -1
- package/dist/processors/jsonschemabuilder.js +28 -7
- package/dist/processors/jsonschemabuilder.js.map +1 -1
- package/package.json +1 -1
- package/src/generate.ts +3 -1
- package/src/processors/jsonschemabuilder.ts +29 -8
- package/src/type.ts +1 -1
- package/templates/SimpleAppController.eta +4 -1
- package/templates/SimpleAppService.eta +29 -1
- package/templates/basic/apiclient.eta +9 -4
- package/templates/basic/controller.eta +17 -1
- package/templates/basic/service.eta +2 -0
- package/templates/nuxt.plugins.eta +4 -1
package/README.md
CHANGED
|
@@ -50,6 +50,10 @@ This project assume you familiar with below:
|
|
|
50
50
|
2. mongodb
|
|
51
51
|
3. vue/react kind of ecosystem
|
|
52
52
|
|
|
53
|
+
# Special Format:
|
|
54
|
+
There is special format value:
|
|
55
|
+
1. `field-autcomplete-code`:field for document code, like `student_code,document_no`
|
|
56
|
+
2. `field-autocomplete-label`: field for document name, like `student_name, product_name`
|
|
53
57
|
|
|
54
58
|
You need to install mongodb and openapi generator:
|
|
55
59
|
1. https://www.mongodb.com/docs/manual/installation/
|
package/dist/generate.js
CHANGED
|
@@ -94,6 +94,8 @@ const generate = (docname, doctype, rendertype, allmodels, backendfolder, fronte
|
|
|
94
94
|
name: docname,
|
|
95
95
|
doctype: doctype,
|
|
96
96
|
models: allmodels,
|
|
97
|
+
autocompletecode: allmodels[capitalizeFirstLetter(docname)].codeField,
|
|
98
|
+
autocompletename: allmodels[capitalizeFirstLetter(docname)].nameField,
|
|
97
99
|
schema: allmodels[capitalizeFirstLetter(docname)].model,
|
|
98
100
|
apiSchemaName: capitalizeFirstLetter(docname),
|
|
99
101
|
typename: capitalizeFirstLetter(docname),
|
|
@@ -200,7 +202,7 @@ const generate = (docname, doctype, rendertype, allmodels, backendfolder, fronte
|
|
|
200
202
|
};
|
|
201
203
|
const prepareEnvironments = (backendfolder, frontendfolder) => {
|
|
202
204
|
const targetfolder = `${backendfolder}/src/class`;
|
|
203
|
-
const targetfrontendfolder = `${frontendfolder}/server
|
|
205
|
+
const targetfrontendfolder = `${frontendfolder}/server`;
|
|
204
206
|
try {
|
|
205
207
|
(0, fs_1.mkdirSync)(targetfolder, { recursive: true });
|
|
206
208
|
(0, fs_1.mkdirSync)(targetfrontendfolder);
|
package/dist/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.readJsonSchemaBuilder = void 0;
|
|
4
4
|
const libs_1 = require("../libs");
|
|
5
|
+
const tslog_1 = require("tslog");
|
|
5
6
|
// import { ConflictException } from '@nestjs/common';
|
|
6
7
|
const type_1 = require("../type");
|
|
8
|
+
const log = new tslog_1.Logger();
|
|
9
|
+
const FIELD_AUTOCOMPLETE_CODE = 'field-autocomplete-code';
|
|
10
|
+
const FIELD_AUTOCOMPLETE_NAME = 'field-autocomplete-name';
|
|
7
11
|
let allmodels = {};
|
|
12
|
+
let fieldAutoCompleteCode = '';
|
|
13
|
+
let fieldAutoCompleteName = '';
|
|
8
14
|
const readJsonSchemaBuilder = (doctype, docname, jsondata) => {
|
|
15
|
+
fieldAutoCompleteCode = '';
|
|
16
|
+
fieldAutoCompleteName = '';
|
|
9
17
|
allmodels = {};
|
|
10
18
|
const validateddata = Object.assign({}, jsondata);
|
|
11
19
|
let schema;
|
|
@@ -18,6 +26,14 @@ const readJsonSchemaBuilder = (doctype, docname, jsondata) => {
|
|
|
18
26
|
else if (jsondata.type == 'array') {
|
|
19
27
|
throw (`unsupport array type for ${docname}.${doctype}`);
|
|
20
28
|
}
|
|
29
|
+
if (fieldAutoCompleteCode == '') {
|
|
30
|
+
log.error(`you shall define 1 field with format:'${FIELD_AUTOCOMPLETE_CODE}'`);
|
|
31
|
+
throw "missing field format";
|
|
32
|
+
}
|
|
33
|
+
if (fieldAutoCompleteName == '') {
|
|
34
|
+
log.error(`you shall define 1 field with format: '${FIELD_AUTOCOMPLETE_NAME}'}`);
|
|
35
|
+
throw "missing field format";
|
|
36
|
+
}
|
|
21
37
|
return allmodels;
|
|
22
38
|
};
|
|
23
39
|
exports.readJsonSchemaBuilder = readJsonSchemaBuilder;
|
|
@@ -50,14 +66,19 @@ requiredlist) => {
|
|
|
50
66
|
Object.assign(obj, jsondata[key]);
|
|
51
67
|
const objectitem = {};
|
|
52
68
|
Object.assign(objectitem, obj.items);
|
|
53
|
-
// Object.assign(objtmp,jsondata?[key]:{});
|
|
54
69
|
const isrequired = requiredlist && requiredlist.includes(key);
|
|
55
|
-
// console.log('----', key, isrequired, obj);
|
|
56
70
|
const newName = docname + (0, libs_1.capitalizeFirstLetter)(key);
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (obj.
|
|
71
|
+
if (obj.format && obj.format == FIELD_AUTOCOMPLETE_CODE) {
|
|
72
|
+
fieldAutoCompleteCode = key;
|
|
73
|
+
}
|
|
74
|
+
if (obj.format && obj.format == FIELD_AUTOCOMPLETE_NAME) {
|
|
75
|
+
fieldAutoCompleteName = key;
|
|
76
|
+
}
|
|
77
|
+
if (obj.type == 'object' && !obj.properties) {
|
|
78
|
+
console.log("Skip empty object", docname, ': ', key);
|
|
79
|
+
newmodel[key] = 'Object';
|
|
80
|
+
}
|
|
81
|
+
else if (obj.type == 'object' && obj.properties) {
|
|
61
82
|
genSchema(newName, obj.type, obj.properties, obj.required);
|
|
62
83
|
newmodel[key] = newName;
|
|
63
84
|
}
|
|
@@ -78,7 +99,7 @@ requiredlist) => {
|
|
|
78
99
|
// console.log(key,'--------newmodel',obj, newmodel[key]);
|
|
79
100
|
}
|
|
80
101
|
}
|
|
81
|
-
allmodels[docname] = { type: schematype, model: newmodel };
|
|
102
|
+
allmodels[docname] = { type: schematype, model: newmodel, codeField: fieldAutoCompleteCode, nameField: fieldAutoCompleteName };
|
|
82
103
|
return newmodel;
|
|
83
104
|
};
|
|
84
105
|
const getField = (fieldname, obj, isrequired) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonschemabuilder.js","sourceRoot":"","sources":["../../src/processors/jsonschemabuilder.ts"],"names":[],"mappings":";;;AAGA,kCAAgD;AAEhD,sDAAsD;AACtD,kCAKiB;
|
|
1
|
+
{"version":3,"file":"jsonschemabuilder.js","sourceRoot":"","sources":["../../src/processors/jsonschemabuilder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/generate.ts
CHANGED
|
@@ -87,6 +87,8 @@ const generate = (
|
|
|
87
87
|
name: docname,
|
|
88
88
|
doctype: doctype,
|
|
89
89
|
models: allmodels,
|
|
90
|
+
autocompletecode:allmodels[capitalizeFirstLetter(docname)].codeField,
|
|
91
|
+
autocompletename:allmodels[capitalizeFirstLetter(docname)].nameField,
|
|
90
92
|
schema: allmodels[capitalizeFirstLetter(docname)].model,
|
|
91
93
|
apiSchemaName: capitalizeFirstLetter(docname), //capitalizeFirstLetter(doctype) + 'ApiSchema',
|
|
92
94
|
typename: capitalizeFirstLetter(docname),
|
|
@@ -221,7 +223,7 @@ const generate = (
|
|
|
221
223
|
|
|
222
224
|
const prepareEnvironments = (backendfolder:string,frontendfolder:string)=>{
|
|
223
225
|
const targetfolder = `${backendfolder}/src/class`
|
|
224
|
-
const targetfrontendfolder = `${frontendfolder}/server
|
|
226
|
+
const targetfrontendfolder = `${frontendfolder}/server`
|
|
225
227
|
try{
|
|
226
228
|
mkdirSync(targetfolder,{recursive:true});
|
|
227
229
|
mkdirSync(targetfrontendfolder);
|
|
@@ -3,6 +3,7 @@ import { JSONSchema7, JSONSchema7Definition,JSONSchema7Array,JSONSchema7TypeName
|
|
|
3
3
|
import * as js7 from 'json-schema';
|
|
4
4
|
import { capitalizeFirstLetter } from '../libs';
|
|
5
5
|
import {JsonSchemaProperties} from "../type"
|
|
6
|
+
import { Logger, ILogObj } from "tslog";
|
|
6
7
|
// import { ConflictException } from '@nestjs/common';
|
|
7
8
|
import {
|
|
8
9
|
FieldModel,
|
|
@@ -11,13 +12,19 @@ import {
|
|
|
11
12
|
SchemaModel,
|
|
12
13
|
} from '../type';
|
|
13
14
|
import { json } from 'stream/consumers';
|
|
14
|
-
|
|
15
|
+
const log: Logger<ILogObj> = new Logger();
|
|
16
|
+
const FIELD_AUTOCOMPLETE_CODE='field-autocomplete-code'
|
|
17
|
+
const FIELD_AUTOCOMPLETE_NAME='field-autocomplete-name'
|
|
15
18
|
let allmodels: ChildModels = {};
|
|
19
|
+
let fieldAutoCompleteCode=''
|
|
20
|
+
let fieldAutoCompleteName=''
|
|
16
21
|
export const readJsonSchemaBuilder = (
|
|
17
22
|
doctype: string,
|
|
18
23
|
docname: string,
|
|
19
24
|
jsondata:JSONSchema7,
|
|
20
25
|
): ChildModels => {
|
|
26
|
+
fieldAutoCompleteCode=''
|
|
27
|
+
fieldAutoCompleteName=''
|
|
21
28
|
allmodels = {};
|
|
22
29
|
const validateddata: JSONSchema7 = { ...jsondata };
|
|
23
30
|
let schema: SchemaModel | SchemaModel[];
|
|
@@ -30,6 +37,14 @@ export const readJsonSchemaBuilder = (
|
|
|
30
37
|
} else if (jsondata.type == 'array') {
|
|
31
38
|
throw(`unsupport array type for ${docname}.${doctype}`)
|
|
32
39
|
}
|
|
40
|
+
if(fieldAutoCompleteCode=='') {
|
|
41
|
+
log.error(`you shall define 1 field with format:'${FIELD_AUTOCOMPLETE_CODE}'`)
|
|
42
|
+
throw "missing field format"
|
|
43
|
+
}
|
|
44
|
+
if(fieldAutoCompleteName=='') {
|
|
45
|
+
log.error(`you shall define 1 field with format: '${FIELD_AUTOCOMPLETE_NAME}'}`)
|
|
46
|
+
throw "missing field format"
|
|
47
|
+
}
|
|
33
48
|
|
|
34
49
|
return allmodels;
|
|
35
50
|
};
|
|
@@ -79,14 +94,20 @@ const genSchema = (
|
|
|
79
94
|
const objectitem:JSONSchema7= {} as JSONSchema7
|
|
80
95
|
Object.assign(objectitem,obj.items);
|
|
81
96
|
|
|
82
|
-
// Object.assign(objtmp,jsondata?[key]:{});
|
|
83
97
|
const isrequired = requiredlist && requiredlist.includes(key);
|
|
84
|
-
// console.log('----', key, isrequired, obj);
|
|
85
98
|
const newName: string = docname + capitalizeFirstLetter(key);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
99
|
+
if(obj.format && obj.format==FIELD_AUTOCOMPLETE_CODE){
|
|
100
|
+
fieldAutoCompleteCode=key
|
|
101
|
+
}
|
|
102
|
+
if(obj.format && obj.format==FIELD_AUTOCOMPLETE_NAME){
|
|
103
|
+
fieldAutoCompleteName=key
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (obj.type == 'object' && !obj.properties){
|
|
107
|
+
console.log("Skip empty object",docname,': ',key)
|
|
108
|
+
newmodel[key] = 'Object';
|
|
109
|
+
}
|
|
110
|
+
else if (obj.type == 'object' && obj.properties) {
|
|
90
111
|
genSchema(newName, obj.type, obj.properties, obj.required);
|
|
91
112
|
newmodel[key] = newName;
|
|
92
113
|
} else if (obj.type == 'array' && obj.items && objectitem?.type == 'object') {
|
|
@@ -104,7 +125,7 @@ const genSchema = (
|
|
|
104
125
|
// console.log(key,'--------newmodel',obj, newmodel[key]);
|
|
105
126
|
}
|
|
106
127
|
}
|
|
107
|
-
allmodels[docname] = { type: schematype, model: newmodel };
|
|
128
|
+
allmodels[docname] = { type: schematype, model: newmodel,codeField: fieldAutoCompleteCode ,nameField: fieldAutoCompleteName };
|
|
108
129
|
return newmodel;
|
|
109
130
|
};
|
|
110
131
|
|
package/src/type.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { JSONSchema7, JSONSchema7Definition } from 'json-schema';
|
|
2
2
|
export type ChildModels = {
|
|
3
|
-
[key: string]: { type: string; model: SchemaModel };
|
|
3
|
+
[key: string]: { type: string; model: SchemaModel,codeField:string,nameField:string };
|
|
4
4
|
};
|
|
5
5
|
export enum Fieldtypes {
|
|
6
6
|
'string' = 'string',
|
|
@@ -20,6 +20,7 @@ type ServiceType = {
|
|
|
20
20
|
findIdThenDelete: Function;
|
|
21
21
|
findIdThenUpdate: Function;
|
|
22
22
|
setData: Function;
|
|
23
|
+
getAutoComplete: Function;
|
|
23
24
|
};
|
|
24
25
|
|
|
25
26
|
// @ApiTags(doctype)
|
|
@@ -37,7 +38,9 @@ export class SimpleAppController<TService extends ServiceType, TApiSchema, T> {
|
|
|
37
38
|
async _list() {
|
|
38
39
|
return this.service.list();
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
+
async _autocomplete(keyword: string) {
|
|
42
|
+
return this.service.getAutoComplete(keyword);
|
|
43
|
+
}
|
|
41
44
|
async _findOne(id: string) {
|
|
42
45
|
const result = (await this.service.findById(id)) as TApiSchema;
|
|
43
46
|
|
|
@@ -11,6 +11,9 @@ import {
|
|
|
11
11
|
@Injectable()
|
|
12
12
|
export class SimpleAppService<T extends { _id?: string }> {
|
|
13
13
|
protected jsonschema = { type: 'object', properties: {}, required: [] };
|
|
14
|
+
protected documentIdentityCode='code'
|
|
15
|
+
protected documentIdentityName='label'
|
|
16
|
+
protected LIMITPERPAGE=20
|
|
14
17
|
protected data: T = { _id: '' } as T;
|
|
15
18
|
protected doc: Model<T>;
|
|
16
19
|
protected errorlist = [];
|
|
@@ -40,6 +43,29 @@ export class SimpleAppService<T extends { _id?: string }> {
|
|
|
40
43
|
} catch (err) {
|
|
41
44
|
throw new InternalServerErrorException(err.message);
|
|
42
45
|
}
|
|
46
|
+
}
|
|
47
|
+
async getAutoComplete(keyword: string) {
|
|
48
|
+
try {
|
|
49
|
+
const filter1 = {};
|
|
50
|
+
const filter2 = {};
|
|
51
|
+
filter1[this.documentIdentityCode] = { $regex: keyword };
|
|
52
|
+
filter2[this.documentIdentityName] = { $regex: keyword };
|
|
53
|
+
const filterobj = { $or: [filter1, filter2] };
|
|
54
|
+
const projections = {
|
|
55
|
+
id: `\$_id`,
|
|
56
|
+
label: `\$${this.documentIdentityCode}`,
|
|
57
|
+
name: `\$${this.documentIdentityName}`,
|
|
58
|
+
};
|
|
59
|
+
const products = await this.doc.find(filterobj, projections, {
|
|
60
|
+
limit: this.LIMITPERPAGE,
|
|
61
|
+
});
|
|
62
|
+
const productlist = products.map((p: T) => {
|
|
63
|
+
return p;
|
|
64
|
+
});
|
|
65
|
+
return productlist;
|
|
66
|
+
} catch (err) {
|
|
67
|
+
throw new InternalServerErrorException(err.message);
|
|
68
|
+
}
|
|
43
69
|
}
|
|
44
70
|
async findById(id: string) {
|
|
45
71
|
try {
|
|
@@ -87,7 +113,9 @@ export class SimpleAppService<T extends { _id?: string }> {
|
|
|
87
113
|
validateData(data: T) {
|
|
88
114
|
const ajv = new Ajv({ allErrors: true });
|
|
89
115
|
addFormats(ajv);
|
|
90
|
-
|
|
116
|
+
ajv.addFormat('field-autocomplete-code', /.*$/)
|
|
117
|
+
ajv.addFormat('field-autocomplete-name', /.*$/)
|
|
118
|
+
ajv.addFormat('autocomplete', /.*$/)
|
|
91
119
|
if (!this.hook('pre-validation', data)) {
|
|
92
120
|
const erromsg: string[] = [];
|
|
93
121
|
for (let i = 0; i < this.errorlist.length; i++) {
|
|
@@ -18,7 +18,8 @@ import { Configuration,
|
|
|
18
18
|
|
|
19
19
|
export class <%= it.typename%>Doc extends SimpleAppClient<<%= it.typename%>,<%= it.doctype.toUpperCase()%>Api>{
|
|
20
20
|
public readonly schema= <%~ JSON.stringify(it.jsonschema) %>;
|
|
21
|
-
|
|
21
|
+
protected documentIdentityCode='<%~ it.autocompletecode %>'
|
|
22
|
+
protected documentIdentityName='<%~ it.autocompletename %>'
|
|
22
23
|
constructor() {
|
|
23
24
|
const apiconfig = new Configuration({ basePath: useRuntimeConfig().public.SIMPLEAPP_BACKEND_URL });
|
|
24
25
|
const apiobj = new <%= it.doctype.toUpperCase()%>Api(apiconfig)
|
|
@@ -30,9 +31,13 @@ export class <%= it.typename%>Doc extends SimpleAppClient<<%= it.typename%>,<%=
|
|
|
30
31
|
const newdata = {
|
|
31
32
|
|
|
32
33
|
<%Object.keys(it.schema).forEach(function(key){%>
|
|
33
|
-
<%let field=it.schema[key]%>
|
|
34
|
-
<% if(field.type=='
|
|
35
|
-
|
|
34
|
+
<%let field=it.schema[key]%>
|
|
35
|
+
<% if(typeof field.default !='undefined' && field.type=='string'){%>
|
|
36
|
+
<%=key%> : '<%= field.default %>',
|
|
37
|
+
<%} else if(typeof field.default !='undefined'){%>
|
|
38
|
+
<%=key%> : <%= field.default %>,
|
|
39
|
+
<%} else if(field.type=='boolean' ){%>
|
|
40
|
+
<%=key%> :false ,
|
|
36
41
|
<%} else if(typeof field=='string'){%>
|
|
37
42
|
<%=key%> : <<%= field %>>{},
|
|
38
43
|
<%} else if(field.type=='string'){%>
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
Post,
|
|
11
11
|
Delete,
|
|
12
12
|
Body,
|
|
13
|
+
Query,
|
|
13
14
|
Param,
|
|
14
15
|
Type,
|
|
15
16
|
} from '@nestjs/common';
|
|
@@ -42,7 +43,20 @@ export class <%= it.typename %>Controller extends SimpleAppController<
|
|
|
42
43
|
async list() {
|
|
43
44
|
return this._list();
|
|
44
45
|
}
|
|
45
|
-
|
|
46
|
+
//autocomplete shall above :id
|
|
47
|
+
@Get('/autocomplete')
|
|
48
|
+
@ApiResponse({
|
|
49
|
+
status: 200,
|
|
50
|
+
description: 'Found',
|
|
51
|
+
type: ()=>[{id:'100',label:'label1'}],
|
|
52
|
+
})
|
|
53
|
+
@ApiResponse({ status: 500, description: 'Internal error' })
|
|
54
|
+
@ApiOperation({ operationId: 'autoComplete' })
|
|
55
|
+
async autoComplete(@Query('keyword') keyword: string) {
|
|
56
|
+
return this._autocomplete(keyword);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
46
60
|
@Get(':id')
|
|
47
61
|
@ApiResponse({
|
|
48
62
|
status: 200,
|
|
@@ -55,6 +69,8 @@ export class <%= it.typename %>Controller extends SimpleAppController<
|
|
|
55
69
|
async findOne(@Param('id') id: string) {
|
|
56
70
|
return await this._findOne(id);
|
|
57
71
|
}
|
|
72
|
+
|
|
73
|
+
|
|
58
74
|
|
|
59
75
|
@Post()
|
|
60
76
|
@ApiResponse({
|
|
@@ -13,6 +13,8 @@ import { <%Object.keys(it.models).forEach(function(key) { %> <%=key %>, <%})%> }
|
|
|
13
13
|
|
|
14
14
|
@Injectable()
|
|
15
15
|
export class <%= it.typename %>Service extends SimpleAppService<<%= it.typename %>> {
|
|
16
|
+
protected documentIdentityCode='<%~ it.autocompletecode %>'
|
|
17
|
+
protected documentIdentityName='<%~ it.autocompletename %>'
|
|
16
18
|
constructor(@InjectModel('<%= it.name %>') mydoc: Model<<%= it.typename %>>,
|
|
17
19
|
) {
|
|
18
20
|
super(mydoc);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
1
|
import { defineNuxtPlugin } from "#app";
|
|
3
2
|
import PrimeVue from "primevue/config";
|
|
3
|
+
import ToastService from 'primevue/toastservice';
|
|
4
|
+
|
|
4
5
|
import SimpleAppAutocomplete from '@simitgroup/simpleapp-vue-component/src/components/SimpleAppAutocomplete.vue'
|
|
5
6
|
import SimpleAppAutocompletemulti from '@simitgroup/simpleapp-vue-component/src/components/SimpleAppAutocompletemulti.vue'
|
|
6
7
|
import SimpleAppCalendar from '@simitgroup/simpleapp-vue-component/src/components/SimpleAppCalendar.vue'
|
|
@@ -23,6 +24,7 @@ import SimpleAppText from '@simitgroup/simpleapp-vue-component/src/components/Si
|
|
|
23
24
|
import SimpleAppTextarea from '@simitgroup/simpleapp-vue-component/src/components/SimpleAppTextarea.vue'
|
|
24
25
|
import SimpleAppValue from '@simitgroup/simpleapp-vue-component/src/components/SimpleAppValue.vue'
|
|
25
26
|
import SimpleFieldContainer from '@simitgroup/simpleapp-vue-component/src/components/SimpleFieldContainer.vue'
|
|
27
|
+
import SimpleAppDatatable from '@simitgroup/simpleapp-vue-component/src/components/SimpleAppDatatable.vue'
|
|
26
28
|
|
|
27
29
|
|
|
28
30
|
|
|
@@ -53,6 +55,7 @@ export default defineNuxtPlugin((nuxtApp) => {
|
|
|
53
55
|
.component("SimpleAppTextarea",SimpleAppTextarea)
|
|
54
56
|
.component("SimpleAppValue",SimpleAppValue)
|
|
55
57
|
.component("SimpleFieldContainer",SimpleFieldContainer)
|
|
58
|
+
.use(ToastService)
|
|
56
59
|
;
|
|
57
60
|
//other components that you need
|
|
58
61
|
});
|