antd-mobile 5.22.0 → 5.24.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 (196) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +953 -709
  2. package/2x/bundle/antd-mobile.cjs.js +8 -8
  3. package/2x/bundle/antd-mobile.compatible.umd.js +6991 -6789
  4. package/2x/bundle/antd-mobile.es.development.js +953 -709
  5. package/2x/bundle/antd-mobile.es.js +5666 -5497
  6. package/2x/bundle/antd-mobile.umd.development.js +953 -709
  7. package/2x/bundle/antd-mobile.umd.js +8 -8
  8. package/2x/bundle/style.css +137 -41
  9. package/2x/cjs/components/avatar/avatar.js +2 -2
  10. package/2x/cjs/components/calendar/calendar.d.ts +3 -5
  11. package/2x/cjs/components/calendar/calendar.js +27 -5
  12. package/2x/cjs/components/calendar/convert.d.ts +6 -0
  13. package/2x/cjs/components/calendar/convert.js +9 -0
  14. package/2x/cjs/components/dialog/dialog-action-button.d.ts +2 -2
  15. package/2x/cjs/components/ellipsis/ellipsis.js +16 -7
  16. package/2x/cjs/components/empty/empty.d.ts +1 -0
  17. package/2x/cjs/components/empty/empty.js +1 -0
  18. package/2x/cjs/components/footer/footer.css +60 -0
  19. package/2x/cjs/components/footer/footer.d.ts +19 -0
  20. package/2x/cjs/components/footer/footer.js +83 -0
  21. package/2x/cjs/components/footer/index.d.ts +4 -0
  22. package/2x/cjs/components/footer/index.js +13 -0
  23. package/2x/cjs/components/form/form-item.css +0 -1
  24. package/2x/cjs/components/form/form.css +9 -3
  25. package/2x/cjs/components/form/form.d.ts +2 -2
  26. package/2x/cjs/components/form/index.css +9 -4
  27. package/2x/cjs/components/form/index.d.ts +1 -1
  28. package/2x/cjs/components/image-uploader/image-uploader.d.ts +11 -1
  29. package/2x/cjs/components/image-uploader/image-uploader.js +42 -25
  30. package/2x/cjs/components/image-uploader/index.d.ts +1 -1
  31. package/2x/cjs/components/image-uploader/preview-item.js +5 -0
  32. package/2x/cjs/components/image-viewer/slides.js +2 -2
  33. package/2x/cjs/components/page-indicator/page-indicator.css +1 -0
  34. package/2x/cjs/components/picker/index.d.ts +2 -2
  35. package/2x/cjs/components/picker/picker.d.ts +1 -1
  36. package/2x/cjs/components/picker-view/picker-view.css +9 -0
  37. package/2x/cjs/components/picker-view/wheel.js +8 -4
  38. package/2x/cjs/components/popover/popover.js +2 -2
  39. package/2x/cjs/components/rate/rate.css +6 -1
  40. package/2x/cjs/components/rate/rate.js +3 -1
  41. package/2x/cjs/components/slider/slider.css +15 -1
  42. package/2x/cjs/components/slider/slider.d.ts +1 -0
  43. package/2x/cjs/components/slider/slider.js +13 -2
  44. package/2x/cjs/components/slider/thumb.d.ts +1 -0
  45. package/2x/cjs/components/slider/thumb.js +4 -3
  46. package/2x/cjs/components/stepper/stepper.js +2 -1
  47. package/2x/cjs/components/swiper/swiper.js +9 -0
  48. package/2x/cjs/components/toast/toast.css +4 -3
  49. package/2x/cjs/index.d.ts +1 -0
  50. package/2x/cjs/index.js +8 -0
  51. package/2x/cjs/locales/zh-CN.js +1 -1
  52. package/2x/cjs/utils/measure-css-length.js +1 -1
  53. package/2x/es/components/avatar/avatar.js +1 -1
  54. package/2x/es/components/calendar/calendar.d.ts +3 -5
  55. package/2x/es/components/calendar/calendar.js +29 -6
  56. package/2x/es/components/calendar/convert.d.ts +6 -0
  57. package/2x/es/components/calendar/convert.js +4 -0
  58. package/2x/es/components/dialog/dialog-action-button.d.ts +2 -2
  59. package/2x/es/components/ellipsis/ellipsis.js +14 -8
  60. package/2x/es/components/empty/empty.d.ts +1 -0
  61. package/2x/es/components/empty/empty.js +2 -0
  62. package/2x/es/components/footer/footer.css +60 -0
  63. package/2x/es/components/footer/footer.d.ts +19 -0
  64. package/2x/es/components/footer/footer.js +66 -0
  65. package/2x/es/components/footer/index.d.ts +4 -0
  66. package/2x/es/components/footer/index.js +3 -0
  67. package/2x/es/components/form/form-item.css +0 -1
  68. package/2x/es/components/form/form.css +9 -3
  69. package/2x/es/components/form/form.d.ts +2 -2
  70. package/2x/es/components/form/index.css +9 -4
  71. package/2x/es/components/form/index.d.ts +1 -1
  72. package/2x/es/components/image-uploader/image-uploader.d.ts +11 -1
  73. package/2x/es/components/image-uploader/image-uploader.js +41 -25
  74. package/2x/es/components/image-uploader/index.d.ts +1 -1
  75. package/2x/es/components/image-uploader/preview-item.js +6 -1
  76. package/2x/es/components/image-viewer/slides.js +2 -2
  77. package/2x/es/components/page-indicator/page-indicator.css +1 -0
  78. package/2x/es/components/picker/index.d.ts +2 -2
  79. package/2x/es/components/picker/picker.d.ts +1 -1
  80. package/2x/es/components/picker-view/picker-view.css +9 -0
  81. package/2x/es/components/picker-view/wheel.js +8 -4
  82. package/2x/es/components/popover/popover.js +2 -2
  83. package/2x/es/components/rate/rate.css +6 -1
  84. package/2x/es/components/rate/rate.js +3 -1
  85. package/2x/es/components/slider/slider.css +15 -1
  86. package/2x/es/components/slider/slider.d.ts +1 -0
  87. package/2x/es/components/slider/slider.js +12 -2
  88. package/2x/es/components/slider/thumb.d.ts +1 -0
  89. package/2x/es/components/slider/thumb.js +4 -3
  90. package/2x/es/components/stepper/stepper.js +2 -1
  91. package/2x/es/components/swiper/swiper.js +9 -0
  92. package/2x/es/components/toast/toast.css +4 -3
  93. package/2x/es/index.d.ts +1 -0
  94. package/2x/es/index.js +1 -0
  95. package/2x/es/locales/zh-CN.js +1 -1
  96. package/2x/es/utils/measure-css-length.js +1 -1
  97. package/2x/package.json +2 -1
  98. package/2x/umd/antd-mobile.js +6991 -6789
  99. package/bundle/antd-mobile.cjs.development.js +953 -709
  100. package/bundle/antd-mobile.cjs.js +8 -8
  101. package/bundle/antd-mobile.compatible.umd.js +6991 -6789
  102. package/bundle/antd-mobile.es.development.js +953 -709
  103. package/bundle/antd-mobile.es.js +5666 -5497
  104. package/bundle/antd-mobile.umd.development.js +953 -709
  105. package/bundle/antd-mobile.umd.js +8 -8
  106. package/bundle/style.css +1 -1
  107. package/cjs/components/avatar/avatar.js +2 -2
  108. package/cjs/components/calendar/calendar.d.ts +3 -5
  109. package/cjs/components/calendar/calendar.js +27 -5
  110. package/cjs/components/calendar/convert.d.ts +6 -0
  111. package/cjs/components/calendar/convert.js +9 -0
  112. package/cjs/components/dialog/dialog-action-button.d.ts +2 -2
  113. package/cjs/components/ellipsis/ellipsis.js +16 -7
  114. package/cjs/components/empty/empty.d.ts +1 -0
  115. package/cjs/components/empty/empty.js +1 -0
  116. package/cjs/components/footer/footer.css +51 -0
  117. package/cjs/components/footer/footer.d.ts +19 -0
  118. package/cjs/components/footer/footer.js +83 -0
  119. package/cjs/components/footer/index.d.ts +4 -0
  120. package/cjs/components/footer/index.js +13 -0
  121. package/cjs/components/form/form-item.css +0 -1
  122. package/cjs/components/form/form.css +8 -3
  123. package/cjs/components/form/form.d.ts +2 -2
  124. package/cjs/components/form/index.css +8 -4
  125. package/cjs/components/form/index.d.ts +1 -1
  126. package/cjs/components/image-uploader/image-uploader.d.ts +11 -1
  127. package/cjs/components/image-uploader/image-uploader.js +42 -25
  128. package/cjs/components/image-uploader/index.d.ts +1 -1
  129. package/cjs/components/image-uploader/preview-item.js +5 -0
  130. package/cjs/components/image-viewer/slides.js +2 -2
  131. package/cjs/components/page-indicator/page-indicator.css +1 -0
  132. package/cjs/components/picker/index.d.ts +2 -2
  133. package/cjs/components/picker/picker.d.ts +1 -1
  134. package/cjs/components/picker-view/picker-view.css +8 -0
  135. package/cjs/components/picker-view/wheel.js +8 -4
  136. package/cjs/components/popover/popover.js +2 -2
  137. package/cjs/components/rate/rate.css +5 -1
  138. package/cjs/components/rate/rate.js +3 -1
  139. package/cjs/components/slider/slider.css +14 -1
  140. package/cjs/components/slider/slider.d.ts +1 -0
  141. package/cjs/components/slider/slider.js +13 -2
  142. package/cjs/components/slider/thumb.d.ts +1 -0
  143. package/cjs/components/slider/thumb.js +4 -3
  144. package/cjs/components/stepper/stepper.js +2 -1
  145. package/cjs/components/swiper/swiper.js +9 -0
  146. package/cjs/components/toast/toast.css +4 -3
  147. package/cjs/index.d.ts +1 -0
  148. package/cjs/index.js +8 -0
  149. package/cjs/locales/zh-CN.js +1 -1
  150. package/cjs/utils/measure-css-length.js +1 -1
  151. package/es/components/avatar/avatar.js +1 -1
  152. package/es/components/calendar/calendar.d.ts +3 -5
  153. package/es/components/calendar/calendar.js +29 -6
  154. package/es/components/calendar/convert.d.ts +6 -0
  155. package/es/components/calendar/convert.js +4 -0
  156. package/es/components/dialog/dialog-action-button.d.ts +2 -2
  157. package/es/components/ellipsis/ellipsis.js +14 -8
  158. package/es/components/empty/empty.d.ts +1 -0
  159. package/es/components/empty/empty.js +2 -0
  160. package/es/components/footer/footer.css +51 -0
  161. package/es/components/footer/footer.d.ts +19 -0
  162. package/es/components/footer/footer.js +66 -0
  163. package/es/components/footer/index.d.ts +4 -0
  164. package/es/components/footer/index.js +3 -0
  165. package/es/components/form/form-item.css +0 -1
  166. package/es/components/form/form.css +8 -3
  167. package/es/components/form/form.d.ts +2 -2
  168. package/es/components/form/index.css +8 -4
  169. package/es/components/form/index.d.ts +1 -1
  170. package/es/components/image-uploader/image-uploader.d.ts +11 -1
  171. package/es/components/image-uploader/image-uploader.js +41 -25
  172. package/es/components/image-uploader/index.d.ts +1 -1
  173. package/es/components/image-uploader/preview-item.js +6 -1
  174. package/es/components/image-viewer/slides.js +2 -2
  175. package/es/components/page-indicator/page-indicator.css +1 -0
  176. package/es/components/picker/index.d.ts +2 -2
  177. package/es/components/picker/picker.d.ts +1 -1
  178. package/es/components/picker-view/picker-view.css +8 -0
  179. package/es/components/picker-view/wheel.js +8 -4
  180. package/es/components/popover/popover.js +2 -2
  181. package/es/components/rate/rate.css +5 -1
  182. package/es/components/rate/rate.js +3 -1
  183. package/es/components/slider/slider.css +14 -1
  184. package/es/components/slider/slider.d.ts +1 -0
  185. package/es/components/slider/slider.js +12 -2
  186. package/es/components/slider/thumb.d.ts +1 -0
  187. package/es/components/slider/thumb.js +4 -3
  188. package/es/components/stepper/stepper.js +2 -1
  189. package/es/components/swiper/swiper.js +9 -0
  190. package/es/components/toast/toast.css +4 -3
  191. package/es/index.d.ts +1 -0
  192. package/es/index.js +1 -0
  193. package/es/locales/zh-CN.js +1 -1
  194. package/es/utils/measure-css-length.js +1 -1
  195. package/package.json +2 -1
  196. 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;
@@ -1903,12 +1912,14 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
1903
1912
  }
1904
1913
 
1905
1914
  .adm-form {
1906
- --border-inner: solid 2px var(--adm-color-border);
1907
- --border-top: solid 2px var(--adm-color-border);
1908
- --border-bottom: solid 2px var(--adm-color-border);
1915
+ --border-inner: solid 2px var(--adm-border-color);
1916
+ --border-top: solid 2px var(--adm-border-color);
1917
+ --border-bottom: solid 2px var(--adm-border-color);
1918
+ --prefix-width: 6.8em;
1909
1919
  ---border-inner: var(--border-inner);
1910
1920
  ---border-top: var(--border-top);
1911
1921
  ---border-bottom: var(--border-bottom);
1922
+ ---prefix-width: var(--prefix-width);
1912
1923
  }
1913
1924
 
1914
1925
  .adm-form .adm-list.adm-list {
@@ -1923,6 +1934,10 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
1923
1934
  padding: 40px 24px;
1924
1935
  }
1925
1936
 
1937
+ .adm-form .adm-form-item-horizontal.adm-list-item {
1938
+ --prefix-width: var(---prefix-width);
1939
+ }
1940
+
1926
1941
  .adm-form-list-operation {
1927
1942
  text-align: center;
1928
1943
  color: #1677ff;
@@ -1997,7 +2012,6 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
1997
2012
 
1998
2013
  .adm-form-item.adm-form-item-horizontal.adm-list-item {
1999
2014
  --align-items: stretch;
2000
- --prefix-width: 6.8em;
2001
2015
  }
2002
2016
 
2003
2017
  .adm-form-item.adm-form-item-horizontal .adm-list-item-content-prefix {
@@ -3137,6 +3151,7 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3137
3151
  }
3138
3152
 
3139
3153
  .adm-page-indicator-color-white {
3154
+ --dot-color: rgba(255, 255, 255, .5);
3140
3155
  --active-dot-color: var(--adm-color-white);
3141
3156
  }
3142
3157
 
@@ -3487,7 +3502,8 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3487
3502
  .adm-rate {
3488
3503
  --star-size: 48px;
3489
3504
  --active-color: #ffd21e;
3490
- --inactive-color: var(--adm-color-border);
3505
+ --inactive-color: #e5e5e5;
3506
+ --inactive-color-half: #dbdbdb;
3491
3507
  display: inline-flex;
3492
3508
  touch-action: pan-y;
3493
3509
  -webkit-user-select: none;
@@ -3526,6 +3542,10 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3526
3542
  cursor: unset;
3527
3543
  }
3528
3544
 
3545
+ .adm-rate.adm-rate-half .adm-rate-star-half:not(.adm-rate-star-active) {
3546
+ color: var(--inactive-color-half);
3547
+ }
3548
+
3529
3549
  .adm-result {
3530
3550
  padding: 64px 24px;
3531
3551
  background-color: var(--adm-color-background);
@@ -4048,12 +4068,26 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
4048
4068
  transform: translate(-50%);
4049
4069
  }
4050
4070
 
4051
- .adm-slider-disabled {
4071
+ .adm-slider-disabled .adm-slider-mark,
4072
+ .adm-slider-disabled .adm-slider-thumb-icon {
4052
4073
  opacity: .4;
4053
4074
  }
4054
4075
 
4076
+ .adm-slider-disabled .adm-slider-tick-active:after,
4077
+ .adm-slider-disabled .adm-slider-fill:after {
4078
+ content: "";
4079
+ position: absolute;
4080
+ left: 0;
4081
+ top: 0;
4082
+ right: 0;
4083
+ bottom: 0;
4084
+ border-radius: inherit;
4085
+ background-color: #fff9;
4086
+ }
4087
+
4055
4088
  .adm-slider-disabled .adm-slider-thumb {
4056
4089
  cursor: not-allowed;
4090
+ box-shadow: 0 4px 10px #0000000f;
4057
4091
  }
4058
4092
 
4059
4093
  .adm-slider-disabled .adm-slider-mark-text,
@@ -4717,8 +4751,7 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
4717
4751
  left: 50%;
4718
4752
  transform: translate(-50%,-50%);
4719
4753
  width: auto;
4720
- min-width: 192px;
4721
- max-width: 400px;
4754
+ max-width: 408px;
4722
4755
  max-height: 70%;
4723
4756
  overflow: auto;
4724
4757
  color: #fff;
@@ -4733,10 +4766,12 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
4733
4766
 
4734
4767
  .adm-toast-mask .adm-toast-main-text {
4735
4768
  padding: 24px;
4769
+ min-width: 0;
4736
4770
  }
4737
4771
 
4738
4772
  .adm-toast-mask .adm-toast-main-icon {
4739
- padding: 70px 80px;
4773
+ padding: 70px 24px;
4774
+ min-width: 300px;
4740
4775
  }
4741
4776
 
4742
4777
  .adm-toast-mask .adm-toast-main-icon .adm-toast-icon {
@@ -4936,4 +4971,65 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
4936
4971
 
4937
4972
  .adm-water-mark-full-page {
4938
4973
  position: fixed;
4974
+ }
4975
+
4976
+ .adm-footer {
4977
+ --background-color: var(--adm-color-background);
4978
+ color: var(--adm-color-text);
4979
+ display: flex;
4980
+ flex-direction: column;
4981
+ align-items: center;
4982
+ background-color: var(--background-color);
4983
+ }
4984
+
4985
+ .adm-footer-label {
4986
+ width: 100%;
4987
+ }
4988
+
4989
+ .adm-footer-label .adm-divider.adm-divider {
4990
+ color: var(--adm-color-light);
4991
+ }
4992
+
4993
+ .adm-footer-links {
4994
+ margin: 16px 0;
4995
+ color: var(--adm-color-primary);
4996
+ white-space: nowrap;
4997
+ }
4998
+
4999
+ .adm-footer-links a {
5000
+ text-decoration: none;
5001
+ }
5002
+
5003
+ .adm-footer-content {
5004
+ display: flex;
5005
+ align-items: center;
5006
+ margin: 16px 0;
5007
+ color: var(--adm-color-light);
5008
+ }
5009
+
5010
+ .adm-footer-chips {
5011
+ display: flex;
5012
+ align-items: center;
5013
+ white-space: nowrap;
5014
+ margin: 16px 0;
5015
+ }
5016
+
5017
+ .adm-footer-chip {
5018
+ white-space: nowrap;
5019
+ margin-right: 40px;
5020
+ font-size: 24px;
5021
+ background-color: var(--adm-color-box);
5022
+ color: var(--adm-color-weak);
5023
+ padding: 8px 24px;
5024
+ border-radius: 200px;
5025
+ }
5026
+
5027
+ .adm-footer-chip-link {
5028
+ cursor: pointer;
5029
+ background-color: #e7f1ff;
5030
+ color: var(--adm-color-primary);
5031
+ }
5032
+
5033
+ .adm-footer-chip:last-child {
5034
+ margin-right: 0;
4939
5035
  }
@@ -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,9 +1,6 @@
1
1
  import React from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
- declare type Page = {
4
- month: number;
5
- year: number;
6
- };
3
+ import { Page } from './convert';
7
4
  export declare type CalendarRef = {
8
5
  jumpTo: (page: Page | ((page: Page) => Page)) => void;
9
6
  jumpToToday: () => void;
@@ -20,6 +17,8 @@ export declare type CalendarProps = {
20
17
  max?: Date;
21
18
  min?: Date;
22
19
  shouldDisableDate?: (date: Date) => boolean;
20
+ minPage?: Page;
21
+ maxPage?: Page;
23
22
  } & ({
24
23
  selectionMode?: undefined;
25
24
  value?: undefined;
@@ -37,4 +36,3 @@ export declare type CalendarProps = {
37
36
  onChange?: (val: [Date, Date] | null) => void;
38
37
  }) & NativeProps;
39
38
  export declare const Calendar: React.ForwardRefExoticComponent<CalendarProps & React.RefAttributes<CalendarRef>>;
40
- export {};
@@ -93,36 +93,58 @@ const Calendar = (0, _react.forwardRef)((p, ref) => {
93
93
  page = pageOrPageGenerator;
94
94
  }
95
95
 
96
- setCurrent((0, _dayjs.default)().year(page.year).month(page.month - 1).date(1));
96
+ setCurrent((0, _convert.convertPageToDayjs)(page));
97
97
  },
98
98
  jumpToToday: () => {
99
99
  setCurrent((0, _dayjs.default)().date(1));
100
100
  }
101
101
  }));
102
102
 
103
+ const handlePageChange = (action, num, type) => {
104
+ const nxtCurrent = current[action](num, type);
105
+
106
+ if (action === 'subtract' && props.minPage) {
107
+ const minPage = (0, _convert.convertPageToDayjs)(props.minPage);
108
+
109
+ if (nxtCurrent.isBefore(minPage, type)) {
110
+ return;
111
+ }
112
+ }
113
+
114
+ if (action === 'add' && props.maxPage) {
115
+ const maxPage = (0, _convert.convertPageToDayjs)(props.maxPage);
116
+
117
+ if (nxtCurrent.isAfter(maxPage, type)) {
118
+ return;
119
+ }
120
+ }
121
+
122
+ setCurrent(current[action](num, type));
123
+ };
124
+
103
125
  const header = _react.default.createElement("div", {
104
126
  className: `${classPrefix}-header`
105
127
  }, _react.default.createElement("a", {
106
128
  className: `${classPrefix}-arrow-button ${classPrefix}-arrow-button-year`,
107
129
  onClick: () => {
108
- setCurrent(current.subtract(1, 'year'));
130
+ handlePageChange('subtract', 1, 'year');
109
131
  }
110
132
  }, props.prevYearButton), _react.default.createElement("a", {
111
133
  className: `${classPrefix}-arrow-button ${classPrefix}-arrow-button-month`,
112
134
  onClick: () => {
113
- setCurrent(current.subtract(1, 'month'));
135
+ handlePageChange('subtract', 1, 'month');
114
136
  }
115
137
  }, props.prevMonthButton), _react.default.createElement("div", {
116
138
  className: `${classPrefix}-title`
117
139
  }, locale.Calendar.renderYearAndMonth(current.year(), current.month() + 1)), _react.default.createElement("a", {
118
140
  className: (0, _classnames.default)(`${classPrefix}-arrow-button`, `${classPrefix}-arrow-button-right`, `${classPrefix}-arrow-button-right-month`),
119
141
  onClick: () => {
120
- setCurrent(current.add(1, 'month'));
142
+ handlePageChange('add', 1, 'month');
121
143
  }
122
144
  }, props.nextMonthButton), _react.default.createElement("a", {
123
145
  className: (0, _classnames.default)(`${classPrefix}-arrow-button`, `${classPrefix}-arrow-button-right`, `${classPrefix}-arrow-button-right-year`),
124
146
  onClick: () => {
125
- setCurrent(current.add(1, 'year'));
147
+ handlePageChange('add', 1, 'year');
126
148
  }
127
149
  }, props.nextYearButton));
128
150
 
@@ -1,2 +1,8 @@
1
+ import dayjs from 'dayjs';
1
2
  export declare type DateRange = [Date, Date] | null;
3
+ export declare type Page = {
4
+ month: number;
5
+ year: number;
6
+ };
2
7
  export declare function convertValueToRange(selectionMode: 'single' | 'range' | undefined, value: Date | [Date, Date] | null): DateRange;
8
+ export declare function convertPageToDayjs(page: Page): dayjs.Dayjs;
@@ -3,8 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.convertPageToDayjs = convertPageToDayjs;
6
7
  exports.convertValueToRange = convertValueToRange;
7
8
 
9
+ var _dayjs = _interopRequireDefault(require("dayjs"));
10
+
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+
8
13
  function convertValueToRange(selectionMode, value) {
9
14
  if (selectionMode === undefined) {
10
15
  return null;
@@ -19,4 +24,8 @@ function convertValueToRange(selectionMode, value) {
19
24
  }
20
25
 
21
26
  return [value, value];
27
+ }
28
+
29
+ function convertPageToDayjs(page) {
30
+ return (0, _dayjs.default)().year(page.year).month(page.month - 1).date(1);
22
31
  }
@@ -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;
@@ -7,6 +7,8 @@ exports.Ellipsis = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
10
+ var _runes = _interopRequireDefault(require("runes"));
11
+
10
12
  var _withDefaultProps = require("../../utils/with-default-props");
11
13
 
12
14
  var _nativeProps = require("../../utils/native-props");
@@ -17,6 +19,8 @@ var _ahooks = require("ahooks");
17
19
 
18
20
  var _withStopPropagation = require("../../utils/with-stop-propagation");
19
21
 
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
20
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
25
 
22
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -37,6 +41,11 @@ const Ellipsis = p => {
37
41
  const [ellipsised, setEllipsised] = (0, _react.useState)({});
38
42
  const [expanded, setExpanded] = (0, _react.useState)(false);
39
43
  const [exceeded, setExceeded] = (0, _react.useState)(false);
44
+ const chars = (0, _react.useMemo)(() => (0, _runes.default)(props.content), [props.content]);
45
+
46
+ function getSubString(start, end) {
47
+ return chars.slice(start, end).join('');
48
+ }
40
49
 
41
50
  function calcEllipsised() {
42
51
  const root = rootRef.current;
@@ -75,11 +84,11 @@ const Ellipsis = p => {
75
84
  if (right - left <= 1) {
76
85
  if (props.direction === 'end') {
77
86
  return {
78
- leading: props.content.slice(0, left) + '...'
87
+ leading: getSubString(0, left) + '...'
79
88
  };
80
89
  } else {
81
90
  return {
82
- tailing: '...' + props.content.slice(right, end)
91
+ tailing: '...' + getSubString(right, end)
83
92
  };
84
93
  }
85
94
  }
@@ -87,9 +96,9 @@ const Ellipsis = p => {
87
96
  const middle = Math.round((left + right) / 2);
88
97
 
89
98
  if (props.direction === 'end') {
90
- container.innerText = props.content.slice(0, middle) + '...' + actionText;
99
+ container.innerText = getSubString(0, middle) + '...' + actionText;
91
100
  } else {
92
- container.innerText = actionText + '...' + props.content.slice(middle, end);
101
+ container.innerText = actionText + '...' + getSubString(middle, end);
93
102
  }
94
103
 
95
104
  if (container.offsetHeight <= maxHeight) {
@@ -110,14 +119,14 @@ const Ellipsis = p => {
110
119
  function checkMiddle(leftPart, rightPart) {
111
120
  if (leftPart[1] - leftPart[0] <= 1 && rightPart[1] - rightPart[0] <= 1) {
112
121
  return {
113
- leading: props.content.slice(0, leftPart[0]) + '...',
114
- tailing: '...' + props.content.slice(rightPart[1], end)
122
+ leading: getSubString(0, leftPart[0]) + '...',
123
+ tailing: '...' + getSubString(rightPart[1], end)
115
124
  };
116
125
  }
117
126
 
118
127
  const leftPartMiddle = Math.floor((leftPart[0] + leftPart[1]) / 2);
119
128
  const rightPartMiddle = Math.ceil((rightPart[0] + rightPart[1]) / 2);
120
- container.innerText = props.content.slice(0, leftPartMiddle) + '...' + actionText + '...' + props.content.slice(rightPartMiddle, end);
129
+ container.innerText = getSubString(0, leftPartMiddle) + '...' + actionText + '...' + getSubString(rightPartMiddle, end);
121
130
 
122
131
  if (container.offsetHeight <= maxHeight) {
123
132
  return checkMiddle([leftPartMiddle, leftPart[1]], [rightPart[0], rightPartMiddle]);
@@ -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;