@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
package/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@vyr/element-plus",
3
+ "version": "0.0.1",
4
+ "description": "",
5
+ "main": "./src/index.ts",
6
+ "author": "",
7
+ "sideEffects": true,
8
+ "license": "MIT",
9
+ "dependencies": {
10
+ "@vyr/locale": "0.0.1",
11
+ "@vyr/engine": "0.0.1",
12
+ "@vyr/vue": "0.0.1",
13
+ "element-plus": "2.10.1",
14
+ "vue": "3.5.22"
15
+ },
16
+ "files": [
17
+ "package.json",
18
+ "src/"
19
+ ],
20
+ "vyr": {
21
+ "type": "universal",
22
+ "order": 11
23
+ }
24
+ }
@@ -0,0 +1,42 @@
1
+ import { h, resolveDynamicComponent, Text, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElButtonDescriptor } from "../descriptor";
5
+ import { mergeStyle } from "../utils";
6
+
7
+ class ElButtonActor extends VueActor {
8
+
9
+ getProps(descriptor: ElButtonDescriptor, args: UpdateArgs): VyrVueProps {
10
+ const props = super.getProps(descriptor, args)
11
+
12
+ return {
13
+ ...props,
14
+ type: descriptor.buttonType,
15
+ plain: descriptor.plain,
16
+ circle: descriptor.circle,
17
+ round: descriptor.round,
18
+ size: descriptor.size,
19
+ text: descriptor.textMode,
20
+ disabled: descriptor.disabled,
21
+ loading: descriptor.loading,
22
+ }
23
+ }
24
+
25
+ getComponent() {
26
+ return resolveDynamicComponent('el-button') as VNode
27
+ }
28
+
29
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElButtonDescriptor) {
30
+ const component = this.getComponent()
31
+ const attrs = this.getComponentAttrs(instance, descriptor)
32
+ mergeStyle({ width: '100%' }, attrs)
33
+
34
+ if (descriptor.text) children.default().push(h(Text, descriptor.text))
35
+
36
+ return h(component, attrs, children)
37
+ }
38
+ }
39
+
40
+ export {
41
+ ElButtonActor
42
+ }
@@ -0,0 +1,43 @@
1
+ import { resolveDynamicComponent, VNode, h } from "vue";
2
+ import { DatasetDescriptor, UpdateArgs } from "@vyr/engine";
3
+ import { VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElCascaderDescriptor } from "../descriptor";
5
+ import { mergeStyle } from "../utils";
6
+ import { ElFormItemActor } from "./ElFormItemActor";
7
+
8
+ class ElCascaderActor extends ElFormItemActor {
9
+
10
+ getProps(descriptor: ElCascaderDescriptor, args: UpdateArgs): VyrVueProps {
11
+ const props = super.getProps(descriptor, args)
12
+
13
+ return {
14
+ ...props,
15
+ placeholder: descriptor.placeholder,
16
+ props: {
17
+ label: descriptor.label,
18
+ value: descriptor.value,
19
+ },
20
+ clearable: descriptor.clearable,
21
+ disabled: descriptor.disabled,
22
+ }
23
+ }
24
+
25
+ getComponent() {
26
+ return resolveDynamicComponent('el-cascader') as VNode
27
+ }
28
+
29
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElCascaderDescriptor) {
30
+ const options = DatasetDescriptor.getCollection(descriptor.options)
31
+ const inputComponent = this.getComponent()
32
+ const inputAttrs = this.getComponentAttrs(instance, descriptor, this.getArrayByJoinValue(descriptor.modelValue))
33
+ mergeStyle({ width: '100%', 'min-width': '200px' }, inputAttrs)
34
+ const inputVnode = h(inputComponent, { ...inputAttrs, options }, { default: () => [] })
35
+ this.currentVnode = inputVnode
36
+
37
+ return this.getItemComponent(descriptor, inputVnode)
38
+ }
39
+ }
40
+
41
+ export {
42
+ ElCascaderActor
43
+ }
@@ -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 { ElCheckboxDescriptor } from "../descriptor";
5
+ import { ElFormItemActor } from "./ElFormItemActor";
6
+
7
+ class ElCheckboxActor extends ElFormItemActor {
8
+
9
+ getProps(descriptor: ElCheckboxDescriptor, 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-checkbox-group') as VNode
21
+ }
22
+
23
+ getContent(instance: VyrVueInstance, _children: VyrVueChildren, descriptor: ElCheckboxDescriptor) {
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-checkbox') as VNode
30
+ const labelAttrs = { value: option[descriptor.value] }
31
+ children.push(h(checkbox, labelAttrs, () => option[descriptor.label]))
32
+ }
33
+ }
34
+
35
+ const inputComponent = this.getComponent()
36
+ const inputAttrs = this.getComponentAttrs(instance, descriptor, this.getArrayByJoinValue(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
+ ElCheckboxActor
46
+ }
@@ -0,0 +1,36 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElColDescriptor } from "../descriptor";
5
+
6
+ class ElColActor extends VueActor {
7
+
8
+ getProps(descriptor: ElColDescriptor, args: UpdateArgs): VyrVueProps {
9
+ const props = super.getProps(descriptor, args)
10
+
11
+ return {
12
+ ...props,
13
+ span: descriptor.span,
14
+ offset: descriptor.offset,
15
+ }
16
+ }
17
+
18
+ getWrapperVNode(instance: VyrVueInstance, content: VNode) {
19
+ return content
20
+ }
21
+
22
+ getComponent() {
23
+ return resolveDynamicComponent('el-col') as VNode
24
+ }
25
+
26
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElColDescriptor) {
27
+ const component = this.getComponent()
28
+ const attrs = this.getComponentAttrs(instance, descriptor)
29
+
30
+ return h(component, attrs, children)
31
+ }
32
+ }
33
+
34
+ export {
35
+ ElColActor
36
+ }
@@ -0,0 +1,42 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElDatePickerDescriptor } from "../descriptor";
5
+ import { mergeStyle } from "../utils";
6
+ import { ElFormItemActor } from "./ElFormItemActor";
7
+
8
+ class ElDatePickerActor extends ElFormItemActor {
9
+
10
+ getProps(descriptor: ElDatePickerDescriptor, args: UpdateArgs): VyrVueProps {
11
+ const props = super.getProps(descriptor, args)
12
+
13
+ return {
14
+ ...props,
15
+ type: descriptor.dateType,
16
+ placeholder: descriptor.placeholder,
17
+ readonly: descriptor.readonly,
18
+ disabled: descriptor.disabled,
19
+ clearable: descriptor.clearable,
20
+ format: descriptor.format,
21
+ valueFormat: descriptor.format,
22
+ }
23
+ }
24
+
25
+ getComponent() {
26
+ return resolveDynamicComponent('el-datePicker') as VNode
27
+ }
28
+
29
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElDatePickerDescriptor) {
30
+ const inputComponent = this.getComponent()
31
+ const inputAttrs = this.getComponentAttrs(instance, descriptor, descriptor.modelValue)
32
+ mergeStyle({ width: '100%', 'min-width': '200px' }, inputAttrs)
33
+ const inputVnode = h(inputComponent, inputAttrs, { default: () => [] })
34
+ this.currentVnode = inputVnode
35
+
36
+ return this.getItemComponent(descriptor, inputVnode)
37
+ }
38
+ }
39
+
40
+ export {
41
+ ElDatePickerActor
42
+ }
@@ -0,0 +1,38 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElDialogDescriptor } from "../descriptor"
5
+
6
+ class ElDialogActor extends VueActor {
7
+
8
+ getProps(descriptor: ElDialogDescriptor, args: UpdateArgs): VyrVueProps {
9
+ const props = super.getProps(descriptor, args)
10
+
11
+ return {
12
+ ...props,
13
+ title: descriptor.title,
14
+ modelValue: descriptor.visible,
15
+ width: descriptor.width + descriptor.wUnit,
16
+ closeOnClickModal: descriptor.closeOnClickModal,
17
+ onClose() {
18
+ descriptor.visible = false
19
+ descriptor.setNeedsUpdate()
20
+ }
21
+ }
22
+ }
23
+
24
+ getComponent() {
25
+ return resolveDynamicComponent('el-dialog') as VNode
26
+ }
27
+
28
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElDialogDescriptor) {
29
+ const component = this.getComponent()
30
+ const attrs = this.getComponentAttrs(instance, descriptor)
31
+
32
+ return h(component, attrs, children)
33
+ }
34
+ }
35
+
36
+ export {
37
+ ElDialogActor
38
+ }
@@ -0,0 +1,46 @@
1
+ import { h, resolveDynamicComponent, VNode, getCurrentInstance } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElFormDescriptor } from "../descriptor";
5
+
6
+ class ElFormActor extends VueActor {
7
+
8
+ methods!: any
9
+
10
+ getProps(descriptor: ElFormDescriptor, args: UpdateArgs): VyrVueProps {
11
+ const props = super.getProps(descriptor, args)
12
+
13
+ return {
14
+ ...props,
15
+ model: {},
16
+ labelWidth: descriptor.labelWidth,
17
+ labelPosition: descriptor.labelPosition,
18
+ inline: descriptor.inline,
19
+ disabled: descriptor.disabled,
20
+ }
21
+ }
22
+
23
+ getComponent() {
24
+ return resolveDynamicComponent('el-form') as VNode
25
+ }
26
+
27
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElFormDescriptor) {
28
+ const self = this
29
+ const component = this.getComponent()
30
+
31
+ const attrs = this.getComponentAttrs(instance, descriptor)
32
+
33
+ const formComponent = {
34
+ ...component,
35
+ mounted() {
36
+ self.methods = getCurrentInstance()?.exposed ?? null
37
+ }
38
+ }
39
+
40
+ return h(formComponent, attrs, children)
41
+ }
42
+ }
43
+
44
+ export {
45
+ ElFormActor
46
+ }
@@ -0,0 +1,81 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
3
+ import { ElFormDescriptor, ElFormItemDescriptor } from "../descriptor";
4
+ import { getValidators, mergeStyle } from "../utils";
5
+
6
+ abstract class ElFormItemActor extends VueActor {
7
+ private _modelValue: string | number | boolean | null = null
8
+ protected currentVnode!: VNode
9
+
10
+ getItemComponentAttrs(descriptor: ElFormItemDescriptor) {
11
+ const rules = getValidators(descriptor, this)
12
+ const props: VyrVueProps = {
13
+ rules,
14
+ prop: descriptor.columnName,
15
+ label: descriptor.columnComment,
16
+ style: {
17
+ 'margin-bottom': '0',
18
+ }
19
+ }
20
+ return props
21
+ }
22
+
23
+ getItemComponent(descriptor: ElFormItemDescriptor, inputVnode: VNode) {
24
+ const ItemComponent = resolveDynamicComponent('el-form-item') as VNode
25
+ const attrs = this.getItemComponentAttrs(descriptor)
26
+ const { parent } = descriptor.traceAncestor(false)
27
+ if (parent instanceof ElFormDescriptor) {
28
+ if (parent.inline) {
29
+ let width = parseInt(parent.labelWidth.toString())
30
+ if (isNaN(width)) width = 80
31
+ mergeStyle({ width: width + 200 + 'px' }, attrs)
32
+ }
33
+ }
34
+ return h(ItemComponent, attrs, () => inputVnode)
35
+ }
36
+
37
+ getComponentAttrs(instance: VyrVueInstance, descriptor: ElFormItemDescriptor, modelValue?: any) {
38
+ const self = this
39
+ const formatValue = self.formatModelValue(modelValue)
40
+ self._modelValue = formatValue
41
+ return {
42
+ ...super.getComponentAttrs(instance, descriptor),
43
+ modelValue: modelValue,
44
+ 'onUpdate:modelValue'(value: string) {
45
+ if (self.currentVnode.props) self.currentVnode.props.modelValue = value
46
+ if (self.currentVnode.component === undefined || self.currentVnode.component === null) return
47
+ self.currentVnode.component.props.modelValue = value
48
+ self._modelValue = self.formatModelValue(value)
49
+ }
50
+ }
51
+ }
52
+
53
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElFormItemDescriptor) {
54
+ const inputComponent = this.getComponent()
55
+ const inputAttrs = this.getComponentAttrs(instance, descriptor, descriptor.modelValue)
56
+ const inputVnode = h(inputComponent, inputAttrs, children)
57
+ this.currentVnode = inputVnode
58
+
59
+ return this.getItemComponent(descriptor, inputVnode)
60
+ }
61
+
62
+ formatModelValue(modelValue: string | null = null) {
63
+ return Array.isArray(modelValue) ? modelValue.filter(item => item !== '').join(',') : modelValue
64
+ }
65
+
66
+ getArrayByJoinValue(modelValue?: string) {
67
+ if (modelValue === undefined) return []
68
+
69
+ if (typeof modelValue !== 'string') return [modelValue]
70
+
71
+ return modelValue.split(',').filter(item => item !== "")
72
+ }
73
+
74
+ getModelValue() {
75
+ return this._modelValue
76
+ }
77
+ }
78
+
79
+ export {
80
+ ElFormItemActor
81
+ }
@@ -0,0 +1,47 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VyrVueChildren, VyrVueInstance } from "@vyr/vue";
4
+ import { ElInputDescriptor } from "../descriptor";
5
+ import { mergeStyle } from "../utils";
6
+ import { ElFormItemActor } from "./ElFormItemActor";
7
+
8
+ class ElInputActor extends ElFormItemActor {
9
+
10
+ getProps(descriptor: ElInputDescriptor, args: UpdateArgs) {
11
+ const props = super.getProps(descriptor, args)
12
+
13
+ return {
14
+ ...props,
15
+ type: descriptor.inputType,
16
+ placeholder: descriptor.placeholder,
17
+ rows: descriptor.rows,
18
+ step: descriptor.step,
19
+ readonly: descriptor.readonly,
20
+ clearable: descriptor.clearable,
21
+ showPassword: descriptor.showPassword,
22
+ showWordLimit: descriptor.showWordLimit,
23
+ disabled: descriptor.disabled,
24
+ autofocus: descriptor.autofocus,
25
+ maxlength: descriptor.maxlength,
26
+ minlength: descriptor.minlength,
27
+ }
28
+ }
29
+
30
+ getComponent() {
31
+ return resolveDynamicComponent('el-input') as VNode
32
+ }
33
+
34
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElInputDescriptor) {
35
+ const inputComponent = this.getComponent()
36
+ const inputAttrs = this.getComponentAttrs(instance, descriptor, descriptor.modelValue)
37
+ mergeStyle({ width: '100%' }, inputAttrs)
38
+ const inputVnode = h(inputComponent, inputAttrs, children)
39
+ this.currentVnode = inputVnode
40
+
41
+ return this.getItemComponent(descriptor, inputVnode)
42
+ }
43
+ }
44
+
45
+ export {
46
+ ElInputActor
47
+ }
@@ -0,0 +1,38 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElInputNumberDescriptor } from "../descriptor";
5
+ import { mergeStyle } from "../utils";
6
+ import { ElFormItemActor } from "./ElFormItemActor";
7
+
8
+ class ElInputNumberActor extends ElFormItemActor {
9
+ getProps(descriptor: ElInputNumberDescriptor, args: UpdateArgs): VyrVueProps {
10
+ const props = super.getProps(descriptor, args)
11
+
12
+ return {
13
+ ...props,
14
+ min: descriptor.min,
15
+ max: descriptor.max,
16
+ step: descriptor.step,
17
+ disabled: descriptor.disabled,
18
+ }
19
+ }
20
+
21
+ getComponent() {
22
+ return resolveDynamicComponent('el-input-number') as VNode
23
+ }
24
+
25
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElInputNumberDescriptor) {
26
+ const inputComponent = this.getComponent()
27
+ const inputAttrs = this.getComponentAttrs(instance, descriptor, descriptor.modelValue || null)
28
+ mergeStyle({ width: '100%', 'min-width': '200px' }, inputAttrs)
29
+ const inputVnode = h(inputComponent, inputAttrs, children)
30
+ this.currentVnode = inputVnode
31
+
32
+ return this.getItemComponent(descriptor, inputVnode)
33
+ }
34
+ }
35
+
36
+ export {
37
+ ElInputNumberActor
38
+ }
@@ -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 { ElMenuDescriptor } from "../descriptor";
5
+
6
+ class ElMenuActor extends VueActor {
7
+
8
+ getProps(descriptor: ElMenuDescriptor, args: UpdateArgs): VyrVueProps {
9
+ const props = super.getProps(descriptor, args)
10
+
11
+ return {
12
+ ...props,
13
+ mode: descriptor.mode,
14
+ defaultActive: descriptor.defaultActive,
15
+ backgroundColor: descriptor.backgroundColor.getColor(),
16
+ textColor: descriptor.textColor,
17
+ activeTextColor: descriptor.activeTextColor,
18
+ }
19
+ }
20
+
21
+ getComponent() {
22
+ return resolveDynamicComponent('el-menu') as VNode
23
+ }
24
+
25
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElMenuDescriptor) {
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
+ ElMenuActor
35
+ }
@@ -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 { ElMenuItemDescriptor } from "../descriptor";
5
+
6
+ class ElMenuItemActor extends VueActor {
7
+
8
+ getWrapper() {
9
+ return null
10
+ }
11
+
12
+ getProps(descriptor: ElMenuItemDescriptor, 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-menu-item') as VNode
27
+ }
28
+
29
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElMenuItemDescriptor) {
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
+ ElMenuItemActor
46
+ }
@@ -0,0 +1,83 @@
1
+ import { h, resolveDynamicComponent, VNode } from "vue";
2
+ import { UpdateArgs } from "@vyr/engine";
3
+ import { VueActor, VyrVueProps, VyrVueInstance, VyrVueChildren } from "@vyr/vue";
4
+ import { ElPaginationDescriptor } from "../descriptor";
5
+
6
+ class ElPaginationActor extends VueActor {
7
+ protected currentVnode!: VNode
8
+
9
+ getProps(descriptor: ElPaginationDescriptor, args: UpdateArgs): VyrVueProps {
10
+ const props = super.getProps(descriptor, args)
11
+ const layout: string[] = []
12
+ if (descriptor.layoutSizes) layout.push('sizes')
13
+ if (descriptor.layoutPrev) layout.push('prev')
14
+ if (descriptor.layoutPager) layout.push('pager')
15
+ if (descriptor.layoutNext) layout.push('next')
16
+ if (descriptor.layoutJumper) layout.push('jumper')
17
+ if (descriptor.layoutArrow) layout.push(' ->')
18
+ if (descriptor.layoutTotal) layout.push('total')
19
+
20
+ return {
21
+ ...props,
22
+ total: descriptor.total,
23
+ background: descriptor.background,
24
+ layout: layout.join(', '),
25
+ }
26
+ }
27
+
28
+ getComponent() {
29
+ return resolveDynamicComponent('el-pagination') as VNode
30
+ }
31
+
32
+ getComponentAttrs(instance: VyrVueInstance, descriptor: ElPaginationDescriptor, ...args: any[]) {
33
+ const attrs = super.getComponentAttrs(instance, descriptor, ...args)
34
+ const pageSizes = descriptor.pageSizes.split(',').filter(clip => clip).map(clip => parseInt(clip))
35
+
36
+ const self = this
37
+ Object.assign(attrs, {
38
+ pageSizes,
39
+ pageSize: descriptor.pageSize,
40
+ 'onUpdate:pageSize'(value: number) {
41
+ if (self.currentVnode.props) self.currentVnode.props.pageSize = value
42
+ if (self.currentVnode.component === undefined || self.currentVnode.component === null) return
43
+ self.currentVnode.component.props.pageSize = value
44
+ },
45
+ currentPage: descriptor.currentPage,
46
+ 'onUpdate:currentPage'(value: number) {
47
+ if (self.currentVnode.props) self.currentVnode.props.currentPage = value
48
+ if (self.currentVnode.component === undefined || self.currentVnode.component === null) return
49
+ self.currentVnode.component.props.currentPage = value
50
+ },
51
+ })
52
+
53
+ return attrs
54
+ }
55
+
56
+ getContent(instance: VyrVueInstance, children: VyrVueChildren, descriptor: ElPaginationDescriptor) {
57
+ const component = this.getComponent()
58
+ const attrs = this.getComponentAttrs(instance, descriptor)
59
+ this.currentVnode = h(component, attrs, children)
60
+ return this.currentVnode
61
+ }
62
+
63
+ getData() {
64
+ //@ts-ignore
65
+ const { pageSize, currentPage } = this.currentVnode.component.props
66
+
67
+ return {
68
+ pageSize,
69
+ currentPage,
70
+ }
71
+ }
72
+
73
+ reset() {
74
+ const value = 1
75
+ if (this.currentVnode.props) this.currentVnode.props.currentPage = value
76
+ if (this.currentVnode.component === undefined || this.currentVnode.component === null) return
77
+ this.currentVnode.component.props.currentPage = value
78
+ }
79
+ }
80
+
81
+ export {
82
+ ElPaginationActor
83
+ }