@byteluck-fe/model-driven-core 1.3.0-beta.28 → 1.3.0-beta.29

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 (91) hide show
  1. package/dist/esm/common/BaseControl/designer.js +409 -0
  2. package/dist/esm/common/BaseControl/index.js +12 -0
  3. package/dist/esm/common/BaseControl/property.js +160 -0
  4. package/dist/esm/common/BaseControl/runtime.js +72 -0
  5. package/dist/esm/common/BaseControl/types.js +1 -0
  6. package/dist/esm/common/ColumnControl/designer.js +89 -0
  7. package/dist/esm/common/ColumnControl/index.js +11 -0
  8. package/dist/esm/common/ColumnControl/property.js +157 -0
  9. package/dist/esm/common/ColumnControl/runtime.js +89 -0
  10. package/dist/esm/common/ColumnControl/types.js +0 -0
  11. package/dist/esm/common/ControlArray.js +100 -0
  12. package/dist/esm/common/FormControl/designer.js +94 -0
  13. package/dist/esm/common/FormControl/index.js +11 -0
  14. package/dist/esm/common/FormControl/property.js +262 -0
  15. package/dist/esm/common/FormControl/runtime.js +89 -0
  16. package/dist/esm/common/FormControl/types.js +0 -0
  17. package/dist/esm/common/LayoutControl/designer.js +300 -0
  18. package/dist/esm/common/LayoutControl/index.js +11 -0
  19. package/dist/esm/common/LayoutControl/property.js +84 -0
  20. package/dist/esm/common/LayoutControl/runtime.js +91 -0
  21. package/dist/esm/common/LayoutControl/types.js +0 -0
  22. package/dist/esm/common/ListControl/designer.js +276 -0
  23. package/dist/esm/common/ListControl/index.js +11 -0
  24. package/dist/esm/common/ListControl/property.js +88 -0
  25. package/dist/esm/common/ListControl/runtime.js +113 -0
  26. package/dist/esm/common/ListControl/types.js +0 -0
  27. package/dist/esm/common/SearchViewControl/designer.js +89 -0
  28. package/dist/esm/common/SearchViewControl/index.js +11 -0
  29. package/dist/esm/common/SearchViewControl/property.js +88 -0
  30. package/dist/esm/common/SearchViewControl/runtime.js +89 -0
  31. package/dist/esm/common/SearchViewControl/types.js +0 -0
  32. package/dist/esm/common/Validator.js +16 -0
  33. package/dist/esm/common/WrapControl/designer.js +89 -0
  34. package/dist/esm/common/WrapControl/index.js +11 -0
  35. package/dist/esm/common/WrapControl/property.js +84 -0
  36. package/dist/esm/common/WrapControl/runtime.js +89 -0
  37. package/dist/esm/common/WrapControl/types.js +0 -0
  38. package/dist/esm/common/controlHooksEmitter.js +3 -0
  39. package/dist/esm/common/index.js +11 -0
  40. package/dist/esm/common/initOptionAndDataSourceRules.js +227 -0
  41. package/dist/esm/framework/RegisterControls.js +149 -0
  42. package/dist/esm/framework/index.js +690 -0
  43. package/dist/esm/index.js +3 -0
  44. package/dist/esm/type.js +1 -0
  45. package/dist/index.umd.js +1 -0
  46. package/dist/types/common/BaseControl/designer.d.ts +62 -0
  47. package/dist/types/common/BaseControl/index.d.ts +13 -0
  48. package/dist/types/common/BaseControl/property.d.ts +22 -0
  49. package/dist/types/common/BaseControl/runtime.d.ts +22 -0
  50. package/dist/types/common/BaseControl/types.d.ts +35 -0
  51. package/dist/types/common/ColumnControl/designer.d.ts +10 -0
  52. package/dist/types/common/ColumnControl/index.d.ts +12 -0
  53. package/dist/types/common/ColumnControl/property.d.ts +30 -0
  54. package/dist/types/common/ColumnControl/runtime.d.ts +10 -0
  55. package/dist/types/common/ColumnControl/types.d.ts +0 -0
  56. package/dist/types/common/ControlArray.d.ts +8 -0
  57. package/dist/types/common/FormControl/designer.d.ts +13 -0
  58. package/dist/types/common/FormControl/index.d.ts +12 -0
  59. package/dist/types/common/FormControl/property.d.ts +44 -0
  60. package/dist/types/common/FormControl/runtime.d.ts +11 -0
  61. package/dist/types/common/FormControl/types.d.ts +0 -0
  62. package/dist/types/common/LayoutControl/designer.d.ts +21 -0
  63. package/dist/types/common/LayoutControl/index.d.ts +12 -0
  64. package/dist/types/common/LayoutControl/property.d.ts +6 -0
  65. package/dist/types/common/LayoutControl/runtime.d.ts +11 -0
  66. package/dist/types/common/LayoutControl/types.d.ts +0 -0
  67. package/dist/types/common/ListControl/designer.d.ts +16 -0
  68. package/dist/types/common/ListControl/index.d.ts +12 -0
  69. package/dist/types/common/ListControl/property.d.ts +12 -0
  70. package/dist/types/common/ListControl/runtime.d.ts +12 -0
  71. package/dist/types/common/ListControl/types.d.ts +0 -0
  72. package/dist/types/common/SearchViewControl/designer.d.ts +11 -0
  73. package/dist/types/common/SearchViewControl/index.d.ts +12 -0
  74. package/dist/types/common/SearchViewControl/property.d.ts +8 -0
  75. package/dist/types/common/SearchViewControl/runtime.d.ts +11 -0
  76. package/dist/types/common/SearchViewControl/types.d.ts +0 -0
  77. package/dist/types/common/Validator.d.ts +15 -0
  78. package/dist/types/common/WrapControl/designer.d.ts +11 -0
  79. package/dist/types/common/WrapControl/index.d.ts +12 -0
  80. package/dist/types/common/WrapControl/property.d.ts +6 -0
  81. package/dist/types/common/WrapControl/runtime.d.ts +11 -0
  82. package/dist/types/common/WrapControl/types.d.ts +0 -0
  83. package/dist/types/common/controlHooksEmitter.d.ts +4 -0
  84. package/dist/types/common/index.d.ts +11 -0
  85. package/dist/types/common/initOptionAndDataSourceRules.d.ts +10 -0
  86. package/dist/types/framework/RegisterControls.d.ts +33 -0
  87. package/dist/types/framework/index.d.ts +349 -0
  88. package/dist/types/index.d.ts +3 -0
  89. package/dist/types/type.d.ts +91 -0
  90. package/package.json +2 -2
  91. package/src/index.ts +3 -0
@@ -0,0 +1,227 @@
1
+ import { getNotRepeatItems, RulesMessage } from "@byteluck-fe/model-driven-shared";
2
+ export function initOptionAndDataSourceRules(props) {
3
+ if (!props.hasOwnProperty("optionConfig")) {
4
+ this.optionConfig = {
5
+ type: "any"
6
+ };
7
+ }
8
+ if (!props.hasOwnProperty("options")) {
9
+ this.options = {
10
+ type: "any"
11
+ };
12
+ }
13
+ if (!props.hasOwnProperty("datasourceBind")) {
14
+ this.datasourceBind = {
15
+ type: "any"
16
+ };
17
+ }
18
+ // 有options属性,并且没有optionConfig或者有options并且optionConfig===custom
19
+ if (props.hasOwnProperty("options") && (!props.hasOwnProperty("optionConfig") || props.hasOwnProperty("optionConfig") && props.optionConfig === "custom")) {
20
+ this.options = [
21
+ {
22
+ type: "array",
23
+ message: RulesMessage.getMessage("isNotArray")
24
+ },
25
+ {
26
+ type: "array",
27
+ defaultField: {
28
+ type: "object",
29
+ fields: {
30
+ label: {
31
+ type: "string",
32
+ required: true,
33
+ message: RulesMessage.getMessage("pleaseEnterLabel")
34
+ },
35
+ value: {
36
+ type: "string",
37
+ required: true,
38
+ message: RulesMessage.getMessage("pleaseEnterValue")
39
+ }
40
+ }
41
+ }
42
+ },
43
+ {
44
+ type: "array",
45
+ validator: function validator(rule, value, callback) {
46
+ if (value.length === 0) {
47
+ callback(RulesMessage.getMessage("optionIsRequired"));
48
+ }
49
+ callback();
50
+ }
51
+ },
52
+ {
53
+ type: "array",
54
+ validator: function validator(rule, value, callback) {
55
+ var ids = value.map(function(item) {
56
+ return item.value;
57
+ });
58
+ var notRepeatIds = getNotRepeatItems(ids);
59
+ if (ids.length !== notRepeatIds.length) {
60
+ callback(RulesMessage.getMessage("optionIdIsRepeat"));
61
+ } else {
62
+ callback();
63
+ }
64
+ },
65
+ message: RulesMessage.getMessage("optionIdIsRepeat")
66
+ },
67
+ ];
68
+ } else if (props.hasOwnProperty("datasourceBind") && (!props.hasOwnProperty("optionConfig") || props.hasOwnProperty("optionConfig") && props.optionConfig === "datasource")) {
69
+ this.datasourceBind = [
70
+ {
71
+ type: "object",
72
+ message: RulesMessage.getMessage("isNotObject")
73
+ },
74
+ {
75
+ type: "object",
76
+ fields: {
77
+ dataCode: {
78
+ type: "string",
79
+ required: true,
80
+ message: RulesMessage.getMessage("pleaseEnterDataCode")
81
+ },
82
+ valueFieldCode: {
83
+ type: "string",
84
+ required: true,
85
+ message: RulesMessage.getMessage("pleaseEnterValueFieldCode")
86
+ },
87
+ svcCode: {
88
+ type: "string",
89
+ required: true,
90
+ message: RulesMessage.getMessage("pleaseEnterSvcCode")
91
+ },
92
+ displayBoList: [
93
+ {
94
+ type: "array",
95
+ message: RulesMessage.getMessage("isNotArray")
96
+ },
97
+ {
98
+ type: "array",
99
+ validator: function validator(rule, value, callback) {
100
+ if (value.length === 0) {
101
+ callback(RulesMessage.getMessage("pleaseBindAtLeastOneDisplayValue"));
102
+ }
103
+ callback();
104
+ },
105
+ message: RulesMessage.getMessage("pleaseBindAtLeastOneDisplayValue")
106
+ },
107
+ ],
108
+ orders: [
109
+ {
110
+ type: "array",
111
+ message: RulesMessage.getMessage("isNotArray")
112
+ },
113
+ {
114
+ type: "array",
115
+ defaultField: {
116
+ type: "object",
117
+ fields: {
118
+ columnName: {
119
+ type: "string",
120
+ required: true,
121
+ message: RulesMessage.getMessage("pleaseEnterFieldCode")
122
+ },
123
+ desc: {
124
+ type: "boolean",
125
+ message: RulesMessage.getMessage("isNotBoolean")
126
+ }
127
+ }
128
+ }
129
+ },
130
+ ]
131
+ }
132
+ },
133
+ ];
134
+ }
135
+ }
136
+ export function initSuperDataSourceRules(props, attributes) {
137
+ var messageInDataSetting = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
138
+ this.datasourceBind = [
139
+ {
140
+ type: "object",
141
+ message: RulesMessage.getMessage("isNotObject")
142
+ },
143
+ {
144
+ type: "object",
145
+ fields: {
146
+ dataCode: {
147
+ type: "string",
148
+ required: true,
149
+ message: RulesMessage.getMessage(messageInDataSetting ? "pleaseEnterDataCodeInDataSetting" : "pleaseEnterDataCode")
150
+ },
151
+ valueFieldCode: {
152
+ type: "string",
153
+ required: true,
154
+ message: RulesMessage.getMessage(messageInDataSetting ? "pleaseEnterValueFieldCodeInDataSetting" : "pleaseEnterValueFieldCode")
155
+ },
156
+ svcCode: {
157
+ type: "string",
158
+ required: true,
159
+ message: RulesMessage.getMessage(messageInDataSetting ? "pleaseEnterSvcCodeInDataSetting" : "pleaseEnterSvcCode")
160
+ },
161
+ attributes: [
162
+ {
163
+ type: "array",
164
+ message: RulesMessage.getMessage("isNotArray")
165
+ },
166
+ {
167
+ type: "array",
168
+ defaultField: {
169
+ type: "object",
170
+ fields: {
171
+ name: {
172
+ type: "string",
173
+ required: true,
174
+ message: RulesMessage.getMessage("isNotString")
175
+ },
176
+ key: {
177
+ type: "string",
178
+ required: true,
179
+ message: RulesMessage.getMessage("isNotString")
180
+ },
181
+ value: [
182
+ {
183
+ type: "array",
184
+ message: RulesMessage.getMessage("isNotArray")
185
+ },
186
+ {
187
+ type: "array",
188
+ validator: function validator(rule, value, callback) {
189
+ if (value.length === 0) {
190
+ callback(RulesMessage.getMessage(messageInDataSetting ? "pleaseBindAtLeastOneDisplayValueInDataSetting" : "pleaseBindAtLeastOneDisplayValue"));
191
+ }
192
+ callback();
193
+ },
194
+ message: RulesMessage.getMessage(messageInDataSetting ? "pleaseBindAtLeastOneDisplayValueInDataSetting" : "pleaseBindAtLeastOneDisplayValue")
195
+ },
196
+ ]
197
+ }
198
+ }
199
+ },
200
+ ],
201
+ orders: [
202
+ {
203
+ type: "array",
204
+ message: RulesMessage.getMessage("isNotArray")
205
+ },
206
+ {
207
+ type: "array",
208
+ defaultField: {
209
+ type: "object",
210
+ fields: {
211
+ columnName: {
212
+ type: "string",
213
+ required: true,
214
+ message: RulesMessage.getMessage("pleaseEnterFieldCode")
215
+ },
216
+ desc: {
217
+ type: "boolean",
218
+ message: RulesMessage.getMessage("isNotBoolean")
219
+ }
220
+ }
221
+ }
222
+ },
223
+ ]
224
+ }
225
+ },
226
+ ];
227
+ }
@@ -0,0 +1,149 @@
1
+ function _classCallCheck(instance, Constructor) {
2
+ if (!(instance instanceof Constructor)) {
3
+ throw new TypeError("Cannot call a class as a function");
4
+ }
5
+ }
6
+ import { error, CONTROL_BASE_TYPE, warn } from "@byteluck-fe/model-driven-shared";
7
+ var baseStaticControls = [];
8
+ export var RegisterControls = /*#__PURE__*/ function() {
9
+ "use strict";
10
+ function RegisterControls(type) {
11
+ _classCallCheck(this, RegisterControls);
12
+ this.registeredControlTypes = new Set();
13
+ this.controlConfigMap = new Map();
14
+ this._controls = [];
15
+ this._type = type;
16
+ this._initControls(type);
17
+ }
18
+ var _proto = RegisterControls.prototype;
19
+ _proto.registerControlConfig = function registerControlConfig(type, config) {
20
+ this.controlConfigMap.set(type, config);
21
+ return this;
22
+ };
23
+ _proto.getControlConfig = function getControlConfig(type) {
24
+ return this.controlConfigMap.get(type);
25
+ };
26
+ _proto.getControls = function getControls() {
27
+ return this._controls;
28
+ };
29
+ // 注册控件
30
+ _proto.register = function register(control) {
31
+ // @ts-ignore
32
+ if (!control.__is_control__) {
33
+ // @ts-ignore
34
+ error("".concat(control.name, " is not a Control"));
35
+ }
36
+ var repeatRegisterIndex = this._controls.findIndex(function(item) {
37
+ return item.controlType === control.controlType;
38
+ });
39
+ if (repeatRegisterIndex > -1) {
40
+ // @ts-ignore
41
+ warn("The ".concat(control.controlType, " is repeat register, So it overwrites the one that was registered before."));
42
+ this._controls.splice(repeatRegisterIndex, 1);
43
+ }
44
+ this.registeredControlTypes.add(control.controlType);
45
+ this._controls.push(control);
46
+ return this;
47
+ };
48
+ _proto.isLayoutControl = function isLayoutControl(// @ts-ignore
49
+ schema) {
50
+ return schema.controlType === CONTROL_BASE_TYPE.LAYOUT;
51
+ };
52
+ // @ts-ignore
53
+ _proto.isFormControl = function isFormControl(schema) {
54
+ return schema.controlType === CONTROL_BASE_TYPE.FORM;
55
+ };
56
+ // @ts-ignore
57
+ _proto.isListControl = function isListControl(schema) {
58
+ return schema.controlType === CONTROL_BASE_TYPE.LIST;
59
+ };
60
+ _proto.isColumnControl = function isColumnControl(// @ts-ignore
61
+ schema) {
62
+ return schema.controlType === CONTROL_BASE_TYPE.COLUMN;
63
+ };
64
+ _proto.createControl = function createControl(schema, beforeCreateInstance) {
65
+ var _this = this;
66
+ if (Array.isArray(schema)) {
67
+ return schema.map(function(item) {
68
+ return _this.createControl(item, beforeCreateInstance);
69
+ });
70
+ }
71
+ // @ts-ignore
72
+ if (schema.children) {
73
+ // @ts-ignore
74
+ schema.children = schema.children.map(function(item) {
75
+ return _this.createControl(item, beforeCreateInstance);
76
+ });
77
+ }
78
+ // @ts-ignore
79
+ if (this.isListControl(schema) && schema.props.headers) {
80
+ // @ts-ignore
81
+ schema.props.headers = schema.props.headers.map(function(item) {
82
+ return(// @ts-ignore
83
+ _this.createControl(item, beforeCreateInstance));
84
+ });
85
+ }
86
+ // @ts-ignore
87
+ var Constructor = this.getControlFormType(schema.type);
88
+ if (Constructor) {
89
+ // @ts-ignore
90
+ var createSchema = schema;
91
+ if (typeof beforeCreateInstance === "function") {
92
+ var result = beforeCreateInstance(createSchema);
93
+ if (result) {
94
+ createSchema = result;
95
+ }
96
+ }
97
+ // @ts-ignore
98
+ var control = new Constructor(createSchema);
99
+ // this.defineParentToChildren(control)
100
+ return control;
101
+ } else {
102
+ error(// @ts-ignore
103
+ "The constructor of ".concat(schema.type, " could not be found, please confirm that the constructor has been registered"));
104
+ }
105
+ };
106
+ _proto.createControlInstance = function createControlInstance(type, initSchema) {
107
+ var Constructor = this.getControlFormType(type);
108
+ if (Constructor) {
109
+ // @ts-ignore
110
+ return new Constructor(initSchema);
111
+ }
112
+ };
113
+ // 根据xtype获取控件类
114
+ _proto.getControlFormType = function getControlFormType(type) {
115
+ // @ts-ignore
116
+ return this._controls.find(function(Control) {
117
+ return Control.controlType === type;
118
+ });
119
+ };
120
+ // 初始化_controls,得到所有可用控件类组成的扁平数组
121
+ _proto._initControls = function _initControls(type) {
122
+ var _this = this;
123
+ this.constructor.staticControls.forEach(function(item) {
124
+ _this.register(item[type]);
125
+ });
126
+ };
127
+ RegisterControls.register = function register(control) {
128
+ var Designer = control.Designer, Runtime = control.Runtime;
129
+ if (!Designer || !Runtime || !Designer.__is_control__ || !Runtime.__is_control__) {
130
+ error("".concat(control, " is can't register as a Control"));
131
+ }
132
+ var repeatRegisterIndex = this.staticControls.findIndex(function(item) {
133
+ return item.Designer.controlType === Designer.controlType;
134
+ });
135
+ if (repeatRegisterIndex > -1) {
136
+ warn("The ".concat(Designer.controlType, " is repeat register, So it overwrites the one that was registered before."));
137
+ this.staticControls.splice(repeatRegisterIndex, 1);
138
+ }
139
+ this.staticRegisteredTypes.add(Designer.controlType);
140
+ this.staticControls.push(control);
141
+ return this;
142
+ };
143
+ return RegisterControls;
144
+ }();
145
+ RegisterControls.staticControls = baseStaticControls;
146
+ RegisterControls.staticRegisteredTypes = new Set(baseStaticControls.map(function(item) {
147
+ return item.Designer.controlType;
148
+ }));
149
+ RegisterControls.staticRegisteredConfigs = new Map();