@form-create/iview 2.5.16 → 2.5.19

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,6 +1,6 @@
1
1
  /*!
2
- * @form-create/iview v2.5.16
3
- * (c) 2018-2021 xaboy
2
+ * @form-create/iview v2.5.19
3
+ * (c) 2018-2022 xaboy
4
4
  * Github https://github.com/xaboy/form-create
5
5
  * Released under the MIT License.
6
6
  */
@@ -401,8 +401,8 @@
401
401
  "default": 500
402
402
  },
403
403
  height: {
404
- type: [Number, String],
405
- "default": 370
404
+ type: String,
405
+ "default": '370px'
406
406
  },
407
407
  maxLength: {
408
408
  type: Number,
@@ -686,6 +686,7 @@
686
686
  try {
687
687
  if (this.helper === true) {
688
688
  iframe['form_create_helper'] = {
689
+ api: this.formCreateInject.api,
689
690
  close: function close(field) {
690
691
  _this7.valid(field);
691
692
 
@@ -778,17 +779,14 @@
778
779
  }
779
780
  }
780
781
  }, [h("img", {
782
+ "style": "width: 100%",
781
783
  "attrs": {
782
- "alt": "example",
783
784
  "src": this.previewImage
784
- },
785
- "style": "width: 100%"
786
- })]), h("Modal", helper([{}, {
787
- "props": _objectSpread2({
788
- width: width,
789
- title: title
790
- }, this.modal)
791
- }, {
785
+ }
786
+ })]), h("Modal", helper([{}, _objectSpread2({
787
+ width: width,
788
+ title: title
789
+ }, this.modal), {
792
790
  "on": {
793
791
  "on-cancel": function onCancel() {
794
792
  return _this9.closeModel(true);
@@ -914,9 +912,28 @@
914
912
  },
915
913
  trueArray: function trueArray(data) {
916
914
  return Array.isArray(data) && data.length > 0;
915
+ },
916
+ Function: function Function(v) {
917
+ var type = this.getType(v);
918
+ return type === 'Function' || type === 'AsyncFunction';
919
+ },
920
+ getType: function getType(v) {
921
+ var str = Object.prototype.toString.call(v);
922
+ return /^\[object (.*)\]$/.exec(str)[1];
923
+ },
924
+ empty: function empty(value) {
925
+ if (value === undefined || value === null) {
926
+ return true;
927
+ }
928
+
929
+ if (Array.isArray(value) && Array.isArray(value) && !value.length) {
930
+ return true;
931
+ }
932
+
933
+ return typeof value === 'string' && !value;
917
934
  }
918
935
  };
919
- ['Date', 'Object', 'Function', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
936
+ ['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
920
937
  is[t] = function (arg) {
921
938
  return is.type(arg, t);
922
939
  };
@@ -1289,6 +1306,81 @@
1289
1306
  imgUpIcon: 'image'
1290
1307
  });
1291
1308
 
1309
+ function $set(target, field, value) {
1310
+ Vue.set(target, field, value);
1311
+ }
1312
+ function $del(target, field) {
1313
+ Vue["delete"](target, field);
1314
+ }
1315
+
1316
+ function deepExtend(origin) {
1317
+ var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1318
+ var mode = arguments.length > 2 ? arguments[2] : undefined;
1319
+ var isArr = false;
1320
+
1321
+ for (var key in target) {
1322
+ if (Object.prototype.hasOwnProperty.call(target, key)) {
1323
+ var clone = target[key];
1324
+
1325
+ if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
1326
+ var nst = origin[key] === undefined;
1327
+
1328
+ if (isArr) {
1329
+ isArr = false;
1330
+ nst && $set(origin, key, []);
1331
+ } else if (clone._clone && mode !== undefined) {
1332
+ if (mode) {
1333
+ clone = clone.getRule();
1334
+ nst && $set(origin, key, {});
1335
+ } else {
1336
+ $set(origin, key, clone._clone());
1337
+ continue;
1338
+ }
1339
+ } else {
1340
+ nst && $set(origin, key, {});
1341
+ }
1342
+
1343
+ origin[key] = deepExtend(origin[key], clone, mode);
1344
+ } else {
1345
+ $set(origin, key, clone);
1346
+
1347
+ if (!is.Undef(clone)) {
1348
+ if (!is.Undef(clone.__json)) {
1349
+ origin[key].__json = clone.__json;
1350
+ }
1351
+
1352
+ if (!is.Undef(clone.__origin)) {
1353
+ origin[key].__origin = clone.__origin;
1354
+ }
1355
+ }
1356
+ }
1357
+ }
1358
+ }
1359
+
1360
+ return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
1361
+ return !v || !v.__ctrl;
1362
+ }) : origin;
1363
+ }
1364
+ function deepCopy(value) {
1365
+ return deepExtend({}, {
1366
+ value: value
1367
+ }).value;
1368
+ }
1369
+
1370
+ var _extends$1 = Object.assign || function (a) {
1371
+ for (var b, c = 1; c < arguments.length; c++) {
1372
+ for (var d in b = arguments[c], b) {
1373
+ Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1374
+ }
1375
+ }
1376
+
1377
+ return a;
1378
+ };
1379
+
1380
+ function extend() {
1381
+ return _extends$1.apply(this, arguments);
1382
+ }
1383
+
1292
1384
  var NAME$6 = 'fcGroup';
1293
1385
  function createGroup(config) {
1294
1386
  return {
@@ -1321,6 +1413,7 @@
1321
1413
  return [];
1322
1414
  }
1323
1415
  },
1416
+ defaultValue: Object,
1324
1417
  disabled: {
1325
1418
  type: Boolean,
1326
1419
  "default": false
@@ -1466,7 +1559,13 @@
1466
1559
  submitBtn: false,
1467
1560
  resetBtn: false
1468
1561
  };
1469
- options.formData = this.field ? _defineProperty({}, this.field, this._value(this.value[i])) : this.value[i] || {};
1562
+
1563
+ if (this.defaultValue) {
1564
+ if (!options.formData) options.formData = {};
1565
+ var defVal = deepCopy(this.defaultValue);
1566
+ extend(options.formData, this.field ? _defineProperty({}, this.field, defVal) : defVal);
1567
+ }
1568
+
1470
1569
  this.$set(this.cacheRule, ++this.len, {
1471
1570
  rule: rule,
1472
1571
  options: options
@@ -1483,6 +1582,7 @@
1483
1582
 
1484
1583
  this.cacheRule[key].$f = $f;
1485
1584
  this.subForm();
1585
+ this.formData(key, $f.formData());
1486
1586
  this.$nextTick(function () {
1487
1587
  if (_this4.syncDisabled) {
1488
1588
  $f.disabled(_this4.disabled);
@@ -1659,6 +1759,7 @@
1659
1759
  }
1660
1760
  }, {
1661
1761
  "attrs": {
1762
+ "value": _this9.field ? _defineProperty({}, _this9.field, _this9._value(_this9.value[index])) : _this9.value[index],
1662
1763
  "rule": rule,
1663
1764
  "option": options,
1664
1765
  "extendOption": true
@@ -1801,27 +1902,6 @@
1801
1902
 
1802
1903
  var components = [Checkbox, Radio, Select, Tree, Sub, frame, upload, group];
1803
1904
 
1804
- function $set(target, field, value) {
1805
- Vue.set(target, field, value);
1806
- }
1807
- function $del(target, field) {
1808
- Vue["delete"](target, field);
1809
- }
1810
-
1811
- var _extends$1 = Object.assign || function (a) {
1812
- for (var b, c = 1; c < arguments.length; c++) {
1813
- for (var d in b = arguments[c], b) {
1814
- Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1815
- }
1816
- }
1817
-
1818
- return a;
1819
- };
1820
-
1821
- function extend() {
1822
- return _extends$1.apply(this, arguments);
1823
- }
1824
-
1825
1905
  var NAME$8 = 'FormCreate';
1826
1906
  function $FormCreate(FormCreate) {
1827
1907
  return {
@@ -1853,7 +1933,8 @@
1853
1933
  },
1854
1934
  extendOption: Boolean,
1855
1935
  value: Object,
1856
- api: Object
1936
+ api: Object,
1937
+ name: String
1857
1938
  },
1858
1939
  data: function data() {
1859
1940
  return {
@@ -2015,60 +2096,6 @@
2015
2096
  console.error(e);
2016
2097
  }
2017
2098
 
2018
- function deepExtend(origin) {
2019
- var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2020
- var mode = arguments.length > 2 ? arguments[2] : undefined;
2021
- var isArr = false;
2022
-
2023
- for (var key in target) {
2024
- if (Object.prototype.hasOwnProperty.call(target, key)) {
2025
- var clone = target[key];
2026
-
2027
- if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
2028
- var nst = origin[key] === undefined;
2029
-
2030
- if (isArr) {
2031
- isArr = false;
2032
- nst && $set(origin, key, []);
2033
- } else if (clone._clone && mode !== undefined) {
2034
- if (mode) {
2035
- clone = clone.getRule();
2036
- nst && $set(origin, key, {});
2037
- } else {
2038
- $set(origin, key, clone._clone());
2039
- continue;
2040
- }
2041
- } else {
2042
- nst && $set(origin, key, {});
2043
- }
2044
-
2045
- origin[key] = deepExtend(origin[key], clone, mode);
2046
- } else {
2047
- $set(origin, key, clone);
2048
-
2049
- if (!is.Undef(clone)) {
2050
- if (clone.__json !== undefined) {
2051
- origin[key].__json = clone.__json;
2052
- }
2053
-
2054
- if (clone.__origin !== undefined) {
2055
- origin[key].__origin = clone.__origin;
2056
- }
2057
- }
2058
- }
2059
- }
2060
- }
2061
-
2062
- return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
2063
- return !v || !v.__ctrl;
2064
- }) : origin;
2065
- }
2066
- function deepCopy(value) {
2067
- return deepExtend({}, {
2068
- value: value
2069
- }).value;
2070
- }
2071
-
2072
2099
  var PREFIX = '[[FORM-CREATE-PREFIX-';
2073
2100
  var SUFFIX = '-FORM-CREATE-SUFFIX]]';
2074
2101
  var $T = '$FN:';
@@ -2082,7 +2109,7 @@
2082
2109
  return val;
2083
2110
  }
2084
2111
 
2085
- if (hasProperty(val, '__json')) {
2112
+ if (val.__json) {
2086
2113
  return val.__json;
2087
2114
  }
2088
2115
 
@@ -2193,39 +2220,6 @@
2193
2220
  return def;
2194
2221
  }
2195
2222
 
2196
- function toString$1(val) {
2197
- return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
2198
- }
2199
-
2200
- function toLine(name) {
2201
- var line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();
2202
- if (line.indexOf('-') === 0) line = line.substr(1);
2203
- return line;
2204
- }
2205
-
2206
- var id = 0;
2207
- function uniqueId() {
2208
- return Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now()).concat(++id)).toString(36);
2209
- }
2210
-
2211
- function deepSet(data, idx, val) {
2212
- var _data = data,
2213
- to;
2214
- (idx || '').split('.').forEach(function (v) {
2215
- if (to) {
2216
- if (!_data[to] || _typeof(_data[to]) != 'object') {
2217
- _data[to] = {};
2218
- }
2219
-
2220
- _data = _data[to];
2221
- }
2222
-
2223
- to = v;
2224
- });
2225
- _data[to] = val;
2226
- return _data;
2227
- }
2228
-
2229
2223
  function baseRule() {
2230
2224
  return {
2231
2225
  props: {},
@@ -2475,7 +2469,7 @@
2475
2469
  disabled: function disabled(_disabled, fields) {
2476
2470
  tidyFields(fields).forEach(function (field) {
2477
2471
  h.getCtxs(field).forEach(function (ctx) {
2478
- $set(ctx.rule.props, 'disabled', !!_disabled);
2472
+ ctx.rule.props && $set(ctx.rule.props, 'disabled', !!_disabled);
2479
2473
  });
2480
2474
  });
2481
2475
  h.refresh();
@@ -2747,6 +2741,39 @@
2747
2741
  return str.replace(str[0], str[0].toLowerCase());
2748
2742
  }
2749
2743
 
2744
+ function toString$1(val) {
2745
+ return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
2746
+ }
2747
+
2748
+ function toLine(name) {
2749
+ var line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();
2750
+ if (line.indexOf('-') === 0) line = line.substr(1);
2751
+ return line;
2752
+ }
2753
+
2754
+ var id = 0;
2755
+ function uniqueId() {
2756
+ return Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now()).concat(++id)).toString(36);
2757
+ }
2758
+
2759
+ function deepSet(data, idx, val) {
2760
+ var _data = data,
2761
+ to;
2762
+ (idx || '').split('.').forEach(function (v) {
2763
+ if (to) {
2764
+ if (!_data[to] || _typeof(_data[to]) != 'object') {
2765
+ _data[to] = {};
2766
+ }
2767
+
2768
+ _data = _data[to];
2769
+ }
2770
+
2771
+ to = v;
2772
+ });
2773
+ _data[to] = val;
2774
+ return _data;
2775
+ }
2776
+
2750
2777
  function useRender(Render) {
2751
2778
  extend(Render.prototype, {
2752
2779
  initRender: function initRender() {
@@ -2767,6 +2794,23 @@
2767
2794
  clearOrgChildren: function clearOrgChildren() {
2768
2795
  this.orgChildren = {};
2769
2796
  },
2797
+ getTypeSlot: function getTypeSlot(type) {
2798
+ var name = 'type-' + toLine(type);
2799
+
2800
+ var _fn = function _fn(vm) {
2801
+ if (vm) {
2802
+ var slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];
2803
+
2804
+ if (slot) {
2805
+ return slot;
2806
+ }
2807
+
2808
+ return _fn(vm.$pfc);
2809
+ }
2810
+ };
2811
+
2812
+ return _fn(this.vm);
2813
+ },
2770
2814
  render: function render() {
2771
2815
  var _this = this;
2772
2816
 
@@ -2962,10 +3006,10 @@
2962
3006
  children = this.renderChildren(ctx);
2963
3007
  }
2964
3008
 
2965
- var slot = 'type-' + toLine(ctx.type);
3009
+ var slot = this.getTypeSlot(ctx.type);
2966
3010
 
2967
- if (this.vm.$scopedSlots[slot]) {
2968
- vn = this.vm.$scopedSlots[slot]({
3011
+ if (slot) {
3012
+ vn = slot({
2969
3013
  rule: rule,
2970
3014
  prop: prop,
2971
3015
  preview: preview,
@@ -3092,15 +3136,13 @@
3092
3136
  }];
3093
3137
 
3094
3138
  if (!custom && ctx.input) {
3095
- props.push({
3096
- model: {
3097
- value: this.$handle.getFormData(ctx),
3098
- callback: function callback(value) {
3099
- _this8.onInput(ctx, value);
3100
- },
3101
- expression: "formData.".concat(ctx.id)
3102
- }
3103
- });
3139
+ ctx.prop.model = {
3140
+ value: this.$handle.getFormData(ctx),
3141
+ callback: function callback(value) {
3142
+ _this8.onInput(ctx, value);
3143
+ },
3144
+ expression: "formData.".concat(ctx.id)
3145
+ };
3104
3146
  }
3105
3147
 
3106
3148
  mergeProps(props, ctx.prop);
@@ -4019,7 +4061,7 @@
4019
4061
  this.setFormData(ctx, formValue);
4020
4062
  this.syncValue();
4021
4063
  this.valueChange(ctx, value);
4022
- this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag);
4064
+ this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);
4023
4065
  this.effect(ctx, 'value');
4024
4066
  },
4025
4067
  onInput: function onInput(ctx, value) {
@@ -4030,7 +4072,7 @@
4030
4072
  }
4031
4073
  },
4032
4074
  setFormData: function setFormData(ctx, value) {
4033
- $set(this.formData, ctx.id, value);
4075
+ $set(this.formData, ctx.id, value === null ? undefined : value);
4034
4076
  },
4035
4077
  getFormData: function getFormData(ctx) {
4036
4078
  return this.formData[ctx.id];
@@ -4284,7 +4326,7 @@
4284
4326
  var vm = this.vm;
4285
4327
  var none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update'];
4286
4328
  Object.keys(ctx.rule).filter(function (k) {
4287
- return none.indexOf(k) === -1;
4329
+ return k[0] !== '_' && k[0] !== '$' && none.indexOf(k) === -1;
4288
4330
  }).forEach(function (key) {
4289
4331
  var flag = key === 'children';
4290
4332
  ctx.watch.push(vm.$watch(function () {
@@ -4469,10 +4511,21 @@
4469
4511
  var _this3 = this;
4470
4512
 
4471
4513
  var vm = this.vm;
4514
+ var effect = {};
4472
4515
  Object.keys(ctx.rule.effect || {}).forEach(function (k) {
4473
- ctx.watch.push(vm.$watch(function () {
4516
+ effect[k] = function () {
4474
4517
  return ctx.rule.effect[k];
4475
- }, function (n) {
4518
+ };
4519
+ });
4520
+ Object.keys(ctx.rule).forEach(function (k) {
4521
+ if (k[0] === '$') {
4522
+ effect[k.substr(1)] = function () {
4523
+ return ctx.rule[k];
4524
+ };
4525
+ }
4526
+ });
4527
+ Object.keys(effect || {}).forEach(function (k) {
4528
+ ctx.watch.push(vm.$watch(effect[k], function (n) {
4476
4529
  _this3.effect(ctx, 'watch', _defineProperty({}, k, n));
4477
4530
  }, {
4478
4531
  deep: true
@@ -4496,7 +4549,12 @@
4496
4549
  }, event);
4497
4550
  },
4498
4551
  getEffect: function getEffect(rule, name) {
4499
- if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];else return undefined;
4552
+ if (hasProperty(rule, '$' + name)) {
4553
+ return rule['$' + name];
4554
+ }
4555
+
4556
+ if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];
4557
+ return undefined;
4500
4558
  },
4501
4559
  emitEffect: function emitEffect(_ref, event, append) {
4502
4560
  var _this4 = this;
@@ -4507,7 +4565,13 @@
4507
4565
  type = _ref.type,
4508
4566
  custom = _ref.custom;
4509
4567
  if (!type || type === 'fcFragment') return;
4510
- var effect = custom ? custom : rule.effect || {};
4568
+ var effect = custom ? custom : Object.keys(rule).reduce(function (i, k) {
4569
+ if (k[0] === '$') {
4570
+ i[k.substr(1)] = rule[k];
4571
+ }
4572
+
4573
+ return i;
4574
+ }, _objectSpread2({}, rule.effect || {}));
4511
4575
  Object.keys(effect).forEach(function (attr) {
4512
4576
  var p = _this4.providers[attr];
4513
4577
  if (!p || p.input && !input) return;
@@ -4851,6 +4915,50 @@
4851
4915
  }
4852
4916
  }
4853
4917
  };
4918
+ var $required = {
4919
+ name: 'required',
4920
+ load: function load(inject, rule, api) {
4921
+ var val = parseVa(inject.getValue());
4922
+
4923
+ if (val.required === false) {
4924
+ inject.clearProp();
4925
+ } else {
4926
+ var validate = _objectSpread2(_objectSpread2({}, val), {}, {
4927
+ required: true,
4928
+ validator: function validator(_, v, call) {
4929
+ is.empty(v) ? call(validate.message) : call();
4930
+ }
4931
+ });
4932
+
4933
+ if (!validate.message) {
4934
+ validate.message = rule.title + ' is required';
4935
+ }
4936
+
4937
+ inject.getProp().validate = [validate];
4938
+ }
4939
+
4940
+ api.sync(rule);
4941
+ },
4942
+ watch: function watch() {
4943
+ $required.load.apply($required, arguments);
4944
+ }
4945
+ };
4946
+
4947
+ function parseVa(val) {
4948
+ if (is.Boolean(val)) {
4949
+ return {
4950
+ required: val
4951
+ };
4952
+ } else if (is.String(val)) {
4953
+ return {
4954
+ message: val
4955
+ };
4956
+ } else if (!is.Object(val)) {
4957
+ return {};
4958
+ } else {
4959
+ return val;
4960
+ }
4961
+ }
4854
4962
 
4855
4963
  function parseOpt(option) {
4856
4964
  if (is.String(option)) {
@@ -4921,6 +5029,31 @@
4921
5029
  return true;
4922
5030
  }
4923
5031
 
5032
+ var $provider = {
5033
+ fetch: $fetch,
5034
+ required: $required
5035
+ };
5036
+
5037
+ var name = 'html';
5038
+ var html = {
5039
+ name: name,
5040
+ loadChildren: false,
5041
+ render: function render(children, ctx) {
5042
+ if (!ctx.prop.domProps) ctx.prop.domProps = {};
5043
+ ctx.prop.domProps.innerHTML = children;
5044
+ return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);
5045
+ },
5046
+ renderChildren: function renderChildren(ctx) {
5047
+ if (Array.isArray(ctx.rule.children)) {
5048
+ return ctx.rule.children.filter(function (v) {
5049
+ return is.String(v);
5050
+ }).join('');
5051
+ }
5052
+
5053
+ return '';
5054
+ }
5055
+ };
5056
+
4924
5057
  var _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;
4925
5058
 
4926
5059
  function _parseProp(name, id) {
@@ -4976,17 +5109,19 @@
4976
5109
  arrayAttrs.push.apply(arrayAttrs, _toConsumableArray(array));
4977
5110
  normalAttrs.push.apply(normalAttrs, _toConsumableArray(normal));
4978
5111
  appendProto([].concat(_toConsumableArray(key), _toConsumableArray(array), _toConsumableArray(normal)));
4979
- } //todo 表单嵌套
5112
+ }
4980
5113
 
5114
+ var id$1 = 1;
5115
+ var instance = {}; //todo 表单嵌套
4981
5116
 
4982
5117
  function FormCreateFactory(config) {
4983
5118
  var components = _defineProperty({}, fragment.name, fragment);
4984
5119
 
4985
5120
  var parsers = {};
4986
5121
  var directives = {};
4987
- var providers = {
4988
- fetch: $fetch
4989
- };
5122
+
5123
+ var providers = _objectSpread2({}, $provider);
5124
+
4990
5125
  var maker = makerFactory();
4991
5126
  var globalConfig = {
4992
5127
  global: {}
@@ -4995,6 +5130,10 @@
4995
5130
  var CreateNode = CreateNodeFactory();
4996
5131
  exportAttrs(config.attrs || {});
4997
5132
 
5133
+ function getApi(name) {
5134
+ return instance[name];
5135
+ }
5136
+
4998
5137
  function directive() {
4999
5138
  var data = nameProp.apply(void 0, arguments);
5000
5139
  if (data.id && data.prop) directives[data.id] = data.prop;
@@ -5067,18 +5206,35 @@
5067
5206
  return _this.api();
5068
5207
  }
5069
5208
 
5070
- function factory() {
5071
- return FormCreateFactory(config);
5209
+ function factory(inherit) {
5210
+ var _config = _objectSpread2({}, config);
5211
+
5212
+ if (inherit) {
5213
+ _config.inherit = {
5214
+ components: components,
5215
+ parsers: parsers,
5216
+ directives: directives,
5217
+ providers: providers,
5218
+ maker: maker,
5219
+ data: data
5220
+ };
5221
+ } else {
5222
+ delete _config.inherit;
5223
+ }
5224
+
5225
+ return FormCreateFactory(_config);
5072
5226
  }
5073
5227
 
5074
5228
  function FormCreate(vm, rules, options) {
5075
5229
  extend(this, {
5230
+ id: id$1++,
5076
5231
  vm: vm,
5077
5232
  create: create,
5078
5233
  manager: createManager(config.manager),
5079
5234
  parsers: parsers,
5080
5235
  providers: providers,
5081
5236
  rules: Array.isArray(rules) ? rules : [],
5237
+ name: vm.$options.propsData.name,
5082
5238
  prop: {
5083
5239
  components: components,
5084
5240
  directives: directives
@@ -5092,6 +5248,10 @@
5092
5248
  });
5093
5249
  this.init();
5094
5250
  this.initOptions(options || {});
5251
+
5252
+ if (this.name) {
5253
+ instance[this.name] = this.api();
5254
+ }
5095
5255
  }
5096
5256
 
5097
5257
  extend(FormCreate.prototype, {
@@ -5127,6 +5287,10 @@
5127
5287
  vm.destroyed = true;
5128
5288
  _this2.unwatch && _this2.unwatch();
5129
5289
  h.reloadRule([]);
5290
+
5291
+ if (_this2.name) {
5292
+ delete instance[_this2.name];
5293
+ }
5130
5294
  });
5131
5295
  vm.$on('hook:updated', function () {
5132
5296
  h.bindNextTick(function () {
@@ -5204,6 +5368,7 @@
5204
5368
  parseFn: parseFn,
5205
5369
  parseJson: parseJson,
5206
5370
  toJson: toJson,
5371
+ getApi: getApi,
5207
5372
  init: function init(rules) {
5208
5373
  var _opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5209
5374
 
@@ -5257,7 +5422,19 @@
5257
5422
  CreateNode.use({
5258
5423
  fragment: 'fcFragment'
5259
5424
  });
5425
+ parser(html);
5260
5426
  if (config.install) create.use(config);
5427
+
5428
+ if (config.inherit) {
5429
+ var inherit = config.inherit;
5430
+ inherit.components && extend(components, inherit.components);
5431
+ inherit.parsers && extend(parsers, inherit.parsers);
5432
+ inherit.directives && extend(directives, inherit.directives);
5433
+ inherit.providers && extend(providers, inherit.providers);
5434
+ inherit.maker && extend(maker, inherit.maker);
5435
+ inherit.data && extend(data, inherit.data);
5436
+ }
5437
+
5261
5438
  return create;
5262
5439
  }
5263
5440
 
@@ -5267,12 +5444,12 @@
5267
5444
  return date.toString() === 'Invalid Date' ? timeStamp : date;
5268
5445
  }
5269
5446
  }
5270
- var name = 'datePicker';
5447
+ var name$1 = 'datePicker';
5271
5448
  var datePicker = {
5272
- name: name,
5449
+ name: name$1,
5273
5450
  maker: function () {
5274
5451
  return ['date', 'dateRange', 'datetime', 'datetimeRange', 'year', 'month'].reduce(function (maker, type) {
5275
- maker[type] = creatorFactory(name, {
5452
+ maker[type] = creatorFactory(name$1, {
5276
5453
  type: type.toLowerCase()
5277
5454
  });
5278
5455
  return maker;
@@ -5337,28 +5514,28 @@
5337
5514
  }
5338
5515
  };
5339
5516
 
5340
- var name$1 = 'hidden';
5517
+ var name$2 = 'hidden';
5341
5518
  var hidden = {
5342
- name: name$1,
5343
- maker: _defineProperty({}, name$1, function (field, value) {
5344
- return creatorFactory(name$1)('', field, value);
5519
+ name: name$2,
5520
+ maker: _defineProperty({}, name$2, function (field, value) {
5521
+ return creatorFactory(name$2)('', field, value);
5345
5522
  }),
5346
5523
  render: function render() {
5347
5524
  return [];
5348
5525
  }
5349
5526
  };
5350
5527
 
5351
- var name$2 = 'input';
5528
+ var name$3 = 'input';
5352
5529
  var input = {
5353
- name: name$2,
5530
+ name: name$3,
5354
5531
  maker: function () {
5355
5532
  var maker = ['password', 'url', 'email', 'text', 'textarea'].reduce(function (maker, type) {
5356
- maker[type] = creatorFactory(name$2, {
5533
+ maker[type] = creatorFactory(name$3, {
5357
5534
  type: type
5358
5535
  });
5359
5536
  return maker;
5360
5537
  }, {});
5361
- maker.idate = creatorFactory(name$2, {
5538
+ maker.idate = creatorFactory(name$3, {
5362
5539
  type: 'date'
5363
5540
  });
5364
5541
  return maker;
@@ -5372,11 +5549,11 @@
5372
5549
  }
5373
5550
  };
5374
5551
 
5375
- var name$3 = 'slider';
5552
+ var name$4 = 'slider';
5376
5553
  var slider = {
5377
- name: name$3,
5554
+ name: name$4,
5378
5555
  maker: {
5379
- sliderRange: creatorFactory(name$3, {
5556
+ sliderRange: creatorFactory(name$4, {
5380
5557
  range: true
5381
5558
  })
5382
5559
  },
@@ -5860,7 +6037,7 @@
5860
6037
  useFrame(maker);
5861
6038
  useTimePicker(maker);
5862
6039
 
5863
- var css_248z$2 = ".form-create .form-create .ivu-form-item {\n margin-bottom: 24px;\n}\n\n.form-create .form-create .ivu-form-item .ivu-form-item {\n margin-bottom: 0px;\n}\n\n.form-create{\n transform: rotateZ(0);\n}\n";
6040
+ var css_248z$2 = ".form-create .form-create .ivu-form-item {\n margin-bottom: 24px;\n}\n\n.form-create .form-create .ivu-form-item .ivu-form-item {\n margin-bottom: 0px;\n}\n";
5864
6041
  styleInject(css_248z$2);
5865
6042
 
5866
6043
  function tidyBtnProp(btn, def) {
@@ -6100,7 +6277,7 @@
6100
6277
  function ivuFormCreate() {
6101
6278
  return FormCreateFactory({
6102
6279
  ui: "".concat("iview"),
6103
- version: "".concat("2.5.16"),
6280
+ version: "".concat("2.5.19"),
6104
6281
  manager: manager,
6105
6282
  install: install,
6106
6283
  extendApi: extendApi,