@byteluck-fe/model-driven-engine 2.22.4-beta.2 → 2.22.4-beta.5

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.
@@ -0,0 +1,609 @@
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_with_holes(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _assert_this_initialized(self) {
10
+ if (self === void 0) {
11
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
12
+ }
13
+ return self;
14
+ }
15
+ function _call_super(_this, derived, args) {
16
+ derived = _get_prototype_of(derived);
17
+ return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
18
+ }
19
+ function _class_call_check(instance, Constructor) {
20
+ if (!(instance instanceof Constructor)) {
21
+ throw new TypeError("Cannot call a class as a function");
22
+ }
23
+ }
24
+ function _defineProperties(target, props) {
25
+ for(var i = 0; i < props.length; i++){
26
+ var descriptor = props[i];
27
+ descriptor.enumerable = descriptor.enumerable || false;
28
+ descriptor.configurable = true;
29
+ if ("value" in descriptor) descriptor.writable = true;
30
+ Object.defineProperty(target, descriptor.key, descriptor);
31
+ }
32
+ }
33
+ function _create_class(Constructor, protoProps, staticProps) {
34
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
35
+ if (staticProps) _defineProperties(Constructor, staticProps);
36
+ return Constructor;
37
+ }
38
+ function _define_property(obj, key, value) {
39
+ if (key in obj) {
40
+ Object.defineProperty(obj, key, {
41
+ value: value,
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true
45
+ });
46
+ } else {
47
+ obj[key] = value;
48
+ }
49
+ return obj;
50
+ }
51
+ function _get_prototype_of(o) {
52
+ _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
53
+ return o.__proto__ || Object.getPrototypeOf(o);
54
+ };
55
+ return _get_prototype_of(o);
56
+ }
57
+ function _inherits(subClass, superClass) {
58
+ if (typeof superClass !== "function" && superClass !== null) {
59
+ throw new TypeError("Super expression must either be null or a function");
60
+ }
61
+ subClass.prototype = Object.create(superClass && superClass.prototype, {
62
+ constructor: {
63
+ value: subClass,
64
+ writable: true,
65
+ configurable: true
66
+ }
67
+ });
68
+ if (superClass) _set_prototype_of(subClass, superClass);
69
+ }
70
+ function _iterable_to_array_limit(arr, i) {
71
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
72
+ if (_i == null) return;
73
+ var _arr = [];
74
+ var _n = true;
75
+ var _d = false;
76
+ var _s, _e;
77
+ try {
78
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
79
+ _arr.push(_s.value);
80
+ if (i && _arr.length === i) break;
81
+ }
82
+ } catch (err) {
83
+ _d = true;
84
+ _e = err;
85
+ } finally{
86
+ try {
87
+ if (!_n && _i["return"] != null) _i["return"]();
88
+ } finally{
89
+ if (_d) throw _e;
90
+ }
91
+ }
92
+ return _arr;
93
+ }
94
+ function _non_iterable_rest() {
95
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
96
+ }
97
+ function _object_spread(target) {
98
+ for(var i = 1; i < arguments.length; i++){
99
+ var source = arguments[i] != null ? arguments[i] : {};
100
+ var ownKeys = Object.keys(source);
101
+ if (typeof Object.getOwnPropertySymbols === "function") {
102
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
103
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
104
+ }));
105
+ }
106
+ ownKeys.forEach(function(key) {
107
+ _define_property(target, key, source[key]);
108
+ });
109
+ }
110
+ return target;
111
+ }
112
+ function _possible_constructor_return(self, call) {
113
+ if (call && (_type_of(call) === "object" || typeof call === "function")) {
114
+ return call;
115
+ }
116
+ return _assert_this_initialized(self);
117
+ }
118
+ function _set_prototype_of(o, p) {
119
+ _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
120
+ o.__proto__ = p;
121
+ return o;
122
+ };
123
+ return _set_prototype_of(o, p);
124
+ }
125
+ function _sliced_to_array(arr, i) {
126
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
127
+ }
128
+ function _type_of(obj) {
129
+ "@swc/helpers - typeof";
130
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
131
+ }
132
+ function _unsupported_iterable_to_array(o, minLen) {
133
+ if (!o) return;
134
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
135
+ var n = Object.prototype.toString.call(o).slice(8, -1);
136
+ if (n === "Object" && o.constructor) n = o.constructor.name;
137
+ if (n === "Map" || n === "Set") return Array.from(n);
138
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
139
+ }
140
+ function _is_native_reflect_construct() {
141
+ try {
142
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
143
+ } catch (_) {}
144
+ return (_is_native_reflect_construct = function() {
145
+ return !!result;
146
+ })();
147
+ }
148
+ import { isArray, isFunction, isString, isJSONArray, isJSONObject, isNumber, isNumberAndEmptyStringArray, isPlainObject, isStringArray, FieldTypes, isObject } from '@byteluck-fe/model-driven-shared';
149
+ import { AddressValue, AmountValue, CalcValue, RangeDateValue } from '@byteluck-fe/model-driven-core';
150
+ import { camelizeKeys } from 'humps';
151
+ var ValueChecker = function ValueChecker() {
152
+ "use strict";
153
+ _class_call_check(this, ValueChecker);
154
+ };
155
+ var StringValueChecker = /*#__PURE__*/ function(ValueChecker) {
156
+ "use strict";
157
+ _inherits(StringValueChecker, ValueChecker);
158
+ function StringValueChecker() {
159
+ _class_call_check(this, StringValueChecker);
160
+ return _call_super(this, StringValueChecker, arguments);
161
+ }
162
+ _create_class(StringValueChecker, [
163
+ {
164
+ key: "validate",
165
+ value: function validate(value) {
166
+ return isString(value);
167
+ }
168
+ },
169
+ {
170
+ key: "transform",
171
+ value: function transform(value) {
172
+ if (value === null || value === undefined) {
173
+ return '';
174
+ }
175
+ if (!isPlainObject(value) && !isFunction(value)) {
176
+ return String(value);
177
+ }
178
+ if (isObject(value)) {
179
+ return JSON.stringify(value);
180
+ }
181
+ throw "".concat(value, " is not a string");
182
+ }
183
+ }
184
+ ]);
185
+ return StringValueChecker;
186
+ }(ValueChecker);
187
+ var NumberValueChecker = /*#__PURE__*/ function(ValueChecker) {
188
+ "use strict";
189
+ _inherits(NumberValueChecker, ValueChecker);
190
+ function NumberValueChecker() {
191
+ _class_call_check(this, NumberValueChecker);
192
+ return _call_super(this, NumberValueChecker, arguments);
193
+ }
194
+ _create_class(NumberValueChecker, [
195
+ {
196
+ // 数字类型允许是空字符串,用于置空数据
197
+ key: "validate",
198
+ value: function validate(value) {
199
+ return isNumber(value) || value === '';
200
+ }
201
+ },
202
+ {
203
+ key: "transform",
204
+ value: function transform(value) {
205
+ if (value === null || value === undefined) {
206
+ return '';
207
+ }
208
+ var newValue = !isPlainObject(value) && !isFunction(value) ? Number(value) : undefined;
209
+ if (!Number.isNaN(newValue) && newValue !== undefined) {
210
+ return newValue;
211
+ }
212
+ throw "".concat(value, " is not a number");
213
+ }
214
+ }
215
+ ]);
216
+ return NumberValueChecker;
217
+ }(ValueChecker);
218
+ var StringArrayValueChecker = /*#__PURE__*/ function(ValueChecker) {
219
+ "use strict";
220
+ _inherits(StringArrayValueChecker, ValueChecker);
221
+ function StringArrayValueChecker() {
222
+ _class_call_check(this, StringArrayValueChecker);
223
+ return _call_super(this, StringArrayValueChecker, arguments);
224
+ }
225
+ _create_class(StringArrayValueChecker, [
226
+ {
227
+ key: "validate",
228
+ value: function validate(value) {
229
+ return isStringArray(value);
230
+ }
231
+ },
232
+ {
233
+ key: "transform",
234
+ value: function transform(value) {
235
+ if (value === undefined || value === null) {
236
+ return [];
237
+ }
238
+ function getStringValueArray(value) {
239
+ return value.map(function(item) {
240
+ return !item ? '' : String(item);
241
+ });
242
+ }
243
+ if (isArray(value)) {
244
+ return getStringValueArray(value);
245
+ }
246
+ if (isString(value) && isJSONArray(value)) {
247
+ try {
248
+ var newValue = JSON.parse(value);
249
+ if (Array.isArray(newValue)) {
250
+ return getStringValueArray(newValue);
251
+ }
252
+ } catch (e) {}
253
+ }
254
+ return [
255
+ String(value)
256
+ ];
257
+ }
258
+ }
259
+ ]);
260
+ return StringArrayValueChecker;
261
+ }(ValueChecker);
262
+ var NumberArrayValueChecker = /*#__PURE__*/ function(ValueChecker) {
263
+ "use strict";
264
+ _inherits(NumberArrayValueChecker, ValueChecker);
265
+ function NumberArrayValueChecker() {
266
+ _class_call_check(this, NumberArrayValueChecker);
267
+ return _call_super(this, NumberArrayValueChecker, arguments);
268
+ }
269
+ _create_class(NumberArrayValueChecker, [
270
+ {
271
+ key: "validate",
272
+ value: function validate(value) {
273
+ return isNumberAndEmptyStringArray(value);
274
+ }
275
+ },
276
+ {
277
+ key: "transform",
278
+ value: function transform(value) {
279
+ if (value === undefined || value === null) {
280
+ return [];
281
+ }
282
+ function getNumberValueArray(value) {
283
+ return value.map(function(item) {
284
+ return !item && item !== 0 ? '' : Number(item);
285
+ }).filter(function(item) {
286
+ return item === '' || !Number.isNaN(item);
287
+ });
288
+ }
289
+ if (isArray(value)) {
290
+ return getNumberValueArray(value);
291
+ }
292
+ if (isString(value) && isJSONArray(value)) {
293
+ try {
294
+ var newValue = JSON.parse(value);
295
+ if (isArray(newValue)) {
296
+ return getNumberValueArray(newValue);
297
+ }
298
+ } catch (e) {}
299
+ }
300
+ var newValue1 = Number(value);
301
+ if (Number.isNaN(newValue1)) {
302
+ throw "".concat(value, " is not a number array");
303
+ }
304
+ return [
305
+ newValue1
306
+ ];
307
+ }
308
+ }
309
+ ]);
310
+ return NumberArrayValueChecker;
311
+ }(ValueChecker);
312
+ var MoneyValueChecker = /*#__PURE__*/ function(ValueChecker) {
313
+ "use strict";
314
+ _inherits(MoneyValueChecker, ValueChecker);
315
+ function MoneyValueChecker() {
316
+ _class_call_check(this, MoneyValueChecker);
317
+ return _call_super(this, MoneyValueChecker, arguments);
318
+ }
319
+ _create_class(MoneyValueChecker, [
320
+ {
321
+ key: "validate",
322
+ value: function validate(value) {
323
+ return(// value instanceof AmountValue ||
324
+ isPlainObject(value) && 'amount' in value && isNumber(value.amount) && 'currency' in value && isString(value.currency));
325
+ }
326
+ },
327
+ {
328
+ key: "transform",
329
+ value: function transform(value, oldValue) {
330
+ if (value === undefined || value === null || value === '') {
331
+ return new AmountValue({
332
+ currency: oldValue === null || oldValue === void 0 ? void 0 : oldValue.currency
333
+ });
334
+ }
335
+ var result;
336
+ if (isPlainObject(value)) {
337
+ result = new AmountValue(_object_spread({}, oldValue, value));
338
+ }
339
+ if (isString(value) && isJSONObject(value)) {
340
+ try {
341
+ var newValue = JSON.parse(value);
342
+ result = new AmountValue(_object_spread({}, oldValue, newValue));
343
+ } catch (e) {}
344
+ }
345
+ if (result) {
346
+ var numberChecker = new NumberValueChecker();
347
+ var stringChecker = new StringValueChecker();
348
+ if (!numberChecker.validate(result.amount)) {
349
+ result.amount = numberChecker.transform(result.amount);
350
+ }
351
+ if (!stringChecker.validate(result.currency)) {
352
+ result.currency = stringChecker.transform(result.currency);
353
+ }
354
+ return result;
355
+ }
356
+ throw "".concat(value, " is not a { amount: number, currency: string } object");
357
+ }
358
+ }
359
+ ]);
360
+ return MoneyValueChecker;
361
+ }(ValueChecker);
362
+ var TimeScopeValueChecker = /*#__PURE__*/ function(ValueChecker) {
363
+ "use strict";
364
+ _inherits(TimeScopeValueChecker, ValueChecker);
365
+ function TimeScopeValueChecker() {
366
+ _class_call_check(this, TimeScopeValueChecker);
367
+ return _call_super(this, TimeScopeValueChecker, arguments);
368
+ }
369
+ _create_class(TimeScopeValueChecker, [
370
+ {
371
+ key: "validate",
372
+ value: function validate(value) {
373
+ return(// value instanceof RangeDateValue ||
374
+ isPlainObject(value) && 'min' in value && isString(value.min) && 'max' in value && isString(value.max));
375
+ }
376
+ },
377
+ {
378
+ key: "transform",
379
+ value: function transform(value, oldValue) {
380
+ if (value === undefined || value === null || value === '') {
381
+ return new RangeDateValue();
382
+ }
383
+ var result;
384
+ if (isPlainObject(value)) {
385
+ result = new RangeDateValue(_object_spread({}, oldValue, value));
386
+ }
387
+ if (isString(value) && isJSONObject(value)) {
388
+ try {
389
+ var newValue = JSON.parse(value);
390
+ result = new RangeDateValue(_object_spread({}, oldValue, newValue));
391
+ } catch (e) {}
392
+ }
393
+ if (result) {
394
+ var stringChecker = new StringValueChecker();
395
+ if (!stringChecker.validate(result.min)) {
396
+ result.min = stringChecker.transform(result.min);
397
+ }
398
+ if (!stringChecker.validate(result.max)) {
399
+ result.max = stringChecker.transform(result.max);
400
+ }
401
+ return result;
402
+ }
403
+ throw "".concat(value, " is not a { min: string, max: string } object");
404
+ }
405
+ }
406
+ ]);
407
+ return TimeScopeValueChecker;
408
+ }(ValueChecker);
409
+ var CalcValueChecker = /*#__PURE__*/ function(ValueChecker) {
410
+ "use strict";
411
+ _inherits(CalcValueChecker, ValueChecker);
412
+ function CalcValueChecker() {
413
+ _class_call_check(this, CalcValueChecker);
414
+ return _call_super(this, CalcValueChecker, arguments);
415
+ }
416
+ _create_class(CalcValueChecker, [
417
+ {
418
+ key: "validate",
419
+ value: function validate(value) {
420
+ return(// value instanceof CalcValue ||
421
+ isPlainObject(value) && 'result' in value && isNumber(value.result) && 'unit' in value && isString(value.unit));
422
+ }
423
+ },
424
+ {
425
+ key: "transform",
426
+ value: function transform(value, oldValue) {
427
+ if (value === undefined || value === null || value === '') {
428
+ return new CalcValue({
429
+ unit: oldValue === null || oldValue === void 0 ? void 0 : oldValue.unit
430
+ });
431
+ }
432
+ var result;
433
+ if (isPlainObject(value)) {
434
+ result = new CalcValue(_object_spread({}, oldValue, value));
435
+ }
436
+ if (isString(value) && isJSONObject(value)) {
437
+ try {
438
+ var newValue = JSON.parse(value);
439
+ result = new CalcValue(_object_spread({}, oldValue, newValue));
440
+ } catch (e) {}
441
+ }
442
+ if (result) {
443
+ var numberChecker = new NumberValueChecker();
444
+ var stringChecker = new StringValueChecker();
445
+ if (!numberChecker.validate(result.result)) {
446
+ result.result = numberChecker.transform(result.result);
447
+ }
448
+ if (!stringChecker.validate(result.unit)) {
449
+ result.unit = stringChecker.transform(result.unit);
450
+ }
451
+ return result;
452
+ }
453
+ throw "".concat(value, " is not a { result: string, unit: string } object");
454
+ }
455
+ }
456
+ ]);
457
+ return CalcValueChecker;
458
+ }(ValueChecker);
459
+ var AddressValueChecker = /*#__PURE__*/ function(ValueChecker) {
460
+ "use strict";
461
+ _inherits(AddressValueChecker, ValueChecker);
462
+ function AddressValueChecker() {
463
+ _class_call_check(this, AddressValueChecker);
464
+ return _call_super(this, AddressValueChecker, arguments);
465
+ }
466
+ _create_class(AddressValueChecker, [
467
+ {
468
+ key: "validate",
469
+ value: function validate(value) {
470
+ // return value instanceof AddressValue
471
+ if (isPlainObject(value)) {
472
+ // city?: string;
473
+ // cityDisplay?: string;
474
+ // district?: string;
475
+ // districtDisplay?: string;
476
+ // province?: string;
477
+ // provinceDisplay?: string
478
+ return true;
479
+ } else {
480
+ return false;
481
+ }
482
+ }
483
+ },
484
+ {
485
+ key: "transform",
486
+ value: function transform(value, oldValue) {
487
+ if (value === undefined || value === null || value === '') {
488
+ return new AddressValue();
489
+ }
490
+ var result;
491
+ if (isPlainObject(value)) {
492
+ result = new AddressValue(_object_spread({}, oldValue, camelizeKeys(value)));
493
+ }
494
+ if (isString(value) && isJSONObject(value)) {
495
+ try {
496
+ var newValue = JSON.parse(value);
497
+ result = new AddressValue(_object_spread({}, oldValue, camelizeKeys(newValue)));
498
+ } catch (e) {}
499
+ }
500
+ if (result) {
501
+ var stringChecker = new StringValueChecker();
502
+ if (!stringChecker.validate(result.city)) {
503
+ result.city = stringChecker.transform(result.city);
504
+ }
505
+ if (!stringChecker.validate(result.district)) {
506
+ result.district = stringChecker.transform(result.district);
507
+ }
508
+ if (!stringChecker.validate(result.province)) {
509
+ result.province = stringChecker.transform(result.province);
510
+ }
511
+ return result;
512
+ }
513
+ throw "".concat(value, " is not a { city: string, district: string, province: string } object");
514
+ }
515
+ }
516
+ ]);
517
+ return AddressValueChecker;
518
+ }(ValueChecker);
519
+ var ValueCheckerFactory = /*#__PURE__*/ function() {
520
+ "use strict";
521
+ function ValueCheckerFactory() {
522
+ _class_call_check(this, ValueCheckerFactory);
523
+ }
524
+ _create_class(ValueCheckerFactory, null, [
525
+ {
526
+ key: "getValueChecker",
527
+ value: function getValueChecker(fieldType) {
528
+ var checker;
529
+ switch(fieldType){
530
+ case FieldTypes.VARCHAR:
531
+ case FieldTypes.TIMESTAMP:
532
+ case FieldTypes.TEXT:
533
+ // case FieldTypes.RELATION:
534
+ case FieldTypes.AUTO_NUMBER:
535
+ checker = new StringValueChecker();
536
+ break;
537
+ case FieldTypes.DECIMAL:
538
+ checker = new NumberValueChecker();
539
+ break;
540
+ case FieldTypes.EMPLOYEES:
541
+ case FieldTypes.DEPARTMENTS:
542
+ case FieldTypes.IMAGE:
543
+ case FieldTypes.FILE:
544
+ case FieldTypes.ARRAY:
545
+ checker = new StringArrayValueChecker();
546
+ break;
547
+ case FieldTypes.MONEY:
548
+ checker = new MoneyValueChecker();
549
+ break;
550
+ case FieldTypes.TIMESCOPE:
551
+ checker = new TimeScopeValueChecker();
552
+ break;
553
+ case FieldTypes.CALC:
554
+ checker = new CalcValueChecker();
555
+ break;
556
+ case FieldTypes.DECIMAL_RANGE:
557
+ checker = new NumberArrayValueChecker();
558
+ break;
559
+ case FieldTypes.ADDRESS:
560
+ checker = new AddressValueChecker();
561
+ break;
562
+ }
563
+ return checker;
564
+ }
565
+ }
566
+ ]);
567
+ return ValueCheckerFactory;
568
+ }();
569
+ function getFieldTypeFromKey(key) {
570
+ if ([
571
+ 'min',
572
+ 'max',
573
+ 'currency',
574
+ 'unit'
575
+ ].includes(key)) {
576
+ return FieldTypes.VARCHAR;
577
+ } else if ([
578
+ 'result',
579
+ 'amount'
580
+ ].includes(key)) {
581
+ return FieldTypes.DECIMAL;
582
+ }
583
+ }
584
+ export function checkerValue(fieldType, key, value, oldValue) {
585
+ var _getFieldTypeFromKey;
586
+ var getCheckerFieldType = (_getFieldTypeFromKey = getFieldTypeFromKey(key)) !== null && _getFieldTypeFromKey !== void 0 ? _getFieldTypeFromKey : fieldType;
587
+ var checker = ValueCheckerFactory.getValueChecker(getCheckerFieldType);
588
+ if (!checker || checker.validate(value)) {
589
+ return value;
590
+ }
591
+ try {
592
+ // @ts-ignore
593
+ var newValue = checker.transform(value, oldValue);
594
+ if (newValue !== undefined) {
595
+ return newValue;
596
+ }
597
+ return value;
598
+ } catch (e) {
599
+ throw "".concat(key, " ").concat(e);
600
+ }
601
+ }
602
+ export function checkerSubtableValue(fieldTypeMap, value, emptyValue) {
603
+ return Object.entries(fieldTypeMap).reduce(function(result, param) {
604
+ var _param = _sliced_to_array(param, 2), key = _param[0], fieldType = _param[1];
605
+ var nowValue = value[key];
606
+ result[key] = checkerValue(fieldType, key, nowValue, emptyValue[key]);
607
+ return result;
608
+ }, Object.assign({}, value));
609
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Engine';
2
+ export * from './Plugin';