@form-create/element-ui 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/element-ui v2.5.16
3
- * (c) 2018-2021 xaboy
2
+ * @form-create/element-ui 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
  */
@@ -710,6 +710,7 @@
710
710
  try {
711
711
  if (this.helper === true) {
712
712
  iframe['form_create_helper'] = {
713
+ api: this.formCreateInject.api,
713
714
  close: function close(field) {
714
715
  _this7.valid(field);
715
716
 
@@ -812,21 +813,18 @@
812
813
  "close": this.handleCancel
813
814
  }
814
815
  }, [h("img", {
816
+ "style": "width: 100%",
815
817
  "attrs": {
816
- "alt": "example",
817
818
  "src": this.previewImage
818
- },
819
- "style": "width: 100%"
819
+ }
820
820
  })]), h("el-dialog", helper([{
821
821
  "attrs": {
822
822
  "appendToBody": true
823
823
  }
824
- }, {
825
- "props": _objectSpread2({
826
- width: width,
827
- title: title
828
- }, this.modal)
829
- }, {
824
+ }, _objectSpread2({
825
+ width: width,
826
+ title: title
827
+ }, this.modal), {
830
828
  "attrs": {
831
829
  "visible": this.frameVisible
832
830
  },
@@ -941,9 +939,28 @@
941
939
  },
942
940
  trueArray: function trueArray(data) {
943
941
  return Array.isArray(data) && data.length > 0;
942
+ },
943
+ Function: function Function(v) {
944
+ var type = this.getType(v);
945
+ return type === 'Function' || type === 'AsyncFunction';
946
+ },
947
+ getType: function getType(v) {
948
+ var str = Object.prototype.toString.call(v);
949
+ return /^\[object (.*)\]$/.exec(str)[1];
950
+ },
951
+ empty: function empty(value) {
952
+ if (value === undefined || value === null) {
953
+ return true;
954
+ }
955
+
956
+ if (Array.isArray(value) && Array.isArray(value) && !value.length) {
957
+ return true;
958
+ }
959
+
960
+ return typeof value === 'string' && !value;
944
961
  }
945
962
  };
946
- ['Date', 'Object', 'Function', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
963
+ ['Date', 'Object', 'String', 'Boolean', 'Array', 'Number'].forEach(function (t) {
947
964
  is[t] = function (arg) {
948
965
  return is.type(arg, t);
949
966
  };
@@ -1320,6 +1337,81 @@
1320
1337
  }
1321
1338
  };
1322
1339
 
1340
+ function $set(target, field, value) {
1341
+ Vue.set(target, field, value);
1342
+ }
1343
+ function $del(target, field) {
1344
+ Vue["delete"](target, field);
1345
+ }
1346
+
1347
+ function deepExtend(origin) {
1348
+ var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1349
+ var mode = arguments.length > 2 ? arguments[2] : undefined;
1350
+ var isArr = false;
1351
+
1352
+ for (var key in target) {
1353
+ if (Object.prototype.hasOwnProperty.call(target, key)) {
1354
+ var clone = target[key];
1355
+
1356
+ if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
1357
+ var nst = origin[key] === undefined;
1358
+
1359
+ if (isArr) {
1360
+ isArr = false;
1361
+ nst && $set(origin, key, []);
1362
+ } else if (clone._clone && mode !== undefined) {
1363
+ if (mode) {
1364
+ clone = clone.getRule();
1365
+ nst && $set(origin, key, {});
1366
+ } else {
1367
+ $set(origin, key, clone._clone());
1368
+ continue;
1369
+ }
1370
+ } else {
1371
+ nst && $set(origin, key, {});
1372
+ }
1373
+
1374
+ origin[key] = deepExtend(origin[key], clone, mode);
1375
+ } else {
1376
+ $set(origin, key, clone);
1377
+
1378
+ if (!is.Undef(clone)) {
1379
+ if (!is.Undef(clone.__json)) {
1380
+ origin[key].__json = clone.__json;
1381
+ }
1382
+
1383
+ if (!is.Undef(clone.__origin)) {
1384
+ origin[key].__origin = clone.__origin;
1385
+ }
1386
+ }
1387
+ }
1388
+ }
1389
+ }
1390
+
1391
+ return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
1392
+ return !v || !v.__ctrl;
1393
+ }) : origin;
1394
+ }
1395
+ function deepCopy(value) {
1396
+ return deepExtend({}, {
1397
+ value: value
1398
+ }).value;
1399
+ }
1400
+
1401
+ var _extends$1 = Object.assign || function (a) {
1402
+ for (var b, c = 1; c < arguments.length; c++) {
1403
+ for (var d in b = arguments[c], b) {
1404
+ Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1405
+ }
1406
+ }
1407
+
1408
+ return a;
1409
+ };
1410
+
1411
+ function extend() {
1412
+ return _extends$1.apply(this, arguments);
1413
+ }
1414
+
1323
1415
  var NAME$6 = 'fcGroup';
1324
1416
  var Group = {
1325
1417
  name: NAME$6,
@@ -1351,6 +1443,7 @@
1351
1443
  return [];
1352
1444
  }
1353
1445
  },
1446
+ defaultValue: Object,
1354
1447
  disabled: {
1355
1448
  type: Boolean,
1356
1449
  "default": false
@@ -1496,7 +1589,13 @@
1496
1589
  submitBtn: false,
1497
1590
  resetBtn: false
1498
1591
  };
1499
- options.formData = this.field ? _defineProperty({}, this.field, this._value(this.value[i])) : this.value[i] || {};
1592
+
1593
+ if (this.defaultValue) {
1594
+ if (!options.formData) options.formData = {};
1595
+ var defVal = deepCopy(this.defaultValue);
1596
+ extend(options.formData, this.field ? _defineProperty({}, this.field, defVal) : defVal);
1597
+ }
1598
+
1500
1599
  this.$set(this.cacheRule, ++this.len, {
1501
1600
  rule: rule,
1502
1601
  options: options
@@ -1513,6 +1612,7 @@
1513
1612
 
1514
1613
  this.cacheRule[key].$f = $f;
1515
1614
  this.subForm();
1615
+ this.formData(key, $f.formData());
1516
1616
  this.$nextTick(function () {
1517
1617
  if (_this4.syncDisabled) {
1518
1618
  $f.disabled(_this4.disabled);
@@ -1683,6 +1783,7 @@
1683
1783
  }
1684
1784
  }, {
1685
1785
  "attrs": {
1786
+ "value": _this9.field ? _defineProperty({}, _this9.field, _this9._value(_this9.value[index])) : _this9.value[index],
1686
1787
  "rule": rule,
1687
1788
  "option": options,
1688
1789
  "extendOption": true
@@ -1815,27 +1916,6 @@
1815
1916
 
1816
1917
  var components = [Checkbox, Frame, Radio, Select, Tree, Upload, Group, Sub];
1817
1918
 
1818
- function $set(target, field, value) {
1819
- Vue.set(target, field, value);
1820
- }
1821
- function $del(target, field) {
1822
- Vue["delete"](target, field);
1823
- }
1824
-
1825
- var _extends$1 = Object.assign || function (a) {
1826
- for (var b, c = 1; c < arguments.length; c++) {
1827
- for (var d in b = arguments[c], b) {
1828
- Object.prototype.hasOwnProperty.call(b, d) && $set(a, d, b[d]);
1829
- }
1830
- }
1831
-
1832
- return a;
1833
- };
1834
-
1835
- function extend() {
1836
- return _extends$1.apply(this, arguments);
1837
- }
1838
-
1839
1919
  var NAME$8 = 'FormCreate';
1840
1920
  function $FormCreate(FormCreate) {
1841
1921
  return {
@@ -1867,7 +1947,8 @@
1867
1947
  },
1868
1948
  extendOption: Boolean,
1869
1949
  value: Object,
1870
- api: Object
1950
+ api: Object,
1951
+ name: String
1871
1952
  },
1872
1953
  data: function data() {
1873
1954
  return {
@@ -2029,60 +2110,6 @@
2029
2110
  console.error(e);
2030
2111
  }
2031
2112
 
2032
- function deepExtend(origin) {
2033
- var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2034
- var mode = arguments.length > 2 ? arguments[2] : undefined;
2035
- var isArr = false;
2036
-
2037
- for (var key in target) {
2038
- if (Object.prototype.hasOwnProperty.call(target, key)) {
2039
- var clone = target[key];
2040
-
2041
- if ((isArr = Array.isArray(clone)) || is.Object(clone)) {
2042
- var nst = origin[key] === undefined;
2043
-
2044
- if (isArr) {
2045
- isArr = false;
2046
- nst && $set(origin, key, []);
2047
- } else if (clone._clone && mode !== undefined) {
2048
- if (mode) {
2049
- clone = clone.getRule();
2050
- nst && $set(origin, key, {});
2051
- } else {
2052
- $set(origin, key, clone._clone());
2053
- continue;
2054
- }
2055
- } else {
2056
- nst && $set(origin, key, {});
2057
- }
2058
-
2059
- origin[key] = deepExtend(origin[key], clone, mode);
2060
- } else {
2061
- $set(origin, key, clone);
2062
-
2063
- if (!is.Undef(clone)) {
2064
- if (clone.__json !== undefined) {
2065
- origin[key].__json = clone.__json;
2066
- }
2067
-
2068
- if (clone.__origin !== undefined) {
2069
- origin[key].__origin = clone.__origin;
2070
- }
2071
- }
2072
- }
2073
- }
2074
- }
2075
-
2076
- return mode !== undefined && Array.isArray(origin) ? origin.filter(function (v) {
2077
- return !v || !v.__ctrl;
2078
- }) : origin;
2079
- }
2080
- function deepCopy(value) {
2081
- return deepExtend({}, {
2082
- value: value
2083
- }).value;
2084
- }
2085
-
2086
2113
  var PREFIX = '[[FORM-CREATE-PREFIX-';
2087
2114
  var SUFFIX = '-FORM-CREATE-SUFFIX]]';
2088
2115
  var $T = '$FN:';
@@ -2096,7 +2123,7 @@
2096
2123
  return val;
2097
2124
  }
2098
2125
 
2099
- if (hasProperty(val, '__json')) {
2126
+ if (val.__json) {
2100
2127
  return val.__json;
2101
2128
  }
2102
2129
 
@@ -2207,39 +2234,6 @@
2207
2234
  return def;
2208
2235
  }
2209
2236
 
2210
- function toString(val) {
2211
- return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
2212
- }
2213
-
2214
- function toLine(name) {
2215
- var line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();
2216
- if (line.indexOf('-') === 0) line = line.substr(1);
2217
- return line;
2218
- }
2219
-
2220
- var id = 0;
2221
- function uniqueId() {
2222
- return Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now()).concat(++id)).toString(36);
2223
- }
2224
-
2225
- function deepSet(data, idx, val) {
2226
- var _data = data,
2227
- to;
2228
- (idx || '').split('.').forEach(function (v) {
2229
- if (to) {
2230
- if (!_data[to] || _typeof(_data[to]) != 'object') {
2231
- _data[to] = {};
2232
- }
2233
-
2234
- _data = _data[to];
2235
- }
2236
-
2237
- to = v;
2238
- });
2239
- _data[to] = val;
2240
- return _data;
2241
- }
2242
-
2243
2237
  function baseRule() {
2244
2238
  return {
2245
2239
  props: {},
@@ -2489,7 +2483,7 @@
2489
2483
  disabled: function disabled(_disabled, fields) {
2490
2484
  tidyFields(fields).forEach(function (field) {
2491
2485
  h.getCtxs(field).forEach(function (ctx) {
2492
- $set(ctx.rule.props, 'disabled', !!_disabled);
2486
+ ctx.rule.props && $set(ctx.rule.props, 'disabled', !!_disabled);
2493
2487
  });
2494
2488
  });
2495
2489
  h.refresh();
@@ -2761,6 +2755,39 @@
2761
2755
  return str.replace(str[0], str[0].toLowerCase());
2762
2756
  }
2763
2757
 
2758
+ function toString(val) {
2759
+ return val == null ? '' : _typeof(val) === 'object' ? JSON.stringify(val, null, 2) : String(val);
2760
+ }
2761
+
2762
+ function toLine(name) {
2763
+ var line = name.replace(/([A-Z])/g, '-$1').toLocaleLowerCase();
2764
+ if (line.indexOf('-') === 0) line = line.substr(1);
2765
+ return line;
2766
+ }
2767
+
2768
+ var id = 0;
2769
+ function uniqueId() {
2770
+ return Math.random().toString(36).substr(3, 3) + Number("".concat(Date.now()).concat(++id)).toString(36);
2771
+ }
2772
+
2773
+ function deepSet(data, idx, val) {
2774
+ var _data = data,
2775
+ to;
2776
+ (idx || '').split('.').forEach(function (v) {
2777
+ if (to) {
2778
+ if (!_data[to] || _typeof(_data[to]) != 'object') {
2779
+ _data[to] = {};
2780
+ }
2781
+
2782
+ _data = _data[to];
2783
+ }
2784
+
2785
+ to = v;
2786
+ });
2787
+ _data[to] = val;
2788
+ return _data;
2789
+ }
2790
+
2764
2791
  function useRender(Render) {
2765
2792
  extend(Render.prototype, {
2766
2793
  initRender: function initRender() {
@@ -2781,6 +2808,23 @@
2781
2808
  clearOrgChildren: function clearOrgChildren() {
2782
2809
  this.orgChildren = {};
2783
2810
  },
2811
+ getTypeSlot: function getTypeSlot(type) {
2812
+ var name = 'type-' + toLine(type);
2813
+
2814
+ var _fn = function _fn(vm) {
2815
+ if (vm) {
2816
+ var slot = vm.$scopedSlots[name] || vm.$scopedSlots['type-' + type];
2817
+
2818
+ if (slot) {
2819
+ return slot;
2820
+ }
2821
+
2822
+ return _fn(vm.$pfc);
2823
+ }
2824
+ };
2825
+
2826
+ return _fn(this.vm);
2827
+ },
2784
2828
  render: function render() {
2785
2829
  var _this = this;
2786
2830
 
@@ -2976,10 +3020,10 @@
2976
3020
  children = this.renderChildren(ctx);
2977
3021
  }
2978
3022
 
2979
- var slot = 'type-' + toLine(ctx.type);
3023
+ var slot = this.getTypeSlot(ctx.type);
2980
3024
 
2981
- if (this.vm.$scopedSlots[slot]) {
2982
- vn = this.vm.$scopedSlots[slot]({
3025
+ if (slot) {
3026
+ vn = slot({
2983
3027
  rule: rule,
2984
3028
  prop: prop,
2985
3029
  preview: preview,
@@ -3106,15 +3150,13 @@
3106
3150
  }];
3107
3151
 
3108
3152
  if (!custom && ctx.input) {
3109
- props.push({
3110
- model: {
3111
- value: this.$handle.getFormData(ctx),
3112
- callback: function callback(value) {
3113
- _this8.onInput(ctx, value);
3114
- },
3115
- expression: "formData.".concat(ctx.id)
3116
- }
3117
- });
3153
+ ctx.prop.model = {
3154
+ value: this.$handle.getFormData(ctx),
3155
+ callback: function callback(value) {
3156
+ _this8.onInput(ctx, value);
3157
+ },
3158
+ expression: "formData.".concat(ctx.id)
3159
+ };
3118
3160
  }
3119
3161
 
3120
3162
  mergeProps(props, ctx.prop);
@@ -4033,7 +4075,7 @@
4033
4075
  this.setFormData(ctx, formValue);
4034
4076
  this.syncValue();
4035
4077
  this.valueChange(ctx, value);
4036
- this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag);
4078
+ this.vm.$emit('change', ctx.field, value, ctx.origin, this.api, setFlag || false);
4037
4079
  this.effect(ctx, 'value');
4038
4080
  },
4039
4081
  onInput: function onInput(ctx, value) {
@@ -4044,7 +4086,7 @@
4044
4086
  }
4045
4087
  },
4046
4088
  setFormData: function setFormData(ctx, value) {
4047
- $set(this.formData, ctx.id, value);
4089
+ $set(this.formData, ctx.id, value === null ? undefined : value);
4048
4090
  },
4049
4091
  getFormData: function getFormData(ctx) {
4050
4092
  return this.formData[ctx.id];
@@ -4298,7 +4340,7 @@
4298
4340
  var vm = this.vm;
4299
4341
  var none = ['field', 'value', 'vm', 'template', 'name', 'config', 'control', 'inject', 'sync', 'payload', 'optionsTo', 'update'];
4300
4342
  Object.keys(ctx.rule).filter(function (k) {
4301
- return none.indexOf(k) === -1;
4343
+ return k[0] !== '_' && k[0] !== '$' && none.indexOf(k) === -1;
4302
4344
  }).forEach(function (key) {
4303
4345
  var flag = key === 'children';
4304
4346
  ctx.watch.push(vm.$watch(function () {
@@ -4483,10 +4525,21 @@
4483
4525
  var _this3 = this;
4484
4526
 
4485
4527
  var vm = this.vm;
4528
+ var effect = {};
4486
4529
  Object.keys(ctx.rule.effect || {}).forEach(function (k) {
4487
- ctx.watch.push(vm.$watch(function () {
4530
+ effect[k] = function () {
4488
4531
  return ctx.rule.effect[k];
4489
- }, function (n) {
4532
+ };
4533
+ });
4534
+ Object.keys(ctx.rule).forEach(function (k) {
4535
+ if (k[0] === '$') {
4536
+ effect[k.substr(1)] = function () {
4537
+ return ctx.rule[k];
4538
+ };
4539
+ }
4540
+ });
4541
+ Object.keys(effect || {}).forEach(function (k) {
4542
+ ctx.watch.push(vm.$watch(effect[k], function (n) {
4490
4543
  _this3.effect(ctx, 'watch', _defineProperty({}, k, n));
4491
4544
  }, {
4492
4545
  deep: true
@@ -4510,7 +4563,12 @@
4510
4563
  }, event);
4511
4564
  },
4512
4565
  getEffect: function getEffect(rule, name) {
4513
- if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];else return undefined;
4566
+ if (hasProperty(rule, '$' + name)) {
4567
+ return rule['$' + name];
4568
+ }
4569
+
4570
+ if (hasProperty(rule, 'effect') && hasProperty(rule.effect, name)) return rule.effect[name];
4571
+ return undefined;
4514
4572
  },
4515
4573
  emitEffect: function emitEffect(_ref, event, append) {
4516
4574
  var _this4 = this;
@@ -4521,7 +4579,13 @@
4521
4579
  type = _ref.type,
4522
4580
  custom = _ref.custom;
4523
4581
  if (!type || type === 'fcFragment') return;
4524
- var effect = custom ? custom : rule.effect || {};
4582
+ var effect = custom ? custom : Object.keys(rule).reduce(function (i, k) {
4583
+ if (k[0] === '$') {
4584
+ i[k.substr(1)] = rule[k];
4585
+ }
4586
+
4587
+ return i;
4588
+ }, _objectSpread2({}, rule.effect || {}));
4525
4589
  Object.keys(effect).forEach(function (attr) {
4526
4590
  var p = _this4.providers[attr];
4527
4591
  if (!p || p.input && !input) return;
@@ -4865,6 +4929,50 @@
4865
4929
  }
4866
4930
  }
4867
4931
  };
4932
+ var $required = {
4933
+ name: 'required',
4934
+ load: function load(inject, rule, api) {
4935
+ var val = parseVa(inject.getValue());
4936
+
4937
+ if (val.required === false) {
4938
+ inject.clearProp();
4939
+ } else {
4940
+ var validate = _objectSpread2(_objectSpread2({}, val), {}, {
4941
+ required: true,
4942
+ validator: function validator(_, v, call) {
4943
+ is.empty(v) ? call(validate.message) : call();
4944
+ }
4945
+ });
4946
+
4947
+ if (!validate.message) {
4948
+ validate.message = rule.title + ' is required';
4949
+ }
4950
+
4951
+ inject.getProp().validate = [validate];
4952
+ }
4953
+
4954
+ api.sync(rule);
4955
+ },
4956
+ watch: function watch() {
4957
+ $required.load.apply($required, arguments);
4958
+ }
4959
+ };
4960
+
4961
+ function parseVa(val) {
4962
+ if (is.Boolean(val)) {
4963
+ return {
4964
+ required: val
4965
+ };
4966
+ } else if (is.String(val)) {
4967
+ return {
4968
+ message: val
4969
+ };
4970
+ } else if (!is.Object(val)) {
4971
+ return {};
4972
+ } else {
4973
+ return val;
4974
+ }
4975
+ }
4868
4976
 
4869
4977
  function parseOpt(option) {
4870
4978
  if (is.String(option)) {
@@ -4935,6 +5043,31 @@
4935
5043
  return true;
4936
5044
  }
4937
5045
 
5046
+ var $provider = {
5047
+ fetch: $fetch,
5048
+ required: $required
5049
+ };
5050
+
5051
+ var name = 'html';
5052
+ var html = {
5053
+ name: name,
5054
+ loadChildren: false,
5055
+ render: function render(children, ctx) {
5056
+ if (!ctx.prop.domProps) ctx.prop.domProps = {};
5057
+ ctx.prop.domProps.innerHTML = children;
5058
+ return ctx.vNode.make(ctx.prop.props.tag || 'div', ctx.prop);
5059
+ },
5060
+ renderChildren: function renderChildren(ctx) {
5061
+ if (Array.isArray(ctx.rule.children)) {
5062
+ return ctx.rule.children.filter(function (v) {
5063
+ return is.String(v);
5064
+ }).join('');
5065
+ }
5066
+
5067
+ return '';
5068
+ }
5069
+ };
5070
+
4938
5071
  var _vue = typeof window !== 'undefined' && window.Vue ? window.Vue : Vue;
4939
5072
 
4940
5073
  function _parseProp(name, id) {
@@ -4990,17 +5123,19 @@
4990
5123
  arrayAttrs.push.apply(arrayAttrs, _toConsumableArray(array));
4991
5124
  normalAttrs.push.apply(normalAttrs, _toConsumableArray(normal));
4992
5125
  appendProto([].concat(_toConsumableArray(key), _toConsumableArray(array), _toConsumableArray(normal)));
4993
- } //todo 表单嵌套
5126
+ }
4994
5127
 
5128
+ var id$1 = 1;
5129
+ var instance = {}; //todo 表单嵌套
4995
5130
 
4996
5131
  function FormCreateFactory(config) {
4997
5132
  var components = _defineProperty({}, fragment.name, fragment);
4998
5133
 
4999
5134
  var parsers = {};
5000
5135
  var directives = {};
5001
- var providers = {
5002
- fetch: $fetch
5003
- };
5136
+
5137
+ var providers = _objectSpread2({}, $provider);
5138
+
5004
5139
  var maker = makerFactory();
5005
5140
  var globalConfig = {
5006
5141
  global: {}
@@ -5009,6 +5144,10 @@
5009
5144
  var CreateNode = CreateNodeFactory();
5010
5145
  exportAttrs(config.attrs || {});
5011
5146
 
5147
+ function getApi(name) {
5148
+ return instance[name];
5149
+ }
5150
+
5012
5151
  function directive() {
5013
5152
  var data = nameProp.apply(void 0, arguments);
5014
5153
  if (data.id && data.prop) directives[data.id] = data.prop;
@@ -5081,18 +5220,35 @@
5081
5220
  return _this.api();
5082
5221
  }
5083
5222
 
5084
- function factory() {
5085
- return FormCreateFactory(config);
5223
+ function factory(inherit) {
5224
+ var _config = _objectSpread2({}, config);
5225
+
5226
+ if (inherit) {
5227
+ _config.inherit = {
5228
+ components: components,
5229
+ parsers: parsers,
5230
+ directives: directives,
5231
+ providers: providers,
5232
+ maker: maker,
5233
+ data: data
5234
+ };
5235
+ } else {
5236
+ delete _config.inherit;
5237
+ }
5238
+
5239
+ return FormCreateFactory(_config);
5086
5240
  }
5087
5241
 
5088
5242
  function FormCreate(vm, rules, options) {
5089
5243
  extend(this, {
5244
+ id: id$1++,
5090
5245
  vm: vm,
5091
5246
  create: create,
5092
5247
  manager: createManager(config.manager),
5093
5248
  parsers: parsers,
5094
5249
  providers: providers,
5095
5250
  rules: Array.isArray(rules) ? rules : [],
5251
+ name: vm.$options.propsData.name,
5096
5252
  prop: {
5097
5253
  components: components,
5098
5254
  directives: directives
@@ -5106,6 +5262,10 @@
5106
5262
  });
5107
5263
  this.init();
5108
5264
  this.initOptions(options || {});
5265
+
5266
+ if (this.name) {
5267
+ instance[this.name] = this.api();
5268
+ }
5109
5269
  }
5110
5270
 
5111
5271
  extend(FormCreate.prototype, {
@@ -5141,6 +5301,10 @@
5141
5301
  vm.destroyed = true;
5142
5302
  _this2.unwatch && _this2.unwatch();
5143
5303
  h.reloadRule([]);
5304
+
5305
+ if (_this2.name) {
5306
+ delete instance[_this2.name];
5307
+ }
5144
5308
  });
5145
5309
  vm.$on('hook:updated', function () {
5146
5310
  h.bindNextTick(function () {
@@ -5218,6 +5382,7 @@
5218
5382
  parseFn: parseFn,
5219
5383
  parseJson: parseJson,
5220
5384
  toJson: toJson,
5385
+ getApi: getApi,
5221
5386
  init: function init(rules) {
5222
5387
  var _opt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5223
5388
 
@@ -5271,7 +5436,19 @@
5271
5436
  CreateNode.use({
5272
5437
  fragment: 'fcFragment'
5273
5438
  });
5439
+ parser(html);
5274
5440
  if (config.install) create.use(config);
5441
+
5442
+ if (config.inherit) {
5443
+ var inherit = config.inherit;
5444
+ inherit.components && extend(components, inherit.components);
5445
+ inherit.parsers && extend(parsers, inherit.parsers);
5446
+ inherit.directives && extend(directives, inherit.directives);
5447
+ inherit.providers && extend(providers, inherit.providers);
5448
+ inherit.maker && extend(maker, inherit.maker);
5449
+ inherit.data && extend(data, inherit.data);
5450
+ }
5451
+
5275
5452
  return create;
5276
5453
  }
5277
5454
 
@@ -5279,19 +5456,18 @@
5279
5456
  date: 'yyyy-MM-dd',
5280
5457
  month: 'yyyy-MM',
5281
5458
  datetime: 'yyyy-MM-dd HH:mm:ss',
5282
- week: 'yyyywWW',
5283
5459
  timerange: 'HH:mm:ss',
5284
5460
  daterange: 'yyyy-MM-dd',
5285
5461
  monthrange: 'yyyy-MM',
5286
5462
  datetimerange: 'yyyy-MM-dd HH:mm:ss',
5287
5463
  year: 'yyyy'
5288
5464
  };
5289
- var name = 'datePicker';
5465
+ var name$1 = 'datePicker';
5290
5466
  var datePicker = {
5291
- name: name,
5467
+ name: name$1,
5292
5468
  maker: function () {
5293
5469
  return ['year', 'month', 'date', 'dates', 'week', 'datetime', 'datetimeRange', 'dateRange', 'monthRange'].reduce(function (initial, type) {
5294
- initial[type] = creatorFactory(name, {
5470
+ initial[type] = creatorFactory(name$1, {
5295
5471
  type: type.toLowerCase()
5296
5472
  });
5297
5473
  return initial;
@@ -5306,28 +5482,28 @@
5306
5482
  }
5307
5483
  };
5308
5484
 
5309
- var name$1 = 'hidden';
5485
+ var name$2 = 'hidden';
5310
5486
  var hidden = {
5311
- name: name$1,
5312
- maker: _defineProperty({}, name$1, function (field, value) {
5313
- return creatorFactory(name$1)('', field, value);
5487
+ name: name$2,
5488
+ maker: _defineProperty({}, name$2, function (field, value) {
5489
+ return creatorFactory(name$2)('', field, value);
5314
5490
  }),
5315
5491
  render: function render() {
5316
5492
  return [];
5317
5493
  }
5318
5494
  };
5319
5495
 
5320
- var name$2 = 'input';
5496
+ var name$3 = 'input';
5321
5497
  var input = {
5322
- name: name$2,
5498
+ name: name$3,
5323
5499
  maker: function () {
5324
5500
  var maker = ['password', 'url', 'email', 'text', 'textarea'].reduce(function (maker, type) {
5325
- maker[type] = creatorFactory(name$2, {
5501
+ maker[type] = creatorFactory(name$3, {
5326
5502
  type: type
5327
5503
  });
5328
5504
  return maker;
5329
5505
  }, {});
5330
- maker.idate = creatorFactory(name$2, {
5506
+ maker.idate = creatorFactory(name$3, {
5331
5507
  type: 'date'
5332
5508
  });
5333
5509
  return maker;
@@ -5341,11 +5517,11 @@
5341
5517
  }
5342
5518
  };
5343
5519
 
5344
- var name$3 = 'slider';
5520
+ var name$4 = 'slider';
5345
5521
  var slider = {
5346
- name: name$3,
5522
+ name: name$4,
5347
5523
  maker: {
5348
- sliderRange: creatorFactory(name$3, {
5524
+ sliderRange: creatorFactory(name$4, {
5349
5525
  range: true
5350
5526
  })
5351
5527
  },
@@ -5365,14 +5541,14 @@
5365
5541
  }
5366
5542
  };
5367
5543
 
5368
- var name$4 = 'timePicker';
5544
+ var name$5 = 'timePicker';
5369
5545
  var timePicker = {
5370
- name: name$4,
5546
+ name: name$5,
5371
5547
  maker: {
5372
- time: creatorFactory(name$4, function (m) {
5548
+ time: creatorFactory(name$5, function (m) {
5373
5549
  return m.props.isRange = false;
5374
5550
  }),
5375
- timeRange: creatorFactory(name$4, function (m) {
5551
+ timeRange: creatorFactory(name$5, function (m) {
5376
5552
  return m.props.isRange = true;
5377
5553
  })
5378
5554
  },
@@ -5396,9 +5572,9 @@
5396
5572
  }
5397
5573
  };
5398
5574
 
5399
- var name$5 = 'select';
5575
+ var name$6 = 'select';
5400
5576
  var select = {
5401
- name: name$5,
5577
+ name: name$6,
5402
5578
  toFormValue: function toFormValue(value, ctx) {
5403
5579
  if (ctx.prop.props.multiple && !Array.isArray(value)) {
5404
5580
  return toArray(value);
@@ -5832,7 +6008,7 @@
5832
6008
  return maker;
5833
6009
  }
5834
6010
 
5835
- var css_248z$2 = ".form-create .form-create .el-form-item {\n margin-bottom: 22px;\n}\n\n.form-create .form-create .el-form-item .el-form-item {\n margin-bottom: 0px;\n}\n\n.form-create{\n transform: rotateZ(0);\n}\n";
6011
+ var css_248z$2 = ".form-create .form-create .el-form-item {\n margin-bottom: 22px;\n}\n\n.form-create .form-create .el-form-item .el-form-item {\n margin-bottom: 0px;\n}\n";
5836
6012
  styleInject(css_248z$2);
5837
6013
 
5838
6014
  function tidyBtnProp(btn, def) {
@@ -6072,7 +6248,7 @@
6072
6248
  function elmFormCreate() {
6073
6249
  return FormCreateFactory({
6074
6250
  ui: "".concat("element-ui"),
6075
- version: "".concat("2.5.16"),
6251
+ version: "".concat("2.5.19"),
6076
6252
  manager: manager,
6077
6253
  extendApi: extendApi,
6078
6254
  install: install,