@byteluck-fe/model-driven-engine 4.37.0-lx1 → 4.41.0-lx1

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.
package/README.md CHANGED
@@ -1,30 +1,30 @@
1
- # Engine
2
- 运行态引擎
3
-
4
- ```
5
- │ index.ts // 入口文件
6
-
7
- ├─common // 引擎相关
8
- │ ActionManager.ts // utils操作管理
9
- │ checkerValue.ts // 表单值校验器
10
- │ DataManager.ts // 数据源容器
11
- │ Engine.ts // 引擎
12
- │ index.ts // 入口
13
- │ OkWorker.ts // 无用
14
- │ Plugin.ts // 插件
15
- │ proxyState.ts // 劫持引擎表单数据
16
- │ Runtime.ts // 控件注册和创建
17
- │ Store.ts // 数据管理
18
-
19
- ├─plugins
20
- │ CalcPlugin.ts // 计算公式插件
21
- │ ControlsEventPlugin.ts // 控件二开事件插件
22
- │ ES6ModulePlugin.ts //
23
- │ index.ts
24
- │ LifecycleEventPlugin.ts // 页面生命周期事件
25
- │ StylePlugin.ts // css二开
26
-
27
- └─utils
28
- index.ts
29
- runtimeUtils.ts // 工具函数
30
- ```
1
+ # Engine
2
+ 运行态引擎
3
+
4
+ ```
5
+ │ index.ts // 入口文件
6
+
7
+ ├─common // 引擎相关
8
+ │ ActionManager.ts // utils操作管理
9
+ │ checkerValue.ts // 表单值校验器
10
+ │ DataManager.ts // 数据源容器
11
+ │ Engine.ts // 引擎
12
+ │ index.ts // 入口
13
+ │ OkWorker.ts // 无用
14
+ │ Plugin.ts // 插件
15
+ │ proxyState.ts // 劫持引擎表单数据
16
+ │ Runtime.ts // 控件注册和创建
17
+ │ Store.ts // 数据管理
18
+
19
+ ├─plugins
20
+ │ CalcPlugin.ts // 计算公式插件
21
+ │ ControlsEventPlugin.ts // 控件二开事件插件
22
+ │ ES6ModulePlugin.ts //
23
+ │ index.ts
24
+ │ LifecycleEventPlugin.ts // 页面生命周期事件
25
+ │ StylePlugin.ts // css二开
26
+
27
+ └─utils
28
+ index.ts
29
+ runtimeUtils.ts // 工具函数
30
+ ```
@@ -1122,8 +1122,8 @@ var Engine = /*#__PURE__*/ function(Watcher) {
1122
1122
  obj[(_controlIdMapping_key3 = controlIdMapping[key]) === null || _controlIdMapping_key3 === void 0 ? void 0 : _controlIdMapping_key3.dataBind.dataCode] = getFieldData[key].map(function(item) {
1123
1123
  var objChi = {};
1124
1124
  for(var keyChi in item){
1125
- var _controlIdMapping_key_children_keyChi;
1126
- var fieldCode = (_controlIdMapping_key_children_keyChi = controlIdMapping[key].children[keyChi]) === null || _controlIdMapping_key_children_keyChi === void 0 ? void 0 : _controlIdMapping_key_children_keyChi.dataBind.fieldCode;
1125
+ var _controlIdMapping_key_children_keyChi_dataBind, _controlIdMapping_key_children_keyChi, _controlIdMapping_key_children, _controlIdMapping_key;
1126
+ var fieldCode = (_controlIdMapping_key = controlIdMapping[key]) === null || _controlIdMapping_key === void 0 ? void 0 : (_controlIdMapping_key_children = _controlIdMapping_key.children) === null || _controlIdMapping_key_children === void 0 ? void 0 : (_controlIdMapping_key_children_keyChi = _controlIdMapping_key_children[keyChi]) === null || _controlIdMapping_key_children_keyChi === void 0 ? void 0 : (_controlIdMapping_key_children_keyChi_dataBind = _controlIdMapping_key_children_keyChi.dataBind) === null || _controlIdMapping_key_children_keyChi_dataBind === void 0 ? void 0 : _controlIdMapping_key_children_keyChi_dataBind.fieldCode;
1127
1127
  //未绑定字段的控件,直接抛弃
1128
1128
  if (fieldCode !== '') {
1129
1129
  if (fieldCode) {
@@ -1576,54 +1576,6 @@ var Engine = /*#__PURE__*/ function(Watcher) {
1576
1576
  }
1577
1577
  }
1578
1578
  },
1579
- {
1580
- /**
1581
- * 前端二开新增方法,支持给多选控件动态赋值选项和默认值
1582
- * ctx.setInstance('zQX4ViR3c0', 'options', [{ label:'初级:N<2年', value: '初级' },{ label:'高级:N>2年', value: '高级' }]);
1583
- * ctx.setState('zQX4ViR3c0',['初级'])
1584
- * 将以上两个方法封装成一个新的方法setInstanceAndState
1585
- * ctx.setInstanceAndState('uexLafJeGH', 'options', [{ label:'初级:N<2年', value: '初级' ,checked: true},{ label:'初级:N>2年', value: '高级' }]);
1586
- * 可同时设置选项和默认值
1587
- * @param instance
1588
- * @param props
1589
- * @param value
1590
- * @param rowIndex
1591
- */ key: "setInstanceAndState",
1592
- value: function setInstanceAndState(instance, props, value, rowIndex) {
1593
- this.setInstance(instance, props, value, rowIndex);
1594
- if (value && Array.isArray(value)) {
1595
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1596
- try {
1597
- for(var _iterator = value[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1598
- var item = _step.value;
1599
- if (item.checked) {
1600
- var instanceId = '';
1601
- if (typeof instance !== 'string') {
1602
- instanceId = instance.id;
1603
- } else {
1604
- instanceId = instance;
1605
- }
1606
- this.setState(instanceId, item.value, rowIndex);
1607
- break;
1608
- }
1609
- }
1610
- } catch (err) {
1611
- _didIteratorError = true;
1612
- _iteratorError = err;
1613
- } finally{
1614
- try {
1615
- if (!_iteratorNormalCompletion && _iterator.return != null) {
1616
- _iterator.return();
1617
- }
1618
- } finally{
1619
- if (_didIteratorError) {
1620
- throw _iteratorError;
1621
- }
1622
- }
1623
- }
1624
- }
1625
- }
1626
- },
1627
1579
  {
1628
1580
  key: "getControlIdMapping",
1629
1581
  value: function getControlIdMapping() {
@@ -285,8 +285,8 @@ function loop(control, parentId, callback) {
285
285
  function hasHeaderOrFooterControl(control, checkType) {
286
286
  return checkType in control.props && isArray(control.props[checkType]);
287
287
  }
288
- /**
289
- * 控件是否在视图中隐藏,遍历查找所有parent
288
+ /**
289
+ * 控件是否在视图中隐藏,遍历查找所有parent
290
290
  * */ function getControlIsHide(control) {
291
291
  if (control.props.isHide) {
292
292
  return true;
@@ -68,10 +68,10 @@ var Store = /*#__PURE__*/ function() {
68
68
  }
69
69
  _create_class(Store, [
70
70
  {
71
- /**
72
- * 使用该方法仅改变数据,不会表单触发事件。明细表可全量赋值也可根据rowIndex进行单独设置
73
- * @param controlId 组件ID
74
- * @param value
71
+ /**
72
+ * 使用该方法仅改变数据,不会表单触发事件。明细表可全量赋值也可根据rowIndex进行单独设置
73
+ * @param controlId 组件ID
74
+ * @param value
75
75
  */ key: "setState",
76
76
  value: function setState(controlId, value, rowIndex) {
77
77
  var _this = this;
@@ -105,11 +105,11 @@ function ArrayHandler(target, propertyKey, value, thisKey, callback) {
105
105
  }
106
106
  }
107
107
  }
108
- /**
109
- * 返回proxy操作对象
110
- * @param thisKey 当前对象在上级中的key
111
- * @param callback 需要在修改的时候,触发的回调函数
112
- * @param beforeSetCallback 需要在修改之前触发的回调函数,可以进行校验和对值的修改等等,最终的返回值不为undefined就会使用
108
+ /**
109
+ * 返回proxy操作对象
110
+ * @param thisKey 当前对象在上级中的key
111
+ * @param callback 需要在修改的时候,触发的回调函数
112
+ * @param beforeSetCallback 需要在修改之前触发的回调函数,可以进行校验和对值的修改等等,最终的返回值不为undefined就会使用
113
113
  * */ function handler(thisKey, callback, beforeSetCallback) {
114
114
  return {
115
115
  __engineProxy__: true,
@@ -183,12 +183,12 @@ function ArrayHandler(target, propertyKey, value, thisKey, callback) {
183
183
  }
184
184
  };
185
185
  }
186
- /**
187
- * 代理state数据
188
- * @param state 数据对象
189
- * @param callback 触发set时候的回调函数
190
- * @param beforeSetCallback
191
- * @param prevKey 递归对象的key
186
+ /**
187
+ * 代理state数据
188
+ * @param state 数据对象
189
+ * @param callback 触发set时候的回调函数
190
+ * @param beforeSetCallback
191
+ * @param prevKey 递归对象的key
192
192
  * */ export function proxyState(state, callback, beforeSetCallback) {
193
193
  var prevKey = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : '';
194
194
  // 冻结的对象不需要再执行proxy,否则会报错
@@ -216,10 +216,10 @@ function flatInstanceForChildren(controls) {
216
216
  });
217
217
  return result;
218
218
  }
219
- /**
220
- * 在flatInstance中通过key查找出对应的instance
221
- * @param flatInstance 拍平的instance数组
222
- * @param key 操作的数据在state的key - 可以是深层次的 subtable.0.input等
219
+ /**
220
+ * 在flatInstance中通过key查找出对应的instance
221
+ * @param flatInstance 拍平的instance数组
222
+ * @param key 操作的数据在state的key - 可以是深层次的 subtable.0.input等
223
223
  * */ export function findItem(key, engine) {
224
224
  if (key === '') return {
225
225
  instance: undefined,
@@ -269,9 +269,9 @@ function getArrayNewArgs(type, args, value) {
269
269
  return args.slice(0, 2).concat(value);
270
270
  }
271
271
  }
272
- /**
273
- * TODO 数组劫持操作需要模仿vue3进行重构,不再直接劫持原生property
274
- * 劫持数组api,达到操作数组api的时候,可以同步操作instance
272
+ /**
273
+ * TODO 数组劫持操作需要模仿vue3进行重构,不再直接劫持原生property
274
+ * 劫持数组api,达到操作数组api的时候,可以同步操作instance
275
275
  * */ function hijackArrayProperty() {
276
276
  proxyArrayApi.forEach(function(key) {
277
277
  var oldApiHandler = Array.prototype[key];
@@ -62,11 +62,11 @@ function _unsupported_iterable_to_array(o, minLen) {
62
62
  import { CONTROL_TYPE, CALC_TOKEN_TYPE, CALC_AGGREGATE_TYPE } from '@byteluck-fe/model-driven-shared';
63
63
  import { format } from 'mathjs';
64
64
  var DisplayType = /*#__PURE__*/ function(DisplayType) {
65
- /**
66
- * 完全等于
65
+ /**
66
+ * 完全等于
67
67
  */ DisplayType["EQ"] = "EQ";
68
- /**
69
- * 包含
68
+ /**
69
+ * 包含
70
70
  * */ DisplayType["IN"] = "IN";
71
71
  return DisplayType;
72
72
  }(DisplayType || {});
@@ -76,16 +76,16 @@ export var CalcPlugin = /*#__PURE__*/ function() {
76
76
  _class_call_check(this, CalcPlugin);
77
77
  _define_property(this, "engine", void 0);
78
78
  _define_property(this, "options", void 0);
79
- /**
80
- * 所有的计算公式控件
79
+ /**
80
+ * 所有的计算公式控件
81
81
  * */ // @ts-ignore
82
82
  _define_property(this, "calcControls", []);
83
- /**
84
- * key=控件id value=控件修改后需要触发重新计算的计算公式控件组成的数组
85
- * 存储为一个Map,用于在控件change的时候,重新计算依赖的calc
83
+ /**
84
+ * key=控件id value=控件修改后需要触发重新计算的计算公式控件组成的数组
85
+ * 存储为一个Map,用于在控件change的时候,重新计算依赖的calc
86
86
  * */ _define_property(this, "dependenciesTriggerMap", new Map());
87
- /**
88
- * 隐藏以后需要被计算的控件
87
+ /**
88
+ * 隐藏以后需要被计算的控件
89
89
  * */ _define_property(this, "hideNotRememberControlIds", []);
90
90
  _define_property(this, "dontHasPermissionControlIds", []);
91
91
  _define_property(this, "cacheComputedResult", {});
@@ -96,8 +96,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
96
96
  _create_class(CalcPlugin, [
97
97
  {
98
98
  key: "getNeedHideRememberControlIds",
99
- value: /**
100
- * @description 获取显隐控制的需要被记住值的控件id
99
+ value: /**
100
+ * @description 获取显隐控制的需要被记住值的控件id
101
101
  * */ function getNeedHideRememberControlIds() {
102
102
  var _this_options;
103
103
  if (!((_this_options = this.options) === null || _this_options === void 0 ? void 0 : _this_options.displayBoList)) {
@@ -114,8 +114,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
114
114
  },
115
115
  {
116
116
  key: "getDontHasPermissionControlIds",
117
- value: /**
118
- * @description 获取权限控制的隐藏的字段,不需要参与计算
117
+ value: /**
118
+ * @description 获取权限控制的隐藏的字段,不需要参与计算
119
119
  * */ function getDontHasPermissionControlIds() {
120
120
  var _this_options;
121
121
  if (!((_this_options = this.options) === null || _this_options === void 0 ? void 0 : _this_options.behavior)) {
@@ -131,9 +131,9 @@ export var CalcPlugin = /*#__PURE__*/ function() {
131
131
  },
132
132
  {
133
133
  key: "controlNeedComputedValue",
134
- value: /**
135
- * @description 判断控件是否需要被计算
136
- * @param control 控件
134
+ value: /**
135
+ * @description 判断控件是否需要被计算
136
+ * @param control 控件
137
137
  * */ function controlNeedComputedValue(control) {
138
138
  if (!control) {
139
139
  return false;
@@ -153,9 +153,9 @@ export var CalcPlugin = /*#__PURE__*/ function() {
153
153
  },
154
154
  {
155
155
  key: "getControlIsHide",
156
- value: /**
157
- * @description 获取控件是否被隐藏
158
- * @param control 控件
156
+ value: /**
157
+ * @description 获取控件是否被隐藏
158
+ * @param control 控件
159
159
  * */ function getControlIsHide(control) {
160
160
  if (control.props.isHide) {
161
161
  return true;
@@ -184,8 +184,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
184
184
  },
185
185
  {
186
186
  key: "resetDependencies",
187
- value: /**
188
- * @description 重置依赖,获取所有的计算公式控件,并根据计算公式获取控件依赖关系
187
+ value: /**
188
+ * @description 重置依赖,获取所有的计算公式控件,并根据计算公式获取控件依赖关系
189
189
  * */ function resetDependencies() {
190
190
  this.calcControls = [];
191
191
  this.dependenciesTriggerMap.clear();
@@ -195,8 +195,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
195
195
  },
196
196
  {
197
197
  key: "allCalcControlComputed",
198
- value: /**
199
- * @description 执行所有计算公式控件的计算
198
+ value: /**
199
+ * @description 执行所有计算公式控件的计算
200
200
  * */ function allCalcControlComputed() {
201
201
  var _this = this;
202
202
  this.calcControls.forEach(function(item) {
@@ -210,8 +210,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
210
210
  },
211
211
  {
212
212
  key: "getAllCalcControl",
213
- value: /**
214
- * @description 获取所有的计算公式控件
213
+ value: /**
214
+ * @description 获取所有的计算公式控件
215
215
  * */ function getAllCalcControl() {
216
216
  this.calcControls = this.engine.runtime.flatInstances.filter(// @ts-ignore
217
217
  function(item) {
@@ -221,8 +221,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
221
221
  },
222
222
  {
223
223
  key: "getCalcDependencies",
224
- value: /**
225
- * @description 获取计算公式控件依赖,组成 依赖=>[计算公式] 的Map结构
224
+ value: /**
225
+ * @description 获取计算公式控件依赖,组成 依赖=>[计算公式] 的Map结构
226
226
  * */ function getCalcDependencies() {
227
227
  var _this = this;
228
228
  this.calcControls.forEach(function(item) {
@@ -274,8 +274,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
274
274
  },
275
275
  {
276
276
  key: "watchSchemaHideChange",
277
- value: /**
278
- * @description 监听控件的显隐事件,把显隐会影响的控件触发一遍计算
277
+ value: /**
278
+ * @description 监听控件的显隐事件,把显隐会影响的控件触发一遍计算
279
279
  * */ function watchSchemaHideChange() {
280
280
  var _this = this;
281
281
  this.engine.on('schema-change', function(payload) {
@@ -291,8 +291,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
291
291
  },
292
292
  {
293
293
  key: "watchSubtableChange",
294
- value: /**
295
- * @description 监听明细子表的change事件,把明细表会影响的控件触发一遍计算
294
+ value: /**
295
+ * @description 监听明细子表的change事件,把明细表会影响的控件触发一遍计算
296
296
  * */ function watchSubtableChange() {
297
297
  var _this = this;
298
298
  this.engine.on('list-change', function(payload) {
@@ -319,8 +319,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
319
319
  },
320
320
  {
321
321
  key: "watchControlChange",
322
- value: /**
323
- * @description 监听控件的change事件,当控件change的时候,取到控件会影响的计算公式,然后执行对应的计算
322
+ value: /**
323
+ * @description 监听控件的change事件,当控件change的时候,取到控件会影响的计算公式,然后执行对应的计算
324
324
  * */ function watchControlChange() {
325
325
  var _this = this;
326
326
  this.engine.on('change', function(payload) {
@@ -355,8 +355,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
355
355
  },
356
356
  {
357
357
  key: "controlInSubtable",
358
- value: /**
359
- * @description 控件在明细子表内
358
+ value: /**
359
+ * @description 控件在明细子表内
360
360
  * */ function controlInSubtable(control) {
361
361
  var _control_parent;
362
362
  return ((_control_parent = control.parent) === null || _control_parent === void 0 ? void 0 : _control_parent.type) === CONTROL_TYPE.SUBTABLE_COLUMN;
@@ -364,8 +364,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
364
364
  },
365
365
  {
366
366
  key: "computedCalcValue",
367
- value: /**
368
- * @description 执行计算公式的计算
367
+ value: /**
368
+ * @description 执行计算公式的计算
369
369
  * */ // @ts-ignore
370
370
  function computedCalcValue(control) {
371
371
  var _this = this;
@@ -455,8 +455,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
455
455
  },
456
456
  {
457
457
  key: "getNumberValue",
458
- value: /**
459
- * @description 获取数字值,因为计算公式可以依赖计算公式和金额,所以需要从value中取到对应的值
458
+ value: /**
459
+ * @description 获取数字值,因为计算公式可以依赖计算公式和金额,所以需要从value中取到对应的值
460
460
  * */ function getNumberValue(value) {
461
461
  if ((typeof value === "undefined" ? "undefined" : _type_of(value)) === 'object' && value) {
462
462
  if ('result' in value) {
@@ -473,8 +473,8 @@ export var CalcPlugin = /*#__PURE__*/ function() {
473
473
  },
474
474
  {
475
475
  key: "getAggregateTypeValue",
476
- value: /**
477
- * 计算明细子表最大值最小值平均值总和
476
+ value: /**
477
+ * 计算明细子表最大值最小值平均值总和
478
478
  * */ function getAggregateTypeValue(values, type) {
479
479
  if (!type || !values || !values.length) return 0;
480
480
  switch(type){
@@ -1,9 +1,9 @@
1
- /*
2
- * @Author: zhaoxiaoyang zhaoxiaoyang@byteluck.com
3
- * @Date: 2022-04-15 14:06:03
4
- * @LastEditors: zhaoxiaoyang zhaoxiaoyang@byteluck.com
5
- * @LastEditTime: 2023-11-30 16:38:47
6
- * @FilePath: /model-driven/packages/engine/src/plugins/StylePlugin.ts
1
+ /*
2
+ * @Author: zhaoxiaoyang zhaoxiaoyang@byteluck.com
3
+ * @Date: 2022-04-15 14:06:03
4
+ * @LastEditors: zhaoxiaoyang zhaoxiaoyang@byteluck.com
5
+ * @LastEditTime: 2023-11-30 16:38:47
6
+ * @FilePath: /model-driven/packages/engine/src/plugins/StylePlugin.ts
7
7
  */ function _class_call_check(instance, Constructor) {
8
8
  if (!(instance instanceof Constructor)) {
9
9
  throw new TypeError("Cannot call a class as a function");