@nocobase/client 0.7.2-alpha.5 → 0.7.3-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 (93) hide show
  1. package/es/block-provider/FormBlockProvider.js +8 -3
  2. package/es/block-provider/TableSelectorProvider.js +41 -13
  3. package/es/block-provider/hooks/index.d.ts +6 -0
  4. package/es/block-provider/hooks/index.js +145 -63
  5. package/es/collection-manager/CollectionField.js +5 -3
  6. package/es/collection-manager/interfaces/input.js +103 -0
  7. package/es/collection-manager/interfaces/integer.js +63 -0
  8. package/es/collection-manager/interfaces/markdown.js +34 -0
  9. package/es/collection-manager/interfaces/number.js +55 -0
  10. package/es/collection-manager/interfaces/password.js +35 -1
  11. package/es/collection-manager/interfaces/percent.js +97 -0
  12. package/es/collection-manager/interfaces/richText.js +34 -0
  13. package/es/collection-manager/interfaces/textarea.js +34 -0
  14. package/es/file-manager/FileStorageShortcut.js +2 -2
  15. package/es/locale/en_US.d.ts +5 -0
  16. package/es/locale/en_US.js +6 -1
  17. package/es/locale/zh_CN.d.ts +23 -0
  18. package/es/locale/zh_CN.js +24 -1
  19. package/es/plugin-manager/PluginManager.js +8 -4
  20. package/es/schema-component/antd/action/Action.Modal.js +1 -1
  21. package/es/schema-component/antd/form-item/FormItem.js +156 -3
  22. package/es/schema-component/antd/grid/Grid.js +72 -6
  23. package/es/schema-component/antd/input-number/InputNumber.d.ts +1 -5
  24. package/es/schema-component/antd/input-number/InputNumber.js +25 -1
  25. package/es/schema-component/antd/kanban/Kanban.Card.Designer.js +20 -14
  26. package/es/schema-component/antd/menu/Menu.js +6 -3
  27. package/es/schema-component/antd/percent/Percent.js +2 -2
  28. package/es/schema-component/antd/record-picker/InputRecordPicker.js +27 -13
  29. package/es/schema-component/antd/record-picker/ReadPrettyRecordPicker.js +4 -2
  30. package/es/schema-component/antd/table/Table.Array.js +2 -2
  31. package/es/schema-component/antd/table/Table.Void.js +11 -1
  32. package/es/schema-component/antd/table-v2/Table.js +1 -4
  33. package/es/schema-component/antd/time-picker/ReadPretty.js +11 -5
  34. package/es/schema-component/hooks/useDesignable.js +21 -21
  35. package/es/schema-component/hooks/useProps.js +1 -1
  36. package/es/schema-initializer/buttons/FormItemInitializers.js +14 -3
  37. package/es/schema-initializer/buttons/ReadPrettyFormActionInitializers.js +8 -0
  38. package/es/schema-initializer/buttons/ReadPrettyFormItemInitializers.js +14 -3
  39. package/es/schema-initializer/buttons/RecordBlockInitializers.js +32 -3
  40. package/es/schema-initializer/buttons/TableActionInitializers.js +11 -0
  41. package/es/schema-initializer/components/assigned-field/AssignedField.d.ts +4 -0
  42. package/es/schema-initializer/components/assigned-field/AssignedField.js +253 -69
  43. package/es/schema-initializer/items/index.d.ts +2 -0
  44. package/es/schema-initializer/items/index.js +46 -1
  45. package/es/schema-initializer/utils.js +6 -2
  46. package/es/system-settings/SystemSettingsShortcut.js +35 -12
  47. package/lib/block-provider/FormBlockProvider.js +7 -2
  48. package/lib/block-provider/TableSelectorProvider.js +41 -13
  49. package/lib/block-provider/hooks/index.d.ts +6 -0
  50. package/lib/block-provider/hooks/index.js +154 -65
  51. package/lib/collection-manager/CollectionField.js +5 -2
  52. package/lib/collection-manager/interfaces/input.js +104 -0
  53. package/lib/collection-manager/interfaces/integer.js +65 -0
  54. package/lib/collection-manager/interfaces/markdown.js +35 -0
  55. package/lib/collection-manager/interfaces/number.js +56 -0
  56. package/lib/collection-manager/interfaces/password.js +36 -1
  57. package/lib/collection-manager/interfaces/percent.js +99 -0
  58. package/lib/collection-manager/interfaces/richText.js +35 -0
  59. package/lib/collection-manager/interfaces/textarea.js +35 -0
  60. package/lib/file-manager/FileStorageShortcut.js +1 -1
  61. package/lib/locale/en_US.d.ts +5 -0
  62. package/lib/locale/en_US.js +6 -1
  63. package/lib/locale/zh_CN.d.ts +23 -0
  64. package/lib/locale/zh_CN.js +24 -1
  65. package/lib/plugin-manager/PluginManager.js +8 -3
  66. package/lib/schema-component/antd/action/Action.Modal.js +1 -1
  67. package/lib/schema-component/antd/form-item/FormItem.js +165 -5
  68. package/lib/schema-component/antd/grid/Grid.js +69 -3
  69. package/lib/schema-component/antd/input-number/InputNumber.d.ts +1 -5
  70. package/lib/schema-component/antd/input-number/InputNumber.js +29 -2
  71. package/lib/schema-component/antd/kanban/Kanban.Card.Designer.js +20 -14
  72. package/lib/schema-component/antd/menu/Menu.js +6 -3
  73. package/lib/schema-component/antd/percent/Percent.js +2 -2
  74. package/lib/schema-component/antd/record-picker/InputRecordPicker.js +27 -12
  75. package/lib/schema-component/antd/record-picker/ReadPrettyRecordPicker.js +3 -1
  76. package/lib/schema-component/antd/table/Table.Array.js +2 -2
  77. package/lib/schema-component/antd/table/Table.Void.js +11 -1
  78. package/lib/schema-component/antd/table-v2/Table.js +1 -4
  79. package/lib/schema-component/antd/time-picker/ReadPretty.js +10 -3
  80. package/lib/schema-component/hooks/useDesignable.js +21 -21
  81. package/lib/schema-component/hooks/useProps.js +1 -1
  82. package/lib/schema-initializer/buttons/FormItemInitializers.js +14 -2
  83. package/lib/schema-initializer/buttons/ReadPrettyFormActionInitializers.js +8 -0
  84. package/lib/schema-initializer/buttons/ReadPrettyFormItemInitializers.js +14 -2
  85. package/lib/schema-initializer/buttons/RecordBlockInitializers.js +34 -4
  86. package/lib/schema-initializer/buttons/TableActionInitializers.js +11 -0
  87. package/lib/schema-initializer/components/assigned-field/AssignedField.d.ts +4 -0
  88. package/lib/schema-initializer/components/assigned-field/AssignedField.js +254 -66
  89. package/lib/schema-initializer/items/index.d.ts +2 -0
  90. package/lib/schema-initializer/items/index.js +52 -1
  91. package/lib/schema-initializer/utils.js +6 -2
  92. package/lib/system-settings/SystemSettingsShortcut.js +37 -13
  93. package/package.json +6 -4
@@ -5,14 +5,18 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.AssignedField = void 0;
8
+ exports.AssignedFieldValueType = exports.AssignedField = void 0;
9
9
 
10
10
  var _react = require("@formily/react");
11
11
 
12
+ var _antd = require("antd");
13
+
12
14
  var _react2 = _interopRequireWildcard(require("react"));
13
15
 
14
16
  var _reactI18next = require("react-i18next");
15
17
 
18
+ var _blockProvider = require("../../../block-provider");
19
+
16
20
  var _collectionManager = require("../../../collection-manager");
17
21
 
18
22
  var _schemaComponent = require("../../../schema-component");
@@ -21,12 +25,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
21
25
 
22
26
  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; }
23
27
 
24
- 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; }
25
-
26
- 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
-
28
- 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; }
29
-
30
28
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
31
29
 
32
30
  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."); }
@@ -39,77 +37,267 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
39
37
 
40
38
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
41
39
 
40
+ 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; }
41
+
42
+ 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; }
43
+
44
+ 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; }
45
+
46
+ var DYNAMIC_RECORD_REG = /\{\{\s*currentRecord\.(.*)\s*\}\}/;
47
+ var DYNAMIC_USER_REG = /\{\{\s*currentUser\.(.*)\s*\}\}/;
48
+ var DYNAMIC_TIME_REG = /\{\{\s*currentTime\s*\}\}/;
49
+
50
+ var InternalField = function InternalField(props) {
51
+ var field = (0, _react.useField)();
52
+ var fieldSchema = (0, _react.useFieldSchema)();
53
+
54
+ var _useCollectionField = (0, _collectionManager.useCollectionField)(),
55
+ name = _useCollectionField.name,
56
+ interfaceType = _useCollectionField.interface,
57
+ uiSchema = _useCollectionField.uiSchema;
58
+
59
+ var component = (0, _schemaComponent.useComponent)(uiSchema === null || uiSchema === void 0 ? void 0 : uiSchema['x-component']);
60
+ var compile = (0, _schemaComponent.useCompile)();
61
+
62
+ var setFieldProps = function setFieldProps(key, value) {
63
+ field[key] = typeof field[key] === 'undefined' ? value : field[key];
64
+ };
65
+
66
+ var setRequired = function setRequired() {
67
+ if (typeof fieldSchema['required'] === 'undefined') {
68
+ field.required = !!uiSchema['required'];
69
+ }
70
+ };
71
+
72
+ var ctx = (0, _blockProvider.useFormBlockContext)();
73
+ (0, _react2.useEffect)(function () {
74
+ if (ctx === null || ctx === void 0 ? void 0 : ctx.field) {
75
+ ctx.field.added = ctx.field.added || new Set();
76
+ ctx.field.added.add(fieldSchema.name);
77
+ }
78
+ });
79
+ (0, _react2.useEffect)(function () {
80
+ if (!uiSchema) {
81
+ return;
82
+ }
83
+
84
+ setFieldProps('content', uiSchema['x-content']);
85
+ setFieldProps('title', uiSchema.title);
86
+ setFieldProps('description', uiSchema.description);
87
+ setFieldProps('initialValue', uiSchema.default);
88
+
89
+ if (!field.validator && uiSchema['x-validator']) {
90
+ field.validator = uiSchema['x-validator'];
91
+ }
92
+
93
+ if (fieldSchema['x-disabled'] === true) {
94
+ field.disabled = true;
95
+ }
96
+
97
+ if (fieldSchema['x-read-pretty'] === true) {
98
+ field.readPretty = true;
99
+ }
100
+
101
+ setRequired(); // @ts-ignore
102
+ // field.dataSource = uiSchema.enum;
103
+ // const originalProps = compile(uiSchema['x-component-props']) || {};
104
+ // const componentProps = merge(originalProps, field.componentProps || {});
105
+ // field.component = [component, componentProps];
106
+ }, [JSON.stringify(uiSchema)]);
107
+
108
+ if (!uiSchema) {
109
+ return null;
110
+ }
111
+
112
+ return /*#__PURE__*/_react2.default.createElement(component, props, props.children);
113
+ };
114
+
115
+ var CollectionField = (0, _react.connect)(function (props) {
116
+ var fieldSchema = (0, _react.useFieldSchema)();
117
+ return /*#__PURE__*/_react2.default.createElement(_collectionManager.CollectionFieldProvider, {
118
+ name: fieldSchema.name
119
+ }, /*#__PURE__*/_react2.default.createElement(InternalField, _objectSpread({}, props)));
120
+ });
121
+ var AssignedFieldValueType;
122
+ exports.AssignedFieldValueType = AssignedFieldValueType;
123
+
124
+ (function (AssignedFieldValueType) {
125
+ AssignedFieldValueType["ConstantValue"] = "constantValue";
126
+ AssignedFieldValueType["DynamicValue"] = "dynamicValue";
127
+ })(AssignedFieldValueType || (exports.AssignedFieldValueType = AssignedFieldValueType = {}));
128
+
42
129
  var AssignedField = function AssignedField(props) {
43
- var _field$value$value, _field$value;
130
+ var _initFieldType, _DYNAMIC_RECORD_REG$e, _DYNAMIC_RECORD_REG$e2, _DYNAMIC_RECORD_REG$e3, _DYNAMIC_USER_REG$exe, _DYNAMIC_USER_REG$exe2, _DYNAMIC_USER_REG$exe3;
44
131
 
45
132
  var _useTranslation = (0, _reactI18next.useTranslation)(),
46
133
  t = _useTranslation.t;
47
134
 
48
135
  var compile = (0, _schemaComponent.useCompile)();
49
136
  var field = (0, _react.useField)();
50
- var fieldSchema = (0, _react.useFieldSchema)(); // const [type, setType] = useState<string>('constantValue');
137
+ var fieldSchema = (0, _react.useFieldSchema)();
138
+ var isDynamicValue = DYNAMIC_RECORD_REG.test(field.value) || DYNAMIC_USER_REG.test(field.value) || DYNAMIC_TIME_REG.test(field.value);
139
+ var initType = isDynamicValue ? AssignedFieldValueType.DynamicValue : AssignedFieldValueType.ConstantValue;
51
140
 
52
- var _useState = (0, _react2.useState)((_field$value$value = field === null || field === void 0 ? void 0 : (_field$value = field.value) === null || _field$value === void 0 ? void 0 : _field$value.value) !== null && _field$value$value !== void 0 ? _field$value$value : ''),
141
+ var _useState = (0, _react2.useState)(initType),
53
142
  _useState2 = _slicedToArray(_useState, 2),
54
- value = _useState2[0],
55
- setValue = _useState2[1]; // const [options, setOptions] = useState<any[]>([]);
56
- // const { getField } = useCollection();
57
- // const collectionField = getField(fieldSchema.name);
58
- // const { uiSchema } = collectionField;
59
- // const currentUser = useFilterOptions('users');
60
- // const currentRecord = useFilterOptions(collectionField.collectionName);
61
- // useEffect(() => {
62
- // const opt = [
63
- // {
64
- // name: 'currentUser',
65
- // title: t('Current user'),
66
- // children: [...currentUser],
67
- // },
68
- // {
69
- // name: 'currentRecord',
70
- // title: t('Current record'),
71
- // children: [...currentRecord],
72
- // },
73
- // ];
74
- // setOptions(compile(opt));
75
- // }, []);
143
+ type = _useState2[0],
144
+ setType = _useState2[1];
145
+
146
+ var initFieldType = (_initFieldType = {}, _defineProperty(_initFieldType, "".concat(DYNAMIC_TIME_REG.test(field.value)), 'currentTime'), _defineProperty(_initFieldType, "".concat(DYNAMIC_USER_REG.test(field.value)), 'currentUser'), _defineProperty(_initFieldType, "".concat(DYNAMIC_RECORD_REG.test(field.value)), 'currentRecord'), _initFieldType);
147
+
148
+ var _useState3 = (0, _react2.useState)(initFieldType['true']),
149
+ _useState4 = _slicedToArray(_useState3, 2),
150
+ fieldType = _useState4[0],
151
+ setFieldType = _useState4[1];
152
+
153
+ var initRecordValue = (_DYNAMIC_RECORD_REG$e = (_DYNAMIC_RECORD_REG$e2 = DYNAMIC_RECORD_REG.exec(field.value)) === null || _DYNAMIC_RECORD_REG$e2 === void 0 ? void 0 : (_DYNAMIC_RECORD_REG$e3 = _DYNAMIC_RECORD_REG$e2[1]) === null || _DYNAMIC_RECORD_REG$e3 === void 0 ? void 0 : _DYNAMIC_RECORD_REG$e3.split('.')) !== null && _DYNAMIC_RECORD_REG$e !== void 0 ? _DYNAMIC_RECORD_REG$e : [];
154
+
155
+ var _useState5 = (0, _react2.useState)(initRecordValue),
156
+ _useState6 = _slicedToArray(_useState5, 2),
157
+ recordValue = _useState6[0],
158
+ setRecordValue = _useState6[1];
159
+
160
+ var initUserValue = (_DYNAMIC_USER_REG$exe = (_DYNAMIC_USER_REG$exe2 = DYNAMIC_USER_REG.exec(field.value)) === null || _DYNAMIC_USER_REG$exe2 === void 0 ? void 0 : (_DYNAMIC_USER_REG$exe3 = _DYNAMIC_USER_REG$exe2[1]) === null || _DYNAMIC_USER_REG$exe3 === void 0 ? void 0 : _DYNAMIC_USER_REG$exe3.split('.')) !== null && _DYNAMIC_USER_REG$exe !== void 0 ? _DYNAMIC_USER_REG$exe : [];
76
161
 
162
+ var _useState7 = (0, _react2.useState)(initUserValue),
163
+ _useState8 = _slicedToArray(_useState7, 2),
164
+ userValue = _useState8[0],
165
+ setUserValue = _useState8[1];
166
+
167
+ var initValue = isDynamicValue ? '' : field.value;
168
+
169
+ var _useState9 = (0, _react2.useState)(initValue),
170
+ _useState10 = _slicedToArray(_useState9, 2),
171
+ value = _useState10[0],
172
+ setValue = _useState10[1];
173
+
174
+ var _useState11 = (0, _react2.useState)([]),
175
+ _useState12 = _slicedToArray(_useState11, 2),
176
+ options = _useState12[0],
177
+ setOptions = _useState12[1];
178
+
179
+ var _useCollection = (0, _collectionManager.useCollection)(),
180
+ getField = _useCollection.getField;
181
+
182
+ var collectionField = getField(fieldSchema.name);
183
+ var fields = (0, _collectionManager.useCollectionFilterOptions)(collectionField === null || collectionField === void 0 ? void 0 : collectionField.collectionName);
184
+ var userFields = (0, _collectionManager.useCollectionFilterOptions)('users');
185
+ var dateTimeFields = ['createdAt', 'datetime', 'time', 'updatedAt'];
186
+ (0, _react2.useEffect)(function () {
187
+ var opt = [{
188
+ name: 'currentRecord',
189
+ title: t('Current record')
190
+ }, {
191
+ name: 'currentUser',
192
+ title: t('Current user')
193
+ }];
194
+
195
+ if (dateTimeFields.includes(collectionField.interface)) {
196
+ opt.unshift({
197
+ name: 'currentTime',
198
+ title: t('Current time')
199
+ });
200
+ } else {}
201
+
202
+ setOptions(compile(opt));
203
+ }, []);
204
+ (0, _react2.useEffect)(function () {
205
+ if (type === AssignedFieldValueType.ConstantValue) {
206
+ field.value = value;
207
+ } else {
208
+ if (fieldType === 'currentTime') {
209
+ field.value = '{{currentTime}}';
210
+ } else if (fieldType === 'currentUser') {
211
+ (userValue === null || userValue === void 0 ? void 0 : userValue.length) > 0 && (field.value = "{{currentUser.".concat(userValue.join('.'), "}}"));
212
+ } else if (fieldType === 'currentRecord') {
213
+ (recordValue === null || recordValue === void 0 ? void 0 : recordValue.length) > 0 && (field.value = "{{currentRecord.".concat(recordValue.join('.'), "}}"));
214
+ }
215
+ }
216
+ }, [type, value, fieldType, userValue, recordValue]);
217
+ (0, _react2.useEffect)(function () {
218
+ if (type === AssignedFieldValueType.ConstantValue) {
219
+ setFieldType(null);
220
+ setUserValue([]);
221
+ setRecordValue([]);
222
+ }
223
+ }, [type]);
224
+
225
+ var typeChangeHandler = function typeChangeHandler(val) {
226
+ setType(val);
227
+ };
77
228
 
78
229
  var valueChangeHandler = function valueChangeHandler(val) {
79
- setValue(val);
80
- }; // const typeChangeHandler = (val) => {
81
- // setType(val);
82
- // };
83
-
84
-
85
- return /*#__PURE__*/_react2.default.createElement(_collectionManager.CollectionField, _objectSpread(_objectSpread({}, props), {}, {
86
- value: field.value,
87
- onChange: valueChangeHandler
88
- })); // return (
89
- // <Space>
90
- // <Select defaultValue={type} value={type} style={{ width: 120 }} onChange={typeChangeHandler}>
91
- // <Select.Option value="constantValue">{t('Constant value')}</Select.Option>
92
- // <Select.Option value="dynamicValue">{t('Dynamic value')}</Select.Option>
93
- // </Select>
94
- // {type === 'constantValue' ? (
95
- // <CollectionField {...props} onChange={valueChangeHandler} />
96
- // ) : (
97
- // <Cascader
98
- // fieldNames={{
99
- // label: 'title',
100
- // value: 'name',
101
- // children: 'children',
102
- // }}
103
- // style={{
104
- // width: 150,
105
- // }}
106
- // options={options}
107
- // onChange={valueChangeHandler}
108
- // defaultValue={value}
109
- // />
110
- // )}
111
- // </Space>
112
- // );
230
+ var _val$target$value, _val$target;
231
+
232
+ setValue((_val$target$value = val === null || val === void 0 ? void 0 : (_val$target = val.target) === null || _val$target === void 0 ? void 0 : _val$target.value) !== null && _val$target$value !== void 0 ? _val$target$value : val);
233
+ };
234
+
235
+ var fieldTypeChangeHandler = function fieldTypeChangeHandler(val) {
236
+ setFieldType(val);
237
+ };
238
+
239
+ var recordChangeHandler = function recordChangeHandler(val) {
240
+ setRecordValue(val);
241
+ };
242
+
243
+ var userChangeHandler = function userChangeHandler(val) {
244
+ setUserValue(val);
245
+ };
246
+
247
+ return /*#__PURE__*/_react2.default.createElement(_antd.Space, null, /*#__PURE__*/_react2.default.createElement(_antd.Select, {
248
+ defaultValue: type,
249
+ value: type,
250
+ style: {
251
+ width: 150
252
+ },
253
+ onChange: typeChangeHandler
254
+ }, /*#__PURE__*/_react2.default.createElement(_antd.Select.Option, {
255
+ value: AssignedFieldValueType.ConstantValue
256
+ }, t('Constant value')), /*#__PURE__*/_react2.default.createElement(_antd.Select.Option, {
257
+ value: AssignedFieldValueType.DynamicValue
258
+ }, t('Dynamic value'))), type === AssignedFieldValueType.ConstantValue ? /*#__PURE__*/_react2.default.createElement(CollectionField, _objectSpread(_objectSpread({}, props), {}, {
259
+ value: value,
260
+ onChange: valueChangeHandler,
261
+ style: {
262
+ minWidth: 150
263
+ }
264
+ })) : /*#__PURE__*/_react2.default.createElement(_antd.Select, {
265
+ defaultValue: fieldType,
266
+ value: fieldType,
267
+ style: {
268
+ minWidth: 150
269
+ },
270
+ onChange: fieldTypeChangeHandler
271
+ }, options === null || options === void 0 ? void 0 : options.map(function (opt) {
272
+ return /*#__PURE__*/_react2.default.createElement(_antd.Select.Option, {
273
+ key: opt.name,
274
+ value: opt.name
275
+ }, opt.title);
276
+ })), fieldType === 'currentRecord' && /*#__PURE__*/_react2.default.createElement(_antd.Cascader, {
277
+ fieldNames: {
278
+ label: 'title',
279
+ value: 'name',
280
+ children: 'children'
281
+ },
282
+ style: {
283
+ minWidth: 150
284
+ },
285
+ options: compile(fields),
286
+ onChange: recordChangeHandler,
287
+ defaultValue: recordValue
288
+ }), fieldType === 'currentUser' && /*#__PURE__*/_react2.default.createElement(_antd.Cascader, {
289
+ fieldNames: {
290
+ label: 'title',
291
+ value: 'name',
292
+ children: 'children'
293
+ },
294
+ style: {
295
+ minWidth: 150
296
+ },
297
+ options: compile(userFields),
298
+ onChange: userChangeHandler,
299
+ defaultValue: userValue
300
+ }));
113
301
  };
114
302
 
115
303
  exports.AssignedField = AssignedField;
@@ -15,7 +15,9 @@ export declare const CreateActionInitializer: (props: any) => JSX.Element;
15
15
  export declare const ViewActionInitializer: (props: any) => JSX.Element;
16
16
  export declare const UpdateActionInitializer: (props: any) => JSX.Element;
17
17
  export declare const DestroyActionInitializer: (props: any) => JSX.Element;
18
+ export declare const PrintActionInitializer: (props: any) => JSX.Element;
18
19
  export declare const BulkDestroyActionInitializer: (props: any) => JSX.Element;
20
+ export declare const RefreshActionInitializer: (props: any) => JSX.Element;
19
21
  export declare const SubmitActionInitializer: (props: any) => JSX.Element;
20
22
  export declare const CreateSubmitActionInitializer: (props: any) => JSX.Element;
21
23
  export declare const UpdateSubmitActionInitializer: (props: any) => JSX.Element;
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.ViewActionInitializer = exports.UpdateSubmitActionInitializer = exports.UpdateActionInitializer = exports.TableSelectorInitializer = exports.TableCollectionFieldInitializer = exports.TableBlockInitializer = exports.TableActionColumnInitializer = exports.SubmitActionInitializer = exports.RecordReadPrettyFormBlockInitializer = exports.RecordReadPrettyAssociationFormBlockInitializer = exports.RecordFormBlockInitializer = exports.RecordAssociationFormBlockInitializer = exports.RecordAssociationDetailsBlockInitializer = exports.RecordAssociationCalendarBlockInitializer = exports.RecordAssociationBlockInitializer = exports.MarkdownBlockInitializer = exports.KanbanBlockInitializer = exports.InitializerWithSwitch = exports.G2PlotInitializer = exports.FormBlockInitializer = exports.FilterActionInitializer = exports.DetailsBlockInitializer = exports.DestroyActionInitializer = exports.DataBlockInitializer = exports.CustomizeActionInitializer = exports.CreateSubmitActionInitializer = exports.CreateFormBlockInitializer = exports.CreateActionInitializer = exports.CollectionFieldInitializer = exports.CalendarBlockInitializer = exports.BulkDestroyActionInitializer = exports.BlockInitializer = exports.ActionInitializer = void 0;
8
+ exports.ViewActionInitializer = exports.UpdateSubmitActionInitializer = exports.UpdateActionInitializer = exports.TableSelectorInitializer = exports.TableCollectionFieldInitializer = exports.TableBlockInitializer = exports.TableActionColumnInitializer = exports.SubmitActionInitializer = exports.RefreshActionInitializer = exports.RecordReadPrettyFormBlockInitializer = exports.RecordReadPrettyAssociationFormBlockInitializer = exports.RecordFormBlockInitializer = exports.RecordAssociationFormBlockInitializer = exports.RecordAssociationDetailsBlockInitializer = exports.RecordAssociationCalendarBlockInitializer = exports.RecordAssociationBlockInitializer = exports.PrintActionInitializer = exports.MarkdownBlockInitializer = exports.KanbanBlockInitializer = exports.InitializerWithSwitch = exports.G2PlotInitializer = exports.FormBlockInitializer = exports.FilterActionInitializer = exports.DetailsBlockInitializer = exports.DestroyActionInitializer = exports.DataBlockInitializer = exports.CustomizeActionInitializer = exports.CreateSubmitActionInitializer = exports.CreateFormBlockInitializer = exports.CreateActionInitializer = exports.CollectionFieldInitializer = exports.CalendarBlockInitializer = exports.BulkDestroyActionInitializer = exports.BlockInitializer = exports.ActionInitializer = void 0;
9
9
 
10
10
  var _icons = require("@ant-design/icons");
11
11
 
@@ -770,6 +770,24 @@ var DestroyActionInitializer = function DestroyActionInitializer(props) {
770
770
 
771
771
  exports.DestroyActionInitializer = DestroyActionInitializer;
772
772
 
773
+ var PrintActionInitializer = function PrintActionInitializer(props) {
774
+ var schema = {
775
+ title: '{{ t("Print") }}',
776
+ 'x-action': 'print',
777
+ 'x-component': 'Action',
778
+ 'x-designer': 'Action.Designer',
779
+ 'x-component-props': {
780
+ icon: 'PrinterOutlined',
781
+ useProps: '{{ useDetailPrintActionProps }}'
782
+ }
783
+ };
784
+ return /*#__PURE__*/_react2.default.createElement(ActionInitializer, _objectSpread(_objectSpread({}, props), {}, {
785
+ schema: schema
786
+ }));
787
+ };
788
+
789
+ exports.PrintActionInitializer = PrintActionInitializer;
790
+
773
791
  var BulkDestroyActionInitializer = function BulkDestroyActionInitializer(props) {
774
792
  var schema = {
775
793
  title: '{{ t("Delete") }}',
@@ -792,6 +810,24 @@ var BulkDestroyActionInitializer = function BulkDestroyActionInitializer(props)
792
810
 
793
811
  exports.BulkDestroyActionInitializer = BulkDestroyActionInitializer;
794
812
 
813
+ var RefreshActionInitializer = function RefreshActionInitializer(props) {
814
+ var schema = {
815
+ title: '{{ t("Refresh") }}',
816
+ 'x-action': 'refresh',
817
+ 'x-component': 'Action',
818
+ 'x-designer': 'Action.Designer',
819
+ 'x-component-props': {
820
+ icon: 'ReloadOutlined',
821
+ useProps: '{{ useRefreshActionProps }}'
822
+ }
823
+ };
824
+ return /*#__PURE__*/_react2.default.createElement(ActionInitializer, _objectSpread(_objectSpread({}, props), {}, {
825
+ schema: schema
826
+ }));
827
+ };
828
+
829
+ exports.RefreshActionInitializer = RefreshActionInitializer;
830
+
795
831
  var SubmitActionInitializer = function SubmitActionInitializer(props) {
796
832
  var schema = {
797
833
  title: '{{ t("Submit") }}',
@@ -943,6 +979,7 @@ var RecordFormBlockInitializer = function RecordFormBlockInitializer(props) {
943
979
 
944
980
  var collection = (0, _collectionManager.useCollection)();
945
981
  var association = (0, _blockProvider.useBlockAssociationContext)();
982
+ console.log('RecordFormBlockInitializer', collection, association);
946
983
  return /*#__PURE__*/_react2.default.createElement(_SchemaInitializer.SchemaInitializer.Item, _objectSpread(_objectSpread({
947
984
  icon: /*#__PURE__*/_react2.default.createElement(_icons.FormOutlined, null)
948
985
  }, others), {}, {
@@ -1031,6 +1068,11 @@ var RecordReadPrettyFormBlockInitializer = function RecordReadPrettyFormBlockIni
1031
1068
 
1032
1069
  var collection = (0, _collectionManager.useCollection)();
1033
1070
  var association = (0, _blockProvider.useBlockAssociationContext)();
1071
+
1072
+ var _useBlockRequestConte = (0, _blockProvider.useBlockRequestContext)(),
1073
+ block = _useBlockRequestConte.block;
1074
+
1075
+ var actionInitializers = block !== 'TableField' ? 'ReadPrettyFormActionInitializers' : null;
1034
1076
  return /*#__PURE__*/_react2.default.createElement(_SchemaInitializer.SchemaInitializer.Item, _objectSpread(_objectSpread({
1035
1077
  icon: /*#__PURE__*/_react2.default.createElement(_icons.FormOutlined, null)
1036
1078
  }, others), {}, {
@@ -1057,6 +1099,7 @@ var RecordReadPrettyFormBlockInitializer = function RecordReadPrettyFormBlockIni
1057
1099
 
1058
1100
  if (item.template.componentName === 'ReadPrettyFormItem') {
1059
1101
  blockSchema = (0, _utils.createReadPrettyFormBlockSchema)({
1102
+ actionInitializers: actionInitializers,
1060
1103
  association: association,
1061
1104
  collection: collection.name,
1062
1105
  action: 'get',
@@ -1079,6 +1122,7 @@ var RecordReadPrettyFormBlockInitializer = function RecordReadPrettyFormBlockIni
1079
1122
 
1080
1123
  case 8:
1081
1124
  insert((0, _utils.createReadPrettyFormBlockSchema)({
1125
+ actionInitializers: actionInitializers,
1082
1126
  association: association,
1083
1127
  collection: collection.name,
1084
1128
  action: 'get',
@@ -1214,6 +1258,11 @@ var RecordReadPrettyAssociationFormBlockInitializer = function RecordReadPrettyA
1214
1258
  var field = item.field;
1215
1259
  var collection = field.target;
1216
1260
  var resource = "".concat(field.collectionName, ".").concat(field.name);
1261
+
1262
+ var _useBlockRequestConte2 = (0, _blockProvider.useBlockRequestContext)(),
1263
+ block = _useBlockRequestConte2.block;
1264
+
1265
+ var actionInitializers = block !== 'TableField' ? 'ReadPrettyFormActionInitializers' : null;
1217
1266
  return /*#__PURE__*/_react2.default.createElement(_SchemaInitializer.SchemaInitializer.Item, _objectSpread(_objectSpread({
1218
1267
  icon: /*#__PURE__*/_react2.default.createElement(_icons.FormOutlined, null)
1219
1268
  }, others), {}, {
@@ -1239,6 +1288,7 @@ var RecordReadPrettyAssociationFormBlockInitializer = function RecordReadPrettyA
1239
1288
 
1240
1289
  if (item.template.componentName === 'ReadPrettyFormItem') {
1241
1290
  blockSchema = (0, _utils.createReadPrettyFormBlockSchema)({
1291
+ actionInitializers: actionInitializers,
1242
1292
  collection: collection,
1243
1293
  resource: resource,
1244
1294
  association: resource,
@@ -1262,6 +1312,7 @@ var RecordReadPrettyAssociationFormBlockInitializer = function RecordReadPrettyA
1262
1312
 
1263
1313
  case 8:
1264
1314
  insert((0, _utils.createReadPrettyFormBlockSchema)({
1315
+ actionInitializers: actionInitializers,
1265
1316
  collection: collection,
1266
1317
  resource: resource,
1267
1318
  association: resource,
@@ -300,8 +300,9 @@ var useAssociatedFormItemInitializerFields = function useAssociatedFormItemIniti
300
300
  _ref2$block = _ref2.block,
301
301
  block = _ref2$block === void 0 ? 'Form' : _ref2$block;
302
302
 
303
+ var interfaces = block === 'Form' ? ['m2o'] : ['o2o', 'oho', 'obo', 'm2o'];
303
304
  var groups = fields === null || fields === void 0 ? void 0 : (_fields$filter3 = fields.filter(function (field) {
304
- return ['o2o', 'oho', 'obo', 'm2o'].includes(field.interface);
305
+ return interfaces.includes(field.interface);
305
306
  })) === null || _fields$filter3 === void 0 ? void 0 : _fields$filter3.map(function (field) {
306
307
  var _subFields$filter2, _field$uiSchema4;
307
308
 
@@ -318,7 +319,10 @@ var useAssociatedFormItemInitializerFields = function useAssociatedFormItemIniti
318
319
  // title: subField?.uiSchema?.title || subField.name,
319
320
  'x-designer': 'FormItem.Designer',
320
321
  'x-component': 'CollectionField',
321
- 'x-component-props': {},
322
+ 'x-read-pretty': readPretty,
323
+ 'x-component-props': {
324
+ 'pattern-disable': block === 'Form' && readPretty
325
+ },
322
326
  'x-decorator': 'FormItem',
323
327
  'x-collection-field': "".concat(name, ".").concat(field.name, ".").concat(subField.name)
324
328
  }; // interfaceConfig?.schemaInitialize?.(schema, { field, block: 'Form', readPretty: form.readPretty });
@@ -13,6 +13,8 @@ var _react = require("@formily/react");
13
13
 
14
14
  var _shared = require("@formily/shared");
15
15
 
16
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
17
+
16
18
  var _react2 = _interopRequireWildcard(require("react"));
17
19
 
18
20
  var _reactI18next = require("react-i18next");
@@ -25,12 +27,12 @@ var _locale = _interopRequireDefault(require("../locale"));
25
27
 
26
28
  var _schemaComponent = require("../schema-component");
27
29
 
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
-
30
30
  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); }
31
31
 
32
32
  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; }
33
33
 
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+
34
36
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
35
37
 
36
38
  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."); }
@@ -110,6 +112,9 @@ var useSaveSystemSettingsValues = function useSaveSystemSettingsValues() {
110
112
  return {
111
113
  run: function run() {
112
114
  return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
115
+ var _values$enabledLangua;
116
+
117
+ var values, lang;
113
118
  return regeneratorRuntime.wrap(function _callee2$(_context2) {
114
119
  while (1) {
115
120
  switch (_context2.prev = _context2.next) {
@@ -118,18 +123,28 @@ var useSaveSystemSettingsValues = function useSaveSystemSettingsValues() {
118
123
  return form.submit();
119
124
 
120
125
  case 2:
121
- setVisible(false);
126
+ values = (0, _cloneDeep.default)(form.values);
122
127
  mutate({
123
- data: _objectSpread(_objectSpread({}, data === null || data === void 0 ? void 0 : data.data), form.values)
128
+ data: _objectSpread(_objectSpread({}, data === null || data === void 0 ? void 0 : data.data), values)
124
129
  });
125
130
  _context2.next = 6;
126
131
  return api.request({
127
132
  url: 'systemSettings:update/1',
128
133
  method: 'post',
129
- data: form.values
134
+ data: values
130
135
  });
131
136
 
132
137
  case 6:
138
+ lang = ((_values$enabledLangua = values.enabledLanguages) === null || _values$enabledLangua === void 0 ? void 0 : _values$enabledLangua[0]) || 'en-US';
139
+
140
+ if (values.enabledLanguages.length < 2 && api.auth.getLocale() !== lang) {
141
+ api.auth.setLocale('');
142
+ window.location.reload();
143
+ } else {
144
+ setVisible(false);
145
+ }
146
+
147
+ case 8:
133
148
  case "end":
134
149
  return _context2.stop();
135
150
  }
@@ -177,14 +192,23 @@ var schema = {
177
192
  mode: 'multiple'
178
193
  },
179
194
  'x-decorator': 'FormItem',
180
- enum: langs
181
- },
182
- appLang: {
183
- type: 'string',
184
- title: '{{t("Default language")}}',
185
- 'x-component': 'Select',
186
- 'x-decorator': 'FormItem',
187
- enum: langs
195
+ enum: langs,
196
+ 'x-reactions': function xReactions(field) {
197
+ field.dataSource = langs.map(function (item) {
198
+ var _field$value;
199
+
200
+ var label = item.label;
201
+
202
+ if (((_field$value = field.value) === null || _field$value === void 0 ? void 0 : _field$value[0]) === item.value) {
203
+ label += "(".concat(_2.i18n.t('Default'), ")");
204
+ }
205
+
206
+ return {
207
+ label: label,
208
+ value: item.value
209
+ };
210
+ });
211
+ }
188
212
  },
189
213
  allowSignUp: {
190
214
  type: 'boolean',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/client",
3
- "version": "0.7.2-alpha.5",
3
+ "version": "0.7.3-alpha.1",
4
4
  "license": "Apache-2.0",
5
5
  "licenses": [
6
6
  {
@@ -19,14 +19,15 @@
19
19
  "@formily/antd": "2.0.20",
20
20
  "@formily/core": "2.0.20",
21
21
  "@formily/react": "2.0.20",
22
- "@nocobase/sdk": "0.7.2-alpha.5",
23
- "@nocobase/utils": "0.7.2-alpha.5",
22
+ "@nocobase/sdk": "0.7.3-alpha.1",
23
+ "@nocobase/utils": "0.7.3-alpha.1",
24
24
  "ahooks": "^3.0.5",
25
25
  "antd": "~4.19.5",
26
26
  "axios": "^0.26.1",
27
27
  "classnames": "^2.3.1",
28
28
  "file-saver": "^2.0.5",
29
29
  "i18next": "^21.6.0",
30
+ "json-templates": "^4.2.0",
30
31
  "marked": "^4.0.12",
31
32
  "mathjs": "^10.6.0",
32
33
  "react-beautiful-dnd": "^13.1.0",
@@ -38,6 +39,7 @@
38
39
  "react-image-lightbox": "^5.1.4",
39
40
  "react-quill": "^1.3.5",
40
41
  "react-router-dom": "^5.2.0",
42
+ "react-to-print": "^2.14.7",
41
43
  "use-deep-compare-effect": "^1.8.1"
42
44
  },
43
45
  "peerDependencies": {
@@ -52,5 +54,5 @@
52
54
  "@types/marked": "^4.0.1",
53
55
  "axios-mock-adapter": "^1.20.0"
54
56
  },
55
- "gitHead": "3956d0111afe9a4527199606331c5faa9ace2fa7"
57
+ "gitHead": "09597f41800ec567f64000e928cd68c28bb927e3"
56
58
  }