antd-mobile 5.22.0 → 5.23.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.
- package/2x/bundle/antd-mobile.cjs.development.js +803 -711
- package/2x/bundle/antd-mobile.cjs.js +8 -8
- package/2x/bundle/antd-mobile.compatible.umd.js +6831 -6752
- package/2x/bundle/antd-mobile.es.development.js +803 -711
- package/2x/bundle/antd-mobile.es.js +5266 -5200
- package/2x/bundle/antd-mobile.umd.development.js +803 -711
- package/2x/bundle/antd-mobile.umd.js +8 -8
- package/2x/bundle/style.css +128 -37
- package/2x/cjs/components/avatar/avatar.js +2 -2
- package/2x/cjs/components/dialog/dialog-action-button.d.ts +2 -2
- package/2x/cjs/components/empty/empty.d.ts +1 -0
- package/2x/cjs/components/empty/empty.js +1 -0
- package/2x/cjs/components/footer/footer.css +60 -0
- package/2x/cjs/components/footer/footer.d.ts +19 -0
- package/2x/cjs/components/footer/footer.js +83 -0
- package/2x/cjs/components/footer/index.d.ts +4 -0
- package/2x/cjs/components/footer/index.js +13 -0
- package/2x/cjs/components/image-uploader/image-uploader.d.ts +11 -1
- package/2x/cjs/components/image-uploader/image-uploader.js +42 -25
- package/2x/cjs/components/image-uploader/index.d.ts +1 -1
- package/2x/cjs/components/image-uploader/preview-item.js +5 -0
- package/2x/cjs/components/image-viewer/slides.js +2 -2
- package/2x/cjs/components/page-indicator/page-indicator.css +1 -0
- package/2x/cjs/components/picker/index.d.ts +2 -2
- package/2x/cjs/components/picker/picker.d.ts +1 -1
- package/2x/cjs/components/picker-view/picker-view.css +9 -0
- package/2x/cjs/components/picker-view/wheel.js +8 -4
- package/2x/cjs/components/rate/rate.css +6 -1
- package/2x/cjs/components/rate/rate.js +3 -1
- package/2x/cjs/components/slider/slider.css +15 -1
- package/2x/cjs/components/slider/slider.d.ts +1 -0
- package/2x/cjs/components/slider/slider.js +13 -2
- package/2x/cjs/components/slider/thumb.d.ts +1 -0
- package/2x/cjs/components/slider/thumb.js +4 -3
- package/2x/cjs/components/toast/toast.css +4 -3
- package/2x/cjs/index.d.ts +1 -0
- package/2x/cjs/index.js +8 -0
- package/2x/cjs/locales/zh-CN.js +1 -1
- package/2x/cjs/utils/measure-css-length.js +1 -1
- package/2x/es/components/avatar/avatar.js +1 -1
- package/2x/es/components/dialog/dialog-action-button.d.ts +2 -2
- package/2x/es/components/empty/empty.d.ts +1 -0
- package/2x/es/components/empty/empty.js +2 -0
- package/2x/es/components/footer/footer.css +60 -0
- package/2x/es/components/footer/footer.d.ts +19 -0
- package/2x/es/components/footer/footer.js +66 -0
- package/2x/es/components/footer/index.d.ts +4 -0
- package/2x/es/components/footer/index.js +3 -0
- package/2x/es/components/image-uploader/image-uploader.d.ts +11 -1
- package/2x/es/components/image-uploader/image-uploader.js +41 -25
- package/2x/es/components/image-uploader/index.d.ts +1 -1
- package/2x/es/components/image-uploader/preview-item.js +6 -1
- package/2x/es/components/image-viewer/slides.js +2 -2
- package/2x/es/components/page-indicator/page-indicator.css +1 -0
- package/2x/es/components/picker/index.d.ts +2 -2
- package/2x/es/components/picker/picker.d.ts +1 -1
- package/2x/es/components/picker-view/picker-view.css +9 -0
- package/2x/es/components/picker-view/wheel.js +8 -4
- package/2x/es/components/rate/rate.css +6 -1
- package/2x/es/components/rate/rate.js +3 -1
- package/2x/es/components/slider/slider.css +15 -1
- package/2x/es/components/slider/slider.d.ts +1 -0
- package/2x/es/components/slider/slider.js +12 -2
- package/2x/es/components/slider/thumb.d.ts +1 -0
- package/2x/es/components/slider/thumb.js +4 -3
- package/2x/es/components/toast/toast.css +4 -3
- package/2x/es/index.d.ts +1 -0
- package/2x/es/index.js +1 -0
- package/2x/es/locales/zh-CN.js +1 -1
- package/2x/es/utils/measure-css-length.js +1 -1
- package/2x/package.json +1 -1
- package/2x/umd/antd-mobile.js +6831 -6752
- package/bundle/antd-mobile.cjs.development.js +803 -711
- package/bundle/antd-mobile.cjs.js +8 -8
- package/bundle/antd-mobile.compatible.umd.js +6831 -6752
- package/bundle/antd-mobile.es.development.js +803 -711
- package/bundle/antd-mobile.es.js +5266 -5200
- package/bundle/antd-mobile.umd.development.js +803 -711
- package/bundle/antd-mobile.umd.js +8 -8
- package/bundle/style.css +1 -1
- package/cjs/components/avatar/avatar.js +2 -2
- package/cjs/components/dialog/dialog-action-button.d.ts +2 -2
- package/cjs/components/empty/empty.d.ts +1 -0
- package/cjs/components/empty/empty.js +1 -0
- package/cjs/components/footer/footer.css +51 -0
- package/cjs/components/footer/footer.d.ts +19 -0
- package/cjs/components/footer/footer.js +83 -0
- package/cjs/components/footer/index.d.ts +4 -0
- package/cjs/components/footer/index.js +13 -0
- package/cjs/components/image-uploader/image-uploader.d.ts +11 -1
- package/cjs/components/image-uploader/image-uploader.js +42 -25
- package/cjs/components/image-uploader/index.d.ts +1 -1
- package/cjs/components/image-uploader/preview-item.js +5 -0
- package/cjs/components/image-viewer/slides.js +2 -2
- package/cjs/components/page-indicator/page-indicator.css +1 -0
- package/cjs/components/picker/index.d.ts +2 -2
- package/cjs/components/picker/picker.d.ts +1 -1
- package/cjs/components/picker-view/picker-view.css +8 -0
- package/cjs/components/picker-view/wheel.js +8 -4
- package/cjs/components/rate/rate.css +5 -1
- package/cjs/components/rate/rate.js +3 -1
- package/cjs/components/slider/slider.css +14 -1
- package/cjs/components/slider/slider.d.ts +1 -0
- package/cjs/components/slider/slider.js +13 -2
- package/cjs/components/slider/thumb.d.ts +1 -0
- package/cjs/components/slider/thumb.js +4 -3
- package/cjs/components/toast/toast.css +4 -3
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +8 -0
- package/cjs/locales/zh-CN.js +1 -1
- package/cjs/utils/measure-css-length.js +1 -1
- package/es/components/avatar/avatar.js +1 -1
- package/es/components/dialog/dialog-action-button.d.ts +2 -2
- package/es/components/empty/empty.d.ts +1 -0
- package/es/components/empty/empty.js +2 -0
- package/es/components/footer/footer.css +51 -0
- package/es/components/footer/footer.d.ts +19 -0
- package/es/components/footer/footer.js +66 -0
- package/es/components/footer/index.d.ts +4 -0
- package/es/components/footer/index.js +3 -0
- package/es/components/image-uploader/image-uploader.d.ts +11 -1
- package/es/components/image-uploader/image-uploader.js +41 -25
- package/es/components/image-uploader/index.d.ts +1 -1
- package/es/components/image-uploader/preview-item.js +6 -1
- package/es/components/image-viewer/slides.js +2 -2
- package/es/components/page-indicator/page-indicator.css +1 -0
- package/es/components/picker/index.d.ts +2 -2
- package/es/components/picker/picker.d.ts +1 -1
- package/es/components/picker-view/picker-view.css +8 -0
- package/es/components/picker-view/wheel.js +8 -4
- package/es/components/rate/rate.css +5 -1
- package/es/components/rate/rate.js +3 -1
- package/es/components/slider/slider.css +14 -1
- package/es/components/slider/slider.d.ts +1 -0
- package/es/components/slider/slider.js +12 -2
- package/es/components/slider/thumb.d.ts +1 -0
- package/es/components/slider/thumb.js +4 -3
- package/es/components/toast/toast.css +4 -3
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/locales/zh-CN.js +1 -1
- package/es/utils/measure-css-length.js +1 -1
- package/package.json +1 -1
- package/umd/antd-mobile.js +1 -1
package/2x/bundle/style.css
CHANGED
|
@@ -291,6 +291,38 @@ div.adm-px-tester {
|
|
|
291
291
|
display: block;
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
+
.adm-image {
|
|
295
|
+
--width: var(--adm-image-width, auto);
|
|
296
|
+
--height: var(--adm-image-height, auto);
|
|
297
|
+
width: var(--width);
|
|
298
|
+
height: var(--height);
|
|
299
|
+
display: block;
|
|
300
|
+
overflow: hidden;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.adm-image-img {
|
|
304
|
+
width: 100%;
|
|
305
|
+
height: 100%;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.adm-image-tip {
|
|
309
|
+
position: relative;
|
|
310
|
+
background-color: var(--adm-color-box);
|
|
311
|
+
height: 100%;
|
|
312
|
+
min-height: 48px;
|
|
313
|
+
min-width: 48px;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.adm-image-tip>svg {
|
|
317
|
+
width: 48px;
|
|
318
|
+
height: 48px;
|
|
319
|
+
position: absolute;
|
|
320
|
+
left: 50%;
|
|
321
|
+
top: 50%;
|
|
322
|
+
transform: translate(-50%,-50%);
|
|
323
|
+
color: var(--adm-color-weak);
|
|
324
|
+
}
|
|
325
|
+
|
|
294
326
|
.adm-badge-wrapper {
|
|
295
327
|
display: inline-block;
|
|
296
328
|
position: relative;
|
|
@@ -945,6 +977,15 @@ div.adm-px-tester {
|
|
|
945
977
|
align-items: center;
|
|
946
978
|
}
|
|
947
979
|
|
|
980
|
+
.adm-picker-view-item-height-measure {
|
|
981
|
+
position: relative;
|
|
982
|
+
left: 0;
|
|
983
|
+
top: 0;
|
|
984
|
+
height: var(--item-height);
|
|
985
|
+
width: 0;
|
|
986
|
+
pointer-events: none;
|
|
987
|
+
}
|
|
988
|
+
|
|
948
989
|
.adm-cascader-view {
|
|
949
990
|
--height: auto;
|
|
950
991
|
}
|
|
@@ -1538,38 +1579,6 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
|
|
|
1538
1579
|
overflow-y: auto;
|
|
1539
1580
|
}
|
|
1540
1581
|
|
|
1541
|
-
.adm-image {
|
|
1542
|
-
--width: var(--adm-image-width, auto);
|
|
1543
|
-
--height: var(--adm-image-height, auto);
|
|
1544
|
-
width: var(--width);
|
|
1545
|
-
height: var(--height);
|
|
1546
|
-
display: block;
|
|
1547
|
-
overflow: hidden;
|
|
1548
|
-
}
|
|
1549
|
-
|
|
1550
|
-
.adm-image-img {
|
|
1551
|
-
width: 100%;
|
|
1552
|
-
height: 100%;
|
|
1553
|
-
}
|
|
1554
|
-
|
|
1555
|
-
.adm-image-tip {
|
|
1556
|
-
position: relative;
|
|
1557
|
-
background-color: var(--adm-color-box);
|
|
1558
|
-
height: 100%;
|
|
1559
|
-
min-height: 48px;
|
|
1560
|
-
min-width: 48px;
|
|
1561
|
-
}
|
|
1562
|
-
|
|
1563
|
-
.adm-image-tip>svg {
|
|
1564
|
-
width: 48px;
|
|
1565
|
-
height: 48px;
|
|
1566
|
-
position: absolute;
|
|
1567
|
-
left: 50%;
|
|
1568
|
-
top: 50%;
|
|
1569
|
-
transform: translate(-50%,-50%);
|
|
1570
|
-
color: var(--adm-color-weak);
|
|
1571
|
-
}
|
|
1572
|
-
|
|
1573
1582
|
.adm-divider-horizontal {
|
|
1574
1583
|
display: flex;
|
|
1575
1584
|
align-items: center;
|
|
@@ -3137,6 +3146,7 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
|
|
|
3137
3146
|
}
|
|
3138
3147
|
|
|
3139
3148
|
.adm-page-indicator-color-white {
|
|
3149
|
+
--dot-color: rgba(255, 255, 255, .5);
|
|
3140
3150
|
--active-dot-color: var(--adm-color-white);
|
|
3141
3151
|
}
|
|
3142
3152
|
|
|
@@ -3487,7 +3497,8 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
|
|
|
3487
3497
|
.adm-rate {
|
|
3488
3498
|
--star-size: 48px;
|
|
3489
3499
|
--active-color: #ffd21e;
|
|
3490
|
-
--inactive-color:
|
|
3500
|
+
--inactive-color: #e5e5e5;
|
|
3501
|
+
--inactive-color-half: #dbdbdb;
|
|
3491
3502
|
display: inline-flex;
|
|
3492
3503
|
touch-action: pan-y;
|
|
3493
3504
|
-webkit-user-select: none;
|
|
@@ -3526,6 +3537,10 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
|
|
|
3526
3537
|
cursor: unset;
|
|
3527
3538
|
}
|
|
3528
3539
|
|
|
3540
|
+
.adm-rate.adm-rate-half .adm-rate-star-half:not(.adm-rate-star-active) {
|
|
3541
|
+
color: var(--inactive-color-half);
|
|
3542
|
+
}
|
|
3543
|
+
|
|
3529
3544
|
.adm-result {
|
|
3530
3545
|
padding: 64px 24px;
|
|
3531
3546
|
background-color: var(--adm-color-background);
|
|
@@ -4048,12 +4063,26 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
|
|
|
4048
4063
|
transform: translate(-50%);
|
|
4049
4064
|
}
|
|
4050
4065
|
|
|
4051
|
-
.adm-slider-disabled
|
|
4066
|
+
.adm-slider-disabled .adm-slider-mark,
|
|
4067
|
+
.adm-slider-disabled .adm-slider-thumb-icon {
|
|
4052
4068
|
opacity: .4;
|
|
4053
4069
|
}
|
|
4054
4070
|
|
|
4071
|
+
.adm-slider-disabled .adm-slider-tick-active:after,
|
|
4072
|
+
.adm-slider-disabled .adm-slider-fill:after {
|
|
4073
|
+
content: "";
|
|
4074
|
+
position: absolute;
|
|
4075
|
+
left: 0;
|
|
4076
|
+
top: 0;
|
|
4077
|
+
right: 0;
|
|
4078
|
+
bottom: 0;
|
|
4079
|
+
border-radius: inherit;
|
|
4080
|
+
background-color: #fff9;
|
|
4081
|
+
}
|
|
4082
|
+
|
|
4055
4083
|
.adm-slider-disabled .adm-slider-thumb {
|
|
4056
4084
|
cursor: not-allowed;
|
|
4085
|
+
box-shadow: 0 4px 10px #0000000f;
|
|
4057
4086
|
}
|
|
4058
4087
|
|
|
4059
4088
|
.adm-slider-disabled .adm-slider-mark-text,
|
|
@@ -4717,8 +4746,7 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
|
|
|
4717
4746
|
left: 50%;
|
|
4718
4747
|
transform: translate(-50%,-50%);
|
|
4719
4748
|
width: auto;
|
|
4720
|
-
|
|
4721
|
-
max-width: 400px;
|
|
4749
|
+
max-width: 408px;
|
|
4722
4750
|
max-height: 70%;
|
|
4723
4751
|
overflow: auto;
|
|
4724
4752
|
color: #fff;
|
|
@@ -4733,10 +4761,12 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
|
|
|
4733
4761
|
|
|
4734
4762
|
.adm-toast-mask .adm-toast-main-text {
|
|
4735
4763
|
padding: 24px;
|
|
4764
|
+
min-width: 0;
|
|
4736
4765
|
}
|
|
4737
4766
|
|
|
4738
4767
|
.adm-toast-mask .adm-toast-main-icon {
|
|
4739
|
-
padding: 70px
|
|
4768
|
+
padding: 70px 24px;
|
|
4769
|
+
min-width: 300px;
|
|
4740
4770
|
}
|
|
4741
4771
|
|
|
4742
4772
|
.adm-toast-mask .adm-toast-main-icon .adm-toast-icon {
|
|
@@ -4936,4 +4966,65 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
|
|
|
4936
4966
|
|
|
4937
4967
|
.adm-water-mark-full-page {
|
|
4938
4968
|
position: fixed;
|
|
4969
|
+
}
|
|
4970
|
+
|
|
4971
|
+
.adm-footer {
|
|
4972
|
+
--background-color: var(--adm-color-background);
|
|
4973
|
+
color: var(--adm-color-text);
|
|
4974
|
+
display: flex;
|
|
4975
|
+
flex-direction: column;
|
|
4976
|
+
align-items: center;
|
|
4977
|
+
background-color: var(--background-color);
|
|
4978
|
+
}
|
|
4979
|
+
|
|
4980
|
+
.adm-footer-label {
|
|
4981
|
+
width: 100%;
|
|
4982
|
+
}
|
|
4983
|
+
|
|
4984
|
+
.adm-footer-label .adm-divider.adm-divider {
|
|
4985
|
+
color: var(--adm-color-light);
|
|
4986
|
+
}
|
|
4987
|
+
|
|
4988
|
+
.adm-footer-links {
|
|
4989
|
+
margin: 16px 0;
|
|
4990
|
+
color: var(--adm-color-primary);
|
|
4991
|
+
white-space: nowrap;
|
|
4992
|
+
}
|
|
4993
|
+
|
|
4994
|
+
.adm-footer-links a {
|
|
4995
|
+
text-decoration: none;
|
|
4996
|
+
}
|
|
4997
|
+
|
|
4998
|
+
.adm-footer-content {
|
|
4999
|
+
display: flex;
|
|
5000
|
+
align-items: center;
|
|
5001
|
+
margin: 16px 0;
|
|
5002
|
+
color: var(--adm-color-light);
|
|
5003
|
+
}
|
|
5004
|
+
|
|
5005
|
+
.adm-footer-chips {
|
|
5006
|
+
display: flex;
|
|
5007
|
+
align-items: center;
|
|
5008
|
+
white-space: nowrap;
|
|
5009
|
+
margin: 16px 0;
|
|
5010
|
+
}
|
|
5011
|
+
|
|
5012
|
+
.adm-footer-chip {
|
|
5013
|
+
white-space: nowrap;
|
|
5014
|
+
margin-right: 40px;
|
|
5015
|
+
font-size: 24px;
|
|
5016
|
+
background-color: var(--adm-color-box);
|
|
5017
|
+
color: var(--adm-color-weak);
|
|
5018
|
+
padding: 8px 24px;
|
|
5019
|
+
border-radius: 200px;
|
|
5020
|
+
}
|
|
5021
|
+
|
|
5022
|
+
.adm-footer-chip-link {
|
|
5023
|
+
cursor: pointer;
|
|
5024
|
+
background-color: #e7f1ff;
|
|
5025
|
+
color: var(--adm-color-primary);
|
|
5026
|
+
}
|
|
5027
|
+
|
|
5028
|
+
.adm-footer-chip:last-child {
|
|
5029
|
+
margin-right: 0;
|
|
4939
5030
|
}
|
|
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _nativeProps = require("../../utils/native-props");
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _image = _interopRequireDefault(require("../image"));
|
|
13
13
|
|
|
14
14
|
var _withDefaultProps = require("../../utils/with-default-props");
|
|
15
15
|
|
|
@@ -25,7 +25,7 @@ const defaultProps = {
|
|
|
25
25
|
|
|
26
26
|
const Avatar = p => {
|
|
27
27
|
const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
|
|
28
|
-
return (0, _nativeProps.withNativeProps)(props, _react.default.createElement(
|
|
28
|
+
return (0, _nativeProps.withNativeProps)(props, _react.default.createElement(_image.default, {
|
|
29
29
|
className: classPrefix,
|
|
30
30
|
src: props.src,
|
|
31
31
|
fallback: props.fallback,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
2
|
import { NativeProps } from '../../utils/native-props';
|
|
3
3
|
export declare type Action = {
|
|
4
4
|
key: string | number;
|
|
5
|
-
text:
|
|
5
|
+
text: ReactNode;
|
|
6
6
|
disabled?: boolean;
|
|
7
7
|
danger?: boolean;
|
|
8
8
|
bold?: boolean;
|
|
@@ -16,6 +16,7 @@ var _emptyIcon = require("./empty-icon");
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
18
|
const classPrefix = `adm-empty`;
|
|
19
|
+
/** @deprecated Empty has been deprecated and will be removed in the next major version. */
|
|
19
20
|
|
|
20
21
|
const Empty = props => {
|
|
21
22
|
function renderImageNode() {
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
.adm-footer {
|
|
2
|
+
--background-color: var(--adm-color-background);
|
|
3
|
+
color: var(--adm-color-text);
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
align-items: center;
|
|
7
|
+
background-color: var(--background-color);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.adm-footer-label {
|
|
11
|
+
width: 100%;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.adm-footer-label .adm-divider.adm-divider {
|
|
15
|
+
color: var(--adm-color-light);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.adm-footer-links {
|
|
19
|
+
margin: 16px 0;
|
|
20
|
+
color: var(--adm-color-primary);
|
|
21
|
+
white-space: nowrap;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.adm-footer-links a {
|
|
25
|
+
text-decoration: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.adm-footer-content {
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
margin: 16px 0;
|
|
32
|
+
color: var(--adm-color-light);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.adm-footer-chips {
|
|
36
|
+
display: flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
white-space: nowrap;
|
|
39
|
+
margin: 16px 0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.adm-footer-chip {
|
|
43
|
+
white-space: nowrap;
|
|
44
|
+
margin-right: 40px;
|
|
45
|
+
font-size: 24px;
|
|
46
|
+
background-color: var(--adm-color-box);
|
|
47
|
+
color: var(--adm-color-weak);
|
|
48
|
+
padding: 8px 24px;
|
|
49
|
+
border-radius: 200px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.adm-footer-chip-link {
|
|
53
|
+
cursor: pointer;
|
|
54
|
+
background-color: #e7f1ff;
|
|
55
|
+
color: var(--adm-color-primary);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.adm-footer-chip:last-child {
|
|
59
|
+
margin-right: 0;
|
|
60
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
import { NativeProps } from '../../utils/native-props';
|
|
3
|
+
export declare type LinkItem = {
|
|
4
|
+
text: string;
|
|
5
|
+
href: string;
|
|
6
|
+
};
|
|
7
|
+
export declare type ChipItem = {
|
|
8
|
+
text: ReactNode;
|
|
9
|
+
type?: 'plain' | 'link';
|
|
10
|
+
};
|
|
11
|
+
export declare type FooterProps = {
|
|
12
|
+
label?: ReactNode;
|
|
13
|
+
links?: LinkItem[];
|
|
14
|
+
content?: ReactNode;
|
|
15
|
+
chips?: ChipItem[];
|
|
16
|
+
onChipClick?: (item: ChipItem, index: number) => void;
|
|
17
|
+
onLinkClick?: (item: LinkItem, index: number) => void;
|
|
18
|
+
} & NativeProps<'--background-color'>;
|
|
19
|
+
export declare const Footer: FC<FooterProps>;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Footer = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
+
|
|
12
|
+
var _nativeProps = require("../../utils/native-props");
|
|
13
|
+
|
|
14
|
+
var _withDefaultProps = require("../../utils/with-default-props");
|
|
15
|
+
|
|
16
|
+
var _divider = require("../divider/divider");
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
const classPrefix = `adm-footer`;
|
|
21
|
+
const defaultProps = {
|
|
22
|
+
label: '',
|
|
23
|
+
links: [],
|
|
24
|
+
content: '',
|
|
25
|
+
chips: []
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const Footer = p => {
|
|
29
|
+
const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
|
|
30
|
+
const {
|
|
31
|
+
label,
|
|
32
|
+
links,
|
|
33
|
+
content,
|
|
34
|
+
chips,
|
|
35
|
+
onChipClick,
|
|
36
|
+
onLinkClick
|
|
37
|
+
} = props;
|
|
38
|
+
|
|
39
|
+
const clickChipItem = (item, index) => {
|
|
40
|
+
if ((chips === null || chips === void 0 ? void 0 : chips.length) && item.type === 'link') {
|
|
41
|
+
onChipClick === null || onChipClick === void 0 ? void 0 : onChipClick(item, index);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const clickLinkItem = (item, index, e) => {
|
|
46
|
+
if (onLinkClick) {
|
|
47
|
+
e.preventDefault();
|
|
48
|
+
onLinkClick(item, index);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
|
|
53
|
+
className: (0, _classnames.default)(classPrefix)
|
|
54
|
+
}, label && _react.default.createElement("div", {
|
|
55
|
+
className: `${classPrefix}-label`
|
|
56
|
+
}, _react.default.createElement(_divider.Divider, null, label)), links && links.length > 0 && _react.default.createElement("div", {
|
|
57
|
+
className: `${classPrefix}-links`
|
|
58
|
+
}, links.map((link, index) => {
|
|
59
|
+
return _react.default.createElement(_react.default.Fragment, {
|
|
60
|
+
key: index
|
|
61
|
+
}, _react.default.createElement("a", {
|
|
62
|
+
href: link.href,
|
|
63
|
+
rel: 'noopener noreferrer',
|
|
64
|
+
onClick: event => clickLinkItem(link, index, event)
|
|
65
|
+
}, link.text), index !== links.length - 1 && _react.default.createElement(_divider.Divider, {
|
|
66
|
+
direction: 'vertical'
|
|
67
|
+
}));
|
|
68
|
+
})), content && _react.default.createElement("div", {
|
|
69
|
+
className: `${classPrefix}-content`
|
|
70
|
+
}, content), chips && chips.length > 0 && _react.default.createElement("div", {
|
|
71
|
+
className: `${classPrefix}-chips`
|
|
72
|
+
}, chips.map((chip, index) => {
|
|
73
|
+
return _react.default.createElement("div", {
|
|
74
|
+
key: index,
|
|
75
|
+
onClick: () => clickChipItem(chip, index),
|
|
76
|
+
className: (0, _classnames.default)(`${classPrefix}-chip`, {
|
|
77
|
+
[`${classPrefix}-chip-link`]: chip.type === 'link'
|
|
78
|
+
})
|
|
79
|
+
}, chip.text);
|
|
80
|
+
}))));
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
exports.Footer = Footer;
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
import React, { FC, InputHTMLAttributes } from 'react';
|
|
2
2
|
import { NativeProps } from '../../utils/native-props';
|
|
3
3
|
import type { ImageProps } from '../image';
|
|
4
|
-
export declare type TaskStatus = 'pending' | 'fail';
|
|
4
|
+
export declare type TaskStatus = 'pending' | 'fail' | 'success';
|
|
5
5
|
export interface ImageUploadItem {
|
|
6
6
|
key?: string | number;
|
|
7
7
|
url: string;
|
|
8
8
|
thumbnailUrl?: string;
|
|
9
9
|
extra?: any;
|
|
10
10
|
}
|
|
11
|
+
declare type Task = {
|
|
12
|
+
id: number;
|
|
13
|
+
url?: string;
|
|
14
|
+
file: File;
|
|
15
|
+
status: TaskStatus;
|
|
16
|
+
};
|
|
17
|
+
export declare type UploadTask = Pick<Task, 'id' | 'status'>;
|
|
11
18
|
export declare type ImageUploaderProps = {
|
|
12
19
|
defaultValue?: ImageUploadItem[];
|
|
13
20
|
value?: ImageUploadItem[];
|
|
14
21
|
onChange?: (items: ImageUploadItem[]) => void;
|
|
22
|
+
onUploadQueueChange?: (tasks: UploadTask[]) => void;
|
|
15
23
|
accept?: string;
|
|
16
24
|
multiple?: boolean;
|
|
17
25
|
maxCount?: number;
|
|
@@ -28,5 +36,7 @@ export declare type ImageUploaderProps = {
|
|
|
28
36
|
showFailed?: boolean;
|
|
29
37
|
imageFit?: ImageProps['fit'];
|
|
30
38
|
children?: React.ReactNode;
|
|
39
|
+
renderItem?: (originNode: React.ReactElement, file: ImageUploadItem, fileList: ImageUploadItem[]) => React.ReactNode;
|
|
31
40
|
} & NativeProps<'--cell-size'>;
|
|
32
41
|
export declare const ImageUploader: FC<ImageUploaderProps>;
|
|
42
|
+
export {};
|
|
@@ -60,10 +60,19 @@ const ImageUploader = p => {
|
|
|
60
60
|
return !value.some(fileItem => fileItem.url === task.url);
|
|
61
61
|
}));
|
|
62
62
|
}, [value]);
|
|
63
|
+
(0, _ahooks.useIsomorphicLayoutEffect)(() => {
|
|
64
|
+
var _a;
|
|
65
|
+
|
|
66
|
+
(_a = props.onUploadQueueChange) === null || _a === void 0 ? void 0 : _a.call(props, tasks.map(item => ({
|
|
67
|
+
id: item.id,
|
|
68
|
+
status: item.status
|
|
69
|
+
})));
|
|
70
|
+
}, [tasks]);
|
|
63
71
|
const idCountRef = (0, _react.useRef)(0);
|
|
64
72
|
const {
|
|
65
73
|
maxCount,
|
|
66
|
-
onPreview
|
|
74
|
+
onPreview,
|
|
75
|
+
renderItem
|
|
67
76
|
} = props;
|
|
68
77
|
|
|
69
78
|
function processFile(file, fileList) {
|
|
@@ -124,6 +133,7 @@ const ImageUploader = p => {
|
|
|
124
133
|
return prev.map(task => {
|
|
125
134
|
if (task.id === currentTask.id) {
|
|
126
135
|
return Object.assign(Object.assign({}, task), {
|
|
136
|
+
status: 'success',
|
|
127
137
|
url: result.url
|
|
128
138
|
});
|
|
129
139
|
}
|
|
@@ -171,36 +181,43 @@ const ImageUploader = p => {
|
|
|
171
181
|
(_a = imageViewerHandlerRef.current) === null || _a === void 0 ? void 0 : _a.close();
|
|
172
182
|
});
|
|
173
183
|
const showUpload = props.showUpload && (maxCount === 0 || value.length + tasks.length < maxCount);
|
|
184
|
+
|
|
185
|
+
const renderImages = () => {
|
|
186
|
+
return value.map((fileItem, index) => {
|
|
187
|
+
var _a, _b;
|
|
188
|
+
|
|
189
|
+
const originNode = _react.default.createElement(_previewItem.default, {
|
|
190
|
+
key: (_a = fileItem.key) !== null && _a !== void 0 ? _a : index,
|
|
191
|
+
url: (_b = fileItem.thumbnailUrl) !== null && _b !== void 0 ? _b : fileItem.url,
|
|
192
|
+
deletable: props.deletable,
|
|
193
|
+
imageFit: props.imageFit,
|
|
194
|
+
onClick: () => {
|
|
195
|
+
if (props.preview) {
|
|
196
|
+
previewImage(index);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
onPreview && onPreview(index, fileItem);
|
|
200
|
+
},
|
|
201
|
+
onDelete: () => (0, _tslib.__awaiter)(void 0, void 0, void 0, function* () {
|
|
202
|
+
var _c;
|
|
203
|
+
|
|
204
|
+
const canDelete = yield (_c = props.onDelete) === null || _c === void 0 ? void 0 : _c.call(props, fileItem);
|
|
205
|
+
if (canDelete === false) return;
|
|
206
|
+
setValue(value.filter((x, i) => i !== index));
|
|
207
|
+
})
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
return renderItem ? renderItem(originNode, fileItem, value) : originNode;
|
|
211
|
+
});
|
|
212
|
+
};
|
|
213
|
+
|
|
174
214
|
return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
|
|
175
215
|
className: classPrefix
|
|
176
216
|
}, _react.default.createElement(_space.default, {
|
|
177
217
|
className: `${classPrefix}-space`,
|
|
178
218
|
wrap: true,
|
|
179
219
|
block: true
|
|
180
|
-
},
|
|
181
|
-
var _a, _b;
|
|
182
|
-
|
|
183
|
-
return _react.default.createElement(_previewItem.default, {
|
|
184
|
-
key: (_a = fileItem.key) !== null && _a !== void 0 ? _a : index,
|
|
185
|
-
url: (_b = fileItem.thumbnailUrl) !== null && _b !== void 0 ? _b : fileItem.url,
|
|
186
|
-
deletable: props.deletable,
|
|
187
|
-
imageFit: props.imageFit,
|
|
188
|
-
onClick: () => {
|
|
189
|
-
if (props.preview) {
|
|
190
|
-
previewImage(index);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
onPreview && onPreview(index, fileItem);
|
|
194
|
-
},
|
|
195
|
-
onDelete: () => (0, _tslib.__awaiter)(void 0, void 0, void 0, function* () {
|
|
196
|
-
var _c;
|
|
197
|
-
|
|
198
|
-
const canDelete = yield (_c = props.onDelete) === null || _c === void 0 ? void 0 : _c.call(props, fileItem);
|
|
199
|
-
if (canDelete === false) return;
|
|
200
|
-
setValue(value.filter((x, i) => i !== index));
|
|
201
|
-
})
|
|
202
|
-
});
|
|
203
|
-
}), tasks.map(task => {
|
|
220
|
+
}, renderImages(), tasks.map(task => {
|
|
204
221
|
if (!props.showFailed && task.status === 'fail') {
|
|
205
222
|
return null;
|
|
206
223
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ImageUploader } from './image-uploader';
|
|
2
2
|
import './image-uploader.less';
|
|
3
|
-
export type { ImageUploadItem, ImageUploaderProps } from './image-uploader';
|
|
3
|
+
export type { ImageUploadItem, ImageUploaderProps, UploadTask, } from './image-uploader';
|
|
4
4
|
export default ImageUploader;
|
|
@@ -47,6 +47,11 @@ const PreviewItem = props => {
|
|
|
47
47
|
|
|
48
48
|
return '';
|
|
49
49
|
}, [url, file]);
|
|
50
|
+
(0, _react.useLayoutEffect)(() => {
|
|
51
|
+
return () => {
|
|
52
|
+
URL.revokeObjectURL(src);
|
|
53
|
+
};
|
|
54
|
+
}, [src]);
|
|
50
55
|
|
|
51
56
|
function renderLoading() {
|
|
52
57
|
return props.status === 'pending' && _react.default.createElement("div", {
|
|
@@ -92,8 +92,8 @@ const Slides = (0, _react.forwardRef)((props, ref) => {
|
|
|
92
92
|
style: {
|
|
93
93
|
x: x.to(x => -x)
|
|
94
94
|
}
|
|
95
|
-
}, props.images.map(image => _react.default.createElement(_slide.Slide, {
|
|
96
|
-
key:
|
|
95
|
+
}, props.images.map((image, index) => _react.default.createElement(_slide.Slide, {
|
|
96
|
+
key: index,
|
|
97
97
|
image: image,
|
|
98
98
|
onTap: props.onTap,
|
|
99
99
|
maxZoom: props.maxZoom,
|
|
@@ -24,7 +24,7 @@ declare const _default: import("react").NamedExoticComponent<{
|
|
|
24
24
|
popupStyle?: import("react").CSSProperties | undefined;
|
|
25
25
|
} & Pick<import("../popup").PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
|
|
26
26
|
className?: string | undefined;
|
|
27
|
-
style?: (import("react").CSSProperties & Partial<Record<"--
|
|
27
|
+
style?: (import("react").CSSProperties & Partial<Record<"--header-button-font-size" | "--title-font-size" | "--item-font-size" | "--item-height", string>>) | undefined;
|
|
28
28
|
tabIndex?: number | undefined;
|
|
29
29
|
} & import("react").AriaAttributes & import("react").RefAttributes<import("./picker").PickerActions>> & {
|
|
30
30
|
readonly type: import("react").ForwardRefExoticComponent<{
|
|
@@ -49,7 +49,7 @@ declare const _default: import("react").NamedExoticComponent<{
|
|
|
49
49
|
popupStyle?: import("react").CSSProperties | undefined;
|
|
50
50
|
} & Pick<import("../popup").PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
|
|
51
51
|
className?: string | undefined;
|
|
52
|
-
style?: (import("react").CSSProperties & Partial<Record<"--
|
|
52
|
+
style?: (import("react").CSSProperties & Partial<Record<"--header-button-font-size" | "--title-font-size" | "--item-font-size" | "--item-height", string>>) | undefined;
|
|
53
53
|
tabIndex?: number | undefined;
|
|
54
54
|
} & import("react").AriaAttributes & import("react").RefAttributes<import("./picker").PickerActions>>;
|
|
55
55
|
} & {
|
|
@@ -51,6 +51,6 @@ export declare const Picker: React.MemoExoticComponent<React.ForwardRefExoticCom
|
|
|
51
51
|
popupStyle?: React.CSSProperties | undefined;
|
|
52
52
|
} & Pick<PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
|
|
53
53
|
className?: string | undefined;
|
|
54
|
-
style?: (React.CSSProperties & Partial<Record<"--
|
|
54
|
+
style?: (React.CSSProperties & Partial<Record<"--header-button-font-size" | "--title-font-size" | "--item-font-size" | "--item-height", string>>) | undefined;
|
|
55
55
|
tabIndex?: number | undefined;
|
|
56
56
|
} & React.AriaAttributes & React.RefAttributes<PickerActions>>>;
|
|
@@ -133,4 +133,13 @@
|
|
|
133
133
|
display: flex;
|
|
134
134
|
justify-content: center;
|
|
135
135
|
align-items: center;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.adm-picker-view-item-height-measure {
|
|
139
|
+
position: relative;
|
|
140
|
+
left: 0;
|
|
141
|
+
top: 0;
|
|
142
|
+
height: var(--item-height);
|
|
143
|
+
width: 0;
|
|
144
|
+
pointer-events: none;
|
|
136
145
|
}
|