antd-mobile 5.31.1 → 5.32.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 (170) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +281 -252
  2. package/2x/bundle/antd-mobile.cjs.js +9 -9
  3. package/2x/bundle/antd-mobile.es.development.js +282 -253
  4. package/2x/bundle/antd-mobile.es.js +4494 -4468
  5. package/2x/bundle/antd-mobile.umd.development.js +281 -252
  6. package/2x/bundle/antd-mobile.umd.js +9 -9
  7. package/2x/bundle/style.css +1 -0
  8. package/2x/cjs/components/calendar/convert.js +1 -6
  9. package/2x/cjs/components/capsule-tabs/capsule-tabs.js +2 -4
  10. package/2x/cjs/components/cascader/cascader.d.ts +2 -0
  11. package/2x/cjs/components/cascader/index.d.ts +1 -0
  12. package/2x/cjs/components/checkbox/checkbox.d.ts +2 -0
  13. package/2x/cjs/components/checkbox/checkbox.js +1 -0
  14. package/2x/cjs/components/checkbox/index.d.ts +1 -0
  15. package/2x/cjs/components/collapse/collapse.js +1 -1
  16. package/2x/cjs/components/date-picker/date-picker-date-utils.js +24 -36
  17. package/2x/cjs/components/date-picker/date-picker-week-utils.js +12 -18
  18. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +7 -5
  19. package/2x/cjs/components/date-picker-view/date-picker-view.js +8 -2
  20. package/2x/cjs/components/dropdown/dropdown.js +1 -1
  21. package/2x/cjs/components/footer/footer.js +17 -21
  22. package/2x/cjs/components/image-uploader/image-uploader.js +1 -3
  23. package/2x/cjs/components/input/input.js +5 -1
  24. package/2x/cjs/components/jumbo-tabs/jumbo-tabs.js +1 -1
  25. package/2x/cjs/components/modal/modal.js +11 -13
  26. package/2x/cjs/components/popover/popover.js +5 -7
  27. package/2x/cjs/components/popup/popup.js +3 -3
  28. package/2x/cjs/components/radio/radio.d.ts +1 -0
  29. package/2x/cjs/components/radio/radio.js +1 -0
  30. package/2x/cjs/components/rate/star.d.ts +1 -1
  31. package/2x/cjs/components/result/result.js +2 -2
  32. package/2x/cjs/components/safe-area/safe-area.d.ts +1 -1
  33. package/2x/cjs/components/safe-area/safe-area.js +1 -1
  34. package/2x/cjs/components/side-bar/side-bar.d.ts +1 -2
  35. package/2x/cjs/components/side-bar/side-bar.js +4 -2
  36. package/2x/cjs/components/skeleton/skeleton.d.ts +1 -1
  37. package/2x/cjs/components/stepper/stepper.js +1 -5
  38. package/2x/cjs/components/tab-bar/tab-bar.d.ts +1 -2
  39. package/2x/cjs/components/tab-bar/tab-bar.js +4 -2
  40. package/2x/cjs/components/tabs/tabs.js +1 -1
  41. package/2x/cjs/components/text-area/text-area.css +1 -0
  42. package/2x/cjs/components/tree-select/multiple.js +2 -6
  43. package/2x/cjs/components/virtual-input/virtual-input.js +1 -1
  44. package/2x/cjs/locales/ru-RU.d.ts +134 -0
  45. package/2x/cjs/locales/ru-RU.js +144 -0
  46. package/2x/es/components/calendar/convert.js +1 -6
  47. package/2x/es/components/capsule-tabs/capsule-tabs.js +3 -5
  48. package/2x/es/components/cascader/cascader.d.ts +2 -0
  49. package/2x/es/components/cascader/index.d.ts +1 -0
  50. package/2x/es/components/checkbox/checkbox.d.ts +2 -0
  51. package/2x/es/components/checkbox/checkbox.js +1 -0
  52. package/2x/es/components/checkbox/index.d.ts +1 -0
  53. package/2x/es/components/collapse/collapse.js +2 -2
  54. package/2x/es/components/date-picker/date-picker-date-utils.js +24 -36
  55. package/2x/es/components/date-picker/date-picker-week-utils.js +12 -18
  56. package/2x/es/components/date-picker-view/date-picker-view.d.ts +7 -5
  57. package/2x/es/components/date-picker-view/date-picker-view.js +8 -2
  58. package/2x/es/components/dropdown/dropdown.js +2 -2
  59. package/2x/es/components/footer/footer.js +17 -21
  60. package/2x/es/components/image-uploader/image-uploader.js +1 -3
  61. package/2x/es/components/input/input.js +5 -1
  62. package/2x/es/components/jumbo-tabs/jumbo-tabs.js +2 -2
  63. package/2x/es/components/modal/modal.js +11 -13
  64. package/2x/es/components/popover/popover.js +5 -7
  65. package/2x/es/components/popup/popup.js +3 -3
  66. package/2x/es/components/radio/radio.d.ts +1 -0
  67. package/2x/es/components/radio/radio.js +1 -0
  68. package/2x/es/components/rate/star.d.ts +1 -1
  69. package/2x/es/components/result/result.js +2 -2
  70. package/2x/es/components/safe-area/safe-area.d.ts +1 -1
  71. package/2x/es/components/safe-area/safe-area.js +1 -1
  72. package/2x/es/components/side-bar/side-bar.d.ts +1 -2
  73. package/2x/es/components/side-bar/side-bar.js +2 -2
  74. package/2x/es/components/skeleton/skeleton.d.ts +1 -1
  75. package/2x/es/components/stepper/stepper.js +1 -5
  76. package/2x/es/components/tab-bar/tab-bar.d.ts +1 -2
  77. package/2x/es/components/tab-bar/tab-bar.js +2 -2
  78. package/2x/es/components/tabs/tabs.js +2 -2
  79. package/2x/es/components/text-area/text-area.css +1 -0
  80. package/2x/es/components/tree-select/multiple.js +2 -6
  81. package/2x/es/components/virtual-input/virtual-input.js +1 -1
  82. package/2x/es/locales/ru-RU.d.ts +134 -0
  83. package/2x/es/locales/ru-RU.js +137 -0
  84. package/2x/package.json +2 -2
  85. package/bundle/antd-mobile.cjs.development.js +281 -252
  86. package/bundle/antd-mobile.cjs.js +9 -9
  87. package/bundle/antd-mobile.compatible.umd.js +1 -1
  88. package/bundle/antd-mobile.es.development.js +282 -253
  89. package/bundle/antd-mobile.es.js +4494 -4468
  90. package/bundle/antd-mobile.umd.development.js +281 -252
  91. package/bundle/antd-mobile.umd.js +9 -9
  92. package/bundle/style.css +1 -1
  93. package/cjs/components/calendar/convert.js +1 -6
  94. package/cjs/components/capsule-tabs/capsule-tabs.js +2 -4
  95. package/cjs/components/cascader/cascader.d.ts +2 -0
  96. package/cjs/components/cascader/index.d.ts +1 -0
  97. package/cjs/components/checkbox/checkbox.d.ts +2 -0
  98. package/cjs/components/checkbox/checkbox.js +1 -0
  99. package/cjs/components/checkbox/index.d.ts +1 -0
  100. package/cjs/components/collapse/collapse.js +1 -1
  101. package/cjs/components/date-picker/date-picker-date-utils.js +24 -36
  102. package/cjs/components/date-picker/date-picker-week-utils.js +12 -18
  103. package/cjs/components/date-picker-view/date-picker-view.d.ts +7 -5
  104. package/cjs/components/date-picker-view/date-picker-view.js +8 -2
  105. package/cjs/components/dropdown/dropdown.js +1 -1
  106. package/cjs/components/footer/footer.js +17 -21
  107. package/cjs/components/image-uploader/image-uploader.js +1 -3
  108. package/cjs/components/input/input.js +5 -1
  109. package/cjs/components/jumbo-tabs/jumbo-tabs.js +1 -1
  110. package/cjs/components/modal/modal.js +11 -13
  111. package/cjs/components/popover/popover.js +5 -7
  112. package/cjs/components/popup/popup.js +3 -3
  113. package/cjs/components/radio/radio.d.ts +1 -0
  114. package/cjs/components/radio/radio.js +1 -0
  115. package/cjs/components/rate/star.d.ts +1 -1
  116. package/cjs/components/result/result.js +2 -2
  117. package/cjs/components/safe-area/safe-area.d.ts +1 -1
  118. package/cjs/components/safe-area/safe-area.js +1 -1
  119. package/cjs/components/side-bar/side-bar.d.ts +1 -2
  120. package/cjs/components/side-bar/side-bar.js +4 -2
  121. package/cjs/components/skeleton/skeleton.d.ts +1 -1
  122. package/cjs/components/stepper/stepper.js +1 -5
  123. package/cjs/components/tab-bar/tab-bar.d.ts +1 -2
  124. package/cjs/components/tab-bar/tab-bar.js +4 -2
  125. package/cjs/components/tabs/tabs.js +1 -1
  126. package/cjs/components/text-area/text-area.css +1 -0
  127. package/cjs/components/tree-select/multiple.js +2 -6
  128. package/cjs/components/virtual-input/virtual-input.js +1 -1
  129. package/cjs/locales/ru-RU.d.ts +134 -0
  130. package/cjs/locales/ru-RU.js +144 -0
  131. package/es/components/calendar/convert.js +1 -6
  132. package/es/components/capsule-tabs/capsule-tabs.js +3 -5
  133. package/es/components/cascader/cascader.d.ts +2 -0
  134. package/es/components/cascader/index.d.ts +1 -0
  135. package/es/components/checkbox/checkbox.d.ts +2 -0
  136. package/es/components/checkbox/checkbox.js +1 -0
  137. package/es/components/checkbox/index.d.ts +1 -0
  138. package/es/components/collapse/collapse.js +2 -2
  139. package/es/components/date-picker/date-picker-date-utils.js +24 -36
  140. package/es/components/date-picker/date-picker-week-utils.js +12 -18
  141. package/es/components/date-picker-view/date-picker-view.d.ts +7 -5
  142. package/es/components/date-picker-view/date-picker-view.js +8 -2
  143. package/es/components/dropdown/dropdown.js +2 -2
  144. package/es/components/footer/footer.js +17 -21
  145. package/es/components/image-uploader/image-uploader.js +1 -3
  146. package/es/components/input/input.js +5 -1
  147. package/es/components/jumbo-tabs/jumbo-tabs.js +2 -2
  148. package/es/components/modal/modal.js +11 -13
  149. package/es/components/popover/popover.js +5 -7
  150. package/es/components/popup/popup.js +3 -3
  151. package/es/components/radio/radio.d.ts +1 -0
  152. package/es/components/radio/radio.js +1 -0
  153. package/es/components/rate/star.d.ts +1 -1
  154. package/es/components/result/result.js +2 -2
  155. package/es/components/safe-area/safe-area.d.ts +1 -1
  156. package/es/components/safe-area/safe-area.js +1 -1
  157. package/es/components/side-bar/side-bar.d.ts +1 -2
  158. package/es/components/side-bar/side-bar.js +2 -2
  159. package/es/components/skeleton/skeleton.d.ts +1 -1
  160. package/es/components/stepper/stepper.js +1 -5
  161. package/es/components/tab-bar/tab-bar.d.ts +1 -2
  162. package/es/components/tab-bar/tab-bar.js +2 -2
  163. package/es/components/tabs/tabs.js +2 -2
  164. package/es/components/text-area/text-area.css +1 -0
  165. package/es/components/tree-select/multiple.js +2 -6
  166. package/es/components/virtual-input/virtual-input.js +1 -1
  167. package/es/locales/ru-RU.d.ts +134 -0
  168. package/es/locales/ru-RU.js +137 -0
  169. package/package.json +2 -2
  170. package/umd/antd-mobile.js +1 -1
@@ -38,7 +38,7 @@ const Tabs = p => {
38
38
  let firstActiveKey = null;
39
39
  const panes = [];
40
40
  (0, _traverseReactNode.traverseReactNode)(props.children, (child, index) => {
41
- if (!_react.default.isValidElement(child)) return;
41
+ if (!(0, _react.isValidElement)(child)) return;
42
42
  const key = child.key;
43
43
  if (typeof key !== 'string') return;
44
44
  if (index === 0) {
@@ -5,6 +5,7 @@
5
5
  --disabled-color: var(--adm-color-weak);
6
6
  --text-align: left;
7
7
  --count-text-align: right;
8
+ position: relative;
8
9
  width: 100%;
9
10
  max-width: 100%;
10
11
  max-height: 100%;
@@ -233,13 +233,9 @@ const Multiple = p => {
233
233
  }
234
234
  const isLeaf = deep === index + 1;
235
235
  if (isLeaf) {
236
- return _react.default.createElement(_react.default.Fragment, null, renderSelectAllLeafItem(columnOptions, index), columnOptions.map(option => {
237
- return renderLeafItem(option);
238
- }));
236
+ return _react.default.createElement(_react.default.Fragment, null, renderSelectAllLeafItem(columnOptions, index), columnOptions.map(option => renderLeafItem(option)));
239
237
  }
240
- return _react.default.createElement(_react.default.Fragment, null, renderSelectAllItem(columnOptions, index), columnOptions.map(option => {
241
- return renderItem(option);
242
- }));
238
+ return _react.default.createElement(_react.default.Fragment, null, renderSelectAllItem(columnOptions, index), columnOptions.map(option => renderItem(option)));
243
239
  };
244
240
  const renderColumns = () => {
245
241
  var _a;
@@ -115,7 +115,7 @@ const VirtualInput = (0, _react.forwardRef)((p, ref) => {
115
115
  },
116
116
  role: 'button',
117
117
  "aria-label": locale.Input.clear
118
- }, _react.default.createElement(_antdMobileIcons.CloseCircleFill, null)), !value && _react.default.createElement("div", {
118
+ }, _react.default.createElement(_antdMobileIcons.CloseCircleFill, null)), [undefined, null, ''].includes(value) && _react.default.createElement("div", {
119
119
  className: `${classPrefix}-placeholder`
120
120
  }, props.placeholder), keyboardElement));
121
121
  });
@@ -0,0 +1,134 @@
1
+ declare const ruRU: {
2
+ locale: string;
3
+ common: {
4
+ confirm: string;
5
+ cancel: string;
6
+ loading: string;
7
+ close: string;
8
+ };
9
+ Calendar: {
10
+ markItems: string[];
11
+ renderYearAndMonth: (year: number, month: number) => string;
12
+ };
13
+ Cascader: {
14
+ placeholder: string;
15
+ };
16
+ Dialog: {
17
+ ok: string;
18
+ };
19
+ DatePicker: {
20
+ tillNow: string;
21
+ };
22
+ ErrorBlock: {
23
+ default: {
24
+ title: string;
25
+ description: string;
26
+ };
27
+ busy: {
28
+ title: string;
29
+ description: string;
30
+ };
31
+ disconnected: {
32
+ title: string;
33
+ description: string;
34
+ };
35
+ empty: {
36
+ title: string;
37
+ description: string;
38
+ };
39
+ };
40
+ Form: {
41
+ required: string;
42
+ optional: string;
43
+ defaultValidateMessages: {
44
+ default: string;
45
+ required: string;
46
+ enum: string;
47
+ whitespace: string;
48
+ date: {
49
+ format: string;
50
+ parse: string;
51
+ invalid: string;
52
+ };
53
+ types: {
54
+ string: string;
55
+ method: string;
56
+ array: string;
57
+ object: string;
58
+ number: string;
59
+ date: string;
60
+ boolean: string;
61
+ integer: string;
62
+ float: string;
63
+ regexp: string;
64
+ email: string;
65
+ url: string;
66
+ hex: string;
67
+ };
68
+ string: {
69
+ len: string;
70
+ min: string;
71
+ max: string;
72
+ range: string;
73
+ };
74
+ number: {
75
+ len: string;
76
+ min: string;
77
+ max: string;
78
+ range: string;
79
+ };
80
+ array: {
81
+ len: string;
82
+ min: string;
83
+ max: string;
84
+ range: string;
85
+ };
86
+ pattern: {
87
+ mismatch: string;
88
+ };
89
+ };
90
+ };
91
+ ImageUploader: {
92
+ uploading: string;
93
+ upload: string;
94
+ };
95
+ InfiniteScroll: {
96
+ noMore: string;
97
+ failedToLoad: string;
98
+ retry: string;
99
+ };
100
+ Input: {
101
+ clear: string;
102
+ };
103
+ Mask: {
104
+ name: string;
105
+ };
106
+ Modal: {
107
+ ok: string;
108
+ };
109
+ PasscodeInput: {
110
+ name: string;
111
+ };
112
+ PullToRefresh: {
113
+ pulling: string;
114
+ canRelease: string;
115
+ complete: string;
116
+ };
117
+ SearchBar: {
118
+ name: string;
119
+ };
120
+ Slider: {
121
+ name: string;
122
+ };
123
+ Stepper: {
124
+ decrease: string;
125
+ increase: string;
126
+ };
127
+ Switch: {
128
+ name: string;
129
+ };
130
+ Selector: {
131
+ name: string;
132
+ };
133
+ };
134
+ export default ruRU;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _mergeLocale = require("../utils/merge-locale");
8
+ var _base = require("./base");
9
+ const typeTemplate = '${label} не соответствует типу ${type}';
10
+ const ruRU = (0, _mergeLocale.mergeLocale)(_base.base, {
11
+ locale: 'ru',
12
+ common: {
13
+ confirm: 'Подтвердить',
14
+ cancel: 'Отменить',
15
+ loading: 'Загрузка',
16
+ close: 'Закрыть'
17
+ },
18
+ Calendar: {
19
+ markItems: ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'],
20
+ renderYearAndMonth: (year, month) => `${year}/${month}`
21
+ },
22
+ Cascader: {
23
+ placeholder: 'Выбор'
24
+ },
25
+ Dialog: {
26
+ ok: 'ОК'
27
+ },
28
+ DatePicker: {
29
+ tillNow: 'До настоящего времени'
30
+ },
31
+ ErrorBlock: {
32
+ default: {
33
+ title: 'Упс! Что-то пошло не так',
34
+ description: 'Пожалуйста, подождите минуту и повторите попытку'
35
+ },
36
+ busy: {
37
+ title: 'Упс, не загружается',
38
+ description: 'Попробуйте обновить страницу'
39
+ },
40
+ disconnected: {
41
+ title: 'Сеть занята',
42
+ description: 'Попробуйте обновить страницу'
43
+ },
44
+ empty: {
45
+ title: 'Хм, не могу найти...',
46
+ description: 'Хотите попробовать другой запрос?'
47
+ }
48
+ },
49
+ Form: {
50
+ required: 'Обязательное',
51
+ optional: 'Опциональное',
52
+ defaultValidateMessages: {
53
+ default: 'Ошибка валидации поля ${label}',
54
+ required: 'Пожалуйста, заполните поле ${label}',
55
+ enum: 'Значение ${label} должно быть одним из [${enum}]',
56
+ whitespace: '${label} не может быть пустым символом',
57
+ date: {
58
+ format: '${label} имеет некорректный формат даты',
59
+ parse: '${label} не может быть конвертировано в дату',
60
+ invalid: '${label} не является валидной датой'
61
+ },
62
+ types: {
63
+ string: typeTemplate,
64
+ method: typeTemplate,
65
+ array: typeTemplate,
66
+ object: typeTemplate,
67
+ number: typeTemplate,
68
+ date: typeTemplate,
69
+ boolean: typeTemplate,
70
+ integer: typeTemplate,
71
+ float: typeTemplate,
72
+ regexp: typeTemplate,
73
+ email: typeTemplate,
74
+ url: typeTemplate,
75
+ hex: typeTemplate
76
+ },
77
+ string: {
78
+ len: 'Длина ${label} должна быть ${len} символов(-а)',
79
+ min: 'Длина ${label} должна быть не меньше ${min} символов(-а)',
80
+ max: 'Длина ${label} должна быть не больше ${max} символов(-а)',
81
+ range: 'Длина ${label} должна быть в диапазоне от ${min} до ${max} символов(-а)'
82
+ },
83
+ number: {
84
+ len: '${label} должно быть равно ${len}',
85
+ min: '${label} должно быть значением не меньше ${min}',
86
+ max: '${label} должно быть значением не больше ${max}',
87
+ range: '${label} должно быть значением в диапазоне от ${min} до ${max}'
88
+ },
89
+ array: {
90
+ len: 'Размер ${label} должен быть ${len}',
91
+ min: 'Размер ${label} должен быть не меньше ${min}',
92
+ max: 'Размер ${label} должен быть не больше ${max}',
93
+ range: 'Размер ${label} должен быть в диапазоне от ${min} до ${max}'
94
+ },
95
+ pattern: {
96
+ mismatch: '${label} не соответствует шаблону ${pattern}'
97
+ }
98
+ }
99
+ },
100
+ ImageUploader: {
101
+ uploading: 'Выгружается...',
102
+ upload: 'Выгрузить'
103
+ },
104
+ InfiniteScroll: {
105
+ noMore: 'Больше нет',
106
+ failedToLoad: 'Ошибка загрузки',
107
+ retry: 'Повторить'
108
+ },
109
+ Input: {
110
+ clear: 'очистить'
111
+ },
112
+ Mask: {
113
+ name: 'Маска'
114
+ },
115
+ Modal: {
116
+ ok: 'ОК'
117
+ },
118
+ PasscodeInput: {
119
+ name: 'Ввод пароля'
120
+ },
121
+ PullToRefresh: {
122
+ pulling: 'Прокрутите вниз, чтобы обновления',
123
+ canRelease: 'Отпустите, чтобы немедленно обновить',
124
+ complete: 'Обновление успешно'
125
+ },
126
+ SearchBar: {
127
+ name: 'Панель поиска'
128
+ },
129
+ Slider: {
130
+ name: 'Слайдер'
131
+ },
132
+ Stepper: {
133
+ decrease: 'вычесть',
134
+ increase: 'прибавить'
135
+ },
136
+ Switch: {
137
+ name: 'Переключатель'
138
+ },
139
+ Selector: {
140
+ name: 'Селектор'
141
+ }
142
+ });
143
+ var _default = ruRU;
144
+ exports.default = _default;
@@ -1,11 +1,6 @@
1
1
  import dayjs from 'dayjs';
2
2
  export function convertValueToRange(selectionMode, value) {
3
- if (selectionMode === undefined) {
4
- return null;
5
- }
6
- if (value === null) {
7
- return null;
8
- }
3
+ if (selectionMode === undefined || value === null) return null;
9
4
  if (Array.isArray(value)) {
10
5
  return value;
11
6
  }
@@ -1,4 +1,4 @@
1
- import React, { useRef } from 'react';
1
+ import React, { isValidElement, useRef } from 'react';
2
2
  import classNames from 'classnames';
3
3
  import { animated } from '@react-spring/web';
4
4
  import { withNativeProps } from '../../utils/native-props';
@@ -9,9 +9,7 @@ import ScrollMask from '../scroll-mask';
9
9
  import { ShouldRender } from '../../utils/should-render';
10
10
  import { traverseReactNode } from '../../utils/traverse-react-node';
11
11
  const classPrefix = `adm-capsule-tabs`;
12
- export const CapsuleTab = () => {
13
- return null;
14
- };
12
+ export const CapsuleTab = () => null;
15
13
  export const CapsuleTabs = props => {
16
14
  var _a;
17
15
  const tabListContainerRef = useRef(null);
@@ -20,7 +18,7 @@ export const CapsuleTabs = props => {
20
18
  let firstActiveKey = null;
21
19
  const panes = [];
22
20
  traverseReactNode(props.children, (child, index) => {
23
- if (!React.isValidElement(child)) return;
21
+ if (!isValidElement(child)) return;
24
22
  const key = child.key;
25
23
  if (typeof key !== 'string') return;
26
24
  if (index === 0) {
@@ -21,6 +21,7 @@ export declare type CascaderProps = {
21
21
  title?: ReactNode;
22
22
  confirmText?: ReactNode;
23
23
  cancelText?: ReactNode;
24
+ loading?: boolean;
24
25
  children?: (items: (CascaderOption | null)[], actions: CascaderActions) => ReactNode;
25
26
  onTabsChange?: (index: number) => void;
26
27
  activeIcon?: ReactNode;
@@ -38,6 +39,7 @@ export declare const Cascader: React.ForwardRefExoticComponent<{
38
39
  title?: ReactNode;
39
40
  confirmText?: ReactNode;
40
41
  cancelText?: ReactNode;
42
+ loading?: boolean | undefined;
41
43
  children?: ((items: (CascaderOption | null)[], actions: CascaderActions) => ReactNode) | undefined;
42
44
  onTabsChange?: ((index: number) => void) | undefined;
43
45
  activeIcon?: ReactNode;
@@ -15,6 +15,7 @@ declare const _default: import("react").ForwardRefExoticComponent<{
15
15
  title?: import("react").ReactNode;
16
16
  confirmText?: import("react").ReactNode;
17
17
  cancelText?: import("react").ReactNode;
18
+ loading?: boolean | undefined;
18
19
  children?: ((items: (import("../cascader-view").CascaderOption | null)[], actions: import("./cascader").CascaderActions) => import("react").ReactNode) | undefined;
19
20
  onTabsChange?: ((index: number) => void) | undefined;
20
21
  activeIcon?: import("react").ReactNode;
@@ -12,6 +12,7 @@ export declare type CheckboxProps = {
12
12
  id?: string;
13
13
  icon?: (checked: boolean, indeterminate: boolean) => React.ReactNode;
14
14
  children?: React.ReactNode;
15
+ onClick?: (event: React.MouseEvent<HTMLLabelElement, MouseEvent>) => void;
15
16
  } & NativeProps<'--icon-size' | '--font-size' | '--gap'>;
16
17
  export declare type CheckboxRef = {
17
18
  check: () => void;
@@ -29,6 +30,7 @@ export declare const Checkbox: React.ForwardRefExoticComponent<{
29
30
  id?: string | undefined;
30
31
  icon?: ((checked: boolean, indeterminate: boolean) => React.ReactNode) | undefined;
31
32
  children?: React.ReactNode;
33
+ onClick?: ((event: React.MouseEvent<HTMLLabelElement, MouseEvent>) => void) | undefined;
32
34
  } & {
33
35
  className?: string | undefined;
34
36
  style?: (React.CSSProperties & Partial<Record<"--font-size" | "--icon-size" | "--gap", string>>) | undefined;
@@ -69,6 +69,7 @@ export const Checkbox = forwardRef((p, ref) => {
69
69
  }, props.indeterminate ? React.createElement(IndeterminateIcon, null) : checked && React.createElement(CheckIcon, null));
70
70
  };
71
71
  return withNativeProps(props, React.createElement("label", {
72
+ onClick: props.onClick,
72
73
  className: classNames(classPrefix, {
73
74
  [`${classPrefix}-checked`]: checked && !props.indeterminate,
74
75
  [`${classPrefix}-indeterminate`]: props.indeterminate,
@@ -12,6 +12,7 @@ declare const _default: import("react").ForwardRefExoticComponent<{
12
12
  id?: string | undefined;
13
13
  icon?: ((checked: boolean, indeterminate: boolean) => import("react").ReactNode) | undefined;
14
14
  children?: import("react").ReactNode;
15
+ onClick?: ((event: import("react").MouseEvent<HTMLLabelElement, MouseEvent>) => void) | undefined;
15
16
  } & {
16
17
  className?: string | undefined;
17
18
  style?: (import("react").CSSProperties & Partial<Record<"--font-size" | "--icon-size" | "--gap", string>>) | undefined;
@@ -1,4 +1,4 @@
1
- import React, { useRef } from 'react';
1
+ import React, { isValidElement, useRef } from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import List from '../list';
4
4
  import { DownOutline } from 'antd-mobile-icons';
@@ -81,7 +81,7 @@ export const Collapse = props => {
81
81
  var _a;
82
82
  const panels = [];
83
83
  traverseReactNode(props.children, child => {
84
- if (!React.isValidElement(child)) return;
84
+ if (!isValidElement(child)) return;
85
85
  const key = child.key;
86
86
  if (typeof key !== 'string') return;
87
87
  panels.push(child);
@@ -66,67 +66,55 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
66
66
  const lower = minYear;
67
67
  const upper = maxYear;
68
68
  const years = generateColumn(lower, upper, 'year');
69
- ret.push(years.map(v => {
70
- return {
71
- label: renderLabel('year', v),
72
- value: v.toString()
73
- };
74
- }));
69
+ ret.push(years.map(v => ({
70
+ label: renderLabel('year', v),
71
+ value: v.toString()
72
+ })));
75
73
  }
76
74
  if (rank >= precisionRankRecord.month) {
77
75
  const lower = isInMinYear ? minMonth : 1;
78
76
  const upper = isInMaxYear ? maxMonth : 12;
79
77
  const months = generateColumn(lower, upper, 'month');
80
- ret.push(months.map(v => {
81
- return {
82
- label: renderLabel('month', v),
83
- value: v.toString()
84
- };
85
- }));
78
+ ret.push(months.map(v => ({
79
+ label: renderLabel('month', v),
80
+ value: v.toString()
81
+ })));
86
82
  }
87
83
  if (rank >= precisionRankRecord.day) {
88
84
  const lower = isInMinMonth ? minDay : 1;
89
85
  const upper = isInMaxMonth ? maxDay : firstDayInSelectedMonth.daysInMonth();
90
86
  const days = generateColumn(lower, upper, 'day');
91
- ret.push(days.map(v => {
92
- return {
93
- label: renderLabel('day', v),
94
- value: v.toString()
95
- };
96
- }));
87
+ ret.push(days.map(v => ({
88
+ label: renderLabel('day', v),
89
+ value: v.toString()
90
+ })));
97
91
  }
98
92
  if (rank >= precisionRankRecord.hour) {
99
93
  const lower = isInMinDay ? minHour : 0;
100
94
  const upper = isInMaxDay ? maxHour : 23;
101
95
  const hours = generateColumn(lower, upper, 'hour');
102
- ret.push(hours.map(v => {
103
- return {
104
- label: renderLabel('hour', v),
105
- value: v.toString()
106
- };
107
- }));
96
+ ret.push(hours.map(v => ({
97
+ label: renderLabel('hour', v),
98
+ value: v.toString()
99
+ })));
108
100
  }
109
101
  if (rank >= precisionRankRecord.minute) {
110
102
  const lower = isInMinHour ? minMinute : 0;
111
103
  const upper = isInMaxHour ? maxMinute : 59;
112
104
  const minutes = generateColumn(lower, upper, 'minute');
113
- ret.push(minutes.map(v => {
114
- return {
115
- label: renderLabel('minute', v),
116
- value: v.toString()
117
- };
118
- }));
105
+ ret.push(minutes.map(v => ({
106
+ label: renderLabel('minute', v),
107
+ value: v.toString()
108
+ })));
119
109
  }
120
110
  if (rank >= precisionRankRecord.second) {
121
111
  const lower = isInMinMinute ? minSecond : 0;
122
112
  const upper = isInMaxMinute ? maxSecond : 59;
123
113
  const seconds = generateColumn(lower, upper, 'second');
124
- ret.push(seconds.map(v => {
125
- return {
126
- label: renderLabel('second', v),
127
- value: v.toString()
128
- };
129
- }));
114
+ ret.push(seconds.map(v => ({
115
+ label: renderLabel('second', v),
116
+ value: v.toString()
117
+ })));
130
118
  }
131
119
  // Till Now
132
120
  if (tillNow) {
@@ -49,34 +49,28 @@ export function generateDatePickerColumns(selected, min, max, precision, renderL
49
49
  const lower = minYear;
50
50
  const upper = maxYear;
51
51
  const years = generateColumn(lower, upper, 'year');
52
- ret.push(years.map(v => {
53
- return {
54
- label: renderLabel('year', v),
55
- value: v.toString()
56
- };
57
- }));
52
+ ret.push(years.map(v => ({
53
+ label: renderLabel('year', v),
54
+ value: v.toString()
55
+ })));
58
56
  }
59
57
  if (rank >= precisionRankRecord.week) {
60
58
  const lower = isInMinYear ? minWeek : 1;
61
59
  const upper = isInMaxYear ? maxWeek : selectedYearWeeks;
62
60
  const weeks = generateColumn(lower, upper, 'week');
63
- ret.push(weeks.map(v => {
64
- return {
65
- label: renderLabel('week', v),
66
- value: v.toString()
67
- };
68
- }));
61
+ ret.push(weeks.map(v => ({
62
+ label: renderLabel('week', v),
63
+ value: v.toString()
64
+ })));
69
65
  }
70
66
  if (rank >= precisionRankRecord['week-day']) {
71
67
  const lower = isInMinWeek ? minWeekday : 1;
72
68
  const upper = isInMaxWeek ? maxWeekday : 7;
73
69
  const weeks = generateColumn(lower, upper, 'week-day');
74
- ret.push(weeks.map(v => {
75
- return {
76
- label: renderLabel('week-day', v),
77
- value: v.toString()
78
- };
79
- }));
70
+ ret.push(weeks.map(v => ({
71
+ label: renderLabel('week-day', v),
72
+ value: v.toString()
73
+ })));
80
74
  }
81
75
  return ret;
82
76
  }
@@ -2,15 +2,17 @@ import { FC, ReactNode } from 'react';
2
2
  import type { PickerViewProps } from '../picker-view';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  import type { Precision, DatePickerFilter } from '../date-picker/date-picker-utils';
5
+ import type { PickerDate } from '../date-picker/util';
5
6
  export declare type RenderLabel = (type: Precision | 'now', data: number) => ReactNode;
6
7
  export declare type DatePickerViewProps = Pick<PickerViewProps, 'style' | 'mouseWheel' | 'loading' | 'loadingContent'> & {
7
- value?: Date;
8
- defaultValue?: Date;
9
- onChange?: (value: Date) => void;
10
- min?: Date;
11
- max?: Date;
8
+ value?: PickerDate;
9
+ defaultValue?: PickerDate;
10
+ onChange?: (value: PickerDate) => void;
11
+ min?: PickerDate;
12
+ max?: PickerDate;
12
13
  precision?: Precision;
13
14
  renderLabel?: RenderLabel;
14
15
  filter?: DatePickerFilter;
16
+ tillNow?: boolean;
15
17
  } & NativeProps;
16
18
  export declare const DatePickerView: FC<DatePickerViewProps>;
@@ -5,6 +5,7 @@ import { mergeProps } from '../../utils/with-default-props';
5
5
  import { usePropsValue } from '../../utils/use-props-value';
6
6
  import { generateDatePickerColumns, convertDateToStringArray, convertStringArrayToDate } from '../date-picker/date-picker-utils';
7
7
  import useRenderLabel from './useRenderLabel';
8
+ import { TILL_NOW } from '../date-picker/util';
8
9
  const thisYear = new Date().getFullYear();
9
10
  const defaultProps = {
10
11
  min: new Date(new Date().setFullYear(thisYear - 10)),
@@ -22,7 +23,12 @@ export const DatePickerView = p => {
22
23
  defaultValue: (_a = props.defaultValue) !== null && _a !== void 0 ? _a : null
23
24
  });
24
25
  const mergedRenderLabel = useRenderLabel(renderLabel);
25
- const pickerValue = useMemo(() => convertDateToStringArray(value, props.precision), [value, props.precision]);
26
+ const pickerValue = useMemo(() => {
27
+ if (value === null || value === void 0 ? void 0 : value.tillNow) {
28
+ return [TILL_NOW, null, null];
29
+ }
30
+ return convertDateToStringArray(value, props.precision);
31
+ }, [value, props.precision]);
26
32
  const onChange = useCallback(val => {
27
33
  var _a;
28
34
  const date = convertStringArrayToDate(val, props.precision);
@@ -32,7 +38,7 @@ export const DatePickerView = p => {
32
38
  }
33
39
  }, [props.onChange, props.precision]);
34
40
  return withNativeProps(props, React.createElement(PickerView, {
35
- columns: selected => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter),
41
+ columns: selected => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter, props.tillNow),
36
42
  loading: props.loading,
37
43
  loadingContent: props.loadingContent,
38
44
  value: pickerValue,
@@ -1,6 +1,6 @@
1
1
  import { useClickAway } from 'ahooks';
2
2
  import classNames from 'classnames';
3
- import React, { cloneElement, useEffect, useRef, useState, forwardRef, useImperativeHandle } from 'react';
3
+ import React, { cloneElement, useEffect, useRef, useState, forwardRef, useImperativeHandle, isValidElement } from 'react';
4
4
  import Popup from '../popup';
5
5
  import { ItemChildrenWrap } from './item';
6
6
  import { withNativeProps } from '../../utils/native-props';
@@ -49,7 +49,7 @@ const Dropdown = forwardRef((p, ref) => {
49
49
  let popupForceRender = false;
50
50
  const items = [];
51
51
  const navs = React.Children.map(props.children, child => {
52
- if (React.isValidElement(child)) {
52
+ if (isValidElement(child)) {
53
53
  const childProps = Object.assign(Object.assign({}, child.props), {
54
54
  onClick: () => {
55
55
  changeActive(child.key);