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.
Files changed (144) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +803 -711
  2. package/2x/bundle/antd-mobile.cjs.js +8 -8
  3. package/2x/bundle/antd-mobile.compatible.umd.js +6831 -6752
  4. package/2x/bundle/antd-mobile.es.development.js +803 -711
  5. package/2x/bundle/antd-mobile.es.js +5266 -5200
  6. package/2x/bundle/antd-mobile.umd.development.js +803 -711
  7. package/2x/bundle/antd-mobile.umd.js +8 -8
  8. package/2x/bundle/style.css +128 -37
  9. package/2x/cjs/components/avatar/avatar.js +2 -2
  10. package/2x/cjs/components/dialog/dialog-action-button.d.ts +2 -2
  11. package/2x/cjs/components/empty/empty.d.ts +1 -0
  12. package/2x/cjs/components/empty/empty.js +1 -0
  13. package/2x/cjs/components/footer/footer.css +60 -0
  14. package/2x/cjs/components/footer/footer.d.ts +19 -0
  15. package/2x/cjs/components/footer/footer.js +83 -0
  16. package/2x/cjs/components/footer/index.d.ts +4 -0
  17. package/2x/cjs/components/footer/index.js +13 -0
  18. package/2x/cjs/components/image-uploader/image-uploader.d.ts +11 -1
  19. package/2x/cjs/components/image-uploader/image-uploader.js +42 -25
  20. package/2x/cjs/components/image-uploader/index.d.ts +1 -1
  21. package/2x/cjs/components/image-uploader/preview-item.js +5 -0
  22. package/2x/cjs/components/image-viewer/slides.js +2 -2
  23. package/2x/cjs/components/page-indicator/page-indicator.css +1 -0
  24. package/2x/cjs/components/picker/index.d.ts +2 -2
  25. package/2x/cjs/components/picker/picker.d.ts +1 -1
  26. package/2x/cjs/components/picker-view/picker-view.css +9 -0
  27. package/2x/cjs/components/picker-view/wheel.js +8 -4
  28. package/2x/cjs/components/rate/rate.css +6 -1
  29. package/2x/cjs/components/rate/rate.js +3 -1
  30. package/2x/cjs/components/slider/slider.css +15 -1
  31. package/2x/cjs/components/slider/slider.d.ts +1 -0
  32. package/2x/cjs/components/slider/slider.js +13 -2
  33. package/2x/cjs/components/slider/thumb.d.ts +1 -0
  34. package/2x/cjs/components/slider/thumb.js +4 -3
  35. package/2x/cjs/components/toast/toast.css +4 -3
  36. package/2x/cjs/index.d.ts +1 -0
  37. package/2x/cjs/index.js +8 -0
  38. package/2x/cjs/locales/zh-CN.js +1 -1
  39. package/2x/cjs/utils/measure-css-length.js +1 -1
  40. package/2x/es/components/avatar/avatar.js +1 -1
  41. package/2x/es/components/dialog/dialog-action-button.d.ts +2 -2
  42. package/2x/es/components/empty/empty.d.ts +1 -0
  43. package/2x/es/components/empty/empty.js +2 -0
  44. package/2x/es/components/footer/footer.css +60 -0
  45. package/2x/es/components/footer/footer.d.ts +19 -0
  46. package/2x/es/components/footer/footer.js +66 -0
  47. package/2x/es/components/footer/index.d.ts +4 -0
  48. package/2x/es/components/footer/index.js +3 -0
  49. package/2x/es/components/image-uploader/image-uploader.d.ts +11 -1
  50. package/2x/es/components/image-uploader/image-uploader.js +41 -25
  51. package/2x/es/components/image-uploader/index.d.ts +1 -1
  52. package/2x/es/components/image-uploader/preview-item.js +6 -1
  53. package/2x/es/components/image-viewer/slides.js +2 -2
  54. package/2x/es/components/page-indicator/page-indicator.css +1 -0
  55. package/2x/es/components/picker/index.d.ts +2 -2
  56. package/2x/es/components/picker/picker.d.ts +1 -1
  57. package/2x/es/components/picker-view/picker-view.css +9 -0
  58. package/2x/es/components/picker-view/wheel.js +8 -4
  59. package/2x/es/components/rate/rate.css +6 -1
  60. package/2x/es/components/rate/rate.js +3 -1
  61. package/2x/es/components/slider/slider.css +15 -1
  62. package/2x/es/components/slider/slider.d.ts +1 -0
  63. package/2x/es/components/slider/slider.js +12 -2
  64. package/2x/es/components/slider/thumb.d.ts +1 -0
  65. package/2x/es/components/slider/thumb.js +4 -3
  66. package/2x/es/components/toast/toast.css +4 -3
  67. package/2x/es/index.d.ts +1 -0
  68. package/2x/es/index.js +1 -0
  69. package/2x/es/locales/zh-CN.js +1 -1
  70. package/2x/es/utils/measure-css-length.js +1 -1
  71. package/2x/package.json +1 -1
  72. package/2x/umd/antd-mobile.js +6831 -6752
  73. package/bundle/antd-mobile.cjs.development.js +803 -711
  74. package/bundle/antd-mobile.cjs.js +8 -8
  75. package/bundle/antd-mobile.compatible.umd.js +6831 -6752
  76. package/bundle/antd-mobile.es.development.js +803 -711
  77. package/bundle/antd-mobile.es.js +5266 -5200
  78. package/bundle/antd-mobile.umd.development.js +803 -711
  79. package/bundle/antd-mobile.umd.js +8 -8
  80. package/bundle/style.css +1 -1
  81. package/cjs/components/avatar/avatar.js +2 -2
  82. package/cjs/components/dialog/dialog-action-button.d.ts +2 -2
  83. package/cjs/components/empty/empty.d.ts +1 -0
  84. package/cjs/components/empty/empty.js +1 -0
  85. package/cjs/components/footer/footer.css +51 -0
  86. package/cjs/components/footer/footer.d.ts +19 -0
  87. package/cjs/components/footer/footer.js +83 -0
  88. package/cjs/components/footer/index.d.ts +4 -0
  89. package/cjs/components/footer/index.js +13 -0
  90. package/cjs/components/image-uploader/image-uploader.d.ts +11 -1
  91. package/cjs/components/image-uploader/image-uploader.js +42 -25
  92. package/cjs/components/image-uploader/index.d.ts +1 -1
  93. package/cjs/components/image-uploader/preview-item.js +5 -0
  94. package/cjs/components/image-viewer/slides.js +2 -2
  95. package/cjs/components/page-indicator/page-indicator.css +1 -0
  96. package/cjs/components/picker/index.d.ts +2 -2
  97. package/cjs/components/picker/picker.d.ts +1 -1
  98. package/cjs/components/picker-view/picker-view.css +8 -0
  99. package/cjs/components/picker-view/wheel.js +8 -4
  100. package/cjs/components/rate/rate.css +5 -1
  101. package/cjs/components/rate/rate.js +3 -1
  102. package/cjs/components/slider/slider.css +14 -1
  103. package/cjs/components/slider/slider.d.ts +1 -0
  104. package/cjs/components/slider/slider.js +13 -2
  105. package/cjs/components/slider/thumb.d.ts +1 -0
  106. package/cjs/components/slider/thumb.js +4 -3
  107. package/cjs/components/toast/toast.css +4 -3
  108. package/cjs/index.d.ts +1 -0
  109. package/cjs/index.js +8 -0
  110. package/cjs/locales/zh-CN.js +1 -1
  111. package/cjs/utils/measure-css-length.js +1 -1
  112. package/es/components/avatar/avatar.js +1 -1
  113. package/es/components/dialog/dialog-action-button.d.ts +2 -2
  114. package/es/components/empty/empty.d.ts +1 -0
  115. package/es/components/empty/empty.js +2 -0
  116. package/es/components/footer/footer.css +51 -0
  117. package/es/components/footer/footer.d.ts +19 -0
  118. package/es/components/footer/footer.js +66 -0
  119. package/es/components/footer/index.d.ts +4 -0
  120. package/es/components/footer/index.js +3 -0
  121. package/es/components/image-uploader/image-uploader.d.ts +11 -1
  122. package/es/components/image-uploader/image-uploader.js +41 -25
  123. package/es/components/image-uploader/index.d.ts +1 -1
  124. package/es/components/image-uploader/preview-item.js +6 -1
  125. package/es/components/image-viewer/slides.js +2 -2
  126. package/es/components/page-indicator/page-indicator.css +1 -0
  127. package/es/components/picker/index.d.ts +2 -2
  128. package/es/components/picker/picker.d.ts +1 -1
  129. package/es/components/picker-view/picker-view.css +8 -0
  130. package/es/components/picker-view/wheel.js +8 -4
  131. package/es/components/rate/rate.css +5 -1
  132. package/es/components/rate/rate.js +3 -1
  133. package/es/components/slider/slider.css +14 -1
  134. package/es/components/slider/slider.d.ts +1 -0
  135. package/es/components/slider/slider.js +12 -2
  136. package/es/components/slider/thumb.d.ts +1 -0
  137. package/es/components/slider/thumb.js +4 -3
  138. package/es/components/toast/toast.css +4 -3
  139. package/es/index.d.ts +1 -0
  140. package/es/index.js +1 -0
  141. package/es/locales/zh-CN.js +1 -1
  142. package/es/utils/measure-css-length.js +1 -1
  143. package/package.json +1 -1
  144. package/umd/antd-mobile.js +1 -1
@@ -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: var(--adm-color-border);
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
- min-width: 192px;
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 80px;
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 _index = require("../../index");
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(_index.Image, {
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: string;
5
+ text: ReactNode;
6
6
  disabled?: boolean;
7
7
  danger?: boolean;
8
8
  bold?: boolean;
@@ -5,4 +5,5 @@ export declare type EmptyProps = {
5
5
  imageStyle?: React.CSSProperties;
6
6
  description?: ReactNode;
7
7
  } & NativeProps;
8
+ /** @deprecated Empty has been deprecated and will be removed in the next major version. */
8
9
  export declare const Empty: React.FC<EmptyProps>;
@@ -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;
@@ -0,0 +1,4 @@
1
+ import './footer.less';
2
+ import { Footer } from './footer';
3
+ export type { FooterProps, ChipItem, LinkItem } from './footer';
4
+ export default Footer;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ require("./footer.css");
9
+
10
+ var _footer2 = require("./footer");
11
+
12
+ var _default = _footer2.Footer;
13
+ exports.default = _default;
@@ -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
- }, value.map((fileItem, index) => {
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: image,
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,
@@ -28,6 +28,7 @@
28
28
  }
29
29
 
30
30
  .adm-page-indicator-color-white {
31
+ --dot-color: rgba(255, 255, 255, 0.5);
31
32
  --active-dot-color: var(--adm-color-white);
32
33
  }
33
34
 
@@ -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<"--item-height" | "--header-button-font-size" | "--title-font-size" | "--item-font-size", string>>) | undefined;
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<"--item-height" | "--header-button-font-size" | "--title-font-size" | "--item-font-size", string>>) | undefined;
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<"--item-height" | "--header-button-font-size" | "--title-font-size" | "--item-font-size", string>>) | undefined;
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
  }