@nutui/nutui-react 1.4.8 → 1.4.9-beta.0

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 (76) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/esm/Animate.js +1 -1
  3. package/dist/esm/AnimatingNumbers.js +2 -5
  4. package/dist/esm/Badge.js +8 -2
  5. package/dist/esm/CalendarItem.js +2 -2
  6. package/dist/esm/Card.js +2 -1
  7. package/dist/esm/Cascader.js +2 -1
  8. package/dist/esm/Checkbox.js +2 -2
  9. package/dist/esm/CheckboxGroup.js +34 -69
  10. package/dist/esm/CircleProgress.js +1 -4
  11. package/dist/esm/Collapse.js +2 -1
  12. package/dist/esm/DatePicker.js +1 -27
  13. package/dist/esm/Form/style/index.js +1 -1
  14. package/dist/esm/FormItem/style/index.js +1 -1
  15. package/dist/esm/Grid.js +2 -1
  16. package/dist/esm/GridItem.js +3 -1
  17. package/dist/esm/Indicator.js +1 -1
  18. package/dist/esm/MenuItem/style/index.js +1 -1
  19. package/dist/esm/MenuItem.js +0 -2
  20. package/dist/esm/NavBar/style/index.js +1 -1
  21. package/dist/esm/NumberKeyboard/style/index.js +1 -1
  22. package/dist/esm/Picker.js +1 -1
  23. package/dist/esm/Popover/style/index.js +2 -1
  24. package/dist/esm/Popup.js +1 -1
  25. package/dist/esm/Rate.js +3 -2
  26. package/dist/esm/SearchBar/style/index.js +1 -1
  27. package/dist/esm/SideNavBar/style/index.js +1 -1
  28. package/dist/esm/Skeleton/style/index.js +1 -1
  29. package/dist/esm/Sticky.js +6 -1
  30. package/dist/esm/Swipe.js +2 -1
  31. package/dist/esm/Table/style/index.js +1 -1
  32. package/dist/esm/Tabs/style/index.js +2 -1
  33. package/dist/esm/Tabs.js +3 -2
  34. package/dist/esm/TimeSelect/style/index.js +1 -0
  35. package/dist/esm/Uploader/style/index.js +1 -0
  36. package/dist/esm/Uploader.js +74 -72
  37. package/dist/esm/WaterMark.js +1 -1
  38. package/dist/esm/{checkbox-b2f0756e.js → checkbox-6969a83f.js} +34 -16
  39. package/dist/esm/index-a90733f9.js +11 -0
  40. package/dist/esm/{tabs-5fe5fd90.js → tabs-c13f8ffe.js} +2 -0
  41. package/dist/esm/types/src/packages/checkbox/checkbox.d.ts +2 -7
  42. package/dist/esm/types/src/packages/checkboxgroup/checkboxgroup.d.ts +4 -5
  43. package/dist/esm/types/src/packages/checkboxgroup/context.d.ts +10 -0
  44. package/dist/esm/types/src/packages/tabs/tabs.d.ts +4 -1
  45. package/dist/esm/types/src/packages/uploader/upload.d.ts +3 -0
  46. package/dist/esm/types/src/packages/uploader/uploader.d.ts +4 -1
  47. package/dist/esm/types/src/utils/Interceptor.d.ts +6 -0
  48. package/dist/esm/types/src/utils/index.d.ts +2 -0
  49. package/dist/locales/base.js +1 -1
  50. package/dist/locales/en-US.js +1 -1
  51. package/dist/locales/id-ID.js +1 -1
  52. package/dist/locales/zh-CN.js +1 -1
  53. package/dist/locales/zh-TW.js +1 -1
  54. package/dist/locales/zh-UG.js +1 -1
  55. package/dist/nutui.react.es.js +435 -438
  56. package/dist/nutui.react.umd.js +435 -438
  57. package/dist/packages/datepicker/datepicker.scss +0 -3
  58. package/dist/packages/form/form.scss +1 -0
  59. package/dist/packages/formitem/formitem.scss +13 -0
  60. package/dist/packages/menuitem/menuitem.scss +4 -0
  61. package/dist/packages/navbar/navbar.scss +24 -0
  62. package/dist/packages/numberkeyboard/numberkeyboard.scss +1 -0
  63. package/dist/packages/picker/picker.scss +47 -14
  64. package/dist/packages/searchbar/searchbar.scss +1 -0
  65. package/dist/packages/sidenavbar/sidenavbar.scss +13 -0
  66. package/dist/packages/skeleton/skeleton.scss +7 -0
  67. package/dist/packages/table/table.scss +22 -0
  68. package/dist/packages/tabs/tabs.scss +65 -35
  69. package/dist/packages/timeselect/timeselect.scss +7 -0
  70. package/dist/packages/uploader/uploader.scss +85 -28
  71. package/dist/style.css +1 -1
  72. package/dist/style.es.js +1 -1
  73. package/dist/styles/variables.scss +95 -21
  74. package/dist/types/index.d.ts +16 -16
  75. package/package.json +1 -1
  76. package/dist/esm/types/src/packages/tabbar/use-props-value.d.ts +0 -7
package/dist/esm/Tabs.js CHANGED
@@ -1,8 +1,9 @@
1
- import { T as Tabs } from './tabs-5fe5fd90.js';
2
- export { T as default } from './tabs-5fe5fd90.js';
1
+ import { T as Tabs } from './tabs-c13f8ffe.js';
2
+ export { T as default } from './tabs-c13f8ffe.js';
3
3
  import 'react';
4
4
  import 'classnames';
5
5
  import './bem-893ad28d.js';
6
6
  import '@bem-react/classname';
7
7
  import './Icon.js';
8
8
  import './typings-1c5f2628.js';
9
+ import './TabPane.js';
@@ -1,3 +1,4 @@
1
+ import '../../Popup/style'
1
2
  import '../../TimePannel/style'
2
3
  import '../../TimeDetail/style'
3
4
  import '../../../packages/timeselect/timeselect.scss'
@@ -1,3 +1,4 @@
1
1
  import '../../Icon/style'
2
+ import '../../Progress/style'
2
3
 
3
4
  import '../../../packages/uploader/uploader.scss'
@@ -4,7 +4,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _createClass from "@babel/runtime/helpers/createClass";
5
5
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
6
6
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
- var _excluded = ["children", "uploadIcon", "uploadIconSize", "name", "accept", "defaultFileList", "listType", "disabled", "multiple", "url", "defaultImg", "headers", "timeout", "method", "xhrState", "withCredentials", "data", "isPreview", "isDeletable", "maximum", "capture", "maximize", "className", "autoUpload", "clearInput", "iconClassPrefix", "iconFontClassName", "onStart", "onRemove", "onChange", "onFileItemClick", "onProgress", "onSuccess", "onUpdate", "onFailure", "onOversize", "onBeforeUpload", "onBeforeXhrUpload", "onBeforeDelete"];
7
+ var _excluded = ["children", "uploadIcon", "uploadIconSize", "uploadIconTip", "name", "accept", "defaultFileList", "listType", "disabled", "multiple", "url", "defaultImg", "headers", "timeout", "method", "xhrState", "withCredentials", "data", "isPreview", "isDeletable", "maximum", "capture", "maximize", "className", "autoUpload", "clearInput", "iconClassPrefix", "iconFontClassName", "onStart", "onRemove", "onChange", "onFileItemClick", "onProgress", "onSuccess", "onUpdate", "onFailure", "onOversize", "onBeforeUpload", "onBeforeXhrUpload", "onBeforeDelete"];
8
8
  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; }
9
9
  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; }
10
10
  import React__default, { useState, useEffect, useImperativeHandle } from 'react';
@@ -13,6 +13,7 @@ import Icon from './Icon.js';
13
13
  import Progress from './Progress.js';
14
14
  import { c as cn } from './bem-893ad28d.js';
15
15
  import { useConfig } from './ConfigProvider.js';
16
+ import { i as isPromise } from './index-a90733f9.js';
16
17
  import { C as ComponentDefaults } from './typings-1c5f2628.js';
17
18
  import '@bem-react/classname';
18
19
  var UploadOptions = /*#__PURE__*/_createClass(function UploadOptions() {
@@ -82,58 +83,39 @@ var Upload = /*#__PURE__*/function () {
82
83
  console.warn('浏览器不支持 XMLHttpRequest');
83
84
  }
84
85
  }
85
- }, {
86
- key: "uploadTaro",
87
- value: function uploadTaro(uploadFile, env) {
88
- var options = this.options;
89
- if (env === 'WEB') {
90
- this.upload();
91
- } else if (options.beforeXhrUpload) {
92
- options.beforeXhrUpload(uploadFile, options);
93
- } else {
94
- var _options$onStart2;
95
- var uploadTask = uploadFile({
96
- url: options.url,
97
- filePath: options.taroFilePath,
98
- fileType: options.fileType,
99
- header: _objectSpread({
100
- 'Content-Type': 'multipart/form-data'
101
- }, options.headers),
102
- formData: options.formData,
103
- name: options.name,
104
- success: function success(response) {
105
- if (options.xhrState == response.statusCode) {
106
- var _options$onSuccess2;
107
- (_options$onSuccess2 = options.onSuccess) === null || _options$onSuccess2 === void 0 ? void 0 : _options$onSuccess2.call(options, response, options);
108
- } else {
109
- var _options$onFailure2;
110
- (_options$onFailure2 = options.onFailure) === null || _options$onFailure2 === void 0 ? void 0 : _options$onFailure2.call(options, response, options);
111
- }
112
- },
113
- fail: function fail(e) {
114
- var _options$onFailure3;
115
- (_options$onFailure3 = options.onFailure) === null || _options$onFailure3 === void 0 ? void 0 : _options$onFailure3.call(options, e, options);
116
- }
117
- });
118
- (_options$onStart2 = options.onStart) === null || _options$onStart2 === void 0 ? void 0 : _options$onStart2.call(options, options);
119
- uploadTask.progress(function (res) {
120
- var _options$onProgress2;
121
- (_options$onProgress2 = options.onProgress) === null || _options$onProgress2 === void 0 ? void 0 : _options$onProgress2.call(options, res, options);
122
- // console.log('上传进度', res.progress);
123
- // console.log('已经上传的数据长度', res.totalBytesSent);
124
- // console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend);
125
- });
126
- // uploadTask.abort(); // 取消上传任务
127
- }
128
- }
129
86
  }]);
130
87
  return Upload;
131
88
  }();
89
+ var funcInterceptor = function funcInterceptor(interceptor, _ref) {
90
+ var _ref$args = _ref.args,
91
+ args = _ref$args === void 0 ? [] : _ref$args,
92
+ done = _ref.done,
93
+ canceled = _ref.canceled;
94
+ if (interceptor) {
95
+ var returnVal = interceptor.apply(null, args);
96
+ if (isPromise(returnVal)) {
97
+ returnVal.then(function (value) {
98
+ if (value) {
99
+ done(value);
100
+ } else if (canceled) {
101
+ canceled();
102
+ }
103
+ })["catch"](function () {});
104
+ } else if (returnVal) {
105
+ done();
106
+ } else if (canceled) {
107
+ canceled();
108
+ }
109
+ } else {
110
+ done();
111
+ }
112
+ };
132
113
  var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
133
114
  url: '',
134
115
  maximum: 1,
135
116
  uploadIcon: 'photograph',
136
117
  uploadIconSize: '',
118
+ uploadIconTip: '',
137
119
  listType: 'picture',
138
120
  name: 'file',
139
121
  accept: '*',
@@ -175,6 +157,7 @@ var InternalUploader = function InternalUploader(props, ref) {
175
157
  children = _defaultProps$props.children,
176
158
  uploadIcon = _defaultProps$props.uploadIcon,
177
159
  uploadIconSize = _defaultProps$props.uploadIconSize,
160
+ uploadIconTip = _defaultProps$props.uploadIconTip,
178
161
  name = _defaultProps$props.name,
179
162
  accept = _defaultProps$props.accept,
180
163
  defaultFileList = _defaultProps$props.defaultFileList,
@@ -235,6 +218,9 @@ var InternalUploader = function InternalUploader(props, ref) {
235
218
  return i.upload();
236
219
  });
237
220
  });
221
+ },
222
+ clear: function clear() {
223
+ clearUploadQueue();
238
224
  }
239
225
  };
240
226
  });
@@ -245,6 +231,8 @@ var InternalUploader = function InternalUploader(props, ref) {
245
231
  setUploadQueue(uploadQueue);
246
232
  } else {
247
233
  setUploadQueue([]);
234
+ fileList.splice(0, fileList.length);
235
+ setFileList(_toConsumableArray(fileList));
248
236
  }
249
237
  };
250
238
  var clearInputValue = function clearInputValue(el) {
@@ -315,7 +303,8 @@ var InternalUploader = function InternalUploader(props, ref) {
315
303
  });
316
304
  onSuccess && onSuccess({
317
305
  responseText: responseText,
318
- option: option
306
+ option: option,
307
+ fileList: fileList
319
308
  });
320
309
  };
321
310
  uploadOption.onFailure = function (responseText, option) {
@@ -331,7 +320,8 @@ var InternalUploader = function InternalUploader(props, ref) {
331
320
  });
332
321
  onFailure && onFailure({
333
322
  responseText: responseText,
334
- option: option
323
+ option: option,
324
+ fileList: fileList
335
325
  });
336
326
  };
337
327
  var task = new Upload(uploadOption);
@@ -354,7 +344,11 @@ var InternalUploader = function InternalUploader(props, ref) {
354
344
  fileItem.type = file.type;
355
345
  fileItem.formData = formData;
356
346
  fileItem.uid = file.lastModified + fileItem.uid;
357
- fileItem.message = locale.uploader.readyUpload;
347
+ if (autoUpload) {
348
+ fileItem.message = locale.uploader.readyUpload;
349
+ } else {
350
+ fileItem.message = locale.uploader.waitingUpload;
351
+ }
358
352
  executeUpload(fileItem, index);
359
353
  if (isPreview && file.type.includes('image')) {
360
354
  var reader = new FileReader();
@@ -392,15 +386,19 @@ var InternalUploader = function InternalUploader(props, ref) {
392
386
  }
393
387
  return filterFile;
394
388
  };
389
+ var deleted = function deleted(file, index) {
390
+ fileList.splice(index, 1);
391
+ onRemove && onRemove(file, fileList);
392
+ setFileList(_toConsumableArray(fileList));
393
+ };
395
394
  var onDelete = function onDelete(file, index) {
396
395
  clearUploadQueue(index);
397
- if (onBeforeDelete && onBeforeDelete(file, fileList)) {
398
- fileList.splice(index, 1);
399
- onRemove && onRemove(file, fileList);
400
- setFileList(_toConsumableArray(fileList));
401
- } else {
402
- console.log(locale.uploader.deleteWord);
403
- }
396
+ funcInterceptor(onBeforeDelete, {
397
+ args: [file, fileList],
398
+ done: function done() {
399
+ return deleted(file, index);
400
+ }
401
+ });
404
402
  };
405
403
  var fileChange = function fileChange(event) {
406
404
  if (disabled) {
@@ -455,29 +453,29 @@ var InternalUploader = function InternalUploader(props, ref) {
455
453
  key: item.uid
456
454
  }, listType === 'picture' && !children && React__default.createElement("div", {
457
455
  className: "nut-uploader__preview-img"
458
- }, item.status === 'ready' ? React__default.createElement("div", {
456
+ }, isDeletable && React__default.createElement(Icon, {
457
+ classPrefix: iconClassPrefix,
458
+ fontClassName: iconFontClassName,
459
+ color: "rgba(0,0,0,0.6)",
460
+ className: "close",
461
+ name: "failure",
462
+ onClick: function onClick() {
463
+ return onDelete(item, index);
464
+ }
465
+ }), item.status === 'ready' ? React__default.createElement("div", {
459
466
  className: "nut-uploader__preview__progress"
460
467
  }, React__default.createElement("div", {
461
468
  className: "nut-uploader__preview__progress__msg"
462
469
  }, item.message)) : item.status !== 'success' && React__default.createElement("div", {
463
470
  className: "nut-uploader__preview__progress"
464
- }, React__default.createElement(Icon, {
471
+ }, item.failIcon === ' ' || item.loadingIcon === ' ' ? null : React__default.createElement(Icon, {
465
472
  classPrefix: iconClassPrefix,
466
473
  fontClassName: iconFontClassName,
467
474
  color: "#fff",
468
- name: "".concat(item.status === 'error' ? 'failure' : 'loading')
475
+ name: "".concat(item.status === 'error' ? "".concat(item.failIcon || 'failure') : "".concat(item.loadingIcon || 'loading'))
469
476
  }), React__default.createElement("div", {
470
477
  className: "nut-uploader__preview__progress__msg"
471
- }, item.message)), isDeletable && React__default.createElement(Icon, {
472
- classPrefix: iconClassPrefix,
473
- fontClassName: iconFontClassName,
474
- color: "rgba(0,0,0,0.6)",
475
- className: "close",
476
- name: "failure",
477
- onClick: function onClick() {
478
- return onDelete(item, index);
479
- }
480
- }), item.type.includes('image') ? React__default.createElement(React__default.Fragment, null, item.url && React__default.createElement("img", {
478
+ }, item.message)), item.type.includes('image') ? React__default.createElement(React__default.Fragment, null, item.url && React__default.createElement("img", {
481
479
  className: "nut-uploader__preview-img__c",
482
480
  src: item.url,
483
481
  alt: "",
@@ -503,9 +501,9 @@ var InternalUploader = function InternalUploader(props, ref) {
503
501
  fontClassName: iconFontClassName,
504
502
  color: "#808080",
505
503
  name: "link"
506
- }), "\xA0", item.name))), React__default.createElement("div", {
504
+ }), "\xA0", item.name))), item.status === 'success' ? React__default.createElement("div", {
507
505
  className: "tips"
508
- }, item.name)), listType === 'list' && React__default.createElement("div", {
506
+ }, item.name) : null), listType === 'list' && React__default.createElement("div", {
509
507
  className: "nut-uploader__preview-list"
510
508
  }, React__default.createElement("div", {
511
509
  className: "nut-uploader__preview-img__file__name ".concat(item.status),
@@ -532,14 +530,18 @@ var InternalUploader = function InternalUploader(props, ref) {
532
530
  showText: false
533
531
  })));
534
532
  }), maximum > fileList.length && listType === 'picture' && !children && React__default.createElement("div", {
535
- className: "nut-uploader__upload ".concat(listType)
533
+ className: "nut-uploader__upload ".concat(listType, " ").concat(disabled ? 'nut-uploader__upload-disabled' : '')
534
+ }, React__default.createElement("div", {
535
+ className: "nut-uploader__icon"
536
536
  }, React__default.createElement(Icon, {
537
537
  classPrefix: iconClassPrefix,
538
538
  fontClassName: iconFontClassName,
539
539
  size: uploadIconSize,
540
540
  color: "#808080",
541
541
  name: uploadIcon
542
- }), capture ? React__default.createElement("input", {
542
+ }), React__default.createElement("span", {
543
+ className: "nut-uploader__icon-tip"
544
+ }, uploadIconTip)), capture ? React__default.createElement("input", {
543
545
  className: "nut-uploader__input",
544
546
  type: "file",
545
547
  capture: "user",
@@ -3,8 +3,8 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  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; }
4
4
  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; }
5
5
  import React__default, { useState, useEffect } from 'react';
6
- import { useConfig } from './ConfigProvider.js';
7
6
  import classNames from 'classnames';
7
+ import { useConfig } from './ConfigProvider.js';
8
8
  import { c as cn } from './bem-893ad28d.js';
9
9
  import '@bem-react/classname';
10
10
  var defaultProps = {
@@ -1,14 +1,16 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- var _excluded = ["iconName", "iconSize", "label", "className", "textPosition", "iconActiveName", "checked", "disabled", "onChange", "indeterminate", "iconClassPrefix", "iconFontClassName", "iconIndeterminateName", "getParentVals", "max"];
4
+ var _excluded = ["iconName", "iconSize", "label", "className", "iconActiveName", "checked", "disabled", "onChange", "indeterminate", "iconClassPrefix", "iconFontClassName", "iconIndeterminateName"],
5
+ _excluded2 = ["textPosition"];
5
6
  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; }
6
7
  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; }
7
- import React__default, { useState, useEffect } from 'react';
8
+ import React__default, { createContext, useContext, useState, useEffect } from 'react';
8
9
  import Icon from './Icon.js';
9
10
  import CheckboxGroup from './CheckboxGroup.js';
10
11
  import { c as cn } from './bem-893ad28d.js';
11
12
  import { C as ComponentDefaults } from './typings-1c5f2628.js';
13
+ var CheckboxGroupContext = createContext(null);
12
14
  var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
13
15
  checked: false,
14
16
  disabled: false,
@@ -29,7 +31,6 @@ var Checkbox = function Checkbox(props) {
29
31
  iconSize = props.iconSize,
30
32
  label = props.label,
31
33
  className = props.className,
32
- textPosition = props.textPosition,
33
34
  iconActiveName = props.iconActiveName,
34
35
  checked = props.checked,
35
36
  disabled = props.disabled,
@@ -38,13 +39,16 @@ var Checkbox = function Checkbox(props) {
38
39
  iconClassPrefix = props.iconClassPrefix,
39
40
  iconFontClassName = props.iconFontClassName,
40
41
  iconIndeterminateName = props.iconIndeterminateName,
41
- getParentVals = props.getParentVals,
42
- max = props.max,
43
- rest = _objectWithoutProperties(props, _excluded);
42
+ others = _objectWithoutProperties(props, _excluded);
43
+ // eslint-disable-next-line prefer-const
44
+ var textPosition = others.textPosition,
45
+ rest = _objectWithoutProperties(others, _excluded2);
46
+ var ctx = useContext(CheckboxGroupContext);
44
47
  var _useState = useState(checked),
45
48
  _useState2 = _slicedToArray(_useState, 2),
46
49
  innerChecked = _useState2[0],
47
50
  setInnerChecked = _useState2[1];
51
+ // eslint-disable-next-line prefer-const
48
52
  var _useState3 = useState(disabled),
49
53
  _useState4 = _slicedToArray(_useState3, 2),
50
54
  innerDisabled = _useState4[0],
@@ -54,12 +58,22 @@ var Checkbox = function Checkbox(props) {
54
58
  _indeterminate = _useState6[0],
55
59
  setIndeterminate = _useState6[1];
56
60
  useEffect(function () {
57
- setInnerChecked(checked);
61
+ !ctx && setInnerChecked(checked);
58
62
  setDisabled(disabled);
59
- }, [disabled, checked]);
60
- useEffect(function () {
61
63
  setIndeterminate(indeterminate);
62
- }, [indeterminate]);
64
+ }, [disabled, checked, indeterminate]);
65
+ if (ctx) {
66
+ if (ctx.textPosition !== undefined) {
67
+ textPosition = ctx.textPosition;
68
+ }
69
+ innerDisabled = ctx.disabled;
70
+ innerChecked = ctx.checkedValue.includes(label);
71
+ setInnerChecked = function setInnerChecked(checked) {
72
+ if (ctx.disabled) return;
73
+ if (checked) ctx.check(label);
74
+ if (!checked) ctx.uncheck(label);
75
+ };
76
+ }
63
77
  var getIconName = function getIconName() {
64
78
  if (!innerChecked) {
65
79
  return iconName;
@@ -98,12 +112,16 @@ var Checkbox = function Checkbox(props) {
98
112
  }, children || label);
99
113
  };
100
114
  var handleClick = function handleClick() {
101
- if (!disabled) {
102
- var latest = !innerChecked;
103
- if (max !== undefined && latest && getParentVals().length >= max) return;
104
- onChange && onChange(latest, label || children);
105
- setInnerChecked(latest);
115
+ // 禁用的时候直接返回
116
+ if (disabled) return;
117
+ // 先转换状态
118
+ var latestChecked = !innerChecked;
119
+ // 判断是不是有 context 和 max,有的话需要判断是不是超过最大限制
120
+ if (ctx && ctx.max !== undefined) {
121
+ if (latestChecked && ctx.checkedValue.length >= ctx.max) return;
106
122
  }
123
+ onChange && onChange(latestChecked, label || children);
124
+ setInnerChecked(latestChecked);
107
125
  };
108
126
  return React__default.createElement("div", _objectSpread(_objectSpread({
109
127
  className: "".concat(b({
@@ -116,4 +134,4 @@ var Checkbox = function Checkbox(props) {
116
134
  Checkbox.defaultProps = defaultProps;
117
135
  Checkbox.displayName = 'NutCheckBox';
118
136
  Checkbox.Group = CheckboxGroup;
119
- export { Checkbox as C };
137
+ export { Checkbox as C, CheckboxGroupContext as a };
@@ -0,0 +1,11 @@
1
+ import _typeof from "@babel/runtime/helpers/typeof";
2
+ var isObject = function isObject(val) {
3
+ return val !== null && _typeof(val) === 'object';
4
+ };
5
+ var isFunction = function isFunction(val) {
6
+ return typeof val === 'function';
7
+ };
8
+ var isPromise = function isPromise(val) {
9
+ return isObject(val) && isFunction(val.then) && isFunction(val["catch"]);
10
+ };
11
+ export { isObject as a, isPromise as i };
@@ -11,6 +11,7 @@ import classNames from 'classnames';
11
11
  import { c as cn } from './bem-893ad28d.js';
12
12
  import Icon from './Icon.js';
13
13
  import { C as ComponentDefaults } from './typings-1c5f2628.js';
14
+ import TabPane from './TabPane.js';
14
15
  var Title = /*#__PURE__*/_createClass(
15
16
  // eslint-disable-next-line no-useless-constructor
16
17
  function Title() {
@@ -176,4 +177,5 @@ var Tabs = function Tabs(props) {
176
177
  };
177
178
  Tabs.defaultProps = defaultProps;
178
179
  Tabs.displayName = 'NutTabs';
180
+ Tabs.TabPane = TabPane;
179
181
  export { Tabs as T };
@@ -1,10 +1,6 @@
1
1
  import React, { FunctionComponent } from 'react';
2
2
  import CheckboxGroup from '@/packages/checkboxgroup';
3
3
  import { BasicComponent } from '@/utils/typings';
4
- interface InheritParentProps {
5
- getParentVals?: () => string[] | undefined;
6
- max?: number | undefined;
7
- }
8
4
  export interface CheckboxProps extends BasicComponent {
9
5
  checked: boolean;
10
6
  disabled: boolean;
@@ -16,10 +12,9 @@ export interface CheckboxProps extends BasicComponent {
16
12
  iconClassPrefix: string;
17
13
  iconFontClassName: string;
18
14
  indeterminate: boolean;
19
- label: string;
15
+ label: string | number;
20
16
  onChange: (state: boolean, label: string) => void;
21
17
  }
22
- export declare const Checkbox: FunctionComponent<Partial<CheckboxProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> & InheritParentProps> & {
18
+ export declare const Checkbox: FunctionComponent<Partial<CheckboxProps> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>> & {
23
19
  Group: typeof CheckboxGroup;
24
20
  };
25
- export {};
@@ -1,15 +1,14 @@
1
1
  import React from 'react';
2
2
  import { RadioGroupOptionType } from '@/packages/radiogroup/type';
3
- type Position = 'left' | 'right';
4
- type Direction = 'horizontal' | 'vertical';
3
+ export type CheckboxTextPosition = 'left' | 'right';
4
+ export type CheckboxDirection = 'horizontal' | 'vertical';
5
5
  export interface CheckboxGroupProps {
6
6
  disabled: boolean;
7
7
  checkedValue: string[];
8
8
  max: number | undefined;
9
- textPosition: Position;
10
- direction: Direction;
9
+ textPosition: CheckboxTextPosition;
10
+ direction: CheckboxDirection;
11
11
  onChange: (value: string[]) => void;
12
12
  options: RadioGroupOptionType[];
13
13
  }
14
14
  export declare const CheckboxGroup: React.ForwardRefExoticComponent<Partial<CheckboxGroupProps> & Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> & React.RefAttributes<unknown>>;
15
- export {};
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ declare const CheckboxGroupContext: import("react").Context<{
3
+ textPosition: 'left' | 'right';
4
+ disabled: boolean | undefined;
5
+ checkedValue: string[];
6
+ max: number | undefined;
7
+ check: (value: string) => void;
8
+ uncheck: (value: string) => void;
9
+ } | null>;
10
+ export default CheckboxGroupContext;
@@ -1,5 +1,6 @@
1
1
  import React, { FunctionComponent } from 'react';
2
2
  import { BasicComponent } from '@/utils/typings';
3
+ import TabPane from '@/packages/tabpane';
3
4
  declare class Title {
4
5
  title: string;
5
6
  paneKey: string;
@@ -29,5 +30,7 @@ export interface TabsProps extends BasicComponent {
29
30
  autoHeight: boolean;
30
31
  children?: React.ReactNode;
31
32
  }
32
- export declare const Tabs: FunctionComponent<Partial<TabsProps>>;
33
+ export declare const Tabs: FunctionComponent<Partial<TabsProps>> & {
34
+ TabPane: typeof TabPane;
35
+ };
33
36
  export {};
@@ -20,5 +20,8 @@ export declare class Upload {
20
20
  options: UploadOptions;
21
21
  constructor(options: UploadOptions);
22
22
  upload(): void;
23
+ }
24
+ export declare class UploaderTaro extends Upload {
25
+ constructor(options: UploadOptions);
23
26
  uploadTaro(uploadFile: Function, env: string): void;
24
27
  }
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { UploadOptions } from './upload';
3
+ import { BasicComponent } from '@/utils/typings';
3
4
  export type FileType<T> = {
4
5
  [key: string]: T;
5
6
  };
6
7
  export type FileItemStatus = 'ready' | 'uploading' | 'success' | 'error' | 'removed';
7
- import { BasicComponent } from '@/utils/typings';
8
8
  export interface UploaderProps extends BasicComponent {
9
9
  url: string;
10
10
  maximum: string | number;
@@ -13,6 +13,7 @@ export interface UploaderProps extends BasicComponent {
13
13
  listType: string;
14
14
  uploadIcon: string;
15
15
  uploadIconSize: string | number;
16
+ uploadIconTip: string;
16
17
  name: string;
17
18
  accept: string;
18
19
  disabled: boolean;
@@ -36,6 +37,7 @@ export interface UploaderProps extends BasicComponent {
36
37
  onSuccess?: (param: {
37
38
  responseText: XMLHttpRequest['responseText'];
38
39
  option: UploadOptions;
40
+ fileList: FileItem[];
39
41
  }) => void;
40
42
  onProgress?: (param: {
41
43
  e: ProgressEvent<XMLHttpRequestEventTarget>;
@@ -45,6 +47,7 @@ export interface UploaderProps extends BasicComponent {
45
47
  onFailure?: (param: {
46
48
  responseText: XMLHttpRequest['responseText'];
47
49
  option: UploadOptions;
50
+ fileList: FileItem[];
48
51
  }) => void;
49
52
  onUpdate?: (fileList: FileItem[]) => void;
50
53
  onOversize?: (file: File[]) => void;
@@ -0,0 +1,6 @@
1
+ export type Interceptor = (...args: any[]) => Promise<boolean> | boolean | undefined | void;
2
+ export declare const funcInterceptor: (interceptor: Interceptor | undefined, { args, done, canceled, }: {
3
+ args?: unknown[] | undefined;
4
+ done: (val?: any) => void;
5
+ canceled?: (() => void) | undefined;
6
+ }) => void;
@@ -1 +1,3 @@
1
1
  export declare const isObject: (val: unknown) => val is Record<any, any>;
2
+ export declare const isFunction: (val: unknown) => val is Function;
3
+ export declare const isPromise: <T = any>(val: unknown) => val is Promise<T>;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.4.8 Wed Feb 22 2023 16:48:23 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.4.9 Wed Mar 01 2023 15:35:59 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.4.8 Wed Feb 22 2023 16:48:23 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.4.9 Wed Mar 01 2023 15:35:59 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.4.8 Wed Feb 22 2023 16:48:23 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.4.9 Wed Mar 01 2023 15:35:59 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.4.8 Wed Feb 22 2023 16:48:23 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.4.9 Wed Mar 01 2023 15:35:59 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.4.8 Wed Feb 22 2023 16:48:23 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.4.9 Wed Mar 01 2023 15:35:59 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react v1.4.8 Wed Feb 22 2023 16:48:23 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react v1.4.9 Wed Mar 01 2023 15:35:59 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */