@nutui/nutui-react 2.0.21 → 2.0.23-beta.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 (107) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/esm/ActionSheet/style/style.css +1 -1
  3. package/dist/esm/ActionSheet.js +4 -0
  4. package/dist/esm/Address/style/style.css +1 -1
  5. package/dist/esm/Address.js +4 -0
  6. package/dist/esm/Calendar/style/style.css +1 -1
  7. package/dist/esm/CalendarCard/style/css.js +1 -0
  8. package/dist/esm/CalendarCard/style/index.js +2 -0
  9. package/dist/esm/CalendarCard/style/style.css +1 -0
  10. package/dist/esm/CalendarCard.js +513 -0
  11. package/dist/esm/CalendarItem.js +2 -0
  12. package/dist/esm/Cascader/style/style.css +1 -1
  13. package/dist/esm/Cascader.js +4 -0
  14. package/dist/esm/DatePicker/style/style.css +1 -1
  15. package/dist/esm/DatePicker.js +4 -4
  16. package/dist/esm/Dialog/style/style.css +1 -1
  17. package/dist/esm/Dialog.js +4 -0
  18. package/dist/esm/FixedNav/style/style.css +1 -1
  19. package/dist/esm/Image.js +24 -10
  20. package/dist/esm/ImagePreview/style/style.css +1 -1
  21. package/dist/esm/Input.js +1 -1
  22. package/dist/esm/Menu/style/style.css +1 -1
  23. package/dist/esm/Menu.js +4 -2
  24. package/dist/esm/MenuItem/style/style.css +1 -1
  25. package/dist/esm/MenuItem.js +4 -2
  26. package/dist/esm/NoticeBar/style/style.css +1 -1
  27. package/dist/esm/NoticeBar.js +9 -6
  28. package/dist/esm/NumberKeyboard/style/style.css +1 -1
  29. package/dist/esm/Overlay/style/style.css +1 -1
  30. package/dist/esm/Overlay.js +4 -0
  31. package/dist/esm/Picker/style/style.css +1 -1
  32. package/dist/esm/Picker.js +32 -9
  33. package/dist/esm/Popover/style/style.css +1 -1
  34. package/dist/esm/Popup/style/style.css +1 -1
  35. package/dist/esm/Popup.js +4 -0
  36. package/dist/esm/PullToRefresh.js +2 -14
  37. package/dist/esm/Range.js +2 -2
  38. package/dist/esm/ShortPassword/style/style.css +1 -1
  39. package/dist/esm/SideNavBar/style/style.css +1 -1
  40. package/dist/esm/Swipe.js +8 -5
  41. package/dist/esm/TabPane/style/style.css +1 -1
  42. package/dist/esm/Tabs/style/style.css +1 -1
  43. package/dist/esm/TimeSelect/style/style.css +1 -1
  44. package/dist/esm/Toast.js +4 -0
  45. package/dist/esm/Tour/style/style.css +1 -1
  46. package/dist/esm/nutui-react.es.js +136 -134
  47. package/dist/esm/overlay2.js +76 -15
  48. package/dist/esm/popup2.js +5 -4
  49. package/dist/esm/supports-passive.js +17 -0
  50. package/dist/esm/types/src/packages/calendarcard/__tests__/calendarcard.spec.d.ts +1 -0
  51. package/dist/esm/types/src/packages/calendarcard/calendarcard.d.ts +24 -0
  52. package/dist/esm/types/src/packages/calendarcard/calendarcard.taro.d.ts +24 -0
  53. package/dist/esm/types/src/packages/calendarcard/demo.d.ts +3 -0
  54. package/dist/esm/types/src/packages/calendarcard/demo.taro.d.ts +3 -0
  55. package/dist/esm/types/src/packages/calendarcard/icon.d.ts +5 -0
  56. package/dist/esm/types/src/packages/calendarcard/icon.taro.d.ts +5 -0
  57. package/dist/esm/types/src/packages/calendarcard/index.d.ts +3 -0
  58. package/dist/esm/types/src/packages/calendarcard/index.taro.d.ts +3 -0
  59. package/dist/esm/types/src/packages/calendarcard/types.d.ts +11 -0
  60. package/dist/esm/types/src/packages/calendarcard/utils.d.ts +19 -0
  61. package/dist/esm/types/src/packages/datepicker/datepicker.d.ts +2 -1
  62. package/dist/esm/types/src/packages/datepicker/datepicker.taro.d.ts +2 -1
  63. package/dist/esm/types/src/packages/image/demo.taro.d.ts +0 -1
  64. package/dist/esm/types/src/packages/nutui.react.build.d.ts +2 -1
  65. package/dist/esm/types/src/packages/nutui.react.d.ts +3 -1
  66. package/dist/esm/types/src/packages/nutui.react.scss.d.ts +1 -0
  67. package/dist/esm/types/src/packages/nutui.react.taro.d.ts +3 -1
  68. package/dist/esm/types/src/packages/nutui.react.taro.scss.d.ts +1 -0
  69. package/dist/esm/types/src/packages/nutui.taro.react.build.d.ts +2 -1
  70. package/dist/esm/types/src/packages/picker/picker.d.ts +2 -0
  71. package/dist/esm/types/src/packages/picker/picker.taro.d.ts +2 -0
  72. package/dist/esm/types/src/utils/use-lock-scoll-taro.d.ts +2 -0
  73. package/dist/esm/types/src/utils/use-lock-scroll.d.ts +2 -0
  74. package/dist/esm/types/src/utils/use-props-value.d.ts +1 -1
  75. package/dist/esm/types/src/utils/use-touch.d.ts +8 -9
  76. package/dist/esm/use-props-value.js +3 -2
  77. package/dist/esm/use-touch.js +23 -32
  78. package/dist/locales/base.js +1 -1
  79. package/dist/locales/en-US.js +1 -1
  80. package/dist/locales/id-ID.js +1 -1
  81. package/dist/locales/tr-TR.js +1 -1
  82. package/dist/locales/zh-CN.js +1 -1
  83. package/dist/locales/zh-TW.js +1 -1
  84. package/dist/locales/zh-UG.js +1 -1
  85. package/dist/nutui.react.es.js +733 -228
  86. package/dist/nutui.react.umd.js +733 -228
  87. package/dist/packages/calendarcard/calendarcard.scss +104 -0
  88. package/dist/packages/noticebar/noticebar.scss +1 -0
  89. package/dist/packages/overlay/overlay.scss +5 -0
  90. package/dist/packages/tabpane/tabpane.scss +0 -8
  91. package/dist/packages/tabs/tabs.scss +6 -8
  92. package/dist/style.css +1 -1
  93. package/dist/style.mjs +1 -1
  94. package/dist/styles/themes/default.scss +1 -0
  95. package/dist/types/index.d.ts +3 -1
  96. package/dist/types/packages/calendarcard/calendarcard.d.ts +76 -0
  97. package/dist/types/packages/calendarcard/icon.d.ts +5 -0
  98. package/dist/types/packages/calendarcard/index.d.ts +3 -0
  99. package/dist/types/packages/calendarcard/types.d.ts +11 -0
  100. package/dist/types/packages/calendarcard/utils.d.ts +19 -0
  101. package/dist/types/packages/datepicker/datepicker.d.ts +6 -1
  102. package/dist/types/packages/picker/picker.d.ts +6 -0
  103. package/dist/types/utils/use-lock-scroll.d.ts +2 -0
  104. package/dist/types/utils/use-props-value.d.ts +1 -1
  105. package/dist/types/utils/use-touch.d.ts +8 -9
  106. package/package.json +1 -1
  107. package/dist/esm/types/src/packages/dialog/dialogwrap.taro.d.ts +0 -14
@@ -26,167 +26,169 @@ import { default as default26 } from "./Tabs.js";
26
26
  import { default as default27 } from "./Address.js";
27
27
  import { default as default28 } from "./Calendar.js";
28
28
  import { default as default29 } from "./CalendarItem.js";
29
- import { default as default30 } from "./Cascader.js";
30
- import { default as default31 } from "./Checkbox.js";
31
- import { default as default32 } from "./CheckboxGroup.js";
32
- import { default as default33 } from "./DatePicker.js";
33
- import { default as default34 } from "./Form.js";
34
- import { default as default35 } from "./FormItem.js";
35
- import { default as default36 } from "./Input.js";
36
- import { default as default37 } from "./InputNumber.js";
37
- import { default as default38 } from "./Menu.js";
38
- import { default as default39 } from "./MenuItem.js";
39
- import { default as default40 } from "./NumberKeyboard.js";
40
- import { default as default41 } from "./Picker.js";
41
- import { default as default42 } from "./Radio.js";
42
- import { default as default43 } from "./RadioGroup.js";
43
- import { default as default44 } from "./Range.js";
44
- import { default as default45 } from "./Rate.js";
45
- import { default as default46 } from "./SearchBar.js";
46
- import { default as default47 } from "./ShortPassword.js";
47
- import { default as default48 } from "./Signature.js";
48
- import { default as default49 } from "./Switch.js";
49
- import { default as default50 } from "./TextArea.js";
50
- import { default as default51 } from "./Uploader.js";
51
- import { default as default52 } from "./ActionSheet.js";
52
- import { default as default53 } from "./Badge.js";
53
- import { default as default54 } from "./Dialog.js";
54
- import { default as default55 } from "./Drag.js";
55
- import { default as default56 } from "./Empty.js";
56
- import { default as default57 } from "./InfiniteLoading.js";
57
- import { default as default58 } from "./Loading.js";
58
- import { default as default59 } from "./NoticeBar.js";
59
- import { default as default60 } from "./Notify.js";
60
- import { default as default61 } from "./Popover.js";
61
- import { default as default62 } from "./Popup.js";
62
- import { default as default63 } from "./PullToRefresh.js";
63
- import { default as default64 } from "./Skeleton.js";
64
- import { default as default65 } from "./Swipe.js";
65
- import { default as default66 } from "./Toast.js";
66
- import { default as default67 } from "./Animate.js";
67
- import { default as default68 } from "./AnimatingNumbers.js";
68
- import { default as default69 } from "./Audio.js";
69
- import { default as default70 } from "./Avatar.js";
70
- import { default as default71 } from "./AvatarGroup.js";
71
- import { default as default72 } from "./CircleProgress.js";
72
- import { default as default73 } from "./Collapse.js";
73
- import { default as default74 } from "./CollapseItem.js";
74
- import { default as default75 } from "./CountDown.js";
75
- import { default as default76 } from "./Ellipsis.js";
76
- import { default as default77 } from "./ImagePreview.js";
77
- import { default as default78 } from "./Indicator.js";
78
- import { default as default79 } from "./Pagination.js";
79
- import { default as default80 } from "./Price.js";
80
- import { default as default81 } from "./Progress.js";
81
- import { default as default82 } from "./Step.js";
82
- import { default as default83 } from "./Steps.js";
83
- import { default as default84 } from "./Swiper.js";
84
- import { default as default85 } from "./SwiperItem.js";
85
- import { default as default86 } from "./Table.js";
86
- import { default as default87 } from "./Tag.js";
87
- import { default as default88 } from "./Tour.js";
88
- import { default as default89 } from "./Video.js";
89
- import { default as default90 } from "./VirtualList.js";
90
- import { default as default91 } from "./Barrage.js";
91
- import { default as default92 } from "./Card.js";
92
- import { default as default93 } from "./TimeDetail.js";
93
- import { default as default94 } from "./TimeSelect.js";
94
- import { default as default95 } from "./TrendArrow.js";
95
- import { default as default96 } from "./WaterMark.js";
29
+ import { default as default30 } from "./CalendarCard.js";
30
+ import { default as default31 } from "./Cascader.js";
31
+ import { default as default32 } from "./Checkbox.js";
32
+ import { default as default33 } from "./CheckboxGroup.js";
33
+ import { default as default34 } from "./DatePicker.js";
34
+ import { default as default35 } from "./Form.js";
35
+ import { default as default36 } from "./FormItem.js";
36
+ import { default as default37 } from "./Input.js";
37
+ import { default as default38 } from "./InputNumber.js";
38
+ import { default as default39 } from "./Menu.js";
39
+ import { default as default40 } from "./MenuItem.js";
40
+ import { default as default41 } from "./NumberKeyboard.js";
41
+ import { default as default42 } from "./Picker.js";
42
+ import { default as default43 } from "./Radio.js";
43
+ import { default as default44 } from "./RadioGroup.js";
44
+ import { default as default45 } from "./Range.js";
45
+ import { default as default46 } from "./Rate.js";
46
+ import { default as default47 } from "./SearchBar.js";
47
+ import { default as default48 } from "./ShortPassword.js";
48
+ import { default as default49 } from "./Signature.js";
49
+ import { default as default50 } from "./Switch.js";
50
+ import { default as default51 } from "./TextArea.js";
51
+ import { default as default52 } from "./Uploader.js";
52
+ import { default as default53 } from "./ActionSheet.js";
53
+ import { default as default54 } from "./Badge.js";
54
+ import { default as default55 } from "./Dialog.js";
55
+ import { default as default56 } from "./Drag.js";
56
+ import { default as default57 } from "./Empty.js";
57
+ import { default as default58 } from "./InfiniteLoading.js";
58
+ import { default as default59 } from "./Loading.js";
59
+ import { default as default60 } from "./NoticeBar.js";
60
+ import { default as default61 } from "./Notify.js";
61
+ import { default as default62 } from "./Popover.js";
62
+ import { default as default63 } from "./Popup.js";
63
+ import { default as default64 } from "./PullToRefresh.js";
64
+ import { default as default65 } from "./Skeleton.js";
65
+ import { default as default66 } from "./Swipe.js";
66
+ import { default as default67 } from "./Toast.js";
67
+ import { default as default68 } from "./Animate.js";
68
+ import { default as default69 } from "./AnimatingNumbers.js";
69
+ import { default as default70 } from "./Audio.js";
70
+ import { default as default71 } from "./Avatar.js";
71
+ import { default as default72 } from "./AvatarGroup.js";
72
+ import { default as default73 } from "./CircleProgress.js";
73
+ import { default as default74 } from "./Collapse.js";
74
+ import { default as default75 } from "./CollapseItem.js";
75
+ import { default as default76 } from "./CountDown.js";
76
+ import { default as default77 } from "./Ellipsis.js";
77
+ import { default as default78 } from "./ImagePreview.js";
78
+ import { default as default79 } from "./Indicator.js";
79
+ import { default as default80 } from "./Pagination.js";
80
+ import { default as default81 } from "./Price.js";
81
+ import { default as default82 } from "./Progress.js";
82
+ import { default as default83 } from "./Step.js";
83
+ import { default as default84 } from "./Steps.js";
84
+ import { default as default85 } from "./Swiper.js";
85
+ import { default as default86 } from "./SwiperItem.js";
86
+ import { default as default87 } from "./Table.js";
87
+ import { default as default88 } from "./Tag.js";
88
+ import { default as default89 } from "./Tour.js";
89
+ import { default as default90 } from "./Video.js";
90
+ import { default as default91 } from "./VirtualList.js";
91
+ import { default as default92 } from "./Barrage.js";
92
+ import { default as default93 } from "./Card.js";
93
+ import { default as default94 } from "./TimeDetail.js";
94
+ import { default as default95 } from "./TimeSelect.js";
95
+ import { default as default96 } from "./TrendArrow.js";
96
+ import { default as default97 } from "./WaterMark.js";
96
97
  export {
97
- default52 as ActionSheet,
98
+ default53 as ActionSheet,
98
99
  default27 as Address,
99
- default67 as Animate,
100
- default68 as AnimatingNumbers,
101
- default69 as Audio,
102
- default70 as Avatar,
103
- default71 as AvatarGroup,
100
+ default68 as Animate,
101
+ default69 as AnimatingNumbers,
102
+ default70 as Audio,
103
+ default71 as Avatar,
104
+ default72 as AvatarGroup,
104
105
  default16 as BackTop,
105
- default53 as Badge,
106
- default91 as Barrage,
106
+ default54 as Badge,
107
+ default92 as Barrage,
107
108
  default2 as Button,
108
109
  default28 as Calendar,
110
+ default30 as CalendarCard,
109
111
  default29 as CalendarItem,
110
- default92 as Card,
111
- default30 as Cascader,
112
+ default93 as Card,
113
+ default31 as Cascader,
112
114
  default3 as Cell,
113
115
  default4 as CellGroup,
114
- default31 as Checkbox,
115
- default32 as CheckboxGroup,
116
- default72 as CircleProgress,
116
+ default32 as Checkbox,
117
+ default33 as CheckboxGroup,
118
+ default73 as CircleProgress,
117
119
  default8 as Col,
118
- default73 as Collapse,
119
- default74 as CollapseItem,
120
+ default74 as Collapse,
121
+ default75 as CollapseItem,
120
122
  default5 as ConfigProvider,
121
- default75 as CountDown,
122
- default33 as DatePicker,
123
- default54 as Dialog,
123
+ default76 as CountDown,
124
+ default34 as DatePicker,
125
+ default55 as Dialog,
124
126
  default9 as Divider,
125
- default55 as Drag,
127
+ default56 as Drag,
126
128
  default17 as Elevator,
127
- default76 as Ellipsis,
128
- default56 as Empty,
129
+ default77 as Ellipsis,
130
+ default57 as Empty,
129
131
  default18 as FixedNav,
130
- default34 as Form,
131
- default35 as FormItem,
132
+ default35 as Form,
133
+ default36 as FormItem,
132
134
  default10 as Grid,
133
135
  default11 as GridItem,
134
136
  default6 as Image,
135
- default77 as ImagePreview,
136
- default78 as Indicator,
137
- default57 as InfiniteLoading,
138
- default36 as Input,
139
- default37 as InputNumber,
137
+ default78 as ImagePreview,
138
+ default79 as Indicator,
139
+ default58 as InfiniteLoading,
140
+ default37 as Input,
141
+ default38 as InputNumber,
140
142
  default12 as Layout,
141
- default58 as Loading,
142
- default38 as Menu,
143
- default39 as MenuItem,
143
+ default59 as Loading,
144
+ default39 as Menu,
145
+ default40 as MenuItem,
144
146
  default19 as NavBar,
145
- default59 as NoticeBar,
146
- default60 as Notify,
147
- default40 as NumberKeyboard,
147
+ default60 as NoticeBar,
148
+ default61 as Notify,
149
+ default41 as NumberKeyboard,
148
150
  default7 as Overlay,
149
- default79 as Pagination,
150
- default41 as Picker,
151
- default61 as Popover,
152
- default62 as Popup,
153
- default80 as Price,
154
- default81 as Progress,
155
- default63 as PullToRefresh,
156
- default42 as Radio,
157
- default43 as RadioGroup,
158
- default44 as Range,
159
- default45 as Rate,
151
+ default80 as Pagination,
152
+ default42 as Picker,
153
+ default62 as Popover,
154
+ default63 as Popup,
155
+ default81 as Price,
156
+ default82 as Progress,
157
+ default64 as PullToRefresh,
158
+ default43 as Radio,
159
+ default44 as RadioGroup,
160
+ default45 as Range,
161
+ default46 as Rate,
160
162
  default13 as Row,
161
- default46 as SearchBar,
162
- default47 as ShortPassword,
163
+ default47 as SearchBar,
164
+ default48 as ShortPassword,
163
165
  default20 as SideNavBar,
164
166
  default21 as SideNavBarItem,
165
- default48 as Signature,
166
- default64 as Skeleton,
167
+ default49 as Signature,
168
+ default65 as Skeleton,
167
169
  default14 as Space,
168
- default82 as Step,
169
- default83 as Steps,
170
+ default83 as Step,
171
+ default84 as Steps,
170
172
  default15 as Sticky,
171
173
  default22 as SubSideNavBar,
172
- default65 as Swipe,
173
- default84 as Swiper,
174
- default85 as SwiperItem,
175
- default49 as Switch,
174
+ default66 as Swipe,
175
+ default85 as Swiper,
176
+ default86 as SwiperItem,
177
+ default50 as Switch,
176
178
  default25 as TabPane,
177
179
  default23 as Tabbar,
178
180
  default24 as TabbarItem,
179
- default86 as Table,
181
+ default87 as Table,
180
182
  default26 as Tabs,
181
- default87 as Tag,
182
- default50 as TextArea,
183
- default93 as TimeDetail,
184
- default94 as TimeSelect,
185
- default66 as Toast,
186
- default88 as Tour,
187
- default95 as TrendArrow,
188
- default51 as Uploader,
189
- default89 as Video,
190
- default90 as VirtualList,
191
- default96 as WaterMark
183
+ default88 as Tag,
184
+ default51 as TextArea,
185
+ default94 as TimeDetail,
186
+ default95 as TimeSelect,
187
+ default67 as Toast,
188
+ default89 as Tour,
189
+ default96 as TrendArrow,
190
+ default52 as Uploader,
191
+ default90 as Video,
192
+ default91 as VirtualList,
193
+ default97 as WaterMark
192
194
  };
@@ -23,10 +23,82 @@ function _objectSpread(target) {
23
23
  }
24
24
  return target;
25
25
  }
26
- import React__default, { useState, useRef, useEffect } from "react";
26
+ import React__default, { useEffect, useState, useRef } from "react";
27
27
  import { CSSTransition } from "react-transition-group";
28
28
  import classNames from "classnames";
29
29
  import { C as ComponentDefaults } from "./typings.js";
30
+ import { u as useTouch } from "./use-touch.js";
31
+ import { g as getScrollParent } from "./get-scroll-parent.js";
32
+ import { p as passiveSupported } from "./supports-passive.js";
33
+ var totalLockCount = 0;
34
+ var BODY_LOCK_CLASS = "nut-overflow-hidden";
35
+ function getScrollableElement(el) {
36
+ var current = el === null || el === void 0 ? void 0 : el.parentElement;
37
+ while (current) {
38
+ if (current.clientHeight < current.scrollHeight) {
39
+ return current;
40
+ }
41
+ current = current.parentElement;
42
+ }
43
+ return null;
44
+ }
45
+ function useLockScroll(rootRef, shouldLock) {
46
+ var touch = useTouch();
47
+ var onTouchMove = function onTouchMove2(event) {
48
+ touch.move(event);
49
+ var direction = touch.deltaY.current > 0 ? "10" : "01";
50
+ var el = getScrollParent(event.target, rootRef.current);
51
+ if (!el)
52
+ return;
53
+ if (shouldLock === "strict") {
54
+ var scrollableParent = getScrollableElement(event.target);
55
+ if (scrollableParent === document.body || scrollableParent === document.documentElement) {
56
+ event.preventDefault();
57
+ return;
58
+ }
59
+ }
60
+ var scrollHeight = el.scrollHeight, offsetHeight = el.offsetHeight, scrollTop = el.scrollTop;
61
+ var status = "11";
62
+ if (scrollTop === 0) {
63
+ status = offsetHeight >= scrollHeight ? "00" : "01";
64
+ } else if (scrollTop + offsetHeight >= scrollHeight) {
65
+ status = "10";
66
+ }
67
+ if (status !== "11" && touch.isVertical() && !(parseInt(status, 2) & parseInt(direction, 2))) {
68
+ if (event.cancelable) {
69
+ event.preventDefault();
70
+ }
71
+ }
72
+ };
73
+ var lock = function lock2() {
74
+ document.addEventListener("touchstart", touch.start);
75
+ document.addEventListener("touchmove", onTouchMove, passiveSupported ? {
76
+ passive: false
77
+ } : false);
78
+ if (!totalLockCount) {
79
+ document.body.classList.add(BODY_LOCK_CLASS);
80
+ }
81
+ totalLockCount++;
82
+ };
83
+ var unlock = function unlock2() {
84
+ if (totalLockCount) {
85
+ document.removeEventListener("touchstart", touch.start);
86
+ document.removeEventListener("touchmove", onTouchMove);
87
+ totalLockCount--;
88
+ if (!totalLockCount) {
89
+ document.body.classList.remove(BODY_LOCK_CLASS);
90
+ }
91
+ }
92
+ };
93
+ useEffect(function() {
94
+ if (shouldLock) {
95
+ lock();
96
+ return function() {
97
+ unlock();
98
+ };
99
+ }
100
+ }, [shouldLock]);
101
+ }
30
102
  var defaultOverlayProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
31
103
  zIndex: 1e3,
32
104
  duration: 300,
@@ -47,22 +119,10 @@ var Overlay = function Overlay2(props) {
47
119
  } else {
48
120
  setInnerVisible(false);
49
121
  }
50
- lock();
51
122
  }, [visible]);
52
- useEffect(function() {
53
- return function() {
54
- document.body.classList.remove("nut-overflow-hidden");
55
- };
56
- }, []);
123
+ useLockScroll(nodeRef, !!props.lockScroll && innerVisible);
57
124
  var classes = classNames(className, classPrefix);
58
125
  var styles = _objectSpread({}, style);
59
- var lock = function lock2() {
60
- if (lockScroll && visible) {
61
- document.body.classList.add("nut-overflow-hidden");
62
- } else {
63
- document.body.classList.remove("nut-overflow-hidden");
64
- }
65
- };
66
126
  var handleClick = function handleClick2(e) {
67
127
  if (closeOnOverlayClick) {
68
128
  onClick2 && onClick2(e);
@@ -94,5 +154,6 @@ Overlay.defaultProps = defaultOverlayProps;
94
154
  Overlay.displayName = "NutOverlay";
95
155
  export {
96
156
  Overlay as O,
97
- defaultOverlayProps as d
157
+ defaultOverlayProps as d,
158
+ useLockScroll as u
98
159
  };
@@ -26,7 +26,7 @@ import { createPortal } from "react-dom";
26
26
  import { CSSTransition } from "react-transition-group";
27
27
  import classNames from "classnames";
28
28
  import { Close } from "@nutui/icons-react";
29
- import { d as defaultOverlayProps } from "./overlay2.js";
29
+ import { d as defaultOverlayProps, u as useLockScroll } from "./overlay2.js";
30
30
  import Overlay from "./Overlay.js";
31
31
  import { C as ComponentDefaults } from "./typings.js";
32
32
  var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, {
@@ -57,10 +57,12 @@ var Popup = function Popup2(props) {
57
57
  var _classNames, _classNames2;
58
58
  var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), children = _defaultProps$props.children, visible = _defaultProps$props.visible, overlay = _defaultProps$props.overlay, closeOnOverlayClick = _defaultProps$props.closeOnOverlayClick, overlayStyle = _defaultProps$props.overlayStyle, overlayClassName = _defaultProps$props.overlayClassName, zIndex = _defaultProps$props.zIndex, lockScroll = _defaultProps$props.lockScroll, duration = _defaultProps$props.duration, closeable = _defaultProps$props.closeable, closeIconPosition = _defaultProps$props.closeIconPosition, closeIcon = _defaultProps$props.closeIcon, left = _defaultProps$props.left, title = _defaultProps$props.title, style = _defaultProps$props.style, transition = _defaultProps$props.transition, round = _defaultProps$props.round, position = _defaultProps$props.position, className = _defaultProps$props.className, destroyOnClose = _defaultProps$props.destroyOnClose, portal = _defaultProps$props.portal, onOpen2 = _defaultProps$props.onOpen, onClose2 = _defaultProps$props.onClose, onOverlayClick2 = _defaultProps$props.onOverlayClick, onCloseIconClick2 = _defaultProps$props.onCloseIconClick, afterShow = _defaultProps$props.afterShow, afterClose = _defaultProps$props.afterClose, onClick = _defaultProps$props.onClick;
59
59
  var nodeRef = React__default.useRef(null);
60
- var _useState = useState(zIndex || _zIndex), _useState2 = _slicedToArray(_useState, 2), index = _useState2[0], setIndex = _useState2[1];
60
+ var innerIndex = zIndex || _zIndex;
61
+ var _useState = useState(innerIndex), _useState2 = _slicedToArray(_useState, 2), index = _useState2[0], setIndex = _useState2[1];
61
62
  var _useState3 = useState(visible), _useState4 = _slicedToArray(_useState3, 2), innerVisible = _useState4[0], setInnerVisible = _useState4[1];
62
63
  var _useState5 = useState(true), _useState6 = _slicedToArray(_useState5, 2), showChildren = _useState6[0], setShowChildren = _useState6[1];
63
64
  var _useState7 = useState(""), _useState8 = _slicedToArray(_useState7, 2), transitionName = _useState8[0], setTransitionName = _useState8[1];
65
+ useLockScroll(nodeRef, innerVisible && lockScroll);
64
66
  var classPrefix = "nut-popup";
65
67
  var baseStyle = {
66
68
  zIndex: index
@@ -76,7 +78,7 @@ var Popup = function Popup2(props) {
76
78
  var open = function open2() {
77
79
  if (!innerVisible) {
78
80
  setInnerVisible(true);
79
- setIndex(++_zIndex);
81
+ setIndex(++innerIndex);
80
82
  }
81
83
  if (destroyOnClose) {
82
84
  setShowChildren(true);
@@ -166,7 +168,6 @@ var Popup = function Popup2(props) {
166
168
  className: overlayClassName,
167
169
  visible: innerVisible,
168
170
  closeOnOverlayClick,
169
- zIndex,
170
171
  lockScroll,
171
172
  duration,
172
173
  onClick: onHandleClickOverlay
@@ -0,0 +1,17 @@
1
+ import { c as canUseDom } from "./can-use-dom.js";
2
+ var passiveSupported = false;
3
+ if (canUseDom) {
4
+ try {
5
+ var opts = Object.defineProperty({}, "passive", {
6
+ get: function get() {
7
+ passiveSupported = true;
8
+ }
9
+ });
10
+ window.addEventListener("test-passive-supported", null, opts);
11
+ } catch (e) {
12
+ console.log(e);
13
+ }
14
+ }
15
+ export {
16
+ passiveSupported as p
17
+ };
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom';
@@ -0,0 +1,24 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { BasicComponent } from '@/utils/typings';
3
+ import { CalendarCardDay, CalendarCardMonth, CalendarCardValue } from './types';
4
+ export interface CalendarCardProps extends BasicComponent {
5
+ type: 'single' | 'multiple' | 'range' | 'week';
6
+ value?: CalendarCardValue;
7
+ defaultValue?: CalendarCardValue;
8
+ firstDayOfWeek?: number;
9
+ startDate?: Date;
10
+ endDate?: Date;
11
+ disableDay?: (day: CalendarCardDay) => boolean;
12
+ renderDay?: (day: CalendarCardDay) => ReactNode;
13
+ renderDayTop?: (day: CalendarCardDay) => ReactNode;
14
+ renderDayBottom?: (day: CalendarCardDay) => ReactNode;
15
+ onDayClick?: (day: CalendarCardDay) => void;
16
+ onPageChange: (data: CalendarCardMonth) => void;
17
+ onChange: (value: CalendarCardValue) => void;
18
+ }
19
+ type CalendarCardRef = {
20
+ jump: (step: number) => void;
21
+ jumpTo: (year: number, month: number) => void;
22
+ };
23
+ export declare const CalendarCard: React.ForwardRefExoticComponent<Partial<CalendarCardProps> & React.RefAttributes<CalendarCardRef>>;
24
+ export {};
@@ -0,0 +1,24 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { BasicComponent } from '@/utils/typings';
3
+ import { CalendarCardDay, CalendarCardMonth, CalendarCardValue } from './types';
4
+ export interface CalendarCardProps extends BasicComponent {
5
+ type: 'single' | 'multiple' | 'range' | 'week';
6
+ value?: CalendarCardValue;
7
+ defaultValue?: CalendarCardValue;
8
+ firstDayOfWeek?: number;
9
+ startDate?: Date;
10
+ endDate?: Date;
11
+ disableDay?: (day: CalendarCardDay) => boolean;
12
+ renderDay?: (day: CalendarCardDay) => ReactNode;
13
+ renderDayTop?: (day: CalendarCardDay) => ReactNode;
14
+ renderDayBottom?: (day: CalendarCardDay) => ReactNode;
15
+ onDayClick?: (day: CalendarCardDay) => void;
16
+ onPageChange: (data: CalendarCardMonth) => void;
17
+ onChange: (value: CalendarCardValue) => void;
18
+ }
19
+ type CalendarCardRef = {
20
+ jump: (step: number) => void;
21
+ jumpTo: (year: number, month: number) => void;
22
+ };
23
+ export declare const CalendarCard: React.ForwardRefExoticComponent<Partial<CalendarCardProps> & React.RefAttributes<CalendarCardRef>>;
24
+ export {};
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const CalendarDemo: () => JSX.Element;
3
+ export default CalendarDemo;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const CalendarDemo: () => JSX.Element;
3
+ export default CalendarDemo;
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ export declare const Left: FC;
3
+ export declare const Right: FC;
4
+ export declare const DoubleLeft: FC;
5
+ export declare const DoubleRight: FC;
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ export declare const Left: FC;
3
+ export declare const Right: FC;
4
+ export declare const DoubleLeft: FC;
5
+ export declare const DoubleRight: FC;
@@ -0,0 +1,3 @@
1
+ import { CalendarCard } from './calendarcard';
2
+ export type { CalendarCardDay, CalendarCardMonth, CalendarCardValue, } from './types';
3
+ export default CalendarCard;
@@ -0,0 +1,3 @@
1
+ import { CalendarCard } from './calendarcard.taro';
2
+ export type { CalendarCardDay, CalendarCardMonth, CalendarCardValue, } from './types';
3
+ export default CalendarCard;
@@ -0,0 +1,11 @@
1
+ export interface CalendarCardDay {
2
+ type?: 'prev' | 'current' | 'next';
3
+ year: number;
4
+ month: number;
5
+ date: number;
6
+ }
7
+ export interface CalendarCardMonth {
8
+ year: number;
9
+ month: number;
10
+ }
11
+ export type CalendarCardValue = Date | Date[] | null;
@@ -0,0 +1,19 @@
1
+ import { CalendarCardDay } from './types';
2
+ export declare const convertDateToDay: (date: Date) => {
3
+ year: number;
4
+ month: number;
5
+ date: number;
6
+ } | null;
7
+ export declare const convertDayToDate: (day: CalendarCardDay) => Date | null;
8
+ /**
9
+ * 获取当月面板中前一个月的日期数据
10
+ */
11
+ export declare const getPrevMonthDays: (year: number, month: number, firstDayOfWeek: number) => CalendarCardDay[];
12
+ /**
13
+ * 获取当前月的日期数据
14
+ */
15
+ export declare const getCurrentMonthDays: (year: number, month: number) => CalendarCardDay[];
16
+ /**
17
+ * 根据日期获取当前周的起始日期
18
+ */
19
+ export declare const getCurrentWeekDays: (day: CalendarCardDay, firstDayOfWeek: number) => CalendarCardDay[];
@@ -1,5 +1,5 @@
1
1
  import React, { FunctionComponent } from 'react';
2
- import { PickerOption } from '@/packages/picker/index';
2
+ import { PickerOption, PickerProps } from '@/packages/picker/index';
3
3
  import { BasicComponent } from '@/utils/typings';
4
4
  export interface DatePickerProps extends BasicComponent {
5
5
  value?: Date;
@@ -12,6 +12,7 @@ export interface DatePickerProps extends BasicComponent {
12
12
  startDate: Date;
13
13
  endDate: Date;
14
14
  threeDimensional: boolean;
15
+ pickerProps: Partial<Omit<PickerProps, 'defaultValue' | 'threeDimensional' | 'title' | 'value' | 'onConfirm' | 'onClose' | 'onChange'>>;
15
16
  formatter: (type: string, option: PickerOption) => PickerOption;
16
17
  filter: (type: string, option: PickerOption[]) => PickerOption[];
17
18
  onClose: () => void;
@@ -1,5 +1,5 @@
1
1
  import React, { FunctionComponent } from 'react';
2
- import { PickerOption } from '@/packages/picker/index';
2
+ import { PickerOption, PickerProps } from '@/packages/picker/index.taro';
3
3
  import { BasicComponent } from '@/utils/typings';
4
4
  export interface DatePickerProps extends BasicComponent {
5
5
  value?: Date;
@@ -12,6 +12,7 @@ export interface DatePickerProps extends BasicComponent {
12
12
  startDate: Date;
13
13
  endDate: Date;
14
14
  threeDimensional: boolean;
15
+ pickerProps: Partial<Omit<PickerProps, 'defaultValue' | 'threeDimensional' | 'title' | 'value' | 'onConfirm' | 'onClose' | 'onChange'>>;
15
16
  formatter: (type: string, option: PickerOption) => PickerOption;
16
17
  filter: (type: string, option: PickerOption[]) => PickerOption[];
17
18
  onClose: () => void;
@@ -1,4 +1,3 @@
1
1
  /// <reference types="react" />
2
- import '@/packages/image/demo.scss';
3
2
  declare const ImageDemo: () => JSX.Element;
4
3
  export default ImageDemo;