iglooform 2.5.11 → 2.5.14

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.
@@ -162,9 +162,16 @@ var Element = function Element(_ref) {
162
162
 
163
163
  useEffect(function () {
164
164
  if (!formItemProps.name || preview || !formItemProps.copiedValue.copied) return;
165
+ var originalValue = form === null || form === void 0 ? void 0 : form.getFieldValue(formItemProps.name);
166
+ var value = formItemProps.copiedValue.value;
167
+
168
+ if (_typeof(originalValue) === 'object' && _typeof(value) === 'object') {
169
+ value = Object.assign(originalValue, formItemProps.copiedValue.value);
170
+ }
171
+
165
172
  form && form.setFields([{
166
173
  name: formItemProps.name,
167
- value: formItemProps.copiedValue.value,
174
+ value: value,
168
175
  errors: []
169
176
  }]);
170
177
  }, [formItemProps.copiedValue.value]);
@@ -156,9 +156,16 @@ var Element = function Element(props) {
156
156
 
157
157
  useEffect(function () {
158
158
  if (!formItemProps.name || preview || !formItemProps.copiedValue.copied) return;
159
+ var originalValue = form === null || form === void 0 ? void 0 : form.getFieldValue(formItemProps.name);
160
+ var value = formItemProps.copiedValue.value;
161
+
162
+ if (_typeof(originalValue) === 'object' && _typeof(value) === 'object') {
163
+ value = Object.assign(originalValue, formItemProps.copiedValue.value);
164
+ }
165
+
159
166
  form && form.setFields([{
160
167
  name: formItemProps.name,
161
- value: formItemProps.copiedValue.value,
168
+ value: value,
162
169
  errors: []
163
170
  }]);
164
171
  }, [formItemProps.copiedValue.value]);
@@ -43,7 +43,7 @@ import LocaleContext from '../locale/locale-context';
43
43
  import Button from '../button';
44
44
  import Input from '../input';
45
45
  import './style';
46
- import { compareOptions, optionsHOC } from '../utils/option-utils';
46
+ import { compareOptions, compareSelected, optionsHOC } from '../utils/option-utils';
47
47
  var Option = _Select.Option,
48
48
  OptGroup = _Select.OptGroup;
49
49
  export { Option, OptGroup };
@@ -84,7 +84,7 @@ var IglooSelect = function IglooSelect(_ref) {
84
84
 
85
85
  var originOptions = useRef(options);
86
86
  useEffect(function () {
87
- typeof rest.onChange === 'function' && valueProp !== selected && rest.onChange(selected, selectedOptions);
87
+ typeof rest.onChange === 'function' && compareSelected(selected, valueProp) && rest.onChange(selected, selectedOptions);
88
88
  }, [selected]);
89
89
  useEffect(function () {
90
90
  valueProp !== selected && setSelected(valueProp);
@@ -59,7 +59,10 @@ var IglooSelect = function IglooSelect(_ref) {
59
59
  return _jsx(_Select, _objectSpread(_objectSpread({
60
60
  placeholder: placeholder || formatMessage({
61
61
  id: 'Please select'
62
- })
62
+ }),
63
+ getPopupContainer: function getPopupContainer(trigger) {
64
+ return trigger.parentNode;
65
+ }
63
66
  }, omit(rest, formMethods)), {}, {
64
67
  options: children ? void 0 : options,
65
68
  value: value,
@@ -82,9 +85,6 @@ var IglooSelect = function IglooSelect(_ref) {
82
85
  }
83
86
  })]
84
87
  }),
85
- getPopupContainer: function getPopupContainer(trigger) {
86
- return trigger.parentNode;
87
- },
88
88
  className: classnames('igloo-select', className),
89
89
  onDropdownVisibleChange: function onDropdownVisibleChange(open) {
90
90
  setOpen(open);
@@ -566,7 +566,8 @@ var IglooUpload = function IglooUpload(props) {
566
566
  handleReUpload: handleReUpload,
567
567
  handlePreview: handlePreview,
568
568
  handleDelete: handleDelete,
569
- containerRef: containerRef
569
+ containerRef: containerRef,
570
+ disabled: props.disabled
570
571
  })]
571
572
  });
572
573
  };
@@ -577,7 +578,8 @@ var FileList = function FileList(_ref7) {
577
578
  limit = _ref7.limit,
578
579
  handleDelete = _ref7.handleDelete,
579
580
  handlePreview = _ref7.handlePreview,
580
- handleReUpload = _ref7.handleReUpload;
581
+ handleReUpload = _ref7.handleReUpload,
582
+ disabled = _ref7.disabled;
581
583
 
582
584
  var _useState3 = useState(false),
583
585
  _useState4 = _slicedToArray(_useState3, 2),
@@ -648,10 +650,10 @@ var FileList = function FileList(_ref7) {
648
650
  style: {
649
651
  fontSize: 24,
650
652
  color: '#999999',
651
- cursor: 'pointer'
653
+ cursor: disabled ? 'default' : 'pointer'
652
654
  },
653
655
  onClick: function onClick() {
654
- return handleDelete(index);
656
+ return !disabled && handleDelete(index);
655
657
  }
656
658
  })]
657
659
  }), status === 'failed' && _jsxs("div", {
@@ -660,20 +662,20 @@ var FileList = function FileList(_ref7) {
660
662
  style: {
661
663
  fontSize: 24,
662
664
  color: '#999999',
663
- cursor: 'pointer'
665
+ cursor: disabled ? 'default' : 'pointer'
664
666
  },
665
667
  onClick: function onClick() {
666
- return handleReUpload(index);
668
+ return !disabled && handleReUpload(index);
667
669
  },
668
670
  className: 'igloo-upload-preview-item-operation-left-icon'
669
671
  }), _jsx(CrossOutlined, {
670
672
  style: {
671
673
  fontSize: 24,
672
674
  color: '#999999',
673
- cursor: 'pointer'
675
+ cursor: disabled ? 'default' : 'pointer'
674
676
  },
675
677
  onClick: function onClick() {
676
- return handleDelete(index);
678
+ return !disabled && handleDelete(index);
677
679
  }
678
680
  })]
679
681
  })]
@@ -17,6 +17,7 @@ export interface Props extends IglooComponentProps {
17
17
  id?: string;
18
18
  bizKey?: string;
19
19
  capture?: boolean;
20
+ disabled?: boolean;
20
21
  }
21
22
  export declare type Sample = {
22
23
  src: string;
@@ -721,6 +721,10 @@ var UploadPhoto = function UploadPhoto(props) {
721
721
  };
722
722
 
723
723
  var getBadge = function getBadge(status, index, limit) {
724
+ if (props.disabled) {
725
+ return null;
726
+ }
727
+
724
728
  if (status === 'progress') {
725
729
  return _jsx("div", {
726
730
  children: _jsx(LoadingOutlined, {
@@ -3,6 +3,7 @@ import { FormInstance } from 'antd/es/form';
3
3
  import { NamePath } from 'antd/es/form/interface';
4
4
  import { SelectProps, SelectValue } from 'antd/es/select';
5
5
  export declare const compareOptions: (newOptions: any[], oldOptions?: any[] | undefined) => boolean;
6
+ export declare const compareSelected: (newValue: any | any[], oldValue: any | any[]) => boolean;
6
7
  declare type Options = SelectProps<SelectValue>['options'];
7
8
  export interface HOCProps extends IglooComponentProps {
8
9
  options?: Options;
@@ -14,8 +14,6 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
14
14
 
15
15
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
16
 
17
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
18
-
19
17
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
20
18
 
21
19
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -36,6 +34,8 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
36
34
 
37
35
  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; }
38
36
 
37
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
38
+
39
39
  import { jsx as _jsx } from "react/jsx-runtime";
40
40
  import { useEffect, useState, useContext, useRef } from 'react';
41
41
  import FormContext from '../form-context';
@@ -62,6 +62,25 @@ export var compareOptions = function compareOptions(newOptions, oldOptions) {
62
62
 
63
63
  return false;
64
64
  };
65
+ export var compareSelected = function compareSelected(newValue, oldValue) {
66
+ if (_typeof(newValue) !== _typeof(oldValue)) {
67
+ return true;
68
+ }
69
+
70
+ if (Array.isArray(newValue) && Array.isArray(oldValue)) {
71
+ if (newValue.length !== oldValue.length) {
72
+ return true;
73
+ }
74
+
75
+ return !newValue.every(function (v) {
76
+ return oldValue.find(function (ov) {
77
+ return v === ov;
78
+ });
79
+ });
80
+ }
81
+
82
+ return newValue !== oldValue;
83
+ };
65
84
  export function optionsHOC(Component) {
66
85
  return function (props) {
67
86
  var options = props.options,
@@ -191,9 +191,16 @@ var Element = function Element(_ref) {
191
191
 
192
192
  (0, _react.useEffect)(function () {
193
193
  if (!formItemProps.name || preview || !formItemProps.copiedValue.copied) return;
194
+ var originalValue = form === null || form === void 0 ? void 0 : form.getFieldValue(formItemProps.name);
195
+ var value = formItemProps.copiedValue.value;
196
+
197
+ if (_typeof(originalValue) === 'object' && _typeof(value) === 'object') {
198
+ value = Object.assign(originalValue, formItemProps.copiedValue.value);
199
+ }
200
+
194
201
  form && form.setFields([{
195
202
  name: formItemProps.name,
196
- value: formItemProps.copiedValue.value,
203
+ value: value,
197
204
  errors: []
198
205
  }]);
199
206
  }, [formItemProps.copiedValue.value]);
@@ -182,9 +182,16 @@ var Element = function Element(props) {
182
182
 
183
183
  (0, _react.useEffect)(function () {
184
184
  if (!formItemProps.name || preview || !formItemProps.copiedValue.copied) return;
185
+ var originalValue = form === null || form === void 0 ? void 0 : form.getFieldValue(formItemProps.name);
186
+ var value = formItemProps.copiedValue.value;
187
+
188
+ if (_typeof(originalValue) === 'object' && _typeof(value) === 'object') {
189
+ value = Object.assign(originalValue, formItemProps.copiedValue.value);
190
+ }
191
+
185
192
  form && form.setFields([{
186
193
  name: formItemProps.name,
187
- value: formItemProps.copiedValue.value,
194
+ value: value,
188
195
  errors: []
189
196
  }]);
190
197
  }, [formItemProps.copiedValue.value]);
@@ -108,7 +108,7 @@ var IglooSelect = function IglooSelect(_ref) {
108
108
 
109
109
  var originOptions = (0, _react.useRef)(options);
110
110
  (0, _react.useEffect)(function () {
111
- typeof rest.onChange === 'function' && valueProp !== selected && rest.onChange(selected, selectedOptions);
111
+ typeof rest.onChange === 'function' && (0, _optionUtils.compareSelected)(selected, valueProp) && rest.onChange(selected, selectedOptions);
112
112
  }, [selected]);
113
113
  (0, _react.useEffect)(function () {
114
114
  valueProp !== selected && setSelected(valueProp);
@@ -79,7 +79,10 @@ var IglooSelect = function IglooSelect(_ref) {
79
79
  return (0, _jsxRuntime.jsx)(_select.default, _objectSpread(_objectSpread({
80
80
  placeholder: placeholder || formatMessage({
81
81
  id: 'Please select'
82
- })
82
+ }),
83
+ getPopupContainer: function getPopupContainer(trigger) {
84
+ return trigger.parentNode;
85
+ }
83
86
  }, (0, _omit.default)(rest, _formMethods.default)), {}, {
84
87
  options: children ? void 0 : options,
85
88
  value: value,
@@ -102,9 +105,6 @@ var IglooSelect = function IglooSelect(_ref) {
102
105
  }
103
106
  })]
104
107
  }),
105
- getPopupContainer: function getPopupContainer(trigger) {
106
- return trigger.parentNode;
107
- },
108
108
  className: (0, _classnames.default)('igloo-select', className),
109
109
  onDropdownVisibleChange: function onDropdownVisibleChange(open) {
110
110
  setOpen(open);
@@ -592,7 +592,8 @@ var IglooUpload = function IglooUpload(props) {
592
592
  handleReUpload: handleReUpload,
593
593
  handlePreview: handlePreview,
594
594
  handleDelete: handleDelete,
595
- containerRef: containerRef
595
+ containerRef: containerRef,
596
+ disabled: props.disabled
596
597
  })]
597
598
  });
598
599
  };
@@ -603,7 +604,8 @@ var FileList = function FileList(_ref7) {
603
604
  limit = _ref7.limit,
604
605
  handleDelete = _ref7.handleDelete,
605
606
  handlePreview = _ref7.handlePreview,
606
- handleReUpload = _ref7.handleReUpload;
607
+ handleReUpload = _ref7.handleReUpload,
608
+ disabled = _ref7.disabled;
607
609
 
608
610
  var _useState3 = (0, _react.useState)(false),
609
611
  _useState4 = _slicedToArray(_useState3, 2),
@@ -673,10 +675,10 @@ var FileList = function FileList(_ref7) {
673
675
  style: {
674
676
  fontSize: 24,
675
677
  color: '#999999',
676
- cursor: 'pointer'
678
+ cursor: disabled ? 'default' : 'pointer'
677
679
  },
678
680
  onClick: function onClick() {
679
- return handleDelete(index);
681
+ return !disabled && handleDelete(index);
680
682
  }
681
683
  })]
682
684
  }), status === 'failed' && (0, _jsxRuntime.jsxs)("div", {
@@ -685,20 +687,20 @@ var FileList = function FileList(_ref7) {
685
687
  style: {
686
688
  fontSize: 24,
687
689
  color: '#999999',
688
- cursor: 'pointer'
690
+ cursor: disabled ? 'default' : 'pointer'
689
691
  },
690
692
  onClick: function onClick() {
691
- return handleReUpload(index);
693
+ return !disabled && handleReUpload(index);
692
694
  },
693
695
  className: 'igloo-upload-preview-item-operation-left-icon'
694
696
  }), (0, _jsxRuntime.jsx)(_iglooicon.CrossOutlined, {
695
697
  style: {
696
698
  fontSize: 24,
697
699
  color: '#999999',
698
- cursor: 'pointer'
700
+ cursor: disabled ? 'default' : 'pointer'
699
701
  },
700
702
  onClick: function onClick() {
701
- return handleDelete(index);
703
+ return !disabled && handleDelete(index);
702
704
  }
703
705
  })]
704
706
  })]
@@ -17,6 +17,7 @@ export interface Props extends IglooComponentProps {
17
17
  id?: string;
18
18
  bizKey?: string;
19
19
  capture?: boolean;
20
+ disabled?: boolean;
20
21
  }
21
22
  export declare type Sample = {
22
23
  src: string;
@@ -755,6 +755,10 @@ var UploadPhoto = function UploadPhoto(props) {
755
755
  };
756
756
 
757
757
  var getBadge = function getBadge(status, index, limit) {
758
+ if (props.disabled) {
759
+ return null;
760
+ }
761
+
758
762
  if (status === 'progress') {
759
763
  return (0, _jsxRuntime.jsx)("div", {
760
764
  children: (0, _jsxRuntime.jsx)(_iglooicon.LoadingOutlined, {
@@ -3,6 +3,7 @@ import { FormInstance } from 'antd/es/form';
3
3
  import { NamePath } from 'antd/es/form/interface';
4
4
  import { SelectProps, SelectValue } from 'antd/es/select';
5
5
  export declare const compareOptions: (newOptions: any[], oldOptions?: any[] | undefined) => boolean;
6
+ export declare const compareSelected: (newValue: any | any[], oldValue: any | any[]) => boolean;
6
7
  declare type Options = SelectProps<SelectValue>['options'];
7
8
  export interface HOCProps extends IglooComponentProps {
8
9
  options?: Options;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.compareOptions = void 0;
6
+ exports.compareSelected = exports.compareOptions = void 0;
7
7
  exports.optionsHOC = optionsHOC;
8
8
 
9
9
  var _jsxRuntime = require("react/jsx-runtime");
@@ -32,8 +32,6 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
32
32
 
33
33
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
34
34
 
35
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
36
-
37
35
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
38
36
 
39
37
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
@@ -54,6 +52,8 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
54
52
 
55
53
  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; }
56
54
 
55
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
56
+
57
57
  var compareOptions = function compareOptions(newOptions, oldOptions) {
58
58
  if (!Array.isArray(oldOptions)) {
59
59
  return true;
@@ -79,6 +79,28 @@ var compareOptions = function compareOptions(newOptions, oldOptions) {
79
79
 
80
80
  exports.compareOptions = compareOptions;
81
81
 
82
+ var compareSelected = function compareSelected(newValue, oldValue) {
83
+ if (_typeof(newValue) !== _typeof(oldValue)) {
84
+ return true;
85
+ }
86
+
87
+ if (Array.isArray(newValue) && Array.isArray(oldValue)) {
88
+ if (newValue.length !== oldValue.length) {
89
+ return true;
90
+ }
91
+
92
+ return !newValue.every(function (v) {
93
+ return oldValue.find(function (ov) {
94
+ return v === ov;
95
+ });
96
+ });
97
+ }
98
+
99
+ return newValue !== oldValue;
100
+ };
101
+
102
+ exports.compareSelected = compareSelected;
103
+
82
104
  function optionsHOC(Component) {
83
105
  return function (props) {
84
106
  var options = props.options,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iglooform",
3
- "version": "2.5.11",
3
+ "version": "2.5.14",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "build-dev": "dumi build",