@nocobase/client 0.7.2-alpha.6 → 0.7.4-alpha.1

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 (149) hide show
  1. package/es/application/Application.d.ts +1 -0
  2. package/es/application/Application.js +7 -1
  3. package/es/block-provider/FormBlockProvider.js +8 -3
  4. package/es/block-provider/TableFieldProvider.d.ts +1 -0
  5. package/es/block-provider/TableFieldProvider.js +5 -2
  6. package/es/block-provider/TableSelectorProvider.js +41 -13
  7. package/es/block-provider/hooks/index.d.ts +6 -0
  8. package/es/block-provider/hooks/index.js +159 -65
  9. package/es/collection-manager/CollectionField.js +4 -2
  10. package/es/collection-manager/Configuration/index.js +5 -1
  11. package/es/collection-manager/Configuration/schemas/collections.js +2 -1
  12. package/es/collection-manager/interfaces/input.js +103 -0
  13. package/es/collection-manager/interfaces/integer.js +63 -0
  14. package/es/collection-manager/interfaces/m2m.js +2 -0
  15. package/es/collection-manager/interfaces/m2o.js +1 -0
  16. package/es/collection-manager/interfaces/markdown.js +34 -0
  17. package/es/collection-manager/interfaces/number.js +55 -0
  18. package/es/collection-manager/interfaces/o2m.js +1 -0
  19. package/es/collection-manager/interfaces/o2o.js +3 -0
  20. package/es/collection-manager/interfaces/password.js +36 -1
  21. package/es/collection-manager/interfaces/percent.js +97 -0
  22. package/es/collection-manager/interfaces/properties/index.d.ts +1 -0
  23. package/es/collection-manager/interfaces/properties/index.js +1 -0
  24. package/es/collection-manager/interfaces/properties/operators.js +4 -4
  25. package/es/collection-manager/interfaces/richText.js +34 -0
  26. package/es/collection-manager/interfaces/textarea.js +34 -0
  27. package/es/file-manager/FileStorageShortcut.js +2 -2
  28. package/es/locale/en_US.d.ts +8 -2
  29. package/es/locale/en_US.js +9 -3
  30. package/es/locale/zh_CN.d.ts +26 -2
  31. package/es/locale/zh_CN.js +27 -3
  32. package/es/plugin-manager/PluginManager.d.ts +1 -0
  33. package/es/plugin-manager/PluginManager.js +20 -6
  34. package/es/schema-component/antd/action/Action.Modal.js +1 -1
  35. package/es/schema-component/antd/calendar/Calendar.Designer.js +16 -10
  36. package/es/schema-component/antd/date-picker/DatePicker.d.ts +1 -1
  37. package/es/schema-component/antd/date-picker/DatePicker.js +1 -1
  38. package/es/schema-component/antd/date-picker/ReadPretty.js +1 -1
  39. package/es/schema-component/antd/date-picker/util.d.ts +0 -10
  40. package/es/schema-component/antd/date-picker/util.js +1 -79
  41. package/es/schema-component/antd/form-item/FormItem.js +161 -10
  42. package/es/schema-component/antd/grid/Grid.js +72 -6
  43. package/es/schema-component/antd/input-number/InputNumber.d.ts +1 -5
  44. package/es/schema-component/antd/input-number/InputNumber.js +25 -1
  45. package/es/schema-component/antd/input-number/ReadPretty.js +2 -4
  46. package/es/schema-component/antd/kanban/Kanban.Card.Designer.js +20 -14
  47. package/es/schema-component/antd/menu/Menu.js +6 -3
  48. package/es/schema-component/antd/percent/Percent.js +2 -2
  49. package/es/schema-component/antd/record-picker/InputRecordPicker.js +27 -13
  50. package/es/schema-component/antd/record-picker/ReadPrettyRecordPicker.js +5 -3
  51. package/es/schema-component/antd/table/Table.Array.js +2 -2
  52. package/es/schema-component/antd/table/Table.Void.js +11 -1
  53. package/es/schema-component/antd/table-v2/Table.Column.Designer.js +3 -1
  54. package/es/schema-component/antd/table-v2/Table.d.ts +0 -11
  55. package/es/schema-component/antd/table-v2/Table.js +163 -92
  56. package/es/schema-component/antd/table-v2/TableField.js +3 -0
  57. package/es/schema-component/antd/tabs/Tabs.Designer.js +23 -12
  58. package/es/schema-component/antd/tabs/Tabs.js +7 -1
  59. package/es/schema-component/antd/time-picker/ReadPretty.js +11 -5
  60. package/es/schema-component/core/DesignableSwitch.js +7 -1
  61. package/es/schema-component/hooks/useDesignable.js +21 -21
  62. package/es/schema-component/hooks/useProps.js +1 -1
  63. package/es/schema-initializer/buttons/FormItemInitializers.js +14 -3
  64. package/es/schema-initializer/buttons/ReadPrettyFormActionInitializers.js +8 -0
  65. package/es/schema-initializer/buttons/ReadPrettyFormItemInitializers.js +14 -3
  66. package/es/schema-initializer/buttons/RecordBlockInitializers.js +32 -3
  67. package/es/schema-initializer/buttons/TabPaneInitializers.js +11 -3
  68. package/es/schema-initializer/buttons/TableActionInitializers.js +11 -0
  69. package/es/schema-initializer/components/assigned-field/AssignedField.d.ts +4 -0
  70. package/es/schema-initializer/components/assigned-field/AssignedField.js +255 -69
  71. package/es/schema-initializer/items/index.d.ts +2 -0
  72. package/es/schema-initializer/items/index.js +48 -2
  73. package/es/schema-initializer/utils.js +22 -2
  74. package/es/system-settings/SystemSettingsShortcut.js +35 -12
  75. package/lib/application/Application.d.ts +1 -0
  76. package/lib/application/Application.js +11 -2
  77. package/lib/block-provider/FormBlockProvider.js +7 -2
  78. package/lib/block-provider/TableFieldProvider.d.ts +1 -0
  79. package/lib/block-provider/TableFieldProvider.js +4 -1
  80. package/lib/block-provider/TableSelectorProvider.js +41 -13
  81. package/lib/block-provider/hooks/index.d.ts +6 -0
  82. package/lib/block-provider/hooks/index.js +168 -67
  83. package/lib/collection-manager/CollectionField.js +5 -2
  84. package/lib/collection-manager/Configuration/index.js +5 -0
  85. package/lib/collection-manager/Configuration/schemas/collections.js +2 -1
  86. package/lib/collection-manager/interfaces/input.js +104 -0
  87. package/lib/collection-manager/interfaces/integer.js +65 -0
  88. package/lib/collection-manager/interfaces/m2m.js +2 -0
  89. package/lib/collection-manager/interfaces/m2o.js +1 -0
  90. package/lib/collection-manager/interfaces/markdown.js +35 -0
  91. package/lib/collection-manager/interfaces/number.js +56 -0
  92. package/lib/collection-manager/interfaces/o2m.js +1 -0
  93. package/lib/collection-manager/interfaces/o2o.js +3 -0
  94. package/lib/collection-manager/interfaces/password.js +37 -1
  95. package/lib/collection-manager/interfaces/percent.js +99 -0
  96. package/lib/collection-manager/interfaces/properties/index.d.ts +1 -0
  97. package/lib/collection-manager/interfaces/properties/index.js +1 -0
  98. package/lib/collection-manager/interfaces/properties/operators.js +4 -4
  99. package/lib/collection-manager/interfaces/richText.js +35 -0
  100. package/lib/collection-manager/interfaces/textarea.js +35 -0
  101. package/lib/file-manager/FileStorageShortcut.js +1 -1
  102. package/lib/locale/en_US.d.ts +8 -2
  103. package/lib/locale/en_US.js +9 -3
  104. package/lib/locale/zh_CN.d.ts +26 -2
  105. package/lib/locale/zh_CN.js +27 -3
  106. package/lib/plugin-manager/PluginManager.d.ts +1 -0
  107. package/lib/plugin-manager/PluginManager.js +23 -5
  108. package/lib/schema-component/antd/action/Action.Modal.js +1 -1
  109. package/lib/schema-component/antd/calendar/Calendar.Designer.js +16 -10
  110. package/lib/schema-component/antd/date-picker/DatePicker.d.ts +1 -1
  111. package/lib/schema-component/antd/date-picker/DatePicker.js +2 -2
  112. package/lib/schema-component/antd/date-picker/ReadPretty.js +6 -6
  113. package/lib/schema-component/antd/date-picker/util.d.ts +0 -10
  114. package/lib/schema-component/antd/date-picker/util.js +6 -89
  115. package/lib/schema-component/antd/form-item/FormItem.js +164 -12
  116. package/lib/schema-component/antd/grid/Grid.js +69 -3
  117. package/lib/schema-component/antd/input-number/InputNumber.d.ts +1 -5
  118. package/lib/schema-component/antd/input-number/InputNumber.js +28 -1
  119. package/lib/schema-component/antd/input-number/ReadPretty.js +2 -5
  120. package/lib/schema-component/antd/kanban/Kanban.Card.Designer.js +20 -14
  121. package/lib/schema-component/antd/menu/Menu.js +6 -3
  122. package/lib/schema-component/antd/percent/Percent.js +2 -2
  123. package/lib/schema-component/antd/record-picker/InputRecordPicker.js +27 -12
  124. package/lib/schema-component/antd/record-picker/ReadPrettyRecordPicker.js +4 -2
  125. package/lib/schema-component/antd/table/Table.Array.js +2 -2
  126. package/lib/schema-component/antd/table/Table.Void.js +11 -1
  127. package/lib/schema-component/antd/table-v2/Table.Column.Designer.js +3 -1
  128. package/lib/schema-component/antd/table-v2/Table.d.ts +0 -11
  129. package/lib/schema-component/antd/table-v2/Table.js +172 -94
  130. package/lib/schema-component/antd/table-v2/TableField.js +3 -0
  131. package/lib/schema-component/antd/tabs/Tabs.Designer.js +23 -12
  132. package/lib/schema-component/antd/tabs/Tabs.js +8 -1
  133. package/lib/schema-component/antd/time-picker/ReadPretty.js +10 -3
  134. package/lib/schema-component/core/DesignableSwitch.js +8 -1
  135. package/lib/schema-component/hooks/useDesignable.js +21 -21
  136. package/lib/schema-component/hooks/useProps.js +1 -1
  137. package/lib/schema-initializer/buttons/FormItemInitializers.js +14 -2
  138. package/lib/schema-initializer/buttons/ReadPrettyFormActionInitializers.js +8 -0
  139. package/lib/schema-initializer/buttons/ReadPrettyFormItemInitializers.js +14 -2
  140. package/lib/schema-initializer/buttons/RecordBlockInitializers.js +34 -4
  141. package/lib/schema-initializer/buttons/TabPaneInitializers.js +11 -3
  142. package/lib/schema-initializer/buttons/TableActionInitializers.js +11 -0
  143. package/lib/schema-initializer/components/assigned-field/AssignedField.d.ts +4 -0
  144. package/lib/schema-initializer/components/assigned-field/AssignedField.js +257 -66
  145. package/lib/schema-initializer/items/index.d.ts +2 -0
  146. package/lib/schema-initializer/items/index.js +54 -2
  147. package/lib/schema-initializer/utils.js +22 -2
  148. package/lib/system-settings/SystemSettingsShortcut.js +37 -13
  149. package/package.json +7 -4
@@ -3,7 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.str2moment = exports.moment2str = exports.mapDateFormat = exports.getDefaultFormat = void 0;
6
+ exports.moment2str = exports.mapDateFormat = void 0;
7
+
8
+ var _client = require("@nocobase/utils/client");
7
9
 
8
10
  var _moment = _interopRequireDefault(require("moment"));
9
11
 
@@ -15,22 +17,6 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
15
17
 
16
18
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
19
 
18
- var toGmt = function toGmt(value) {
19
- if (!value) {
20
- return value;
21
- }
22
-
23
- if (Array.isArray(value)) {
24
- return value.map(function (val) {
25
- return "".concat(val.format('YYYY-MM-DD'), "T").concat(val.format('HH:mm:ss.SSS'), "Z");
26
- });
27
- }
28
-
29
- if (_moment.default.isMoment(value)) {
30
- return "".concat(value.format('YYYY-MM-DD'), "T").concat(value.format('HH:mm:ss.SSS'), "Z");
31
- }
32
- };
33
-
34
20
  var toStringByPicker = function toStringByPicker(value, picker) {
35
21
  if (picker === 'year') {
36
22
  return value.format('YYYY') + '-01-01T00:00:00.000Z';
@@ -67,47 +53,6 @@ var toGmtByPicker = function toGmtByPicker(value, picker) {
67
53
  }
68
54
  };
69
55
 
70
- var toLocal = function toLocal(value) {
71
- if (!value) {
72
- return value;
73
- }
74
-
75
- if (Array.isArray(value)) {
76
- return value.map(function (val) {
77
- return val.toISOString();
78
- });
79
- }
80
-
81
- if (_moment.default.isMoment(value)) {
82
- return value.toISOString();
83
- }
84
- };
85
-
86
- var toMoment = function toMoment(val, options) {
87
- if (_moment.default.isMoment(val)) {
88
- return val;
89
- }
90
-
91
- var gmt = options.gmt,
92
- picker = options.picker;
93
-
94
- if (gmt || picker) {
95
- val = val.replace('T', ' ').replace('Z', '');
96
- return (0, _moment.default)(val);
97
- }
98
-
99
- return (0, _moment.default)(val);
100
- };
101
-
102
- var str2moment = function str2moment(value) {
103
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
104
- return Array.isArray(value) ? value.map(function (val) {
105
- return toMoment(val, options);
106
- }) : value ? toMoment(value, options) : value;
107
- };
108
-
109
- exports.str2moment = str2moment;
110
-
111
56
  var moment2str = function moment2str(value) {
112
57
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
113
58
  var showTime = options.showTime,
@@ -119,7 +64,7 @@ var moment2str = function moment2str(value) {
119
64
  }
120
65
 
121
66
  if (showTime) {
122
- return gmt ? toGmt(value) : toLocal(value);
67
+ return gmt ? (0, _client.toGmt)(value) : (0, _client.toLocal)(value);
123
68
  }
124
69
 
125
70
  return toGmtByPicker(value, picker);
@@ -127,41 +72,13 @@ var moment2str = function moment2str(value) {
127
72
 
128
73
  exports.moment2str = moment2str;
129
74
 
130
- var getDefaultFormat = function getDefaultFormat(props) {
131
- if (props.format) {
132
- return props.format;
133
- }
134
-
135
- if (props.dateFormat) {
136
- if (props['showTime']) {
137
- return "".concat(props.dateFormat, " ").concat(props.timeFormat || 'HH:mm:ss');
138
- }
139
-
140
- return props.dateFormat;
141
- }
142
-
143
- if (props['picker'] === 'month') {
144
- return 'YYYY-MM';
145
- } else if (props['picker'] === 'quarter') {
146
- return 'YYYY-\\QQ';
147
- } else if (props['picker'] === 'year') {
148
- return 'YYYY';
149
- } else if (props['picker'] === 'week') {
150
- return 'YYYY-wo';
151
- }
152
-
153
- return props['showTime'] ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';
154
- };
155
-
156
- exports.getDefaultFormat = getDefaultFormat;
157
-
158
75
  var mapDateFormat = function mapDateFormat() {
159
76
  return function (props) {
160
- var format = getDefaultFormat(props);
77
+ var format = (0, _client.getDefaultFormat)(props);
161
78
  var _onChange = props.onChange;
162
79
  return _objectSpread(_objectSpread({}, props), {}, {
163
80
  format: format,
164
- value: str2moment(props.value, props),
81
+ value: (0, _client.str2moment)(props.value, props),
165
82
  onChange: function onChange(value) {
166
83
  if (_onChange) {
167
84
  _onChange(moment2str(value, props));
@@ -13,11 +13,13 @@ var _react = require("@formily/react");
13
13
 
14
14
  var _shared = require("@formily/shared");
15
15
 
16
+ var _lodash = _interopRequireDefault(require("lodash"));
17
+
16
18
  var _react2 = _interopRequireDefault(require("react"));
17
19
 
18
20
  var _reactI18next = require("react-i18next");
19
21
 
20
- var _ = require("../..");
22
+ var _2 = require("../..");
21
23
 
22
24
  var _blockProvider = require("../../../block-provider");
23
25
 
@@ -33,6 +35,12 @@ var _templateObject;
33
35
 
34
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
37
 
38
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
39
+
40
+ 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); }
41
+
42
+ 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; }
43
+
36
44
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
37
45
 
38
46
  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; }
@@ -67,7 +75,7 @@ var FormItem = function FormItem(props) {
67
75
  exports.FormItem = FormItem;
68
76
 
69
77
  FormItem.Designer = function (props) {
70
- var _collectionField$uiSc, _collectionField$uiSc2, _fieldSchema$xDecora, _field$componentProps, _field$componentProps2;
78
+ var _interfaceConfig$vali, _collectionField$uiSc, _collectionField$uiSc2, _fieldSchema$xDecora, _fieldSchema$xCompon, _field$componentProps, _field$componentProps2;
71
79
 
72
80
  var _useCollectionManager = (0, _collectionManager.useCollectionManager)(),
73
81
  getCollectionFields = _useCollectionManager.getCollectionFields,
@@ -89,15 +97,16 @@ FormItem.Designer = function (props) {
89
97
  var _useTranslation = (0, _reactI18next.useTranslation)(),
90
98
  t = _useTranslation.t;
91
99
 
92
- var _useDesignable = (0, _.useDesignable)(),
100
+ var _useDesignable = (0, _2.useDesignable)(),
93
101
  dn = _useDesignable.dn,
94
102
  refresh = _useDesignable.refresh,
95
103
  insertAdjacent = _useDesignable.insertAdjacent,
96
104
  insertBeforeBegin = _useDesignable.insertBeforeBegin;
97
105
 
98
- var compile = (0, _.useCompile)();
106
+ var compile = (0, _2.useCompile)();
99
107
  var collectionField = getField(fieldSchema['name']) || getCollectionJoinField(fieldSchema['x-collection-field']);
100
108
  var interfaceConfig = getInterface(collectionField === null || collectionField === void 0 ? void 0 : collectionField.interface);
109
+ var validateSchema = interfaceConfig === null || interfaceConfig === void 0 ? void 0 : (_interfaceConfig$vali = interfaceConfig['validateSchema']) === null || _interfaceConfig$vali === void 0 ? void 0 : _interfaceConfig$vali.call(interfaceConfig, fieldSchema);
101
110
  var originalTitle = collectionField === null || collectionField === void 0 ? void 0 : (_collectionField$uiSc = collectionField.uiSchema) === null || _collectionField$uiSc === void 0 ? void 0 : _collectionField$uiSc.title;
102
111
  var targetFields = (collectionField === null || collectionField === void 0 ? void 0 : collectionField.target) ? getCollectionFields(collectionField.target) : [];
103
112
  var isSubFormAssocitionField = field.address.segments.includes('__form_grid');
@@ -221,7 +230,7 @@ FormItem.Designer = function (props) {
221
230
  }), !field.readPretty && fieldSchema['x-component'] !== 'FormField' && /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.SwitchItem, {
222
231
  key: "required",
223
232
  title: t('Required'),
224
- checked: field.required,
233
+ checked: fieldSchema.required,
225
234
  onChange: function onChange(required) {
226
235
  var schema = _defineProperty({}, 'x-uid', fieldSchema['x-uid']);
227
236
 
@@ -233,6 +242,151 @@ FormItem.Designer = function (props) {
233
242
  });
234
243
  refresh();
235
244
  }
245
+ }), form && !(form === null || form === void 0 ? void 0 : form.readPretty) && validateSchema && /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.ModalItem, {
246
+ title: t('Set validation rules'),
247
+ components: {
248
+ ArrayCollapse: _antd.ArrayCollapse,
249
+ FormLayout: _antd.FormLayout
250
+ },
251
+ schema: {
252
+ type: 'object',
253
+ title: t('Set validation rules'),
254
+ properties: {
255
+ rules: {
256
+ type: 'array',
257
+ default: fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema['x-validator'],
258
+ 'x-component': 'ArrayCollapse',
259
+ 'x-decorator': 'FormItem',
260
+ 'x-component-props': {
261
+ accordion: true
262
+ },
263
+ maxItems: 3,
264
+ items: {
265
+ type: 'object',
266
+ 'x-component': 'ArrayCollapse.CollapsePanel',
267
+ 'x-component-props': {
268
+ header: '{{ t("Validation rule") }}'
269
+ },
270
+ properties: {
271
+ index: {
272
+ type: 'void',
273
+ 'x-component': 'ArrayCollapse.Index'
274
+ },
275
+ layout: {
276
+ type: 'void',
277
+ 'x-component': 'FormLayout',
278
+ 'x-component-props': {
279
+ labelStyle: {
280
+ marginTop: '6px'
281
+ },
282
+ labelCol: 8,
283
+ wrapperCol: 16
284
+ },
285
+ properties: _objectSpread(_objectSpread({}, validateSchema), {}, {
286
+ message: {
287
+ type: 'string',
288
+ title: '{{ t("Error message") }}',
289
+ 'x-decorator': 'FormItem',
290
+ 'x-component': 'Input.TextArea',
291
+ 'x-component-props': {
292
+ autoSize: {
293
+ minRows: 2,
294
+ maxRows: 2
295
+ }
296
+ }
297
+ }
298
+ })
299
+ },
300
+ remove: {
301
+ type: 'void',
302
+ 'x-component': 'ArrayCollapse.Remove'
303
+ },
304
+ moveUp: {
305
+ type: 'void',
306
+ 'x-component': 'ArrayCollapse.MoveUp'
307
+ },
308
+ moveDown: {
309
+ type: 'void',
310
+ 'x-component': 'ArrayCollapse.MoveDown'
311
+ }
312
+ }
313
+ },
314
+ properties: {
315
+ add: {
316
+ type: 'void',
317
+ title: '{{ t("Add validation rule") }}',
318
+ 'x-component': 'ArrayCollapse.Addition',
319
+ 'x-reactions': {
320
+ dependencies: ['rules'],
321
+ fulfill: {
322
+ state: {
323
+ disabled: '{{$deps[0].length >= 3}}'
324
+ }
325
+ }
326
+ }
327
+ }
328
+ }
329
+ }
330
+ }
331
+ },
332
+ onSubmit: function onSubmit(v) {
333
+ var _collectionField$uiSc3;
334
+
335
+ var rules = [];
336
+
337
+ var _iterator = _createForOfIteratorHelper(v.rules),
338
+ _step;
339
+
340
+ try {
341
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
342
+ var _rule = _step.value;
343
+ rules.push(_lodash.default.pickBy(_rule, _lodash.default.identity));
344
+ }
345
+ } catch (err) {
346
+ _iterator.e(err);
347
+ } finally {
348
+ _iterator.f();
349
+ }
350
+
351
+ var schema = _defineProperty({}, 'x-uid', fieldSchema['x-uid']); // return;
352
+ // if (['number'].includes(collectionField?.interface) && collectionField?.uiSchema?.['x-component-props']?.['stringMode'] === true) {
353
+ // rules['numberStringMode'] = true;
354
+ // }
355
+
356
+
357
+ if (['percent'].includes(collectionField === null || collectionField === void 0 ? void 0 : collectionField.interface)) {
358
+ var _iterator2 = _createForOfIteratorHelper(rules),
359
+ _step2;
360
+
361
+ try {
362
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
363
+ var rule = _step2.value;
364
+
365
+ if (!!rule.maxValue || !!rule.minValue) {
366
+ rule['percentMode'] = true;
367
+ }
368
+
369
+ if (rule.percentFormat) {
370
+ rule['percentFormats'] = true;
371
+ }
372
+ }
373
+ } catch (err) {
374
+ _iterator2.e(err);
375
+ } finally {
376
+ _iterator2.f();
377
+ }
378
+ }
379
+
380
+ var concatValidator = _lodash.default.concat([], (collectionField === null || collectionField === void 0 ? void 0 : (_collectionField$uiSc3 = collectionField.uiSchema) === null || _collectionField$uiSc3 === void 0 ? void 0 : _collectionField$uiSc3['x-validator']) || [], rules);
381
+
382
+ field.validator = concatValidator;
383
+ fieldSchema['x-validator'] = rules;
384
+ schema['x-validator'] = rules;
385
+ dn.emit('patch', {
386
+ schema: schema
387
+ });
388
+ refresh();
389
+ }
236
390
  }), form && !isSubFormAssocitionField && ['o2o', 'oho', 'obo', 'o2m'].includes(collectionField === null || collectionField === void 0 ? void 0 : collectionField.interface) && /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.SelectItem, {
237
391
  title: t('Field component'),
238
392
  options: (collectionField === null || collectionField === void 0 ? void 0 : collectionField.interface) === 'o2m' ? [{
@@ -279,7 +433,7 @@ FormItem.Designer = function (props) {
279
433
  }
280
434
  });
281
435
  }
282
- }), form && !(form === null || form === void 0 ? void 0 : form.readPretty) && (collectionField === null || collectionField === void 0 ? void 0 : collectionField.interface) !== 'o2m' && /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.SelectItem, {
436
+ }), form && !(form === null || form === void 0 ? void 0 : form.readPretty) && (collectionField === null || collectionField === void 0 ? void 0 : collectionField.interface) !== 'o2m' && (fieldSchema === null || fieldSchema === void 0 ? void 0 : (_fieldSchema$xCompon = fieldSchema['x-component-props']) === null || _fieldSchema$xCompon === void 0 ? void 0 : _fieldSchema$xCompon['pattern-disable']) != true && /*#__PURE__*/_react2.default.createElement(_schemaSettings.SchemaSettings.SelectItem, {
283
437
  key: "pattern",
284
438
  title: t('Pattern'),
285
439
  options: [{
@@ -341,15 +495,13 @@ FormItem.Designer = function (props) {
341
495
  options: options,
342
496
  value: field === null || field === void 0 ? void 0 : (_field$componentProps = field.componentProps) === null || _field$componentProps === void 0 ? void 0 : (_field$componentProps2 = _field$componentProps.fieldNames) === null || _field$componentProps2 === void 0 ? void 0 : _field$componentProps2.label,
343
497
  onChange: function onChange(label) {
498
+ var _collectionField$uiSc4, _collectionField$uiSc5;
499
+
344
500
  var schema = _defineProperty({}, 'x-uid', fieldSchema['x-uid']);
345
501
 
346
- var fieldNames = _objectSpread(_objectSpread({}, field.componentProps.fieldNames), {}, {
502
+ var fieldNames = _objectSpread(_objectSpread(_objectSpread({}, collectionField === null || collectionField === void 0 ? void 0 : (_collectionField$uiSc4 = collectionField.uiSchema) === null || _collectionField$uiSc4 === void 0 ? void 0 : (_collectionField$uiSc5 = _collectionField$uiSc4['x-component-props']) === null || _collectionField$uiSc5 === void 0 ? void 0 : _collectionField$uiSc5['fieldNames']), field.componentProps.fieldNames), {}, {
347
503
  label: label
348
- }); // if (fieldSchema['x-component-props']?.['field']?.['uiSchema']?.['x-component-props']) {
349
- // fieldSchema['x-component-props']['field']['uiSchema']['x-component-props']['fieldNames'] = fieldNames;
350
- // } else {
351
- // }
352
-
504
+ });
353
505
 
354
506
  fieldSchema['x-component-props'] = fieldSchema['x-component-props'] || {};
355
507
  fieldSchema['x-component-props']['fieldNames'] = fieldNames;
@@ -55,7 +55,17 @@ var GridRowContext = /*#__PURE__*/(0, _react2.createContext)(null);
55
55
  var GridColContext = /*#__PURE__*/(0, _react2.createContext)(null);
56
56
  var GridContext = /*#__PURE__*/(0, _react2.createContext)({});
57
57
 
58
+ var breakRemoveOnGrid = function breakRemoveOnGrid(s) {
59
+ return s['x-component'] === 'Grid';
60
+ };
61
+
62
+ var breakRemoveOnRow = function breakRemoveOnRow(s) {
63
+ return s['x-component'] === 'Grid.Row';
64
+ };
65
+
58
66
  var ColDivider = function ColDivider(props) {
67
+ var _dndContext$active, _dndContext$active$da, _dndContext$active$da2;
68
+
59
69
  var _useDroppable = (0, _core.useDroppable)({
60
70
  id: props.id,
61
71
  data: props.data
@@ -66,14 +76,31 @@ var ColDivider = function ColDivider(props) {
66
76
  var droppableStyle = {
67
77
  backgroundColor: isOver ? 'rgba(241, 139, 98, .1)' : undefined
68
78
  };
79
+ var dndContext = (0, _core.useDndContext)();
80
+ var activeSchema = (_dndContext$active = dndContext.active) === null || _dndContext$active === void 0 ? void 0 : (_dndContext$active$da = _dndContext$active.data.current) === null || _dndContext$active$da === void 0 ? void 0 : (_dndContext$active$da2 = _dndContext$active$da.schema) === null || _dndContext$active$da2 === void 0 ? void 0 : _dndContext$active$da2.parent;
81
+ var blocksLength = activeSchema ? Object.keys(activeSchema.properties).length : 0;
82
+ var visible = true;
83
+
84
+ if (blocksLength === 1) {
85
+ if (props.first) {
86
+ visible = activeSchema !== props.cols[0];
87
+ } else {
88
+ var currentSchema = props.cols[props.index];
89
+ var downSchema = props.cols[props.index + 1];
90
+ visible = activeSchema !== currentSchema && downSchema !== activeSchema;
91
+ }
92
+ }
93
+
69
94
  return /*#__PURE__*/_react2.default.createElement("div", {
70
- ref: setNodeRef,
95
+ ref: visible ? setNodeRef : null,
71
96
  className: (0, _classnames.default)('nb-col-divider', (0, _css.css)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 24px;\n "])))),
72
97
  style: _objectSpread({}, droppableStyle)
73
98
  });
74
99
  };
75
100
 
76
101
  var RowDivider = function RowDivider(props) {
102
+ var _dndContext$active2, _dndContext$active2$d, _dndContext$active2$d2;
103
+
77
104
  var _useDroppable2 = (0, _core.useDroppable)({
78
105
  id: props.id,
79
106
  data: props.data
@@ -92,6 +119,23 @@ var RowDivider = function RowDivider(props) {
92
119
  active = _useState2[0],
93
120
  setActive = _useState2[1];
94
121
 
122
+ var dndContext = (0, _core.useDndContext)();
123
+ var currentSchema = props.rows[props.index];
124
+ var activeSchema = (_dndContext$active2 = dndContext.active) === null || _dndContext$active2 === void 0 ? void 0 : (_dndContext$active2$d = _dndContext$active2.data.current) === null || _dndContext$active2$d === void 0 ? void 0 : (_dndContext$active2$d2 = _dndContext$active2$d.schema) === null || _dndContext$active2$d2 === void 0 ? void 0 : _dndContext$active2$d2.parent.parent;
125
+ var colsLength = activeSchema === null || activeSchema === void 0 ? void 0 : activeSchema.mapProperties(function (schema) {
126
+ return schema['x-component'] === 'Grid.Col';
127
+ }).filter(Boolean).length;
128
+ var visible = true; // col > 1 时不需要隐藏
129
+
130
+ if (colsLength === 1) {
131
+ if (props.first) {
132
+ visible = activeSchema !== props.rows[0];
133
+ } else {
134
+ var downSchema = props.rows[props.index + 1];
135
+ visible = activeSchema !== currentSchema && downSchema !== activeSchema;
136
+ }
137
+ }
138
+
95
139
  (0, _core.useDndMonitor)({
96
140
  onDragStart: function onDragStart(event) {
97
141
  setActive(true);
@@ -106,7 +150,7 @@ var RowDivider = function RowDivider(props) {
106
150
  }
107
151
  });
108
152
  return /*#__PURE__*/_react2.default.createElement("span", {
109
- ref: setNodeRef,
153
+ ref: visible ? setNodeRef : null,
110
154
  className: (0, _classnames.default)('nb-row-divider', (0, _css.css)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n height: 24px;\n width: 100%;\n position: absolute;\n margin-top: -24px;\n "])))),
111
155
  style: _objectSpread({
112
156
  zIndex: active ? 1000 : -1
@@ -193,6 +237,7 @@ var useGridRowContext = function useGridRowContext() {
193
237
 
194
238
  exports.useGridRowContext = useGridRowContext;
195
239
  var Grid = (0, _react.observer)(function (props) {
240
+ var gridRef = (0, _react2.useRef)(null);
196
241
  var field = (0, _react.useField)();
197
242
  var fieldSchema = (0, _react.useFieldSchema)();
198
243
 
@@ -201,8 +246,16 @@ var Grid = (0, _react.observer)(function (props) {
201
246
 
202
247
  var addr = field.address.toString();
203
248
  var rows = useRowProperties();
249
+
250
+ var _useFormBlockContext = (0, _.useFormBlockContext)(),
251
+ setPrintContent = _useFormBlockContext.setPrintContent;
252
+
253
+ (0, _react2.useEffect)(function () {
254
+ gridRef.current && (setPrintContent === null || setPrintContent === void 0 ? void 0 : setPrintContent(gridRef.current));
255
+ }, [gridRef.current]);
204
256
  return /*#__PURE__*/_react2.default.createElement(GridContext.Provider, {
205
257
  value: {
258
+ ref: gridRef,
206
259
  fieldSchema: fieldSchema,
207
260
  renderSchemaInitializer: render
208
261
  }
@@ -210,12 +263,16 @@ var Grid = (0, _react.observer)(function (props) {
210
263
  className: 'nb-grid',
211
264
  style: {
212
265
  position: 'relative'
213
- }
266
+ },
267
+ ref: gridRef
214
268
  }, /*#__PURE__*/_react2.default.createElement(DndWrapper, {
215
269
  dndContext: props.dndContext
216
270
  }, /*#__PURE__*/_react2.default.createElement(RowDivider, {
271
+ rows: rows,
272
+ first: true,
217
273
  id: "".concat(addr, "_0"),
218
274
  data: {
275
+ breakRemoveOn: breakRemoveOnGrid,
219
276
  wrapSchema: wrapRowSchema,
220
277
  insertAdjacent: 'afterBegin',
221
278
  schema: fieldSchema
@@ -227,8 +284,11 @@ var Grid = (0, _react.observer)(function (props) {
227
284
  name: schema.name,
228
285
  schema: schema
229
286
  }), /*#__PURE__*/_react2.default.createElement(RowDivider, {
287
+ rows: rows,
288
+ index: index,
230
289
  id: "".concat(addr, "_").concat(index + 1),
231
290
  data: {
291
+ breakRemoveOn: breakRemoveOnGrid,
232
292
  wrapSchema: wrapRowSchema,
233
293
  insertAdjacent: 'afterEnd',
234
294
  schema: schema
@@ -249,8 +309,11 @@ Grid.Row = (0, _react.observer)(function (props) {
249
309
  }, /*#__PURE__*/_react2.default.createElement("div", {
250
310
  className: (0, _classnames.default)('nb-grid-row', (0, _css.css)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin: 0 -24px;\n display: flex;\n position: relative;\n /* z-index: 0; */\n "]))))
251
311
  }, /*#__PURE__*/_react2.default.createElement(ColDivider, {
312
+ cols: cols,
313
+ first: true,
252
314
  id: "".concat(addr, "_0"),
253
315
  data: {
316
+ breakRemoveOn: breakRemoveOnRow,
254
317
  wrapSchema: wrapColSchema,
255
318
  insertAdjacent: 'afterBegin',
256
319
  schema: fieldSchema
@@ -262,8 +325,11 @@ Grid.Row = (0, _react.observer)(function (props) {
262
325
  name: schema.name,
263
326
  schema: schema
264
327
  }), /*#__PURE__*/_react2.default.createElement(ColDivider, {
328
+ cols: cols,
329
+ index: index,
265
330
  id: "".concat(addr, "_").concat(index + 1),
266
331
  data: {
332
+ breakRemoveOn: breakRemoveOnRow,
267
333
  wrapSchema: wrapColSchema,
268
334
  insertAdjacent: 'afterEnd',
269
335
  schema: schema
@@ -1,7 +1,3 @@
1
1
  import React from 'react';
2
- export declare const InputNumber: React.ForwardRefExoticComponent<Pick<Partial<import("antd").InputNumberProps<string | number> & {
3
- children?: React.ReactNode;
4
- } & {
5
- ref?: React.Ref<HTMLInputElement>;
6
- }>, keyof import("antd").InputNumberProps<string | number>> & React.RefAttributes<unknown>>;
2
+ export declare const InputNumber: React.ForwardRefExoticComponent<Pick<Partial<any>, string | number | symbol> & React.RefAttributes<unknown>>;
7
3
  export default InputNumber;
@@ -9,9 +9,36 @@ var _react = require("@formily/react");
9
9
 
10
10
  var _antd = require("antd");
11
11
 
12
+ var _react2 = _interopRequireDefault(require("react"));
13
+
12
14
  var _ReadPretty = require("./ReadPretty");
13
15
 
14
- var InputNumber = (0, _react.connect)(_antd.InputNumber, (0, _react.mapReadPretty)(_ReadPretty.ReadPretty));
16
+ var _excluded = ["onChange"];
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ 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; }
21
+
22
+ 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; }
23
+
24
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
+
26
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
27
+
28
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
29
+
30
+ var InputNumber = (0, _react.connect)(function (props) {
31
+ var onChange = props.onChange,
32
+ others = _objectWithoutProperties(props, _excluded);
33
+
34
+ var handleChange = function handleChange(v) {
35
+ onChange(parseFloat(v));
36
+ };
37
+
38
+ return /*#__PURE__*/_react2.default.createElement(_antd.InputNumber, _objectSpread({
39
+ onChange: handleChange
40
+ }, others));
41
+ }, (0, _react.mapReadPretty)(_ReadPretty.ReadPretty));
15
42
  exports.InputNumber = InputNumber;
16
43
  var _default = InputNumber;
17
44
  exports.default = _default;
@@ -7,9 +7,7 @@ exports.ReadPretty = void 0;
7
7
 
8
8
  var _shared = require("@formily/shared");
9
9
 
10
- var _MiniDecimal = require("rc-input-number/lib/utils/MiniDecimal");
11
-
12
- var _numberUtil = require("rc-input-number/lib/utils/numberUtil");
10
+ var _client = require("@nocobase/utils/client");
13
11
 
14
12
  var _react = _interopRequireDefault(require("react"));
15
13
 
@@ -25,10 +23,9 @@ var ReadPretty = function ReadPretty(props) {
25
23
  return /*#__PURE__*/_react.default.createElement("div", null);
26
24
  }
27
25
 
28
- var precision = Math.max((0, _numberUtil.getNumberPrecision)(String(value)), (0, _numberUtil.getNumberPrecision)(step));
29
26
  return /*#__PURE__*/_react.default.createElement("div", {
30
27
  className: 'nb-read-pretty-input-number'
31
- }, addonBefore, (0, _MiniDecimal.toFixed)(String(value), '.', precision), addonAfter);
28
+ }, addonBefore, (0, _client.toFixedByStep)(value, step), addonAfter);
32
29
  };
33
30
 
34
31
  exports.ReadPretty = ReadPretty;
@@ -77,6 +77,25 @@ var KanbanCardDesigner = function KanbanCardDesigner(props) {
77
77
  readPretty: true,
78
78
  block: 'Kanban'
79
79
  });
80
+ var associationFields = (0, _utils.useAssociatedFormItemInitializerFields)({
81
+ readPretty: true,
82
+ block: 'Kanban'
83
+ });
84
+ var items = [{
85
+ type: 'itemGroup',
86
+ title: t('Display fields'),
87
+ children: fields
88
+ }];
89
+
90
+ if (associationFields.length > 0) {
91
+ items.push({
92
+ type: 'divider'
93
+ }, {
94
+ type: 'itemGroup',
95
+ title: t('Display association fields'),
96
+ children: associationFields
97
+ });
98
+ }
80
99
 
81
100
  if (!designable) {
82
101
  return null;
@@ -113,20 +132,7 @@ var KanbanCardDesigner = function KanbanCardDesigner(props) {
113
132
  dn.loadAPIClientEvents();
114
133
  dn.insertBeforeEnd(schema);
115
134
  },
116
- items: [{
117
- type: 'itemGroup',
118
- title: t('Display fields'),
119
- children: fields
120
- }, {
121
- type: 'divider'
122
- }, {
123
- type: 'itemGroup',
124
- title: t('Display association fields'),
125
- children: (0, _utils.useAssociatedFormItemInitializerFields)({
126
- readPretty: true,
127
- block: 'Kanban'
128
- })
129
- }],
135
+ items: items,
130
136
  component: /*#__PURE__*/_react2.default.createElement(_icons.MenuOutlined, {
131
137
  style: {
132
138
  cursor: 'pointer',