@vyr/element-plus 0.0.1

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.
Files changed (103) hide show
  1. package/package.json +24 -0
  2. package/src/actor/ElButtonActor.ts +42 -0
  3. package/src/actor/ElCascaderActor.ts +43 -0
  4. package/src/actor/ElCheckboxActor.ts +46 -0
  5. package/src/actor/ElColActor.ts +36 -0
  6. package/src/actor/ElDatePickerActor.ts +42 -0
  7. package/src/actor/ElDialogActor.ts +38 -0
  8. package/src/actor/ElFormActor.ts +46 -0
  9. package/src/actor/ElFormItemActor.ts +81 -0
  10. package/src/actor/ElInputActor.ts +47 -0
  11. package/src/actor/ElInputNumberActor.ts +38 -0
  12. package/src/actor/ElMenuActor.ts +35 -0
  13. package/src/actor/ElMenuItemActor.ts +46 -0
  14. package/src/actor/ElPaginationActor.ts +83 -0
  15. package/src/actor/ElRadioActor.ts +46 -0
  16. package/src/actor/ElRowActor.ts +37 -0
  17. package/src/actor/ElSelectActor.ts +49 -0
  18. package/src/actor/ElSubMenuActor.ts +46 -0
  19. package/src/actor/ElSwitchActor.ts +26 -0
  20. package/src/actor/ElTableActor.ts +35 -0
  21. package/src/actor/ElTableColumnActor.ts +72 -0
  22. package/src/actor/index.ts +20 -0
  23. package/src/asset/index.ts +17 -0
  24. package/src/descriptor/ElButtonDescriptor.ts +36 -0
  25. package/src/descriptor/ElCascaderDescriptor.ts +43 -0
  26. package/src/descriptor/ElCheckboxDescriptor.ts +41 -0
  27. package/src/descriptor/ElColDescriptor.ts +20 -0
  28. package/src/descriptor/ElDatePickerDescriptor.ts +43 -0
  29. package/src/descriptor/ElDialogDescriptor.ts +24 -0
  30. package/src/descriptor/ElFormDescriptor.ts +60 -0
  31. package/src/descriptor/ElFormItemDescriptor.ts +14 -0
  32. package/src/descriptor/ElInputDescriptor.ts +56 -0
  33. package/src/descriptor/ElInputNumberDescriptor.ts +38 -0
  34. package/src/descriptor/ElMenuDescriptor.ts +26 -0
  35. package/src/descriptor/ElMenuItemDescriptor.ts +22 -0
  36. package/src/descriptor/ElPaginationDescriptor.ts +52 -0
  37. package/src/descriptor/ElRadioDescriptor.ts +41 -0
  38. package/src/descriptor/ElRowDescriptor.ts +22 -0
  39. package/src/descriptor/ElSelectDescriptor.ts +43 -0
  40. package/src/descriptor/ElSubMenuDescriptor.ts +20 -0
  41. package/src/descriptor/ElSwitchDescriptor.ts +35 -0
  42. package/src/descriptor/ElTableColumnDescriptor.ts +41 -0
  43. package/src/descriptor/ElTableDescriptor.ts +26 -0
  44. package/src/descriptor/index.ts +20 -0
  45. package/src/index.ts +7 -0
  46. package/src/interpreter/ElButtonInterpreter.ts +18 -0
  47. package/src/interpreter/ElCascaderInterpreter.ts +18 -0
  48. package/src/interpreter/ElCheckboxInterpreter.ts +18 -0
  49. package/src/interpreter/ElColInterpreter.ts +18 -0
  50. package/src/interpreter/ElDatePickerInterpreter.ts +18 -0
  51. package/src/interpreter/ElDialogInterpreter.ts +18 -0
  52. package/src/interpreter/ElFormInterpreter.ts +18 -0
  53. package/src/interpreter/ElInputInterpreter.ts +18 -0
  54. package/src/interpreter/ElInputNumberInterpreter.ts +18 -0
  55. package/src/interpreter/ElMenuInterpreter.ts +18 -0
  56. package/src/interpreter/ElMenuItemInterpreter.ts +18 -0
  57. package/src/interpreter/ElPaginationInterpreter.ts +18 -0
  58. package/src/interpreter/ElRadioInterpreter.ts +18 -0
  59. package/src/interpreter/ElRowInterpreter.ts +18 -0
  60. package/src/interpreter/ElSelectInterpreter.ts +18 -0
  61. package/src/interpreter/ElSubMenuInterpreter.ts +18 -0
  62. package/src/interpreter/ElSwitchInterpreter.ts +18 -0
  63. package/src/interpreter/ElTableColumnInterpreter.ts +18 -0
  64. package/src/interpreter/ElTableInterpreter.ts +18 -0
  65. package/src/interpreter/index.ts +33 -0
  66. package/src/locale/Language.ts +10 -0
  67. package/src/locale/LanguageProvider.ts +64 -0
  68. package/src/locale/index.ts +2 -0
  69. package/src/preset/execute/ElDialog/close.ts +48 -0
  70. package/src/preset/execute/ElDialog/index.ts +2 -0
  71. package/src/preset/execute/ElDialog/open.ts +51 -0
  72. package/src/preset/execute/ElForm/branch.ts +47 -0
  73. package/src/preset/execute/ElForm/create.ts +31 -0
  74. package/src/preset/execute/ElForm/edit.ts +31 -0
  75. package/src/preset/execute/ElForm/getData.ts +51 -0
  76. package/src/preset/execute/ElForm/index.ts +5 -0
  77. package/src/preset/execute/ElForm/reset.ts +55 -0
  78. package/src/preset/execute/ElPagination/getData.ts +48 -0
  79. package/src/preset/execute/ElPagination/index.ts +2 -0
  80. package/src/preset/execute/ElPagination/reset.ts +46 -0
  81. package/src/preset/execute/ElTable/create.ts +38 -0
  82. package/src/preset/execute/ElTable/delete.ts +53 -0
  83. package/src/preset/execute/ElTable/edit.ts +38 -0
  84. package/src/preset/execute/ElTable/index.ts +3 -0
  85. package/src/preset/execute/ElTableColumn/formatter.ts +74 -0
  86. package/src/preset/execute/ElTableColumn/index.ts +1 -0
  87. package/src/preset/execute/index.ts +5 -0
  88. package/src/preset/index.ts +7 -0
  89. package/src/preset/routine/ElDialog/close.ts +26 -0
  90. package/src/preset/routine/ElDialog/index.ts +1 -0
  91. package/src/preset/routine/ElTable/create.ts +31 -0
  92. package/src/preset/routine/ElTable/delete.ts +31 -0
  93. package/src/preset/routine/ElTable/edit.ts +33 -0
  94. package/src/preset/routine/ElTable/index.ts +6 -0
  95. package/src/preset/routine/ElTable/list.ts +32 -0
  96. package/src/preset/routine/ElTable/reset.ts +31 -0
  97. package/src/preset/routine/ElTable/submit.ts +45 -0
  98. package/src/preset/routine/index.ts +2 -0
  99. package/src/shims-vue.d.ts +5 -0
  100. package/src/utils/form.ts +72 -0
  101. package/src/utils/index.ts +3 -0
  102. package/src/utils/style.ts +9 -0
  103. package/src/utils/validator.ts +30 -0
@@ -0,0 +1,46 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { DatasetDescriptor, UpdateArgs } from "@vyr/engine";
3
+ import { VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElRadioDescriptor } from "../descriptor";
5
+ import { ElFormItemActor } from "./ElFormItemActor";
6
+
7
+ class ElRadioActor extends ElFormItemActor {
8
+
9
+ getProps(descriptor: ElRadioDescriptor, args: UpdateArgs): VyrVueProps {
10
+ const props = super.getProps(descriptor, args)
11
+
12
+ return {
13
+ ...props,
14
+ disabled: descriptor.disabled,
15
+ border: descriptor.border,
16
+ }
17
+ }
18
+
19
+ getComponent() {
20
+ return resolveDynamicComponent('el-radio-group') as VNode
21
+ }
22
+
23
+ getContent(instance: VyrVueInstance, _children: VyrVueChildren, descriptor: ElRadioDescriptor) {
24
+ const children: VNode[] = []
25
+
26
+ const options = DatasetDescriptor.getCollection(descriptor.options)
27
+ if (options.length > 0) {
28
+ for (const option of options) {
29
+ const checkbox = resolveDynamicComponent('el-radio') as VNode
30
+ const labelAttr = { value: option[descriptor.value] }
31
+ children.push(h(checkbox, labelAttr, () => option[descriptor.label]))
32
+ }
33
+ }
34
+
35
+ const inputComponent = this.getComponent()
36
+ const inputAttrs = this.getComponentAttrs(instance, descriptor, descriptor.modelValue)
37
+ const inputVnode = h(inputComponent, inputAttrs, { default: () => children })
38
+ this.currentVnode = inputVnode
39
+
40
+ return this.getItemComponent(descriptor, inputVnode)
41
+ }
42
+ }
43
+
44
+ export {
45
+ ElRadioActor
46
+ }
@@ -0,0 +1,37 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElRowDescriptor } from "../descriptor";
5
+
6
+ class ElRowActor extends VueActor {
7
+
8
+ getProps(descriptor: ElRowDescriptor, args: UpdateArgs): VyrVueProps {
9
+ const props = super.getProps(descriptor, args)
10
+
11
+ return {
12
+ ...props,
13
+ gutter: descriptor.gutter,
14
+ justify: descriptor.justify,
15
+ align: descriptor.align,
16
+ }
17
+ }
18
+
19
+ getWrapperVNode(instance: VyrVueInstance, content: VNode) {
20
+ return content
21
+ }
22
+
23
+ getComponent() {
24
+ return resolveDynamicComponent('el-row') as VNode
25
+ }
26
+
27
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElRowDescriptor) {
28
+ const component = this.getComponent()
29
+ const attrs = this.getComponentAttrs(instance, descriptor)
30
+
31
+ return h(component, attrs, children)
32
+ }
33
+ }
34
+
35
+ export {
36
+ ElRowActor
37
+ }
@@ -0,0 +1,49 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { DatasetDescriptor, UpdateArgs } from "@vyr/engine";
3
+ import { VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElSelectDescriptor } from "../descriptor";
5
+ import { mergeStyle } from "../utils";
6
+ import { ElFormItemActor } from "./ElFormItemActor";
7
+
8
+ class ElSelectActor extends ElFormItemActor {
9
+
10
+ getProps(descriptor: ElSelectDescriptor, args: UpdateArgs): VyrVueProps {
11
+ const props = super.getProps(descriptor, args)
12
+
13
+ return {
14
+ ...props,
15
+ placeholder: descriptor.placeholder,
16
+ disabled: descriptor.disabled,
17
+ clearable: descriptor.clearable,
18
+ }
19
+ }
20
+
21
+ getComponent() {
22
+ return resolveDynamicComponent('el-select') as VNode
23
+ }
24
+
25
+ getContent(instance: VyrVueInstance, _children: VyrVueChildren, descriptor: ElSelectDescriptor) {
26
+ const children: VNode[] = []
27
+
28
+ const options = DatasetDescriptor.getCollection(descriptor.options)
29
+ if (options.length > 0) {
30
+ for (const option of options) {
31
+ const checkbox = resolveDynamicComponent('el-option') as VNode
32
+ const labelAttr = { label: option[descriptor.label], value: option[descriptor.value] }
33
+ children.push(h(checkbox, labelAttr, { default: () => [] }))
34
+ }
35
+ }
36
+
37
+ const inputComponent = this.getComponent()
38
+ const inputAttrs = this.getComponentAttrs(instance, descriptor, descriptor.modelValue)
39
+ mergeStyle({ 'min-width': '200px' }, inputAttrs)
40
+ const inputVnode = h(inputComponent, inputAttrs, { default: () => children })
41
+ this.currentVnode = inputVnode
42
+
43
+ return this.getItemComponent(descriptor, inputVnode)
44
+ }
45
+ }
46
+
47
+ export {
48
+ ElSelectActor
49
+ }
@@ -0,0 +1,46 @@
1
+ import { h, resolveDynamicComponent, VNode, Text } from "vue"
2
+ import { Generate, UpdateArgs } from "@vyr/engine";
3
+ import { VueActor, VyrVueChildren, VyrVueInstance } from "@vyr/vue";
4
+ import { ElSubMenuDescriptor } from "../descriptor";
5
+
6
+ class ElSubMenuActor extends VueActor {
7
+
8
+ getWrapper() {
9
+ return null
10
+ }
11
+
12
+ getProps(descriptor: ElSubMenuDescriptor, args: UpdateArgs) {
13
+ const props = super.getProps(descriptor, args)
14
+
15
+ return {
16
+ ...props,
17
+ index: descriptor.uuid,
18
+ }
19
+ }
20
+
21
+ getWrapperVNode(instance: VyrVueInstance, content: VNode) {
22
+ return content
23
+ }
24
+
25
+ getComponent() {
26
+ return resolveDynamicComponent('el-sub-menu') as VNode
27
+ }
28
+
29
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElSubMenuDescriptor) {
30
+ const component = this.getComponent()
31
+ const attrs = this.getComponentAttrs(instance, descriptor)
32
+
33
+ if (descriptor.label) {
34
+ const title = h(Text, descriptor.label)
35
+ children.title = () => title
36
+ }
37
+
38
+ const content = h(component, { ...attrs, key: Generate.uuid() }, children)
39
+
40
+ return content
41
+ }
42
+ }
43
+
44
+ export {
45
+ ElSubMenuActor
46
+ }
@@ -0,0 +1,26 @@
1
+ import { resolveDynamicComponent, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VyrVueProps } from "@vyr/vue";
4
+ import { ElSwitchDescriptor } from "../descriptor";
5
+ import { ElFormItemActor } from "./ElFormItemActor";
6
+
7
+ class ElSwitchActor extends ElFormItemActor {
8
+
9
+ getProps(descriptor: ElSwitchDescriptor, args: UpdateArgs): VyrVueProps {
10
+ const props = super.getProps(descriptor, args)
11
+
12
+ return {
13
+ ...props,
14
+ disabled: descriptor.disabled,
15
+ loading: descriptor.loading,
16
+ }
17
+ }
18
+
19
+ getComponent() {
20
+ return resolveDynamicComponent('el-switch') as VNode
21
+ }
22
+ }
23
+
24
+ export {
25
+ ElSwitchActor
26
+ }
@@ -0,0 +1,35 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElTableDescriptor } from "../descriptor";
5
+
6
+ class ElTableActor extends VueActor {
7
+
8
+ getProps(descriptor: ElTableDescriptor, args: UpdateArgs): VyrVueProps {
9
+ const props = super.getProps(descriptor, args)
10
+
11
+ return {
12
+ ...props,
13
+ data: descriptor.data,
14
+ border: descriptor.border,
15
+ stripe: descriptor.stripe,
16
+ fit: descriptor.fit,
17
+ showHeader: descriptor.showHeader,
18
+ }
19
+ }
20
+
21
+ getComponent() {
22
+ return resolveDynamicComponent('el-table') as VNode
23
+ }
24
+
25
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElTableDescriptor) {
26
+ const component = this.getComponent()
27
+ const attrs = this.getComponentAttrs(instance, descriptor)
28
+
29
+ return h(component, attrs, children)
30
+ }
31
+ }
32
+
33
+ export {
34
+ ElTableActor
35
+ }
@@ -0,0 +1,72 @@
1
+ import { TableColumnCtx } from "element-plus";
2
+ import { h, resolveDynamicComponent, VNode } from "vue"
3
+ import { Asset, Generate, Scriptable, UpdateArgs } from "@vyr/engine";
4
+ import { VueActor, VyrVueChildren, VyrVueInstance } from "@vyr/vue";
5
+ import { ElTableColumnDescriptor } from "../descriptor";
6
+ import { executePreset } from '../preset'
7
+
8
+ class ElTableColumnActor extends VueActor {
9
+
10
+ getWrapper() {
11
+ return null
12
+ }
13
+
14
+ useFormatter(descriptor: ElTableColumnDescriptor) {
15
+ return (row: any, column: TableColumnCtx<any>, cellValue: any, index: number) => {
16
+ const formattingScript = Asset.get<Scriptable>(descriptor.formattingScript)
17
+ if (formattingScript) {
18
+ const graphics = VueActor.getGraphics(this)
19
+ const input = executePreset.ElTableColumn.formatter.createExecuteInput({ dataset: descriptor.formattingDataset })
20
+ const previous = 'cellValue'
21
+ const args = {
22
+ delta: 0,
23
+ trigger: descriptor,
24
+ input: { previous, default: input, user: input, },
25
+ result: new Map(),
26
+ }
27
+ args.result.set(previous, cellValue)
28
+ const formatValue = formattingScript.execute(descriptor, graphics, args)
29
+
30
+ return formatValue ?? cellValue
31
+ }
32
+ return cellValue
33
+ }
34
+ }
35
+
36
+ getProps(descriptor: ElTableColumnDescriptor, args: UpdateArgs) {
37
+ const props = super.getProps(descriptor, args)
38
+
39
+ return {
40
+ ...props,
41
+ formatter: this.useFormatter(descriptor),
42
+ type: descriptor.columnType,
43
+ prop: descriptor.columnName,
44
+ label: descriptor.columnComment,
45
+ width: descriptor.columnWidth,
46
+ fixed: descriptor.columnFixed,
47
+ align: descriptor.columnAlign,
48
+ showOverflowTooltip: descriptor.columnTooltip,
49
+ }
50
+ }
51
+
52
+ getWrapperVNode(instance: VyrVueInstance, content: VNode) {
53
+ return content
54
+ }
55
+
56
+ getComponent() {
57
+ return resolveDynamicComponent('el-table-column') as VNode
58
+ }
59
+
60
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElTableColumnDescriptor) {
61
+ const component = this.getComponent()
62
+ const attrs = this.getComponentAttrs(instance, descriptor)
63
+
64
+ const content = h(component, { ...attrs, key: Generate.uuid() }, this.getSlots(children))
65
+
66
+ return content
67
+ }
68
+ }
69
+
70
+ export {
71
+ ElTableColumnActor
72
+ }
@@ -0,0 +1,20 @@
1
+ export * from './ElButtonActor'
2
+ export * from './ElRowActor'
3
+ export * from './ElColActor'
4
+ export * from './ElFormActor'
5
+ export * from './ElFormItemActor'
6
+ export * from './ElInputActor'
7
+ export * from './ElInputNumberActor'
8
+ export * from './ElSelectActor'
9
+ export * from './ElCascaderActor'
10
+ export * from './ElCheckboxActor'
11
+ export * from './ElDatePickerActor'
12
+ export * from './ElRadioActor'
13
+ export * from './ElSwitchActor'
14
+ export * from './ElTableColumnActor'
15
+ export * from './ElTableActor'
16
+ export * from './ElDialogActor'
17
+ export * from './ElPaginationActor'
18
+ export * from './ElMenuActor'
19
+ export * from './ElSubMenuActor'
20
+ export * from './ElMenuItemActor'
@@ -0,0 +1,17 @@
1
+ import { AssetGraph, Category, Descriptor, Port } from "@vyr/engine";
2
+ import { ElCascaderDescriptor, ElCheckboxDescriptor, ElRadioDescriptor, ElSelectDescriptor, ElTableColumnDescriptor } from "../descriptor";
3
+
4
+ const ElFormByOptionsDescriptorProvider = (descriptor: { options: string } & Descriptor, port: Port) => {
5
+ if (descriptor.options) port.edges.push({ key: 'options', category: Category.dataset, asset: descriptor.options })
6
+ }
7
+
8
+ const ElTableColumnDescriptorProvider = (descriptor: ElTableColumnDescriptor, port: Port) => {
9
+ if (descriptor.formattingDataset) port.edges.push({ key: 'formattingDataset', category: Category.dataset, asset: descriptor.formattingDataset })
10
+ if (descriptor.formattingScript) port.edges.push({ key: 'formattingScript', category: Category.ts, asset: descriptor.formattingScript })
11
+ }
12
+
13
+ AssetGraph.register(ElCascaderDescriptor.type, ElFormByOptionsDescriptorProvider)
14
+ AssetGraph.register(ElCheckboxDescriptor.type, ElFormByOptionsDescriptorProvider)
15
+ AssetGraph.register(ElRadioDescriptor.type, ElFormByOptionsDescriptorProvider)
16
+ AssetGraph.register(ElSelectDescriptor.type, ElFormByOptionsDescriptorProvider)
17
+ AssetGraph.register(ElTableColumnDescriptor.type, ElTableColumnDescriptorProvider)
@@ -0,0 +1,36 @@
1
+ import { DeserializationObject } from "@vyr/engine";
2
+ import { VueDescriptor } from "@vyr/vue";
3
+
4
+ class ElButtonDescriptor extends VueDescriptor {
5
+ static type = 'ElButton'
6
+
7
+ buttonType: 'default' | 'primary' | 'success' | 'info' | 'warning' | 'danger'
8
+ plain: boolean
9
+ circle: boolean
10
+ round: boolean
11
+ size: 'large' | 'small' | 'default'
12
+ textMode: boolean
13
+ text: string
14
+
15
+ disabled: boolean
16
+ loading: boolean
17
+
18
+ constructor(descriptor: Partial<DeserializationObject<ElButtonDescriptor>> = {}) {
19
+ super(descriptor)
20
+ this.display = descriptor.display ?? 'inline-block'
21
+ this.buttonType = descriptor.buttonType ?? 'default'
22
+ this.plain = descriptor.plain ?? false
23
+ this.circle = descriptor.circle ?? false
24
+ this.round = descriptor.round ?? false
25
+ this.size = descriptor.size ?? 'default'
26
+ this.textMode = descriptor.textMode ?? false
27
+ this.text = descriptor.text ?? ''
28
+ this.disabled = descriptor.disabled ?? false
29
+ this.loading = descriptor.loading ?? false
30
+ }
31
+ }
32
+ VueDescriptor.register(ElButtonDescriptor)
33
+
34
+ export {
35
+ ElButtonDescriptor
36
+ }
@@ -0,0 +1,43 @@
1
+ import { DeserializationObject } from "@vyr/engine";
2
+ import { VueDescriptor } from "@vyr/vue";
3
+ import { ElFormItemDescriptor } from "./ElFormItemDescriptor";
4
+
5
+ class ElCascaderDescriptor extends ElFormItemDescriptor {
6
+ static type = 'ElCascader'
7
+
8
+ columnName: string
9
+ columnComment: string
10
+ columnType: string
11
+ modelValue: string
12
+ labelWidth: string | number
13
+ placeholder: string
14
+ required: boolean
15
+
16
+ options: string
17
+ label: string
18
+ value: string
19
+ clearable: boolean
20
+ disabled: boolean
21
+
22
+ constructor(descriptor: Partial<DeserializationObject<ElCascaderDescriptor>> = {}) {
23
+ super(descriptor)
24
+ this.columnName = descriptor.columnName ?? ''
25
+ this.columnComment = descriptor.columnComment ?? ''
26
+ this.columnType = descriptor.columnType ?? ''
27
+ this.modelValue = descriptor.modelValue ?? ''
28
+ this.labelWidth = descriptor.labelWidth ?? ''
29
+ this.placeholder = descriptor.placeholder ?? ''
30
+ this.required = descriptor.required ?? false
31
+
32
+ this.options = descriptor.options ?? ''
33
+ this.label = descriptor.label ?? 'label'
34
+ this.value = descriptor.value ?? 'value'
35
+ this.clearable = descriptor.clearable ?? false
36
+ this.disabled = descriptor.disabled ?? false
37
+ }
38
+ }
39
+ VueDescriptor.register(ElCascaderDescriptor)
40
+
41
+ export {
42
+ ElCascaderDescriptor
43
+ }
@@ -0,0 +1,41 @@
1
+ import { DeserializationObject } from "@vyr/engine";
2
+ import { VueDescriptor } from "@vyr/vue";
3
+ import { ElFormItemDescriptor } from "./ElFormItemDescriptor";
4
+
5
+ class ElCheckboxDescriptor extends ElFormItemDescriptor {
6
+ static type = 'ElCheckbox'
7
+
8
+ columnName: string
9
+ columnComment: string
10
+ columnType: string
11
+ modelValue: string
12
+ labelWidth: string | number
13
+ required: boolean
14
+
15
+ options: string
16
+ label: string
17
+ value: string
18
+ disabled: boolean
19
+ border: boolean
20
+
21
+ constructor(descriptor: Partial<DeserializationObject<ElCheckboxDescriptor>> = {}) {
22
+ super(descriptor)
23
+ this.columnName = descriptor.columnName ?? ''
24
+ this.columnComment = descriptor.columnComment ?? ''
25
+ this.columnType = descriptor.columnType ?? ''
26
+ this.modelValue = descriptor.modelValue ?? ''
27
+ this.labelWidth = descriptor.labelWidth ?? ''
28
+ this.required = descriptor.required ?? false
29
+
30
+ this.options = descriptor.options ?? ''
31
+ this.label = descriptor.label ?? 'label'
32
+ this.value = descriptor.value ?? 'value'
33
+ this.disabled = descriptor.disabled ?? false
34
+ this.border = descriptor.border ?? false
35
+ }
36
+ }
37
+ VueDescriptor.register(ElCheckboxDescriptor)
38
+
39
+ export {
40
+ ElCheckboxDescriptor
41
+ }
@@ -0,0 +1,20 @@
1
+ import { DeserializationObject } from "@vyr/engine";
2
+ import { VueDescriptor } from "@vyr/vue";
3
+
4
+ class ElColDescriptor extends VueDescriptor {
5
+ static type = 'ElCol'
6
+
7
+ span: number
8
+ offset: number
9
+
10
+ constructor(descriptor: Partial<DeserializationObject<ElColDescriptor>> = {}) {
11
+ super(descriptor)
12
+ this.span = descriptor.span ?? 24
13
+ this.offset = descriptor.offset ?? 0
14
+ }
15
+ }
16
+ VueDescriptor.register(ElColDescriptor)
17
+
18
+ export {
19
+ ElColDescriptor
20
+ }
@@ -0,0 +1,43 @@
1
+ import { DeserializationObject } from "@vyr/engine";
2
+ import { VueDescriptor } from "@vyr/vue";
3
+ import { ElFormItemDescriptor } from "./ElFormItemDescriptor";
4
+
5
+ class ElDatePickerDescriptor extends ElFormItemDescriptor {
6
+ static type = 'ElDatePicker'
7
+
8
+ columnName: string
9
+ columnComment: string
10
+ columnType: string
11
+ modelValue: string
12
+ labelWidth: string | number
13
+ placeholder: string
14
+ required: boolean
15
+
16
+ dateType: string
17
+ readonly: boolean
18
+ disabled: boolean
19
+ clearable: boolean
20
+ format: string
21
+
22
+ constructor(descriptor: Partial<DeserializationObject<ElDatePickerDescriptor>> = {}) {
23
+ super(descriptor)
24
+ this.columnName = descriptor.columnName ?? ''
25
+ this.columnComment = descriptor.columnComment ?? ''
26
+ this.columnType = descriptor.columnType ?? ''
27
+ this.modelValue = descriptor.modelValue ?? ''
28
+ this.labelWidth = descriptor.labelWidth ?? ''
29
+ this.placeholder = descriptor.placeholder ?? ''
30
+ this.required = descriptor.required ?? false
31
+
32
+ this.dateType = descriptor.dateType ?? 'datetime'
33
+ this.readonly = descriptor.readonly ?? false
34
+ this.disabled = descriptor.disabled ?? false
35
+ this.clearable = descriptor.clearable ?? false
36
+ this.format = descriptor.format ?? 'YYYY-MM-DD HH:mm:ss'
37
+ }
38
+ }
39
+ VueDescriptor.register(ElDatePickerDescriptor)
40
+
41
+ export {
42
+ ElDatePickerDescriptor
43
+ }
@@ -0,0 +1,24 @@
1
+ import { DeserializationObject } from "@vyr/engine";
2
+ import { VueDescriptor } from "@vyr/vue";
3
+
4
+ class ElDialogDescriptor extends VueDescriptor {
5
+ static type = 'ElDialog'
6
+
7
+ title: string
8
+ closeOnClickModal: boolean
9
+
10
+ constructor(descriptor: Partial<DeserializationObject<ElDialogDescriptor>> = {}) {
11
+ super(descriptor)
12
+ if (descriptor.width === undefined) {
13
+ this.width = 50
14
+ this.wUnit = '%'
15
+ }
16
+ this.title = descriptor.title ?? ''
17
+ this.closeOnClickModal = descriptor.closeOnClickModal ?? false
18
+ }
19
+ }
20
+ VueDescriptor.register(ElDialogDescriptor)
21
+
22
+ export {
23
+ ElDialogDescriptor
24
+ }
@@ -0,0 +1,60 @@
1
+ import { DeserializationObject, Graphics } from "@vyr/engine";
2
+ import { VueDescriptor } from "@vyr/vue";
3
+ import { ElFormActor, ElFormItemActor } from "../actor";
4
+ import { ElFormItemDescriptor } from "./ElFormItemDescriptor";
5
+
6
+ interface ElFormGetDataArgs {
7
+ form: string
8
+ }
9
+
10
+ class ElFormDescriptor extends VueDescriptor {
11
+ static type = 'ElForm'
12
+ labelWidth: string | number
13
+ labelPosition: string
14
+ inline: boolean
15
+ disabled: boolean
16
+
17
+ constructor(descriptor: Partial<DeserializationObject<ElFormDescriptor>> = {}) {
18
+ super(descriptor)
19
+ this.inline = descriptor.inline ?? false
20
+ this.labelPosition = descriptor.labelPosition ?? 'right'
21
+ this.labelWidth = descriptor.labelWidth ?? ''
22
+ this.disabled = descriptor.disabled ?? false
23
+ }
24
+
25
+ async validate(graphics: Graphics) {
26
+ const formActor = graphics.getActor<ElFormActor>(this, { delta: 0 })
27
+ if (formActor && formActor.methods) {
28
+ return await formActor.methods.validate()
29
+ }
30
+
31
+ return false
32
+ }
33
+
34
+ async resets(graphics: Graphics) {
35
+ const formActor = graphics.getActor<ElFormActor>(this, { delta: 0 })
36
+ if (formActor && formActor.methods) {
37
+ await formActor.methods.resetFields()
38
+ }
39
+ }
40
+
41
+ async getData(graphics: Graphics) {
42
+ const data: { [k: string]: any } = {}
43
+
44
+ for (const sub of this.children) {
45
+ if (sub instanceof ElFormItemDescriptor) {
46
+ const itemActor = graphics.getActor<ElFormItemActor>(sub, { delta: 0 })
47
+ if (itemActor === null) continue
48
+ data[sub.columnName] = itemActor.getModelValue()
49
+ }
50
+ }
51
+
52
+ return data
53
+ }
54
+ }
55
+ VueDescriptor.register(ElFormDescriptor)
56
+
57
+ export {
58
+ ElFormDescriptor,
59
+ ElFormGetDataArgs,
60
+ }
@@ -0,0 +1,14 @@
1
+ import { Asset, DatasetDescriptor } from "@vyr/engine";
2
+ import { VueDescriptor } from "@vyr/vue";
3
+
4
+ abstract class ElFormItemDescriptor extends VueDescriptor {
5
+ abstract modelValue?: string | boolean | number
6
+ abstract columnName: string
7
+ abstract columnComment: string
8
+ abstract columnType: string
9
+ abstract required: boolean
10
+ }
11
+
12
+ export {
13
+ ElFormItemDescriptor
14
+ }