@kne/react-form-antd 1.2.14 → 2.0.0-alpha.0.3

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.
package/dist/index.es.js DELETED
@@ -1,875 +0,0 @@
1
- import _extends from '@babel/runtime/helpers/extends';
2
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
- import React, { forwardRef, useState, useRef, useEffect, useCallback } from 'react';
4
- import PropTypes from 'prop-types';
5
- import classnames from 'classnames';
6
- import ReactForm__default, { preset as preset$1, useSubmit, useReset } from '@kne/react-form';
7
- export * from '@kne/react-form';
8
- import { widget, hooks, hoc } from '@kne/react-form-helper';
9
- export { hooks, utils } from '@kne/react-form-helper';
10
- import _regeneratorRuntime from '@babel/runtime/regenerator';
11
- import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
12
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
13
- import { Upload as Upload$1, message, Modal, Row, Col, Slider, Cascader as Cascader$2, Checkbox as Checkbox$2, DatePicker as DatePicker$1, Input as Input$1, InputNumber as InputNumber$1, Radio, Select as Select$1, Switch as Switch$2, TimePicker as TimePicker$1, TreeSelect as TreeSelect$1, Button } from 'antd';
14
- import merge from 'lodash/merge';
15
- import get from 'lodash/get';
16
- import { LoadingOutlined, PlusOutlined, UploadOutlined } from '@ant-design/icons';
17
- import AvatarEditor from 'react-avatar-editor';
18
- import { withFetch } from '@kne/react-fetch';
19
- import uniqueId from 'lodash/uniqueId';
20
- import isEqual from 'lodash/isEqual';
21
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
22
- import Space from 'antd/es/space';
23
-
24
- function styleInject(css, ref) {
25
- if ( ref === void 0 ) ref = {};
26
- var insertAt = ref.insertAt;
27
-
28
- if (!css || typeof document === 'undefined') { return; }
29
-
30
- var head = document.head || document.getElementsByTagName('head')[0];
31
- var style = document.createElement('style');
32
- style.type = 'text/css';
33
-
34
- if (insertAt === 'top') {
35
- if (head.firstChild) {
36
- head.insertBefore(style, head.firstChild);
37
- } else {
38
- head.appendChild(style);
39
- }
40
- } else {
41
- head.appendChild(style);
42
- }
43
-
44
- if (style.styleSheet) {
45
- style.styleSheet.cssText = css;
46
- } else {
47
- style.appendChild(document.createTextNode(css));
48
- }
49
- }
50
-
51
- var css_248z = ".react-form, .react-form--large, .react-form--small, .react-form--inner, .react-form--inner--large, .react-form--inner--small, .react-form--inline, .react-form--inline--large, .react-form--inline--small {\n text-align: left;\n font-size: 12px; }\n .react-form .ant-select, .react-form--large .ant-select, .react-form--small .ant-select, .react-form--inner .ant-select, .react-form--inner--large .ant-select, .react-form--inner--small .ant-select, .react-form--inline .ant-select, .react-form--inline--large .ant-select, .react-form--inline--small .ant-select {\n width: 100%; }\n .react-form--large .react-form__field-label {\n font-size: 14px;\n margin-right: 20px;\n line-height: 34px; }\n .react-form--small .react-form__field-label {\n margin-right: 12px;\n line-height: 24px; }\n .react-form--inner .react-form__field, .react-form--inner--large .react-form__field, .react-form--inner--small .react-form__field {\n margin-bottom: 22px; }\n .react-form--inner .react-form__field-main, .react-form--inner--large .react-form__field-main, .react-form--inner--small .react-form__field-main {\n flex-direction: column; }\n .react-form--inner .react-form__field-input, .react-form--inner--large .react-form__field-input, .react-form--inner--small .react-form__field-input {\n align-self: auto; }\n .react-form--inner .react-form__field-label, .react-form--inner--large .react-form__field-label, .react-form--inner--small .react-form__field-label {\n font-size: 14px;\n text-align: left;\n font-weight: bold;\n margin-left: 0;\n margin-bottom: 2px; }\n .react-form--inner--small .react-form__field-label {\n font-size: 12px;\n margin-bottom: 1px; }\n .react-form--inline, .react-form--inline--large, .react-form--inline--small {\n padding: 30px 30px 6px; }\n .react-form--inline .react-form__field, .react-form--inline--large .react-form__field, .react-form--inline--small .react-form__field {\n display: inline-block;\n margin-right: 40px; }\n .react-form--inline .react-form__field:last-child, .react-form--inline--large .react-form__field:last-child, .react-form--inline--small .react-form__field:last-child {\n margin-right: 0; }\n .react-form--inline .react-form__field-label, .react-form--inline--large .react-form__field-label, .react-form--inline--small .react-form__field-label {\n min-width: auto !important;\n padding-left: 0; }\n .react-form--inline .react-form__field-label.is-req:before, .react-form--inline--large .react-form__field-label.is-req:before, .react-form--inline--small .react-form__field-label.is-req:before {\n position: static; }\n .react-form--inline--large .react-form__field-label {\n font-size: 14px;\n line-height: 34px; }\n .react-form--inline--small .react-form__field-label {\n margin-right: 12px; }\n .react-form__field-main {\n display: flex; }\n .react-form__field-label {\n text-align: right;\n margin-right: 16px;\n line-height: 30px;\n margin-left: 10px;\n position: relative; }\n .react-form__field-label.is-req:before {\n position: absolute;\n color: #fc3333;\n font-weight: bold;\n content: '*';\n margin-right: 4px;\n transform: translateX(-10px); }\n .react-form__field-input {\n align-self: center;\n flex: 1;\n position: relative; }\n .react-form__field {\n margin-bottom: 24px;\n transition: border-color 300ms; }\n .react-form__field.is-req-error .react-form__field-component, .react-form__field.is-error .react-form__field-component {\n border-color: #fc3333; }\n .react-form__field.is-req-error .react-form__field-component:focus, .react-form__field.is-error .react-form__field-component:focus {\n box-shadow: 0 0 0 2px rgba(252, 51, 51, 0.2); }\n .react-form__field.is-req-error .react-form__field-component .ant-select-selection, .react-form__field.is-req-error .react-form__field-component .ant-input, .react-form__field.is-req-error .react-form__field-component .ant-radio-inner, .react-form__field.is-error .react-form__field-component .ant-select-selection, .react-form__field.is-error .react-form__field-component .ant-input, .react-form__field.is-error .react-form__field-component .ant-radio-inner {\n border-color: #fc3333; }\n .react-form__field.is-req-error .react-form__field-component .ant-select-selection:focus, .react-form__field.is-req-error .react-form__field-component .ant-input:focus, .react-form__field.is-req-error .react-form__field-component .ant-radio-inner:focus, .react-form__field.is-error .react-form__field-component .ant-select-selection:focus, .react-form__field.is-error .react-form__field-component .ant-input:focus, .react-form__field.is-error .react-form__field-component .ant-radio-inner:focus {\n box-shadow: 0 0 0 2px rgba(252, 51, 51, 0.2); }\n .react-form__field.is-req-error .react-form__field-component .ant-upload.ant-upload-select-picture-card, .react-form__field.is-error .react-form__field-component .ant-upload.ant-upload-select-picture-card {\n border-color: #fc3333; }\n .react-form__field.is-req-error .react-form__field-component.ant-input-affix-wrapper .ant-input, .react-form__field.is-error .react-form__field-component.ant-input-affix-wrapper .ant-input {\n box-shadow: none; }\n .react-form__field.is-req-error .react-form__field-component.ant-input-affix-wrapper-focused, .react-form__field.is-error .react-form__field-component.ant-input-affix-wrapper-focused {\n box-shadow: 0 0 0 2px rgba(252, 51, 51, 0.2); }\n .react-form__field.is-req-error .react-form__field-component.ant-select > .ant-select-selector, .react-form__field.is-error .react-form__field-component.ant-select > .ant-select-selector {\n border-color: #fc3333; }\n .react-form__field.is-req-error .react-form__field-component.ant-select.ant-select-focused > .ant-select-selector, .react-form__field.is-error .react-form__field-component.ant-select.ant-select-focused > .ant-select-selector {\n box-shadow: 0 0 0 2px rgba(252, 51, 51, 0.2); }\n .react-form__field-error {\n color: #fc3333;\n font-size: 12px;\n position: absolute;\n top: calc(100% + 1px);\n left: 0; }\n\n.react-form-modal .ant-modal-content > .ant-modal-body {\n padding: 0; }\n\n.react-form-modal .ant-modal-confirm-btns {\n display: none; }\n\n.react-form-modal.ant-modal-confirm .ant-modal-header, .react-form-modal.ant-modal-confirm .ant-modal-close {\n display: block; }\n\n.react-form-avatar .preview {\n width: 85px;\n height: 85px;\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center; }\n .react-form-avatar .preview img {\n max-width: 100%;\n max-height: 100%; }\n";
52
- styleInject(css_248z);
53
-
54
- var ScrollToError = widget.ScrollToError,
55
- EnterSubmit = widget.EnterSubmit,
56
- FormStore = widget.FormStore,
57
- MaxLabelProvider = widget.MaxLabelProvider,
58
- SizeProvider = widget.SizeProvider;
59
- var Form = forwardRef(function (_ref, ref) {
60
- var className = _ref.className,
61
- cache = _ref.cache,
62
- enterSubmit = _ref.enterSubmit,
63
- scrollToError = _ref.scrollToError,
64
- scrollProps = _ref.scrollProps,
65
- type = _ref.type,
66
- size = _ref.size,
67
- children = _ref.children,
68
- props = _objectWithoutProperties(_ref, ["className", "cache", "enterSubmit", "scrollToError", "scrollProps", "type", "size", "children"]);
69
-
70
- var computedClass = 'react-form';
71
-
72
- if (type !== 'default') {
73
- computedClass += "--".concat(type);
74
- }
75
-
76
- if (size !== 'middle') {
77
- computedClass += "--".concat(size);
78
- }
79
-
80
- var maxLabel = /*#__PURE__*/React.createElement(MaxLabelProvider, null, children);
81
- return /*#__PURE__*/React.createElement("form", {
82
- className: classnames(computedClass, className),
83
- onSubmit: function onSubmit(e) {
84
- e.preventDefault();
85
- e.stopPropagation();
86
- }
87
- }, /*#__PURE__*/React.createElement(SizeProvider, {
88
- value: {
89
- size: size
90
- }
91
- }, /*#__PURE__*/React.createElement(ReactForm__default, _extends({}, props, {
92
- ref: ref
93
- }), cache ? /*#__PURE__*/React.createElement(FormStore, {
94
- cache: cache
95
- }) : null, scrollToError ? /*#__PURE__*/React.createElement(ScrollToError, {
96
- scrollProps: scrollProps
97
- }) : null, enterSubmit ? /*#__PURE__*/React.createElement(EnterSubmit, null, maxLabel) : maxLabel)));
98
- });
99
- Form.defaultProps = {
100
- type: 'default',
101
- size: 'middle',
102
- scrollToError: true,
103
- enterSubmit: false,
104
- scrollProps: {
105
- block: 'center'
106
- }
107
- };
108
- Form.propTypes = {
109
- className: PropTypes.string,
110
- type: PropTypes.oneOf(['inline', 'default', 'inner']),
111
- size: PropTypes.oneOf(['small', 'middle', 'large']),
112
- enterSubmit: PropTypes.bool,
113
- scrollToError: PropTypes.bool,
114
- scrollProps: PropTypes.shape({
115
- block: PropTypes.oneOf(['start', 'center', 'end', 'nearest']),
116
- behavior: PropTypes.oneOf(['auto', 'smooth']),
117
- inline: PropTypes.oneOf(['start', 'center', 'end', 'nearest'])
118
- })
119
- };
120
-
121
- var globalParams = {
122
- rules: {},
123
- field: {
124
- upload: {
125
- action: '/open-api/upload_static_file/interview-manager',
126
- transformResponse: function transformResponse(response) {
127
- return {
128
- code: response.code,
129
- msg: response.msg,
130
- results: get(response, 'results[0].targetPath')
131
- };
132
- }
133
- },
134
- avatar: {
135
- transformResponse: function transformResponse(response) {
136
- return {
137
- code: response.code,
138
- results: response.results,
139
- msg: response.msg
140
- };
141
- },
142
- action: '/upload'
143
- }
144
- }
145
- };
146
- var preset = (function (props) {
147
- merge(globalParams, props);
148
- preset$1(globalParams.rules);
149
- });
150
-
151
- var useOnChange = hooks.useOnChange;
152
- var avatarParams = globalParams.field.avatar;
153
-
154
- var _Avatar = function _Avatar(_ref) {
155
- var className = _ref.className,
156
- imageUrl = _ref.value,
157
- propsChange = _ref.onChange,
158
- onBeforeUpload = _ref.beforeUpload,
159
- transformResponse = _ref.transformResponse,
160
- action = _ref.action,
161
- imageType = _ref.imageType,
162
- size = _ref.fileSize,
163
- children = _ref.children,
164
- onError = _ref.onError,
165
- editor = _ref.editor;
166
-
167
- var _useState = useState(false),
168
- _useState2 = _slicedToArray(_useState, 2),
169
- loading = _useState2[0],
170
- setLoading = _useState2[1];
171
-
172
- var _useState3 = useState(imageUrl),
173
- _useState4 = _slicedToArray(_useState3, 2),
174
- showImageUrl = _useState4[0],
175
- setImageUrl = _useState4[1];
176
-
177
- var editorRef = useRef();
178
- useEffect(function () {
179
- setImageUrl(imageUrl);
180
- }, [imageUrl]);
181
- /* base64转blob */
182
-
183
- var dataURLtoBlob = function dataURLtoBlob(dataurl) {
184
- var arr = dataurl.split(','); // 注意base64的最后面中括号和引号是不转译的
185
-
186
- var _arr = arr[1].substring(0, arr[1].length - 2);
187
-
188
- var mime = arr[0].match(/:(.*?);/)[1],
189
- bstr = atob(_arr),
190
- n = bstr.length,
191
- u8arr = new Uint8Array(n);
192
-
193
- while (n--) {
194
- u8arr[n] = bstr.charCodeAt(n);
195
- }
196
-
197
- return new Blob([u8arr], {
198
- type: mime
199
- });
200
- };
201
-
202
- var AvatarEditorBox = function AvatarEditorBox(_ref2) {
203
- var file = _ref2.file;
204
-
205
- var _useState5 = useState(0),
206
- _useState6 = _slicedToArray(_useState5, 2),
207
- rotate = _useState6[0],
208
- setRotate = _useState6[1];
209
-
210
- var _useState7 = useState(1),
211
- _useState8 = _slicedToArray(_useState7, 2),
212
- scale = _useState8[0],
213
- setScale = _useState8[1];
214
-
215
- var onChange = function onChange(v) {
216
- console.log(v);
217
- setRotate(v);
218
- };
219
-
220
- var onChangeScale = function onChangeScale(v) {
221
- console.log(v);
222
- setScale(v);
223
- };
224
-
225
- return /*#__PURE__*/React.createElement("div", {
226
- style: {
227
- 'marginLeft': '50px'
228
- }
229
- }, /*#__PURE__*/React.createElement(AvatarEditor, {
230
- ref: editorRef,
231
- image: file,
232
- width: editor.width,
233
- height: editor.height,
234
- border: 1,
235
- borderRadius: editor.borderRadius,
236
- color: [24, 144, 255, 1] // RGBA
237
- ,
238
- scale: scale,
239
- rotate: rotate
240
- }), /*#__PURE__*/React.createElement(Row, {
241
- gutter: 4
242
- }, /*#__PURE__*/React.createElement(Col, {
243
- span: 4
244
- }, /*#__PURE__*/React.createElement("span", null, "\u65CB\u8F6C")), /*#__PURE__*/React.createElement(Col, {
245
- span: 15
246
- }, /*#__PURE__*/React.createElement(Slider, {
247
- tooltipVisible: false,
248
- defaultValue: rotate,
249
- min: -180,
250
- max: 180,
251
- onChange: onChange
252
- }))), /*#__PURE__*/React.createElement(Row, {
253
- gutter: 4
254
- }, /*#__PURE__*/React.createElement(Col, {
255
- span: 4
256
- }, /*#__PURE__*/React.createElement("span", null, "\u653E\u5927")), /*#__PURE__*/React.createElement(Col, {
257
- span: 15
258
- }, /*#__PURE__*/React.createElement(Slider, {
259
- tooltipVisible: false,
260
- defaultValue: scale,
261
- step: 0.1,
262
- min: 1,
263
- max: 3,
264
- onChange: onChangeScale
265
- }))));
266
- };
267
-
268
- var uploadButton = /*#__PURE__*/React.createElement("div", null, loading ? /*#__PURE__*/React.createElement(LoadingOutlined, null) : /*#__PURE__*/React.createElement(PlusOutlined, null), children);
269
-
270
- var beforeUpload = /*#__PURE__*/function () {
271
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(file) {
272
- return _regeneratorRuntime.wrap(function _callee$(_context) {
273
- while (1) {
274
- switch (_context.prev = _context.next) {
275
- case 0:
276
- return _context.abrupt("return", new Promise(function (resolve, reject) {
277
- console.log('文件', file);
278
- var isJpgOrPng = imageType.indexOf(file.type) > -1;
279
-
280
- if (!isJpgOrPng) {
281
- onError("\u53EA\u652F\u6301".concat(imageType.map(function (str) {
282
- return str.replace('image/', '');
283
- }).join('/'), "\u683C\u5F0F\u56FE\u7247!"), 'typeError', {
284
- type: imageType,
285
- fileType: file.type
286
- });
287
- reject();
288
- return false;
289
- }
290
-
291
- var isLt = file.size / 1024 / 1024 < size;
292
-
293
- if (!isLt) {
294
- onError("\u56FE\u7247\u4E0D\u80FD\u8D85\u8FC7".concat(size, "MB!"), 'sizeError', {
295
- size: size,
296
- fileSize: file.size
297
- });
298
- reject();
299
- return false;
300
- }
301
- /*剪切图像*/
302
- // editor:{open:false,width:250,height:250,borderRadius:0-100,text:'剪切'}
303
-
304
-
305
- if (editor.open) {
306
- Modal.success({
307
- // title: '剪切图像',
308
- icon: '',
309
- content: /*#__PURE__*/React.createElement(AvatarEditorBox, {
310
- file: file
311
- }),
312
- okText: editor.text,
313
- onOk: function onOk(close) {
314
- // console.log(editorRef.current);
315
- var base64 = editorRef.current.getImage().toDataURL();
316
- setImageUrl(base64);
317
- var blob = dataURLtoBlob(base64);
318
- var files = new window.File([blob], file.name, {
319
- type: file.type
320
- });
321
- onBeforeUpload && onBeforeUpload(files);
322
- resolve(files); // console.log(files);
323
-
324
- close();
325
- }
326
- });
327
- } else {
328
- onBeforeUpload && onBeforeUpload(file);
329
- resolve(file); // return onBeforeUpload && onBeforeUpload(file);
330
- }
331
- }));
332
-
333
- case 1:
334
- case "end":
335
- return _context.stop();
336
- }
337
- }
338
- }, _callee);
339
- }));
340
-
341
- return function beforeUpload(_x) {
342
- return _ref3.apply(this, arguments);
343
- };
344
- }();
345
-
346
- var onChange = function onChange(info) {
347
- if (info.file.status === 'uploading') {
348
- setLoading(true);
349
- return;
350
- }
351
-
352
- if (info.file.status === 'done') {
353
- setLoading(false);
354
- var response = (transformResponse || avatarParams.transformResponse)(info.file.response);
355
-
356
- if (response.code === 200) {
357
- propsChange(response.results);
358
- } else {
359
- onError(response.msg, 'xhrError', response);
360
- }
361
- }
362
- };
363
-
364
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Upload$1, {
365
- className: classnames(className, 'react-form-avatar'),
366
- listType: "picture-card",
367
- showUploadList: false,
368
- action: action || avatarParams.action,
369
- beforeUpload: beforeUpload,
370
- onChange: onChange
371
- }, showImageUrl ? /*#__PURE__*/React.createElement("div", {
372
- className: "preview"
373
- }, /*#__PURE__*/React.createElement("img", {
374
- src: showImageUrl,
375
- alt: "avatar"
376
- })) : uploadButton));
377
- };
378
-
379
- _Avatar.defaultProps = {
380
- imageType: ['image/jpeg', 'image/png'],
381
- fileSize: 2,
382
- // 单位MB
383
- children: /*#__PURE__*/React.createElement("div", {
384
- className: "ant-upload-text"
385
- }, "\u70B9\u51FB\u4E0A\u4F20"),
386
- onError: function onError(info) {
387
- return message.error(info);
388
- },
389
- editor: {
390
- open: false,
391
- width: 250,
392
- height: 250,
393
- borderRadius: 1,
394
- text: '剪切'
395
- }
396
- };
397
-
398
- var AvatarInput = function AvatarInput(props) {
399
- var render = useOnChange(props);
400
- return render(_Avatar);
401
- };
402
-
403
- AvatarInput.field = _Avatar;
404
-
405
- var useOnChange$1 = hooks.useOnChange;
406
-
407
- var Cascader = function Cascader(props) {
408
- var render = useOnChange$1(props);
409
- return render(Cascader$2);
410
- };
411
-
412
- var useOnChange$2 = hooks.useOnChange,
413
- useCheckedToValue = hooks.useCheckedToValue;
414
- var withChecked = hoc.withChecked;
415
- var WithCheckbox = withChecked(Checkbox$2);
416
-
417
- var Checkbox = function Checkbox(props) {
418
- var checkedProps = useCheckedToValue(props);
419
- var render = useOnChange$2(checkedProps);
420
- return render(WithCheckbox);
421
- };
422
-
423
- var useOnChange$3 = hooks.useOnChange;
424
- var _CheckboxGroup = Checkbox$2.Group;
425
-
426
- var CheckboxGroup = function CheckboxGroup(props) {
427
- var render = useOnChange$3(props);
428
- return render(_CheckboxGroup);
429
- };
430
-
431
- CheckboxGroup.Checkbox = Checkbox$2;
432
-
433
- var useOnChange$4 = hooks.useOnChange;
434
- var MonthPicker = DatePicker$1.MonthPicker,
435
- RangePicker = DatePicker$1.RangePicker,
436
- WeekPicker = DatePicker$1.WeekPicker;
437
-
438
- var _DatePicker = function _DatePicker(props) {
439
- var render = useOnChange$4(props);
440
- return render(DatePicker$1);
441
- };
442
-
443
- var _MonthPicker = function _MonthPicker(props) {
444
- var render = useOnChange$4(props);
445
- return render(MonthPicker);
446
- };
447
-
448
- var _RangePicker = function _RangePicker(props) {
449
- var render = useOnChange$4(props);
450
- return render(RangePicker);
451
- };
452
-
453
- var _WeekPicker = function _WeekPicker(props) {
454
- var render = useOnChange$4(props);
455
- return render(WeekPicker);
456
- };
457
-
458
- _DatePicker.MonthPicker = _MonthPicker;
459
- _DatePicker.RangePicker = _RangePicker;
460
- _DatePicker.WeekPicker = _WeekPicker;
461
-
462
- var useDecorator = hooks.useDecorator;
463
-
464
- var InputField = function InputField(props) {
465
- var render = useDecorator(props);
466
- return render(Input$1);
467
- };
468
-
469
- InputField.defaultProps = {
470
- autoComplete: 'off'
471
- };
472
-
473
- var useDecorator$1 = hooks.useDecorator;
474
-
475
- var InputNumberField = function InputNumberField(props) {
476
- var render = useDecorator$1(props);
477
- return render(InputNumber$1);
478
- };
479
-
480
- InputNumberField.defaultProps = {
481
- autoComplete: 'off'
482
- };
483
-
484
- var useOnChange$5 = hooks.useOnChange;
485
-
486
- var RadioGroup = function RadioGroup(_ref) {
487
- var onChange = _ref.onChange,
488
- props = _objectWithoutProperties(_ref, ["onChange"]);
489
-
490
- var handler = useCallback(function (e) {
491
- onChange && onChange(e.target.value);
492
- }, [onChange]);
493
- return /*#__PURE__*/React.createElement(Radio.Group, _extends({}, props, {
494
- onChange: handler
495
- }));
496
- };
497
-
498
- var _RadioGroup = function _RadioGroup(props) {
499
- var render = useOnChange$5(props);
500
- return render(RadioGroup);
501
- };
502
-
503
- _RadioGroup.Radio = Radio;
504
-
505
- var useOnChange$6 = hooks.useOnChange;
506
-
507
- var _Select = function _Select(props) {
508
- var render = useOnChange$6(props);
509
- return render(Select$1);
510
- };
511
-
512
- _Select.Option = Select$1.Option;
513
- _Select.OptGroup = Select$1.OptGroup;
514
-
515
- var useOnChange$7 = hooks.useOnChange;
516
-
517
- var _SelectFetch = withFetch(function (_ref) {
518
- var data = _ref.data,
519
- setData = _ref.setData,
520
- refresh = _ref.refresh,
521
- isLoading = _ref.isLoading,
522
- children = _ref.children,
523
- props = _objectWithoutProperties(_ref, ["data", "setData", "refresh", "isLoading", "children"]);
524
-
525
- return /*#__PURE__*/React.createElement(Select$1, props, children({
526
- data: data,
527
- refresh: refresh,
528
- isLoading: isLoading,
529
- setData: setData
530
- }));
531
- });
532
-
533
- var SelectFetch = function SelectFetch(props) {
534
- var render = useOnChange$7(props);
535
- return render(_SelectFetch);
536
- };
537
-
538
- SelectFetch.Option = Select$1.Option;
539
- SelectFetch.OptGroup = Select$1.OptGroup;
540
-
541
- var useOnChange$8 = hooks.useOnChange,
542
- useCheckedToValue$1 = hooks.useCheckedToValue;
543
- var withChecked$1 = hoc.withChecked;
544
- var WithSwitch = withChecked$1(Switch$2);
545
-
546
- var Switch = function Switch(props) {
547
- var checkedProps = useCheckedToValue$1(props);
548
- var render = useOnChange$8(checkedProps);
549
- return render(WithSwitch);
550
- };
551
-
552
- var useDecorator$2 = hooks.useDecorator;
553
-
554
- var TextArea = function TextArea(props) {
555
- var render = useDecorator$2(props);
556
- return render(Input$1.TextArea);
557
- };
558
-
559
- var useOnChange$9 = hooks.useOnChange;
560
- var RangePicker$1 = TimePicker$1.RangePicker;
561
-
562
- var _TimePicker = function _TimePicker(props) {
563
- var render = useOnChange$9(props);
564
- return render(TimePicker$1);
565
- };
566
-
567
- var _RangePicker$1 = function _RangePicker(props) {
568
- var render = useOnChange$9(props);
569
- return render(RangePicker$1);
570
- };
571
-
572
- _TimePicker.RangePicker = _RangePicker$1;
573
-
574
- var useOnChange$a = hooks.useOnChange;
575
-
576
- var _TreeSelect = function _TreeSelect(props) {
577
- var render = useOnChange$a(props);
578
- return render(TreeSelect$1);
579
- };
580
-
581
- _TreeSelect.TreeNode = TreeSelect$1.TreeNode;
582
-
583
- var useOnChange$b = hooks.useOnChange;
584
- var Dragger = Upload$1.Dragger;
585
- var uploadParams = globalParams.field.upload;
586
-
587
- var valueToList = function valueToList(value) {
588
- if (!value) {
589
- return [];
590
- }
591
-
592
- return value.map(function (item) {
593
- return {
594
- uid: uniqueId(),
595
- name: item.substr(item.lastIndexOf('/') + 1),
596
- status: 'done',
597
- response: {
598
- code: 200,
599
- results: item
600
- }
601
- };
602
- });
603
- };
604
-
605
- var listToValue = function listToValue(value) {
606
- return value.slice(0).filter(function (_ref) {
607
- var status = _ref.status;
608
- return status === 'done';
609
- }).map(function (_ref2) {
610
- var response = _ref2.response;
611
- return response.results;
612
- });
613
- };
614
-
615
- var withValueAdapter = function withValueAdapter(WrappedComponent) {
616
- return function (_ref3) {
617
- var value = _ref3.value,
618
- _onChange = _ref3.onChange,
619
- props = _objectWithoutProperties(_ref3, ["value", "onChange"]);
620
-
621
- var _useState = useState([]),
622
- _useState2 = _slicedToArray(_useState, 2),
623
- list = _useState2[0],
624
- setList = _useState2[1];
625
-
626
- var targetListRef = useRef([]);
627
- useEffect(function () {
628
- if (isEqual(value, targetListRef.current)) {
629
- return;
630
- }
631
-
632
- setList(valueToList(value));
633
- }, [value]);
634
- return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, props, {
635
- value: list,
636
- onChange: function onChange(value) {
637
- value = value.map(function (item) {
638
- return Object.assign({}, item);
639
- });
640
- setList(value);
641
- var targetList = listToValue(value);
642
- targetListRef.current = targetList;
643
-
644
- if (isEqual(targetList, value)) {
645
- return;
646
- }
647
-
648
- _onChange(targetList);
649
- }
650
- }));
651
- };
652
- };
653
-
654
- var _Upload = function _Upload(_ref4) {
655
- var className = _ref4.className,
656
- list = _ref4.value,
657
- setList = _ref4.onChange,
658
- onUploadComplete = _ref4.onUploadComplete,
659
- onBeforeUpload = _ref4.beforeUpload,
660
- maxLength = _ref4.maxLength,
661
- drag = _ref4.drag,
662
- transformResponse = _ref4.transformResponse,
663
- action = _ref4.action,
664
- accept = _ref4.accept,
665
- size = _ref4.fileSize,
666
- children = _ref4.children,
667
- onError = _ref4.onError,
668
- props = _objectWithoutProperties(_ref4, ["className", "value", "onChange", "onUploadComplete", "beforeUpload", "maxLength", "drag", "transformResponse", "action", "accept", "fileSize", "children", "onError"]);
669
-
670
- var beforeUpload = function beforeUpload(file) {
671
- if (maxLength === 1) {
672
- setList([]);
673
- }
674
- /*const typeAllowed = accept.length === 0 || !!accept.find((type) => type === file.type);
675
- if (!typeAllowed) {
676
- onError(`只支持${accept.join('/')}格式文件!`, 'typeError', {
677
- type: accept,
678
- fileType: file.type
679
- });
680
- return false;
681
- }*/
682
-
683
-
684
- var isLt = file.size / 1024 / 1024 < size;
685
-
686
- if (!isLt) {
687
- onError("\u6587\u4EF6\u4E0D\u80FD\u8D85\u8FC7".concat(size, "MB!"), 'sizeError', {
688
- size: size,
689
- fileSize: file.size
690
- });
691
- return false;
692
- }
693
-
694
- return onBeforeUpload && onBeforeUpload(file);
695
- };
696
-
697
- var onChange = function onChange(info) {
698
- if (['uploading', 'done', 'error', 'removed'].indexOf(info.file.status) === -1) {
699
- return;
700
- }
701
-
702
- if (info.fileList.length > maxLength) {
703
- onError("\u4E0A\u4F20\u6587\u4EF6\u4E0D\u80FD\u8D85\u8FC7\u6700\u5927\u5141\u8BB8\u6570\u91CF".concat(maxLength), 'xhrError', maxLength);
704
- return;
705
- }
706
-
707
- if (info.file.status === 'done') {
708
- info.file.response = (transformResponse || uploadParams.transformResponse)(info.file.response);
709
-
710
- if (info.file.response.code === 200) {
711
- info.file.name = info.file.response.results.substr(info.file.response.results.lastIndexOf('/') + 1);
712
- onUploadComplete(info.file);
713
- } else {
714
- info.file.status = 'error';
715
- onError(info.file.response.msg, 'xhrError', info.file.response);
716
- }
717
- }
718
-
719
- var newList = list.slice(0);
720
- var index = newList.findIndex(function (_ref5) {
721
- var uid = _ref5.uid;
722
- return uid === info.file.uid;
723
- });
724
- index > -1 && newList.splice(index, 1);
725
-
726
- if (info.file.status !== 'removed') {
727
- newList.push(info.file);
728
- }
729
-
730
- setList(newList);
731
- };
732
-
733
- var UploadComponent = drag ? Dragger : Upload$1;
734
- return /*#__PURE__*/React.createElement(UploadComponent, _extends({}, props, {
735
- action: action || uploadParams.action,
736
- fileList: list,
737
- accept: accept.join(','),
738
- onChange: onChange,
739
- beforeUpload: beforeUpload
740
- }), children);
741
- };
742
-
743
- _Upload.defaultProps = {
744
- value: [],
745
- accept: [],
746
- fileSize: 2,
747
- maxLength: 1,
748
- children: /*#__PURE__*/React.createElement(Button, null, /*#__PURE__*/React.createElement(UploadOutlined, null), "\u70B9\u51FB\u4E0A\u4F20"),
749
- onError: function onError(info) {
750
- return message.error(info);
751
- },
752
- onUploadComplete: function onUploadComplete() {}
753
- };
754
- var AdapterUpload = withValueAdapter(_Upload);
755
-
756
- var UploadInput = function UploadInput(props) {
757
- var render = useOnChange$b(props);
758
- return render(AdapterUpload);
759
- };
760
-
761
- UploadInput.field = _Upload;
762
-
763
- var SubmitButton = function SubmitButton(props) {
764
- var _useSubmit = useSubmit(props),
765
- isPass = _useSubmit.isPass,
766
- isLoading = _useSubmit.isLoading,
767
- submitProps = _objectWithoutProperties(_useSubmit, ["isPass", "isLoading"]);
768
-
769
- return /*#__PURE__*/React.createElement(Button, _extends({
770
- loading: isLoading
771
- }, submitProps, props));
772
- };
773
-
774
- var ResetButton = function ResetButton(props) {
775
- var resetProps = useReset();
776
- return /*#__PURE__*/React.createElement(Button, _extends({}, resetProps, props));
777
- };
778
-
779
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
780
-
781
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
782
- var FetchForm = withFetch(Form);
783
-
784
- var CommonModal = function CommonModal(_ref) {
785
- var formProps = _ref.formProps,
786
- footer = _ref.footer,
787
- children = _ref.children;
788
- var TargetForm = formProps.hasOwnProperty('url') ? FetchForm : Form;
789
- return /*#__PURE__*/React.createElement(TargetForm, formProps, /*#__PURE__*/React.createElement("div", {
790
- className: "ant-modal-body"
791
- }, children), /*#__PURE__*/React.createElement("div", {
792
- className: "ant-modal-footer"
793
- }, footer ? footer : /*#__PURE__*/React.createElement(Space, null, /*#__PURE__*/React.createElement(ResetButton, null, "\u91CD\u7F6E"), /*#__PURE__*/React.createElement(SubmitButton, {
794
- type: "primary"
795
- }, "\u786E\u5B9A"))));
796
- };
797
-
798
- var FormModal = function FormModal(_ref2) {
799
- var className = _ref2.className,
800
- _ref2$formProps = _ref2.formProps,
801
- formProps = _ref2$formProps === void 0 ? {} : _ref2$formProps,
802
- footer = _ref2.footer,
803
- children = _ref2.children,
804
- props = _objectWithoutProperties(_ref2, ["className", "formProps", "footer", "children"]);
805
-
806
- return /*#__PURE__*/React.createElement(Modal, _extends({}, props, {
807
- className: classnames(className, 'react-form-modal'),
808
- footer: null
809
- }), /*#__PURE__*/React.createElement(CommonModal, {
810
- formProps: formProps,
811
- footer: footer
812
- }, children));
813
- };
814
-
815
- FormModal.modal = function (_ref3) {
816
- var className = _ref3.className,
817
- title = _ref3.title,
818
- _ref3$formProps = _ref3.formProps,
819
- formProps = _ref3$formProps === void 0 ? {} : _ref3$formProps,
820
- footer = _ref3.footer,
821
- content = _ref3.content,
822
- props = _objectWithoutProperties(_ref3, ["className", "title", "formProps", "footer", "content"]);
823
-
824
- return Modal.info(_objectSpread(_objectSpread({}, props), {}, {
825
- title: title ? /*#__PURE__*/React.createElement("div", {
826
- className: "ant-modal-header"
827
- }, /*#__PURE__*/React.createElement("div", {
828
- className: "ant-modal-title"
829
- }, title)) : null,
830
- className: classnames(className, 'react-form-modal'),
831
- content: /*#__PURE__*/React.createElement(CommonModal, {
832
- formProps: formProps,
833
- footer: footer
834
- }, content),
835
- icon: null,
836
- footer: null
837
- }));
838
- };
839
-
840
- var Avatar = AvatarInput;
841
- var Cascader$1 = Cascader;
842
- var Checkbox$1 = Checkbox;
843
- var CheckboxGroup$1 = CheckboxGroup;
844
- var DatePicker = _DatePicker;
845
- var Input = InputField;
846
- var InputNumber = InputNumberField;
847
- var RadioGroup$1 = _RadioGroup;
848
- var Select = _Select;
849
- var SelectFetch$1 = SelectFetch;
850
- var Switch$1 = Switch;
851
- var TextArea$1 = TextArea;
852
- var TimePicker = _TimePicker;
853
- var TreeSelect = _TreeSelect;
854
- var Upload = UploadInput;
855
- var fields = {
856
- Avatar: Avatar,
857
- Cascader: Cascader$1,
858
- Checkbox: Checkbox$1,
859
- CheckboxGroup: CheckboxGroup$1,
860
- DatePicker: DatePicker,
861
- Input: Input,
862
- InputNumber: InputNumber,
863
- RadioGroup: RadioGroup$1,
864
- Select: Select,
865
- SelectFetch: SelectFetch$1,
866
- Switch: Switch$1,
867
- TextArea: TextArea$1,
868
- TimePicker: TimePicker,
869
- TreeSelect: TreeSelect,
870
- Upload: Upload
871
- };
872
-
873
- export default Form;
874
- export { Avatar, Cascader$1 as Cascader, Checkbox$1 as Checkbox, CheckboxGroup$1 as CheckboxGroup, DatePicker, FormModal, Input, InputNumber, RadioGroup$1 as RadioGroup, ResetButton, Select, SelectFetch$1 as SelectFetch, SubmitButton, Switch$1 as Switch, TextArea$1 as TextArea, TimePicker, TreeSelect, Upload, fields, preset };
875
- //# sourceMappingURL=index.es.js.map