@form-create/element-ui 3.1.2 → 3.1.3

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @form-create/element-ui v3.1.2
2
+ * @form-create/element-ui v3.1.3
3
3
  * (c) 2018-2022 xaboy
4
4
  * Github https://github.com/xaboy/form-create
5
5
  * Released under the MIT License.
@@ -799,6 +799,7 @@
799
799
  try {
800
800
  if (this.helper === true) {
801
801
  iframe['form_create_helper'] = {
802
+ api: this.formCreateInject.api,
802
803
  close: function close(field) {
803
804
  _this7.valid(field);
804
805
 
@@ -1271,9 +1272,28 @@
1271
1272
  },
1272
1273
  trueArray: function trueArray(data) {
1273
1274
  return Array.isArray(data) && data.length > 0;
1275
+ },
1276
+ Function: function Function(v) {
1277
+ var type = this.getType(v);
1278
+ return type === 'Function' || type === 'AsyncFunction';
1279
+ },
1280
+ getType: function getType(v) {
1281
+ var str = Object.prototype.toString.call(v);
1282
+ return /^\[object (.*)\]$/.exec(str)[1];
1283
+ },
1284
+ empty: function empty(value) {
1285
+ if (value === undefined || value === null) {
1286
+ return true;
1287
+ }
1288
+
1289
+ if (Array.isArray(value) && Array.isArray(value) && !value.length) {
1290
+ return true;
1291
+ }
1292
+
1293
+ return typeof value === 'string' && !value;
1274
1294
  }
1275
1295
  };
1276
- ['Date', 'Object', 'Function', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
1296
+ ['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
1277
1297
  is[t] = function (arg) {
1278
1298
  return is.type(arg, t);
1279
1299
  };
@@ -1341,6 +1361,81 @@
1341
1361
 
1342
1362
  script$1.render = render$1;
1343
1363
 
1364
+ function $set(target, field, value) {
1365
+ target[field] = value;
1366
+ }
1367
+ function $del(target, field) {
1368
+ delete target[field];
1369
+ }
1370
+
1371
+ function deepExtend(origin) {
1372
+ var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1373
+ var mode = arguments.length > 2 ? arguments[2] : undefined;
1374
+ var isArr = false;
1375
+
1376
+ for (var key in target) {
1377
+ if (Object.prototype.hasOwnProperty.call(target, key)) {
1378
+ var clone = target[key];
1379
+
1380
+ if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
1381
+ var nst = origin[key] === undefined;
1382
+
1383
+ if (isArr) {
1384
+ isArr = false;
1385
+ nst && $set(origin, key, []);
1386
+ } else if (clone._clone && mode !== undefined) {
1387
+ if (mode) {
1388
+ clone = clone.getRule();
1389
+ nst && $set(origin, key, {});
1390
+ } else {
1391
+ $set(origin, key, clone._clone());
1392
+ continue;
1393
+ }
1394
+ } else {
1395
+ nst && $set(origin, key, {});
1396
+ }
1397
+
1398
+ origin[key] = deepExtend(origin[key], clone, mode);
1399
+ } else {
1400
+ $set(origin, key, clone);
1401
+
1402
+ if (!is.Undef(clone)) {
1403
+ if (!is.Undef(clone.__json)) {
1404
+ origin[key].__json = clone.__json;
1405
+ }
1406
+
1407
+ if (!is.Undef(clone.__origin)) {
1408
+ origin[key].__origin = clone.__origin;
1409
+ }
1410
+ }
1411
+ }
1412
+ }
1413
+ }
1414
+
1415
+ return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
1416
+ return !v || !v.__ctrl;
1417
+ }) : origin;
1418
+ }
1419
+ function deepCopy(value) {
1420
+ return deepExtend({}, {
1421
+ value: value
1422
+ }).value;
1423
+ }
1424
+
1425
+ var _extends = Object.assign || function (a) {
1426
+ for (var b, c = 1; c < arguments.length; c++) {
1427
+ for (var d in b = arguments[c], b) {
1428
+ Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1429
+ }
1430
+ }
1431
+
1432
+ return a;
1433
+ };
1434
+
1435
+ function extend() {
1436
+ return _extends.apply(this, arguments);
1437
+ }
1438
+
1344
1439
  function _isSlot(s) {
1345
1440
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
1346
1441
  }
@@ -1371,6 +1466,7 @@
1371
1466
  return [];
1372
1467
  }
1373
1468
  },
1469
+ defaultValue: Object,
1374
1470
  disabled: {
1375
1471
  type: Boolean,
1376
1472
  "default": false
@@ -1507,6 +1603,13 @@
1507
1603
  submitBtn: false,
1508
1604
  resetBtn: false
1509
1605
  };
1606
+
1607
+ if (this.defaultValue) {
1608
+ if (!options.formData) options.formData = {};
1609
+ var defVal = deepCopy(this.defaultValue);
1610
+ extend(options.formData, this.field ? _defineProperty({}, this.field, defVal) : defVal);
1611
+ }
1612
+
1510
1613
  this.cacheRule[++this.len] = {
1511
1614
  rule: rule,
1512
1615
  options: options
@@ -1523,6 +1626,7 @@
1523
1626
 
1524
1627
  this.cacheRule[key].$f = $f;
1525
1628
  this.subForm();
1629
+ this.formData(key, $f.formData());
1526
1630
  vue.nextTick(function () {
1527
1631
  if (_this4.syncDisabled) {
1528
1632
  $f.disabled(_this4.disabled);
@@ -1929,27 +2033,6 @@
1929
2033
  });
1930
2034
  }
1931
2035
 
1932
- function $set(target, field, value) {
1933
- target[field] = value;
1934
- }
1935
- function $del(target, field) {
1936
- delete target[field];
1937
- }
1938
-
1939
- var _extends = Object.assign || function (a) {
1940
- for (var b, c = 1; c < arguments.length; c++) {
1941
- for (var d in b = arguments[c], b) {
1942
- Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1943
- }
1944
- }
1945
-
1946
- return a;
1947
- };
1948
-
1949
- function extend() {
1950
- return _extends.apply(this, arguments);
1951
- }
1952
-
1953
2036
  var normalMerge = ['props'];
1954
2037
  var toArrayMerge = ['class', 'style', 'directives'];
1955
2038
  var functionalMerge = ['on'];
@@ -2019,67 +2102,13 @@
2019
2102
  };
2020
2103
  };
2021
2104
 
2022
- var keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key'];
2105
+ var keyAttrs = ['type', 'slot', 'emitPrefix', 'value', 'name', 'native', 'hidden', 'display', 'inject', 'options', 'emit', 'link', 'prefix', 'suffix', 'update', 'sync', 'optionsTo', 'key', 'slotUpdate'];
2023
2106
  var arrayAttrs = ['validate', 'children', 'control'];
2024
2107
  var normalAttrs = ['effect'];
2025
2108
  function attrs() {
2026
2109
  return [].concat(keyAttrs, _toConsumableArray(normalMerge), _toConsumableArray(toArrayMerge), _toConsumableArray(functionalMerge), arrayAttrs, normalAttrs);
2027
2110
  }
2028
2111
 
2029
- function deepExtend(origin) {
2030
- var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2031
- var mode = arguments.length > 2 ? arguments[2] : undefined;
2032
- var isArr = false;
2033
-
2034
- for (var key in target) {
2035
- if (Object.prototype.hasOwnProperty.call(target, key)) {
2036
- var clone = target[key];
2037
-
2038
- if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
2039
- var nst = origin[key] === undefined;
2040
-
2041
- if (isArr) {
2042
- isArr = false;
2043
- nst && $set(origin, key, []);
2044
- } else if (clone._clone && mode !== undefined) {
2045
- if (mode) {
2046
- clone = clone.getRule();
2047
- nst && $set(origin, key, {});
2048
- } else {
2049
- $set(origin, key, clone._clone());
2050
- continue;
2051
- }
2052
- } else {
2053
- nst && $set(origin, key, {});
2054
- }
2055
-
2056
- origin[key] = deepExtend(origin[key], clone, mode);
2057
- } else {
2058
- $set(origin, key, clone);
2059
-
2060
- if (!is.Undef(clone)) {
2061
- if (!is.Undef(clone.__json)) {
2062
- origin[key].__json = clone.__json;
2063
- }
2064
-
2065
- if (!is.Undef(clone.__origin)) {
2066
- origin[key].__origin = clone.__origin;
2067
- }
2068
- }
2069
- }
2070
- }
2071
- }
2072
-
2073
- return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
2074
- return !v || !v.__ctrl;
2075
- }) : origin;
2076
- }
2077
- function deepCopy(value) {
2078
- return deepExtend({}, {
2079
- value: value
2080
- }).value;
2081
- }
2082
-
2083
2112
  function format(type, msg, rule) {
2084
2113
  return "[form-create ".concat(type, "]: ").concat(msg) + (rule ? '\n\nrule: ' + JSON.stringify(rule.getRule ? rule.getRule() : rule) : '');
2085
2114
  }
@@ -2237,14 +2266,14 @@
2237
2266
  if (!slotBag[slot]) slotBag[slot] = [];
2238
2267
  slotBag[slot].push(vnFn);
2239
2268
  },
2240
- getSlot: function getSlot(slot) {
2269
+ getSlot: function getSlot(slot, val) {
2241
2270
  slot = slotName(slot);
2242
2271
  var children = [];
2243
2272
  (slotBag[slot] || []).forEach(function (fn) {
2244
2273
  if (Array.isArray(fn)) {
2245
2274
  children.push.apply(children, _toConsumableArray(fn));
2246
2275
  } else if (is.Function(fn)) {
2247
- var res = fn();
2276
+ var res = fn.apply(void 0, _toConsumableArray(val || []));
2248
2277
 
2249
2278
  if (Array.isArray(res)) {
2250
2279
  children.push.apply(children, _toConsumableArray(res));
@@ -2263,7 +2292,11 @@
2263
2292
  var slots = {};
2264
2293
  Object.keys(slotBag).forEach(function (k) {
2265
2294
  slots[k] = function () {
2266
- return _this.getSlot(k);
2295
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
2296
+ args[_key] = arguments[_key];
2297
+ }
2298
+
2299
+ return _this.getSlot(k, args);
2267
2300
  };
2268
2301
  });
2269
2302
  return slots;
@@ -2989,6 +3022,25 @@
2989
3022
  }
2990
3023
 
2991
3024
  vn = function vn() {
3025
+ for (var _len = arguments.length, slotValue = new Array(_len), _key = 0; _key < _len; _key++) {
3026
+ slotValue[_key] = arguments[_key];
3027
+ }
3028
+
3029
+ var inject = {
3030
+ rule: rule,
3031
+ prop: prop,
3032
+ preview: preview,
3033
+ api: _this4.$handle.api,
3034
+ model: prop.model || {},
3035
+ slotValue: slotValue
3036
+ };
3037
+
3038
+ if (slotValue.length && rule.slotUpdate) {
3039
+ invoke(function () {
3040
+ return rule.slotUpdate(inject);
3041
+ });
3042
+ }
3043
+
2992
3044
  var children = {};
2993
3045
 
2994
3046
  var _load = ctx.loadChildrenPending();
@@ -3004,14 +3056,8 @@
3004
3056
  var _vn;
3005
3057
 
3006
3058
  if (slot) {
3007
- _vn = slot({
3008
- rule: rule,
3009
- prop: prop,
3010
- preview: preview,
3011
- children: children,
3012
- api: _this4.$handle.api,
3013
- model: prop.model || {}
3014
- });
3059
+ inject.children = children;
3060
+ _vn = slot(inject);
3015
3061
  } else {
3016
3062
  _vn = preview ? ctx.parser.preview(children, ctx) : ctx.parser.render(children, ctx);
3017
3063
  }
@@ -3129,12 +3175,17 @@
3129
3175
 
3130
3176
  if (!custom && ctx.input) {
3131
3177
  var field = this.getModelField(ctx);
3132
- props.push({
3133
- on: _defineProperty({}, "update:".concat(field), function update(value) {
3178
+ var model = {
3179
+ callback: function callback(value) {
3134
3180
  _this7.onInput(ctx, value);
3135
- }),
3136
- props: _defineProperty({}, field, this.$handle.getFormData(ctx))
3181
+ },
3182
+ value: this.$handle.getFormData(ctx)
3183
+ };
3184
+ props.push({
3185
+ on: _defineProperty({}, "update:".concat(field), model.callback),
3186
+ props: _defineProperty({}, field, model.value)
3137
3187
  });
3188
+ ctx.prop.model = model;
3138
3189
  }
3139
3190
 
3140
3191
  mergeProps(props, ctx.prop);
@@ -4368,10 +4419,10 @@
4368
4419
  watchCtx: function watchCtx(ctx) {
4369
4420
  var _this = this;
4370
4421
 
4371
- var none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update'];
4422
+ var none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update', 'slotUpdate'];
4372
4423
  var all = attrs();
4373
4424
  all.filter(function (k) {
4374
- return k[0] !== '_' && none.indexOf(k) === -1;
4425
+ return k[0] !== '_' && k[0] !== '$' && none.indexOf(k) === -1;
4375
4426
  }).forEach(function (key) {
4376
4427
  var ref = vue.toRef(ctx.rule, key);
4377
4428
  var flag = key === 'children';
@@ -4576,10 +4627,21 @@
4576
4627
  watchEffect: function watchEffect(ctx) {
4577
4628
  var _this3 = this;
4578
4629
 
4630
+ var effect = {};
4579
4631
  Object.keys(ctx.rule.effect || {}).forEach(function (k) {
4580
- ctx.watch.push(vue.watch(function () {
4632
+ effect[k] = function () {
4581
4633
  return ctx.rule.effect[k];
4582
- }, function (n) {
4634
+ };
4635
+ });
4636
+ Object.keys(ctx.rule).forEach(function (k) {
4637
+ if (k[0] === '$') {
4638
+ effect[k.substr(1)] = function () {
4639
+ return ctx.rule[k];
4640
+ };
4641
+ }
4642
+ });
4643
+ Object.keys(effect).forEach(function (k) {
4644
+ ctx.watch.push(vue.watch(effect[k], function (n) {
4583
4645
  _this3.effect(ctx, 'watch', _defineProperty({}, k, n));
4584
4646
  }, {
4585
4647
  deep: true
@@ -4603,7 +4665,12 @@
4603
4665
  }, event);
4604
4666
  },
4605
4667
  getEffect: function getEffect(rule, name) {
4606
- if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];else return undefined;
4668
+ if (hasProperty(rule, '$' + name)) {
4669
+ return rule['$' + name];
4670
+ }
4671
+
4672
+ if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];
4673
+ return undefined;
4607
4674
  },
4608
4675
  emitEffect: function emitEffect(_ref, event, append) {
4609
4676
  var _this4 = this;
@@ -4614,7 +4681,13 @@
4614
4681
  type = _ref.type,
4615
4682
  custom = _ref.custom;
4616
4683
  if (!type || ['fcFragment', 'fragment'].indexOf(type) > -1) return;
4617
- var effect = custom ? custom : rule.effect || {};
4684
+ var effect = custom ? custom : Object.keys(rule).reduce(function (i, k) {
4685
+ if (k[0] === '$') {
4686
+ i[k.substr(1)] = rule[k];
4687
+ }
4688
+
4689
+ return i;
4690
+ }, _objectSpread2({}, rule.effect || {}));
4618
4691
  Object.keys(effect).forEach(function (attr) {
4619
4692
  var p = _this4.providers[attr];
4620
4693
  if (!p || p.input && !input) return;
@@ -4979,6 +5052,44 @@
4979
5052
  }
4980
5053
  }
4981
5054
  };
5055
+ var $required = {
5056
+ name: 'required',
5057
+ load: function load(inject, rule) {
5058
+ var val = parseVa(inject.getValue());
5059
+
5060
+ var validate = _objectSpread2(_objectSpread2({}, val), {}, {
5061
+ required: true,
5062
+ validator: function validator(_, v) {
5063
+ return new Promise(function (resolve, reject) {
5064
+ is.empty(v) ? reject(validate.message) : resolve();
5065
+ });
5066
+ }
5067
+ });
5068
+
5069
+ if (!validate.message) {
5070
+ validate.message = rule.title + ' is required';
5071
+ }
5072
+
5073
+ inject.getProp().validate = [validate];
5074
+ },
5075
+ watch: function watch() {
5076
+ $required.load.apply($required, arguments);
5077
+ }
5078
+ };
5079
+
5080
+ function parseVa(val) {
5081
+ if (is.Boolean(val)) {
5082
+ return {};
5083
+ } else if (is.String(val)) {
5084
+ return {
5085
+ message: val
5086
+ };
5087
+ } else if (!is.Object(val)) {
5088
+ return {};
5089
+ } else {
5090
+ return val;
5091
+ }
5092
+ }
4982
5093
 
4983
5094
  function parseOpt(option) {
4984
5095
  if (is.String(option)) {
@@ -5049,6 +5160,11 @@
5049
5160
  return true;
5050
5161
  }
5051
5162
 
5163
+ var $provider = {
5164
+ fetch: $fetch,
5165
+ required: $required
5166
+ };
5167
+
5052
5168
  var name$6 = 'html';
5053
5169
  var html = {
5054
5170
  name: name$6,
@@ -5108,9 +5224,9 @@
5108
5224
  var directives = {};
5109
5225
  var modelFields = {};
5110
5226
  var useApps = [];
5111
- var providers = {
5112
- fetch: $fetch
5113
- };
5227
+
5228
+ var providers = _objectSpread2({}, $provider);
5229
+
5114
5230
  var maker = makerFactory();
5115
5231
  var globalConfig = {
5116
5232
  global: {}
@@ -5217,8 +5333,25 @@
5217
5333
  return vm.$refs.fc.fapi;
5218
5334
  }
5219
5335
 
5220
- function factory() {
5221
- return FormCreateFactory(config);
5336
+ function factory(inherit) {
5337
+ var _config = _objectSpread2({}, config);
5338
+
5339
+ if (inherit) {
5340
+ _config.inherit = {
5341
+ components: components,
5342
+ parsers: parsers,
5343
+ directives: directives,
5344
+ modelFields: modelFields,
5345
+ providers: providers,
5346
+ useApps: useApps,
5347
+ maker: maker,
5348
+ data: data
5349
+ };
5350
+ } else {
5351
+ delete _config.inherit;
5352
+ }
5353
+
5354
+ return FormCreateFactory(_config);
5222
5355
  }
5223
5356
 
5224
5357
  function setModelField(name, field) {
@@ -5411,6 +5544,19 @@
5411
5544
  });
5412
5545
  });
5413
5546
  parser(html);
5547
+
5548
+ if (config.inherit) {
5549
+ var inherit = config.inherit;
5550
+ inherit.components && extend(components, inherit.components);
5551
+ inherit.parsers && extend(parsers, inherit.parsers);
5552
+ inherit.directives && extend(directives, inherit.directives);
5553
+ inherit.modelFields && extend(modelFields, inherit.modelFields);
5554
+ inherit.providers && extend(providers, inherit.providers);
5555
+ inherit.useApps && extend(useApps, inherit.useApps);
5556
+ inherit.maker && extend(maker, inherit.maker);
5557
+ inherit.data && extend(data, inherit.data);
5558
+ }
5559
+
5414
5560
  return create;
5415
5561
  }
5416
5562
 
@@ -6194,7 +6340,7 @@
6194
6340
  function elmFormCreate() {
6195
6341
  return FormCreateFactory({
6196
6342
  ui: 'element-ui',
6197
- version: '3.1.2',
6343
+ version: '3.1.3',
6198
6344
  manager: manager,
6199
6345
  extendApi: extendApi,
6200
6346
  install: install,