@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.
- package/CHANGELOG.md +15 -0
- package/dist/esm/Address.js +3 -5
- package/dist/esm/Audio.js +3 -4
- package/dist/esm/Avatar.js +6 -5
- package/dist/esm/AvatarGroup.js +3 -7
- package/dist/esm/Calendar.js +3 -4
- package/dist/esm/CalendarItem.js +2 -3
- package/dist/esm/CellGroup.js +1 -1
- package/dist/esm/Checkbox.js +3 -3
- package/dist/esm/CheckboxGroup.js +3 -3
- package/dist/esm/ConfigProvider.js +2 -3
- package/dist/esm/CountDown.js +2 -3
- package/dist/esm/DatePicker.js +3 -4
- package/dist/esm/Dialog.js +2 -3
- package/dist/esm/Elevator.js +1 -1
- package/dist/esm/Ellipsis.js +3 -4
- package/dist/esm/Empty.js +3 -5
- package/dist/esm/FixedNav.js +2 -3
- package/dist/esm/Form.js +2 -2
- package/dist/esm/Grid.js +3 -4
- package/dist/esm/GridItem.js +2 -3
- package/dist/esm/Image.js +2 -3
- package/dist/esm/Infiniteloading.js +2 -3
- package/dist/esm/Input.js +2 -3
- package/dist/esm/NumberKeyboard.js +2 -3
- package/dist/esm/Pagination.js +2 -3
- package/dist/esm/Picker.js +2 -3
- package/dist/esm/PullToRefresh.js +2 -3
- package/dist/esm/Range.js +2 -3
- package/dist/esm/SearchBar.js +2 -3
- package/dist/esm/ShortPassword.js +2 -3
- package/dist/esm/Signature.js +2 -3
- package/dist/esm/Skeleton.js +8 -5
- package/dist/esm/Swipe.js +1 -1
- package/dist/esm/Tabbar/style/index.js +1 -1
- package/dist/esm/Table.js +2 -3
- package/dist/esm/TextArea.js +2 -3
- package/dist/esm/TimeDetail.js +2 -3
- package/dist/esm/TimePannel.js +2 -3
- package/dist/esm/TimeSelect.js +4 -5
- package/dist/esm/Uploader.js +2 -3
- package/dist/esm/VirtualList.js +2 -3
- package/dist/esm/WaterMark.js +2 -3
- package/dist/esm/{address.taro-67e32c33.js → address.taro-cab0ea22.js} +18 -4
- package/dist/esm/{audio.taro-51eafc9d.js → audio.taro-ff280f5e.js} +2 -2
- package/dist/esm/{avatar.taro-a840f345.js → avatar.taro-6e8f1f5c.js} +31 -29
- package/dist/esm/{avatargroup-0eadb514.js → avatargroup-f4375806.js} +9 -12
- package/dist/esm/{calendar.taro-b3ebdc35.js → calendar.taro-2fc9b899.js} +2 -2
- package/dist/esm/{calendaritem.taro-ab1ec154.js → calendaritem.taro-2d4a8c34.js} +1 -1
- package/dist/esm/{cellgroup.taro-660faffc.js → cellgroup.taro-e05ea802.js} +3 -2
- package/dist/esm/checkbox.taro-9d02f86c.js +175 -0
- package/dist/esm/{zh-CN-b4f493ba.js → configprovider.taro-ce34d482.js} +44 -1
- package/dist/esm/{countdown.taro-c14b5c1f.js → countdown.taro-3118ba23.js} +1 -1
- package/dist/esm/{datepicker.taro-7d522ff8.js → datepicker.taro-2e3e955b.js} +2 -2
- package/dist/esm/{dialog.taro-f9ca73a2.js → dialog.taro-eab19eab.js} +1 -1
- package/dist/esm/{elevator.taro-360a831f.js → elevator.taro-1a4e3356.js} +16 -8
- package/dist/esm/{ellipsis.taro-79044d54.js → ellipsis.taro-e1ac99a1.js} +7 -4
- package/dist/esm/{empty.taro-f8585835.js → empty.taro-26363c66.js} +12 -18
- package/dist/esm/{fixednav.taro-cca9a6df.js → fixednav.taro-ddb21e87.js} +1 -1
- package/dist/esm/{form.taro-7413d868.js → form.taro-423b0f0a.js} +1 -1
- package/dist/esm/{grid.taro-10eb7716.js → grid.taro-883a9c35.js} +1 -1
- package/dist/esm/{griditem.taro-fb15eeec.js → griditem.taro-16c7055b.js} +1 -1
- package/dist/esm/{image.taro-b897a058.js → image.taro-3025e659.js} +1 -1
- package/dist/esm/{infiniteloading.taro-cce53c60.js → infiniteloading.taro-721bca1f.js} +1 -1
- package/dist/esm/{input.taro-1aca4a45.js → input.taro-06c1e4d5.js} +1 -1
- package/dist/esm/{numberkeyboard.taro-10ab54d6.js → numberkeyboard.taro-d9b1721b.js} +1 -1
- package/dist/esm/nutui-react.es.js +41 -43
- package/dist/esm/{pagination.taro-df441058.js → pagination.taro-94f9be5e.js} +1 -1
- package/dist/esm/{picker.taro-9f1bb6a4.js → picker.taro-e16b4312.js} +1 -1
- package/dist/esm/{pulltorefresh.taro-37dadbc5.js → pulltorefresh.taro-016d0079.js} +1 -1
- package/dist/esm/{range.taro-432d20d7.js → range.taro-8953e8c3.js} +1 -1
- package/dist/esm/{searchbar.taro-4aa300df.js → searchbar.taro-4467040f.js} +1 -1
- package/dist/esm/{shortpassword.taro-99645f99.js → shortpassword.taro-433b86a4.js} +1 -1
- package/dist/esm/{signature.taro-e5ede25a.js → signature.taro-a4d9b5c9.js} +1 -1
- package/dist/esm/{skeleton.taro-fabd423a.js → skeleton.taro-8ec11af9.js} +2 -2
- package/dist/esm/{swipe.taro-b18a73ff.js → swipe.taro-0b8cc872.js} +3 -5
- package/dist/esm/{table.taro-eca757f3.js → table.taro-327b4248.js} +1 -1
- package/dist/esm/{textarea.taro-e256e741.js → textarea.taro-add72cf3.js} +1 -1
- package/dist/esm/{timedetail.taro-cae362b9.js → timedetail.taro-82a2900b.js} +1 -1
- package/dist/esm/{timepannel.taro-d6f4cf80.js → timepannel.taro-0573bb65.js} +1 -1
- package/dist/esm/{timeselect.taro-804199f9.js → timeselect.taro-29124a34.js} +3 -3
- package/dist/esm/{uploader.taro-716f9a50.js → uploader.taro-c70d00de.js} +1 -1
- package/dist/esm/{virtuallist.taro-0bd611cb.js → virtuallist.taro-ba8e1f21.js} +1 -1
- package/dist/esm/{watermark.taro-8966896a.js → watermark.taro-168cdac5.js} +1 -1
- package/dist/locales/base.js +1 -1
- package/dist/locales/en-US.js +1 -1
- package/dist/locales/id-ID.js +1 -1
- package/dist/locales/zh-CN.js +1 -1
- package/dist/locales/zh-TW.js +1 -1
- package/dist/locales/zh-UG.js +1 -1
- package/dist/nutui.react.mjs +421 -331
- package/dist/nutui.react.umd.js +421 -331
- package/dist/packages/cellgroup/cellgroup.scss +20 -16
- package/dist/packages/checkbox/checkbox.scss +8 -11
- package/dist/packages/empty/empty.scss +0 -9
- package/dist/packages/tabbar/tabbar.scss +1 -0
- package/dist/style.css +1 -1
- package/dist/style.mjs +1 -1
- package/dist/styles/themes/default.scss +0 -1
- package/dist/types/index.d.ts +38 -45
- package/package.json +1 -1
- package/dist/esm/Icon.js +0 -64
- package/dist/esm/checkbox.taro-ae460d3a.js +0 -168
- package/dist/esm/configprovider-9960f0fb.js +0 -19
- package/dist/esm/configprovider.taro-43a3c646.js +0 -45
- package/dist/packages/icon/icon.scss +0 -0
- /package/dist/esm/{AvatarContext-c96afdcc.js → context-c96afdcc.js} +0 -0
package/dist/style.mjs
CHANGED
|
@@ -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';
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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$
|
|
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$
|
|
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
|
|
640
|
+
type CheckboxLabelPosition = 'left' | 'right';
|
|
640
641
|
type CheckboxDirection = 'horizontal' | 'vertical';
|
|
641
642
|
interface CheckboxGroupProps {
|
|
642
|
-
disabled
|
|
643
|
-
|
|
643
|
+
disabled?: boolean;
|
|
644
|
+
value?: string[];
|
|
645
|
+
defaultValue?: string[];
|
|
644
646
|
max: number | undefined;
|
|
645
|
-
|
|
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
|
-
|
|
656
|
-
|
|
657
|
+
defaultChecked: boolean;
|
|
658
|
+
labelPosition: 'left' | 'right';
|
|
657
659
|
icon: React__default.ReactNode;
|
|
658
|
-
|
|
660
|
+
activeIcon: React__default.ReactNode;
|
|
659
661
|
indeterminateIcon: React__default.ReactNode;
|
|
660
|
-
|
|
661
|
-
iconFontClassName: string;
|
|
662
|
+
value: string | number;
|
|
662
663
|
indeterminate: boolean;
|
|
663
664
|
label: string | number;
|
|
664
|
-
onChange: (
|
|
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
|
|
1288
|
+
interface EmptyProps extends BasicComponent {
|
|
1289
|
+
image?: ReactNode;
|
|
1289
1290
|
imageSize: number | string;
|
|
1290
1291
|
description: ReactNode;
|
|
1291
|
-
|
|
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:
|
|
1442
|
+
position: SwipeSide;
|
|
1447
1443
|
}) => void;
|
|
1448
1444
|
/** 点击时触发 */
|
|
1449
|
-
onActionClick?: (event: Event, position:
|
|
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
|
-
|
|
1548
|
+
background: string;
|
|
1553
1549
|
color: string;
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
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
|
-
|
|
1568
|
-
|
|
1561
|
+
max: string | number;
|
|
1562
|
+
maxBackground: string;
|
|
1569
1563
|
maxColor: string;
|
|
1570
|
-
size:
|
|
1571
|
-
shape:
|
|
1572
|
-
|
|
1573
|
-
|
|
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
|
-
|
|
1625
|
+
type Direction = 'start' | 'end' | 'middle';
|
|
1626
|
+
interface EllipsisProps extends BasicComponent {
|
|
1634
1627
|
content: string;
|
|
1635
|
-
direction:
|
|
1628
|
+
direction: Direction;
|
|
1636
1629
|
rows: number | string;
|
|
1637
1630
|
expandText: string;
|
|
1638
1631
|
collapseText: string;
|
package/package.json
CHANGED
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
|
|
File without changes
|