@nutui/nutui-react-taro 2.0.0-alpha.4 → 2.0.0-alpha.5

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 (107) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/esm/Address.js +3 -5
  3. package/dist/esm/Audio.js +3 -4
  4. package/dist/esm/Avatar.js +6 -5
  5. package/dist/esm/AvatarGroup.js +3 -7
  6. package/dist/esm/Calendar.js +3 -4
  7. package/dist/esm/CalendarItem.js +2 -3
  8. package/dist/esm/CellGroup.js +1 -1
  9. package/dist/esm/Checkbox.js +3 -3
  10. package/dist/esm/CheckboxGroup.js +3 -3
  11. package/dist/esm/ConfigProvider.js +2 -3
  12. package/dist/esm/CountDown.js +2 -3
  13. package/dist/esm/DatePicker.js +3 -4
  14. package/dist/esm/Dialog.js +2 -3
  15. package/dist/esm/Elevator.js +1 -1
  16. package/dist/esm/Ellipsis.js +3 -4
  17. package/dist/esm/Empty.js +3 -5
  18. package/dist/esm/FixedNav.js +2 -3
  19. package/dist/esm/Form.js +2 -2
  20. package/dist/esm/Grid.js +3 -4
  21. package/dist/esm/GridItem.js +2 -3
  22. package/dist/esm/Image.js +2 -3
  23. package/dist/esm/Infiniteloading.js +2 -3
  24. package/dist/esm/Input.js +2 -3
  25. package/dist/esm/NumberKeyboard.js +2 -3
  26. package/dist/esm/Pagination.js +2 -3
  27. package/dist/esm/Picker.js +2 -3
  28. package/dist/esm/PullToRefresh.js +2 -3
  29. package/dist/esm/Range.js +2 -3
  30. package/dist/esm/SearchBar.js +2 -3
  31. package/dist/esm/ShortPassword.js +2 -3
  32. package/dist/esm/Signature.js +2 -3
  33. package/dist/esm/Skeleton.js +8 -5
  34. package/dist/esm/Swipe.js +1 -1
  35. package/dist/esm/Tabbar/style/index.js +1 -1
  36. package/dist/esm/Table.js +2 -3
  37. package/dist/esm/TextArea.js +2 -3
  38. package/dist/esm/TimeDetail.js +2 -3
  39. package/dist/esm/TimePannel.js +2 -3
  40. package/dist/esm/TimeSelect.js +4 -5
  41. package/dist/esm/Uploader.js +2 -3
  42. package/dist/esm/VirtualList.js +2 -3
  43. package/dist/esm/WaterMark.js +2 -3
  44. package/dist/esm/{address.taro-67e32c33.js → address.taro-cab0ea22.js} +18 -4
  45. package/dist/esm/{audio.taro-51eafc9d.js → audio.taro-ff280f5e.js} +2 -2
  46. package/dist/esm/{avatar.taro-a840f345.js → avatar.taro-6e8f1f5c.js} +31 -29
  47. package/dist/esm/{avatargroup-0eadb514.js → avatargroup-f4375806.js} +9 -12
  48. package/dist/esm/{calendar.taro-b3ebdc35.js → calendar.taro-2fc9b899.js} +2 -2
  49. package/dist/esm/{calendaritem.taro-ab1ec154.js → calendaritem.taro-2d4a8c34.js} +1 -1
  50. package/dist/esm/{cellgroup.taro-660faffc.js → cellgroup.taro-e05ea802.js} +3 -2
  51. package/dist/esm/checkbox.taro-9d02f86c.js +175 -0
  52. package/dist/esm/{zh-CN-b4f493ba.js → configprovider.taro-ce34d482.js} +44 -1
  53. package/dist/esm/{countdown.taro-c14b5c1f.js → countdown.taro-3118ba23.js} +1 -1
  54. package/dist/esm/{datepicker.taro-7d522ff8.js → datepicker.taro-2e3e955b.js} +2 -2
  55. package/dist/esm/{dialog.taro-f9ca73a2.js → dialog.taro-eab19eab.js} +1 -1
  56. package/dist/esm/{elevator.taro-360a831f.js → elevator.taro-1a4e3356.js} +16 -8
  57. package/dist/esm/{ellipsis.taro-79044d54.js → ellipsis.taro-e1ac99a1.js} +7 -4
  58. package/dist/esm/{empty.taro-f8585835.js → empty.taro-26363c66.js} +12 -18
  59. package/dist/esm/{fixednav.taro-cca9a6df.js → fixednav.taro-ddb21e87.js} +1 -1
  60. package/dist/esm/{form.taro-7413d868.js → form.taro-423b0f0a.js} +1 -1
  61. package/dist/esm/{grid.taro-10eb7716.js → grid.taro-883a9c35.js} +1 -1
  62. package/dist/esm/{griditem.taro-fb15eeec.js → griditem.taro-16c7055b.js} +1 -1
  63. package/dist/esm/{image.taro-b897a058.js → image.taro-3025e659.js} +1 -1
  64. package/dist/esm/{infiniteloading.taro-cce53c60.js → infiniteloading.taro-721bca1f.js} +1 -1
  65. package/dist/esm/{input.taro-1aca4a45.js → input.taro-06c1e4d5.js} +1 -1
  66. package/dist/esm/{numberkeyboard.taro-10ab54d6.js → numberkeyboard.taro-d9b1721b.js} +1 -1
  67. package/dist/esm/nutui-react.es.js +41 -43
  68. package/dist/esm/{pagination.taro-df441058.js → pagination.taro-94f9be5e.js} +1 -1
  69. package/dist/esm/{picker.taro-9f1bb6a4.js → picker.taro-e16b4312.js} +1 -1
  70. package/dist/esm/{pulltorefresh.taro-37dadbc5.js → pulltorefresh.taro-016d0079.js} +1 -1
  71. package/dist/esm/{range.taro-432d20d7.js → range.taro-8953e8c3.js} +1 -1
  72. package/dist/esm/{searchbar.taro-4aa300df.js → searchbar.taro-4467040f.js} +1 -1
  73. package/dist/esm/{shortpassword.taro-99645f99.js → shortpassword.taro-433b86a4.js} +1 -1
  74. package/dist/esm/{signature.taro-e5ede25a.js → signature.taro-a4d9b5c9.js} +1 -1
  75. package/dist/esm/{skeleton.taro-fabd423a.js → skeleton.taro-8ec11af9.js} +2 -2
  76. package/dist/esm/{swipe.taro-b18a73ff.js → swipe.taro-0b8cc872.js} +3 -5
  77. package/dist/esm/{table.taro-eca757f3.js → table.taro-327b4248.js} +1 -1
  78. package/dist/esm/{textarea.taro-e256e741.js → textarea.taro-add72cf3.js} +1 -1
  79. package/dist/esm/{timedetail.taro-cae362b9.js → timedetail.taro-82a2900b.js} +1 -1
  80. package/dist/esm/{timepannel.taro-d6f4cf80.js → timepannel.taro-0573bb65.js} +1 -1
  81. package/dist/esm/{timeselect.taro-804199f9.js → timeselect.taro-29124a34.js} +3 -3
  82. package/dist/esm/{uploader.taro-716f9a50.js → uploader.taro-c70d00de.js} +1 -1
  83. package/dist/esm/{virtuallist.taro-0bd611cb.js → virtuallist.taro-ba8e1f21.js} +1 -1
  84. package/dist/esm/{watermark.taro-8966896a.js → watermark.taro-168cdac5.js} +1 -1
  85. package/dist/locales/base.js +1 -1
  86. package/dist/locales/en-US.js +1 -1
  87. package/dist/locales/id-ID.js +1 -1
  88. package/dist/locales/zh-CN.js +1 -1
  89. package/dist/locales/zh-TW.js +1 -1
  90. package/dist/locales/zh-UG.js +1 -1
  91. package/dist/nutui.react.mjs +421 -331
  92. package/dist/nutui.react.umd.js +421 -331
  93. package/dist/packages/cellgroup/cellgroup.scss +20 -16
  94. package/dist/packages/checkbox/checkbox.scss +8 -11
  95. package/dist/packages/empty/empty.scss +0 -9
  96. package/dist/packages/tabbar/tabbar.scss +1 -0
  97. package/dist/style.css +1 -1
  98. package/dist/style.mjs +1 -1
  99. package/dist/styles/themes/default.scss +0 -1
  100. package/dist/types/index.d.ts +38 -45
  101. package/package.json +1 -1
  102. package/dist/esm/Icon.js +0 -64
  103. package/dist/esm/checkbox.taro-ae460d3a.js +0 -168
  104. package/dist/esm/configprovider-9960f0fb.js +0 -19
  105. package/dist/esm/configprovider.taro-43a3c646.js +0 -45
  106. package/dist/packages/icon/icon.scss +0 -0
  107. /package/dist/esm/{AvatarContext-c96afdcc.js → context-c96afdcc.js} +0 -0
package/dist/style.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @nutui/nutui-react-taro v2.0.0-alpha.4 Fri May 05 2023 16:38:28 GMT+0800 (China Standard Time)
2
+ * @nutui/nutui-react-taro v2.0.0-alpha.5 Wed May 10 2023 15:25:36 GMT+0800 (China Standard Time)
3
3
  * (c) 2023 @jdf2e.
4
4
  * Released under the MIT License.
5
5
  */
@@ -4,7 +4,6 @@
4
4
  @import '../../packages/cell/cell.scss';
5
5
  @import '../../packages/cellgroup/cellgroup.scss';
6
6
  @import '../../packages/configprovider/configprovider.scss';
7
- @import '../../packages/icon/icon.scss';
8
7
  @import '../../packages/image/image.scss';
9
8
  @import '../../packages/overlay/overlay.scss';
10
9
  @import '../../packages/col/col.scss';
@@ -42,6 +42,7 @@ interface CellGroupProps extends BasicComponent {
42
42
  title: ReactNode;
43
43
  description: ReactNode;
44
44
  children?: ReactNode;
45
+ divider: boolean;
45
46
  }
46
47
  declare const CellGroup: FunctionComponent<Partial<CellGroupProps>>;
47
48
 
@@ -317,7 +318,7 @@ declare const Elevator: FunctionComponent<Partial<ElevatorProps> & React__defaul
317
318
  Context: typeof elevatorContext;
318
319
  };
319
320
 
320
- type Direction$1 = 'right' | 'left';
321
+ type Direction$2 = 'right' | 'left';
321
322
  type Position$2 = {
322
323
  top?: string;
323
324
  bottom?: string;
@@ -329,7 +330,7 @@ interface FixedNavProps extends BasicComponent {
329
330
  activeText: string;
330
331
  inactiveText: string;
331
332
  position: Position$2;
332
- type: Direction$1;
333
+ type: Direction$2;
333
334
  onChange: (item: any) => void;
334
335
  onSelect: (item: any, event: MouseEvent$1) => void;
335
336
  content: React__default.ReactNode;
@@ -636,32 +637,32 @@ interface RadioGroupOptionType {
636
637
  onChange?: MouseEventHandler<HTMLDivElement>;
637
638
  }
638
639
 
639
- type CheckboxTextPosition = 'left' | 'right';
640
+ type CheckboxLabelPosition = 'left' | 'right';
640
641
  type CheckboxDirection = 'horizontal' | 'vertical';
641
642
  interface CheckboxGroupProps {
642
- disabled: boolean;
643
- checkedValue: string[];
643
+ disabled?: boolean;
644
+ value?: string[];
645
+ defaultValue?: string[];
644
646
  max: number | undefined;
645
- textPosition: CheckboxTextPosition;
647
+ labelPosition: CheckboxLabelPosition;
646
648
  direction: CheckboxDirection;
647
- onChange: (value: string[]) => void;
648
649
  options: RadioGroupOptionType[];
650
+ onChange: (value: string[]) => void;
649
651
  }
650
652
  declare const CheckboxGroup: React__default.ForwardRefExoticComponent<Partial<CheckboxGroupProps> & Omit<React__default.HTMLAttributes<HTMLDivElement>, "onChange"> & React__default.RefAttributes<unknown>>;
651
653
 
652
654
  interface CheckboxProps extends BasicComponent {
653
655
  checked: boolean;
654
656
  disabled: boolean;
655
- textPosition: 'left' | 'right';
656
- iconSize: string | number;
657
+ defaultChecked: boolean;
658
+ labelPosition: 'left' | 'right';
657
659
  icon: React__default.ReactNode;
658
- checkedIcon: React__default.ReactNode;
660
+ activeIcon: React__default.ReactNode;
659
661
  indeterminateIcon: React__default.ReactNode;
660
- iconClassPrefix: string;
661
- iconFontClassName: string;
662
+ value: string | number;
662
663
  indeterminate: boolean;
663
664
  label: string | number;
664
- onChange: (state: boolean, label: string) => void;
665
+ onChange: (value: boolean) => void;
665
666
  }
666
667
  declare const Checkbox: FunctionComponent<Partial<CheckboxProps> & Omit<React__default.HTMLAttributes<HTMLDivElement>, 'onChange'>> & {
667
668
  Group: typeof CheckboxGroup;
@@ -905,11 +906,11 @@ interface PickerProps {
905
906
  declare const Picker: React__default.ForwardRefExoticComponent<Partial<PickerProps> & React__default.RefAttributes<unknown>>;
906
907
 
907
908
  type Position$1 = 'left' | 'right';
908
- type Direction = 'horizontal' | 'vertical';
909
+ type Direction$1 = 'horizontal' | 'vertical';
909
910
  interface RadioGroupProps {
910
911
  value: string | number | boolean | null;
911
912
  textPosition: Position$1;
912
- direction: Direction;
913
+ direction: Direction$1;
913
914
  onChange: (value: string | number | boolean) => void;
914
915
  options: RadioGroupOptionType[];
915
916
  }
@@ -1284,11 +1285,11 @@ interface DragProps extends BasicComponent {
1284
1285
  }
1285
1286
  declare const Drag: FunctionComponent<Partial<DragProps> & React__default.HTMLAttributes<HTMLDivElement>>;
1286
1287
 
1287
- interface EmptyProps {
1288
- image: ReactNode;
1288
+ interface EmptyProps extends BasicComponent {
1289
+ image?: ReactNode;
1289
1290
  imageSize: number | string;
1290
1291
  description: ReactNode;
1291
- className: string;
1292
+ status: 'empty' | 'error' | 'network';
1292
1293
  }
1293
1294
  declare const Empty: FunctionComponent<Partial<EmptyProps> & React__default.HTMLAttributes<HTMLDivElement>>;
1294
1295
 
@@ -1411,7 +1412,6 @@ interface SkeletonProps {
1411
1412
  declare const Skeleton: FunctionComponent<Partial<SkeletonProps>>;
1412
1413
 
1413
1414
  type SwipeSide = 'left' | 'right';
1414
- type SwipePosition = SwipeSide | 'cell' | 'outside';
1415
1415
  interface SwipeInstance {
1416
1416
  open: (side: SwipeSide) => void;
1417
1417
  close: () => void;
@@ -1423,10 +1423,6 @@ interface SwipeProps {
1423
1423
  style: React__default.CSSProperties;
1424
1424
  /** 标识符,可以在事件参数中获取到 */
1425
1425
  name?: string | number;
1426
- /** 指定左侧滑动区域宽度,单位为px */
1427
- leftWidth?: string | number;
1428
- /** 指定右侧滑动区域宽度,单位为 px */
1429
- rightWidth?: string | number;
1430
1426
  /** 左侧滑动区域的内容 */
1431
1427
  leftAction?: React__default.ReactNode;
1432
1428
  /** 右侧滑动区域的内容 */
@@ -1443,10 +1439,10 @@ interface SwipeProps {
1443
1439
  /** 关闭时触发 */
1444
1440
  onClose?: ({ name, position, }: {
1445
1441
  name: string | number;
1446
- position: SwipePosition;
1442
+ position: SwipeSide;
1447
1443
  }) => void;
1448
1444
  /** 点击时触发 */
1449
- onActionClick?: (event: Event, position: SwipePosition) => void;
1445
+ onActionClick?: (event: Event, position: SwipeSide) => void;
1450
1446
  onTouchStart?: (event: Event) => void;
1451
1447
  onTouchEnd?: (event: Event) => void;
1452
1448
  onTouchMove?: (event: Event) => void;
@@ -1549,30 +1545,26 @@ interface AvatarProps extends BasicComponent {
1549
1545
  size: string;
1550
1546
  icon: React__default.ReactNode;
1551
1547
  shape: AvatarShape;
1552
- bgColor: string;
1548
+ background: string;
1553
1549
  color: string;
1554
- prefixCls: string;
1555
- url: string;
1556
- className: string;
1557
- style: React__default.CSSProperties;
1558
- activeAvatar: (e: MouseEvent) => void;
1559
- onActiveAvatar: (e: MouseEvent) => void;
1560
- onError: (e: any) => void;
1550
+ fit: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
1551
+ src: string;
1552
+ alt: string;
1553
+ onClick: (e: MouseEvent) => void;
1554
+ onError: () => void;
1561
1555
  }
1562
1556
  type AvatarShape = 'round' | 'square';
1563
- declare const Avatar: FunctionComponent<Partial<AvatarProps> & React__default.HTMLAttributes<HTMLDivElement>>;
1557
+ declare const Avatar: FunctionComponent<Partial<AvatarProps> & Omit<React__default.HTMLAttributes<HTMLDivElement>, 'onClick'>>;
1564
1558
 
1565
- interface AvatarGroupProps {
1559
+ interface AvatarGroupProps extends BasicComponent {
1566
1560
  maxContent: string;
1567
- maxCount: string | number;
1568
- maxBgColor: string;
1561
+ max: string | number;
1562
+ maxBackground: string;
1569
1563
  maxColor: string;
1570
- size: string;
1571
- shape: string;
1572
- span: string;
1573
- zIndex: string;
1574
- className: string;
1575
- style: React__default.CSSProperties;
1564
+ size: 'large' | 'normal' | 'small';
1565
+ shape: 'round' | 'square';
1566
+ gap: string;
1567
+ level: 'left' | 'right';
1576
1568
  }
1577
1569
  declare const AvatarGroup: FunctionComponent<Partial<AvatarGroupProps> & React__default.HTMLAttributes<HTMLDivElement>>;
1578
1570
 
@@ -1630,9 +1622,10 @@ interface CountDownProps {
1630
1622
  }
1631
1623
  declare const CountDown: React__default.ForwardRefExoticComponent<Partial<CountDownProps> & React__default.RefAttributes<unknown>>;
1632
1624
 
1633
- interface EllipsisProps {
1625
+ type Direction = 'start' | 'end' | 'middle';
1626
+ interface EllipsisProps extends BasicComponent {
1634
1627
  content: string;
1635
- direction: string;
1628
+ direction: Direction;
1636
1629
  rows: number | string;
1637
1630
  expandText: string;
1638
1631
  collapseText: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nutui/nutui-react-taro",
3
- "version": "2.0.0-alpha.4",
3
+ "version": "2.0.0-alpha.5",
4
4
  "style": "dist/style.css",
5
5
  "main": "dist/nutui.react.umd.js",
6
6
  "module": "dist/esm/nutui-react.es.js",
package/dist/esm/Icon.js DELETED
@@ -1,64 +0,0 @@
1
- import React from 'react';
2
- import { c as cn } from './bem-350c1702.js';
3
- import '@bem-react/classname';
4
-
5
- const defaultProps = {
6
- name: '',
7
- size: '',
8
- classPrefix: 'nut-icon',
9
- fontClassName: 'nutui-iconfont',
10
- color: '',
11
- tag: 'i',
12
- onClick: (e) => { },
13
- className: '',
14
- };
15
- function pxCheck(value) {
16
- if (value === '') {
17
- return value;
18
- }
19
- if (Number.isNaN(Number(value))) {
20
- return String(value);
21
- }
22
- return `${value}px`;
23
- }
24
- function Icon(props) {
25
- const { name, size, classPrefix, color, tag, children, className, fontClassName, style, onClick, ...rest } = {
26
- ...defaultProps,
27
- ...props,
28
- };
29
- const isImage = name ? name.indexOf('/') !== -1 : false;
30
- const type = isImage ? 'img' : tag;
31
- const b = cn('icon');
32
- const handleClick = (e) => {
33
- if (onClick) {
34
- onClick(e);
35
- }
36
- };
37
- const hasSrc = () => {
38
- if (isImage)
39
- return { src: name };
40
- return {};
41
- };
42
- const styles = {};
43
- const checkedSize = pxCheck(size);
44
- if (checkedSize) {
45
- styles.width = styles.height = styles.fontSize = checkedSize;
46
- }
47
- return React.createElement(type, {
48
- className: isImage
49
- ? `${b('img')} ${className || ''} `
50
- : `${fontClassName} ${b(null)} ${classPrefix}-${name} ${className || ''}`,
51
- style: {
52
- color,
53
- ...styles,
54
- ...style,
55
- },
56
- ...rest,
57
- onClick: handleClick,
58
- ...hasSrc(),
59
- }, children);
60
- }
61
- Icon.defaultProps = defaultProps;
62
- Icon.displayName = 'NutIcon';
63
-
64
- export { Icon as default };
@@ -1,168 +0,0 @@
1
- import React, { createContext, useImperativeHandle, useState, useEffect, useCallback, useContext } from 'react';
2
- import { CheckNormal, CheckDisabled, Checked } from '@nutui/icons-react-taro';
3
- import { c as cn } from './bem-350c1702.js';
4
- import { C as ComponentDefaults } from './typings-d8491423.js';
5
-
6
- const CheckboxGroupContext = createContext(null);
7
-
8
- const defaultProps$1 = {
9
- disabled: false,
10
- checkedValue: [],
11
- max: undefined,
12
- textPosition: 'right',
13
- direction: 'vertical',
14
- onChange: (value) => { },
15
- options: [],
16
- };
17
- const CheckboxGroup = React.forwardRef((props, ref) => {
18
- const { children } = { ...defaultProps$1, ...props };
19
- const b = cn('checkboxgroup');
20
- const { className, disabled, onChange, checkedValue, max, textPosition, direction, options, ...rest } = props;
21
- useImperativeHandle(ref, () => ({
22
- toggleAll(state) {
23
- if (state === false) {
24
- setInnerValue([]);
25
- }
26
- else {
27
- const childrenLabel = [];
28
- React.Children.map(children, (child) => {
29
- const childProps = child.props;
30
- childrenLabel.push(childProps.label || child.children);
31
- });
32
- setInnerValue(childrenLabel);
33
- }
34
- },
35
- toggleReverse() {
36
- const childrenLabel = [];
37
- React.Children.map(children, (child) => {
38
- const childProps = child.props;
39
- childrenLabel.push(childProps.label || child.children);
40
- });
41
- const reverse = childrenLabel.filter((c) => innerValue?.findIndex((v) => v === c) === -1);
42
- setInnerValue(reverse);
43
- },
44
- }));
45
- const [innerValue, setInnerValue] = useState(checkedValue || []);
46
- useEffect(() => {
47
- setInnerValue(checkedValue || []);
48
- }, [checkedValue]);
49
- const renderOptions = useCallback(() => {
50
- return options?.map(({ label, value, disabled, onChange, ...rest }) => {
51
- return (React.createElement(Checkbox, { key: value?.toString(), children: label, label: value, ...rest }));
52
- });
53
- }, [options, max]);
54
- return (React.createElement(CheckboxGroupContext.Provider, { value: {
55
- textPosition: textPosition || 'left',
56
- disabled,
57
- max,
58
- checkedValue: innerValue || [],
59
- check: (value) => {
60
- const combined = [...innerValue, value];
61
- setInnerValue(combined);
62
- onChange && onChange(combined);
63
- },
64
- uncheck: (value) => {
65
- const reduced = innerValue.filter((item) => item !== value);
66
- setInnerValue(reduced);
67
- onChange && onChange(reduced);
68
- },
69
- } },
70
- React.createElement("div", { className: `${b()} nut-checkboxgroup--${props.direction} ${className || ''}`, ...rest }, options?.length ? renderOptions() : children)));
71
- });
72
- CheckboxGroup.defaultProps = defaultProps$1;
73
- CheckboxGroup.displayName = 'NutCheckboxGroup';
74
-
75
- const defaultProps = {
76
- ...ComponentDefaults,
77
- checked: false,
78
- disabled: false,
79
- textPosition: 'right',
80
- iconSize: 18,
81
- icon: 'check-normal',
82
- checkedIcon: 'checked',
83
- iconClassPrefix: 'nut-icon',
84
- iconFontClassName: 'nutui-iconfont',
85
- indeterminateIcon: 'check-disabled',
86
- onChange: (state, label) => { },
87
- };
88
- const Checkbox = (props) => {
89
- const { children } = {
90
- ...defaultProps,
91
- ...props,
92
- };
93
- const b = cn('checkbox');
94
- const { icon, iconSize, label, className, checkedIcon, checked, disabled, onChange, indeterminate, iconClassPrefix, iconFontClassName, indeterminateIcon, ...others } = props;
95
- // eslint-disable-next-line prefer-const
96
- let { textPosition, ...rest } = others;
97
- const ctx = useContext(CheckboxGroupContext);
98
- let [innerChecked, setInnerChecked] = useState(checked);
99
- // eslint-disable-next-line prefer-const
100
- let [innerDisabled, setDisabled] = useState(disabled);
101
- const [_indeterminate, setIndeterminate] = useState(indeterminate);
102
- useEffect(() => {
103
- !ctx && setInnerChecked(checked);
104
- setDisabled(disabled);
105
- setIndeterminate(indeterminate);
106
- }, [disabled, checked, indeterminate]);
107
- if (ctx) {
108
- if (ctx.textPosition !== undefined) {
109
- textPosition = ctx.textPosition;
110
- }
111
- innerDisabled = ctx.disabled;
112
- innerChecked = ctx.checkedValue.includes(label);
113
- setInnerChecked = (checked) => {
114
- if (ctx.disabled)
115
- return;
116
- if (checked)
117
- ctx.check(label);
118
- if (!checked)
119
- ctx.uncheck(label);
120
- };
121
- }
122
- const renderIcon = () => {
123
- if (!innerChecked) {
124
- return React.isValidElement(icon) ? (icon) : (React.createElement(CheckNormal, { size: iconSize, className: color() }));
125
- }
126
- if (_indeterminate) {
127
- return React.isValidElement(indeterminateIcon) ? (indeterminateIcon) : (React.createElement(CheckDisabled, { size: iconSize, className: color() }));
128
- }
129
- return React.isValidElement(checkedIcon) ? (checkedIcon) : (React.createElement(Checked, { size: iconSize, className: color() }));
130
- };
131
- const color = () => {
132
- if (innerDisabled) {
133
- return 'nut-checkbox__icon--disable';
134
- }
135
- if (innerChecked) {
136
- if (_indeterminate) {
137
- return 'nut-checkbox__icon--indeterminate';
138
- }
139
- return 'nut-checkbox__icon';
140
- }
141
- return 'nut-checkbox__icon--unchecked';
142
- };
143
- const renderLabel = () => {
144
- return (React.createElement("span", { className: `${b('label', { disabled: innerDisabled })} ` }, children || label));
145
- };
146
- const handleClick = () => {
147
- // 禁用的时候直接返回
148
- if (disabled)
149
- return;
150
- // 先转换状态
151
- const latestChecked = !innerChecked;
152
- // 判断是不是有 context 和 max,有的话需要判断是不是超过最大限制
153
- if (ctx && ctx.max !== undefined) {
154
- if (latestChecked && ctx.checkedValue.length >= ctx.max)
155
- return;
156
- }
157
- onChange && onChange(latestChecked, label || children);
158
- setInnerChecked(latestChecked);
159
- };
160
- return (React.createElement("div", { className: `${b({ reverse: textPosition === 'left' })} ${className || ''}`, ...rest, onClick: handleClick },
161
- renderIcon(),
162
- renderLabel()));
163
- };
164
- Checkbox.defaultProps = defaultProps;
165
- Checkbox.displayName = 'NutCheckBox';
166
- Checkbox.Group = CheckboxGroup;
167
-
168
- export { Checkbox as C, CheckboxGroup as a };
@@ -1,19 +0,0 @@
1
- import { createContext, useContext } from 'react';
2
- import 'lodash.kebabcase';
3
- import { z as zhCN } from './zh-CN-b4f493ba.js';
4
-
5
- const defaultConfigRef = {
6
- current: {
7
- locale: zhCN,
8
- },
9
- };
10
- const getDefaultConfig = () => {
11
- return defaultConfigRef.current;
12
- };
13
- // 创建一个 Context 对象
14
- const ConfigContext = createContext(null);
15
- const useConfig = () => {
16
- return useContext(ConfigContext) ?? getDefaultConfig();
17
- };
18
-
19
- export { useConfig as u };
@@ -1,45 +0,0 @@
1
- import React, { createContext, useContext, useMemo } from 'react';
2
- import kebabCase from 'lodash.kebabcase';
3
- import { z as zhCN } from './zh-CN-b4f493ba.js';
4
-
5
- const defaultProps = {
6
- locale: zhCN,
7
- };
8
- const defaultConfigRef = {
9
- current: {
10
- locale: zhCN,
11
- },
12
- };
13
- const setDefaultConfig = (config) => {
14
- defaultConfigRef.current = config;
15
- };
16
- const getDefaultConfig = () => {
17
- return defaultConfigRef.current;
18
- };
19
- // 创建一个 Context 对象
20
- const ConfigContext = createContext(null);
21
- const useConfig = () => {
22
- return useContext(ConfigContext) ?? getDefaultConfig();
23
- };
24
- function convertThemeVarsToCSSVars(themeVars) {
25
- const cssVars = {};
26
- Object.keys(themeVars).forEach((key) => {
27
- cssVars[`--${kebabCase(key)}`] = themeVars[key];
28
- });
29
- return cssVars;
30
- }
31
- const ConfigProvider = (props) => {
32
- const { children, ...config } = { ...defaultProps, ...props };
33
- const parentConfig = useConfig();
34
- const theme = config.theme || {};
35
- const style = useMemo(() => convertThemeVarsToCSSVars(theme), [theme]);
36
- return (React.createElement(ConfigContext.Provider, { value: {
37
- ...parentConfig,
38
- ...config,
39
- } },
40
- React.createElement("div", { style: style }, children)));
41
- };
42
- ConfigProvider.defaultProps = defaultProps;
43
- ConfigProvider.displayName = 'NutConfigProvider';
44
-
45
- export { ConfigProvider as C, getDefaultConfig as g, setDefaultConfig as s, useConfig as u };
File without changes