@zzdadelu/schema-builder 1.0.0-alpha.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 (58) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE +21 -0
  3. package/README.md +39 -0
  4. package/es/createIframe.js +12 -0
  5. package/es/index.js +2 -0
  6. package/es/main.js +64 -0
  7. package/es/settings/index.js +26 -0
  8. package/es/settings/meta/card.js +108 -0
  9. package/es/settings/meta/cardList.js +203 -0
  10. package/es/settings/meta/checkbox.js +29 -0
  11. package/es/settings/meta/checkboxes.js +66 -0
  12. package/es/settings/meta/color.js +21 -0
  13. package/es/settings/meta/date.js +28 -0
  14. package/es/settings/meta/dateRange.js +37 -0
  15. package/es/settings/meta/form.js +115 -0
  16. package/es/settings/meta/imageInput.js +21 -0
  17. package/es/settings/meta/input.js +62 -0
  18. package/es/settings/meta/number.js +69 -0
  19. package/es/settings/meta/radio.js +65 -0
  20. package/es/settings/meta/rate.js +56 -0
  21. package/es/settings/meta/select.js +58 -0
  22. package/es/settings/meta/slider.js +40 -0
  23. package/es/settings/meta/switch.js +48 -0
  24. package/es/settings/meta/textarea.js +69 -0
  25. package/es/settings/meta/time.js +29 -0
  26. package/es/settings/meta/timeRange.js +37 -0
  27. package/es/settings/meta/treeSelect.js +85 -0
  28. package/es/settings/meta/urlInput.js +34 -0
  29. package/es/settings/utils.js +251 -0
  30. package/es/type.js +1 -0
  31. package/lib/createIframe.js +18 -0
  32. package/lib/index.js +9 -0
  33. package/lib/main.js +72 -0
  34. package/lib/settings/index.js +153 -0
  35. package/lib/settings/meta/card.js +114 -0
  36. package/lib/settings/meta/cardList.js +209 -0
  37. package/lib/settings/meta/checkbox.js +35 -0
  38. package/lib/settings/meta/checkboxes.js +72 -0
  39. package/lib/settings/meta/color.js +27 -0
  40. package/lib/settings/meta/date.js +34 -0
  41. package/lib/settings/meta/dateRange.js +43 -0
  42. package/lib/settings/meta/form.js +121 -0
  43. package/lib/settings/meta/imageInput.js +27 -0
  44. package/lib/settings/meta/input.js +68 -0
  45. package/lib/settings/meta/number.js +75 -0
  46. package/lib/settings/meta/radio.js +71 -0
  47. package/lib/settings/meta/rate.js +62 -0
  48. package/lib/settings/meta/select.js +64 -0
  49. package/lib/settings/meta/slider.js +46 -0
  50. package/lib/settings/meta/switch.js +54 -0
  51. package/lib/settings/meta/textarea.js +75 -0
  52. package/lib/settings/meta/time.js +35 -0
  53. package/lib/settings/meta/timeRange.js +43 -0
  54. package/lib/settings/meta/treeSelect.js +91 -0
  55. package/lib/settings/meta/urlInput.js +40 -0
  56. package/lib/settings/utils.js +258 -0
  57. package/lib/type.js +1 -0
  58. package/package.json +95 -0
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("../utils");
8
+ var props = [{
9
+ name: 'title',
10
+ title: {
11
+ label: '标题',
12
+ tip: 'title | 卡片主题'
13
+ },
14
+ setter: 'StringSetter'
15
+ }, {
16
+ name: 'code',
17
+ title: {
18
+ label: '字段名',
19
+ tip: 'key | 字段名'
20
+ },
21
+ setter: 'StringSetter'
22
+ }, {
23
+ name: 'description',
24
+ title: {
25
+ label: '描述',
26
+ tip: 'description | 卡片的描述'
27
+ },
28
+ setter: 'StringSetter'
29
+ }, {
30
+ name: 'column',
31
+ title: {
32
+ label: '一行多列',
33
+ tip: 'column | 表单内容分成几列展示'
34
+ },
35
+ defaultValue: 1,
36
+ setter: {
37
+ componentName: 'RadioGroupSetter',
38
+ props: {
39
+ options: [{
40
+ title: '一列',
41
+ value: 1
42
+ }, {
43
+ title: '两列',
44
+ value: 2
45
+ }, {
46
+ title: '三列',
47
+ value: 3
48
+ }, {
49
+ title: '四列',
50
+ value: 4
51
+ }]
52
+ }
53
+ }
54
+ }, {
55
+ name: 'widget',
56
+ title: {
57
+ label: '类型',
58
+ tip: 'widget | 类型'
59
+ },
60
+ defaultValue: 1,
61
+ setter: {
62
+ componentName: 'RadioGroupSetter',
63
+ props: {
64
+ options: [{
65
+ title: '卡片',
66
+ value: 'card'
67
+ }, {
68
+ title: '折叠面板',
69
+ value: 'collapse'
70
+ }, {
71
+ title: '标题线',
72
+ value: 'lineTitle'
73
+ }, {
74
+ title: '内联',
75
+ value: 'subInline'
76
+ }]
77
+ }
78
+ }
79
+ }];
80
+ var snippets = [{
81
+ title: '对象',
82
+ screenshot: 'icon-object',
83
+ schema: {
84
+ componentName: 'Card',
85
+ props: {
86
+ title: '卡片主题',
87
+ description: '这是一个对象类型',
88
+ column: 3,
89
+ type: 'object',
90
+ widget: 'collapse'
91
+ }
92
+ }
93
+ }];
94
+ var _default = exports.default = (0, _utils.createMeta)('Card', {
95
+ title: '对象',
96
+ category: '布局',
97
+ group: '基础组件',
98
+ priority: 1,
99
+ props: props,
100
+ snippets: snippets,
101
+ configure: {
102
+ supports: {
103
+ loop: false,
104
+ condition: false
105
+ },
106
+ component: {
107
+ isContainer: true,
108
+ isModal: false,
109
+ nestingRule: {
110
+ parentWhitelist: ['FormRender', 'Card', 'CardList']
111
+ }
112
+ }
113
+ }
114
+ });
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("../utils");
8
+ var props = [{
9
+ name: 'title',
10
+ title: {
11
+ label: '标题',
12
+ tip: 'title | 卡片主题'
13
+ },
14
+ setter: 'StringSetter'
15
+ }, {
16
+ name: 'code',
17
+ title: {
18
+ label: '字段名',
19
+ tip: 'key | 字段名'
20
+ },
21
+ setter: 'StringSetter'
22
+ }, {
23
+ name: 'description',
24
+ title: {
25
+ label: '描述',
26
+ tip: 'description | 卡片的描述'
27
+ },
28
+ setter: 'StringSetter'
29
+ }, {
30
+ title: '模版配置',
31
+ display: 'block',
32
+ type: 'group',
33
+ items: [{
34
+ name: 'widget',
35
+ title: {
36
+ label: '类型',
37
+ tip: 'widget | 类型'
38
+ },
39
+ setter: {
40
+ componentName: 'SelectSetter',
41
+ props: {
42
+ options: [{
43
+ title: 'SimpleList',
44
+ value: 'simpleList'
45
+ }, {
46
+ title: 'CardList',
47
+ value: 'cardList'
48
+ }, {
49
+ title: 'DrawerList',
50
+ value: 'drawerList'
51
+ }, {
52
+ title: 'TableList',
53
+ value: 'tableList'
54
+ }, {
55
+ title: 'VirtualList',
56
+ value: 'virtualList'
57
+ }, {
58
+ title: 'TabList',
59
+ value: 'tabList'
60
+ }]
61
+ }
62
+ },
63
+ extraProps: {
64
+ setValue: function setValue(target, value) {
65
+ var node = target.getNode();
66
+ if (value !== 'cardList') {
67
+ node.setPropValue('items.widget', undefined);
68
+ node.setPropValue('items.title', undefined);
69
+ node.setPropValue('items.description', undefined);
70
+ node.setPropValue('items.column', undefined);
71
+ }
72
+ }
73
+ }
74
+ }, {
75
+ name: 'items.widget',
76
+ title: {
77
+ label: '样式类型',
78
+ tip: '样式类型'
79
+ },
80
+ setter: {
81
+ componentName: 'RadioGroupSetter',
82
+ props: {
83
+ options: [{
84
+ title: '卡片',
85
+ value: 'card'
86
+ }, {
87
+ title: '折叠面板',
88
+ value: 'collapse'
89
+ }, {
90
+ title: '标题线',
91
+ value: 'lineTitle'
92
+ }, {
93
+ title: '内联',
94
+ value: 'subInline'
95
+ }]
96
+ }
97
+ },
98
+ condition: function condition(target) {
99
+ return target.getProps().getPropValue('widget') === 'cardList';
100
+ }
101
+ }, {
102
+ name: 'items.title',
103
+ title: {
104
+ label: '标题',
105
+ tip: 'title | 卡片主题'
106
+ },
107
+ setter: 'StringSetter',
108
+ condition: function condition(target) {
109
+ return target.getProps().getPropValue('widget') === 'cardList';
110
+ }
111
+ }, {
112
+ name: 'items.description',
113
+ title: {
114
+ label: '描述',
115
+ tip: 'description | 卡片的描述'
116
+ },
117
+ setter: 'StringSetter',
118
+ condition: function condition(target) {
119
+ return target.getProps().getPropValue('widget') === 'cardList';
120
+ }
121
+ }, {
122
+ name: 'items.column',
123
+ title: {
124
+ label: '一行多列',
125
+ tip: 'column | 表单内容分成几列展示'
126
+ },
127
+ defaultValue: 1,
128
+ setter: {
129
+ componentName: 'RadioGroupSetter',
130
+ props: {
131
+ options: [{
132
+ title: '一列',
133
+ value: 1
134
+ }, {
135
+ title: '两列',
136
+ value: 2
137
+ }, {
138
+ title: '三列',
139
+ value: 3
140
+ }, {
141
+ title: '四列',
142
+ value: 4
143
+ }]
144
+ }
145
+ },
146
+ condition: function condition(target) {
147
+ return target.getProps().getPropValue('widget') === 'cardList';
148
+ },
149
+ extraProps: {
150
+ setValue: function setValue(target, value) {
151
+ var node = target.getNode();
152
+ var labelSpan = 8;
153
+ var wrapperColSpan = 16;
154
+ if (value === 1) {
155
+ labelSpan = 4;
156
+ wrapperColSpan = 6;
157
+ } else if (value === 2) {
158
+ wrapperColSpan = 10;
159
+ }
160
+ node.setPropValue('labelCol.span', labelSpan);
161
+ node.setPropValue('wrapperCol.span', wrapperColSpan);
162
+ node.mergeChildren(function (child) {
163
+ var span = 24 / value;
164
+ child.setPropValue('span', span);
165
+ return false;
166
+ }, function () {}, function () {});
167
+ }
168
+ }
169
+ }]
170
+ }];
171
+ var snippets = [{
172
+ title: '列表',
173
+ screenshot: 'icon-list',
174
+ schema: {
175
+ componentName: 'CardList',
176
+ props: {
177
+ title: '列表',
178
+ description: '这是一个列表',
179
+ type: 'array',
180
+ items: {
181
+ title: '卡片主题',
182
+ description: '这是一个对象类型',
183
+ column: 3,
184
+ type: 'object'
185
+ }
186
+ }
187
+ }
188
+ }];
189
+ var _default = exports.default = (0, _utils.createMeta)('CardList', {
190
+ title: '列表',
191
+ category: '布局',
192
+ group: '基础组件',
193
+ priority: 1,
194
+ props: props,
195
+ snippets: snippets,
196
+ configure: {
197
+ supports: {
198
+ loop: false,
199
+ condition: false
200
+ },
201
+ component: {
202
+ isContainer: true,
203
+ isModal: false,
204
+ nestingRule: {
205
+ parentWhitelist: ['FormRender', 'Card']
206
+ }
207
+ }
208
+ }
209
+ });
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("../utils");
8
+ var _default = exports.default = (0, _utils.createMeta)('Checkbox', {
9
+ title: '是否选择',
10
+ priority: 994,
11
+ props: [{
12
+ title: '基础配置',
13
+ type: 'group',
14
+ display: 'accordion',
15
+ items: (0, _utils.getNotInputPropsBasic)({
16
+ name: 'defaultValue',
17
+ title: {
18
+ label: '默认值',
19
+ tip: 'defaultValue | 默认值'
20
+ },
21
+ setter: 'BoolSetter'
22
+ })
23
+ }],
24
+ snippets: [{
25
+ title: '是否选择',
26
+ screenshot: 'icon-isNot',
27
+ schema: {
28
+ componentName: 'Checkbox',
29
+ props: {
30
+ title: '是否选择',
31
+ type: 'boolean'
32
+ }
33
+ }
34
+ }]
35
+ });
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("../utils");
8
+ var _default = exports.default = (0, _utils.createMeta)('Checkboxes', {
9
+ title: '点击多选框',
10
+ // priority: 996,
11
+ props: [{
12
+ title: '基础配置',
13
+ type: 'group',
14
+ display: 'accordion',
15
+ items: (0, _utils.getNotInputPropsBasic)({
16
+ name: 'defaultValue',
17
+ title: {
18
+ label: '默认值',
19
+ tip: 'defaultValue | 默认值'
20
+ },
21
+ setter: 'JsonSetter'
22
+ })
23
+ }, _utils.optionsProp, {
24
+ title: '其他配置',
25
+ display: 'accordion',
26
+ type: 'group',
27
+ items: [{
28
+ name: 'props.direction',
29
+ title: {
30
+ label: '排列方向',
31
+ tip: '选项的排列方向'
32
+ },
33
+ defaultValue: 'row',
34
+ setter: {
35
+ componentName: 'RadioGroupSetter',
36
+ props: {
37
+ options: [{
38
+ title: '水平',
39
+ value: 'row'
40
+ }, {
41
+ title: '垂直',
42
+ value: 'column'
43
+ }]
44
+ }
45
+ }
46
+ }]
47
+ }],
48
+ snippets: [{
49
+ title: '点击多选',
50
+ screenshot: 'icon-checkbox',
51
+ schema: {
52
+ componentName: 'Checkboxes',
53
+ props: {
54
+ title: '点击多选',
55
+ type: 'array',
56
+ props: {
57
+ options: [{
58
+ label: 'A',
59
+ value: 'A'
60
+ }, {
61
+ label: 'B',
62
+ value: 'B'
63
+ }, {
64
+ label: 'C',
65
+ value: 'C'
66
+ }],
67
+ direction: 'row'
68
+ }
69
+ }
70
+ }
71
+ }]
72
+ });
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("../utils");
8
+ var _default = exports.default = (0, _utils.createMeta)('Color', {
9
+ title: '颜色选择',
10
+ category: '其他',
11
+ props: [{
12
+ title: '基础配置',
13
+ type: 'group',
14
+ display: 'accordion',
15
+ items: _utils.notInputPropsBasic
16
+ }],
17
+ snippets: [{
18
+ title: '颜色选择',
19
+ screenshot: 'icon-color',
20
+ schema: {
21
+ componentName: 'Color',
22
+ props: {
23
+ title: '颜色选择'
24
+ }
25
+ }
26
+ }]
27
+ });
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("../utils");
8
+ var _default = exports.default = (0, _utils.createMeta)('DatePicker', {
9
+ title: '日期选择',
10
+ props: [{
11
+ title: '基础配置',
12
+ type: 'group',
13
+ display: 'accordion',
14
+ items: (0, _utils.getInputPropsBasic)({
15
+ name: 'defaultValue',
16
+ title: {
17
+ label: '默认值',
18
+ tip: 'defaultValue | 默认值'
19
+ },
20
+ setter: 'CustomDateSetter'
21
+ })
22
+ }],
23
+ snippets: [{
24
+ title: '日期选择',
25
+ screenshot: 'icon-date',
26
+ schema: {
27
+ componentName: 'DatePicker',
28
+ props: {
29
+ title: '日期选择',
30
+ type: 'string'
31
+ }
32
+ }
33
+ }]
34
+ });
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("../utils");
8
+ var _default = exports.default = (0, _utils.createMeta)('DateRange', {
9
+ title: '日期选择区间',
10
+ props: [{
11
+ title: '基础配置',
12
+ type: 'group',
13
+ display: 'accordion',
14
+ items: (0, _utils.getInputPropsBasic)({
15
+ name: 'defaultValue',
16
+ title: {
17
+ label: '默认值',
18
+ tip: 'defaultValue | 默认值'
19
+ },
20
+ setter: 'CustomDateRangeSetter'
21
+ }, {
22
+ name: 'props.placeholder',
23
+ title: {
24
+ label: '提示文字',
25
+ tip: 'placeholder | 输入框提示文字'
26
+ },
27
+ setter: 'JsonSetter',
28
+ defaultValue: ['开始时间', '结束时间']
29
+ })
30
+ }],
31
+ snippets: [{
32
+ title: '日期区间选择',
33
+ screenshot: 'icon-date',
34
+ schema: {
35
+ componentName: 'DateRange',
36
+ props: {
37
+ title: '日期区间选择',
38
+ type: 'range',
39
+ format: 'date'
40
+ }
41
+ }
42
+ }]
43
+ });
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("../utils");
8
+ var _default = exports.default = (0, _utils.createMeta)('FormRender', {
9
+ title: '表单',
10
+ group: '基础组件',
11
+ category: '表单',
12
+ props: [{
13
+ title: '表单布局',
14
+ display: 'accordion',
15
+ type: 'group',
16
+ items: [{
17
+ name: 'displayType',
18
+ title: {
19
+ label: '标签位置',
20
+ tip: 'displayType | 标签的展示位置'
21
+ },
22
+ defaultValue: 'row',
23
+ setter: {
24
+ componentName: 'RadioGroupSetter',
25
+ props: {
26
+ options: [{
27
+ title: '水平居左',
28
+ value: 'row'
29
+ }, {
30
+ title: '垂直居上',
31
+ value: 'column'
32
+ }, {
33
+ title: '紧凑',
34
+ value: 'inline'
35
+ }]
36
+ }
37
+ }
38
+ }, {
39
+ name: 'column',
40
+ title: {
41
+ label: '一行多列',
42
+ tip: 'column | 一行多列'
43
+ },
44
+ defaultValue: 1,
45
+ setter: {
46
+ componentName: 'RadioGroupSetter',
47
+ props: {
48
+ options: [{
49
+ title: '一列',
50
+ value: 1
51
+ }, {
52
+ title: '两列',
53
+ value: 2
54
+ }, {
55
+ title: '三列',
56
+ value: 3
57
+ }, {
58
+ title: '四列',
59
+ value: 4
60
+ }]
61
+ }
62
+ }
63
+ }, {
64
+ name: 'labelWidth',
65
+ title: {
66
+ label: '标签宽度',
67
+ tip: 'labelWidth | 标签宽度'
68
+ },
69
+ setter: 'NumberSetter'
70
+ }]
71
+ }, {
72
+ title: '标签和控件栅格总数不能超过24',
73
+ display: 'block',
74
+ type: 'group',
75
+ items: [{
76
+ name: 'labelCol',
77
+ title: {
78
+ label: '标签栅格数',
79
+ tip: 'labelCol | 栅格占位格数'
80
+ },
81
+ setter: {
82
+ componentName: 'NumberSetter',
83
+ props: {
84
+ min: 0,
85
+ max: 24
86
+ }
87
+ }
88
+ }, {
89
+ name: 'fieldCol',
90
+ title: {
91
+ label: '控件栅格数',
92
+ tip: 'fieldCol | 栅格占位格数'
93
+ },
94
+ setter: {
95
+ componentName: 'NumberSetter',
96
+ props: {
97
+ min: 0,
98
+ max: 24
99
+ }
100
+ }
101
+ }, {
102
+ name: 'maxWidth',
103
+ title: {
104
+ label: '最大宽度',
105
+ tip: 'maxWidth | 最大宽度'
106
+ },
107
+ defaultValue: '340px',
108
+ setter: 'StringSetter'
109
+ }]
110
+ }],
111
+ configure: {
112
+ supports: {
113
+ loop: false,
114
+ condition: false
115
+ },
116
+ component: {
117
+ isContainer: true,
118
+ isModal: false
119
+ }
120
+ }
121
+ });
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _utils = require("../utils");
8
+ var _default = exports.default = (0, _utils.createMeta)('ImageInput', {
9
+ title: '图片 URL',
10
+ category: '其他',
11
+ props: [{
12
+ title: '基础配置',
13
+ type: 'group',
14
+ display: 'accordion',
15
+ items: _utils.inputPropsBasic
16
+ }],
17
+ snippets: [{
18
+ title: '图片 URL',
19
+ screenshot: 'icon-image',
20
+ schema: {
21
+ componentName: 'ImageInput',
22
+ props: {
23
+ title: '图片 URL'
24
+ }
25
+ }
26
+ }]
27
+ });