@nocobase/client 0.9.4-alpha.1 → 0.9.4-alpha.2

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.
Files changed (49) hide show
  1. package/es/locale/zh_CN.d.ts +1 -0
  2. package/es/locale/zh_CN.js +2 -1
  3. package/es/pm/PluginManagerLink.js +22 -14
  4. package/es/schema-component/antd/action/Action.Designer.js +2 -2
  5. package/es/schema-component/antd/action/Action.Drawer.js +1 -1
  6. package/es/schema-component/antd/action/Action.js +2 -2
  7. package/es/schema-component/antd/association-field/AssociationFieldProvider.js +47 -5
  8. package/es/schema-component/antd/association-field/Editable.js +1 -33
  9. package/es/schema-component/antd/association-field/Nester.js +10 -3
  10. package/es/schema-component/antd/association-field/context.d.ts +2 -0
  11. package/es/schema-component/antd/association-field/hooks.d.ts +2 -0
  12. package/es/schema-component/antd/filter/FilterAction.js +2 -2
  13. package/es/schema-component/antd/form-item/FormItem.js +25 -8
  14. package/es/schema-component/antd/form-v2/Templates.js +2 -0
  15. package/es/schema-component/antd/icon-picker/IconPicker.js +2 -2
  16. package/es/schema-component/antd/input/EllipsisWithTooltip.js +2 -2
  17. package/es/schema-component/antd/remote-select/RemoteSelect.js +1 -1
  18. package/es/schema-component/antd/select/Select.js +13 -4
  19. package/es/schema-component/common/sortable-item/SortableItem.js +3 -4
  20. package/es/schema-settings/DataTemplates/components/AsDefaultTemplate.js +1 -1
  21. package/es/schema-settings/DataTemplates/components/DataTemplateTitle.js +9 -13
  22. package/es/schema-settings/SchemaSettings.js +2 -2
  23. package/es/settings-form/SettingsForm.js +2 -2
  24. package/es/user/CurrentUser.js +2 -2
  25. package/lib/locale/zh_CN.d.ts +1 -0
  26. package/lib/locale/zh_CN.js +2 -1
  27. package/lib/pm/PluginManagerLink.js +21 -13
  28. package/lib/schema-component/antd/action/Action.Designer.js +2 -2
  29. package/lib/schema-component/antd/action/Action.Drawer.js +1 -1
  30. package/lib/schema-component/antd/action/Action.js +2 -2
  31. package/lib/schema-component/antd/association-field/AssociationFieldProvider.js +46 -4
  32. package/lib/schema-component/antd/association-field/Editable.js +2 -35
  33. package/lib/schema-component/antd/association-field/Nester.js +10 -3
  34. package/lib/schema-component/antd/association-field/context.d.ts +2 -0
  35. package/lib/schema-component/antd/association-field/hooks.d.ts +2 -0
  36. package/lib/schema-component/antd/filter/FilterAction.js +2 -2
  37. package/lib/schema-component/antd/form-item/FormItem.js +25 -8
  38. package/lib/schema-component/antd/form-v2/Templates.js +2 -0
  39. package/lib/schema-component/antd/icon-picker/IconPicker.js +2 -2
  40. package/lib/schema-component/antd/input/EllipsisWithTooltip.js +2 -2
  41. package/lib/schema-component/antd/remote-select/RemoteSelect.js +1 -1
  42. package/lib/schema-component/antd/select/Select.js +12 -3
  43. package/lib/schema-component/common/sortable-item/SortableItem.js +3 -4
  44. package/lib/schema-settings/DataTemplates/components/AsDefaultTemplate.js +1 -1
  45. package/lib/schema-settings/DataTemplates/components/DataTemplateTitle.js +10 -14
  46. package/lib/schema-settings/SchemaSettings.js +2 -2
  47. package/lib/settings-form/SettingsForm.js +2 -2
  48. package/lib/user/CurrentUser.js +2 -2
  49. package/package.json +5 -5
@@ -81,8 +81,8 @@ export var SchemaSettings = function SchemaSettings(props) {
81
81
  visible = _useState2[0],
82
82
  setVisible = _useState2[1];
83
83
  var DropdownMenu = /*#__PURE__*/React.createElement(Dropdown, {
84
- visible: visible,
85
- onVisibleChange: function onVisibleChange(visible) {
84
+ open: visible,
85
+ onOpenChange: function onOpenChange(visible) {
86
86
  setVisible(visible);
87
87
  },
88
88
  overlay: /*#__PURE__*/React.createElement(Menu, null, props.children),
@@ -67,8 +67,8 @@ export var SettingsForm = observer(function (props) {
67
67
  }, /*#__PURE__*/React.createElement(FieldContext.Provider, {
68
68
  value: f
69
69
  }, /*#__PURE__*/React.createElement(Dropdown, {
70
- visible: dropdownVisible,
71
- onVisibleChange: function onVisibleChange(visible) {
70
+ open: dropdownVisible,
71
+ onOpenChange: function onOpenChange(visible) {
72
72
  return setDropdownVisible(visible);
73
73
  },
74
74
  overlayStyle: {
@@ -91,8 +91,8 @@ export var CurrentUser = function CurrentUser() {
91
91
  setVisible: setVisible
92
92
  }
93
93
  }, /*#__PURE__*/React.createElement(Dropdown, {
94
- visible: visible,
95
- onVisibleChange: function onVisibleChange(visible) {
94
+ open: visible,
95
+ onOpenChange: function onOpenChange(visible) {
96
96
  setVisible(visible);
97
97
  },
98
98
  overlay: /*#__PURE__*/React.createElement(Menu, null, /*#__PURE__*/React.createElement(ApplicationVersion, null), /*#__PURE__*/React.createElement(Menu.Divider, null), /*#__PURE__*/React.createElement(EditProfile, null), /*#__PURE__*/React.createElement(ChangePassword, null), /*#__PURE__*/React.createElement(Menu.Divider, null), /*#__PURE__*/React.createElement(SwitchRole, null), /*#__PURE__*/React.createElement(LanguageSettings, null), /*#__PURE__*/React.createElement(ThemeSettings, null), /*#__PURE__*/React.createElement(Menu.Divider, null), appAllowed && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Menu.Item, {
@@ -310,6 +310,7 @@ declare const _default: {
310
310
  "Display field title": string;
311
311
  "Field component": string;
312
312
  "Allow multiple": string;
313
+ "Allow dissociate": string;
313
314
  "Quick upload": string;
314
315
  "Select file": string;
315
316
  Subtable: string;
@@ -315,7 +315,8 @@ var _default = {
315
315
  "Display association fields": "显示关联表的字段",
316
316
  "Display field title": "显示字段标题",
317
317
  "Field component": "字段组件",
318
- "Allow multiple": "允许多选",
318
+ "Allow multiple": "允许添加/关联多条",
319
+ "Allow dissociate": "允许移除已关联记录",
319
320
  "Quick upload": "快速上传",
320
321
  "Select file": "选择文件",
321
322
  "Subtable": "子表格",
@@ -15,6 +15,10 @@ var _index = require("./index");
15
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
18
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
19
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
21
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
18
22
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
19
23
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
20
24
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -75,19 +79,23 @@ var SettingsCenterDropdown = function SettingsCenterDropdown() {
75
79
  }
76
80
  }, /*#__PURE__*/_react.default.createElement(_antd.Dropdown, {
77
81
  placement: "bottom",
78
- overlay: /*#__PURE__*/_react.default.createElement(_antd.Menu, null, bookmarkTabs.map(function (tab) {
79
- return /*#__PURE__*/_react.default.createElement(_antd.Menu.Item, {
80
- onClick: function onClick() {
81
- history.push('/admin/settings/' + tab.path);
82
- },
83
- key: tab.path
84
- }, compile(tab.title));
85
- }), /*#__PURE__*/_react.default.createElement(_antd.Menu.Divider, null), /*#__PURE__*/_react.default.createElement(_antd.Menu.Item, {
86
- onClick: function onClick() {
87
- history.push('/admin/settings');
88
- },
89
- key: "/admin/settings"
90
- }, t('All plugin settings')))
82
+ menu: {
83
+ items: [].concat(_toConsumableArray(bookmarkTabs.map(function (tab) {
84
+ return {
85
+ key: "/admin/settings/".concat(tab.path),
86
+ label: compile(tab.title)
87
+ };
88
+ })), [{
89
+ type: 'divider'
90
+ }, {
91
+ key: '/admin/settings',
92
+ label: t('All plugin settings')
93
+ }]),
94
+ onClick: function onClick(_ref) {
95
+ var key = _ref.key;
96
+ history.push(key);
97
+ }
98
+ }
91
99
  }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
92
100
  icon: /*#__PURE__*/_react.default.createElement(_icons.SettingOutlined, null)
93
101
  })));
@@ -298,7 +298,7 @@ var ActionDesigner = function ActionDesigner(props) {
298
298
  }
299
299
  }), isChildCollectionAction && /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.EnableChildCollections, {
300
300
  collectionName: name
301
- }), !isDelete && [/*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.Divider, null), /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.Remove, {
301
+ }), !isDelete && /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.Divider, null), /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.Remove, {
302
302
  removeParentsIfNoChildren: true,
303
303
  breakRemoveOn: function breakRemoveOn(s) {
304
304
  return s['x-component'] === 'Space' || s['x-component'].endsWith('ActionBar');
@@ -306,6 +306,6 @@ var ActionDesigner = function ActionDesigner(props) {
306
306
  confirm: {
307
307
  title: t('Delete action')
308
308
  }
309
- })]));
309
+ }))));
310
310
  };
311
311
  exports.ActionDesigner = ActionDesigner;
@@ -56,7 +56,7 @@ var ActionDrawer = (0, _react.observer)(function (props) {
56
56
  title: field.title
57
57
  }, others), {}, {
58
58
  destroyOnClose: true,
59
- visible: visible,
59
+ open: visible,
60
60
  onClose: function onClose() {
61
61
  return setVisible(false, true);
62
62
  },
@@ -159,8 +159,8 @@ Action.Popover = (0, _react.observer)(function (props) {
159
159
  setVisible = _useActionContext.setVisible;
160
160
  return /*#__PURE__*/_react2.default.createElement(_antd.Popover, _objectSpread(_objectSpread({}, props), {}, {
161
161
  destroyTooltipOnHide: true,
162
- visible: visible,
163
- onVisibleChange: function onVisibleChange(visible) {
162
+ open: visible,
163
+ onOpenChange: function onOpenChange(visible) {
164
164
  setVisible(visible);
165
165
  },
166
166
  content: props.children
@@ -11,13 +11,21 @@ var _collectionManager = require("../../../collection-manager");
11
11
  var _context = require("./context");
12
12
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
13
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
15
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
19
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
20
  var AssociationFieldProvider = (0, _react.observer)(function (props) {
15
- var _fieldSchema$xCompon2;
21
+ var _fieldSchema$xCompon, _fieldSchema$xCompon2, _fieldSchema$xCompon4;
16
22
  var field = (0, _react.useField)();
17
23
  var _useCollectionManager = (0, _collectionManager.useCollectionManager)(),
18
24
  getCollectionJoinField = _useCollectionManager.getCollectionJoinField,
19
25
  getCollection = _useCollectionManager.getCollection;
20
26
  var fieldSchema = (0, _react.useFieldSchema)();
27
+ var allowMultiple = ((_fieldSchema$xCompon = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon === void 0 ? void 0 : _fieldSchema$xCompon.multiple) !== false;
28
+ var allowDissociate = ((_fieldSchema$xCompon2 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon2 === void 0 ? void 0 : _fieldSchema$xCompon2.allowDissociate) !== false;
21
29
  var collectionField = (0, _react2.useMemo)(function () {
22
30
  return getCollectionJoinField(fieldSchema['x-collection-field']);
23
31
  }, [fieldSchema['x-collection-field'], fieldSchema.name]);
@@ -26,13 +34,47 @@ var AssociationFieldProvider = (0, _react.observer)(function (props) {
26
34
  return ((_getCollection = getCollection(collectionField === null || collectionField === void 0 ? void 0 : collectionField.target)) === null || _getCollection === void 0 ? void 0 : _getCollection.template) === 'file';
27
35
  }, [fieldSchema['x-collection-field']]);
28
36
  var currentMode = (0, _react2.useMemo)(function () {
29
- var _fieldSchema$xCompon;
30
- return ((_fieldSchema$xCompon = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon === void 0 ? void 0 : _fieldSchema$xCompon.mode) || (isFileCollection ? 'FileManager' : 'Select');
31
- }, [(_fieldSchema$xCompon2 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon2 === void 0 ? void 0 : _fieldSchema$xCompon2.mode]);
37
+ var _fieldSchema$xCompon3;
38
+ return ((_fieldSchema$xCompon3 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon3 === void 0 ? void 0 : _fieldSchema$xCompon3.mode) || (isFileCollection ? 'FileManager' : 'Select');
39
+ }, [(_fieldSchema$xCompon4 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon4 === void 0 ? void 0 : _fieldSchema$xCompon4.mode]);
40
+ var _useState = (0, _react2.useState)(true),
41
+ _useState2 = _slicedToArray(_useState, 2),
42
+ loading = _useState2[0],
43
+ setLoading = _useState2[1];
44
+ (0, _react2.useEffect)(function () {
45
+ setLoading(true);
46
+ if (!collectionField) {
47
+ setLoading(false);
48
+ return;
49
+ }
50
+ if (field.value !== null && field.value !== undefined) {
51
+ // Nester 子表单时,如果没数据初始化一个 [null] 的占位
52
+ if (currentMode === 'Nester' && Array.isArray(field.value)) {
53
+ if (field.value.length === 0 && ['belongsToMany', 'hasMany'].includes(collectionField.type)) {
54
+ field.value = [null];
55
+ }
56
+ }
57
+ setLoading(false);
58
+ return;
59
+ }
60
+ if (currentMode === 'Nester') {
61
+ if (['belongsTo', 'hasOne'].includes(collectionField.type)) {
62
+ field.value = {};
63
+ } else if (['belongsToMany', 'hasMany'].includes(collectionField.type)) {
64
+ field.value = [null];
65
+ }
66
+ }
67
+ setLoading(false);
68
+ }, [currentMode, collectionField, field.value]);
69
+ if (loading) {
70
+ return null;
71
+ }
32
72
  return collectionField ? /*#__PURE__*/_react2.default.createElement(_context.AssociationFieldContext.Provider, {
33
73
  value: {
34
74
  options: collectionField,
35
75
  field: field,
76
+ allowMultiple: allowMultiple,
77
+ allowDissociate: allowDissociate,
36
78
  currentMode: currentMode
37
79
  }
38
80
  }, props.children) : null;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.Editable = void 0;
8
8
  var _react = require("@formily/react");
9
- var _react2 = _interopRequireWildcard(require("react"));
9
+ var _react2 = _interopRequireDefault(require("react"));
10
10
  var _ = require("../../");
11
11
  var _hooks = require("../../../block-provider/hooks");
12
12
  var _AssociationFieldProvider = require("./AssociationFieldProvider");
@@ -17,8 +17,7 @@ var _InternalPicker = require("./InternalPicker");
17
17
  var _InternalSubTable = require("./InternalSubTable");
18
18
  var _CreateRecordAction = require("./components/CreateRecordAction");
19
19
  var _hooks2 = require("./hooks");
20
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
21
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator.return && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, catch: function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
23
22
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
23
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -27,12 +26,6 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
27
26
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
28
27
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
29
28
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
30
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
31
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
32
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
33
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
34
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
35
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
36
29
  var EditableAssociationField = (0, _react.observer)(function (props) {
37
30
  var multiple = props.multiple;
38
31
  var field = (0, _react.useField)();
@@ -41,32 +34,6 @@ var EditableAssociationField = (0, _react.observer)(function (props) {
41
34
  var _useAssociationFieldC = (0, _hooks2.useAssociationFieldContext)(),
42
35
  collectionField = _useAssociationFieldC.options,
43
36
  currentMode = _useAssociationFieldC.currentMode;
44
- var _useState = (0, _react2.useState)(true),
45
- _useState2 = _slicedToArray(_useState, 2),
46
- loading = _useState2[0],
47
- setLoading = _useState2[1];
48
- (0, _react2.useEffect)(function () {
49
- setLoading(true);
50
- if (!collectionField) {
51
- setLoading(false);
52
- return;
53
- }
54
- if (field.value !== null && field.value !== undefined) {
55
- setLoading(false);
56
- return;
57
- }
58
- if (currentMode === 'Nester') {
59
- if (['belongsTo', 'hasOne'].includes(collectionField.type)) {
60
- field.value = {};
61
- } else if (['belongsToMany', 'hasMany'].includes(collectionField.type)) {
62
- field.value = [null];
63
- }
64
- }
65
- setLoading(false);
66
- }, [currentMode, collectionField, field.value]);
67
- if (loading) {
68
- return null;
69
- }
70
37
  var useCreateActionProps = function useCreateActionProps() {
71
38
  var _useCAP = (0, _hooks.useAssociationCreateActionProps)(),
72
39
  _onClick = _useCAP.onClick;
@@ -39,7 +39,10 @@ var ToOneNester = function ToOneNester(props) {
39
39
  var ToManyNester = (0, _react.observer)(function (props) {
40
40
  var fieldSchema = (0, _react.useFieldSchema)();
41
41
  var _useAssociationFieldC = (0, _hooks.useAssociationFieldContext)(),
42
- field = _useAssociationFieldC.field;
42
+ options = _useAssociationFieldC.options,
43
+ field = _useAssociationFieldC.field,
44
+ allowMultiple = _useAssociationFieldC.allowMultiple,
45
+ allowDissociate = _useAssociationFieldC.allowDissociate;
43
46
  var _useTranslation = (0, _reactI18next.useTranslation)(),
44
47
  t = _useTranslation.t;
45
48
  return /*#__PURE__*/_react2.default.createElement(_antd.Card, {
@@ -48,7 +51,11 @@ var ToManyNester = (0, _react.observer)(function (props) {
48
51
  position: 'relative'
49
52
  }
50
53
  }, (field.value || []).map(function (value, index) {
51
- return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, !field.readPretty && /*#__PURE__*/_react2.default.createElement("div", {
54
+ var allowed = allowDissociate;
55
+ if (!allowDissociate) {
56
+ allowed = !(value === null || value === void 0 ? void 0 : value[options.targetKey]);
57
+ }
58
+ return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, !field.readPretty && allowed && /*#__PURE__*/_react2.default.createElement("div", {
52
59
  style: {
53
60
  textAlign: 'right'
54
61
  }
@@ -68,7 +75,7 @@ var ToManyNester = (0, _react.observer)(function (props) {
68
75
  basePath: field.address.concat(index),
69
76
  schema: fieldSchema
70
77
  }), /*#__PURE__*/_react2.default.createElement(_antd.Divider, null));
71
- }), field.editable && /*#__PURE__*/_react2.default.createElement(_antd.Button, {
78
+ }), field.editable && allowMultiple && /*#__PURE__*/_react2.default.createElement(_antd.Button, {
72
79
  type: 'dashed',
73
80
  block: true,
74
81
  onClick: function onClick() {
@@ -4,5 +4,7 @@ export interface AssociationFieldContextProps {
4
4
  options?: any;
5
5
  field?: GeneralField;
6
6
  currentMode?: string;
7
+ allowMultiple?: boolean;
8
+ allowDissociate?: boolean;
7
9
  }
8
10
  export declare const AssociationFieldContext: import("react").Context<AssociationFieldContextProps>;
@@ -4,6 +4,8 @@ export declare function useAssociationFieldContext<F extends GeneralField>(): {
4
4
  options: any;
5
5
  field: F;
6
6
  currentMode: string;
7
+ allowMultiple?: boolean;
8
+ allowDissociate?: boolean;
7
9
  };
8
10
  export default function useServiceOptions(props: any): any;
9
11
  export declare const useFieldNames: (props: any) => any;
@@ -68,8 +68,8 @@ var FilterAction = (0, _react.observer)(function (props) {
68
68
  }, /*#__PURE__*/_react2.default.createElement(_antd.Popover, {
69
69
  destroyTooltipOnHide: true,
70
70
  placement: 'bottomLeft',
71
- visible: visible,
72
- onVisibleChange: function onVisibleChange(visible) {
71
+ open: visible,
72
+ onOpenChange: function onOpenChange(visible) {
73
73
  setVisible(visible);
74
74
  },
75
75
  trigger: 'click',
@@ -11,6 +11,7 @@ var _css = require("@emotion/css");
11
11
  var _antd = require("@formily/antd");
12
12
  var _react = require("@formily/react");
13
13
  var _shared = require("@formily/shared");
14
+ var _antd2 = require("antd");
14
15
  var _lodash = _interopRequireDefault(require("lodash"));
15
16
  var _moment = _interopRequireDefault(require("moment"));
16
17
  var _react2 = _interopRequireWildcard(require("react"));
@@ -33,7 +34,6 @@ var _FilterDynamicComponent = require("../table-v2/FilterDynamicComponent");
33
34
  var _variable = require("../variable");
34
35
  var _FormItem = require("./FormItem.FilterFormDesigner");
35
36
  var _SchemaSettingOptions = require("./SchemaSettingOptions");
36
- var _antd2 = require("antd");
37
37
  var _templateObject, _templateObject2, _templateObject3;
38
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
39
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -92,7 +92,7 @@ var FormItem = (0, _react.observer)(function (props) {
92
92
  });
93
93
  exports.FormItem = FormItem;
94
94
  FormItem.Designer = function Designer() {
95
- var _interfaceConfig$vali, _collectionField$uiSc, _getCollectionFields, _field$componentProps, _field$componentProps2, _field$componentProps3, _field$componentProps4, _field$componentProps5, _field$componentProps6, _field$componentProps7, _fieldSchema$xCompon, _fieldSchema$xCompon2, _fieldSchema$xCompon3, _fieldSchema$xCompon4, _fieldSchema$xCompon5, _fieldSchema$xCompon6, _fieldSchema$xCompon7, _field$componentProps8, _field$componentProps9;
95
+ var _interfaceConfig$vali, _collectionField$uiSc, _getCollectionFields, _field$componentProps, _field$componentProps2, _field$componentProps3, _field$componentProps4, _field$componentProps5, _field$componentProps6, _field$componentProps7, _fieldSchema$xCompon, _fieldSchema$xCompon2, _fieldSchema$xCompon3, _fieldSchema$xCompon4, _fieldSchema$xCompon5, _fieldSchema$xCompon6, _fieldSchema$xCompon7, _fieldSchema$xCompon8, _fieldSchema$xCompon9, _fieldSchema$xCompon10, _field$componentProps8, _field$componentProps9;
96
96
  var _useCollectionManager = (0, _collectionManager.useCollectionManager)(),
97
97
  getCollectionFields = _useCollectionManager.getCollectionFields,
98
98
  getInterface = _useCollectionManager.getInterface,
@@ -161,13 +161,14 @@ FormItem.Designer = function Designer() {
161
161
  };
162
162
  });
163
163
  var fieldSchemaWithoutRequired = _lodash.default.omit(fieldSchema, 'required');
164
- var isPickerMode = fieldSchema['x-component-props'].mode === 'Picker';
164
+ var isSubFormMode = ((_fieldSchema$xCompon = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon === void 0 ? void 0 : _fieldSchema$xCompon.mode) === 'Nester';
165
+ var isPickerMode = ((_fieldSchema$xCompon2 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon2 === void 0 ? void 0 : _fieldSchema$xCompon2.mode) === 'Picker';
165
166
  var showFieldMode = isAssociationField && fieldModeOptions && !isTableField;
166
167
  var showModeSelect = showFieldMode && isPickerMode;
167
168
  return /*#__PURE__*/_react2.default.createElement(_schemaSettings.GeneralSchemaDesigner, null, /*#__PURE__*/_react2.default.createElement(_GeneralSchemaItems.GeneralSchemaItems, null), !(form === null || form === void 0 ? void 0 : form.readPretty) && isFileField ? /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.SwitchItem, {
168
169
  key: "quick-upload",
169
170
  title: t('Quick upload'),
170
- checked: ((_fieldSchema$xCompon = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon === void 0 ? void 0 : _fieldSchema$xCompon.quickUpload) !== false,
171
+ checked: ((_fieldSchema$xCompon3 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon3 === void 0 ? void 0 : _fieldSchema$xCompon3.quickUpload) !== false,
171
172
  onChange: function onChange(value) {
172
173
  var schema = _defineProperty({}, 'x-uid', fieldSchema['x-uid']);
173
174
  field.componentProps.quickUpload = value;
@@ -182,7 +183,7 @@ FormItem.Designer = function Designer() {
182
183
  }) : null, !(form === null || form === void 0 ? void 0 : form.readPretty) && isFileField ? /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.SwitchItem, {
183
184
  key: "select-file",
184
185
  title: t('Select file'),
185
- checked: ((_fieldSchema$xCompon2 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon2 === void 0 ? void 0 : _fieldSchema$xCompon2.selectFile) !== false,
186
+ checked: ((_fieldSchema$xCompon4 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon4 === void 0 ? void 0 : _fieldSchema$xCompon4.selectFile) !== false,
186
187
  onChange: function onChange(value) {
187
188
  var schema = _defineProperty({}, 'x-uid', fieldSchema['x-uid']);
188
189
  field.componentProps.selectFile = value;
@@ -556,7 +557,7 @@ FormItem.Designer = function Designer() {
556
557
  label: t('Large'),
557
558
  value: 'large'
558
559
  }],
559
- value: (_fieldSchema$xCompon3 = fieldSchema === null || fieldSchema === void 0 ? void 0 : (_fieldSchema$xCompon4 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon4 === void 0 ? void 0 : _fieldSchema$xCompon4['openSize']) !== null && _fieldSchema$xCompon3 !== void 0 ? _fieldSchema$xCompon3 : (fieldSchema === null || fieldSchema === void 0 ? void 0 : (_fieldSchema$xCompon5 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon5 === void 0 ? void 0 : _fieldSchema$xCompon5['openMode']) == 'modal' ? 'large' : 'middle',
560
+ value: (_fieldSchema$xCompon5 = fieldSchema === null || fieldSchema === void 0 ? void 0 : (_fieldSchema$xCompon6 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon6 === void 0 ? void 0 : _fieldSchema$xCompon6['openSize']) !== null && _fieldSchema$xCompon5 !== void 0 ? _fieldSchema$xCompon5 : (fieldSchema === null || fieldSchema === void 0 ? void 0 : (_fieldSchema$xCompon7 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon7 === void 0 ? void 0 : _fieldSchema$xCompon7['openMode']) == 'modal' ? 'large' : 'middle',
560
561
  onChange: function onChange(value) {
561
562
  field.componentProps.openSize = value;
562
563
  fieldSchema['x-component-props'] = field.componentProps;
@@ -610,7 +611,7 @@ FormItem.Designer = function Designer() {
610
611
  }), IsShowMultipleSwitch() ? /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.SwitchItem, {
611
612
  key: "multiple",
612
613
  title: t('Allow multiple'),
613
- checked: ((_fieldSchema$xCompon6 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon6 === void 0 ? void 0 : _fieldSchema$xCompon6.multiple) === undefined ? true : fieldSchema['x-component-props'].multiple,
614
+ checked: ((_fieldSchema$xCompon8 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon8 === void 0 ? void 0 : _fieldSchema$xCompon8.multiple) === undefined ? true : fieldSchema['x-component-props'].multiple,
614
615
  onChange: function onChange(value) {
615
616
  var schema = _defineProperty({}, 'x-uid', fieldSchema['x-uid']);
616
617
  fieldSchema['x-component-props'] = fieldSchema['x-component-props'] || {};
@@ -623,9 +624,25 @@ FormItem.Designer = function Designer() {
623
624
  });
624
625
  refresh();
625
626
  }
627
+ }) : null, IsShowMultipleSwitch() && isSubFormMode ? /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.SwitchItem, {
628
+ key: "allowDissociate",
629
+ title: t('Allow dissociate'),
630
+ checked: ((_fieldSchema$xCompon9 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon9 === void 0 ? void 0 : _fieldSchema$xCompon9.allowDissociate) !== false,
631
+ onChange: function onChange(value) {
632
+ var schema = _defineProperty({}, 'x-uid', fieldSchema['x-uid']);
633
+ fieldSchema['x-component-props'] = fieldSchema['x-component-props'] || {};
634
+ field.componentProps = field.componentProps || {};
635
+ fieldSchema['x-component-props'].allowDissociate = value;
636
+ field.componentProps.allowDissociate = value;
637
+ schema['x-component-props'] = fieldSchema['x-component-props'];
638
+ dn.emit('patch', {
639
+ schema: schema
640
+ });
641
+ refresh();
642
+ }
626
643
  }) : null, field.readPretty && options.length > 0 && fieldSchema['x-component'] === 'CollectionField' && !isFileField && /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.SwitchItem, {
627
644
  title: t('Enable link'),
628
- checked: ((_fieldSchema$xCompon7 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon7 === void 0 ? void 0 : _fieldSchema$xCompon7.enableLink) !== false,
645
+ checked: ((_fieldSchema$xCompon10 = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon10 === void 0 ? void 0 : _fieldSchema$xCompon10.enableLink) !== false,
629
646
  onChange: function onChange(flag) {
630
647
  fieldSchema['x-component-props'] = _objectSpread(_objectSpread({}, fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema['x-component-props']), {}, {
631
648
  enableLink: flag
@@ -119,6 +119,8 @@ var Templates = function Templates(_ref) {
119
119
  if (option.key !== 'none') {
120
120
  fetchTemplateData(api, option, t).then(function (data) {
121
121
  if (form && data) {
122
+ // 切换之前先把之前的数据清空
123
+ form.reset();
122
124
  (0, _client.forEach)(data, function (value, key) {
123
125
  if (value) {
124
126
  form.values[key] = value;
@@ -45,8 +45,8 @@ function IconField(props) {
45
45
  compact: true
46
46
  }, /*#__PURE__*/_react2.default.createElement(_antd2.Popover, {
47
47
  placement: 'bottom',
48
- visible: visible,
49
- onVisibleChange: function onVisibleChange(val) {
48
+ open: visible,
49
+ onOpenChange: function onOpenChange(val) {
50
50
  if (disabled) {
51
51
  return;
52
52
  }
@@ -61,8 +61,8 @@ var EllipsisWithTooltip = /*#__PURE__*/(0, _react.forwardRef)(function (props, r
61
61
  return contentWidth > offsetWidth;
62
62
  };
63
63
  return /*#__PURE__*/_react.default.createElement(_antd.Popover, {
64
- visible: ellipsis && visible,
65
- onVisibleChange: function onVisibleChange(visible) {
64
+ open: ellipsis && visible,
65
+ onOpenChange: function onOpenChange(visible) {
66
66
  setVisible(ellipsis && visible);
67
67
  },
68
68
  content: /*#__PURE__*/_react.default.createElement("div", {
@@ -199,7 +199,7 @@ var InternalRemoteSelect = (0, _react.connect)(function (props) {
199
199
  objectValue: objectValue,
200
200
  value: value
201
201
  }, others), {}, {
202
- loading: loading,
202
+ loading: data ? loading : true,
203
203
  options: mapOptionsToTags(options)
204
204
  }));
205
205
  }, (0, _react.mapProps)({
@@ -11,8 +11,8 @@ var _antd = require("antd");
11
11
  var _react2 = _interopRequireDefault(require("react"));
12
12
  var _ReadPretty = require("./ReadPretty");
13
13
  var _shared2 = require("./shared");
14
- var _excluded = ["value", "options", "onChange", "fieldNames", "mode"],
15
- _excluded2 = ["objectValue", "value"];
14
+ var _excluded = ["value", "options", "onChange", "fieldNames", "mode", "loading"],
15
+ _excluded2 = ["objectValue", "loading", "value"];
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
18
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -31,6 +31,7 @@ var ObjectSelect = function ObjectSelect(props) {
31
31
  _onChange = props.onChange,
32
32
  fieldNames = props.fieldNames,
33
33
  mode = props.mode,
34
+ loading = props.loading,
34
35
  others = _objectWithoutProperties(props, _excluded);
35
36
  var toValue = function toValue(v) {
36
37
  var _getCurrentOptions;
@@ -57,6 +58,9 @@ var ObjectSelect = function ObjectSelect(props) {
57
58
  value: toValue(value),
58
59
  allowClear: true,
59
60
  labelInValue: true,
61
+ notFoundContent: loading ? /*#__PURE__*/_react2.default.createElement(_antd.Spin, null) : /*#__PURE__*/_react2.default.createElement(_antd.Empty, {
62
+ image: _antd.Empty.PRESENTED_IMAGE_SIMPLE
63
+ }),
60
64
  options: options,
61
65
  fieldNames: fieldNames,
62
66
  showSearch: true,
@@ -88,6 +92,7 @@ var filterOption = function filterOption(input, option) {
88
92
  };
89
93
  var InternalSelect = (0, _react.connect)(function (props) {
90
94
  var objectValue = props.objectValue,
95
+ loading = props.loading,
91
96
  value = props.value,
92
97
  others = _objectWithoutProperties(props, _excluded2);
93
98
  var mode = props.multiple ? 'multiple' : props.mode;
@@ -97,7 +102,8 @@ var InternalSelect = (0, _react.connect)(function (props) {
97
102
  if (objectValue) {
98
103
  return /*#__PURE__*/_react2.default.createElement(ObjectSelect, _objectSpread(_objectSpread({}, others), {}, {
99
104
  value: value,
100
- mode: mode
105
+ mode: mode,
106
+ loading: loading
101
107
  }));
102
108
  }
103
109
  return /*#__PURE__*/_react2.default.createElement(_antd.Select, _objectSpread(_objectSpread({
@@ -105,6 +111,9 @@ var InternalSelect = (0, _react.connect)(function (props) {
105
111
  filterOption: filterOption,
106
112
  allowClear: true,
107
113
  dropdownMatchSelectWidth: false,
114
+ notFoundContent: loading ? /*#__PURE__*/_react2.default.createElement(_antd.Spin, null) : /*#__PURE__*/_react2.default.createElement(_antd.Empty, {
115
+ image: _antd.Empty.PRESENTED_IMAGE_SIMPLE
116
+ }),
108
117
  value: value
109
118
  }, others), {}, {
110
119
  onChange: function onChange(changed) {