macoolka-type-model
Version:
`macoolka-type-model` is a library for define model in TypeScript. It easily build a type contain field and method to your Application. It provide a generation model for type and validition
564 lines • 14.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Module = exports.Entity = exports.QueryForm = exports.MutationForm = exports.Formable = exports.MutationStyle = exports.Card = exports.LayoutType = exports.CardType = exports.Elements = exports.Element = exports.Action = exports.ActionTarget = exports.ActionTypes = exports.FieldElement = exports.ElementType = void 0;
exports.ElementType = [
"H1",
"H2",
"H3",
"P",
"P1",
"P2",
"P3",
"Header",
"Subtitle",
"Overline",
"Caption",
"TextField",
"Display",
];
var Iconable = {
name: 'Iconable',
description: [
'Type have a icon field'
],
descriptions: {
zh: [
'有一个图标字段'
]
},
fields: [{
name: 'icon',
description: [
'Icon name'
],
descriptions: {
zh: [
'图标名称'
]
},
type: {
_kind: 'string',
format: 'Icon'
}
}
]
};
var Pageable = {
name: 'Pageable',
description: [
'Type have a page information'
],
descriptions: {
zh: [
'单独页面'
]
},
fields: [{
name: 'href',
description: [
'The page url '
],
descriptions: {
zh: [
'页面url'
]
},
type: {
_kind: 'string',
format: 'URL'
}
}]
};
exports.FieldElement = {
name: 'FieldElement',
description: ['The used with field when render'],
descriptions: {
'zh': ['字段渲染时对应的组件']
},
implements: ['MInfoable', 'MNameable', 'Iconable'],
fields: [{
name: '_kind',
description: [
'The _kind is a tag that check which Type be used.'
],
descriptions: {
zh: [
'标签判断哪一个Type被使用'
]
},
type: {
_kind: 'kind',
value: 'fieldElement',
defaultValue: 'fieldElement'
},
required: true
}, {
name: 'field',
description: ['The Field used on render'],
descriptions: {
'zh': ['对应字段']
},
type: {
_kind: 'type',
value: 'Field',
}
}, {
name: 'type',
description: ['The Element type'],
descriptions: {
'zh': ['类型']
},
type: {
_kind: 'enum',
values: exports.ElementType,
}
}, {
name: 'maxRows',
description: ['max rows count on render with non-TextField'],
descriptions: {
'zh': ['在渲染中最大行数,用在类型非TextField时']
},
type: 'number'
}]
};
exports.ActionTypes = [
"Load",
"Loads",
"Query",
"QueryReset",
"Reset",
"QueryMore",
"LoadWithID",
"OpenWithID",
"DeleteWithID",
"UploadImage",
"UploadFile",
"Search",
"Submit",
"Link"
];
exports.ActionTarget = [
"Main",
"NewPage",
"Dialog",
];
exports.Action = {
name: 'Action',
implements: ['MInfoable', 'MNameable', 'Iconable'],
fields: [{
name: '_kind',
description: [
'The _kind is a tag that check which Type be used.'
],
descriptions: {
zh: [
'标签判断哪一个Type被使用'
]
},
type: {
_kind: 'kind',
value: 'action',
defaultValue: 'action'
},
required: true
}, {
name: 'actionType',
description: ['action type'],
descriptions: {
'zh': ['动作类型']
},
type: {
_kind: 'enum',
values: exports.ActionTypes
}
}, {
name: 'link',
description: ['link url'],
descriptions: {
'zh': ['链接url']
},
}, {
name: 'target',
description: ['action target'],
descriptions: {
'zh': ['动作目标']
},
type: {
_kind: 'enum',
values: exports.ActionTarget,
defaultValue: 'Main'
}
}]
};
exports.Element = {
name: 'Element',
description: ['The Element when render'],
descriptions: {
'zh': ['渲染要素']
},
type: {
_kind: 'typeUnion',
values: ['Field', 'FieldElement', 'Card', 'MutationForm', 'QueryForm', 'Action',]
}
};
exports.Elements = {
name: 'Elements',
description: ['The element collection'],
descriptions: {
'zh': ['渲染要素集合']
},
fields: [{
name: 'item',
type: {
_kind: 'type',
value: 'Element',
}
}, {
name: 'order',
type: 'number',
required: true,
}, {
name: 'items',
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
}
}]
};
exports.CardType = [
"Add",
"Edit",
"Setting",
"Display",
"Manager",
"Home",
"Form",
"App",
"Grid",
"Group",
];
exports.LayoutType = [
"Center",
"Left",
"Right"
];
exports.Card = {
name: 'Card',
description: ['The card '],
descriptions: {
'zh': ['']
},
implements: ['MInfoable', 'MNameable', 'Pageable'],
fields: [{
name: '_kind',
description: [
'The _kind is a tag that check which Type be used.'
],
descriptions: {
zh: [
'标签判断哪一个Type被使用'
]
},
type: {
_kind: 'kind',
value: 'card',
defaultValue: 'card'
},
required: true
}, {
name: 'type',
type: {
_kind: 'enum',
values: exports.CardType
}
}, {
name: 'image',
type: 'string'
}, {
name: 'elements',
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
}
}, {
name: 'actions',
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
}
}, {
name: 'links',
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
}
}, {
name: 'mainActions',
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
}
}, {
name: 'moreActions',
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
}
}]
};
exports.MutationStyle = [
"Add",
"Edit",
"Setting",
"Display"
];
exports.Formable = {
name: 'Formable',
implements: ['MInfoable', 'MNameable', 'Pageable', 'Iconable'],
fields: [{
name: 'input',
description: ['Contain query condition element'],
descriptions: {
'zh': ['输入容器']
},
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
}
}, {
name: 'style',
type: {
_kind: 'enum',
values: exports.MutationStyle
}
}, {
name: 'changeSubmit',
description: ['Execute submit action after change event'],
descriptions: {
'zh': ['当数据改变事件触发后执行submit动作']
},
type: {
_kind: 'boolean',
defaultValue: false,
}
}, {
name: 'autoSubmit',
description: ['Execute submit action after init action execute when the render is ready'],
descriptions: {
'zh': ['当渲染完毕后以及初始化动作完成后执行submit动作']
},
type: {
_kind: 'boolean',
defaultValue: false,
}
}, {
name: 'actions',
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
}
}, {
name: 'submitAction',
description: ['Get data from input element and execute submit action '],
descriptions: {
'zh': ['提交动作表示从input中得到对应数据并执行预定义方法']
},
}, {
name: 'initAction',
description: ['The action mean init input element.Excute when the render is ready'],
descriptions: {
'zh': ['初始化数据,渲染完成后自动执行']
},
}, {
name: 'initActionOnServer',
description: ['The action mean init data.Excute on server render'],
descriptions: {
'zh': ['初始化查询条件,服务器端自动执行']
},
}, {
name: 'success',
description: [
'Show the info when submit success'
],
descriptions: {
zh: [
'显示这个信息在提交成功后'
]
},
type: {
_kind: 'string',
isArray: true,
defaultEmptyArray: true
},
}, {
name: 'successes',
description: [
'i18n success'
],
descriptions: {
zh: [
'国际化成功消息'
]
},
type: 'json'
}]
};
exports.MutationForm = {
name: 'MutationForm',
implements: ['Formable'],
fields: [{
name: '_kind',
description: [
'The _kind is a tag that check which Type be used.'
],
descriptions: {
zh: [
'标签判断哪一个Type被使用'
]
},
type: {
_kind: 'kind',
value: 'mutation',
defaultValue: 'mutation'
},
required: true
},]
};
exports.QueryForm = {
name: 'QueryForm',
implements: ['Formable'],
fields: [{
name: '_kind',
description: [
'The _kind is a tag that check which Type be used.'
],
descriptions: {
zh: [
'标签判断哪一个Type被使用'
]
},
type: {
_kind: 'kind',
value: 'query',
defaultValue: 'query'
},
required: true
}, {
name: 'result',
description: ['Contain query condition element'],
descriptions: {
'zh': ['查询结果']
},
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
}
}]
};
exports.Entity = {
name: 'Entity',
implements: ['MInfoable', 'MNameable'],
fields: [{
name: 'fields',
type: {
_kind: 'type',
value: 'Field',
isArray: true,
defaultEmptyArray: true,
},
required: true,
}, {
name: 'mutations',
type: {
_kind: 'type',
value: 'MutationForm',
isArray: true,
defaultEmptyArray: true,
},
required: true,
}, {
name: 'forms',
type: {
_kind: 'type',
value: 'QueryForm',
isArray: true,
defaultEmptyArray: true,
},
required: true,
}, {
name: 'cards',
type: {
_kind: 'type',
value: 'Card',
isArray: true,
defaultEmptyArray: true,
},
required: true,
}, {
name: 'actions',
type: {
_kind: 'type',
value: 'Action',
isArray: true,
defaultEmptyArray: true,
},
required: true,
}, {
name: 'elements',
type: {
_kind: 'type',
value: 'FieldElement',
isArray: true,
defaultEmptyArray: true,
},
required: true,
}]
};
exports.Module = {
name: 'Module',
implements: ['MInfoable', 'MNameable'],
fields: [{
name: 'nav',
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
},
required: true,
}, {
name: 'bar',
type: {
_kind: 'type',
value: "Elements",
isArray: true,
defaultEmptyArray: true,
},
required: true,
}]
};
var module = {
name: 'macoolka-schema',
interfaces: [exports.Entity, exports.Card, exports.QueryForm, exports.MutationForm, exports.Elements, exports.Action, Iconable, exports.FieldElement, exports.Formable, Pageable],
typealiases: [exports.Element]
};
exports.default = module;
//# sourceMappingURL=SchemaModel.js.map