iglooform 2.5.2 → 2.5.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.
Files changed (51) hide show
  1. package/es/checkbox/index.d.ts +7 -7
  2. package/es/checkbox/index.js +85 -5
  3. package/es/form/elements.js +3 -1
  4. package/es/index.d.ts +1 -0
  5. package/es/index.js +1 -0
  6. package/es/locale/en-US/messages.json +4 -0
  7. package/es/locale/id-ID/messages.json +4 -0
  8. package/es/locale/th-TH/messages.json +4 -0
  9. package/es/locale/vi-VN/messages.json +4 -0
  10. package/es/locale/zh-CN/messages.json +4 -0
  11. package/es/locale/zh-TW/messages.json +5 -0
  12. package/es/radio/index.d.ts +6 -6
  13. package/es/radio/index.js +79 -22
  14. package/es/radio/radio-group-with-other.d.ts +1 -1
  15. package/es/radio/radio-group-with-other.js +41 -4
  16. package/es/radio/style/empty.svg +12 -0
  17. package/es/search-box/index.d.ts +31 -0
  18. package/es/search-box/index.js +266 -0
  19. package/es/search-box/style/index.d.ts +1 -0
  20. package/es/search-box/style/index.js +1 -0
  21. package/es/search-box/style/index.less +162 -0
  22. package/es/select/attached-select.d.ts +2 -12
  23. package/es/select/attached-select.js +28 -198
  24. package/es/utils/option-utils.d.ts +24 -0
  25. package/es/utils/option-utils.js +233 -0
  26. package/lib/checkbox/index.d.ts +7 -7
  27. package/lib/checkbox/index.js +87 -5
  28. package/lib/form/elements.js +4 -1
  29. package/lib/index.d.ts +1 -0
  30. package/lib/index.js +9 -0
  31. package/lib/locale/en-US/messages.json +4 -0
  32. package/lib/locale/id-ID/messages.json +4 -0
  33. package/lib/locale/th-TH/messages.json +4 -0
  34. package/lib/locale/vi-VN/messages.json +4 -0
  35. package/lib/locale/zh-CN/messages.json +4 -0
  36. package/lib/locale/zh-TW/messages.json +5 -0
  37. package/lib/radio/index.d.ts +6 -6
  38. package/lib/radio/index.js +83 -22
  39. package/lib/radio/radio-group-with-other.d.ts +1 -1
  40. package/lib/radio/radio-group-with-other.js +41 -3
  41. package/lib/radio/style/empty.svg +12 -0
  42. package/lib/search-box/index.d.ts +31 -0
  43. package/lib/search-box/index.js +287 -0
  44. package/lib/search-box/style/index.d.ts +1 -0
  45. package/lib/search-box/style/index.js +3 -0
  46. package/lib/search-box/style/index.less +162 -0
  47. package/lib/select/attached-select.d.ts +2 -12
  48. package/lib/select/attached-select.js +27 -198
  49. package/lib/utils/option-utils.d.ts +24 -0
  50. package/lib/utils/option-utils.js +250 -0
  51. package/package.json +10 -9
@@ -19,6 +19,8 @@ var _checkbox = _interopRequireDefault(require("antd/es/checkbox"));
19
19
 
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
21
 
22
+ var _react = require("react");
23
+
22
24
  var _typography = _interopRequireDefault(require("../typography"));
23
25
 
24
26
  var _formMethods = _interopRequireDefault(require("../utils/form-methods"));
@@ -27,13 +29,31 @@ var _omit = _interopRequireDefault(require("omit.js"));
27
29
 
28
30
  var _classnames = _interopRequireDefault(require("classnames"));
29
31
 
32
+ var _optionUtils = require("../utils/option-utils");
33
+
34
+ var _localeContext = _interopRequireDefault(require("../locale/locale-context"));
35
+
36
+ var _empty = _interopRequireDefault(require("../radio/style/empty.svg"));
37
+
30
38
  require("./style/index.less");
31
39
 
32
- var _excluded = ["className", "options", "value"],
40
+ var _excluded = ["className", "options", "value", "clearWhenOptionsUpdated"],
33
41
  _excluded2 = ["label", "value", "extraInfo"];
34
42
 
35
43
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
36
44
 
45
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
46
+
47
+ 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."); }
48
+
49
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
50
+
51
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
52
+
53
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
54
+
55
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
56
+
37
57
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
38
58
 
39
59
  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; }
@@ -60,17 +80,54 @@ IglooCheckbox.formItemPropsHandler = function (config) {
60
80
  var _default = IglooCheckbox;
61
81
  exports.default = _default;
62
82
 
63
- var CheckboxGroup = function CheckboxGroup(_ref) {
83
+ var InnerCheckboxGroup = function InnerCheckboxGroup(_ref) {
64
84
  var className = _ref.className,
65
85
  _ref$options = _ref.options,
66
86
  options = _ref$options === void 0 ? [] : _ref$options,
67
87
  value = _ref.value,
88
+ _ref$clearWhenOptions = _ref.clearWhenOptionsUpdated,
89
+ clearWhenOptionsUpdated = _ref$clearWhenOptions === void 0 ? false : _ref$clearWhenOptions,
68
90
  rest = _objectWithoutProperties(_ref, _excluded);
69
91
 
70
- return (0, _jsxRuntime.jsx)(_checkbox.default.Group, _objectSpread(_objectSpread({}, (0, _omit.default)(rest, _formMethods.default)), {}, {
92
+ var _useState = (0, _react.useState)(value),
93
+ _useState2 = _slicedToArray(_useState, 2),
94
+ selected = _useState2[0],
95
+ setSelected = _useState2[1];
96
+
97
+ var originOptions = (0, _react.useRef)(options);
98
+
99
+ var _useContext = (0, _react.useContext)(_localeContext.default),
100
+ formatMessage = _useContext.formatMessage;
101
+
102
+ (0, _react.useEffect)(function () {
103
+ typeof rest.onChange === 'function' && value !== selected && rest.onChange(selected);
104
+ }, [selected]);
105
+ (0, _react.useEffect)(function () {
106
+ setSelected(value);
107
+ }, [value]);
108
+ (0, _react.useEffect)(function () {
109
+ var setFieldValue = rest.setFieldValue;
110
+
111
+ if ((0, _optionUtils.compareOptions)(options, originOptions.current)) {
112
+ if (clearWhenOptionsUpdated) {
113
+ typeof setFieldValue === 'function' && setFieldValue();
114
+ } else {
115
+ var foundValue = options.find(function (option) {
116
+ return Array.isArray(value) ? value.includes(option.value) : option.value === value;
117
+ });
118
+
119
+ if (!foundValue && value !== undefined) {
120
+ typeof setFieldValue === 'function' && setFieldValue();
121
+ }
122
+ }
123
+
124
+ originOptions.current = options;
125
+ }
126
+ }, [options]);
127
+ return (0, _jsxRuntime.jsxs)(_checkbox.default.Group, _objectSpread(_objectSpread({}, (0, _omit.default)(rest, _formMethods.default)), {}, {
71
128
  className: (0, _classnames.default)('igloo-checkbox-group', className),
72
129
  value: value,
73
- children: (0, _jsxRuntime.jsx)(_row.default, {
130
+ children: [(0, _jsxRuntime.jsx)(_row.default, {
74
131
  gutter: [8, 8],
75
132
  children: options.map(function (_ref2) {
76
133
  var label = _ref2.label,
@@ -94,10 +151,35 @@ var CheckboxGroup = function CheckboxGroup(_ref) {
94
151
  })]
95
152
  }, key);
96
153
  })
97
- })
154
+ }), !options.length && (0, _jsxRuntime.jsxs)("div", {
155
+ style: {
156
+ display: 'flex',
157
+ flexDirection: 'column',
158
+ background: '#f9f9f9',
159
+ padding: 16,
160
+ alignItems: 'center'
161
+ },
162
+ children: [(0, _jsxRuntime.jsx)("img", {
163
+ src: _empty.default,
164
+ style: {
165
+ width: 32,
166
+ height: 24
167
+ }
168
+ }), (0, _jsxRuntime.jsx)(_typography.default, {
169
+ level: "h5",
170
+ style: {
171
+ color: '#212121',
172
+ marginTop: 8
173
+ },
174
+ children: formatMessage({
175
+ id: 'There are no options available currently'
176
+ })
177
+ })]
178
+ })]
98
179
  }));
99
180
  };
100
181
 
182
+ var CheckboxGroup = (0, _optionUtils.optionsHOC)(InnerCheckboxGroup);
101
183
  exports.CheckboxGroup = CheckboxGroup;
102
184
 
103
185
  CheckboxGroup.formItemPropsHandler = function () {
@@ -35,6 +35,8 @@ var _render = _interopRequireDefault(require("./render"));
35
35
 
36
36
  var _typography = _interopRequireDefault(require("../typography"));
37
37
 
38
+ var _searchBox = _interopRequireDefault(require("../search-box"));
39
+
38
40
  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); }
39
41
 
40
42
  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; }
@@ -71,7 +73,8 @@ var elementMap = {
71
73
  InputDate: _input.InputDate,
72
74
  Confirmation: _confirmation.default,
73
75
  ExpiryDate: _input.ExpiryDate,
74
- Typography: _typography.default
76
+ Typography: _typography.default,
77
+ SearchBox: _searchBox.default
75
78
  };
76
79
 
77
80
  var Unknown = function Unknown() {
package/lib/index.d.ts CHANGED
@@ -35,6 +35,7 @@ export { default as MobileInsurerDetail } from './mobile-insurer-detail';
35
35
  export { default as Layout } from './layout';
36
36
  export { default as DetailPanel } from './detail-panel';
37
37
  export { default as message } from './global-message';
38
+ export { default as SearchBox } from './search-box';
38
39
  export { default as FreeForm } from './free-form';
39
40
  export { default as FormItem } from './free-form/element';
40
41
  export { default as FormPages } from './free-form/pages';
package/lib/index.js CHANGED
@@ -66,6 +66,7 @@ var _exportNames = {
66
66
  Layout: true,
67
67
  DetailPanel: true,
68
68
  message: true,
69
+ SearchBox: true,
69
70
  FreeForm: true,
70
71
  FormItem: true,
71
72
  FormPages: true,
@@ -405,6 +406,12 @@ Object.defineProperty(exports, "RedButton", {
405
406
  return _button.RedButton;
406
407
  }
407
408
  });
409
+ Object.defineProperty(exports, "SearchBox", {
410
+ enumerable: true,
411
+ get: function get() {
412
+ return _searchBox.default;
413
+ }
414
+ });
408
415
  Object.defineProperty(exports, "Select", {
409
416
  enumerable: true,
410
417
  get: function get() {
@@ -570,6 +577,8 @@ var _detailPanel = _interopRequireDefault(require("./detail-panel"));
570
577
 
571
578
  var _globalMessage = _interopRequireDefault(require("./global-message"));
572
579
 
580
+ var _searchBox = _interopRequireDefault(require("./search-box"));
581
+
573
582
  var _freeForm = _interopRequireDefault(require("./free-form"));
574
583
 
575
584
  var _element = _interopRequireDefault(require("./free-form/element"));
@@ -21,6 +21,7 @@
21
21
  "Data Processed": "Data Processed",
22
22
  "Data Processing...": "Data Processing...",
23
23
  "Date": "Date",
24
+ "Done": "Done",
24
25
  "Drag and drop a file here": "Drag and drop a file here",
25
26
  "Edit": "Edit",
26
27
  "Error Report": "Error Report",
@@ -56,10 +57,13 @@
56
57
  "Result": "Result",
57
58
  "Result: Success {success_num}; Error {fail_num}": "Result: Success {success_num}; Error {fail_num}",
58
59
  "Rows per page": "Rows per page",
60
+ "Search": "Search",
61
+ "Searching...": "Searching...",
59
62
  "Select All": "Select All",
60
63
  "Send OTP": "Send OTP",
61
64
  "Submit": "Submit",
62
65
  "The file type is not supported.": "The file type is not supported.",
66
+ "There are no options available currently": "There are no options available currently",
63
67
  "This Month": "This Month",
64
68
  "Unselect All": "Unselect All",
65
69
  "Uploading": "Uploading",
@@ -21,6 +21,7 @@
21
21
  "Data Processed": "Data Terproses",
22
22
  "Data Processing...": "Data Diproses",
23
23
  "Date": "Tanggal",
24
+ "Done": "Selesai",
24
25
  "Drag and drop a file here": "Geser dan Letakkan Dokumen disini",
25
26
  "Edit": "Ubah",
26
27
  "Error Report": "Laporan Kesalahan",
@@ -56,10 +57,13 @@
56
57
  "Result": "Hasil",
57
58
  "Result: Success {success_num}; Error {fail_num}": "Hasil: Sukses {success_num}; Kesalahan {fail_num}",
58
59
  "Rows per page": "Baris per halaman",
60
+ "Search": "Mencari",
61
+ "Searching...": "Mencari...",
59
62
  "Select All": "Pilih Semua",
60
63
  "Send OTP": "Kirim OTP",
61
64
  "Submit": "Ajukan",
62
65
  "The file type is not supported.": "Jenis file tidak didukung.",
66
+ "There are no options available currently": "Tidak ada opsi yang tersedia saat ini",
63
67
  "This Month": "Bulan ini",
64
68
  "Unselect All": "Batalkan semua",
65
69
  "Uploading": "Mengunggah",
@@ -21,6 +21,7 @@
21
21
  "Data Processed": "ประมวลข้อมูลสำเร็จแล้ว",
22
22
  "Data Processing...": "กำลังประมวลผลข้อมูล...",
23
23
  "Date": "วันที่",
24
+ "Done": "เสร็จแล้ว",
24
25
  "Drag and drop a file here": "ลากและวางไฟล์มาที่นี่",
25
26
  "Edit": "แก้ไข",
26
27
  "Error Report": "รายงานข้อผิดพลาด",
@@ -56,10 +57,13 @@
56
57
  "Result": "ผลลัพธ์",
57
58
  "Result: Success {success_num}; Error {fail_num}": "ผลลัพธ์: สำเร็จ {success_num}; ข้อผิดพลาด {fail_num}",
58
59
  "Rows per page": "แถวต่อหน้า",
60
+ "Search": "ค้นหา",
61
+ "Searching...": "กำลังค้นหา...",
59
62
  "Select All": "เลือกทั้งหมด",
60
63
  "Send OTP": "ส่ง OTP",
61
64
  "Submit": "ส่ง/ยืนยัน",
62
65
  "The file type is not supported.": "ประเภทไฟล์ไม่รองรับ",
66
+ "There are no options available currently": "ไม่มีตัวเลือกในขณะนี้",
63
67
  "This Month": "เดือนนี้",
64
68
  "Unselect All": "ไม่เลือกทั้งหมด",
65
69
  "Uploading": "กำลังอัพโหลด",
@@ -21,6 +21,7 @@
21
21
  "Data Processed": "Dữ liệu đã xử lý",
22
22
  "Data Processing...": "Đang xử lý dữ liệu...",
23
23
  "Date": "Ngày",
24
+ "Done": "Xong",
24
25
  "Drag and drop a file here": "Thả tệp tin vào đây",
25
26
  "Edit": "Sửa",
26
27
  "Error Report": "Báo cáo lỗi",
@@ -56,10 +57,13 @@
56
57
  "Result": "Kết quả",
57
58
  "Result: Success {success_num}; Error {fail_num}": "Kết quả: sự thành công {success_num}; lỗi {fail_num}",
58
59
  "Rows per page": "Dòng trên trang",
60
+ "Search": "Tìm kiếm",
61
+ "Searching...": "Đang tìm kiếm...",
59
62
  "Select All": "Chọn tất cả",
60
63
  "Send OTP": "Gửi OTP",
61
64
  "Submit": "Gửi",
62
65
  "The file type is not supported.": "Loại tệp không được hỗ trợ.",
66
+ "There are no options available currently": "Hiện tại không có tùy chọn nào",
63
67
  "This Month": "Tháng này",
64
68
  "Unselect All": "Hủy chọn tất cả",
65
69
  "Uploading": "Đang tải lên",
@@ -21,6 +21,7 @@
21
21
  "Data Processed": "已导入",
22
22
  "Data Processing...": "导入中",
23
23
  "Date": "日期",
24
+ "Done": "完成",
24
25
  "Drag and drop a file here": "拖拽一个文件到这里",
25
26
  "Edit": "编辑",
26
27
  "Error Report": "错误报告",
@@ -56,10 +57,13 @@
56
57
  "Result": "结果",
57
58
  "Result: Success {success_num}; Error {fail_num}": "结果:成功 {success_num}; 失败 {fail_num}",
58
59
  "Rows per page": "每页条数",
60
+ "Search": "搜索",
61
+ "Searching...": "正在搜索...",
59
62
  "Select All": "全选",
60
63
  "Send OTP": "发送OTP",
61
64
  "Submit": "提交",
62
65
  "The file type is not supported.": "不支持上传该类型的文件。",
66
+ "There are no options available currently": "当前没有可用的选项",
63
67
  "This Month": "当月",
64
68
  "Unselect All": "反选",
65
69
  "Uploading": "上传中",
@@ -21,6 +21,7 @@
21
21
  "Data Processed": "數據已處理",
22
22
  "Data Processing...": "數據處理中。。。",
23
23
  "Date": "日期",
24
+ "Done": "完成",
24
25
  "Drag and drop a file here": "拖放文件至此",
25
26
  "Edit": "編輯",
26
27
  "Error Report": "錯誤報告",
@@ -38,6 +39,7 @@
38
39
  "OK": "好",
39
40
  "Once you’re happy with the above, and you’ve checked the declaration, please go ahead and submit your claim.": "一旦您對上述內容感到滿意,您已檢查聲明,請繼續並提交您的索賠。",
40
41
  "Optional": "可選項",
42
+ "Other Reason": "其他原因",
41
43
  "Please enter a valid date.": "請輸入有效的日期。",
42
44
  "Please enter a valid time.": "請輸入有效的時間。",
43
45
  "Please select": "請選擇",
@@ -55,10 +57,13 @@
55
57
  "Result": "結果",
56
58
  "Result: Success {success_num}; Error {fail_num}": "結果:成功{success_num};錯誤{fail_num}",
57
59
  "Rows per page": "每頁行數",
60
+ "Search": "檢索",
61
+ "Searching...": "正在檢索...",
58
62
  "Select All": "全選",
59
63
  "Send OTP": "發送OTP.",
60
64
  "Submit": "提交",
61
65
  "The file type is not supported.": "不支持文件類型。",
66
+ "There are no options available currently": "當前沒有可用的選項",
62
67
  "This Month": "本月",
63
68
  "Unselect All": "全部取消選擇",
64
69
  "Uploading": "上傳",
@@ -1,22 +1,22 @@
1
1
  import { RadioProps, RadioGroupProps } from 'antd/es/radio';
2
2
  import { FC, IglooComponentProps } from '../types';
3
3
  import './style/index.less';
4
- import { FormInstance } from 'antd/es/form';
4
+ import { ComponentProps } from '../utils/option-utils';
5
+ import { DefaultOptionType } from 'rc-select/lib/Select';
5
6
  declare type Props = RadioProps & IglooComponentProps;
6
7
  declare const IglooRadio: FC<Props>;
7
- export interface Option extends RadioProps {
8
+ export interface Option extends DefaultOptionType {
8
9
  extraInfo?: {
9
10
  content: any;
10
11
  shownTrigger: 'unchecked' | 'checked' | 'all';
11
12
  };
12
- label: any;
13
13
  }
14
- export interface IProps extends IglooComponentProps, Omit<RadioGroupProps, 'options'> {
14
+ export interface IProps extends IglooComponentProps, Omit<RadioGroupProps, 'options'>, ComponentProps {
15
15
  className?: string;
16
16
  radioType?: string;
17
- getOptions?: (form: FormInstance) => Option[];
18
17
  options: Option[];
19
18
  }
20
- export declare const RadioGroup: FC<IProps>;
19
+ export declare const InnerRadioGroup: FC<IProps>;
20
+ export declare const RadioGroup: FC<import("../utils/option-utils").HOCProps & IProps>;
21
21
  export default IglooRadio;
22
22
  export { default as RadioGroupWithOther } from './radio-group-with-other';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.RadioGroup = void 0;
6
+ exports.RadioGroup = exports.InnerRadioGroup = void 0;
7
7
  Object.defineProperty(exports, "RadioGroupWithOther", {
8
8
  enumerable: true,
9
9
  get: function get() {
@@ -38,13 +38,31 @@ require("./style/index.less");
38
38
 
39
39
  var _typography = _interopRequireDefault(require("../typography"));
40
40
 
41
+ var _localeContext = _interopRequireDefault(require("../locale/locale-context"));
42
+
43
+ var _empty = _interopRequireDefault(require("./style/empty.svg"));
44
+
45
+ var _optionUtils = require("../utils/option-utils");
46
+
41
47
  var _radioGroupWithOther = _interopRequireDefault(require("./radio-group-with-other"));
42
48
 
43
- var _excluded = ["className", "options", "radioType", "getOptions", "value"],
49
+ var _excluded = ["className", "options", "radioType", "value", "clearWhenOptionsUpdated"],
44
50
  _excluded2 = ["label", "value", "extraInfo"];
45
51
 
46
52
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
53
 
54
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
55
+
56
+ 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."); }
57
+
58
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
59
+
60
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
61
+
62
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
63
+
64
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
65
+
48
66
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
49
67
 
50
68
  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; }
@@ -63,38 +81,55 @@ IglooRadio.formItemPropsHandler = function () {
63
81
  return {};
64
82
  };
65
83
 
66
- var RadioGroup = function RadioGroup(_ref) {
84
+ var InnerRadioGroup = function InnerRadioGroup(_ref) {
67
85
  var className = _ref.className,
68
- optionsProp = _ref.options,
86
+ options = _ref.options,
69
87
  _ref$radioType = _ref.radioType,
70
88
  radioType = _ref$radioType === void 0 ? 'normal' : _ref$radioType,
71
- getOptionsProp = _ref.getOptions,
72
89
  value = _ref.value,
90
+ _ref$clearWhenOptions = _ref.clearWhenOptionsUpdated,
91
+ clearWhenOptionsUpdated = _ref$clearWhenOptions === void 0 ? false : _ref$clearWhenOptions,
73
92
  rest = _objectWithoutProperties(_ref, _excluded);
74
93
 
75
- var getOptions = function getOptions() {
76
- var getFormInstance = rest.getFormInstance;
77
- var form = typeof getFormInstance === 'function' && getFormInstance();
78
- if (!form) return [];
79
- var options = typeof getOptionsProp === 'function' && getOptionsProp(form);
80
- return options || [];
81
- };
94
+ var _useState = (0, _react.useState)(value),
95
+ _useState2 = _slicedToArray(_useState, 2),
96
+ selected = _useState2[0],
97
+ setSelected = _useState2[1];
98
+
99
+ var originOptions = (0, _react.useRef)(options);
82
100
 
83
- var options = optionsProp || getOptions();
101
+ var _useContext = (0, _react.useContext)(_localeContext.default),
102
+ formatMessage = _useContext.formatMessage;
103
+
104
+ (0, _react.useEffect)(function () {
105
+ typeof rest.onChange === 'function' && value !== selected && rest.onChange(selected);
106
+ }, [selected]);
107
+ (0, _react.useEffect)(function () {
108
+ setSelected(value);
109
+ }, [value]);
84
110
  (0, _react.useEffect)(function () {
85
111
  var setFieldValue = rest.setFieldValue;
86
- var foundValue = options.find(function (option) {
87
- return option.value === value;
88
- });
89
112
 
90
- if (!foundValue) {
91
- typeof setFieldValue === 'function' && setFieldValue(undefined);
113
+ if ((0, _optionUtils.compareOptions)(options, originOptions.current)) {
114
+ if (clearWhenOptionsUpdated) {
115
+ typeof setFieldValue === 'function' && setFieldValue();
116
+ } else {
117
+ var foundValue = options.find(function (option) {
118
+ return Array.isArray(value) ? value.includes(option.value) : option.value === value;
119
+ });
120
+
121
+ if (!foundValue && value !== undefined) {
122
+ typeof setFieldValue === 'function' && setFieldValue();
123
+ }
124
+ }
125
+
126
+ originOptions.current = options;
92
127
  }
93
- }, [value, options]);
94
- return (0, _jsxRuntime.jsx)(_radio.default.Group, _objectSpread(_objectSpread({}, (0, _omit.default)(rest, _formMethods.default)), {}, {
128
+ }, [options]);
129
+ return (0, _jsxRuntime.jsxs)(_radio.default.Group, _objectSpread(_objectSpread({}, (0, _omit.default)(rest, _formMethods.default)), {}, {
95
130
  className: (0, _classnames.default)('igloo-radio-group', className),
96
131
  value: value,
97
- children: (0, _jsxRuntime.jsx)(_row.default, {
132
+ children: [(0, _jsxRuntime.jsx)(_row.default, {
98
133
  gutter: [8, 8],
99
134
  children: options.map(function (_ref2) {
100
135
  var label = _ref2.label,
@@ -138,10 +173,36 @@ var RadioGroup = function RadioGroup(_ref) {
138
173
  }))
139
174
  }, key);
140
175
  })
141
- })
176
+ }), !options.length && (0, _jsxRuntime.jsxs)("div", {
177
+ style: {
178
+ display: 'flex',
179
+ flexDirection: 'column',
180
+ background: '#f9f9f9',
181
+ padding: 16,
182
+ alignItems: 'center'
183
+ },
184
+ children: [(0, _jsxRuntime.jsx)("img", {
185
+ src: _empty.default,
186
+ style: {
187
+ width: 32,
188
+ height: 24
189
+ }
190
+ }), (0, _jsxRuntime.jsx)(_typography.default, {
191
+ level: "h5",
192
+ style: {
193
+ color: '#212121',
194
+ marginTop: 8
195
+ },
196
+ children: formatMessage({
197
+ id: 'There are no options available currently'
198
+ })
199
+ })]
200
+ })]
142
201
  }));
143
202
  };
144
203
 
204
+ exports.InnerRadioGroup = InnerRadioGroup;
205
+ var RadioGroup = (0, _optionUtils.optionsHOC)(InnerRadioGroup);
145
206
  exports.RadioGroup = RadioGroup;
146
207
 
147
208
  RadioGroup.formItemPropsHandler = function () {
@@ -1,6 +1,6 @@
1
1
  import { IProps as RadioGroupProps } from './index';
2
2
  import { FC } from '../types';
3
- declare const RadioGroupWithOther: FC<RadioGroupProps & {
3
+ declare const RadioGroupWithOther: FC<import("../utils/option-utils").HOCProps & RadioGroupProps & {
4
4
  otherOptionLabel: string;
5
5
  }>;
6
6
  export default RadioGroupWithOther;
@@ -15,7 +15,9 @@ var _input = require("../input");
15
15
 
16
16
  var _locale = require("../locale");
17
17
 
18
- var _excluded = ["value", "onChange", "options", "otherOptionLabel"];
18
+ var _optionUtils = require("../utils/option-utils");
19
+
20
+ var _excluded = ["value", "onChange", "options", "otherOptionLabel", "clearWhenOptionsUpdated"];
19
21
 
20
22
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
21
23
 
@@ -49,11 +51,14 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
49
51
 
50
52
  var otherKey = 'iglooRadioGroupOther';
51
53
 
52
- var RadioGroupWithOther = function RadioGroupWithOther(_ref) {
54
+ var InnerRadioGroupWithOther = function InnerRadioGroupWithOther(_ref) {
53
55
  var value = _ref.value,
54
56
  onChange = _ref.onChange,
55
- options = _ref.options,
57
+ _ref$options = _ref.options,
58
+ options = _ref$options === void 0 ? [] : _ref$options,
56
59
  otherOptionLabel = _ref.otherOptionLabel,
60
+ _ref$clearWhenOptions = _ref.clearWhenOptionsUpdated,
61
+ clearWhenOptionsUpdated = _ref$clearWhenOptions === void 0 ? false : _ref$clearWhenOptions,
57
62
  rest = _objectWithoutProperties(_ref, _excluded);
58
63
 
59
64
  var _useState = (0, _react.useState)(false),
@@ -61,6 +66,38 @@ var RadioGroupWithOther = function RadioGroupWithOther(_ref) {
61
66
  otherEnabled = _useState2[0],
62
67
  enableOther = _useState2[1];
63
68
 
69
+ var _useState3 = (0, _react.useState)(value),
70
+ _useState4 = _slicedToArray(_useState3, 2),
71
+ selected = _useState4[0],
72
+ setSelected = _useState4[1];
73
+
74
+ var originOptions = (0, _react.useRef)(options);
75
+ (0, _react.useEffect)(function () {
76
+ typeof onChange === 'function' && value !== selected && onChange(selected);
77
+ }, [selected]);
78
+ (0, _react.useEffect)(function () {
79
+ setSelected(value);
80
+ }, [value]);
81
+ (0, _react.useEffect)(function () {
82
+ var setFieldValue = rest.setFieldValue;
83
+
84
+ if ((0, _optionUtils.compareOptions)(options, originOptions.current)) {
85
+ if (clearWhenOptionsUpdated) {
86
+ typeof setFieldValue === 'function' && setFieldValue();
87
+ } else {
88
+ var foundValue = options.find(function (option) {
89
+ return Array.isArray(value) ? value.includes(option.value) : option.value === value;
90
+ });
91
+
92
+ if (!foundValue && value !== undefined) {
93
+ typeof setFieldValue === 'function' && setFieldValue();
94
+ }
95
+ }
96
+
97
+ originOptions.current = options;
98
+ }
99
+ }, [options]);
100
+
64
101
  var handleChange = function handleChange(e) {
65
102
  onChange && onChange(e);
66
103
  };
@@ -94,5 +131,6 @@ var RadioGroupWithOther = function RadioGroupWithOther(_ref) {
94
131
  });
95
132
  };
96
133
 
134
+ var RadioGroupWithOther = (0, _optionUtils.optionsHOC)(InnerRadioGroupWithOther);
97
135
  var _default = RadioGroupWithOther;
98
136
  exports.default = _default;
@@ -0,0 +1,12 @@
1
+ <svg width="32" height="25" viewBox="0 0 32 25" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M30.6663 18.3333V12.5846C30.6663 12.0654 30.5316 11.5551 30.2752 11.1035L25.4017 2.51891C24.8687 1.58006 23.8724 1 22.7928 1H8.99351C7.89503 1 6.88439 1.60036 6.35896 2.56503L1.69846 11.1215C1.45865 11.5618 1.33301 12.0551 1.33301 12.5565V18.3333"
4
+ stroke="#212121" stroke-width="2" />
5
+ <mask id="path-2-inside-1_8603_29999" fill="white">
6
+ <path fill-rule="evenodd" clip-rule="evenodd"
7
+ d="M9.22038 11.3468C9.22038 10.5263 8.5552 9.86108 7.73467 9.86108H3C1.34315 9.86108 0 11.2042 0 12.8611V22C0 23.6568 1.34315 25 3 25H29C30.6569 25 32 23.6568 32 22V12.8611C32 11.2042 30.6569 9.86108 29 9.86108H24.2654C23.4449 9.86108 22.7797 10.5263 22.7797 11.3468C22.7797 13.0036 21.4366 14.3468 19.7797 14.3468H12.2204C10.5635 14.3468 9.22038 13.0036 9.22038 11.3468Z" />
8
+ </mask>
9
+ <path
10
+ d="M3 11.8611H7.73467V7.86108H3V11.8611ZM2 22V12.8611H-2V22H2ZM29 23H3V27H29V23ZM30 12.8611V22H34V12.8611H30ZM24.2654 11.8611H29V7.86108H24.2654V11.8611ZM20.7797 11.3468C20.7797 11.8991 20.332 12.3468 19.7797 12.3468V16.3468C22.5411 16.3468 24.7797 14.1082 24.7797 11.3468H20.7797ZM19.7797 12.3468H12.2204V16.3468H19.7797V12.3468ZM12.2204 12.3468C11.6681 12.3468 11.2204 11.8991 11.2204 11.3468H7.22038C7.22038 14.1082 9.45895 16.3468 12.2204 16.3468V12.3468ZM24.2654 7.86108C22.3403 7.86108 20.7797 9.42169 20.7797 11.3468H24.7797C24.7797 11.6308 24.5494 11.8611 24.2654 11.8611V7.86108ZM34 12.8611C34 10.0997 31.7614 7.86108 29 7.86108V11.8611C29.5523 11.8611 30 12.3088 30 12.8611H34ZM29 27C31.7614 27 34 24.7614 34 22H30C30 22.5523 29.5523 23 29 23V27ZM-2 22C-2 24.7614 0.238576 27 3 27V23C2.44772 23 2 22.5523 2 22H-2ZM7.73467 11.8611C7.45064 11.8611 7.22038 11.6308 7.22038 11.3468H11.2204C11.2204 9.42168 9.65977 7.86108 7.73467 7.86108V11.8611ZM3 7.86108C0.238578 7.86108 -2 10.0997 -2 12.8611H2C2 12.3088 2.44771 11.8611 3 11.8611V7.86108Z"
11
+ fill="#212121" mask="url(#path-2-inside-1_8603_29999)" />
12
+ </svg>
@@ -0,0 +1,31 @@
1
+ import { FC, IglooComponentProps } from '../types';
2
+ import './style';
3
+ import { ComponentProps } from '../utils/option-utils';
4
+ declare const SearchBox: FC<import("../utils/option-utils").HOCProps & IglooComponentProps & {
5
+ className?: string | undefined;
6
+ onSearch?: any;
7
+ value?: any;
8
+ multiple?: boolean | undefined;
9
+ modalTitle?: string | undefined;
10
+ placeHolder?: string | undefined;
11
+ modalPlaceHolder?: string | undefined;
12
+ optionsUpdating?: boolean | undefined;
13
+ onChange?: any;
14
+ okButtonProps?: Partial<{
15
+ href: string;
16
+ target?: string | undefined;
17
+ onClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
18
+ } & import("antd/lib/button/button").BaseButtonProps & Omit<import("react").AnchorHTMLAttributes<any>, "onClick" | "type"> & {
19
+ htmlType?: "button" | "submit" | "reset" | undefined;
20
+ onClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
21
+ } & Omit<import("react").ButtonHTMLAttributes<any>, "onClick" | "type">> | undefined;
22
+ cancelButtonProps?: Partial<{
23
+ href: string;
24
+ target?: string | undefined;
25
+ onClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
26
+ } & import("antd/lib/button/button").BaseButtonProps & Omit<import("react").AnchorHTMLAttributes<any>, "onClick" | "type"> & {
27
+ htmlType?: "button" | "submit" | "reset" | undefined;
28
+ onClick?: import("react").MouseEventHandler<HTMLElement> | undefined;
29
+ } & Omit<import("react").ButtonHTMLAttributes<any>, "onClick" | "type">> | undefined;
30
+ } & ComponentProps>;
31
+ export default SearchBox;