@nutui/nutui-react-taro 3.0.6 → 3.0.7

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 (112) hide show
  1. package/CHANGELOG.md +34 -15
  2. package/dist/cjs/packages/actionsheet/style/style.css +4 -4
  3. package/dist/cjs/packages/address/style/style.css +4 -4
  4. package/dist/cjs/packages/audio/style/style.css +4 -16
  5. package/dist/cjs/packages/button/style/button.scss +4 -20
  6. package/dist/cjs/packages/button/style/style.css +4 -16
  7. package/dist/cjs/packages/button/style/style.harmony.css +2 -14
  8. package/dist/cjs/packages/calendar/style/style.css +4 -4
  9. package/dist/cjs/packages/cascader/style/style.css +4 -4
  10. package/dist/cjs/packages/collapse/style/style.css +22 -7
  11. package/dist/cjs/packages/collapseitem/collapseitem.js +63 -77
  12. package/dist/cjs/packages/collapseitem/style/collapseitem.scss +22 -5
  13. package/dist/cjs/packages/collapseitem/style/style.css +22 -7
  14. package/dist/cjs/packages/collapseitem/style/style.harmony.css +22 -7
  15. package/dist/cjs/packages/configprovider/types.d.ts +1 -1
  16. package/dist/cjs/packages/datepicker/style/style.css +4 -4
  17. package/dist/cjs/packages/dialog/content.d.ts +11 -3
  18. package/dist/cjs/packages/dialog/content.js +4 -4
  19. package/dist/cjs/packages/dialog/dialog.d.ts +39 -4
  20. package/dist/cjs/packages/dialog/dialog.js +14 -13
  21. package/dist/cjs/packages/dialog/index.d.ts +1 -1
  22. package/dist/cjs/packages/dialog/style/style.css +4 -16
  23. package/dist/cjs/packages/empty/style/style.css +4 -16
  24. package/dist/cjs/packages/imagepreview/style/style.css +4 -4
  25. package/dist/cjs/packages/numberkeyboard/style/style.css +4 -4
  26. package/dist/cjs/packages/picker/style/style.css +4 -4
  27. package/dist/cjs/packages/popover/popover.d.ts +0 -7
  28. package/dist/cjs/packages/popover/popover.js +114 -141
  29. package/dist/cjs/packages/popover/style/popover.scss +48 -51
  30. package/dist/cjs/packages/popover/style/style.css +64 -70
  31. package/dist/cjs/packages/popover/style/style.harmony.css +64 -60
  32. package/dist/cjs/packages/popup/style/popup.scss +4 -4
  33. package/dist/cjs/packages/popup/style/style.css +4 -4
  34. package/dist/cjs/packages/popup/style/style.harmony.css +4 -4
  35. package/dist/cjs/packages/resultpage/style/style.css +4 -16
  36. package/dist/cjs/packages/shortpassword/style/style.css +4 -4
  37. package/dist/cjs/packages/switch/switch.js +2 -2
  38. package/dist/cjs/packages/tabpane/tabpane.js +2 -2
  39. package/dist/cjs/packages/timeselect/style/style.css +4 -4
  40. package/dist/cjs/packages/tour/style/style.css +64 -70
  41. package/dist/cjs/packages/tour/tour.js +3 -4
  42. package/dist/cjs/types/spec/dialog/base.d.ts +50 -1
  43. package/dist/cjs/types/spec/dialog/base.js +7 -0
  44. package/dist/cjs/types/spec/dialog/h5.d.ts +4 -1
  45. package/dist/cjs/types/spec/dialog/taro.d.ts +8 -2
  46. package/dist/cjs/types/spec/popover/base.d.ts +7 -0
  47. package/dist/cjs/utils/get-rect-by-taro.js +10 -0
  48. package/dist/cjs/utils/lru.d.ts +8 -0
  49. package/dist/cjs/utils/lru.js +58 -0
  50. package/dist/es/packages/actionsheet/style/style.css +4 -4
  51. package/dist/es/packages/address/style/style.css +4 -4
  52. package/dist/es/packages/audio/style/style.css +4 -16
  53. package/dist/es/packages/button/style/button.scss +4 -20
  54. package/dist/es/packages/button/style/style.css +4 -16
  55. package/dist/es/packages/button/style/style.harmony.css +2 -14
  56. package/dist/es/packages/calendar/style/style.css +4 -4
  57. package/dist/es/packages/cascader/style/style.css +4 -4
  58. package/dist/es/packages/collapse/style/style.css +22 -7
  59. package/dist/es/packages/collapseitem/collapseitem.js +65 -79
  60. package/dist/es/packages/collapseitem/style/collapseitem.scss +22 -5
  61. package/dist/es/packages/collapseitem/style/style.css +22 -7
  62. package/dist/es/packages/collapseitem/style/style.harmony.css +22 -7
  63. package/dist/es/packages/configprovider/types.d.ts +1 -1
  64. package/dist/es/packages/datepicker/style/style.css +4 -4
  65. package/dist/es/packages/dialog/content.d.ts +11 -3
  66. package/dist/es/packages/dialog/content.js +4 -4
  67. package/dist/es/packages/dialog/dialog.d.ts +39 -4
  68. package/dist/es/packages/dialog/dialog.js +14 -13
  69. package/dist/es/packages/dialog/index.d.ts +1 -1
  70. package/dist/es/packages/dialog/style/style.css +4 -16
  71. package/dist/es/packages/empty/style/style.css +4 -16
  72. package/dist/es/packages/imagepreview/style/style.css +4 -4
  73. package/dist/es/packages/numberkeyboard/style/style.css +4 -4
  74. package/dist/es/packages/picker/style/style.css +4 -4
  75. package/dist/es/packages/popover/popover.d.ts +0 -7
  76. package/dist/es/packages/popover/popover.js +115 -142
  77. package/dist/es/packages/popover/style/popover.scss +48 -51
  78. package/dist/es/packages/popover/style/style.css +64 -70
  79. package/dist/es/packages/popover/style/style.harmony.css +64 -60
  80. package/dist/es/packages/popup/style/popup.scss +4 -4
  81. package/dist/es/packages/popup/style/style.css +4 -4
  82. package/dist/es/packages/popup/style/style.harmony.css +4 -4
  83. package/dist/es/packages/resultpage/style/style.css +4 -16
  84. package/dist/es/packages/shortpassword/style/style.css +4 -4
  85. package/dist/es/packages/switch/switch.js +2 -2
  86. package/dist/es/packages/tabpane/tabpane.js +2 -2
  87. package/dist/es/packages/timeselect/style/style.css +4 -4
  88. package/dist/es/packages/tour/style/style.css +64 -70
  89. package/dist/es/packages/tour/tour.js +3 -4
  90. package/dist/es/types/spec/dialog/base.d.ts +83 -1
  91. package/dist/es/types/spec/dialog/base.js +1 -1
  92. package/dist/es/types/spec/dialog/h5.d.ts +4 -1
  93. package/dist/es/types/spec/dialog/taro.d.ts +8 -2
  94. package/dist/es/types/spec/popover/base.d.ts +7 -0
  95. package/dist/es/utils/get-rect-by-taro.js +9 -0
  96. package/dist/es/utils/lru.d.ts +8 -0
  97. package/dist/es/utils/lru.js +49 -0
  98. package/dist/nutui.react.umd.js +266 -260
  99. package/dist/style.css +1 -1
  100. package/dist/style.scss +46 -46
  101. package/dist/styles/theme-jmapp.scss +1 -0
  102. package/dist/styles/themes/jmapp.css +1 -1
  103. package/dist/styles/variables-jmapp.scss +214 -49
  104. package/dist/styles/variables-jrkf.scss +2 -13
  105. package/dist/styles/variables.scss +3 -14
  106. package/package.json +1 -1
  107. package/dist/cjs/packages/dialog/types.d.ts +0 -57
  108. package/dist/cjs/packages/dialog/types.js +0 -4
  109. package/dist/cjs/packages/dialog/types.taro.d.ts +0 -10
  110. package/dist/es/packages/dialog/types.d.ts +0 -57
  111. package/dist/es/packages/dialog/types.js +0 -1
  112. package/dist/es/packages/dialog/types.taro.d.ts +0 -10
@@ -101,22 +101,6 @@
101
101
 
102
102
  &-round {
103
103
  border-radius: $button-border-radius;
104
-
105
- &-xlarge {
106
- border-radius: $button-xlarge-border-radius;
107
- }
108
-
109
- &-large {
110
- border-radius: $button-large-border-radius;
111
- }
112
-
113
- &-small {
114
- border-radius: $button-small-border-radius;
115
- }
116
-
117
- &-mini {
118
- border-radius: $button-mini-border-radius;
119
- }
120
104
  }
121
105
 
122
106
  &-default {
@@ -155,7 +139,7 @@
155
139
  height: $button-xlarge-height;
156
140
  padding: $button-xlarge-padding;
157
141
  font-size: $button-xlarge-font-size;
158
- border-radius: $radius-base;
142
+ border-radius: $button-xlarge-border-radius;
159
143
 
160
144
  .nut-button-text {
161
145
  margin-left: $button-xlarge-text-icon-margin;
@@ -178,7 +162,7 @@
178
162
  height: $button-large-height;
179
163
  padding: $button-large-padding;
180
164
  font-size: $button-large-font-size;
181
- border-radius: $radius-s;
165
+ border-radius: $button-large-border-radius;
182
166
 
183
167
  .nut-button-text {
184
168
  margin-left: $button-xlarge-text-icon-margin;
@@ -202,7 +186,7 @@
202
186
  height: $button-small-height;
203
187
  padding: $button-small-padding;
204
188
  font-size: $button-small-font-size;
205
- border-radius: $radius-xs;
189
+ border-radius: $button-small-border-radius;
206
190
 
207
191
  .nut-icon {
208
192
  font-size: $button-small-font-size;
@@ -219,7 +203,7 @@
219
203
  height: $button-mini-height;
220
204
  padding: $button-mini-padding;
221
205
  font-size: $button-mini-font-size;
222
- border-radius: $radius-xs;
206
+ border-radius: $button-mini-border-radius;
223
207
 
224
208
  .nut-icon {
225
209
  font-size: $button-mini-font-size;
@@ -94,18 +94,6 @@
94
94
  .nut-button-round {
95
95
  border-radius: var(--nutui-button-border-radius, var(--nutui-radius-s, 6px));
96
96
  }
97
- .nut-button-round-xlarge {
98
- border-radius: var(--nutui-button-xlarge-border-radius, var(--nutui-radius-base, 8px));
99
- }
100
- .nut-button-round-large {
101
- border-radius: var(--nutui-button-large-border-radius, var(--nutui-radius-base, 8px));
102
- }
103
- .nut-button-round-small {
104
- border-radius: var(--nutui-button-small-border-radius, var(--nutui-radius-s, 6px));
105
- }
106
- .nut-button-round-mini {
107
- border-radius: var(--nutui-button-mini-border-radius, var(--nutui-radius-xs, 4px));
108
- }
109
97
  .nut-button-default {
110
98
  padding: var(--nutui-button-default-padding, 0px 12px);
111
99
  border-style: solid;
@@ -131,7 +119,7 @@
131
119
  height: var(--nutui-button-xlarge-height, 48px);
132
120
  padding: var(--nutui-button-xlarge-padding, 0px 24px);
133
121
  font-size: var(--nutui-button-xlarge-font-size, var(--nutui-font-size-xl, 18px));
134
- border-radius: var(--nutui-radius-base, 8px);
122
+ border-radius: var(--nutui-button-xlarge-border-radius, var(--nutui-radius-base, 8px));
135
123
  }
136
124
  .nut-button-xlarge .nut-button-text {
137
125
  margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px);
@@ -151,7 +139,7 @@
151
139
  height: var(--nutui-button-large-height, 40px);
152
140
  padding: var(--nutui-button-large-padding, 0px 16px);
153
141
  font-size: var(--nutui-button-large-font-size, var(--nutui-font-size-l, 16px));
154
- border-radius: var(--nutui-radius-s, 6px);
142
+ border-radius: var(--nutui-button-large-border-radius, var(--nutui-radius-base, 8px));
155
143
  }
156
144
  .nut-button-large .nut-button-text {
157
145
  margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px);
@@ -171,7 +159,7 @@
171
159
  height: var(--nutui-button-small-height, 28px);
172
160
  padding: var(--nutui-button-small-padding, 0px 8px);
173
161
  font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px));
174
- border-radius: var(--nutui-radius-xs, 4px);
162
+ border-radius: var(--nutui-button-small-border-radius, var(--nutui-radius-s, 6px));
175
163
  }
176
164
  .nut-button-small .nut-icon {
177
165
  font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px));
@@ -185,7 +173,7 @@
185
173
  height: var(--nutui-button-mini-height, 24px);
186
174
  padding: var(--nutui-button-mini-padding, 0px 8px);
187
175
  font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px));
188
- border-radius: var(--nutui-radius-xs, 4px);
176
+ border-radius: var(--nutui-button-mini-border-radius, var(--nutui-radius-xs, 4px));
189
177
  }
190
178
  .nut-button-mini .nut-icon {
191
179
  font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px));
@@ -94,18 +94,6 @@
94
94
  .nut-button-round {
95
95
  border-radius: 6px;
96
96
  }
97
- .nut-button-round-xlarge {
98
- border-radius: 8px;
99
- }
100
- .nut-button-round-large {
101
- border-radius: 8px;
102
- }
103
- .nut-button-round-small {
104
- border-radius: 6px;
105
- }
106
- .nut-button-round-mini {
107
- border-radius: 4px;
108
- }
109
97
  .nut-button-default {
110
98
  padding: 0px 12px;
111
99
  border-style: solid;
@@ -161,7 +149,7 @@
161
149
  height: 40px;
162
150
  padding: 0px 16px;
163
151
  font-size: 16px;
164
- border-radius: 6px;
152
+ border-radius: 8px;
165
153
  }
166
154
  .nut-button-large .nut-button-text {
167
155
  margin-left: 6px;
@@ -181,7 +169,7 @@
181
169
  height: 28px;
182
170
  padding: 0px 8px;
183
171
  font-size: 12px;
184
- border-radius: 4px;
172
+ border-radius: 6px;
185
173
  }
186
174
  .nut-button-small .nut-icon {
187
175
  font-size: 12px;
@@ -60,7 +60,7 @@
60
60
 
61
61
  .nut-popup {
62
62
  position: fixed;
63
- min-height: 46%;
63
+ min-height: 26%;
64
64
  max-height: 100%;
65
65
  background-color: var(--nutui-overlay-content-bg-color, var(--nutui-color-background-overlay, #ffffff));
66
66
  -webkit-overflow-scrolling: touch;
@@ -198,12 +198,12 @@
198
198
  transform: scale(0.8);
199
199
  }
200
200
  }
201
- .nut-popup-slide-default-enter-active {
201
+ .nut-popup-slide-none-enter-active {
202
202
  animation-fill-mode: both;
203
203
  animation-name: popup-scale-fade-in;
204
204
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
205
205
  }
206
- .nut-popup-slide-default-exit-active {
206
+ .nut-popup-slide-none-exit-active {
207
207
  animation-fill-mode: both;
208
208
  animation-name: popup-scale-fade-out;
209
209
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -330,7 +330,7 @@
330
330
  animation-name: popup-slide-left-exit;
331
331
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
332
332
  }
333
- .nut-popup-slide-default-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
333
+ .nut-popup-slide-none-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
334
334
  display: none;
335
335
  }
336
336
  .nut-popup .nut-overflow-hidden {
@@ -60,7 +60,7 @@
60
60
 
61
61
  .nut-popup {
62
62
  position: fixed;
63
- min-height: 46%;
63
+ min-height: 26%;
64
64
  max-height: 100%;
65
65
  background-color: var(--nutui-overlay-content-bg-color, var(--nutui-color-background-overlay, #ffffff));
66
66
  -webkit-overflow-scrolling: touch;
@@ -198,12 +198,12 @@
198
198
  transform: scale(0.8);
199
199
  }
200
200
  }
201
- .nut-popup-slide-default-enter-active {
201
+ .nut-popup-slide-none-enter-active {
202
202
  animation-fill-mode: both;
203
203
  animation-name: popup-scale-fade-in;
204
204
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
205
205
  }
206
- .nut-popup-slide-default-exit-active {
206
+ .nut-popup-slide-none-exit-active {
207
207
  animation-fill-mode: both;
208
208
  animation-name: popup-scale-fade-out;
209
209
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -330,7 +330,7 @@
330
330
  animation-name: popup-slide-left-exit;
331
331
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
332
332
  }
333
- .nut-popup-slide-default-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
333
+ .nut-popup-slide-none-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
334
334
  display: none;
335
335
  }
336
336
  .nut-popup .nut-overflow-hidden {
@@ -40,8 +40,12 @@
40
40
  left: 16px;
41
41
  bottom: 0;
42
42
  border-bottom: var(--nutui-collapse-item-header-border-bottom, 1px solid var(--nutui-color-border, rgba(0, 0, 0, 0.06)));
43
- -webkit-transform: scaleY(0.5);
44
- transform: scaleY(0.5);
43
+ /* #ifdef harmony */
44
+ transform: scale(1, 1);
45
+ /* #endif */
46
+ /* #ifndef harmony */
47
+ transform: scale(1, 0.5);
48
+ /* #endif */
45
49
  }
46
50
  .nut-collapse-item-title {
47
51
  color: var(--nutui-collapse-item-color, var(--nutui-color-title, #1a1a1a));
@@ -74,23 +78,34 @@
74
78
  transform-origin: center;
75
79
  transition: transform 0.3s;
76
80
  }
77
- .nut-collapse-item-header.disabled {
81
+ .nut-collapse-item-header-disabled {
78
82
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
79
83
  }
80
- .nut-collapse-item-header.disabled .nut-collapse-item-title {
84
+ .nut-collapse-item-header-disabled .nut-collapse-item-title {
81
85
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
82
86
  }
83
- .nut-collapse-item-header.disabled .nut-collapse-item-icon {
87
+ .nut-collapse-item-header-disabled .nut-collapse-item-icon {
84
88
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
85
89
  }
86
- .nut-collapse-item-content {
90
+ .nut-collapse-item-content-wrapper {
91
+ width: 100%;
92
+ position: relative;
93
+ box-sizing: border-box;
87
94
  overflow: hidden;
95
+ }
96
+ .nut-collapse-item-content-wrapper-tran {
97
+ transition: all 0.3s linear;
98
+ }
99
+ .nut-collapse-item-content {
88
100
  display: block;
101
+ position: absolute;
102
+ height: auto;
103
+ width: 100%;
104
+ box-sizing: border-box;
89
105
  color: var(--nutui-collapse-wrapper-content-color, var(--nutui-color-text, #505259));
90
106
  font-size: var(--nutui-collapse-wrapper-content-font-size, var(--nutui-font-size-base, 14px));
91
107
  line-height: var(--nutui-collapse-wrapper-content-line-height, 1.5);
92
108
  background-color: var(--nutui-collapse-wrapper-content-background-color, var(--nutui-color-background-overlay, #ffffff));
93
- transition: all 0.3s linear;
94
109
  }
95
110
  .nut-collapse-item-content-text {
96
111
  color: var(--nutui-collapse-wrapper-content-color, var(--nutui-color-text, #505259));
@@ -1,13 +1,19 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
1
3
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
4
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
5
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
4
6
  import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
5
- import React, { useEffect, useState, useContext, useRef, useMemo } from "react";
7
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
8
+ import React, { useContext, useEffect, useMemo, useRef, useState } from "react";
6
9
  import { View } from "@tarojs/components";
7
10
  import classNames from "classnames";
8
- import { createSelectorQuery } from "@tarojs/taro";
11
+ import { nextTick } from "@tarojs/taro";
9
12
  import { ComponentDefaults } from "../../utils/typings";
10
13
  import CollapseContext from "../collapse/context";
14
+ import { getRectByTaro } from "../../utils/get-rect-by-taro";
15
+ import useUuid from "../../hooks/use-uuid";
16
+ import { useRefState } from "../../hooks/use-ref-state";
11
17
  var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
12
18
  title: null,
13
19
  name: '',
@@ -31,10 +37,8 @@ export var CollapseItem = function(props) {
31
37
  var context = useContext(CollapseContext);
32
38
  var wrapperRef = useRef(null);
33
39
  var contentRef = useRef(null);
34
- var _useState = _sliced_to_array(useState(function() {
35
- return Math.random().toString(36).slice(-8);
36
- }), 1), refRandomId = _useState[0];
37
- var target = "#nut-collapse-content-".concat(refRandomId);
40
+ var uid = useUuid();
41
+ var target = "nut-collapse-content-".concat(uid);
38
42
  var expanded = useMemo(function() {
39
43
  if (context) {
40
44
  return context.isOpen(name);
@@ -54,83 +58,64 @@ export var CollapseItem = function(props) {
54
58
  expanded,
55
59
  rotate
56
60
  ]);
57
- var handleClick = function() {
58
- if (!disabled) {
59
- context.updateValue(name);
60
- }
61
- };
62
- var _useState1 = _sliced_to_array(useState(null), 2), timer = _useState1[0], setTimer = _useState1[1];
63
- var _useState2 = _sliced_to_array(useState('auto'), 2), currentHeight = _useState2[0], setCurrentHeight = _useState2[1];
64
- var inAnimation = useRef(false);
65
- var _useState3 = _sliced_to_array(useState(function() {
66
- return expanded ? 'auto' : '0px';
67
- }), 2), wrapperHeight = _useState3[0], setWrapperHeight = _useState3[1];
68
- var getRect = function(selector) {
69
- return new Promise(function(resolve) {
70
- createSelectorQuery().select(selector).boundingClientRect().exec(function() {
71
- var rect = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
72
- resolve(rect[0]);
61
+ var _useState = _sliced_to_array(useState(0), 2), tran = _useState[0], setTran = _useState[1];
62
+ var _useRefState = _sliced_to_array(useRefState(0), 2), currentHeight = _useRefState[0], setCurrentHeight = _useRefState[1];
63
+ var _useState1 = _sliced_to_array(useState(0), 2), wrapperHeight = _useState1[0], setWrapperHeight = _useState1[1];
64
+ var updateRectHeight = /*#__PURE__*/ function() {
65
+ var _ref = _async_to_generator(function() {
66
+ var res;
67
+ return _ts_generator(this, function(_state) {
68
+ switch(_state.label){
69
+ case 0:
70
+ return [
71
+ 4,
72
+ getRectByTaro(contentRef.current, target)
73
+ ];
74
+ case 1:
75
+ res = _state.sent();
76
+ if (res === null || res === void 0 ? void 0 : res.height) {
77
+ setCurrentHeight(res.height);
78
+ setWrapperHeight(expanded ? res.height : 0);
79
+ nextTick(function() {
80
+ setTran(1);
81
+ });
82
+ }
83
+ return [
84
+ 2
85
+ ];
86
+ }
73
87
  });
74
88
  });
75
- };
89
+ return function updateRectHeight() {
90
+ return _ref.apply(this, arguments);
91
+ };
92
+ }();
76
93
  useEffect(function() {
77
- setTimeout(function() {
78
- getRect(target).then(function(res) {
79
- if (res === null || res === void 0 ? void 0 : res.height) {
80
- setCurrentHeight("".concat(res.height, "px"));
81
- }
82
- });
83
- }, 200);
94
+ nextTick(function() {
95
+ updateRectHeight();
96
+ });
84
97
  }, [
85
- children
98
+ children,
99
+ expanded
86
100
  ]);
87
- useEffect(function() {
88
- setTimeout(function() {
89
- getRect(target).then(function(res) {
90
- if (res === null || res === void 0 ? void 0 : res.height) {
91
- setCurrentHeight("".concat(res.height, "px"));
92
- }
93
- });
94
- }, 100);
95
- }, []);
96
101
  var toggle = function() {
97
- // 连续切换状态时,清除打开的后续操作
98
- if (timer) {
99
- clearTimeout(timer);
100
- setTimer(timer);
101
- }
102
- var start = expanded ? '0px' : currentHeight;
103
- var end = expanded ? currentHeight : '0px';
104
- inAnimation.current = true;
105
- setWrapperHeight(start);
106
- setTimeout(function() {
107
- setWrapperHeight(end);
108
- inAnimation.current = false;
109
- if (expanded) {
110
- var timer = setTimeout(function() {
111
- setWrapperHeight('auto');
112
- }, 300);
113
- setTimer(timer);
114
- }
115
- }, 100);
102
+ var end = !expanded ? currentHeight.current : 0;
103
+ setWrapperHeight(end);
116
104
  };
117
- var init = useRef(true);
118
- useEffect(function() {
119
- if (init.current) {
120
- init.current = false;
121
- } else {
122
- toggle();
105
+ var handleClick = function() {
106
+ if (!disabled) {
107
+ context.updateValue(name);
108
+ setTimeout(function() {
109
+ toggle();
110
+ }, 150);
123
111
  }
124
- }, [
125
- expanded
126
- ]);
112
+ };
113
+ var _obj;
127
114
  return /*#__PURE__*/ React.createElement("div", _object_spread({
128
115
  className: classNames(classPrefix, className),
129
116
  style: style
130
117
  }, rest), /*#__PURE__*/ React.createElement(View, {
131
- className: classNames("".concat(classPrefix, "-header"), {
132
- disabled: disabled
133
- }),
118
+ className: classNames("".concat(classPrefix, "-header"), _define_property({}, "".concat(classPrefix, "-header-disabled"), disabled)),
134
119
  onClick: handleClick
135
120
  }, /*#__PURE__*/ React.createElement(View, {
136
121
  className: "".concat(classPrefix, "-title")
@@ -142,16 +127,17 @@ export var CollapseItem = function(props) {
142
127
  className: "".concat(classPrefix, "-icon"),
143
128
  style: iconStyle
144
129
  }, expandIcon || context.expandIcon))), /*#__PURE__*/ React.createElement(View, {
145
- className: "".concat(classPrefix, "-content"),
146
- ref: wrapperRef,
147
- style: {
148
- willChange: 'height',
130
+ className: classNames((_obj = {}, _define_property(_obj, "".concat(classPrefix, "-content-wrapper"), true), _define_property(_obj, "".concat(classPrefix, "-content-wrapper-tran"), true), _obj)),
131
+ style: tran ? {
149
132
  height: wrapperHeight
150
- }
133
+ } : {},
134
+ ref: wrapperRef
151
135
  }, /*#__PURE__*/ React.createElement(View, {
136
+ className: "".concat(classPrefix, "-content"),
152
137
  ref: contentRef,
153
- className: "".concat(classPrefix, "-content-text"),
154
- id: "nut-collapse-content-".concat(refRandomId)
155
- }, children)));
138
+ id: target
139
+ }, /*#__PURE__*/ React.createElement(View, {
140
+ className: "".concat(classPrefix, "-content-text")
141
+ }, children))));
156
142
  };
157
143
  CollapseItem.displayName = 'NutCollapseItem';
@@ -38,8 +38,12 @@
38
38
  left: 16px;
39
39
  bottom: 0;
40
40
  border-bottom: $collapse-item-header-border-bottom;
41
- -webkit-transform: scaleY(0.5);
42
- transform: scaleY(0.5);
41
+ /* #ifdef harmony */
42
+ transform: scale(1, 1);
43
+ /* #endif */
44
+ /* #ifndef harmony */
45
+ transform: scale(1, 0.5);
46
+ /* #endif */
43
47
  }
44
48
  }
45
49
 
@@ -78,7 +82,7 @@
78
82
  transition: transform 0.3s;
79
83
  }
80
84
 
81
- &-header.disabled {
85
+ &-header-disabled {
82
86
  color: $collapse-item-disabled-color;
83
87
 
84
88
  .nut-collapse-item-title {
@@ -90,14 +94,26 @@
90
94
  }
91
95
  }
92
96
 
93
- &-content {
97
+ &-content-wrapper {
98
+ width: 100%;
99
+ position: relative;
100
+ box-sizing: border-box;
94
101
  overflow: hidden;
102
+ &-tran {
103
+ transition: all 0.3s linear;
104
+ }
105
+ }
106
+
107
+ &-content {
95
108
  display: block;
109
+ position: absolute;
110
+ height: auto;
111
+ width: 100%;
112
+ box-sizing: border-box;
96
113
  color: $collapse-wrapper-content-color;
97
114
  font-size: $collapse-wrapper-content-font-size;
98
115
  line-height: $collapse-wrapper-content-line-height;
99
116
  background-color: $collapse-wrapper-content-background-color;
100
- transition: all 0.3s linear;
101
117
 
102
118
  &-text {
103
119
  color: $collapse-wrapper-content-color;
@@ -105,6 +121,7 @@
105
121
  }
106
122
  }
107
123
  }
124
+
108
125
  [dir='rtl'] .nut-collapse-item,
109
126
  .nut-rtl .nut-collapse-item {
110
127
  &-icon {
@@ -40,8 +40,12 @@
40
40
  left: 16px;
41
41
  bottom: 0;
42
42
  border-bottom: var(--nutui-collapse-item-header-border-bottom, 1px solid var(--nutui-color-border, rgba(0, 0, 0, 0.06)));
43
- -webkit-transform: scaleY(0.5);
44
- transform: scaleY(0.5);
43
+ /* #ifdef harmony */
44
+ transform: scale(1, 1);
45
+ /* #endif */
46
+ /* #ifndef harmony */
47
+ transform: scale(1, 0.5);
48
+ /* #endif */
45
49
  }
46
50
  .nut-collapse-item-title {
47
51
  color: var(--nutui-collapse-item-color, var(--nutui-color-title, #1a1a1a));
@@ -74,23 +78,34 @@
74
78
  transform-origin: center;
75
79
  transition: transform 0.3s;
76
80
  }
77
- .nut-collapse-item-header.disabled {
81
+ .nut-collapse-item-header-disabled {
78
82
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
79
83
  }
80
- .nut-collapse-item-header.disabled .nut-collapse-item-title {
84
+ .nut-collapse-item-header-disabled .nut-collapse-item-title {
81
85
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
82
86
  }
83
- .nut-collapse-item-header.disabled .nut-collapse-item-icon {
87
+ .nut-collapse-item-header-disabled .nut-collapse-item-icon {
84
88
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
85
89
  }
86
- .nut-collapse-item-content {
90
+ .nut-collapse-item-content-wrapper {
91
+ width: 100%;
92
+ position: relative;
93
+ box-sizing: border-box;
87
94
  overflow: hidden;
95
+ }
96
+ .nut-collapse-item-content-wrapper-tran {
97
+ transition: all 0.3s linear;
98
+ }
99
+ .nut-collapse-item-content {
88
100
  display: block;
101
+ position: absolute;
102
+ height: auto;
103
+ width: 100%;
104
+ box-sizing: border-box;
89
105
  color: var(--nutui-collapse-wrapper-content-color, var(--nutui-color-text, #505259));
90
106
  font-size: var(--nutui-collapse-wrapper-content-font-size, var(--nutui-font-size-base, 14px));
91
107
  line-height: var(--nutui-collapse-wrapper-content-line-height, 1.5);
92
108
  background-color: var(--nutui-collapse-wrapper-content-background-color, var(--nutui-color-background-overlay, #ffffff));
93
- transition: all 0.3s linear;
94
109
  }
95
110
  .nut-collapse-item-content-text {
96
111
  color: var(--nutui-collapse-wrapper-content-color, var(--nutui-color-text, #505259));
@@ -40,8 +40,12 @@
40
40
  left: 16px;
41
41
  bottom: 0;
42
42
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
43
- -webkit-transform: scaleY(0.5);
44
- transform: scaleY(0.5);
43
+ /* #ifdef harmony */
44
+ transform: scale(1, 1);
45
+ /* #endif */
46
+ /* #ifndef harmony */
47
+ transform: scale(1, 0.5);
48
+ /* #endif */
45
49
  }
46
50
  .nut-collapse-item-title {
47
51
  color: #1a1a1a;
@@ -74,23 +78,34 @@
74
78
  transform-origin: center;
75
79
  transition: transform 0.3s;
76
80
  }
77
- .nut-collapse-item-header.disabled {
81
+ .nut-collapse-item-header-disabled {
78
82
  color: #c2c4cc;
79
83
  }
80
- .nut-collapse-item-header.disabled .nut-collapse-item-title {
84
+ .nut-collapse-item-header-disabled .nut-collapse-item-title {
81
85
  color: #c2c4cc;
82
86
  }
83
- .nut-collapse-item-header.disabled .nut-collapse-item-icon {
87
+ .nut-collapse-item-header-disabled .nut-collapse-item-icon {
84
88
  color: #c2c4cc;
85
89
  }
86
- .nut-collapse-item-content {
90
+ .nut-collapse-item-content-wrapper {
91
+ width: 100%;
92
+ position: relative;
93
+ box-sizing: border-box;
87
94
  overflow: hidden;
95
+ }
96
+ .nut-collapse-item-content-wrapper-tran {
97
+ transition: all 0.3s linear;
98
+ }
99
+ .nut-collapse-item-content {
88
100
  display: block;
101
+ position: absolute;
102
+ height: auto;
103
+ width: 100%;
104
+ box-sizing: border-box;
89
105
  color: #505259;
90
106
  font-size: 14px;
91
107
  line-height: 1.5;
92
108
  background-color: #ffffff;
93
- transition: all 0.3s linear;
94
109
  }
95
110
  .nut-collapse-item-content-text {
96
111
  color: #505259;