iglooform 2.4.28 → 2.4.31
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/es/filter/checkBox.d.ts +1 -0
- package/es/filter/checkBox.js +5 -1
- package/es/filter/index.d.ts +3 -0
- package/es/filter/index.js +17 -5
- package/es/filter/radioBox.d.ts +1 -0
- package/es/filter/radioBox.js +4 -2
- package/es/filter/rangePicker.d.ts +1 -0
- package/es/filter/rangePicker.js +2 -0
- package/es/form/element/index.js +8 -5
- package/es/form/index.js +4 -2
- package/es/form-context.d.ts +1 -0
- package/es/free-form/addable-section/index.js +1 -1
- package/es/free-form/index.js +4 -2
- package/es/select/attached-select.d.ts +10 -2
- package/es/select/attached-select.js +186 -83
- package/es/types.d.ts +3 -1
- package/es/upload-photo/index.js +4 -5
- package/lib/filter/checkBox.d.ts +1 -0
- package/lib/filter/checkBox.js +5 -1
- package/lib/filter/index.d.ts +3 -0
- package/lib/filter/index.js +17 -5
- package/lib/filter/radioBox.d.ts +1 -0
- package/lib/filter/radioBox.js +4 -2
- package/lib/filter/rangePicker.d.ts +1 -0
- package/lib/filter/rangePicker.js +2 -0
- package/lib/form/element/index.js +8 -5
- package/lib/form/index.js +4 -2
- package/lib/form-context.d.ts +1 -0
- package/lib/free-form/addable-section/index.js +1 -1
- package/lib/free-form/index.js +4 -2
- package/lib/select/attached-select.d.ts +10 -2
- package/lib/select/attached-select.js +188 -83
- package/lib/types.d.ts +3 -1
- package/lib/upload-photo/index.js +4 -5
- package/package.json +1 -1
package/es/upload-photo/index.js
CHANGED
|
@@ -118,8 +118,7 @@ var UploadPhoto = function UploadPhoto(props) {
|
|
|
118
118
|
|
|
119
119
|
invariant(typeof props.handleUpload === 'function' || uploadApi, '"handleUpload" should be a function. Or uploadApi should be set at Form/FreeForm');
|
|
120
120
|
invariant(!uploadApi || props.bizKey, '"bizKey" should be set if Upload is used with uploadApi');
|
|
121
|
-
var
|
|
122
|
-
value = _props$value === void 0 ? [] : _props$value,
|
|
121
|
+
var value = props.value,
|
|
123
122
|
limit = props.limit,
|
|
124
123
|
limitErrorMessage = props.limitErrorMessage,
|
|
125
124
|
descriptions = props.descriptions,
|
|
@@ -235,10 +234,10 @@ var UploadPhoto = function UploadPhoto(props) {
|
|
|
235
234
|
};
|
|
236
235
|
|
|
237
236
|
useEffect(function () {
|
|
238
|
-
if (Array.isArray(value)) {
|
|
237
|
+
if (Array.isArray(value) && files.length === 0) {
|
|
239
238
|
mapFilesFromValue(value);
|
|
240
239
|
}
|
|
241
|
-
}, []);
|
|
240
|
+
}, [value, files]);
|
|
242
241
|
var uploadId = useMemo(function () {
|
|
243
242
|
return "igloo-upload-photo-input-".concat(Math.random());
|
|
244
243
|
}, []);
|
|
@@ -250,7 +249,7 @@ var UploadPhoto = function UploadPhoto(props) {
|
|
|
250
249
|
URL.revokeObjectURL(dataUrl);
|
|
251
250
|
});
|
|
252
251
|
};
|
|
253
|
-
}, []);
|
|
252
|
+
}, [files]);
|
|
254
253
|
useEffect(function () {
|
|
255
254
|
var removeLimitMsg = function removeLimitMsg(e) {
|
|
256
255
|
if (DomRef.current && !DomRef.current.contains(e.target) && limitNumError.current) {
|
package/lib/filter/checkBox.d.ts
CHANGED
package/lib/filter/checkBox.js
CHANGED
|
@@ -69,6 +69,7 @@ var CratetCheckBoxFilter = function CratetCheckBoxFilter(props) {
|
|
|
69
69
|
_props$chooseed = props.chooseed,
|
|
70
70
|
chooseed = _props$chooseed === void 0 ? [] : _props$chooseed,
|
|
71
71
|
disabled = props.disabled,
|
|
72
|
+
_onChange = props.onChange,
|
|
72
73
|
_props$valueConfirm = props.valueConfirm,
|
|
73
74
|
valueConfirm = _props$valueConfirm === void 0 ? function () {} : _props$valueConfirm;
|
|
74
75
|
var timeKey = new Date();
|
|
@@ -102,6 +103,7 @@ var CratetCheckBoxFilter = function CratetCheckBoxFilter(props) {
|
|
|
102
103
|
}), allChoose ? (0, _jsxRuntime.jsx)("span", {
|
|
103
104
|
className: "igloo-form-filter-drop-down-container-content-group-title-action",
|
|
104
105
|
onClick: function onClick() {
|
|
106
|
+
typeof _onChange === 'function' && _onChange([]);
|
|
105
107
|
valueConfirm({
|
|
106
108
|
type: optionKey,
|
|
107
109
|
value: []
|
|
@@ -117,6 +119,7 @@ var CratetCheckBoxFilter = function CratetCheckBoxFilter(props) {
|
|
|
117
119
|
}) : (0, _jsxRuntime.jsx)("span", {
|
|
118
120
|
className: "igloo-form-filter-drop-down-container-content-group-title-action",
|
|
119
121
|
onClick: function onClick() {
|
|
122
|
+
typeof _onChange === 'function' && _onChange(allCanChoose);
|
|
120
123
|
valueConfirm({
|
|
121
124
|
type: optionKey,
|
|
122
125
|
value: allCanChoose
|
|
@@ -136,7 +139,8 @@ var CratetCheckBoxFilter = function CratetCheckBoxFilter(props) {
|
|
|
136
139
|
width: '100%'
|
|
137
140
|
},
|
|
138
141
|
onChange: function onChange(e) {
|
|
139
|
-
|
|
142
|
+
typeof _onChange === 'function' && _onChange(e);
|
|
143
|
+
valueConfirm({
|
|
140
144
|
type: optionKey,
|
|
141
145
|
value: e
|
|
142
146
|
});
|
package/lib/filter/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export interface IFrameConfig {
|
|
|
23
23
|
canNotDelete?: boolean;
|
|
24
24
|
tagTitle?: (value?: any) => string;
|
|
25
25
|
render?: (value: any, onChange: any) => ReactNode;
|
|
26
|
+
onChange?: any;
|
|
26
27
|
}
|
|
27
28
|
export interface IFilterProps {
|
|
28
29
|
initValue?: {
|
|
@@ -44,6 +45,8 @@ export interface IFilterProps {
|
|
|
44
45
|
searchInputDefault?: string | number;
|
|
45
46
|
searchWithFilter?: boolean;
|
|
46
47
|
inputOnly?: boolean;
|
|
48
|
+
beforeOpenFilter?: any;
|
|
49
|
+
resetCallBack?: any;
|
|
47
50
|
}
|
|
48
51
|
declare const FilterComponent: (props: IFilterProps) => JSX.Element;
|
|
49
52
|
export default FilterComponent;
|
package/lib/filter/index.js
CHANGED
|
@@ -389,7 +389,9 @@ var FilterComponent = function FilterComponent(props) {
|
|
|
389
389
|
searchWithFilter = _props$searchWithFilt === void 0 ? false : _props$searchWithFilt,
|
|
390
390
|
searchInputDefault = props.searchInputDefault,
|
|
391
391
|
initValue = props.initValue,
|
|
392
|
-
inputOnly = props.inputOnly
|
|
392
|
+
inputOnly = props.inputOnly,
|
|
393
|
+
beforeOpenFilter = props.beforeOpenFilter,
|
|
394
|
+
resetCallBack = props.resetCallBack;
|
|
393
395
|
var filterTitle = props.filterTitle,
|
|
394
396
|
_props$filterItems = props.filterItems,
|
|
395
397
|
filterItems = _props$filterItems === void 0 ? [] : _props$filterItems; // id controller
|
|
@@ -668,7 +670,8 @@ var FilterComponent = function FilterComponent(props) {
|
|
|
668
670
|
format = _item$format2 === void 0 ? defaultFormat : _item$format2,
|
|
669
671
|
dateRangeConfig = item.dateRangeConfig,
|
|
670
672
|
render = item.render,
|
|
671
|
-
tagTitle = item.tagTitle
|
|
673
|
+
tagTitle = item.tagTitle,
|
|
674
|
+
onChangeProps = item.onChange;
|
|
672
675
|
|
|
673
676
|
switch (type) {
|
|
674
677
|
case 'customize':
|
|
@@ -704,7 +707,8 @@ var FilterComponent = function FilterComponent(props) {
|
|
|
704
707
|
onFocus: invisibleRef.current,
|
|
705
708
|
dateRangeConfig: dateRangeConfig,
|
|
706
709
|
pickerOpenStatus: dataPickerOpenStatus[key],
|
|
707
|
-
setPickerOpenStatus: setPickerOpenStatus
|
|
710
|
+
setPickerOpenStatus: setPickerOpenStatus,
|
|
711
|
+
onChange: onChangeProps
|
|
708
712
|
}, key);
|
|
709
713
|
|
|
710
714
|
case 'mult':
|
|
@@ -716,7 +720,8 @@ var FilterComponent = function FilterComponent(props) {
|
|
|
716
720
|
allSelected: optionsAllSelected[key],
|
|
717
721
|
chooseed: optionsChanged[key],
|
|
718
722
|
disabled: disabled,
|
|
719
|
-
valueConfirm: dispatchOptionsChange
|
|
723
|
+
valueConfirm: dispatchOptionsChange,
|
|
724
|
+
onChange: onChangeProps
|
|
720
725
|
}, key);
|
|
721
726
|
|
|
722
727
|
case 'single':
|
|
@@ -727,7 +732,8 @@ var FilterComponent = function FilterComponent(props) {
|
|
|
727
732
|
optionKey: key,
|
|
728
733
|
chooseed: optionsChanged[key],
|
|
729
734
|
disabled: disabled,
|
|
730
|
-
valueConfirm: dispatchOptionsChange
|
|
735
|
+
valueConfirm: dispatchOptionsChange,
|
|
736
|
+
onChange: onChangeProps
|
|
731
737
|
}, key);
|
|
732
738
|
}
|
|
733
739
|
})]
|
|
@@ -738,6 +744,7 @@ var FilterComponent = function FilterComponent(props) {
|
|
|
738
744
|
},
|
|
739
745
|
children: [(0, _jsxRuntime.jsx)("span", {
|
|
740
746
|
onClick: function onClick() {
|
|
747
|
+
typeof resetCallBack === 'function' && resetCallBack(_objectSpread({}, defaultOptions));
|
|
741
748
|
setTimeout(function () {
|
|
742
749
|
setTimeRangeType(-1);
|
|
743
750
|
dispatchOptionsChange({
|
|
@@ -1077,6 +1084,11 @@ var FilterComponent = function FilterComponent(props) {
|
|
|
1077
1084
|
visible: dropVisible,
|
|
1078
1085
|
onVisibleChange: function onVisibleChange(visible) {
|
|
1079
1086
|
setDropVisible(visible);
|
|
1087
|
+
|
|
1088
|
+
if (visible) {
|
|
1089
|
+
typeof beforeOpenFilter === 'function' && beforeOpenFilter(_objectSpread({}, confirmed));
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1080
1092
|
setTimeout(function () {
|
|
1081
1093
|
if (dropVisible) {
|
|
1082
1094
|
setTimeRangeType(confirmedTimeRange);
|
package/lib/filter/radioBox.d.ts
CHANGED
package/lib/filter/radioBox.js
CHANGED
|
@@ -33,7 +33,8 @@ var CreateRadioBoxFilter = function CreateRadioBoxFilter(props) {
|
|
|
33
33
|
configList = props.configList,
|
|
34
34
|
disabled = props.disabled,
|
|
35
35
|
valueConfirm = props.valueConfirm,
|
|
36
|
-
chooseed = props.chooseed
|
|
36
|
+
chooseed = props.chooseed,
|
|
37
|
+
_onChange = props.onChange;
|
|
37
38
|
return (0, _jsxRuntime.jsxs)("div", {
|
|
38
39
|
className: "igloo-form-filter-drop-down-container-content-group",
|
|
39
40
|
children: [(0, _jsxRuntime.jsx)("div", {
|
|
@@ -45,7 +46,8 @@ var CreateRadioBoxFilter = function CreateRadioBoxFilter(props) {
|
|
|
45
46
|
}), (0, _jsxRuntime.jsx)(_radio.default.Group, {
|
|
46
47
|
value: chooseed,
|
|
47
48
|
onChange: function onChange(e) {
|
|
48
|
-
|
|
49
|
+
typeof _onChange === 'function' && _onChange(e.target.value);
|
|
50
|
+
valueConfirm({
|
|
49
51
|
type: optionKey,
|
|
50
52
|
value: e.target.value
|
|
51
53
|
});
|
|
@@ -65,6 +65,7 @@ var CreateRangePickerFilter = function CreateRangePickerFilter(props) {
|
|
|
65
65
|
dateRangeConfig = _props$dateRangeConfi === void 0 ? {} : _props$dateRangeConfi,
|
|
66
66
|
_props$pickerOpenStat = props.pickerOpenStatus,
|
|
67
67
|
pickerOpenStatus = _props$pickerOpenStat === void 0 ? false : _props$pickerOpenStat,
|
|
68
|
+
onChange = props.onChange,
|
|
68
69
|
setPickerOpenStatus = props.setPickerOpenStatus;
|
|
69
70
|
var RangePicker = _datePicker.default.RangePicker;
|
|
70
71
|
|
|
@@ -104,6 +105,7 @@ var CreateRangePickerFilter = function CreateRangePickerFilter(props) {
|
|
|
104
105
|
type: optionKey,
|
|
105
106
|
value: [timeValueRef.current.startTime, timeValueRef.current.endTime]
|
|
106
107
|
});
|
|
108
|
+
typeof onChange === 'function' && onChange([timeValueRef.current.startTime, timeValueRef.current.endTime]);
|
|
107
109
|
setPickerOpenStatus({
|
|
108
110
|
type: optionKey,
|
|
109
111
|
value: false
|
|
@@ -267,11 +267,7 @@ var Element = function Element(_ref) {
|
|
|
267
267
|
hideWhenEdit = elementProps.hideWhenEdit,
|
|
268
268
|
otherElementProps = _objectWithoutProperties(elementProps, _excluded2);
|
|
269
269
|
|
|
270
|
-
|
|
271
|
-
return null;
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
return hideWhenEdit || !display ? null : (0, _jsxRuntime.jsx)(_col.default, _objectSpread(_objectSpread({}, restColProps), {}, {
|
|
270
|
+
var component = (0, _jsxRuntime.jsx)(_col.default, _objectSpread(_objectSpread({}, restColProps), {}, {
|
|
275
271
|
className: "igloo-form-item",
|
|
276
272
|
children: (0, _jsxRuntime.jsx)("div", {
|
|
277
273
|
style: {
|
|
@@ -290,6 +286,13 @@ var Element = function Element(_ref) {
|
|
|
290
286
|
}))
|
|
291
287
|
})
|
|
292
288
|
}));
|
|
289
|
+
|
|
290
|
+
if (preview) {
|
|
291
|
+
if (hideWhenPreview) return null;
|
|
292
|
+
return component;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
return hideWhenEdit || !display ? null : component;
|
|
293
296
|
}
|
|
294
297
|
|
|
295
298
|
if (!display) return null;
|
package/lib/form/index.js
CHANGED
|
@@ -81,7 +81,8 @@ var IglooForm = function IglooForm(props, ref) {
|
|
|
81
81
|
} : _props$getScrollConta,
|
|
82
82
|
_props$onFirstModifie = props.onFirstModified,
|
|
83
83
|
onFirstModified = _props$onFirstModifie === void 0 ? function () {} : _props$onFirstModifie,
|
|
84
|
-
uploadApi = props.uploadApi
|
|
84
|
+
uploadApi = props.uploadApi,
|
|
85
|
+
selectDatasourceApi = props.selectDatasourceApi;
|
|
85
86
|
|
|
86
87
|
var _Form$useForm = _form.default.useForm(),
|
|
87
88
|
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
|
|
@@ -260,7 +261,8 @@ var IglooForm = function IglooForm(props, ref) {
|
|
|
260
261
|
showSubmitButton: showSubmitButton,
|
|
261
262
|
getScrollContainer: getScrollContainer,
|
|
262
263
|
registerDependencies: registerDependencies,
|
|
263
|
-
uploadApi: uploadApi
|
|
264
|
+
uploadApi: uploadApi,
|
|
265
|
+
selectDatasourceApi: selectDatasourceApi
|
|
264
266
|
}, locales),
|
|
265
267
|
children: (0, _jsxRuntime.jsxs)(_form.default, {
|
|
266
268
|
form: form,
|
package/lib/form-context.d.ts
CHANGED
|
@@ -16,5 +16,6 @@ declare const _default: React.Context<{
|
|
|
16
16
|
getScrollContainer: () => HTMLElement | Window | null;
|
|
17
17
|
registerDependencies: (name: FormItemName | FormItemName[], updater: Function) => void;
|
|
18
18
|
uploadApi?: string | undefined;
|
|
19
|
+
selectDatasourceApi?: string | undefined;
|
|
19
20
|
}>;
|
|
20
21
|
export default _default;
|
|
@@ -225,7 +225,7 @@ var AddableSection = function AddableSection(props) {
|
|
|
225
225
|
return children.map(function (c, index) {
|
|
226
226
|
var _c$type;
|
|
227
227
|
|
|
228
|
-
if (['Igloo_Free_Form_Item', 'Igloo_Free_Form_Section', '
|
|
228
|
+
if (['Igloo_Free_Form_Item', 'Igloo_Free_Form_Section', 'Igloo_Free_Form_AddableSection'].includes(c === null || c === void 0 ? void 0 : (_c$type = c.type) === null || _c$type === void 0 ? void 0 : _c$type.displayName)) {
|
|
229
229
|
return /*#__PURE__*/(0, _react.cloneElement)(c, _objectSpread(_objectSpread({
|
|
230
230
|
key: index
|
|
231
231
|
}, c.props), {}, {
|
package/lib/free-form/index.js
CHANGED
|
@@ -71,7 +71,8 @@ var FreeForm = function FreeForm(props) {
|
|
|
71
71
|
} : _props$getScrollConta,
|
|
72
72
|
_props$onFirstModifie = props.onFirstModified,
|
|
73
73
|
onFirstModified = _props$onFirstModifie === void 0 ? function () {} : _props$onFirstModifie,
|
|
74
|
-
uploadApi = props.uploadApi
|
|
74
|
+
uploadApi = props.uploadApi,
|
|
75
|
+
selectDatasourceApi = props.selectDatasourceApi;
|
|
75
76
|
|
|
76
77
|
var _Form$useForm = _form.default.useForm(),
|
|
77
78
|
_Form$useForm2 = _slicedToArray(_Form$useForm, 1),
|
|
@@ -212,7 +213,8 @@ var FreeForm = function FreeForm(props) {
|
|
|
212
213
|
showSubmitButton: showSubmitButton,
|
|
213
214
|
getScrollContainer: getScrollContainer,
|
|
214
215
|
registerDependencies: registerDependencies,
|
|
215
|
-
uploadApi: uploadApi
|
|
216
|
+
uploadApi: uploadApi,
|
|
217
|
+
selectDatasourceApi: selectDatasourceApi
|
|
216
218
|
}, locales),
|
|
217
219
|
children: (0, _jsxRuntime.jsx)(_form.default, {
|
|
218
220
|
form: form,
|
|
@@ -2,11 +2,19 @@ import { SelectProps, SelectValue } from 'antd/es/select';
|
|
|
2
2
|
import { FC, IglooComponentProps } from '../types';
|
|
3
3
|
import { FormInstance } from 'antd/es/form';
|
|
4
4
|
import './style';
|
|
5
|
+
import { NamePath } from 'antd/es/form/interface';
|
|
5
6
|
export declare const Option: import("rc-select/lib/Option").OptionFC, OptGroup: import("rc-select/lib/OptGroup").OptionGroupFC;
|
|
6
7
|
declare type Props = SelectProps<SelectValue> & IglooComponentProps & {
|
|
7
8
|
getOptions?: (form: FormInstance) => any[];
|
|
8
9
|
multiple?: boolean;
|
|
9
10
|
clearWhenOptionsUpdated?: boolean;
|
|
11
|
+
optionGroups?: {
|
|
12
|
+
parentKey: string;
|
|
13
|
+
options: Props['options'];
|
|
14
|
+
}[];
|
|
15
|
+
datasourceKey?: string;
|
|
16
|
+
datasourceApi?: string;
|
|
17
|
+
dependField?: NamePath;
|
|
10
18
|
};
|
|
11
19
|
declare type OptionType = typeof Option;
|
|
12
20
|
declare type OptGroupType = typeof OptGroup;
|
|
@@ -14,5 +22,5 @@ interface IglooSelectType extends FC<Props> {
|
|
|
14
22
|
Option: OptionType;
|
|
15
23
|
OptGroup: OptGroupType;
|
|
16
24
|
}
|
|
17
|
-
declare const
|
|
18
|
-
export default
|
|
25
|
+
declare const AttachedSelect: IglooSelectType;
|
|
26
|
+
export default AttachedSelect;
|
|
@@ -25,16 +25,27 @@ var _checkbox = _interopRequireDefault(require("../checkbox"));
|
|
|
25
25
|
|
|
26
26
|
var _localeContext = _interopRequireDefault(require("../locale/locale-context"));
|
|
27
27
|
|
|
28
|
+
var _formContext = _interopRequireDefault(require("../form-context"));
|
|
29
|
+
|
|
28
30
|
var _button = _interopRequireDefault(require("../button"));
|
|
29
31
|
|
|
30
32
|
var _input = _interopRequireDefault(require("../input"));
|
|
31
33
|
|
|
32
34
|
require("./style");
|
|
33
35
|
|
|
34
|
-
var
|
|
36
|
+
var _invariant = _interopRequireDefault(require("invariant"));
|
|
37
|
+
|
|
38
|
+
var _excluded = ["value", "className", "placeholder", "onDropdownVisibleChange", "showSearch", "filterOption", "optionFilterProp", "multiple", "options"],
|
|
39
|
+
_excluded2 = ["options", "optionGroups", "getOptions", "datasourceKey", "dependField", "children", "clearWhenOptionsUpdated"];
|
|
35
40
|
|
|
36
41
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
37
42
|
|
|
43
|
+
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); }
|
|
44
|
+
|
|
45
|
+
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); } }
|
|
46
|
+
|
|
47
|
+
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); }); }; }
|
|
48
|
+
|
|
38
49
|
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; }
|
|
39
50
|
|
|
40
51
|
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; }
|
|
@@ -71,20 +82,17 @@ exports.OptGroup = OptGroup;
|
|
|
71
82
|
exports.Option = Option;
|
|
72
83
|
|
|
73
84
|
var IglooSelect = function IglooSelect(_ref) {
|
|
74
|
-
var
|
|
75
|
-
getOptionsProp = _ref.getOptions,
|
|
76
|
-
valueProp = _ref.value,
|
|
85
|
+
var valueProp = _ref.value,
|
|
77
86
|
className = _ref.className,
|
|
78
87
|
placeholder = _ref.placeholder,
|
|
79
88
|
_ref$onDropdownVisibl = _ref.onDropdownVisibleChange,
|
|
80
89
|
onDropdownVisibleChange = _ref$onDropdownVisibl === void 0 ? function () {} : _ref$onDropdownVisibl,
|
|
81
|
-
children = _ref.children,
|
|
82
90
|
showSearch = _ref.showSearch,
|
|
83
91
|
filterOption = _ref.filterOption,
|
|
84
92
|
optionFilterProp = _ref.optionFilterProp,
|
|
85
93
|
multiple = _ref.multiple,
|
|
86
|
-
_ref$
|
|
87
|
-
|
|
94
|
+
_ref$options = _ref.options,
|
|
95
|
+
options = _ref$options === void 0 ? [] : _ref$options,
|
|
88
96
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
89
97
|
|
|
90
98
|
var _useContext = (0, _react.useContext)(_localeContext.default),
|
|
@@ -100,86 +108,25 @@ var IglooSelect = function IglooSelect(_ref) {
|
|
|
100
108
|
selectedOptions = _useState4[0],
|
|
101
109
|
setSelectedOptions = _useState4[1];
|
|
102
110
|
|
|
111
|
+
var _useState5 = (0, _react.useState)(options),
|
|
112
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
113
|
+
displayOptions = _useState6[0],
|
|
114
|
+
setDisplay = _useState6[1];
|
|
115
|
+
|
|
103
116
|
(0, _react.useEffect)(function () {
|
|
104
117
|
typeof rest.onChange === 'function' && valueProp !== selected && rest.onChange(selected, selectedOptions);
|
|
105
118
|
}, [selected]);
|
|
106
119
|
(0, _react.useEffect)(function () {
|
|
107
120
|
setSelected(valueProp);
|
|
108
121
|
}, [valueProp]);
|
|
109
|
-
|
|
110
|
-
var getOptions = function getOptions() {
|
|
111
|
-
var getFormInstance = rest.getFormInstance;
|
|
112
|
-
var form = typeof getFormInstance === 'function' && getFormInstance();
|
|
113
|
-
|
|
114
|
-
if (!form) {
|
|
115
|
-
if (!children || typeof children === 'string' || typeof children === 'number' || typeof children === 'boolean') return [];
|
|
116
|
-
return Array.isArray(children) ? children.map(function (child) {
|
|
117
|
-
return {
|
|
118
|
-
label: child.props.children,
|
|
119
|
-
value: child.props.value
|
|
120
|
-
};
|
|
121
|
-
}) : [{
|
|
122
|
-
label: children.props.children,
|
|
123
|
-
value: children.props.value
|
|
124
|
-
}];
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
var options = typeof getOptionsProp === 'function' && getOptionsProp(form);
|
|
128
|
-
return options || [];
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
var options = optionsProp || getOptions();
|
|
132
|
-
|
|
133
|
-
var _useState5 = (0, _react.useState)(options),
|
|
134
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
135
|
-
originOptions = _useState6[0],
|
|
136
|
-
setOriginOptions = _useState6[1];
|
|
137
|
-
|
|
138
|
-
var _useState7 = (0, _react.useState)(options),
|
|
139
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
140
|
-
displayOptions = _useState8[0],
|
|
141
|
-
setDisplay = _useState8[1];
|
|
142
|
-
|
|
143
122
|
(0, _react.useEffect)(function () {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
if (!updateOptions) {
|
|
147
|
-
for (var i = 0; i < options.length; i++) {
|
|
148
|
-
var newOption = options[i];
|
|
149
|
-
var originOption = originOptions[i];
|
|
150
|
-
|
|
151
|
-
if (newOption.label !== originOption.label || newOption.value !== originOption.value) {
|
|
152
|
-
updateOptions = true;
|
|
153
|
-
break;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
if (updateOptions) {
|
|
159
|
-
setOriginOptions(options);
|
|
160
|
-
setDisplay(options);
|
|
161
|
-
var setFieldValue = rest.setFieldValue;
|
|
162
|
-
|
|
163
|
-
if (clearWhenOptionsUpdated) {
|
|
164
|
-
typeof setFieldValue === 'function' && setFieldValue();
|
|
165
|
-
}
|
|
166
|
-
}
|
|
123
|
+
setDisplay(options);
|
|
167
124
|
}, [options]);
|
|
168
|
-
(0, _react.useEffect)(function () {
|
|
169
|
-
var setFieldValue = rest.setFieldValue;
|
|
170
|
-
var foundValue = originOptions.find(function (option) {
|
|
171
|
-
return Array.isArray(valueProp) ? valueProp.includes(option.value) : option.value === valueProp;
|
|
172
|
-
});
|
|
173
125
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
var _useState9 = (0, _react.useState)(false),
|
|
180
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
181
|
-
dropVisible = _useState10[0],
|
|
182
|
-
setDropVisible = _useState10[1];
|
|
126
|
+
var _useState7 = (0, _react.useState)(false),
|
|
127
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
128
|
+
dropVisible = _useState8[0],
|
|
129
|
+
setDropVisible = _useState8[1];
|
|
183
130
|
|
|
184
131
|
var handleDropDownVisibleChange = function handleDropDownVisibleChange(open) {
|
|
185
132
|
typeof onDropdownVisibleChange === 'function' && onDropdownVisibleChange(open);
|
|
@@ -188,7 +135,7 @@ var IglooSelect = function IglooSelect(_ref) {
|
|
|
188
135
|
|
|
189
136
|
var handleSearch = function handleSearch(e) {
|
|
190
137
|
var value = e.target.value;
|
|
191
|
-
var filteredOptions =
|
|
138
|
+
var filteredOptions = options.filter(function (option) {
|
|
192
139
|
var _option$label, _option$label$toStrin;
|
|
193
140
|
|
|
194
141
|
return Boolean(option === null || option === void 0 ? void 0 : (_option$label = option.label) === null || _option$label === void 0 ? void 0 : (_option$label$toStrin = _option$label.toString()) === null || _option$label$toStrin === void 0 ? void 0 : _option$label$toStrin.includes(value));
|
|
@@ -370,11 +317,169 @@ var IglooSelect = function IglooSelect(_ref) {
|
|
|
370
317
|
});
|
|
371
318
|
};
|
|
372
319
|
|
|
373
|
-
|
|
320
|
+
var AttachedSelect = function AttachedSelect(_ref11) {
|
|
321
|
+
var options = _ref11.options,
|
|
322
|
+
optionGroups = _ref11.optionGroups,
|
|
323
|
+
getOptions = _ref11.getOptions,
|
|
324
|
+
datasourceKey = _ref11.datasourceKey,
|
|
325
|
+
dependField = _ref11.dependField,
|
|
326
|
+
children = _ref11.children,
|
|
327
|
+
_ref11$clearWhenOptio = _ref11.clearWhenOptionsUpdated,
|
|
328
|
+
clearWhenOptionsUpdated = _ref11$clearWhenOptio === void 0 ? false : _ref11$clearWhenOptio,
|
|
329
|
+
rest = _objectWithoutProperties(_ref11, _excluded2);
|
|
330
|
+
|
|
331
|
+
var _useState9 = (0, _react.useState)(options || []),
|
|
332
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
333
|
+
_options = _useState10[0],
|
|
334
|
+
setOptions = _useState10[1];
|
|
335
|
+
|
|
336
|
+
var _useContext2 = (0, _react.useContext)(_formContext.default),
|
|
337
|
+
selectDatasourceApi = _useContext2.selectDatasourceApi;
|
|
338
|
+
|
|
339
|
+
var getFormInstance = rest.getFormInstance;
|
|
340
|
+
var form = typeof getFormInstance === 'function' && getFormInstance();
|
|
341
|
+
var dependFieldValue = form && dependField && form.getFieldValue(dependField);
|
|
342
|
+
var optionsFromGetOptions = typeof getOptions === 'function' && form && getOptions(form);
|
|
343
|
+
(0, _invariant.default)(datasourceKey && selectDatasourceApi || !datasourceKey, 'Please provide selectDatasourceApi in Form props');
|
|
344
|
+
(0, _react.useEffect)(function () {
|
|
345
|
+
var calcOptions = /*#__PURE__*/function () {
|
|
346
|
+
var _ref12 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
347
|
+
var group, query, api, rst, _yield$rst$json, data;
|
|
348
|
+
|
|
349
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
350
|
+
while (1) {
|
|
351
|
+
switch (_context.prev = _context.next) {
|
|
352
|
+
case 0:
|
|
353
|
+
if (!Array.isArray(options)) {
|
|
354
|
+
_context.next = 2;
|
|
355
|
+
break;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
return _context.abrupt("return", options);
|
|
359
|
+
|
|
360
|
+
case 2:
|
|
361
|
+
if (!(Array.isArray(children) || _typeof(children) === 'object')) {
|
|
362
|
+
_context.next = 4;
|
|
363
|
+
break;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
return _context.abrupt("return", Array.isArray(children) ? children.map(function (child) {
|
|
367
|
+
return {
|
|
368
|
+
label: child.props.children,
|
|
369
|
+
value: child.props.value
|
|
370
|
+
};
|
|
371
|
+
}) : [{
|
|
372
|
+
label: children.props.children,
|
|
373
|
+
value: children.props.value
|
|
374
|
+
}]);
|
|
375
|
+
|
|
376
|
+
case 4:
|
|
377
|
+
if (!Array.isArray(optionsFromGetOptions)) {
|
|
378
|
+
_context.next = 6;
|
|
379
|
+
break;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
return _context.abrupt("return", optionsFromGetOptions);
|
|
383
|
+
|
|
384
|
+
case 6:
|
|
385
|
+
if (!optionGroups) {
|
|
386
|
+
_context.next = 10;
|
|
387
|
+
break;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
if (!dependFieldValue) {
|
|
391
|
+
_context.next = 10;
|
|
392
|
+
break;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
group = optionGroups.find(function (_ref13) {
|
|
396
|
+
var parentKey = _ref13.parentKey;
|
|
397
|
+
return Array.isArray(dependFieldValue) ? dependFieldValue.includes(parentKey) : parentKey === dependFieldValue;
|
|
398
|
+
});
|
|
399
|
+
return _context.abrupt("return", (group === null || group === void 0 ? void 0 : group.options) || []);
|
|
400
|
+
|
|
401
|
+
case 10:
|
|
402
|
+
if (!(selectDatasourceApi && datasourceKey)) {
|
|
403
|
+
_context.next = 27;
|
|
404
|
+
break;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
query = Array.isArray(dependFieldValue) ? dependFieldValue.map(function (v) {
|
|
408
|
+
return "parent=".concat(v);
|
|
409
|
+
}).join('&') : dependFieldValue ? "parent=".concat(dependFieldValue) : '';
|
|
410
|
+
api = "".concat(selectDatasourceApi, "/").concat(datasourceKey);
|
|
411
|
+
_context.prev = 13;
|
|
412
|
+
_context.next = 16;
|
|
413
|
+
return fetch(query ? "".concat(api, "?").concat(query) : api);
|
|
414
|
+
|
|
415
|
+
case 16:
|
|
416
|
+
rst = _context.sent;
|
|
417
|
+
_context.next = 19;
|
|
418
|
+
return rst.json();
|
|
419
|
+
|
|
420
|
+
case 19:
|
|
421
|
+
_yield$rst$json = _context.sent;
|
|
422
|
+
data = _yield$rst$json.data;
|
|
423
|
+
return _context.abrupt("return", data || []);
|
|
424
|
+
|
|
425
|
+
case 24:
|
|
426
|
+
_context.prev = 24;
|
|
427
|
+
_context.t0 = _context["catch"](13);
|
|
428
|
+
return _context.abrupt("return", []);
|
|
429
|
+
|
|
430
|
+
case 27:
|
|
431
|
+
return _context.abrupt("return", []);
|
|
432
|
+
|
|
433
|
+
case 28:
|
|
434
|
+
case "end":
|
|
435
|
+
return _context.stop();
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}, _callee, null, [[13, 24]]);
|
|
439
|
+
}));
|
|
440
|
+
|
|
441
|
+
return function calcOptions() {
|
|
442
|
+
return _ref12.apply(this, arguments);
|
|
443
|
+
};
|
|
444
|
+
}();
|
|
445
|
+
|
|
446
|
+
var compareOptions = function compareOptions(newOptions) {
|
|
447
|
+
var updateOptions = _options.length !== newOptions.length;
|
|
448
|
+
|
|
449
|
+
if (!updateOptions) {
|
|
450
|
+
for (var i = 0; i < _options.length; i++) {
|
|
451
|
+
var newOption = _options[i];
|
|
452
|
+
var originOption = newOptions[i];
|
|
453
|
+
|
|
454
|
+
if (newOption.label !== originOption.label || newOption.value !== originOption.value) {
|
|
455
|
+
updateOptions = true;
|
|
456
|
+
break;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
if (updateOptions) {
|
|
462
|
+
setOptions(newOptions);
|
|
463
|
+
var setFieldValue = rest.setFieldValue;
|
|
464
|
+
|
|
465
|
+
if (clearWhenOptionsUpdated) {
|
|
466
|
+
typeof setFieldValue === 'function' && setFieldValue();
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
};
|
|
470
|
+
|
|
471
|
+
calcOptions().then(compareOptions);
|
|
472
|
+
}, [options, optionGroups, dependFieldValue, optionsFromGetOptions]);
|
|
473
|
+
return (0, _jsxRuntime.jsx)(IglooSelect, _objectSpread({
|
|
474
|
+
options: _options
|
|
475
|
+
}, rest));
|
|
476
|
+
};
|
|
477
|
+
|
|
478
|
+
AttachedSelect.formItemPropsHandler = function (config) {
|
|
374
479
|
return {};
|
|
375
480
|
};
|
|
376
481
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
var _default =
|
|
482
|
+
AttachedSelect.Option = Option;
|
|
483
|
+
AttachedSelect.OptGroup = OptGroup;
|
|
484
|
+
var _default = AttachedSelect;
|
|
380
485
|
exports.default = _default;
|