@nutui/nutui-react 3.0.5 → 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 (182) hide show
  1. package/CHANGELOG.md +59 -1
  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/badge/badge.js +4 -3
  6. package/dist/cjs/packages/badge/style/badge.scss +4 -0
  7. package/dist/cjs/packages/badge/style/style.css +9 -6
  8. package/dist/cjs/packages/button/style/button.scss +4 -20
  9. package/dist/cjs/packages/button/style/style.css +4 -16
  10. package/dist/cjs/packages/calendar/style/style.css +4 -4
  11. package/dist/cjs/packages/cascader/style/style.css +4 -4
  12. package/dist/cjs/packages/collapse/style/style.css +22 -7
  13. package/dist/cjs/packages/collapseitem/collapseitem.js +46 -44
  14. package/dist/cjs/packages/collapseitem/style/collapseitem.scss +22 -5
  15. package/dist/cjs/packages/collapseitem/style/style.css +22 -7
  16. package/dist/cjs/packages/configprovider/types.d.ts +1 -1
  17. package/dist/cjs/packages/datepicker/style/style.css +7 -4
  18. package/dist/cjs/packages/datepickerview/style/style.css +3 -0
  19. package/dist/cjs/packages/dialog/confirm.d.ts +2 -3
  20. package/dist/cjs/packages/dialog/confirm.js +4 -18
  21. package/dist/cjs/packages/dialog/content.d.ts +11 -3
  22. package/dist/cjs/packages/dialog/dialog.d.ts +1 -1
  23. package/dist/cjs/packages/dialog/dialog.js +98 -69
  24. package/dist/cjs/packages/dialog/index.d.ts +1 -1
  25. package/dist/cjs/packages/dialog/style/style.css +4 -16
  26. package/dist/cjs/packages/empty/style/style.css +4 -16
  27. package/dist/cjs/packages/fixednav/style/style.css +9 -6
  28. package/dist/cjs/packages/imagepreview/style/style.css +4 -4
  29. package/dist/cjs/packages/indicator/indicator.js +1 -1
  30. package/dist/cjs/packages/lottie/index.d.ts +1 -1
  31. package/dist/cjs/packages/lottie/index.js +2 -2
  32. package/dist/cjs/packages/notify/Notification.d.ts +3 -9
  33. package/dist/cjs/packages/notify/Notification.js +27 -7
  34. package/dist/cjs/packages/notify/notify.d.ts +0 -4
  35. package/dist/cjs/packages/notify/notify.js +6 -34
  36. package/dist/cjs/packages/notify/style/notify.scss +39 -36
  37. package/dist/cjs/packages/notify/style/style.css +36 -31
  38. package/dist/cjs/packages/numberkeyboard/style/style.css +4 -4
  39. package/dist/cjs/packages/picker/style/style.css +7 -4
  40. package/dist/cjs/packages/pickerview/style/pickerview.scss +3 -0
  41. package/dist/cjs/packages/pickerview/style/style.css +3 -0
  42. package/dist/cjs/packages/popover/popover.js +72 -65
  43. package/dist/cjs/packages/popover/style/popover.scss +48 -51
  44. package/dist/cjs/packages/popover/style/style.css +64 -70
  45. package/dist/cjs/packages/popup/style/popup.scss +4 -4
  46. package/dist/cjs/packages/popup/style/style.css +4 -4
  47. package/dist/cjs/packages/resultpage/style/style.css +4 -16
  48. package/dist/cjs/packages/shortpassword/style/style.css +4 -4
  49. package/dist/cjs/packages/skeleton/skeleton.js +64 -49
  50. package/dist/cjs/packages/skeleton/style/index.js +0 -1
  51. package/dist/cjs/packages/skeleton/style/skeleton.scss +40 -46
  52. package/dist/cjs/packages/skeleton/style/style.css +32 -175
  53. package/dist/cjs/packages/switch/style/style.css +5 -0
  54. package/dist/cjs/packages/switch/style/switch.scss +5 -0
  55. package/dist/cjs/packages/switch/switch.js +22 -11
  56. package/dist/cjs/packages/tabbar/style/style.css +54 -45
  57. package/dist/cjs/packages/tabbar/style/tabbar.scss +28 -19
  58. package/dist/cjs/packages/tabbar/tabbar.js +28 -10
  59. package/dist/cjs/packages/tabbaritem/style/style.css +30 -27
  60. package/dist/cjs/packages/tabbaritem/style/tabbaritem.scss +32 -29
  61. package/dist/cjs/packages/tabbaritem/tabbaritem.js +34 -13
  62. package/dist/cjs/packages/tabpane/tabpane.js +2 -2
  63. package/dist/cjs/packages/timeselect/style/style.css +4 -4
  64. package/dist/cjs/packages/tour/style/style.css +64 -70
  65. package/dist/cjs/types/spec/badge/base.d.ts +1 -0
  66. package/dist/cjs/types/spec/dialog/base.d.ts +50 -1
  67. package/dist/cjs/types/spec/dialog/base.js +7 -0
  68. package/dist/cjs/types/spec/dialog/h5.d.ts +4 -1
  69. package/dist/cjs/types/spec/dialog/taro.d.ts +8 -2
  70. package/dist/cjs/types/spec/indicator/base.d.ts +1 -1
  71. package/dist/cjs/types/spec/notify/base.d.ts +7 -2
  72. package/dist/cjs/types/spec/popover/base.d.ts +7 -0
  73. package/dist/cjs/types/spec/searchbar/taro.d.ts +10 -7
  74. package/dist/cjs/types/spec/skeleton/base.d.ts +7 -5
  75. package/dist/cjs/types/spec/switch/base.d.ts +3 -2
  76. package/dist/cjs/types/spec/switch/h5.d.ts +1 -1
  77. package/dist/cjs/types/spec/switch/taro.d.ts +1 -4
  78. package/dist/cjs/types/spec/tabbar/base.d.ts +7 -4
  79. package/dist/cjs/utils/get-rect-by-taro.js +10 -0
  80. package/dist/cjs/utils/lru.d.ts +8 -0
  81. package/dist/cjs/utils/lru.js +58 -0
  82. package/dist/es/packages/actionsheet/style/style.css +4 -4
  83. package/dist/es/packages/address/style/style.css +4 -4
  84. package/dist/es/packages/audio/style/style.css +4 -16
  85. package/dist/es/packages/badge/badge.js +4 -3
  86. package/dist/es/packages/badge/style/badge.scss +4 -0
  87. package/dist/es/packages/badge/style/style.css +9 -6
  88. package/dist/es/packages/button/style/button.scss +4 -20
  89. package/dist/es/packages/button/style/style.css +4 -16
  90. package/dist/es/packages/calendar/style/style.css +4 -4
  91. package/dist/es/packages/cascader/style/style.css +4 -4
  92. package/dist/es/packages/collapse/style/style.css +22 -7
  93. package/dist/es/packages/collapseitem/collapseitem.js +47 -45
  94. package/dist/es/packages/collapseitem/style/collapseitem.scss +22 -5
  95. package/dist/es/packages/collapseitem/style/style.css +22 -7
  96. package/dist/es/packages/configprovider/types.d.ts +1 -1
  97. package/dist/es/packages/datepicker/style/style.css +7 -4
  98. package/dist/es/packages/datepickerview/style/style.css +3 -0
  99. package/dist/es/packages/dialog/confirm.d.ts +2 -3
  100. package/dist/es/packages/dialog/confirm.js +1 -8
  101. package/dist/es/packages/dialog/content.d.ts +11 -3
  102. package/dist/es/packages/dialog/dialog.d.ts +1 -1
  103. package/dist/es/packages/dialog/dialog.js +98 -69
  104. package/dist/es/packages/dialog/index.d.ts +1 -1
  105. package/dist/es/packages/dialog/style/style.css +4 -16
  106. package/dist/es/packages/empty/style/style.css +4 -16
  107. package/dist/es/packages/fixednav/style/style.css +9 -6
  108. package/dist/es/packages/imagepreview/style/style.css +4 -4
  109. package/dist/es/packages/indicator/indicator.js +1 -1
  110. package/dist/es/packages/lottie/index.d.ts +1 -1
  111. package/dist/es/packages/lottie/index.js +1 -1
  112. package/dist/es/packages/notify/Notification.d.ts +3 -9
  113. package/dist/es/packages/notify/Notification.js +27 -7
  114. package/dist/es/packages/notify/notify.d.ts +0 -4
  115. package/dist/es/packages/notify/notify.js +6 -34
  116. package/dist/es/packages/notify/style/notify.scss +39 -36
  117. package/dist/es/packages/notify/style/style.css +36 -31
  118. package/dist/es/packages/numberkeyboard/style/style.css +4 -4
  119. package/dist/es/packages/picker/style/style.css +7 -4
  120. package/dist/es/packages/pickerview/style/pickerview.scss +3 -0
  121. package/dist/es/packages/pickerview/style/style.css +3 -0
  122. package/dist/es/packages/popover/popover.js +72 -65
  123. package/dist/es/packages/popover/style/popover.scss +48 -51
  124. package/dist/es/packages/popover/style/style.css +64 -70
  125. package/dist/es/packages/popup/style/popup.scss +4 -4
  126. package/dist/es/packages/popup/style/style.css +4 -4
  127. package/dist/es/packages/resultpage/style/style.css +4 -16
  128. package/dist/es/packages/shortpassword/style/style.css +4 -4
  129. package/dist/es/packages/skeleton/skeleton.js +63 -49
  130. package/dist/es/packages/skeleton/style/index.js +0 -1
  131. package/dist/es/packages/skeleton/style/skeleton.scss +40 -46
  132. package/dist/es/packages/skeleton/style/style.css +32 -175
  133. package/dist/es/packages/switch/style/style.css +5 -0
  134. package/dist/es/packages/switch/style/switch.scss +5 -0
  135. package/dist/es/packages/switch/switch.js +21 -11
  136. package/dist/es/packages/tabbar/style/style.css +54 -45
  137. package/dist/es/packages/tabbar/style/tabbar.scss +28 -19
  138. package/dist/es/packages/tabbar/tabbar.js +27 -10
  139. package/dist/es/packages/tabbaritem/style/style.css +30 -27
  140. package/dist/es/packages/tabbaritem/style/tabbaritem.scss +32 -29
  141. package/dist/es/packages/tabbaritem/tabbaritem.js +34 -13
  142. package/dist/es/packages/tabpane/tabpane.js +2 -2
  143. package/dist/es/packages/timeselect/style/style.css +4 -4
  144. package/dist/es/packages/tour/style/style.css +64 -70
  145. package/dist/es/types/spec/badge/base.d.ts +4 -0
  146. package/dist/es/types/spec/dialog/base.d.ts +83 -1
  147. package/dist/es/types/spec/dialog/base.js +1 -1
  148. package/dist/es/types/spec/dialog/h5.d.ts +4 -1
  149. package/dist/es/types/spec/dialog/taro.d.ts +8 -2
  150. package/dist/es/types/spec/indicator/base.d.ts +1 -1
  151. package/dist/es/types/spec/notify/base.d.ts +22 -5
  152. package/dist/es/types/spec/popover/base.d.ts +7 -0
  153. package/dist/es/types/spec/searchbar/taro.d.ts +10 -7
  154. package/dist/es/types/spec/skeleton/base.d.ts +19 -14
  155. package/dist/es/types/spec/switch/base.d.ts +6 -2
  156. package/dist/es/types/spec/switch/h5.d.ts +1 -1
  157. package/dist/es/types/spec/switch/taro.d.ts +1 -4
  158. package/dist/es/types/spec/tabbar/base.d.ts +7 -4
  159. package/dist/es/utils/get-rect-by-taro.js +9 -0
  160. package/dist/es/utils/lru.d.ts +8 -0
  161. package/dist/es/utils/lru.js +49 -0
  162. package/dist/nutui.react.umd.js +557 -529
  163. package/dist/style.css +1 -1
  164. package/dist/style.scss +38 -38
  165. package/dist/styles/theme-jmapp.scss +1 -0
  166. package/dist/styles/themes/jmapp.css +1 -1
  167. package/dist/styles/variables-jmapp.scss +237 -50
  168. package/dist/styles/variables-jrkf.scss +25 -14
  169. package/dist/styles/variables.scss +38 -51
  170. package/package.json +1 -1
  171. package/dist/cjs/packages/dialog/dialogwrap.d.ts +0 -4
  172. package/dist/cjs/packages/dialog/dialogwrap.js +0 -79
  173. package/dist/cjs/packages/dialog/types.d.ts +0 -57
  174. package/dist/cjs/packages/dialog/types.js +0 -11
  175. package/dist/es/packages/dialog/dialogwrap.d.ts +0 -4
  176. package/dist/es/packages/dialog/dialogwrap.js +0 -60
  177. package/dist/es/packages/dialog/types.d.ts +0 -57
  178. package/dist/es/packages/dialog/types.js +0 -1
  179. /package/dist/cjs/packages/lottie/{web.d.ts → lottie.d.ts} +0 -0
  180. /package/dist/cjs/packages/lottie/{web.js → lottie.js} +0 -0
  181. /package/dist/es/packages/lottie/{web.d.ts → lottie.d.ts} +0 -0
  182. /package/dist/es/packages/lottie/{web.js → lottie.js} +0 -0
@@ -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 {
@@ -9,80 +9,95 @@ Object.defineProperty(exports, "Skeleton", {
9
9
  }
10
10
  });
11
11
  var _interop_require_default = require("@swc/helpers/_/_interop_require_default");
12
- var _define_property = require("@swc/helpers/_/_define_property");
12
+ var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
13
  var _object_spread = require("@swc/helpers/_/_object_spread");
14
14
  var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
15
15
  var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
16
- var _react = /*#__PURE__*/ _interop_require_default._(require("react"));
16
+ var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array");
17
+ var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
17
18
  var _classnames = /*#__PURE__*/ _interop_require_default._(require("classnames"));
18
- var _avatar = /*#__PURE__*/ _interop_require_default._(require("../avatar"));
19
19
  var _typings = require("../../utils/typings");
20
20
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
21
21
  rows: 1,
22
- animated: false,
23
- title: false,
24
- avatar: false,
25
- avatarSize: '50px',
22
+ animated: true,
26
23
  visible: false,
27
- avatarShape: 'round'
24
+ size: 'normal',
25
+ shape: 'round',
26
+ duration: 0.6,
27
+ inline: false
28
28
  });
29
29
  var Skeleton = function Skeleton(props) {
30
- var _ref = (0, _object_spread._)({}, defaultProps, props), className = _ref.className, animated = _ref.animated, rows = _ref.rows, title = _ref.title, avatar = _ref.avatar, avatarSize = _ref.avatarSize, visible = _ref.visible, children = _ref.children, avatarShape = _ref.avatarShape, rest = (0, _object_without_properties._)(_ref, [
30
+ var shapeStyle = function shapeStyle() {
31
+ if (shape === 'circle') return {
32
+ borderRadius: '50%'
33
+ };
34
+ if (shape === 'square') return {
35
+ borderRadius: '0'
36
+ };
37
+ return {};
38
+ };
39
+ var durationStyle = function durationStyle() {
40
+ if (typeof duration !== 'undefined') return {
41
+ animationDuration: "".concat(duration, "s")
42
+ };
43
+ return {};
44
+ };
45
+ var _ref = (0, _object_spread._)({}, defaultProps, props), className = _ref.className, width = _ref.width, height = _ref.height, shape = _ref.shape, animated = _ref.animated, rows = _ref.rows, visible = _ref.visible, size = _ref.size, duration = _ref.duration, children = _ref.children, rest = (0, _object_without_properties._)(_ref, [
31
46
  "className",
47
+ "width",
48
+ "height",
49
+ "shape",
32
50
  "animated",
33
51
  "rows",
34
- "title",
35
- "avatar",
36
- "avatarSize",
37
52
  "visible",
38
- "children",
39
- "avatarShape"
53
+ "size",
54
+ "duration",
55
+ "children"
40
56
  ]);
41
57
  var classPrefix = 'nut-skeleton';
42
58
  var classes = (0, _classnames.default)(classPrefix, className);
43
- var _obj;
44
- var avatarClass = (0, _classnames.default)((_obj = {}, (0, _define_property._)(_obj, "nut-avatar", true), (0, _define_property._)(_obj, "nut-skeleton-content-avatar", true), (0, _define_property._)(_obj, "avatar-".concat(avatarShape), avatarShape), _obj));
45
- var repeatLines = function repeatLines(num) {
59
+ var repeatCount = function repeatCount(num) {
46
60
  return Array.from({
47
61
  length: num
48
62
  }, function(v, i) {
49
63
  return i;
50
64
  });
51
65
  };
52
- var getStyle = function getStyle() {
53
- if (avatarSize) {
54
- return {
55
- width: avatarSize,
56
- height: avatarSize
57
- };
58
- }
59
- return {
60
- width: '50px',
61
- height: '50px'
62
- };
66
+ var _useState = (0, _sliced_to_array._)((0, _react.useState)(false), 2), animate = _useState[0], setAnimate = _useState[1];
67
+ var playAnimation = function playAnimation() {
68
+ setAnimate(false) // 首先将 animate 设置为 false
69
+ ;
70
+ setTimeout(function() {
71
+ setAnimate(true) // 1 毫秒后再设置为 true,触发动画
72
+ ;
73
+ }, 10);
63
74
  };
64
- return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, visible ? /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, children) : /*#__PURE__*/ _react.default.createElement("div", (0, _object_spread._)({
75
+ (0, _react.useEffect)(function() {
76
+ if (!animated) return;
77
+ playAnimation();
78
+ // 每隔 3 秒播放一次动画
79
+ var intervalId = setInterval(playAnimation, 1000 + duration * 1000) // xs 动画 + 1s 间隔
80
+ ;
81
+ // 清理定时器
82
+ return function() {
83
+ return clearInterval(intervalId);
84
+ };
85
+ }, []);
86
+ return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, visible ? children : /*#__PURE__*/ _react.default.createElement("div", (0, _object_spread._)({
65
87
  className: classes
66
- }, rest), animated && /*#__PURE__*/ _react.default.createElement("div", {
67
- className: "".concat(classPrefix, "-animation")
68
- }), /*#__PURE__*/ _react.default.createElement("div", {
69
- className: "".concat(classPrefix, "-content")
70
- }, avatar && /*#__PURE__*/ _react.default.createElement(_avatar.default, {
71
- className: avatarClass,
72
- shape: avatarShape,
73
- style: getStyle(),
74
- icon: "null"
75
- }), rows === 1 ? /*#__PURE__*/ _react.default.createElement("div", {
76
- className: "".concat(classPrefix, "-content-block")
77
- }) : /*#__PURE__*/ _react.default.createElement("div", {
78
- className: "".concat(classPrefix, "-content-line")
79
- }, title && /*#__PURE__*/ _react.default.createElement("div", {
80
- className: "".concat(classPrefix, "-content-title")
81
- }), repeatLines(rows).map(function(item, index) {
88
+ }, rest), repeatCount(rows).map(function(item, index) {
89
+ var contentClass = "".concat(classPrefix, "-content ").concat(classPrefix, "-content-").concat(size, " ").concat(classPrefix, "-content-").concat(size, "-").concat(index);
82
90
  return /*#__PURE__*/ _react.default.createElement("div", {
83
- className: "".concat(classPrefix, "-content-block"),
84
- key: index
85
- });
86
- })))));
91
+ className: "".concat(contentClass),
92
+ key: index,
93
+ style: (0, _object_spread._)({
94
+ width: width,
95
+ height: height
96
+ }, shapeStyle())
97
+ }, animated && /*#__PURE__*/ _react.default.createElement("div", {
98
+ className: "".concat(classPrefix, "-animated ").concat(animate ? "".concat(classPrefix, "-animation") : ''),
99
+ style: durationStyle()
100
+ }));
101
+ })));
87
102
  };
88
103
  Skeleton.displayName = 'NutSkeleton';
@@ -1,2 +1 @@
1
- import '../../avatar/style';
2
1
  import './skeleton.scss';
@@ -1,44 +1,29 @@
1
1
  .nut-skeleton {
2
- display: inline-block;
3
- position: relative;
4
- overflow: hidden;
5
- vertical-align: middle;
6
- width: 100%;
2
+ line-height: 0px;
3
+ font-size: 0px;
7
4
 
8
5
  &-content {
9
- display: flex;
10
- flex-direction: row;
6
+ position: relative;
7
+ display: inline-flex;
8
+ width: $skeleton-line-width;
9
+ background: $skeleton-background;
10
+ border-radius: $skeleton-line-border-radius;
11
+ overflow: hidden;
11
12
 
12
- &-avatar {
13
- margin-right: 20px;
14
- background: $skeleton-background !important;
13
+ &-normal {
14
+ height: $skeleton-line-normal-height;
15
15
  }
16
16
 
17
- &-block {
18
- width: $skeleton-line-width;
19
- height: $skeleton-line-height;
20
- background: $skeleton-background;
21
- margin-top: 10px;
22
- border-radius: $skeleton-line-border-radius;
17
+ &-large {
18
+ height: $skeleton-line-large-height;
23
19
  }
24
20
 
25
- &-line {
26
- width: 100%;
27
- display: flex;
28
- flex-direction: column;
29
- .nut-skeleton-content-block:last-child {
30
- width: 70%;
31
- }
21
+ &-small {
22
+ height: $skeleton-line-small-height;
23
+ margin-top: 8px;
32
24
  }
33
-
34
- &-title {
35
- width: 30%;
36
- height: $skeleton-line-height;
37
- background: $skeleton-background;
38
- }
39
-
40
- &-block-last-child {
41
- width: 55%;
25
+ &-small-0 {
26
+ margin-top: 0;
42
27
  }
43
28
  }
44
29
 
@@ -49,41 +34,50 @@
49
34
  width: 100%;
50
35
  height: 100%;
51
36
  z-index: 1;
52
- animation: nut-skeleton 2s ease-in-out 0s infinite;
37
+ background: linear-gradient(
38
+ 90deg,
39
+ rgba(0, 0, 0, 0) 0%,
40
+ rgba(0, 0, 0, 0.02) 50%,
41
+ rgba(0, 0, 0, 0) 100%
42
+ );
43
+ animation-name: nut-skeleton;
44
+ animation-delay: 0s;
45
+ animation-duration: 0.6s;
46
+ animation-direction: normal;
47
+ animation-fill-mode: both;
48
+ animation-play-state: running;
49
+ animation-iteration-count: 1;
50
+ animation-timing-function: linear;
53
51
  }
54
52
 
55
53
  @keyframes nut-skeleton {
56
- 0% {
57
- background-position-x: -500px;
54
+ from {
55
+ transform: translateX(-100%);
58
56
  }
59
57
 
60
58
  to {
61
- background-position-x: calc(500px + 100%);
59
+ transform: translateX(100%);
62
60
  }
63
61
  }
64
62
  }
65
63
 
66
64
  [dir='rtl'] .nut-skeleton,
67
65
  .nut-rtl .nut-skeleton {
68
- &-content {
69
- .nut-avatar {
70
- margin-right: 0;
71
- margin-left: 20px;
72
- }
73
- }
74
66
  &-animation {
75
67
  left: auto;
76
68
  right: 0;
77
- animation: nut-skeleton-rtl 2s ease-in-out 0s infinite;
69
+ animation: nut-skeleton-rtl 2s linear 0s infinite;
78
70
  }
79
71
 
80
72
  @keyframes nut-skeleton-rtl {
81
- 0% {
82
- background-position-x: calc(500px + 100%);
73
+ from {
74
+ //background-position: -200% 0;
75
+ transform: translateX(100%);
83
76
  }
84
77
 
85
78
  to {
86
- background-position-x: -500px;
79
+ //background-position: 200% 0;
80
+ transform: translateX(-100%);
87
81
  }
88
82
  }
89
83
  }
@@ -2,176 +2,30 @@
2
2
  /* #endif */
3
3
  /* #ifndef harmony */
4
4
  /* #endif */
5
- .nut-image {
6
- display: block;
7
- position: relative;
8
- }
9
- .nut-image-default {
10
- display: block;
11
- width: 100%;
12
- height: 100%;
13
- }
14
- .nut-image.nut-image-round {
15
- border-radius: 50%;
16
- overflow: hidden;
17
- }
18
- .nut-image-loading {
19
- width: 100%;
20
- height: 100%;
21
- position: absolute;
22
- top: 0;
23
- left: 0;
24
- display: flex;
25
- flex-direction: column;
26
- align-items: center;
27
- justify-content: center;
28
- background: var(--nutui-color-background, #f2f3f5);
29
- background-size: 100% 100%;
30
- }
31
- .nut-image-error {
32
- width: 100%;
33
- height: 100%;
34
- position: absolute;
35
- top: 0;
36
- left: 0;
37
- display: flex;
38
- flex-direction: column;
39
- align-items: center;
40
- justify-content: center;
41
- background: var(--nutui-color-background, #f2f3f5);
42
- background-size: 100% 100%;
43
- }
44
-
45
- [dir=rtl] .nut-image .nut-img-loading,
46
- .nut-rtl .nut-image .nut-img-loading {
47
- left: auto;
48
- right: 0;
49
- }
50
- [dir=rtl] .nut-image .nut-img-error,
51
- .nut-rtl .nut-image .nut-img-error {
52
- left: auto;
53
- right: 0;
54
- }
55
-
56
- .nut-avatar-group {
57
- display: flex;
58
- flex-direction: row;
59
- flex: 0 0 auto;
60
- }
61
- .nut-avatar-group-avatar,
62
- .nut-avatar-group .nut-avatar {
63
- border: 1px solid #fff;
64
- margin-left: -8px;
65
- }
66
- .nut-avatar-group-avatar:not(:first-of-type),
67
- .nut-avatar-group .nut-avatar:not(:first-of-type) {
68
- margin-left: -8px;
69
- }
70
-
71
- [dir=rtl] .nut-avatar-group .nut-avatar:not(:first-of-type),
72
- .nut-rtl .nut-avatar-group .nut-avatar:not(:first-of-type) {
73
- margin-left: 0;
74
- margin-right: -8px;
75
- }
76
-
77
- .nut-avatar {
78
- position: relative;
79
- flex: 0 0 auto;
80
- display: flex;
81
- justify-content: center;
82
- align-items: center;
83
- width: var(--nutui-avatar-normal-width, 40px);
84
- height: var(--nutui-avatar-normal-height, 40px);
85
- }
86
- .nut-avatar-round {
87
- border-radius: 999px;
88
- overflow: hidden;
89
- }
90
- .nut-avatar-square {
91
- border-radius: var(--nutui-avatar-square, 5px);
92
- }
93
- .nut-avatar-first-child {
94
- margin-left: 0;
95
- margin-right: 0;
96
- }
97
- .nut-avatar-img {
98
- width: 100%;
99
- height: 100%;
100
- flex-shrink: 0;
101
- background-size: 100% 100%;
102
- background-repeat: no-repeat;
103
- background-position: center center;
104
- }
105
- .nut-avatar-icon {
106
- background-size: 100% 100%;
107
- }
108
- .nut-avatar-text {
109
- display: flex;
110
- justify-content: center;
111
- align-items: center;
112
- }
113
- .nut-avatar-large {
114
- width: var(--nutui-avatar-large-width, 60px);
115
- height: var(--nutui-avatar-large-height, 60px);
116
- }
117
- .nut-avatar-large-img {
118
- width: var(--nutui-avatar-large-width, 60px);
119
- height: var(--nutui-avatar-large-height, 60px);
120
- }
121
- .nut-avatar-large-icon {
122
- width: var(--nutui-avatar-large-width, 60px);
123
- height: var(--nutui-avatar-large-height, 60px);
124
- }
125
- .nut-avatar-large-text {
126
- width: var(--nutui-avatar-large-width, 60px);
127
- height: var(--nutui-avatar-large-height, 60px);
128
- }
129
- .nut-avatar-small {
130
- width: var(--nutui-avatar-small-width, 32px);
131
- height: var(--nutui-avatar-small-height, 32px);
132
- }
133
- .nut-avatar-small-text {
134
- width: var(--nutui-avatar-small-width, 32px);
135
- height: var(--nutui-avatar-small-height, 32px);
136
- }
137
-
138
5
  .nut-skeleton {
139
- display: inline-block;
140
- position: relative;
141
- overflow: hidden;
142
- vertical-align: middle;
143
- width: 100%;
6
+ line-height: 0px;
7
+ font-size: 0px;
144
8
  }
145
9
  .nut-skeleton-content {
146
- display: flex;
147
- flex-direction: row;
148
- }
149
- .nut-skeleton-content-avatar {
150
- margin-right: 20px;
151
- background: var(--nutui-skeleton-background, var(--nutui-color-background, #f2f3f5)) !important;
152
- }
153
- .nut-skeleton-content-block {
10
+ position: relative;
11
+ display: inline-flex;
154
12
  width: var(--nutui-skeleton-line-width, 100%);
155
- height: var(--nutui-skeleton-line-height, 15px);
156
- background: var(--nutui-skeleton-background, var(--nutui-color-background, #f2f3f5));
157
- margin-top: 10px;
158
- border-radius: var(--nutui-skeleton-line-border-radius, 0);
13
+ background: var(--nutui-skeleton-background, var(--nutui-color-background-sunken, #f7f8fc));
14
+ border-radius: var(--nutui-skeleton-line-border-radius, var(--nutui-radius-xs, 4px));
15
+ overflow: hidden;
159
16
  }
160
- .nut-skeleton-content-line {
161
- width: 100%;
162
- display: flex;
163
- flex-direction: column;
17
+ .nut-skeleton-content-normal {
18
+ height: var(--nutui-skeleton-line-normal-height, 24px);
164
19
  }
165
- .nut-skeleton-content-line .nut-skeleton-content-block:last-child {
166
- width: 70%;
20
+ .nut-skeleton-content-large {
21
+ height: var(--nutui-skeleton-line-large-height, 32px);
167
22
  }
168
- .nut-skeleton-content-title {
169
- width: 30%;
170
- height: var(--nutui-skeleton-line-height, 15px);
171
- background: var(--nutui-skeleton-background, var(--nutui-color-background, #f2f3f5));
23
+ .nut-skeleton-content-small {
24
+ height: var(--nutui-skeleton-line-small-height, 16px);
25
+ margin-top: 8px;
172
26
  }
173
- .nut-skeleton-content-block-last-child {
174
- width: 55%;
27
+ .nut-skeleton-content-small-0 {
28
+ margin-top: 0;
175
29
  }
176
30
  .nut-skeleton-animation {
177
31
  position: absolute;
@@ -180,33 +34,36 @@
180
34
  width: 100%;
181
35
  height: 100%;
182
36
  z-index: 1;
183
- animation: nut-skeleton 2s ease-in-out 0s infinite;
37
+ background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.02) 50%, rgba(0, 0, 0, 0) 100%);
38
+ animation-name: nut-skeleton;
39
+ animation-delay: 0s;
40
+ animation-duration: 0.6s;
41
+ animation-direction: normal;
42
+ animation-fill-mode: both;
43
+ animation-play-state: running;
44
+ animation-iteration-count: 1;
45
+ animation-timing-function: linear;
184
46
  }
185
47
  @keyframes nut-skeleton {
186
- 0% {
187
- background-position-x: -500px;
48
+ from {
49
+ transform: translateX(-100%);
188
50
  }
189
51
  to {
190
- background-position-x: calc(500px + 100%);
52
+ transform: translateX(100%);
191
53
  }
192
54
  }
193
55
 
194
- [dir=rtl] .nut-skeleton-content .nut-avatar,
195
- .nut-rtl .nut-skeleton-content .nut-avatar {
196
- margin-right: 0;
197
- margin-left: 20px;
198
- }
199
56
  [dir=rtl] .nut-skeleton-animation,
200
57
  .nut-rtl .nut-skeleton-animation {
201
58
  left: auto;
202
59
  right: 0;
203
- animation: nut-skeleton-rtl 2s ease-in-out 0s infinite;
60
+ animation: nut-skeleton-rtl 2s linear 0s infinite;
204
61
  }
205
62
  @keyframes nut-skeleton-rtl {
206
- 0% {
207
- background-position-x: calc(500px + 100%);
63
+ from {
64
+ transform: translateX(100%);
208
65
  }
209
66
  to {
210
- background-position-x: -500px;
67
+ transform: translateX(-100%);
211
68
  }
212
69
  }
@@ -45,6 +45,11 @@
45
45
  .nut-switch-button-close-rtl {
46
46
  left: calc(100% - var(--nutui-switch-height, 28px) + var(--nutui-switch-border-width, 2px));
47
47
  }
48
+ .nut-switch-button .nut-icon {
49
+ width: calc((var(--nutui-switch-height, 28px) - var(--nutui-switch-border-width, 2px) * 2) / 2);
50
+ height: calc((var(--nutui-switch-height, 28px) - var(--nutui-switch-border-width, 2px) * 2) / 2);
51
+ color: var(--nutui-switch-active-disabled-background-color, var(--nutui-color-primary-disabled-special, #ffadbe));
52
+ }
48
53
  .nut-switch-close {
49
54
  background-color: var(--nutui-switch-inactive-background-color, var(--nutui-color-text-disabled, #c2c4cc));
50
55
  }
@@ -40,6 +40,11 @@
40
40
  left: calc(100% - $switch-height + $switch-border-width);
41
41
  }
42
42
  }
43
+ .nut-icon {
44
+ width: calc(($switch-height - $switch-border-width * 2) / 2);
45
+ height: calc(($switch-height - $switch-border-width * 2) / 2);
46
+ color: $switch-active-disabled-background-color;
47
+ }
43
48
  }
44
49
 
45
50
  &-close {
@@ -9,28 +9,32 @@ Object.defineProperty(exports, "Switch", {
9
9
  }
10
10
  });
11
11
  var _interop_require_default = require("@swc/helpers/_/_interop_require_default");
12
+ var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
12
13
  var _define_property = require("@swc/helpers/_/_define_property");
13
14
  var _object_spread = require("@swc/helpers/_/_object_spread");
14
15
  var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
15
16
  var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
16
17
  var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array");
17
- var _react = /*#__PURE__*/ _interop_require_default._(require("react"));
18
+ var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
18
19
  var _classnames = /*#__PURE__*/ _interop_require_default._(require("classnames"));
20
+ var _iconsreact = require("@nutui/icons-react");
19
21
  var _typings = require("../../utils/typings");
20
22
  var _usepropsvalue = require("../../hooks/use-props-value");
21
23
  var _configprovider = require("../configprovider");
22
24
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
23
25
  disabled: false,
24
26
  activeText: '',
25
- inactiveText: ''
27
+ inactiveText: '',
28
+ loadingIcon: /*#__PURE__*/ _react.default.createElement(_iconsreact.Loading1, null)
26
29
  });
27
30
  var Switch = function Switch(props) {
28
- var _ref = (0, _object_spread._)({}, defaultProps, props), checked = _ref.checked, defaultChecked = _ref.defaultChecked, disabled = _ref.disabled, activeText = _ref.activeText, inactiveText = _ref.inactiveText, className = _ref.className, style = _ref.style, onChange = _ref.onChange, rest = (0, _object_without_properties._)(_ref, [
31
+ var _ref = (0, _object_spread._)({}, defaultProps, props), checked = _ref.checked, defaultChecked = _ref.defaultChecked, disabled = _ref.disabled, activeText = _ref.activeText, inactiveText = _ref.inactiveText, loadingIcon = _ref.loadingIcon, className = _ref.className, style = _ref.style, onChange = _ref.onChange, rest = (0, _object_without_properties._)(_ref, [
29
32
  "checked",
30
33
  "defaultChecked",
31
34
  "disabled",
32
35
  "activeText",
33
36
  "inactiveText",
37
+ "loadingIcon",
34
38
  "className",
35
39
  "style",
36
40
  "onChange"
@@ -41,6 +45,12 @@ var Switch = function Switch(props) {
41
45
  value: checked,
42
46
  defaultValue: defaultChecked
43
47
  }), 2), value = _usePropsValue[0], setValue = _usePropsValue[1];
48
+ (0, _react.useEffect)(function() {
49
+ changing && setChanging(false);
50
+ }, [
51
+ value
52
+ ]);
53
+ var _useState = (0, _sliced_to_array._)((0, _react.useState)(false), 2), changing = _useState[0], setChanging = _useState[1];
44
54
  var classes = function classes() {
45
55
  var _obj;
46
56
  return (0, _classnames.default)([
@@ -49,17 +59,18 @@ var Switch = function Switch(props) {
49
59
  (_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-close"), !value), (0, _define_property._)(_obj, "".concat(classPrefix, "-disabled"), disabled), (0, _define_property._)(_obj, "".concat(classPrefix, "-disabled-close"), disabled && !value), _obj)
50
60
  ]);
51
61
  };
52
- var onClick = function onClick(event) {
53
- if (disabled) return;
54
- onChange && onChange(!value, event);
62
+ var onClick = function onClick() {
63
+ if (disabled || changing) return;
64
+ if (onChange) {
65
+ setChanging(true);
66
+ onChange(!value);
67
+ }
55
68
  setValue(!value);
56
69
  };
57
70
  var _obj, _obj1;
58
71
  return /*#__PURE__*/ _react.default.createElement("div", (0, _object_spread._)({
59
72
  className: classes(),
60
- onClick: function onClick1(e) {
61
- return onClick(e);
62
- },
73
+ onClick: onClick,
63
74
  style: style
64
75
  }, rest), /*#__PURE__*/ _react.default.createElement("div", {
65
76
  className: (0, _classnames.default)([
@@ -71,9 +82,9 @@ var Switch = function Switch(props) {
71
82
  ],
72
83
  (_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-button-open-rtl"), rtl && value), (0, _define_property._)(_obj, "".concat(classPrefix, "-button-close-rtl"), rtl && !value), _obj)
73
84
  ])
74
- }, !value && !activeText && /*#__PURE__*/ _react.default.createElement("div", {
85
+ }, changing && loadingIcon ? /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, loadingIcon) : /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, !value && !activeText && /*#__PURE__*/ _react.default.createElement("div", {
75
86
  className: "".concat(classPrefix, "-close-line")
76
- })), activeText && /*#__PURE__*/ _react.default.createElement("div", {
87
+ }))), activeText && /*#__PURE__*/ _react.default.createElement("div", {
77
88
  className: (0, _classnames.default)("".concat(classPrefix, "-label"), (_obj1 = {}, (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-open"), value), (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-close"), !value), (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-open-rtl"), rtl && value), (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-close-rtl"), rtl && !value), (0, _define_property._)(_obj1, "".concat(classPrefix, "-label-close-disabled"), disabled && !value), _obj1))
78
89
  }, value ? activeText : inactiveText));
79
90
  };