@tarojs/components-react 4.0.0-canary.8 → 4.0.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 (101) hide show
  1. package/LICENSE +17 -3
  2. package/dist/components/button/index.js +87 -0
  3. package/dist/components/button/index.js.map +1 -0
  4. package/dist/components/button/style/index.scss.js +4 -0
  5. package/dist/components/button/style/index.scss.js.map +1 -0
  6. package/dist/components/icon/index.js +36 -0
  7. package/dist/components/icon/index.js.map +1 -0
  8. package/dist/components/icon/style/index.scss.js +4 -0
  9. package/dist/components/icon/style/index.scss.js.map +1 -0
  10. package/dist/components/image/index.js +78 -105
  11. package/dist/components/image/index.js.map +1 -1
  12. package/dist/components/image/style/index.css.js +4 -0
  13. package/dist/components/image/style/index.css.js.map +1 -0
  14. package/dist/components/input/index.js +233 -0
  15. package/dist/components/input/index.js.map +1 -0
  16. package/dist/components/input/style/index.scss.js +4 -0
  17. package/dist/components/input/style/index.scss.js.map +1 -0
  18. package/dist/components/pull-down-refresh/index.js +197 -212
  19. package/dist/components/pull-down-refresh/index.js.map +1 -1
  20. package/dist/components/pull-down-refresh/style/index.css.js +4 -0
  21. package/dist/components/pull-down-refresh/style/index.css.js.map +1 -0
  22. package/dist/components/scroll-view/index.js +138 -169
  23. package/dist/components/scroll-view/index.js.map +1 -1
  24. package/dist/components/scroll-view/style/index.css.js +4 -0
  25. package/dist/components/scroll-view/style/index.css.js.map +1 -0
  26. package/dist/components/swiper/index.js +250 -270
  27. package/dist/components/swiper/index.js.map +1 -1
  28. package/dist/components/swiper/style/index.css.js +4 -0
  29. package/dist/components/swiper/style/index.css.js.map +1 -0
  30. package/dist/components/text/index.js +24 -34
  31. package/dist/components/text/index.js.map +1 -1
  32. package/dist/components/text/style/index.css.js +4 -0
  33. package/dist/components/text/style/index.css.js.map +1 -0
  34. package/dist/components/view/index.js +73 -99
  35. package/dist/components/view/index.js.map +1 -1
  36. package/dist/index.css +1 -0
  37. package/dist/index.js +4 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/solid/components/button/index.js +95 -0
  40. package/dist/solid/components/button/index.js.map +1 -0
  41. package/dist/solid/components/button/style/index.scss.js +4 -0
  42. package/dist/solid/components/button/style/index.scss.js.map +1 -0
  43. package/dist/solid/components/icon/index.js +39 -0
  44. package/dist/solid/components/icon/index.js.map +1 -0
  45. package/dist/solid/components/icon/style/index.scss.js +4 -0
  46. package/dist/solid/components/icon/style/index.scss.js.map +1 -0
  47. package/dist/solid/components/image/index.js +94 -0
  48. package/dist/solid/components/image/index.js.map +1 -0
  49. package/dist/solid/components/image/style/index.css.js +4 -0
  50. package/dist/solid/components/image/style/index.css.js.map +1 -0
  51. package/dist/solid/components/input/index.js +256 -0
  52. package/dist/solid/components/input/index.js.map +1 -0
  53. package/dist/solid/components/input/style/index.scss.js +4 -0
  54. package/dist/solid/components/input/style/index.scss.js.map +1 -0
  55. package/dist/solid/components/pull-down-refresh/index.js +334 -0
  56. package/dist/solid/components/pull-down-refresh/index.js.map +1 -0
  57. package/dist/solid/components/pull-down-refresh/style/index.css.js +4 -0
  58. package/dist/solid/components/pull-down-refresh/style/index.css.js.map +1 -0
  59. package/dist/solid/components/scroll-view/index.js +188 -0
  60. package/dist/solid/components/scroll-view/index.js.map +1 -0
  61. package/dist/solid/components/scroll-view/style/index.css.js +4 -0
  62. package/dist/solid/components/scroll-view/style/index.css.js.map +1 -0
  63. package/dist/solid/components/swiper/index.js +307 -0
  64. package/dist/solid/components/swiper/index.js.map +1 -0
  65. package/dist/solid/components/swiper/style/index.css.js +4 -0
  66. package/dist/solid/components/swiper/style/index.css.js.map +1 -0
  67. package/dist/solid/components/text/index.js +32 -0
  68. package/dist/solid/components/text/index.js.map +1 -0
  69. package/dist/solid/components/text/style/index.css.js +4 -0
  70. package/dist/solid/components/text/style/index.css.js.map +1 -0
  71. package/dist/solid/components/view/index.js +88 -0
  72. package/dist/solid/components/view/index.js.map +1 -0
  73. package/dist/solid/index.css +1 -0
  74. package/dist/solid/index.js +13 -0
  75. package/dist/solid/index.js.map +1 -0
  76. package/dist/solid/utils/hooks.solid.js +54 -0
  77. package/dist/solid/utils/hooks.solid.js.map +1 -0
  78. package/dist/solid/utils/index.js +58 -0
  79. package/dist/solid/utils/index.js.map +1 -0
  80. package/dist/utils/hooks.react.js +15 -0
  81. package/dist/utils/hooks.react.js.map +1 -0
  82. package/dist/utils/index.js +31 -12
  83. package/dist/utils/index.js.map +1 -1
  84. package/package.json +25 -19
  85. package/types/index.d.ts +14 -0
  86. package/dist/components/image/style/index.js +0 -8
  87. package/dist/components/image/style/index.js.map +0 -1
  88. package/dist/components/pull-down-refresh/style/index.js +0 -8
  89. package/dist/components/pull-down-refresh/style/index.js.map +0 -1
  90. package/dist/components/scroll-view/style/index.js +0 -8
  91. package/dist/components/scroll-view/style/index.js.map +0 -1
  92. package/dist/components/swiper/style/index.js +0 -8
  93. package/dist/components/swiper/style/index.js.map +0 -1
  94. package/dist/components/text/style/index.js +0 -8
  95. package/dist/components/text/style/index.js.map +0 -1
  96. package/dist/components/view/style/index.js +0 -8
  97. package/dist/components/view/style/index.js.map +0 -1
  98. package/dist/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +0 -27
  99. package/dist/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +0 -1
  100. package/dist/node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.js +0 -526
  101. package/dist/node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.js.map +0 -1
@@ -1,20 +1,15 @@
1
- import _typeof from '@babel/runtime/helpers/typeof';
2
- import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
- import _createClass from '@babel/runtime/helpers/createClass';
4
- import _inherits from '@babel/runtime/helpers/inherits';
5
- import _createSuper from '@babel/runtime/helpers/createSuper';
6
- import { __rest } from '../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.js';
1
+ import { __rest } from 'tslib';
7
2
  import 'swiper/swiper-bundle.min.css';
8
- import 'weui';
9
- import './style/index.js';
3
+ import './style/index.css.js';
10
4
  import classNames from 'classnames';
11
- import React from 'react';
5
+ import React__default from 'react';
12
6
  import Swipers from 'swiper/swiper-bundle.esm.js';
13
- import { debounce } from '../../utils/index.js';
7
+ import { debounce, createForwardRefComponent } from '../../utils/index.js';
8
+ import { jsx, jsxs } from 'react/jsx-runtime';
14
9
 
15
- var INSTANCE_ID = 0;
16
- var createEvent = function createEvent(type) {
17
- var e;
10
+ let INSTANCE_ID = 0;
11
+ const createEvent = type => {
12
+ let e;
18
13
  try {
19
14
  e = new TouchEvent(type);
20
15
  } catch (err) {
@@ -23,296 +18,281 @@ var createEvent = function createEvent(type) {
23
18
  }
24
19
  return e;
25
20
  };
26
- var SwiperItem = /*#__PURE__*/function (_React$Component) {
27
- _inherits(SwiperItem, _React$Component);
28
- var _super = _createSuper(SwiperItem);
29
- function SwiperItem() {
30
- _classCallCheck(this, SwiperItem);
31
- return _super.apply(this, arguments);
21
+ class SwiperItemInner extends React__default.Component {
22
+ render() {
23
+ const _a = this.props,
24
+ {
25
+ className,
26
+ style,
27
+ itemId,
28
+ children,
29
+ forwardedRef
30
+ } = _a,
31
+ restProps = __rest(_a, ["className", "style", "itemId", "children", "forwardedRef"]);
32
+ const cls = classNames('swiper-slide', className);
33
+ return /*#__PURE__*/jsx("div", {
34
+ ref: e => {
35
+ if (e && forwardedRef) {
36
+ forwardedRef.current = e;
37
+ }
38
+ },
39
+ className: cls,
40
+ style: style,
41
+ "item-id": itemId,
42
+ ...restProps,
43
+ children: children
44
+ });
32
45
  }
33
- _createClass(SwiperItem, [{
34
- key: "render",
35
- value: function render() {
36
- var _a = this.props,
37
- className = _a.className,
38
- style = _a.style,
39
- itemId = _a.itemId,
40
- children = _a.children,
41
- restProps = __rest(_a, ["className", "style", "itemId", "children"]);
42
- var cls = classNames('swiper-slide', className);
43
- return React.createElement("div", Object.assign({
44
- className: cls,
45
- style: style,
46
- "item-id": itemId
47
- }, restProps), children);
48
- }
49
- }]);
50
- return SwiperItem;
51
- }(React.Component);
52
- var Swiper = /*#__PURE__*/function (_React$Component2) {
53
- _inherits(Swiper, _React$Component2);
54
- var _super2 = _createSuper(Swiper);
55
- function Swiper() {
56
- var _this;
57
- _classCallCheck(this, Swiper);
58
- _this = _super2.apply(this, arguments);
59
- _this._id = 1 + INSTANCE_ID++;
60
- _this._$current = 0;
61
- _this._$width = 0;
62
- _this._$height = 0;
63
- _this.handleSwiperLoopListen = function () {
46
+ }
47
+ class SwiperInner extends React__default.Component {
48
+ constructor() {
49
+ super(...arguments);
50
+ this._id = 1 + INSTANCE_ID++;
51
+ this._$current = 0;
52
+ this._$width = 0;
53
+ this._$height = 0;
54
+ this.handleSwiperLoopListen = () => {
64
55
  var _a, _b, _c, _d;
65
- (_b = (_a = _this.observerFirst) === null || _a === void 0 ? void 0 : _a.disconnect) === null || _b === void 0 ? void 0 : _b.call(_a);
66
- (_d = (_c = _this.observerLast) === null || _c === void 0 ? void 0 : _c.disconnect) === null || _d === void 0 ? void 0 : _d.call(_c);
67
- _this.observerFirst = new MutationObserver(_this.handleSwiperLoop);
68
- _this.observerLast = new MutationObserver(_this.handleSwiperLoop);
69
- var wrapper = _this.mySwiper.$wrapperEl[0];
70
- var list = wrapper.querySelectorAll('taro-swiper-item-core:not(.swiper-slide-duplicate)');
56
+ (_b = (_a = this.observerFirst) === null || _a === void 0 ? void 0 : _a.disconnect) === null || _b === void 0 ? void 0 : _b.call(_a);
57
+ (_d = (_c = this.observerLast) === null || _c === void 0 ? void 0 : _c.disconnect) === null || _d === void 0 ? void 0 : _d.call(_c);
58
+ this.observerFirst = new MutationObserver(this.handleSwiperLoop);
59
+ this.observerLast = new MutationObserver(this.handleSwiperLoop);
60
+ const wrapper = this.mySwiper.$wrapperEl[0];
61
+ const list = wrapper.querySelectorAll('taro-swiper-item-core:not(.swiper-slide-duplicate)');
71
62
  if (list.length >= 1) {
72
- _this.observerFirst.observe(list[0], {
63
+ this.observerFirst.observe(list[0], {
73
64
  characterData: true
74
65
  });
75
66
  } else if (list.length >= 2) {
76
- _this.observerLast.observe(list[list.length - 1], {
67
+ this.observerLast.observe(list[list.length - 1], {
77
68
  characterData: true
78
69
  });
79
70
  }
80
71
  };
81
- _this.handleSwiperLoop = debounce(function () {
82
- if (_this.mySwiper && _this.mySwiper.$wrapperEl && _this.props.circular) {
72
+ this.handleSwiperLoop = debounce(() => {
73
+ if (this.mySwiper && this.mySwiper.$wrapperEl && this.props.circular) {
83
74
  // @ts-ignore
84
- _this.mySwiper.loopDestroy();
75
+ this.mySwiper.loopDestroy();
85
76
  // @ts-ignore
86
- _this.mySwiper.loopCreate();
77
+ this.mySwiper.loopCreate();
87
78
  }
88
79
  }, 500);
89
- return _this;
90
80
  }
91
- _createClass(Swiper, [{
92
- key: "componentDidMount",
93
- value: function componentDidMount() {
94
- var _this2 = this;
95
- var _this$props = this.props,
96
- _this$props$autoplay = _this$props.autoplay,
97
- autoplay = _this$props$autoplay === void 0 ? false : _this$props$autoplay,
98
- _this$props$circular = _this$props.circular,
99
- circular = _this$props$circular === void 0 ? true : _this$props$circular,
100
- _this$props$current = _this$props.current,
101
- current = _this$props$current === void 0 ? 0 : _this$props$current,
102
- _this$props$displayMu = _this$props.displayMultipleItems,
103
- displayMultipleItems = _this$props$displayMu === void 0 ? 1 : _this$props$displayMu,
104
- _this$props$duration = _this$props.duration,
105
- duration = _this$props$duration === void 0 ? 500 : _this$props$duration,
106
- _this$props$interval = _this$props.interval,
107
- interval = _this$props$interval === void 0 ? 5000 : _this$props$interval,
108
- spaceBetween = _this$props.spaceBetween,
109
- vertical = _this$props.vertical;
110
- // eslint-disable-next-line @typescript-eslint/no-this-alias
111
- var that = this;
112
- var opt = {
113
- // 指示器
114
- pagination: {
115
- el: ".taro-swiper-".concat(this._id, " > .swiper-container > .swiper-pagination")
81
+ componentDidMount() {
82
+ const {
83
+ autoplay = false,
84
+ circular = true,
85
+ current = 0,
86
+ displayMultipleItems = 1,
87
+ duration = 500,
88
+ interval = 5000,
89
+ spaceBetween,
90
+ vertical
91
+ } = this.props;
92
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
93
+ const that = this;
94
+ const opt = {
95
+ // 指示器
96
+ pagination: {
97
+ el: `.taro-swiper-${this._id} > .swiper-container > .swiper-pagination`
98
+ },
99
+ direction: vertical ? 'vertical' : 'horizontal',
100
+ loop: circular,
101
+ slidesPerView: parseFloat(String(displayMultipleItems)),
102
+ initialSlide: parseInt(String(current), 10),
103
+ speed: parseInt(String(duration), 10),
104
+ observer: true,
105
+ observeParents: true,
106
+ on: {
107
+ slideChange() {
108
+ const e = createEvent('touchend');
109
+ try {
110
+ Object.defineProperty(e, 'detail', {
111
+ enumerable: true,
112
+ value: {
113
+ current: this.realIndex
114
+ }
115
+ });
116
+ } catch (err) {} // eslint-disable-line no-empty
117
+ that._$current = this.realIndex;
118
+ that.handleOnChange(e);
116
119
  },
117
- direction: vertical ? 'vertical' : 'horizontal',
118
- loop: circular,
119
- slidesPerView: parseFloat(String(displayMultipleItems)),
120
- initialSlide: parseInt(String(current), 10),
121
- speed: parseInt(String(duration), 10),
122
- observer: true,
123
- observeParents: true,
124
- on: {
125
- slideChange: function slideChange() {
126
- var e = createEvent('touchend');
127
- try {
128
- Object.defineProperty(e, 'detail', {
129
- enumerable: true,
130
- value: {
131
- current: this.realIndex
132
- }
133
- });
134
- } catch (err) {} // eslint-disable-line no-empty
135
- that._$current = this.realIndex;
136
- that.handleOnChange(e);
137
- },
138
- transitionEnd: function transitionEnd() {
139
- var e = createEvent('touchend');
140
- try {
141
- Object.defineProperty(e, 'detail', {
142
- enumerable: true,
143
- value: {
144
- current: this.mySwiper.realIndex
145
- }
146
- });
147
- if (this.mySwiper.isBeginning) {
148
- this.mySwiper.slideToLoop(this.props.children.length - 1, 0);
149
- } else if (this.mySwiper.isEnd) {
150
- this.mySwiper.slideToLoop(0, 0);
120
+ transitionEnd() {
121
+ const e = createEvent('touchend');
122
+ try {
123
+ Object.defineProperty(e, 'detail', {
124
+ enumerable: true,
125
+ value: {
126
+ current: this.mySwiper.realIndex
151
127
  }
152
- } catch (err) {} // eslint-disable-line no-empty
153
- that.handleOnAnimationFinish(e);
154
- },
155
- observerUpdate: function observerUpdate(_swiper, e) {
156
- var target = e.target;
157
- var className = target && typeof target.className === 'string' ? target.className : '';
158
- if (className.includes('taro_page') && target.style.display !== 'none') {
159
- if (that.props.autoplay && target.contains(_swiper.$el[0])) {
160
- if (that.props.circular) {
161
- _swiper.slideToLoop(this.realIndex, 0); // 更新下标
162
- } else {
163
- _swiper.slideTo(this.realIndex);
164
- }
128
+ });
129
+ if (this.mySwiper.isBeginning) {
130
+ this.mySwiper.slideToLoop(this.props.children.length - 1, 0);
131
+ } else if (this.mySwiper.isEnd) {
132
+ this.mySwiper.slideToLoop(0, 0);
133
+ }
134
+ } catch (err) {} // eslint-disable-line no-empty
135
+ that.handleOnAnimationFinish(e);
136
+ },
137
+ observerUpdate(_swiper, e) {
138
+ const target = e.target;
139
+ const className = target && typeof target.className === 'string' ? target.className : '';
140
+ if (className.includes('taro_page') && target.style.display !== 'none') {
141
+ if (that.props.autoplay && target.contains(_swiper.$el[0])) {
142
+ if (that.props.circular) {
143
+ _swiper.slideToLoop(this.realIndex, 0); // 更新下标
144
+ } else {
145
+ _swiper.slideTo(this.realIndex);
165
146
  }
166
147
  }
167
148
  }
168
149
  }
169
- };
170
- // 自动播放
171
- if (autoplay) {
172
- opt.autoplay = {
173
- delay: parseInt(String(interval), 10),
174
- disableOnInteraction: false
175
- };
176
- }
177
- // 两端距离
178
- if (spaceBetween) {
179
- opt.spaceBetween = spaceBetween;
180
150
  }
181
- this.mySwiper = new Swipers(this.$el, opt);
182
- setTimeout(function () {
183
- _this2.mySwiper.update();
184
- }, 500);
185
- if (!this.mySwiper || !this.props.circular) return;
186
- var wrapper = this.mySwiper.$wrapperEl[0];
187
- this.observer = new MutationObserver(this.handleSwiperLoopListen);
188
- this.observer.observe(wrapper, {
189
- childList: true
190
- });
151
+ };
152
+ // 自动播放
153
+ if (autoplay) {
154
+ opt.autoplay = {
155
+ delay: parseInt(String(interval), 10),
156
+ disableOnInteraction: false
157
+ };
191
158
  }
192
- }, {
193
- key: "UNSAFE_componentWillReceiveProps",
194
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
195
- if (this.mySwiper) {
196
- var nextCurrent = typeof nextProps.current === 'number' ? nextProps.current : this._$current || 0;
197
- this.handleSwiperLoop();
198
- // 是否衔接滚动模式
199
- if (nextProps.circular) {
200
- if (!this.mySwiper.isBeginning && !this.mySwiper.isEnd) {
201
- this.mySwiper.slideToLoop(parseInt(nextCurrent, 10)); // 更新下标
202
- }
203
- } else {
204
- this.mySwiper.slideTo(parseInt(nextCurrent, 10) + 1); // 更新下标
205
- }
206
- var autoplay = this.mySwiper.autoplay;
207
- // 判断是否需要停止或开始自动轮播
208
- if (autoplay.running !== nextProps.autoplay) {
209
- if (nextProps.autoplay) {
210
- if (_typeof(this.mySwiper.params.autoplay) === 'object') {
211
- this.mySwiper.params.autoplay.disableOnInteraction = false;
212
- this.mySwiper.params.autoplay.delay = parseInt(String(this.props.interval) || '3000', 10);
213
- }
214
- autoplay.start();
215
- } else {
216
- autoplay.stop();
217
- }
218
- }
219
- this.mySwiper.update(); // 更新子元素
220
- }
159
+ // 两端距离
160
+ if (spaceBetween) {
161
+ opt.spaceBetween = spaceBetween;
221
162
  }
222
- }, {
223
- key: "componentDidUpdate",
224
- value: function componentDidUpdate(preProps) {
225
- if (preProps.children.length === 0 && this.props.children.length > 0) {
226
- this.mySwiper.loopDestroy();
227
- this.mySwiper.loopCreate();
163
+ this.mySwiper = new Swipers(this.$el, opt);
164
+ setTimeout(() => {
165
+ this.mySwiper.update();
166
+ }, 500);
167
+ if (!this.mySwiper || !this.props.circular) return;
168
+ const wrapper = this.mySwiper.$wrapperEl[0];
169
+ this.observer = new MutationObserver(this.handleSwiperLoopListen);
170
+ this.observer.observe(wrapper, {
171
+ childList: true
172
+ });
173
+ }
174
+ UNSAFE_componentWillReceiveProps(nextProps) {
175
+ if (this.mySwiper) {
176
+ const nextCurrent = typeof nextProps.current === 'number' ? nextProps.current : this._$current || 0;
177
+ this.handleSwiperLoop();
178
+ // 是否衔接滚动模式
179
+ if (nextProps.circular) {
180
+ if (!this.mySwiper.isBeginning && !this.mySwiper.isEnd) {
181
+ this.mySwiper.slideToLoop(parseInt(nextCurrent, 10)); // 更新下标
182
+ }
183
+ } else {
184
+ this.mySwiper.slideTo(parseInt(nextCurrent, 10) + 1); // 更新下标
228
185
  }
229
- if (!this.mySwiper) return;
230
- if (this.props.autoplay) {
231
- if (this._$width !== this.mySwiper.width || this._$height !== this.mySwiper.height) {
232
- this.mySwiper.autoplay.start();
186
+ const autoplay = this.mySwiper.autoplay;
187
+ // 判断是否需要停止或开始自动轮播
188
+ if (autoplay.running !== nextProps.autoplay) {
189
+ if (nextProps.autoplay) {
190
+ if (typeof this.mySwiper.params.autoplay === 'object') {
191
+ this.mySwiper.params.autoplay.disableOnInteraction = false;
192
+ this.mySwiper.params.autoplay.delay = parseInt(String(this.props.interval) || '3000', 10);
193
+ }
194
+ autoplay.start();
195
+ } else {
196
+ autoplay.stop();
233
197
  }
234
198
  }
235
- this._$width = this.mySwiper.width;
236
- this._$height = this.mySwiper.height;
237
- }
238
- }, {
239
- key: "componentWillUnmount",
240
- value: function componentWillUnmount() {
241
- var _a, _b, _c, _d, _e, _f;
242
- this.$el = null;
243
- if (this.mySwiper) this.mySwiper.destroy();
244
- (_b = (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect) === null || _b === void 0 ? void 0 : _b.call(_a);
245
- (_d = (_c = this.observerFirst) === null || _c === void 0 ? void 0 : _c.disconnect) === null || _d === void 0 ? void 0 : _d.call(_c);
246
- (_f = (_e = this.observerLast) === null || _e === void 0 ? void 0 : _e.disconnect) === null || _f === void 0 ? void 0 : _f.call(_e);
199
+ this.mySwiper.update(); // 更新子元素
247
200
  }
248
- }, {
249
- key: "handleOnChange",
250
- value: function handleOnChange(e) {
251
- var func = this.props.onChange;
252
- typeof func === 'function' && func(e);
253
- }
254
- }, {
255
- key: "handleOnAnimationFinish",
256
- value: function handleOnAnimationFinish(e) {
257
- var func = this.props.onAnimationFinish;
258
- typeof func === 'function' && func(e);
201
+ }
202
+ componentDidUpdate(preProps) {
203
+ if (preProps.children.length === 0 && this.props.children.length > 0) {
204
+ this.mySwiper.loopDestroy();
205
+ this.mySwiper.loopCreate();
259
206
  }
260
- }, {
261
- key: "parsePX",
262
- value: function parsePX() {
263
- var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '0px';
264
- return parseFloat(s.replace(/r*px/i, ''));
207
+ if (!this.mySwiper) return;
208
+ if (this.props.autoplay) {
209
+ if (this._$width !== this.mySwiper.width || this._$height !== this.mySwiper.height) {
210
+ this.mySwiper.autoplay.start();
211
+ }
265
212
  }
266
- }, {
267
- key: "render",
268
- value: function render() {
269
- var _this3 = this;
270
- var _this$props2 = this.props,
271
- className = _this$props2.className,
272
- style = _this$props2.style,
273
- vertical = _this$props2.vertical,
274
- previousMargin = _this$props2.previousMargin,
275
- nextMargin = _this$props2.nextMargin,
276
- indicatorColor = _this$props2.indicatorColor,
277
- indicatorActiveColor = _this$props2.indicatorActiveColor;
278
- var defaultIndicatorColor = indicatorColor || 'rgba(0, 0, 0, .3)';
279
- var defaultIndicatorActiveColor = indicatorActiveColor || '#000';
280
- var cls = classNames("taro-swiper-".concat(this._id), className);
281
- var sty = Object.assign({
282
- paddingTop: vertical ? this.parsePX(previousMargin) : 0,
283
- paddingRight: vertical ? 0 : this.parsePX(nextMargin),
284
- paddingBottom: vertical ? this.parsePX(nextMargin) : 0,
285
- paddingLeft: vertical ? 0 : this.parsePX(previousMargin),
286
- overflow: 'hidden'
287
- }, style);
288
- var paginationCls = classNames('swiper-pagination', {
289
- 'swiper-pagination-hidden': !this.props.indicatorDots,
290
- 'swiper-pagination-bullets': this.props.indicatorDots
291
- });
292
- return React.createElement("div", {
293
- className: "swiper-container-wrapper ".concat(cls),
294
- style: sty
295
- }, React.createElement("div", {
296
- className: 'swiper-container',
213
+ this._$width = this.mySwiper.width;
214
+ this._$height = this.mySwiper.height;
215
+ }
216
+ componentWillUnmount() {
217
+ var _a, _b, _c, _d, _e, _f;
218
+ this.$el = null;
219
+ if (this.mySwiper) this.mySwiper.destroy();
220
+ (_b = (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect) === null || _b === void 0 ? void 0 : _b.call(_a);
221
+ (_d = (_c = this.observerFirst) === null || _c === void 0 ? void 0 : _c.disconnect) === null || _d === void 0 ? void 0 : _d.call(_c);
222
+ (_f = (_e = this.observerLast) === null || _e === void 0 ? void 0 : _e.disconnect) === null || _f === void 0 ? void 0 : _f.call(_e);
223
+ }
224
+ handleOnChange(e) {
225
+ const func = this.props.onChange;
226
+ typeof func === 'function' && func(e);
227
+ }
228
+ handleOnAnimationFinish(e) {
229
+ const func = this.props.onAnimationFinish;
230
+ typeof func === 'function' && func(e);
231
+ }
232
+ parsePX() {
233
+ let s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '0px';
234
+ return parseFloat(s.replace(/r*px/i, ''));
235
+ }
236
+ render() {
237
+ const {
238
+ className,
239
+ style,
240
+ vertical,
241
+ previousMargin,
242
+ nextMargin,
243
+ indicatorColor,
244
+ indicatorActiveColor,
245
+ forwardedRef
246
+ } = this.props;
247
+ const defaultIndicatorColor = indicatorColor || 'rgba(0, 0, 0, .3)';
248
+ const defaultIndicatorActiveColor = indicatorActiveColor || '#000';
249
+ const cls = classNames(`taro-swiper-${this._id}`, className);
250
+ const sty = Object.assign({
251
+ paddingTop: vertical ? this.parsePX(previousMargin) : 0,
252
+ paddingRight: vertical ? 0 : this.parsePX(nextMargin),
253
+ paddingBottom: vertical ? this.parsePX(nextMargin) : 0,
254
+ paddingLeft: vertical ? 0 : this.parsePX(previousMargin),
255
+ overflow: 'hidden'
256
+ }, style);
257
+ const paginationCls = classNames('swiper-pagination', {
258
+ 'swiper-pagination-hidden': !this.props.indicatorDots,
259
+ 'swiper-pagination-bullets': this.props.indicatorDots
260
+ });
261
+ return /*#__PURE__*/jsx("div", {
262
+ className: `swiper-container-wrapper ${cls}`,
263
+ style: sty,
264
+ ref: e => {
265
+ if (forwardedRef && e) {
266
+ forwardedRef.current = e;
267
+ }
268
+ },
269
+ children: /*#__PURE__*/jsxs("div", {
270
+ className: "swiper-container",
297
271
  style: {
298
272
  overflow: 'visible'
299
273
  },
300
- ref: function ref(el) {
301
- _this3.$el = el;
302
- }
303
- }, React.createElement("div", {
304
- dangerouslySetInnerHTML: {
305
- __html: "<style type='text/css'>\n .taro-swiper-".concat(this._id, " > .swiper-container > .swiper-pagination > .swiper-pagination-bullet { background: ").concat(defaultIndicatorColor, " }\n .taro-swiper-").concat(this._id, " > .swiper-container > .swiper-pagination > .swiper-pagination-bullet-active { background: ").concat(defaultIndicatorActiveColor, " }\n </style>")
306
- }
307
- }), React.createElement("div", {
308
- className: 'swiper-wrapper'
309
- }, this.props.children), React.createElement("div", {
310
- className: paginationCls
311
- })));
312
- }
313
- }]);
314
- return Swiper;
315
- }(React.Component);
274
+ ref: el => {
275
+ this.$el = el;
276
+ },
277
+ children: [/*#__PURE__*/jsx("div", {
278
+ dangerouslySetInnerHTML: {
279
+ __html: `<style type='text/css'>
280
+ .taro-swiper-${this._id} > .swiper-container > .swiper-pagination > .swiper-pagination-bullet { background: ${defaultIndicatorColor} }
281
+ .taro-swiper-${this._id} > .swiper-container > .swiper-pagination > .swiper-pagination-bullet-active { background: ${defaultIndicatorActiveColor} }
282
+ </style>`
283
+ }
284
+ }), /*#__PURE__*/jsx("div", {
285
+ className: "swiper-wrapper",
286
+ children: this.props.children
287
+ }), /*#__PURE__*/jsx("div", {
288
+ className: paginationCls
289
+ })]
290
+ })
291
+ });
292
+ }
293
+ }
294
+ const Swiper = createForwardRefComponent(SwiperInner);
295
+ const SwiperItem = createForwardRefComponent(SwiperItemInner);
316
296
 
317
297
  export { Swiper, SwiperItem };
318
298
  //# sourceMappingURL=index.js.map