antd-mobile 5.42.3 → 5.43.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 (202) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +2383 -2054
  2. package/2x/bundle/antd-mobile.cjs.js +8 -7
  3. package/2x/bundle/antd-mobile.es.development.js +1545 -1216
  4. package/2x/bundle/antd-mobile.es.js +9230 -8978
  5. package/2x/bundle/antd-mobile.umd.development.js +2380 -2051
  6. package/2x/bundle/antd-mobile.umd.js +8 -7
  7. package/2x/bundle/style.css +116 -90
  8. package/2x/cjs/components/cascader/cascader.css +5 -0
  9. package/2x/cjs/components/cascader/cascader.d.ts +5 -3
  10. package/2x/cjs/components/cascader/cascader.js +6 -7
  11. package/2x/cjs/components/cascader/index.d.ts +2 -1
  12. package/2x/cjs/components/cascader-view/cascader-view.d.ts +8 -2
  13. package/2x/cjs/components/cascader-view/cascader-view.js +13 -10
  14. package/2x/cjs/components/cascader-view/index.d.ts +1 -1
  15. package/2x/cjs/components/date-picker/date-picker-date-utils.js +4 -10
  16. package/2x/cjs/components/date-picker/date-picker-week-utils.js +4 -4
  17. package/2x/cjs/components/date-picker/date-picker.d.ts +1 -1
  18. package/2x/cjs/components/date-picker/index.d.ts +1 -1
  19. package/2x/cjs/components/dropdown/dropdown.d.ts +6 -0
  20. package/2x/cjs/components/dropdown/dropdown.js +38 -7
  21. package/2x/cjs/components/dropdown/index.d.ts +3 -0
  22. package/2x/cjs/components/error-block/create-error-block.d.ts +3 -4
  23. package/2x/cjs/components/error-block/create-error-block.js +2 -2
  24. package/2x/cjs/components/error-block/images/busy.js +94 -89
  25. package/2x/cjs/components/error-block/images/default.js +170 -165
  26. package/2x/cjs/components/error-block/images/disconnected.js +127 -122
  27. package/2x/cjs/components/error-block/images/empty.js +123 -118
  28. package/2x/cjs/components/error-block/images/index.d.ts +1 -1
  29. package/2x/cjs/components/error-block/images/index.js +2 -2
  30. package/2x/cjs/components/floating-panel/floating-panel.d.ts +2 -0
  31. package/2x/cjs/components/floating-panel/floating-panel.js +7 -3
  32. package/2x/cjs/components/form/form-item.js +19 -11
  33. package/2x/cjs/components/form/index.d.ts +1 -1
  34. package/2x/cjs/components/input/input.d.ts +4 -2
  35. package/2x/cjs/components/input/input.js +6 -4
  36. package/2x/cjs/components/list/list-item.js +1 -1
  37. package/2x/cjs/components/notice-bar/notice-bar.js +2 -1
  38. package/2x/cjs/components/passcode-input/passcode-input.css +20 -0
  39. package/2x/cjs/components/passcode-input/passcode-input.d.ts +2 -0
  40. package/2x/cjs/components/passcode-input/passcode-input.js +6 -3
  41. package/2x/cjs/components/popover/popover.js +11 -1
  42. package/2x/cjs/components/popover/use-showing-guard.d.ts +12 -0
  43. package/2x/cjs/components/popover/use-showing-guard.js +40 -0
  44. package/2x/cjs/components/search-bar/search-bar.js +4 -5
  45. package/2x/cjs/components/segmented/segmented.css +1 -0
  46. package/2x/cjs/components/swipe-action/swipe-action.js +37 -21
  47. package/2x/cjs/components/swiper/index.d.ts +3 -1
  48. package/2x/cjs/components/swiper/swiper.d.ts +9 -2
  49. package/2x/cjs/components/swiper/swiper.js +36 -18
  50. package/2x/cjs/components/text-area/text-area.d.ts +1 -1
  51. package/2x/cjs/components/text-area/text-area.js +4 -3
  52. package/2x/cjs/components/virtual-input/use-click-outside.js +6 -4
  53. package/2x/cjs/utils/convert-px.js +7 -2
  54. package/2x/es/components/cascader/cascader.css +5 -0
  55. package/2x/es/components/cascader/cascader.d.ts +5 -3
  56. package/2x/es/components/cascader/cascader.js +7 -8
  57. package/2x/es/components/cascader/index.d.ts +2 -1
  58. package/2x/es/components/cascader-view/cascader-view.d.ts +8 -2
  59. package/2x/es/components/cascader-view/cascader-view.js +12 -9
  60. package/2x/es/components/cascader-view/index.d.ts +1 -1
  61. package/2x/es/components/date-picker/date-picker-date-utils.js +4 -9
  62. package/2x/es/components/date-picker/date-picker-week-utils.js +4 -4
  63. package/2x/es/components/date-picker/date-picker.d.ts +1 -1
  64. package/2x/es/components/date-picker/index.d.ts +1 -1
  65. package/2x/es/components/dropdown/dropdown.d.ts +6 -0
  66. package/2x/es/components/dropdown/dropdown.js +39 -8
  67. package/2x/es/components/dropdown/index.d.ts +3 -0
  68. package/2x/es/components/error-block/create-error-block.d.ts +3 -4
  69. package/2x/es/components/error-block/create-error-block.js +2 -2
  70. package/2x/es/components/error-block/images/busy.js +94 -89
  71. package/2x/es/components/error-block/images/default.js +170 -165
  72. package/2x/es/components/error-block/images/disconnected.js +127 -122
  73. package/2x/es/components/error-block/images/empty.js +123 -118
  74. package/2x/es/components/error-block/images/index.d.ts +1 -1
  75. package/2x/es/components/error-block/images/index.js +2 -2
  76. package/2x/es/components/floating-panel/floating-panel.d.ts +2 -0
  77. package/2x/es/components/floating-panel/floating-panel.js +7 -3
  78. package/2x/es/components/form/form-item.js +19 -11
  79. package/2x/es/components/form/index.d.ts +1 -1
  80. package/2x/es/components/input/input.d.ts +4 -2
  81. package/2x/es/components/input/input.js +6 -4
  82. package/2x/es/components/list/list-item.js +1 -1
  83. package/2x/es/components/notice-bar/notice-bar.js +2 -1
  84. package/2x/es/components/passcode-input/passcode-input.css +20 -0
  85. package/2x/es/components/passcode-input/passcode-input.d.ts +2 -0
  86. package/2x/es/components/passcode-input/passcode-input.js +6 -3
  87. package/2x/es/components/popover/popover.js +11 -1
  88. package/2x/es/components/popover/use-showing-guard.d.ts +12 -0
  89. package/2x/es/components/popover/use-showing-guard.js +34 -0
  90. package/2x/es/components/search-bar/search-bar.js +4 -5
  91. package/2x/es/components/segmented/segmented.css +1 -0
  92. package/2x/es/components/swipe-action/swipe-action.js +37 -21
  93. package/2x/es/components/swiper/index.d.ts +3 -1
  94. package/2x/es/components/swiper/swiper.d.ts +9 -2
  95. package/2x/es/components/swiper/swiper.js +35 -19
  96. package/2x/es/components/text-area/text-area.d.ts +1 -1
  97. package/2x/es/components/text-area/text-area.js +4 -3
  98. package/2x/es/components/virtual-input/use-click-outside.js +7 -4
  99. package/2x/es/utils/convert-px.js +7 -2
  100. package/2x/package.json +1 -1
  101. package/bundle/antd-mobile.cjs.development.js +2383 -2054
  102. package/bundle/antd-mobile.cjs.js +8 -7
  103. package/bundle/antd-mobile.compatible.umd.js +1 -1
  104. package/bundle/antd-mobile.es.development.js +1545 -1216
  105. package/bundle/antd-mobile.es.js +9230 -8978
  106. package/bundle/antd-mobile.umd.development.js +2380 -2051
  107. package/bundle/antd-mobile.umd.js +8 -7
  108. package/bundle/style.css +1 -1
  109. package/cjs/components/cascader/cascader.css +4 -0
  110. package/cjs/components/cascader/cascader.d.ts +5 -3
  111. package/cjs/components/cascader/cascader.js +6 -7
  112. package/cjs/components/cascader/index.d.ts +2 -1
  113. package/cjs/components/cascader-view/cascader-view.d.ts +8 -2
  114. package/cjs/components/cascader-view/cascader-view.js +13 -10
  115. package/cjs/components/cascader-view/index.d.ts +1 -1
  116. package/cjs/components/date-picker/date-picker-date-utils.js +4 -10
  117. package/cjs/components/date-picker/date-picker-week-utils.js +4 -4
  118. package/cjs/components/date-picker/date-picker.d.ts +1 -1
  119. package/cjs/components/date-picker/index.d.ts +1 -1
  120. package/cjs/components/dropdown/dropdown.d.ts +6 -0
  121. package/cjs/components/dropdown/dropdown.js +38 -7
  122. package/cjs/components/dropdown/index.d.ts +3 -0
  123. package/cjs/components/error-block/create-error-block.d.ts +3 -4
  124. package/cjs/components/error-block/create-error-block.js +2 -2
  125. package/cjs/components/error-block/images/busy.js +94 -89
  126. package/cjs/components/error-block/images/default.js +170 -165
  127. package/cjs/components/error-block/images/disconnected.js +127 -122
  128. package/cjs/components/error-block/images/empty.js +123 -118
  129. package/cjs/components/error-block/images/index.d.ts +1 -1
  130. package/cjs/components/error-block/images/index.js +2 -2
  131. package/cjs/components/floating-panel/floating-panel.d.ts +2 -0
  132. package/cjs/components/floating-panel/floating-panel.js +7 -3
  133. package/cjs/components/form/form-item.js +19 -11
  134. package/cjs/components/form/index.d.ts +1 -1
  135. package/cjs/components/input/input.d.ts +4 -2
  136. package/cjs/components/input/input.js +6 -4
  137. package/cjs/components/list/list-item.js +1 -1
  138. package/cjs/components/notice-bar/notice-bar.js +2 -1
  139. package/cjs/components/passcode-input/passcode-input.css +15 -0
  140. package/cjs/components/passcode-input/passcode-input.d.ts +2 -0
  141. package/cjs/components/passcode-input/passcode-input.js +6 -3
  142. package/cjs/components/popover/popover.js +11 -1
  143. package/cjs/components/popover/use-showing-guard.d.ts +12 -0
  144. package/cjs/components/popover/use-showing-guard.js +40 -0
  145. package/cjs/components/search-bar/search-bar.js +4 -5
  146. package/cjs/components/segmented/segmented.css +1 -0
  147. package/cjs/components/swipe-action/swipe-action.js +37 -21
  148. package/cjs/components/swiper/index.d.ts +3 -1
  149. package/cjs/components/swiper/swiper.d.ts +9 -2
  150. package/cjs/components/swiper/swiper.js +36 -18
  151. package/cjs/components/text-area/text-area.d.ts +1 -1
  152. package/cjs/components/text-area/text-area.js +4 -3
  153. package/cjs/components/virtual-input/use-click-outside.js +6 -4
  154. package/cjs/utils/convert-px.js +7 -2
  155. package/es/components/cascader/cascader.css +4 -0
  156. package/es/components/cascader/cascader.d.ts +5 -3
  157. package/es/components/cascader/cascader.js +7 -8
  158. package/es/components/cascader/index.d.ts +2 -1
  159. package/es/components/cascader-view/cascader-view.d.ts +8 -2
  160. package/es/components/cascader-view/cascader-view.js +12 -9
  161. package/es/components/cascader-view/index.d.ts +1 -1
  162. package/es/components/date-picker/date-picker-date-utils.js +4 -9
  163. package/es/components/date-picker/date-picker-week-utils.js +4 -4
  164. package/es/components/date-picker/date-picker.d.ts +1 -1
  165. package/es/components/date-picker/index.d.ts +1 -1
  166. package/es/components/dropdown/dropdown.d.ts +6 -0
  167. package/es/components/dropdown/dropdown.js +39 -8
  168. package/es/components/dropdown/index.d.ts +3 -0
  169. package/es/components/error-block/create-error-block.d.ts +3 -4
  170. package/es/components/error-block/create-error-block.js +2 -2
  171. package/es/components/error-block/images/busy.js +94 -89
  172. package/es/components/error-block/images/default.js +170 -165
  173. package/es/components/error-block/images/disconnected.js +127 -122
  174. package/es/components/error-block/images/empty.js +123 -118
  175. package/es/components/error-block/images/index.d.ts +1 -1
  176. package/es/components/error-block/images/index.js +2 -2
  177. package/es/components/floating-panel/floating-panel.d.ts +2 -0
  178. package/es/components/floating-panel/floating-panel.js +7 -3
  179. package/es/components/form/form-item.js +19 -11
  180. package/es/components/form/index.d.ts +1 -1
  181. package/es/components/input/input.d.ts +4 -2
  182. package/es/components/input/input.js +6 -4
  183. package/es/components/list/list-item.js +1 -1
  184. package/es/components/notice-bar/notice-bar.js +2 -1
  185. package/es/components/passcode-input/passcode-input.css +15 -0
  186. package/es/components/passcode-input/passcode-input.d.ts +2 -0
  187. package/es/components/passcode-input/passcode-input.js +6 -3
  188. package/es/components/popover/popover.js +11 -1
  189. package/es/components/popover/use-showing-guard.d.ts +12 -0
  190. package/es/components/popover/use-showing-guard.js +34 -0
  191. package/es/components/search-bar/search-bar.js +4 -5
  192. package/es/components/segmented/segmented.css +1 -0
  193. package/es/components/swipe-action/swipe-action.js +37 -21
  194. package/es/components/swiper/index.d.ts +3 -1
  195. package/es/components/swiper/swiper.d.ts +9 -2
  196. package/es/components/swiper/swiper.js +35 -19
  197. package/es/components/text-area/text-area.d.ts +1 -1
  198. package/es/components/text-area/text-area.js +4 -3
  199. package/es/components/virtual-input/use-click-outside.js +7 -4
  200. package/es/utils/convert-px.js +7 -2
  201. package/package.json +1 -1
  202. package/umd/antd-mobile.js +1 -1
@@ -1723,96 +1723,6 @@ div.adm-px-tester {
1723
1723
  --width: 60%;
1724
1724
  }
1725
1725
 
1726
- .adm-tabs {
1727
- --title-font-size: var(--adm-font-size-9);
1728
- --content-padding: 24px;
1729
- --active-line-height: 4px;
1730
- --active-line-border-radius: var(--active-line-height);
1731
- --active-line-color: var(--adm-color-primary);
1732
- --active-title-color: var(--adm-color-primary);
1733
- position: relative;
1734
- min-width: 0;
1735
- }
1736
-
1737
- .adm-tabs-header {
1738
- position: relative;
1739
- border-bottom: solid 2px var(--adm-color-border);
1740
- }
1741
-
1742
- .adm-tabs-tab-list {
1743
- display: flex;
1744
- flex-wrap: nowrap;
1745
- justify-content: flex-start;
1746
- align-items: center;
1747
- position: relative;
1748
- overflow-x: scroll;
1749
- scrollbar-width: none;
1750
- }
1751
-
1752
- .adm-tabs-tab-list::-webkit-scrollbar {
1753
- display: none;
1754
- }
1755
-
1756
- .adm-tabs-tab-wrapper {
1757
- padding: 0 24px;
1758
- }
1759
-
1760
- .adm-tabs-tab-wrapper-stretch {
1761
- flex: auto;
1762
- }
1763
-
1764
- .adm-tabs-tab {
1765
- white-space: nowrap;
1766
- padding: 16px 0 20px;
1767
- width: -webkit-min-content;
1768
- width: min-content;
1769
- margin: 0 auto;
1770
- font-size: var(--title-font-size);
1771
- position: relative;
1772
- cursor: pointer;
1773
- }
1774
-
1775
- .adm-tabs-tab-active {
1776
- color: var(--active-title-color);
1777
- }
1778
-
1779
- .adm-tabs-tab-disabled {
1780
- opacity: .5;
1781
- cursor: not-allowed;
1782
- }
1783
-
1784
- .adm-tabs-tab-line {
1785
- position: absolute;
1786
- bottom: 0;
1787
- height: var(--active-line-height);
1788
- background: var(--active-line-color);
1789
- border-radius: var(--active-line-border-radius);
1790
- }
1791
-
1792
- .adm-tabs-content {
1793
- padding: var(--content-padding);
1794
- }
1795
-
1796
- .adm-tabs-header-mask {
1797
- position: absolute;
1798
- top: 0;
1799
- bottom: 0;
1800
- z-index: 1;
1801
- width: 60px;
1802
- height: 100%;
1803
- pointer-events: none;
1804
- }
1805
-
1806
- .adm-tabs-header-mask-left {
1807
- left: 0;
1808
- background: linear-gradient(to right,var(--adm-color-background),rgba(255,255,255,0));
1809
- }
1810
-
1811
- .adm-tabs-header-mask-right {
1812
- right: 0;
1813
- background: linear-gradient(to left,var(--adm-color-background),rgba(255,255,255,0));
1814
- }
1815
-
1816
1726
  .adm-check-list-item-extra {
1817
1727
  font-size: var(--adm-font-size-10);
1818
1728
  line-height: 1;
@@ -1990,6 +1900,96 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
1990
1900
  }
1991
1901
  }
1992
1902
 
1903
+ .adm-tabs {
1904
+ --title-font-size: var(--adm-font-size-9);
1905
+ --content-padding: 24px;
1906
+ --active-line-height: 4px;
1907
+ --active-line-border-radius: var(--active-line-height);
1908
+ --active-line-color: var(--adm-color-primary);
1909
+ --active-title-color: var(--adm-color-primary);
1910
+ position: relative;
1911
+ min-width: 0;
1912
+ }
1913
+
1914
+ .adm-tabs-header {
1915
+ position: relative;
1916
+ border-bottom: solid 2px var(--adm-color-border);
1917
+ }
1918
+
1919
+ .adm-tabs-tab-list {
1920
+ display: flex;
1921
+ flex-wrap: nowrap;
1922
+ justify-content: flex-start;
1923
+ align-items: center;
1924
+ position: relative;
1925
+ overflow-x: scroll;
1926
+ scrollbar-width: none;
1927
+ }
1928
+
1929
+ .adm-tabs-tab-list::-webkit-scrollbar {
1930
+ display: none;
1931
+ }
1932
+
1933
+ .adm-tabs-tab-wrapper {
1934
+ padding: 0 24px;
1935
+ }
1936
+
1937
+ .adm-tabs-tab-wrapper-stretch {
1938
+ flex: auto;
1939
+ }
1940
+
1941
+ .adm-tabs-tab {
1942
+ white-space: nowrap;
1943
+ padding: 16px 0 20px;
1944
+ width: -webkit-min-content;
1945
+ width: min-content;
1946
+ margin: 0 auto;
1947
+ font-size: var(--title-font-size);
1948
+ position: relative;
1949
+ cursor: pointer;
1950
+ }
1951
+
1952
+ .adm-tabs-tab-active {
1953
+ color: var(--active-title-color);
1954
+ }
1955
+
1956
+ .adm-tabs-tab-disabled {
1957
+ opacity: .5;
1958
+ cursor: not-allowed;
1959
+ }
1960
+
1961
+ .adm-tabs-tab-line {
1962
+ position: absolute;
1963
+ bottom: 0;
1964
+ height: var(--active-line-height);
1965
+ background: var(--active-line-color);
1966
+ border-radius: var(--active-line-border-radius);
1967
+ }
1968
+
1969
+ .adm-tabs-content {
1970
+ padding: var(--content-padding);
1971
+ }
1972
+
1973
+ .adm-tabs-header-mask {
1974
+ position: absolute;
1975
+ top: 0;
1976
+ bottom: 0;
1977
+ z-index: 1;
1978
+ width: 60px;
1979
+ height: 100%;
1980
+ pointer-events: none;
1981
+ }
1982
+
1983
+ .adm-tabs-header-mask-left {
1984
+ left: 0;
1985
+ background: linear-gradient(to right,var(--adm-color-background),rgba(255,255,255,0));
1986
+ }
1987
+
1988
+ .adm-tabs-header-mask-right {
1989
+ right: 0;
1990
+ background: linear-gradient(to left,var(--adm-color-background),rgba(255,255,255,0));
1991
+ }
1992
+
1993
1993
  .adm-cascader {
1994
1994
  width: 100%;
1995
1995
  overflow: hidden;
@@ -2030,6 +2030,11 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
2030
2030
  --height: 620px;
2031
2031
  }
2032
2032
 
2033
+ .adm-cascader-popup .adm-popup-body {
2034
+ border-top-left-radius: 16px;
2035
+ border-top-right-radius: 16px;
2036
+ }
2037
+
2033
2038
  .adm-center-popup {
2034
2039
  --background-color: var(--adm-center-popup-background-color, var(--adm-color-background));
2035
2040
  --border-radius: var(--adm-center-popup-border-radius, 16px);
@@ -3908,6 +3913,10 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3908
3913
  vertical-align: top;
3909
3914
  }
3910
3915
 
3916
+ .adm-passcode-input.adm-passcode-input-rtl .adm-passcode-input-cell-container {
3917
+ flex-direction: row-reverse;
3918
+ }
3919
+
3911
3920
  .adm-passcode-input-cell {
3912
3921
  flex: none;
3913
3922
  display: flex;
@@ -3956,6 +3965,22 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3956
3965
  box-shadow: 0 0 4px 0 var(--adm-color-primary);
3957
3966
  }
3958
3967
 
3968
+ .adm-passcode-input.adm-passcode-input-rtl:not(.adm-passcode-input-seperated) .adm-passcode-input-cell:first-child {
3969
+ border-right: none;
3970
+ }
3971
+
3972
+ .adm-passcode-input.adm-passcode-input-rtl:not(.adm-passcode-input-seperated) .adm-passcode-input-cell:last-child {
3973
+ border-right: 2px solid var(--border-color);
3974
+ }
3975
+
3976
+ .adm-passcode-input.adm-passcode-input-rtl.adm-passcode-input.adm-passcode-input-seperated .adm-passcode-input-cell:first-child {
3977
+ margin-right: 0;
3978
+ }
3979
+
3980
+ .adm-passcode-input.adm-passcode-input-rtl.adm-passcode-input.adm-passcode-input-seperated .adm-passcode-input-cell:last-child {
3981
+ margin-right: var(--cell-gap);
3982
+ }
3983
+
3959
3984
  .adm-passcode-input-seperated.adm-passcode-input-focused {
3960
3985
  outline: none;
3961
3986
  }
@@ -4594,6 +4619,7 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
4594
4619
  width: 0;
4595
4620
  height: 100%;
4596
4621
  padding: 8px 0;
4622
+ box-sizing: border-box;
4597
4623
  }
4598
4624
 
4599
4625
  .adm-segmented-thumb-motion-appear-active {
@@ -36,4 +36,9 @@
36
36
 
37
37
  .adm-cascader-body > .adm-cascader-view {
38
38
  --height: 620px;
39
+ }
40
+
41
+ .adm-cascader-popup .adm-popup-body {
42
+ border-top-left-radius: 16px;
43
+ border-top-right-radius: 16px;
39
44
  }
@@ -1,8 +1,8 @@
1
1
  import React, { ReactNode } from 'react';
2
- import { PopupProps } from '../popup';
3
- import { CascaderValue, CascaderValueExtend, CascaderOption } from '../cascader-view';
4
- import { NativeProps } from '../../utils/native-props';
5
2
  import type { FieldNamesType } from '../../hooks';
3
+ import { NativeProps } from '../../utils/native-props';
4
+ import { CascaderOption, CascaderValue, CascaderValueExtend, CascaderViewOptionRender } from '../cascader-view';
5
+ import { PopupProps } from '../popup';
6
6
  export declare type CascaderActions = {
7
7
  open: () => void;
8
8
  close: () => void;
@@ -27,6 +27,7 @@ export declare type CascaderProps = {
27
27
  onTabsChange?: (index: number) => void;
28
28
  activeIcon?: ReactNode;
29
29
  fieldNames?: FieldNamesType;
30
+ optionRender?: CascaderViewOptionRender;
30
31
  } & Pick<PopupProps, 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'stopPropagation' | 'destroyOnClose' | 'forceRender'> & NativeProps;
31
32
  export declare const Cascader: React.ForwardRefExoticComponent<{
32
33
  options: CascaderOption[];
@@ -46,6 +47,7 @@ export declare const Cascader: React.ForwardRefExoticComponent<{
46
47
  onTabsChange?: ((index: number) => void) | undefined;
47
48
  activeIcon?: ReactNode;
48
49
  fieldNames?: FieldNamesType | undefined;
50
+ optionRender?: CascaderViewOptionRender | undefined;
49
51
  } & Pick<PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
50
52
  className?: string | undefined;
51
53
  style?: (React.CSSProperties & Partial<Record<never, string>>) | undefined;
@@ -5,14 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.Cascader = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
- var _popup = _interopRequireDefault(require("../popup"));
9
- var _withDefaultProps = require("../../utils/with-default-props");
8
+ var _hooks = require("../../hooks");
10
9
  var _nativeProps = require("../../utils/native-props");
11
10
  var _usePropsValue = require("../../utils/use-props-value");
11
+ var _withDefaultProps = require("../../utils/with-default-props");
12
12
  var _cascaderView = _interopRequireDefault(require("../cascader-view"));
13
- var _configProvider = require("../config-provider");
14
13
  var _useCascaderValueExtend = require("../cascader-view/use-cascader-value-extend");
15
- var _hooks = require("../../hooks");
14
+ var _configProvider = require("../config-provider");
15
+ var _popup = _interopRequireDefault(require("../popup"));
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  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); }
18
18
  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; }
@@ -67,9 +67,7 @@ const Cascader = (0, _react.forwardRef)((p, ref) => {
67
67
  });
68
68
  const [innerValue, setInnerValue] = (0, _react.useState)(value);
69
69
  (0, _react.useEffect)(() => {
70
- if (!visible) {
71
- setInnerValue(value);
72
- }
70
+ setInnerValue(value);
73
71
  }, [visible, value]);
74
72
  const cascaderElement = (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
75
73
  className: classPrefix
@@ -103,6 +101,7 @@ const Cascader = (0, _react.forwardRef)((p, ref) => {
103
101
  }
104
102
  })))));
105
103
  const popupElement = _react.default.createElement(_popup.default, {
104
+ className: `${classPrefix}-popup`,
106
105
  visible: visible,
107
106
  position: 'bottom',
108
107
  onMaskClick: () => {
@@ -1,7 +1,7 @@
1
1
  import { prompt } from './prompt';
2
2
  import './cascader.less';
3
3
  export type { CascaderProps, CascaderRef, CascaderActions } from './cascader';
4
- export type { CascaderValue, CascaderValueExtend, CascaderOption, } from '../cascader-view';
4
+ export type { CascaderValue, CascaderValueExtend, CascaderOption, CascaderViewOptionRender, CascaderViewOptionRenderInfo, } from '../cascader-view';
5
5
  declare const _default: import("react").ForwardRefExoticComponent<{
6
6
  options: import("../cascader-view").CascaderOption[];
7
7
  value?: import("../check-list").CheckListValue[] | undefined;
@@ -20,6 +20,7 @@ declare const _default: import("react").ForwardRefExoticComponent<{
20
20
  onTabsChange?: ((index: number) => void) | undefined;
21
21
  activeIcon?: import("react").ReactNode;
22
22
  fieldNames?: import("../../hooks").FieldNamesType | undefined;
23
+ optionRender?: import("../cascader-view").CascaderViewOptionRender | undefined;
23
24
  } & Pick<import("../popup").PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
24
25
  className?: string | undefined;
25
26
  style?: (import("react").CSSProperties & Partial<Record<never, string>>) | undefined;
@@ -1,7 +1,7 @@
1
1
  import type { FC, ReactNode } from 'react';
2
- import { CheckListValue } from '../check-list';
2
+ import type { BaseOptionType, FieldNamesType } from '../../hooks';
3
3
  import { NativeProps } from '../../utils/native-props';
4
- import type { FieldNamesType, BaseOptionType } from '../../hooks';
4
+ import { CheckListValue } from '../check-list';
5
5
  export declare type CascaderValue = CheckListValue;
6
6
  export declare type CascaderOption = {
7
7
  label?: string;
@@ -13,6 +13,11 @@ export declare type CascaderValueExtend = {
13
13
  items: (CascaderOption | null)[];
14
14
  isLeaf: boolean;
15
15
  };
16
+ export declare type CascaderViewOptionRenderInfo = {
17
+ depth: number;
18
+ active: boolean;
19
+ };
20
+ export declare type CascaderViewOptionRender = (option: CascaderOption, info: CascaderViewOptionRenderInfo) => ReactNode;
16
21
  export declare type CascaderViewProps = {
17
22
  options: CascaderOption[];
18
23
  value?: CascaderValue[];
@@ -23,5 +28,6 @@ export declare type CascaderViewProps = {
23
28
  activeIcon?: ReactNode;
24
29
  loading?: boolean;
25
30
  fieldNames?: FieldNamesType;
31
+ optionRender?: CascaderViewOptionRender;
26
32
  } & NativeProps<'--height'>;
27
33
  export declare const CascaderView: FC<CascaderViewProps>;
@@ -4,22 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.CascaderView = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
7
+ var _ahooks = require("ahooks");
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
- var _tabs = _interopRequireDefault(require("../tabs"));
10
- var _checkList = _interopRequireDefault(require("../check-list"));
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _hooks = require("../../hooks");
11
11
  var _nativeProps = require("../../utils/native-props");
12
- var _withDefaultProps = require("../../utils/with-default-props");
13
12
  var _usePropsValue = require("../../utils/use-props-value");
14
- var _useCascaderValueExtend = require("./use-cascader-value-extend");
13
+ var _withDefaultProps = require("../../utils/with-default-props");
14
+ var _checkList = _interopRequireDefault(require("../check-list"));
15
15
  var _configProvider = require("../config-provider");
16
- var _optionSkeleton = require("./option-skeleton");
17
16
  var _skeleton = _interopRequireDefault(require("../skeleton"));
18
- var _ahooks = require("ahooks");
19
- var _hooks = require("../../hooks");
20
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ var _tabs = _interopRequireDefault(require("../tabs"));
18
+ var _optionSkeleton = require("./option-skeleton");
19
+ var _useCascaderValueExtend = require("./use-cascader-value-extend");
21
20
  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); }
22
21
  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; }
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
  const classPrefix = `adm-cascader-view`;
24
24
  const defaultProps = {
25
25
  defaultValue: []
@@ -134,7 +134,10 @@ const CascaderView = p => {
134
134
  className: (0, _classnames.default)(`${classPrefix}-item`, {
135
135
  [`${classPrefix}-item-active`]: active
136
136
  })
137
- }, option[labelName]);
137
+ }, props.optionRender ? props.optionRender(option, {
138
+ depth: index,
139
+ active
140
+ }) : option[labelName]);
138
141
  }))));
139
142
  }))));
140
143
  };
@@ -1,5 +1,5 @@
1
1
  import './cascader-view.less';
2
- export type { CascaderViewProps, CascaderValue, CascaderValueExtend, CascaderOption, } from './cascader-view';
2
+ export type { CascaderViewProps, CascaderViewOptionRender, CascaderViewOptionRenderInfo, CascaderValue, CascaderValueExtend, CascaderOption, } from './cascader-view';
3
3
  declare const _default: import("react").FC<import("./cascader-view").CascaderViewProps> & {
4
4
  optionSkeleton: import("./cascader-view").CascaderOption[];
5
5
  };
@@ -6,15 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.convertDateToStringArray = convertDateToStringArray;
7
7
  exports.convertStringArrayToDate = convertStringArrayToDate;
8
8
  exports.generateDatePickerColumns = generateDatePickerColumns;
9
- var _dayjs = _interopRequireDefault(require("dayjs"));
10
- var _isLeapYear = _interopRequireDefault(require("dayjs/plugin/isLeapYear"));
11
- var _isoWeek = _interopRequireDefault(require("dayjs/plugin/isoWeek"));
12
- var _isoWeeksInYear = _interopRequireDefault(require("dayjs/plugin/isoWeeksInYear"));
13
9
  var _util = require("./util");
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
- _dayjs.default.extend(_isoWeek.default);
16
- _dayjs.default.extend(_isoWeeksInYear.default);
17
- _dayjs.default.extend(_isLeapYear.default);
18
10
  const precisionRankRecord = {
19
11
  year: 0,
20
12
  month: 1,
@@ -23,6 +15,9 @@ const precisionRankRecord = {
23
15
  minute: 4,
24
16
  second: 5
25
17
  };
18
+ function getMonthDays(year, month) {
19
+ return new Date(Date.UTC(year, month, 0)).getUTCDate();
20
+ }
26
21
  function generateDatePickerColumns(selected, min, max, precision, renderLabel, filter, tillNow) {
27
22
  const ret = [];
28
23
  const minYear = min.getFullYear();
@@ -39,7 +34,6 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
39
34
  const maxSecond = max.getSeconds();
40
35
  const rank = precisionRankRecord[precision];
41
36
  const selectedYear = parseInt(selected[0]);
42
- const firstDayInSelectedMonth = (0, _dayjs.default)(convertStringArrayToDate([selected[0], selected[1], '1']));
43
37
  const selectedMonth = parseInt(selected[1]);
44
38
  const selectedDay = parseInt(selected[2]);
45
39
  const selectedHour = parseInt(selected[3]);
@@ -96,7 +90,7 @@ function generateDatePickerColumns(selected, min, max, precision, renderLabel, f
96
90
  }
97
91
  if (rank >= precisionRankRecord.day) {
98
92
  const lower = isInMinMonth ? minDay : 1;
99
- const upper = isInMaxMonth ? maxDay : firstDayInSelectedMonth.daysInMonth();
93
+ const upper = isInMaxMonth ? maxDay : getMonthDays(selectedYear, selectedMonth);
100
94
  const days = generateColumn(lower, upper, 'day');
101
95
  ret.push(days.map(v => ({
102
96
  label: renderLabel('day', v, {
@@ -21,14 +21,14 @@ const precisionRankRecord = {
21
21
  };
22
22
  function generateDatePickerColumns(selected, min, max, precision, renderLabel, filter) {
23
23
  const ret = [];
24
- const minYear = min.getFullYear();
25
- const maxYear = max.getFullYear();
24
+ const minDay = (0, _dayjs.default)(min);
25
+ const maxDay = (0, _dayjs.default)(max);
26
+ const minYear = minDay.isoWeekYear();
27
+ const maxYear = maxDay.isoWeekYear();
26
28
  const rank = precisionRankRecord[precision];
27
29
  const selectedYear = parseInt(selected[0]);
28
30
  const isInMinYear = selectedYear === minYear;
29
31
  const isInMaxYear = selectedYear === maxYear;
30
- const minDay = (0, _dayjs.default)(min);
31
- const maxDay = (0, _dayjs.default)(max);
32
32
  const minWeek = minDay.isoWeek();
33
33
  const maxWeek = maxDay.isoWeek();
34
34
  const minWeekday = minDay.isoWeekday();
@@ -19,7 +19,7 @@ export declare type DatePickerProps = Pick<PickerProps, 'onCancel' | 'onClose' |
19
19
  filter?: DatePickerFilter;
20
20
  tillNow?: boolean;
21
21
  } & NativeProps;
22
- export declare const DatePicker: React.ForwardRefExoticComponent<Pick<PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "closeOnMaskClick" | "onClose" | "cancelText" | "loading" | "confirmText" | "mouseWheel" | "loadingContent" | "onCancel"> & {
22
+ export declare const DatePicker: React.ForwardRefExoticComponent<Pick<PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "onCancel" | "onClose" | "loading" | "closeOnMaskClick" | "cancelText" | "confirmText" | "mouseWheel" | "loadingContent"> & {
23
23
  value?: PickerDate | null | undefined;
24
24
  defaultValue?: PickerDate | null | undefined;
25
25
  onSelect?: ((value: PickerDate) => void) | undefined;
@@ -2,7 +2,7 @@ import './date-picker.less';
2
2
  import { prompt } from './prompt';
3
3
  export type { DatePickerProps, DatePickerRef } from './date-picker';
4
4
  export type { DatePickerFilter } from './date-picker-utils';
5
- declare const _default: import("react").ForwardRefExoticComponent<Pick<import("../picker").PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "closeOnMaskClick" | "onClose" | "cancelText" | "loading" | "confirmText" | "mouseWheel" | "loadingContent" | "onCancel"> & {
5
+ declare const _default: import("react").ForwardRefExoticComponent<Pick<import("../picker").PickerProps, "style" | "title" | "onClick" | "visible" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation" | "onCancel" | "onClose" | "loading" | "closeOnMaskClick" | "cancelText" | "confirmText" | "mouseWheel" | "loadingContent"> & {
6
6
  value?: import("./util").PickerDate | null | undefined;
7
7
  defaultValue?: import("./util").PickerDate | null | undefined;
8
8
  onSelect?: ((value: import("./util").PickerDate) => void) | undefined;
@@ -8,6 +8,9 @@ export declare type DropdownProps = {
8
8
  closeOnMaskClick?: boolean;
9
9
  closeOnClickAway?: boolean;
10
10
  onChange?: (key: string | null) => void;
11
+ onVisibleChange?: (visible: boolean, info: {
12
+ key: string | null;
13
+ }) => void;
11
14
  arrowIcon?: ReactNode;
12
15
  /**
13
16
  * @deprecated use `arrowIcon` instead
@@ -24,6 +27,9 @@ declare const Dropdown: React.ForwardRefExoticComponent<{
24
27
  closeOnMaskClick?: boolean | undefined;
25
28
  closeOnClickAway?: boolean | undefined;
26
29
  onChange?: ((key: string | null) => void) | undefined;
30
+ onVisibleChange?: ((visible: boolean, info: {
31
+ key: string | null;
32
+ }) => void) | undefined;
27
33
  arrowIcon?: ReactNode;
28
34
  /**
29
35
  * @deprecated use `arrowIcon` instead
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _ahooks = require("ahooks");
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _raf = _interopRequireDefault(require("rc-util/lib/raf"));
9
10
  var _react = _interopRequireWildcard(require("react"));
10
11
  var _nativeProps = require("../../utils/native-props");
11
12
  var _usePropsValue = require("../../utils/use-props-value");
@@ -36,6 +37,8 @@ const Dropdown = (0, _react.forwardRef)((props, ref) => {
36
37
  defaultValue: mergedProps.defaultActiveKey,
37
38
  onChange: mergedProps.onChange
38
39
  });
40
+ const cacheKeyRef = (0, _react.useRef)(null);
41
+ cacheKeyRef.current = value !== null && value !== void 0 ? value : cacheKeyRef.current;
39
42
  const navRef = (0, _react.useRef)(null);
40
43
  const contentRef = (0, _react.useRef)(null);
41
44
  // 点击外部区域,关闭
@@ -46,14 +49,30 @@ const Dropdown = (0, _react.forwardRef)((props, ref) => {
46
49
  // 计算 navs 的 top 值
47
50
  const [top, setTop] = (0, _react.useState)();
48
51
  const containerRef = (0, _react.useRef)(null);
49
- (0, _react.useEffect)(() => {
52
+ const rafIdRef = (0, _react.useRef)(0);
53
+ const updatePosition = (0, _react.useCallback)(() => {
50
54
  const container = containerRef.current;
51
55
  if (!container) return;
52
- if (value) {
53
- const rect = container.getBoundingClientRect();
54
- setTop(rect.bottom);
55
- }
56
- }, [value]);
56
+ setTop(container.getBoundingClientRect().bottom);
57
+ }, []);
58
+ const updateTop = (0, _react.useCallback)(() => {
59
+ _raf.default.cancel(rafIdRef.current);
60
+ rafIdRef.current = (0, _raf.default)(updatePosition);
61
+ }, [updatePosition]);
62
+ (0, _react.useEffect)(() => {
63
+ if (!value) return;
64
+ updatePosition();
65
+ window.addEventListener('scroll', updateTop, {
66
+ passive: true,
67
+ capture: true
68
+ });
69
+ window.addEventListener('resize', updateTop);
70
+ return () => {
71
+ _raf.default.cancel(rafIdRef.current);
72
+ window.removeEventListener('scroll', updateTop, true);
73
+ window.removeEventListener('resize', updateTop);
74
+ };
75
+ }, [value, updateTop, updatePosition]);
57
76
  const changeActive = key => {
58
77
  if (value === key) {
59
78
  setValue(null);
@@ -108,7 +127,19 @@ const Dropdown = (0, _react.forwardRef)((props, ref) => {
108
127
  forceRender: popupForceRender,
109
128
  onMaskClick: mergedProps.closeOnMaskClick ? () => {
110
129
  changeActive(null);
111
- } : undefined
130
+ } : undefined,
131
+ afterShow: () => {
132
+ var _a;
133
+ (_a = mergedProps.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(mergedProps, true, {
134
+ key: cacheKeyRef.current
135
+ });
136
+ },
137
+ afterClose: () => {
138
+ var _a;
139
+ (_a = mergedProps.onVisibleChange) === null || _a === void 0 ? void 0 : _a.call(mergedProps, false, {
140
+ key: cacheKeyRef.current
141
+ });
142
+ }
112
143
  }, _react.default.createElement("div", {
113
144
  ref: contentRef
114
145
  }, items.map(item => {
@@ -7,6 +7,9 @@ declare const _default: import("react").ForwardRefExoticComponent<{
7
7
  closeOnMaskClick?: boolean | undefined;
8
8
  closeOnClickAway?: boolean | undefined;
9
9
  onChange?: ((key: string | null) => void) | undefined;
10
+ onVisibleChange?: ((visible: boolean, info: {
11
+ key: string | null;
12
+ }) => void) | undefined;
10
13
  arrowIcon?: import("react").ReactNode;
11
14
  arrow?: import("react").ReactNode;
12
15
  getContainer?: import("../../utils/render-to-container").GetContainer | undefined;
@@ -1,7 +1,6 @@
1
- import React from 'react';
2
- import type { ReactNode, ReactElement } from 'react';
3
- import { NativeProps } from '../../utils/native-props';
1
+ import type { FC, ReactElement, ReactNode } from 'react';
4
2
  import type { ErrorBlockStatus, ImageRecord } from '.';
3
+ import { NativeProps } from '../../utils/native-props';
5
4
  import './error-block.less';
6
5
  export declare type ErrorBlockProps = {
7
6
  status?: ErrorBlockStatus;
@@ -11,4 +10,4 @@ export declare type ErrorBlockProps = {
11
10
  fullPage?: boolean;
12
11
  children?: ReactNode;
13
12
  } & NativeProps<'--image-height' | '--image-height-full-page' | '--image-width' | '--image-width-full-page'>;
14
- export declare function createErrorBlock(imageRecord: ImageRecord): React.FC<ErrorBlockProps>;
13
+ export declare function createErrorBlock(imageRecord: ImageRecord): FC<ErrorBlockProps>;
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createErrorBlock = createErrorBlock;
7
- var _react = _interopRequireDefault(require("react"));
8
7
  var _classnames = _interopRequireDefault(require("classnames"));
9
- var _withDefaultProps = require("../../utils/with-default-props");
8
+ var _react = _interopRequireDefault(require("react"));
10
9
  var _nativeProps = require("../../utils/native-props");
10
+ var _withDefaultProps = require("../../utils/with-default-props");
11
11
  var _configProvider = require("../config-provider");
12
12
  require("./error-block.css");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }