@byteluck-fe/model-driven-engine 2.4.1-beta.6 → 2.4.1-beta.8

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.
@@ -17,25 +17,11 @@ function _createClass(Constructor, protoProps, staticProps) {
17
17
  if (staticProps) _defineProperties(Constructor, staticProps);
18
18
  return Constructor;
19
19
  }
20
- function _defineProperty(obj, key, value) {
21
- if (key in obj) {
22
- Object.defineProperty(obj, key, {
23
- value: value,
24
- enumerable: true,
25
- configurable: true,
26
- writable: true
27
- });
28
- } else {
29
- obj[key] = value;
30
- }
31
- return obj;
32
- }
33
- import { log } from "@byteluck-fe/model-driven-shared";
20
+ import { log } from '@byteluck-fe/model-driven-shared';
34
21
  var OkWorker = /*#__PURE__*/ function() {
35
22
  "use strict";
36
23
  function OkWorker() {
37
24
  _classCallCheck(this, OkWorker);
38
- _defineProperty(this, "worker", void 0);
39
25
  }
40
26
  _createClass(OkWorker, [
41
27
  {
@@ -43,7 +29,7 @@ var OkWorker = /*#__PURE__*/ function() {
43
29
  value: function run(initState) {
44
30
  this.worker = OkWorker.createWorker();
45
31
  this.postMessage({
46
- action: "init",
32
+ action: 'init',
47
33
  payload: initState
48
34
  });
49
35
  }
@@ -51,15 +37,15 @@ var OkWorker = /*#__PURE__*/ function() {
51
37
  {
52
38
  key: "destroy",
53
39
  value: function destroy() {
54
- var _this_worker;
55
- (_this_worker = this.worker) === null || _this_worker === void 0 ? void 0 : _this_worker.terminate();
40
+ var ref;
41
+ (ref = this.worker) === null || ref === void 0 ? void 0 : ref.terminate();
56
42
  }
57
43
  },
58
44
  {
59
45
  key: "postMessage",
60
46
  value: function postMessage(message) {
61
- var _this_worker;
62
- (_this_worker = this.worker) === null || _this_worker === void 0 ? void 0 : _this_worker.postMessage(message);
47
+ var ref;
48
+ (ref = this.worker) === null || ref === void 0 ? void 0 : ref.postMessage(message);
63
49
  }
64
50
  }
65
51
  ], [
@@ -85,7 +71,7 @@ var OkWorker = /*#__PURE__*/ function() {
85
71
  set: function set(target, key, value) {
86
72
  if (parentKey) {
87
73
  _self.postMessage({
88
- action: "update",
74
+ action: 'update',
89
75
  key: "".concat(parentKey, ".").concat(key)
90
76
  });
91
77
  }
@@ -93,7 +79,7 @@ var OkWorker = /*#__PURE__*/ function() {
93
79
  }
94
80
  };
95
81
  };
96
- log("‍\uD83D\uDE80 worker running");
82
+ log('‍🚀 worker running');
97
83
  var _self = self;
98
84
  // function createProxy(
99
85
  // obj: Record<string, unknown> | Array<Record<string, unknown>>,
@@ -106,8 +92,8 @@ var OkWorker = /*#__PURE__*/ function() {
106
92
  // }
107
93
  // return new Proxy(obj, createHandler(parentKey))
108
94
  // }
109
- _self.addEventListener("message", function(event) {
110
- var _event_data = event.data, action = _event_data.action, payload = _event_data.payload, fn = _event_data.fn;
95
+ _self.addEventListener('message', function(event) {
96
+ var _data = event.data, action = _data.action, payload = _data.payload, fn = _data.fn;
111
97
  log(action, payload);
112
98
  // 通过proxy进行代理,每次修改的时候,自动向外抛出postMessage
113
99
  // data.key1 = 1
@@ -118,10 +104,10 @@ var OkWorker = /*#__PURE__*/ function() {
118
104
  //
119
105
  // const result = fn(data, schema)
120
106
  _self.postMessage({
121
- action: "delete",
107
+ action: 'delete',
122
108
  payload: {
123
- key: "key3[0].key1",
124
- value: "index"
109
+ key: 'key3[0].key1',
110
+ value: 'index'
125
111
  }
126
112
  });
127
113
  });
@@ -23,19 +23,6 @@ function _createClass(Constructor, protoProps, staticProps) {
23
23
  if (staticProps) _defineProperties(Constructor, staticProps);
24
24
  return Constructor;
25
25
  }
26
- function _defineProperty(obj, key, value) {
27
- if (key in obj) {
28
- Object.defineProperty(obj, key, {
29
- value: value,
30
- enumerable: true,
31
- configurable: true,
32
- writable: true
33
- });
34
- } else {
35
- obj[key] = value;
36
- }
37
- return obj;
38
- }
39
26
  function _getPrototypeOf(o) {
40
27
  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
41
28
  return o.__proto__ || Object.getPrototypeOf(o);
@@ -96,21 +83,19 @@ function _createSuper(Derived) {
96
83
  return _possibleConstructorReturn(this, result);
97
84
  };
98
85
  }
99
- import { RegisterControls } from "@byteluck-fe/model-driven-core";
100
- import { CONTROL_BASE_TYPE, CONTROL_TYPE, loopFormSchema } from "@byteluck-fe/model-driven-shared";
101
- import { hasChildrenControl, loopDataViewControl, loopFormControl } from "../utils/runtimeUtils";
102
- export var Runtime = /*#__PURE__*/ function(RegisterControls) {
86
+ import { RegisterControls } from '@byteluck-fe/model-driven-core';
87
+ import { CONTROL_BASE_TYPE, CONTROL_TYPE, loopFormSchema } from '@byteluck-fe/model-driven-shared';
88
+ import { hasChildrenControl, loopDataViewControl, loopFormControl } from '../utils/runtimeUtils';
89
+ export var Runtime = /*#__PURE__*/ function(RegisterControls1) {
103
90
  "use strict";
104
- _inherits(Runtime, RegisterControls);
91
+ _inherits(Runtime, RegisterControls1);
105
92
  var _super = _createSuper(Runtime);
106
93
  function Runtime(props) {
107
94
  _classCallCheck(this, Runtime);
108
95
  var _this;
109
- _this = _super.call(this, "Runtime");
110
- _defineProperty(_assertThisInitialized(_this), "_schema", void 0);
111
- _defineProperty(_assertThisInitialized(_this), "_instance", void 0);
112
- _defineProperty(_assertThisInitialized(_this), "_flatInstances", []);
113
- _defineProperty(_assertThisInitialized(_this), "_instanceMap", {});
96
+ _this = _super.call(this, 'Runtime');
97
+ _this._flatInstances = [];
98
+ _this._instanceMap = {};
114
99
  var schema = props.schema;
115
100
  _this._schema = schema;
116
101
  _this._instance = _this.createControl(schema, props.beforeCreateInstance);
@@ -125,7 +110,7 @@ export var Runtime = /*#__PURE__*/ function(RegisterControls) {
125
110
  var instanceMap = {};
126
111
  loop(this._instance, function(item) {
127
112
  // 3.4.1 避免将subtable-row 放到 _flatInstances 中
128
- if (item.type === "subtable-row" || item.type === "subtable-column") {
113
+ if (item.type === 'subtable-row' || item.type === 'subtable-column') {
129
114
  return;
130
115
  }
131
116
  instances.push(item);
@@ -264,7 +249,7 @@ item) {
264
249
  } else if (item.type === CONTROL_TYPE.SUBTABLE) {
265
250
  data[item.id] = item.rules;
266
251
  var itemRules = {
267
- type: "array",
252
+ type: 'array',
268
253
  fields: {}
269
254
  };
270
255
  item.children.forEach(function(row, index) {
@@ -272,7 +257,7 @@ item) {
272
257
  if (itemRules.fields) {
273
258
  if (!itemRules.fields[index]) {
274
259
  itemRules.fields[index] = {
275
- type: "object",
260
+ type: 'object',
276
261
  required: true,
277
262
  fields: {}
278
263
  };
@@ -32,30 +32,23 @@ function _defineProperty(obj, key, value) {
32
32
  }
33
33
  function _instanceof(left, right) {
34
34
  if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
35
- return !!right[Symbol.hasInstance](left);
35
+ return right[Symbol.hasInstance](left);
36
36
  } else {
37
37
  return left instanceof right;
38
38
  }
39
39
  }
40
- import { DataBind, ObjectDataBind } from "@byteluck-fe/model-driven-core";
41
- import { loopFormSchema, JSONCopy, warn, CONTROL_TYPE, CONTROL_BASE_TYPE } from "@byteluck-fe/model-driven-shared";
42
- import { loopDataViewControl, loopFormControl, buildUUID } from "../utils/runtimeUtils";
40
+ import { DataBind, ObjectDataBind } from '@byteluck-fe/model-driven-core';
41
+ import { loopFormSchema, JSONCopy, warn, CONTROL_TYPE, CONTROL_BASE_TYPE } from '@byteluck-fe/model-driven-shared';
42
+ import { loopDataViewControl, loopFormControl, buildUUID } from '../utils/runtimeUtils';
43
43
  var Store = /*#__PURE__*/ function() {
44
44
  "use strict";
45
45
  function Store(props) {
46
46
  _classCallCheck(this, Store);
47
- _defineProperty(this, "emptyState", void 0);
48
- _defineProperty(this, "state", void 0);
49
- _defineProperty(this, "dataBindMapping", void 0 // 主要提供给二开使用
50
- );
51
- _defineProperty(this, "controlIdMapping", void 0);
52
- _defineProperty(this, "defaultState", void 0);
53
- var _init = init(props.instance), state = _init.state, emptyState = _init.emptyState, databindMapping = _init.databindMapping, controlidMapping = _init.controlidMapping, defaultState = _init.defaultState;
47
+ var ref = init(props.instance), state = ref.state, emptyState = ref.emptyState, databindMapping = ref.databindMapping, controlidMapping = ref.controlidMapping;
54
48
  this.emptyState = emptyState;
55
49
  this.state = state;
56
50
  this.dataBindMapping = databindMapping;
57
51
  this.controlIdMapping = controlidMapping;
58
- this.defaultState = defaultState;
59
52
  }
60
53
  _createClass(Store, [
61
54
  {
@@ -65,7 +58,6 @@ var Store = /*#__PURE__*/ function() {
65
58
  * @param value
66
59
  */ key: "setState",
67
60
  value: function setState(controlId, value, rowIndex) {
68
- var _this = this;
69
61
  var controlInfo = this.controlIdMapping[controlId];
70
62
  if (controlInfo !== undefined) {
71
63
  //qiyu 按照对象赋值,Object.assign会触发多次key的change事件
@@ -80,14 +72,16 @@ var Store = /*#__PURE__*/ function() {
80
72
  // }
81
73
  } else {
82
74
  if (rowIndex !== undefined) {
75
+ var _this = this;
83
76
  //TODO 目前只找了一层明细表,没有递归 如果是添加uid
84
77
  Object.keys(this.controlIdMapping).map(function(subtableId) {
85
78
  var dataView = _this.controlIdMapping[subtableId].dataView;
86
79
  var children = _this.controlIdMapping[subtableId].children;
87
80
  if (children !== undefined) {
81
+ var _this1 = _this;
88
82
  Object.keys(children).map(function(childControlId) {
89
83
  if (childControlId === controlId) {
90
- _this.state[dataView][subtableId][rowIndex][controlId] = value;
84
+ _this1.state[dataView][subtableId][rowIndex][controlId] = value;
91
85
  }
92
86
  });
93
87
  }
@@ -102,7 +96,6 @@ var Store = /*#__PURE__*/ function() {
102
96
  {
103
97
  key: "getState",
104
98
  value: function getState(controlId, rowIndex) {
105
- var _this = this;
106
99
  //qiyu 由于header的数据是后补充的,所以从state获取第一层值。
107
100
  // const controlInfo = this.controlIdMapping[controlId]
108
101
  var detection = this.state[controlId];
@@ -114,27 +107,31 @@ var Store = /*#__PURE__*/ function() {
114
107
  return this.state[controlInfo.dataView][controlId];
115
108
  } else {
116
109
  if (rowIndex !== undefined) {
110
+ var _this = this;
117
111
  var state;
118
112
  //TODO 目前只找了一层明细表,没有递归
119
113
  Object.keys(this.controlIdMapping).map(function(subtableId) {
120
114
  var dataViewId = _this.controlIdMapping[subtableId].dataView;
121
115
  var children = _this.controlIdMapping[subtableId].children;
122
116
  if (children !== undefined) {
117
+ var _this3 = _this;
123
118
  Object.keys(children).map(function(childControlId) {
124
119
  if (childControlId === controlId) {
125
- var _this_state_dataViewId_subtableId_rowIndex;
126
- state = (_this_state_dataViewId_subtableId_rowIndex = _this.state[dataViewId][subtableId][rowIndex]) === null || _this_state_dataViewId_subtableId_rowIndex === void 0 ? void 0 : _this_state_dataViewId_subtableId_rowIndex[controlId];
120
+ var ref;
121
+ state = (ref = _this3.state[dataViewId][subtableId][rowIndex]) === null || ref === void 0 ? void 0 : ref[controlId];
127
122
  }
128
123
  });
129
124
  }
130
125
  });
131
126
  return state;
132
127
  } else {
128
+ var _this2 = this;
133
129
  var states = [];
134
130
  Object.keys(this.controlIdMapping).map(function(subtableId) {
135
- var dataViewId = _this.controlIdMapping[subtableId].dataView;
136
- var children = _this.controlIdMapping[subtableId].children;
131
+ var dataViewId = _this2.controlIdMapping[subtableId].dataView;
132
+ var children = _this2.controlIdMapping[subtableId].children;
137
133
  if (children !== undefined) {
134
+ var _this = _this2;
138
135
  Object.keys(children).map(function(childControlId) {
139
136
  if (childControlId === controlId) {
140
137
  _this.state[dataViewId][subtableId].map(function(item) {
@@ -153,7 +150,6 @@ var Store = /*#__PURE__*/ function() {
153
150
  {
154
151
  key: "getEmptyState",
155
152
  value: function getEmptyState(controlId) {
156
- var _this = this;
157
153
  var detection = this.emptyState[controlId];
158
154
  if (detection !== undefined) {
159
155
  return this.emptyState[controlId];
@@ -162,22 +158,24 @@ var Store = /*#__PURE__*/ function() {
162
158
  if (controlInfo !== undefined) {
163
159
  var state = this.emptyState[controlInfo.dataView][controlId];
164
160
  //判断找到的是否是明细表的控件
165
- if ("children" in controlInfo) {
161
+ if ('children' in controlInfo) {
166
162
  Object.assign(state, {
167
- uid: "new:" + buildUUID("uid")
163
+ uid: 'new:' + buildUUID('uid')
168
164
  });
169
165
  }
170
166
  return state;
171
167
  } else {
168
+ var _this = this;
172
169
  var state1;
173
170
  //TODO 目前只找了一层明细表,没有递归
174
171
  Object.keys(this.controlIdMapping).map(function(subtableId) {
175
172
  var dataViewId = _this.controlIdMapping[subtableId].dataView;
176
173
  var children = _this.controlIdMapping[subtableId].children;
177
174
  if (children !== undefined) {
175
+ var _this4 = _this;
178
176
  Object.keys(children).map(function(childControlId) {
179
177
  if (childControlId === controlId) {
180
- state1 = _this.emptyState[dataViewId][subtableId][controlId];
178
+ state1 = _this4.emptyState[dataViewId][subtableId][controlId];
181
179
  }
182
180
  });
183
181
  }
@@ -216,7 +214,6 @@ function init(instance) {
216
214
  var emptyState = {};
217
215
  var databindMapping = {};
218
216
  var controlidMapping = {};
219
- var defaultState = {};
220
217
  // loopFormControl(instance, (item, children) => {
221
218
  // })
222
219
  // @ts-ignore
@@ -232,13 +229,11 @@ function init(instance) {
232
229
  buildDataBindMapping(databindMapping, dvId, item);
233
230
  buildControlIdMapping(controlidMapping, dvId, item);
234
231
  });
235
- state[dvId] = {};
236
- defaultState[dvId] = dataViewState;
232
+ state[dvId] = dataViewState;
237
233
  emptyState[dvId] = emptyDataViewState;
238
234
  });
239
235
  return {
240
236
  state: state,
241
- defaultState: defaultState,
242
237
  emptyState: emptyState,
243
238
  databindMapping: databindMapping,
244
239
  controlidMapping: controlidMapping
@@ -249,41 +244,41 @@ item) {
249
244
  //if (item instanceof RuntimeFormControl) {
250
245
  if (item.controlType === CONTROL_BASE_TYPE.FORM) {
251
246
  // 2023-4-2 jiaqi 首次进入页面去除填充默认值
252
- dataViewState[item.id] = JSONCopy(item.props.defaultValue);
247
+ // dataViewState[item.id] = JSONCopy(item.props.defaultValue)
253
248
  emptyDataViewState[item.id] = JSONCopy(item.props.defaultValue);
254
249
  } else {
255
250
  var emptyTemplate = {};
256
251
  loopFormSchema(item.props.headers, function(headerItem) {
257
252
  emptyTemplate[headerItem.id] = JSONCopy(headerItem.props.defaultValue);
258
253
  });
259
- var _item_props_defaultRows;
260
- dataViewState[item.id] = new Array((_item_props_defaultRows = item.props.defaultRows) !== null && _item_props_defaultRows !== void 0 ? _item_props_defaultRows : 1).fill(0).map(function() {
254
+ var _defaultRows;
255
+ dataViewState[item.id] = new Array((_defaultRows = item.props.defaultRows) !== null && _defaultRows !== void 0 ? _defaultRows : 1).fill(0).map(function() {
261
256
  return JSONCopy(emptyTemplate);
262
257
  });
263
258
  emptyDataViewState[item.id] = emptyTemplate;
264
259
  }
265
260
  }
266
261
  function buildDataBindMapping(data, dataViewId, // @ts-ignore
267
- item) {
262
+ item1) {
268
263
  // if (item instanceof RuntimeFormControl) {
269
- if (item.controlType === CONTROL_BASE_TYPE.FORM) {
270
- var _item_props, _item_props_dataBind;
271
- if (_instanceof(item.props.dataBind, ObjectDataBind)) {
264
+ if (item1.controlType === CONTROL_BASE_TYPE.FORM) {
265
+ var ref, ref1;
266
+ if (_instanceof(item1.props.dataBind, ObjectDataBind)) {
272
267
  // 特殊的dataBind,比如:金额是currency+amount两个key组成的,日期区间,继承自ObjectDataBind的需要通过Object.keys拿到多个databind
273
- Object.keys(item.props.dataBind).map(function(key) {
274
- var dataBind = item.props.dataBind;
268
+ Object.keys(item1.props.dataBind).map(function(key) {
269
+ var dataBind = item1.props.dataBind;
275
270
  var dataCode = dataBind[key].dataCode;
276
271
  if (dataCode !== undefined) {
277
272
  if (data[dataCode] === undefined) {
278
273
  data[dataCode] = {
279
- controlId: item.id,
274
+ controlId: item1.id,
280
275
  fields: [],
281
276
  dataViewId: dataViewId
282
277
  };
283
278
  }
284
279
  data[dataCode].fields.push({
285
280
  fieldCode: dataBind[key].fieldCode,
286
- controlId: item.id,
281
+ controlId: item1.id,
287
282
  dataBind: dataBind,
288
283
  dataViewId: [
289
284
  dataViewId
@@ -291,38 +286,38 @@ item) {
291
286
  });
292
287
  }
293
288
  });
294
- } else if (((_item_props = item.props) === null || _item_props === void 0 ? void 0 : (_item_props_dataBind = _item_props.dataBind) === null || _item_props_dataBind === void 0 ? void 0 : _item_props_dataBind.dataCode) === undefined) {
289
+ } else if (((ref = item1.props) === null || ref === void 0 ? void 0 : (ref1 = ref.dataBind) === null || ref1 === void 0 ? void 0 : ref1.dataCode) === undefined) {
295
290
  //qiyu 2023-2-27 为空跳过。form自定义组件加载失败时,hack的组件props为空。
296
291
  } else {
297
- if (data[item.props.dataBind.dataCode] === undefined) {
298
- data[item.props.dataBind.dataCode] = {
292
+ if (data[item1.props.dataBind.dataCode] === undefined) {
293
+ data[item1.props.dataBind.dataCode] = {
299
294
  controlId: dataViewId,
300
295
  fields: [],
301
296
  dataViewId: dataViewId
302
297
  };
303
298
  }
304
- data[item.props.dataBind.dataCode].fields.push({
305
- fieldCode: item.props.dataBind.fieldCode,
306
- controlId: item.id,
307
- dataBind: item.props.dataBind,
299
+ data[item1.props.dataBind.dataCode].fields.push({
300
+ fieldCode: item1.props.dataBind.fieldCode,
301
+ controlId: item1.id,
302
+ dataBind: item1.props.dataBind,
308
303
  dataViewId: [
309
304
  dataViewId
310
305
  ]
311
306
  });
312
307
  }
313
308
  } else {
314
- if (item.props.datasourceBind.dataCode === "") {
309
+ if (item1.props.datasourceBind.dataCode === '') {
315
310
  //敏捷依赖后端生成dataCode,预览的时候没有
316
- warn("datasourceBind.dataCode is empty! maybe in preview mode, control:".concat(item.id, " type:").concat(item.type));
311
+ warn("datasourceBind.dataCode is empty! maybe in preview mode, control:".concat(item1.id, " type:").concat(item1.type));
317
312
  return;
318
313
  }
319
- data[item.props.datasourceBind.dataCode] = {
320
- controlId: item.id,
314
+ data[item1.props.datasourceBind.dataCode] = {
315
+ controlId: item1.id,
321
316
  fields: [],
322
317
  dataViewId: dataViewId
323
318
  };
324
- var subtableId = item.id;
325
- loopFormSchema(item.props.headers, function(item) {
319
+ var subtableId = item1.id;
320
+ loopFormSchema(item1.props.headers, function(item) {
326
321
  if (_instanceof(item.props.dataBind, ObjectDataBind)) {
327
322
  Object.keys(item.props.dataBind).map(function(key) {
328
323
  var dataBind = item.props.dataBind;
@@ -364,16 +359,16 @@ item) {
364
359
  data[item.id] = {
365
360
  dataBind: new DataBind({
366
361
  dataCode: item.props.datasourceBind.dataCode,
367
- fieldCode: ""
362
+ fieldCode: ''
368
363
  }),
369
364
  dataView: dataViewId,
370
365
  children: {},
371
366
  options: []
372
367
  };
373
368
  loopFormSchema(item.props.headers, function(formControl) {
374
- var _data_item_id;
375
- var _data_item_id_children;
376
- Object.assign((_data_item_id_children = (_data_item_id = data[item.id]) === null || _data_item_id === void 0 ? void 0 : _data_item_id.children) !== null && _data_item_id_children !== void 0 ? _data_item_id_children : {}, _defineProperty({}, formControl.id, {
369
+ var ref;
370
+ var ref2;
371
+ Object.assign((ref2 = (ref = data[item.id]) === null || ref === void 0 ? void 0 : ref.children) !== null && ref2 !== void 0 ? ref2 : {}, _defineProperty({}, formControl.id, {
377
372
  dataBind: formControl.props.dataBind
378
373
  }));
379
374
  });