@tarojs/components-react 3.6.5-alpha → 3.6.5-canary.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.
@@ -11,49 +11,37 @@ function easeOutScroll() {
11
11
  var from = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
12
12
  var to = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
13
13
  var callback = arguments.length > 2 ? arguments[2] : undefined;
14
-
15
14
  if (from === to || typeof from !== 'number') {
16
15
  return;
17
16
  }
18
-
19
17
  var change = to - from;
20
18
  var dur = 500;
21
19
  var sTime = +new Date();
22
-
23
20
  function linear(t, b, c, d) {
24
21
  return c * t / d + b;
25
22
  }
26
-
27
23
  var isLarger = to >= from;
28
-
29
24
  function step() {
30
25
  from = linear(+new Date() - sTime, from, change, dur);
31
-
32
26
  if (isLarger && from >= to || !isLarger && to >= from) {
33
27
  callback(to);
34
28
  return;
35
29
  }
36
-
37
30
  callback(from);
38
31
  requestAnimationFrame(step);
39
32
  }
40
-
41
33
  step();
42
34
  }
43
-
44
35
  function scrollIntoView(id) {
45
36
  var _a;
46
-
47
37
  (_a = document.querySelector("#".concat(id))) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
48
38
  behavior: 'smooth',
49
39
  block: 'center',
50
40
  inline: 'start'
51
41
  });
52
42
  }
53
-
54
43
  function scrollVertical(top, isAnimation) {
55
44
  var _this = this;
56
-
57
45
  if (isAnimation) {
58
46
  easeOutScroll(this._scrollTop, top, function (pos) {
59
47
  if (_this.container) _this.container.scrollTop = pos;
@@ -61,13 +49,10 @@ function scrollVertical(top, isAnimation) {
61
49
  } else {
62
50
  if (this.container) this.container.scrollTop = top;
63
51
  }
64
-
65
52
  this._scrollTop = top;
66
53
  }
67
-
68
54
  function scrollHorizontal(left, isAnimation) {
69
55
  var _this2 = this;
70
-
71
56
  if (isAnimation) {
72
57
  easeOutScroll(this._scrollLeft, left, function (pos) {
73
58
  if (_this2.container) _this2.container.scrollLeft = pos;
@@ -75,32 +60,23 @@ function scrollHorizontal(left, isAnimation) {
75
60
  } else {
76
61
  if (this.container) this.container.scrollLeft = left;
77
62
  }
78
-
79
63
  this._scrollLeft = left;
80
64
  }
81
-
82
65
  var ScrollView = /*#__PURE__*/function (_React$Component) {
83
66
  _inherits(ScrollView, _React$Component);
84
-
85
67
  var _super = _createSuper(ScrollView);
86
-
87
68
  function ScrollView() {
88
69
  var _this3;
89
-
90
70
  _classCallCheck(this, ScrollView);
91
-
92
71
  _this3 = _super.apply(this, arguments);
93
72
  _this3._scrollTop = null;
94
73
  _this3._scrollLeft = null;
95
74
  _this3.container = null;
96
-
97
75
  _this3.onTouchMove = function (e) {
98
76
  e.stopPropagation();
99
77
  };
100
-
101
78
  return _this3;
102
79
  }
103
-
104
80
  _createClass(ScrollView, [{
105
81
  key: "componentDidMount",
106
82
  value: function componentDidMount() {
@@ -115,9 +91,7 @@ var ScrollView = /*#__PURE__*/function (_React$Component) {
115
91
  key: "handleScroll",
116
92
  value: function handleScroll(props) {
117
93
  var _this4 = this;
118
-
119
94
  var isInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
120
-
121
95
  // scrollIntoView
122
96
  if (props.scrollIntoView && typeof props.scrollIntoView === 'string' && document && document.querySelector && document.querySelector("#".concat(props.scrollIntoView))) {
123
97
  if (isInit) {
@@ -128,8 +102,8 @@ var ScrollView = /*#__PURE__*/function (_React$Component) {
128
102
  scrollIntoView(props.scrollIntoView);
129
103
  }
130
104
  } else {
131
- var isAnimation = !!props.scrollWithAnimation; // Y 轴滚动
132
-
105
+ var isAnimation = !!props.scrollWithAnimation;
106
+ // Y 轴滚动
133
107
  if (props.scrollY && typeof props.scrollTop === 'number' && props.scrollTop !== this._scrollTop) {
134
108
  if (isInit) {
135
109
  setTimeout(function () {
@@ -138,9 +112,8 @@ var ScrollView = /*#__PURE__*/function (_React$Component) {
138
112
  } else {
139
113
  scrollVertical.bind(this)(props.scrollTop, isAnimation);
140
114
  }
141
- } // X 轴滚动
142
-
143
-
115
+ }
116
+ // X 轴滚动
144
117
  if (props.scrollX && typeof props.scrollLeft === 'number' && props.scrollLeft !== this._scrollLeft) {
145
118
  if (isInit) {
146
119
  setTimeout(function () {
@@ -156,56 +129,50 @@ var ScrollView = /*#__PURE__*/function (_React$Component) {
156
129
  key: "render",
157
130
  value: function render() {
158
131
  var _this5 = this;
159
-
160
132
  var _this$props = this.props,
161
- className = _this$props.className,
162
- _this$props$style = _this$props.style,
163
- style = _this$props$style === void 0 ? {} : _this$props$style,
164
- onScroll = _this$props.onScroll,
165
- onScrollToUpper = _this$props.onScrollToUpper,
166
- onScrollToLower = _this$props.onScrollToLower,
167
- onTouchMove = _this$props.onTouchMove,
168
- scrollX = _this$props.scrollX,
169
- scrollY = _this$props.scrollY;
133
+ className = _this$props.className,
134
+ _this$props$style = _this$props.style,
135
+ style = _this$props$style === void 0 ? {} : _this$props$style,
136
+ onScroll = _this$props.onScroll,
137
+ onScrollToUpper = _this$props.onScrollToUpper,
138
+ onScrollToLower = _this$props.onScrollToLower,
139
+ onTouchMove = _this$props.onTouchMove,
140
+ scrollX = _this$props.scrollX,
141
+ scrollY = _this$props.scrollY;
170
142
  var _this$props2 = this.props,
171
- _this$props2$upperThr = _this$props2.upperThreshold,
172
- upperThreshold = _this$props2$upperThr === void 0 ? 50 : _this$props2$upperThr,
173
- _this$props2$lowerThr = _this$props2.lowerThreshold,
174
- lowerThreshold = _this$props2$lowerThr === void 0 ? 50 : _this$props2$lowerThr;
143
+ _this$props2$upperThr = _this$props2.upperThreshold,
144
+ upperThreshold = _this$props2$upperThr === void 0 ? 50 : _this$props2$upperThr,
145
+ _this$props2$lowerThr = _this$props2.lowerThreshold,
146
+ lowerThreshold = _this$props2$lowerThr === void 0 ? 50 : _this$props2$lowerThr;
175
147
  var cls = classNames('taro-scroll', {
176
148
  'taro-scroll-view__scroll-x': scrollX,
177
149
  'taro-scroll-view__scroll-y': scrollY
178
150
  }, className);
179
151
  upperThreshold = Number(upperThreshold);
180
152
  lowerThreshold = Number(lowerThreshold);
181
-
182
153
  var upperAndLower = function upperAndLower(e) {
183
154
  if (!_this5.container) return;
184
155
  var _this5$container = _this5.container,
185
- offsetWidth = _this5$container.offsetWidth,
186
- offsetHeight = _this5$container.offsetHeight,
187
- scrollLeft = _this5$container.scrollLeft,
188
- scrollTop = _this5$container.scrollTop,
189
- scrollHeight = _this5$container.scrollHeight,
190
- scrollWidth = _this5$container.scrollWidth;
191
-
156
+ offsetWidth = _this5$container.offsetWidth,
157
+ offsetHeight = _this5$container.offsetHeight,
158
+ scrollLeft = _this5$container.scrollLeft,
159
+ scrollTop = _this5$container.scrollTop,
160
+ scrollHeight = _this5$container.scrollHeight,
161
+ scrollWidth = _this5$container.scrollWidth;
192
162
  if (onScrollToLower && (_this5.props.scrollY && offsetHeight + scrollTop + lowerThreshold >= scrollHeight || _this5.props.scrollX && offsetWidth + scrollLeft + lowerThreshold >= scrollWidth)) {
193
163
  onScrollToLower(e);
194
164
  }
195
-
196
165
  if (onScrollToUpper && (_this5.props.scrollY && scrollTop <= upperThreshold || _this5.props.scrollX && scrollLeft <= upperThreshold)) {
197
166
  onScrollToUpper(e);
198
167
  }
199
168
  };
200
-
201
169
  var upperAndLowerThrottle = throttle(upperAndLower, 200);
202
-
203
170
  var _onScroll = function _onScroll(e) {
204
171
  var _this5$container2 = _this5.container,
205
- scrollLeft = _this5$container2.scrollLeft,
206
- scrollTop = _this5$container2.scrollTop,
207
- scrollHeight = _this5$container2.scrollHeight,
208
- scrollWidth = _this5$container2.scrollWidth;
172
+ scrollLeft = _this5$container2.scrollLeft,
173
+ scrollTop = _this5$container2.scrollTop,
174
+ scrollHeight = _this5$container2.scrollHeight,
175
+ scrollWidth = _this5$container2.scrollWidth;
209
176
  _this5._scrollLeft = scrollLeft;
210
177
  _this5._scrollTop = scrollTop;
211
178
  Object.defineProperty(e, 'detail', {
@@ -221,11 +188,9 @@ var ScrollView = /*#__PURE__*/function (_React$Component) {
221
188
  upperAndLowerThrottle(e);
222
189
  onScroll && onScroll(e);
223
190
  };
224
-
225
191
  var _onTouchMove = function _onTouchMove(e) {
226
192
  onTouchMove ? onTouchMove(e) : _this5.onTouchMove(e);
227
193
  };
228
-
229
194
  return React.createElement("div", {
230
195
  ref: function ref(container) {
231
196
  _this5.container = container;
@@ -237,7 +202,6 @@ var ScrollView = /*#__PURE__*/function (_React$Component) {
237
202
  }, this.props.children);
238
203
  }
239
204
  }]);
240
-
241
205
  return ScrollView;
242
206
  }(React.Component);
243
207
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/scroll-view/index.tsx"],"sourcesContent":["import 'weui'\nimport './style/index.css'\n\nimport classNames from 'classnames'\nimport React from 'react'\n\nimport { throttle } from '../../utils'\n\nfunction easeOutScroll (from = 0, to = 0, callback) {\n if (from === to || typeof from !== 'number') {\n return\n }\n const change = to - from\n const dur = 500\n const sTime = +new Date()\n function linear (t, b, c, d) {\n return (c * t) / d + b\n }\n const isLarger = to >= from\n\n function step () {\n from = linear(+new Date() - sTime, from, change, dur)\n if ((isLarger && from >= to) || (!isLarger && to >= from)) {\n callback(to)\n return\n }\n callback(from)\n requestAnimationFrame(step)\n }\n step()\n}\n\nfunction scrollIntoView (id) {\n document.querySelector(`#${id}`)?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'start'\n })\n}\n\nfunction scrollVertical (top, isAnimation) {\n if (isAnimation) {\n easeOutScroll(this._scrollTop, top, pos => {\n if (this.container) this.container.scrollTop = pos\n })\n } else {\n if (this.container) this.container.scrollTop = top\n }\n this._scrollTop = top\n}\n\nfunction scrollHorizontal (left, isAnimation) {\n if (isAnimation) {\n easeOutScroll(this._scrollLeft, left, pos => {\n if (this.container) this.container.scrollLeft = pos\n })\n } else {\n if (this.container) this.container.scrollLeft = left\n }\n this._scrollLeft = left\n}\n\ninterface IProps extends React.HTMLAttributes<HTMLDivElement> {\n scrollX: boolean\n scrollY: boolean\n upperThreshold: number\n lowerThreshold: number\n scrollTop: number\n scrollLeft: number\n scrollIntoView?: string\n scrollWithAnimation: boolean\n enableBackToTop?: boolean\n onScrollToUpper: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScrollToLower: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScroll: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onTouchMove: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n}\n\nclass ScrollView extends React.Component<IProps> {\n _scrollTop: any = null\n _scrollLeft: any = null\n container: any = null\n\n onTouchMove = e => {\n e.stopPropagation()\n }\n\n componentDidMount () {\n this.handleScroll(this.props, true)\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n this.handleScroll(nextProps)\n }\n\n handleScroll (props, isInit = false) {\n // scrollIntoView\n if (\n props.scrollIntoView &&\n typeof props.scrollIntoView === 'string' &&\n document &&\n document.querySelector &&\n document.querySelector(`#${props.scrollIntoView}`)\n ) {\n if (isInit) {\n setTimeout(() => scrollIntoView(props.scrollIntoView), 500)\n } else {\n scrollIntoView(props.scrollIntoView)\n }\n } else {\n const isAnimation = !!props.scrollWithAnimation\n // Y 轴滚动\n if (props.scrollY && typeof props.scrollTop === 'number' && props.scrollTop !== this._scrollTop) {\n if (isInit) {\n setTimeout(() => scrollVertical.bind(this)(props.scrollTop, isAnimation), 10)\n } else {\n scrollVertical.bind(this)(props.scrollTop, isAnimation)\n }\n }\n // X 轴滚动\n if (props.scrollX && typeof props.scrollLeft === 'number' && props.scrollLeft !== this._scrollLeft) {\n if (isInit) {\n setTimeout(() => scrollHorizontal.bind(this)(props.scrollLeft, isAnimation), 10)\n } else {\n scrollHorizontal.bind(this)(props.scrollLeft, isAnimation)\n }\n }\n }\n }\n\n render () {\n const {\n className,\n style = {},\n onScroll,\n onScrollToUpper,\n onScrollToLower,\n onTouchMove,\n scrollX,\n scrollY\n } = this.props\n let { upperThreshold = 50, lowerThreshold = 50 } = this.props\n const cls = classNames(\n 'taro-scroll',\n {\n 'taro-scroll-view__scroll-x': scrollX,\n 'taro-scroll-view__scroll-y': scrollY\n },\n className\n )\n upperThreshold = Number(upperThreshold)\n lowerThreshold = Number(lowerThreshold)\n const upperAndLower = e => {\n if (!this.container) return\n const { offsetWidth, offsetHeight, scrollLeft, scrollTop, scrollHeight, scrollWidth } = this.container\n if (\n onScrollToLower &&\n ((this.props.scrollY && offsetHeight + scrollTop + lowerThreshold >= scrollHeight) ||\n (this.props.scrollX && offsetWidth + scrollLeft + lowerThreshold >= scrollWidth))\n ) {\n onScrollToLower(e)\n }\n if (\n onScrollToUpper &&\n ((this.props.scrollY && scrollTop <= upperThreshold) || (this.props.scrollX && scrollLeft <= upperThreshold))\n ) {\n onScrollToUpper(e)\n }\n }\n const upperAndLowerThrottle = throttle(upperAndLower, 200)\n const _onScroll = e => {\n const { scrollLeft, scrollTop, scrollHeight, scrollWidth } = this.container\n this._scrollLeft = scrollLeft\n this._scrollTop = scrollTop\n Object.defineProperty(e, 'detail', {\n enumerable: true,\n writable: true,\n value: {\n scrollLeft,\n scrollTop,\n scrollHeight,\n scrollWidth\n }\n })\n upperAndLowerThrottle(e)\n onScroll && onScroll(e)\n }\n const _onTouchMove = e => {\n onTouchMove ? onTouchMove(e) : this.onTouchMove(e)\n }\n return (\n <div\n ref={container => {\n this.container = container\n }}\n style={style}\n className={cls}\n onScroll={_onScroll}\n onTouchMove={_onTouchMove}\n >\n {this.props.children}\n </div>\n )\n }\n}\n\nexport default ScrollView\n"],"names":["easeOutScroll","from","to","callback","change","dur","sTime","Date","linear","t","b","c","d","isLarger","step","requestAnimationFrame","scrollIntoView","id","_a","document","querySelector","behavior","block","inline","scrollVertical","top","isAnimation","_scrollTop","pos","container","scrollTop","scrollHorizontal","left","_scrollLeft","scrollLeft","ScrollView","onTouchMove","e","stopPropagation","handleScroll","props","nextProps","isInit","setTimeout","scrollWithAnimation","scrollY","bind","scrollX","className","style","onScroll","onScrollToUpper","onScrollToLower","upperThreshold","lowerThreshold","cls","classNames","Number","upperAndLower","offsetWidth","offsetHeight","scrollHeight","scrollWidth","upperAndLowerThrottle","throttle","_onScroll","Object","defineProperty","enumerable","writable","value","_onTouchMove","React","createElement","ref","children","Component"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/scroll-view/index.tsx"],"sourcesContent":["import 'weui'\nimport './style/index.css'\n\nimport classNames from 'classnames'\nimport React from 'react'\n\nimport { throttle } from '../../utils'\n\nfunction easeOutScroll (from = 0, to = 0, callback) {\n if (from === to || typeof from !== 'number') {\n return\n }\n const change = to - from\n const dur = 500\n const sTime = +new Date()\n function linear (t, b, c, d) {\n return (c * t) / d + b\n }\n const isLarger = to >= from\n\n function step () {\n from = linear(+new Date() - sTime, from, change, dur)\n if ((isLarger && from >= to) || (!isLarger && to >= from)) {\n callback(to)\n return\n }\n callback(from)\n requestAnimationFrame(step)\n }\n step()\n}\n\nfunction scrollIntoView (id) {\n document.querySelector(`#${id}`)?.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'start'\n })\n}\n\nfunction scrollVertical (top, isAnimation) {\n if (isAnimation) {\n easeOutScroll(this._scrollTop, top, pos => {\n if (this.container) this.container.scrollTop = pos\n })\n } else {\n if (this.container) this.container.scrollTop = top\n }\n this._scrollTop = top\n}\n\nfunction scrollHorizontal (left, isAnimation) {\n if (isAnimation) {\n easeOutScroll(this._scrollLeft, left, pos => {\n if (this.container) this.container.scrollLeft = pos\n })\n } else {\n if (this.container) this.container.scrollLeft = left\n }\n this._scrollLeft = left\n}\n\ninterface IProps extends React.HTMLAttributes<HTMLDivElement> {\n scrollX: boolean\n scrollY: boolean\n upperThreshold: number\n lowerThreshold: number\n scrollTop: number\n scrollLeft: number\n scrollIntoView?: string\n scrollWithAnimation: boolean\n enableBackToTop?: boolean\n onScrollToUpper: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScrollToLower: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onScroll: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n onTouchMove: (e: React.SyntheticEvent<HTMLDivElement, Event>) => void\n}\n\nclass ScrollView extends React.Component<IProps> {\n _scrollTop: any = null\n _scrollLeft: any = null\n container: any = null\n\n onTouchMove = e => {\n e.stopPropagation()\n }\n\n componentDidMount () {\n this.handleScroll(this.props, true)\n }\n\n UNSAFE_componentWillReceiveProps (nextProps) {\n this.handleScroll(nextProps)\n }\n\n handleScroll (props, isInit = false) {\n // scrollIntoView\n if (\n props.scrollIntoView &&\n typeof props.scrollIntoView === 'string' &&\n document &&\n document.querySelector &&\n document.querySelector(`#${props.scrollIntoView}`)\n ) {\n if (isInit) {\n setTimeout(() => scrollIntoView(props.scrollIntoView), 500)\n } else {\n scrollIntoView(props.scrollIntoView)\n }\n } else {\n const isAnimation = !!props.scrollWithAnimation\n // Y 轴滚动\n if (props.scrollY && typeof props.scrollTop === 'number' && props.scrollTop !== this._scrollTop) {\n if (isInit) {\n setTimeout(() => scrollVertical.bind(this)(props.scrollTop, isAnimation), 10)\n } else {\n scrollVertical.bind(this)(props.scrollTop, isAnimation)\n }\n }\n // X 轴滚动\n if (props.scrollX && typeof props.scrollLeft === 'number' && props.scrollLeft !== this._scrollLeft) {\n if (isInit) {\n setTimeout(() => scrollHorizontal.bind(this)(props.scrollLeft, isAnimation), 10)\n } else {\n scrollHorizontal.bind(this)(props.scrollLeft, isAnimation)\n }\n }\n }\n }\n\n render () {\n const {\n className,\n style = {},\n onScroll,\n onScrollToUpper,\n onScrollToLower,\n onTouchMove,\n scrollX,\n scrollY\n } = this.props\n let { upperThreshold = 50, lowerThreshold = 50 } = this.props\n const cls = classNames(\n 'taro-scroll',\n {\n 'taro-scroll-view__scroll-x': scrollX,\n 'taro-scroll-view__scroll-y': scrollY\n },\n className\n )\n upperThreshold = Number(upperThreshold)\n lowerThreshold = Number(lowerThreshold)\n const upperAndLower = e => {\n if (!this.container) return\n const { offsetWidth, offsetHeight, scrollLeft, scrollTop, scrollHeight, scrollWidth } = this.container\n if (\n onScrollToLower &&\n ((this.props.scrollY && offsetHeight + scrollTop + lowerThreshold >= scrollHeight) ||\n (this.props.scrollX && offsetWidth + scrollLeft + lowerThreshold >= scrollWidth))\n ) {\n onScrollToLower(e)\n }\n if (\n onScrollToUpper &&\n ((this.props.scrollY && scrollTop <= upperThreshold) || (this.props.scrollX && scrollLeft <= upperThreshold))\n ) {\n onScrollToUpper(e)\n }\n }\n const upperAndLowerThrottle = throttle(upperAndLower, 200)\n const _onScroll = e => {\n const { scrollLeft, scrollTop, scrollHeight, scrollWidth } = this.container\n this._scrollLeft = scrollLeft\n this._scrollTop = scrollTop\n Object.defineProperty(e, 'detail', {\n enumerable: true,\n writable: true,\n value: {\n scrollLeft,\n scrollTop,\n scrollHeight,\n scrollWidth\n }\n })\n upperAndLowerThrottle(e)\n onScroll && onScroll(e)\n }\n const _onTouchMove = e => {\n onTouchMove ? onTouchMove(e) : this.onTouchMove(e)\n }\n return (\n <div\n ref={container => {\n this.container = container\n }}\n style={style}\n className={cls}\n onScroll={_onScroll}\n onTouchMove={_onTouchMove}\n >\n {this.props.children}\n </div>\n )\n }\n}\n\nexport default ScrollView\n"],"names":["easeOutScroll","from","arguments","length","undefined","to","callback","change","dur","sTime","Date","linear","t","b","c","d","isLarger","step","requestAnimationFrame","scrollIntoView","id","_a","document","querySelector","concat","behavior","block","inline","scrollVertical","top","isAnimation","_this","_scrollTop","pos","container","scrollTop","scrollHorizontal","left","_this2","_scrollLeft","scrollLeft","ScrollView","_React$Component","_inherits","_super","_createSuper","_this3","_classCallCheck","onTouchMove","e","stopPropagation","_createClass","key","value","componentDidMount","handleScroll","props","UNSAFE_componentWillReceiveProps","nextProps","_this4","isInit","setTimeout","scrollWithAnimation","scrollY","bind","scrollX","render","_this5","_this$props","className","_this$props$style","style","onScroll","onScrollToUpper","onScrollToLower","_this$props2","_this$props2$upperThr","upperThreshold","_this$props2$lowerThr","lowerThreshold","cls","classNames","Number","upperAndLower","_this5$container","offsetWidth","offsetHeight","scrollHeight","scrollWidth","upperAndLowerThrottle","throttle","_onScroll","_this5$container2","Object","defineProperty","enumerable","writable","_onTouchMove","React","createElement","ref","children","Component"],"mappings":"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"}
@@ -12,41 +12,32 @@ import Swipers from 'swiper/swiper-bundle.esm.js';
12
12
  import { debounce } from '../../utils/index.js';
13
13
 
14
14
  var INSTANCE_ID = 0;
15
-
16
15
  var createEvent = function createEvent(type) {
17
16
  var e;
18
-
19
17
  try {
20
18
  e = new TouchEvent(type);
21
19
  } catch (err) {
22
20
  e = document.createEvent('Event');
23
21
  e.initEvent(type, true, true);
24
22
  }
25
-
26
23
  return e;
27
24
  };
28
-
29
25
  var SwiperItem = /*#__PURE__*/function (_React$Component) {
30
26
  _inherits(SwiperItem, _React$Component);
31
-
32
27
  var _super = _createSuper(SwiperItem);
33
-
34
28
  function SwiperItem() {
35
29
  _classCallCheck(this, SwiperItem);
36
-
37
30
  return _super.apply(this, arguments);
38
31
  }
39
-
40
32
  _createClass(SwiperItem, [{
41
33
  key: "render",
42
34
  value: function render() {
43
35
  var _a = this.props,
44
- className = _a.className,
45
- style = _a.style,
46
- itemId = _a.itemId,
47
- children = _a.children,
48
- restProps = __rest(_a, ["className", "style", "itemId", "children"]);
49
-
36
+ className = _a.className,
37
+ style = _a.style,
38
+ itemId = _a.itemId,
39
+ children = _a.children,
40
+ restProps = __rest(_a, ["className", "style", "itemId", "children"]);
50
41
  var cls = classNames('swiper-slide', className);
51
42
  return React.createElement("div", Object.assign({
52
43
  className: cls,
@@ -55,36 +46,27 @@ var SwiperItem = /*#__PURE__*/function (_React$Component) {
55
46
  }, restProps), children);
56
47
  }
57
48
  }]);
58
-
59
49
  return SwiperItem;
60
50
  }(React.Component);
61
-
62
51
  var Swiper = /*#__PURE__*/function (_React$Component2) {
63
52
  _inherits(Swiper, _React$Component2);
64
-
65
53
  var _super2 = _createSuper(Swiper);
66
-
67
54
  function Swiper() {
68
55
  var _this;
69
-
70
56
  _classCallCheck(this, Swiper);
71
-
72
57
  _this = _super2.apply(this, arguments);
73
58
  _this._id = 1 + INSTANCE_ID++;
74
59
  _this._$current = 0;
75
60
  _this._$width = 0;
76
61
  _this._$height = 0;
77
-
78
62
  _this.handleSwiperLoopListen = function () {
79
63
  var _a, _b, _c, _d;
80
-
81
64
  (_b = (_a = _this.observerFirst) === null || _a === void 0 ? void 0 : _a.disconnect) === null || _b === void 0 ? void 0 : _b.call(_a);
82
65
  (_d = (_c = _this.observerLast) === null || _c === void 0 ? void 0 : _c.disconnect) === null || _d === void 0 ? void 0 : _d.call(_c);
83
66
  _this.observerFirst = new MutationObserver(_this.handleSwiperLoop);
84
67
  _this.observerLast = new MutationObserver(_this.handleSwiperLoop);
85
68
  var wrapper = _this.mySwiper.$wrapperEl[0];
86
69
  var list = wrapper.querySelectorAll('taro-swiper-item-core:not(.swiper-slide-duplicate)');
87
-
88
70
  if (list.length >= 1) {
89
71
  _this.observerFirst.observe(list[0], {
90
72
  characterData: true
@@ -95,40 +77,36 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
95
77
  });
96
78
  }
97
79
  };
98
-
99
80
  _this.handleSwiperLoop = debounce(function () {
100
81
  if (_this.mySwiper && _this.mySwiper.$wrapperEl && _this.props.circular) {
101
82
  // @ts-ignore
102
- _this.mySwiper.loopDestroy(); // @ts-ignore
103
-
104
-
83
+ _this.mySwiper.loopDestroy();
84
+ // @ts-ignore
105
85
  _this.mySwiper.loopCreate();
106
86
  }
107
87
  }, 500);
108
88
  return _this;
109
89
  }
110
-
111
90
  _createClass(Swiper, [{
112
91
  key: "componentDidMount",
113
92
  value: function componentDidMount() {
114
93
  var _this2 = this;
115
-
116
94
  var _this$props = this.props,
117
- _this$props$autoplay = _this$props.autoplay,
118
- autoplay = _this$props$autoplay === void 0 ? false : _this$props$autoplay,
119
- _this$props$circular = _this$props.circular,
120
- circular = _this$props$circular === void 0 ? true : _this$props$circular,
121
- _this$props$current = _this$props.current,
122
- current = _this$props$current === void 0 ? 0 : _this$props$current,
123
- _this$props$displayMu = _this$props.displayMultipleItems,
124
- displayMultipleItems = _this$props$displayMu === void 0 ? 1 : _this$props$displayMu,
125
- _this$props$duration = _this$props.duration,
126
- duration = _this$props$duration === void 0 ? 500 : _this$props$duration,
127
- _this$props$interval = _this$props.interval,
128
- interval = _this$props$interval === void 0 ? 5000 : _this$props$interval,
129
- spaceBetween = _this$props.spaceBetween,
130
- vertical = _this$props.vertical; // eslint-disable-next-line @typescript-eslint/no-this-alias
131
-
95
+ _this$props$autoplay = _this$props.autoplay,
96
+ autoplay = _this$props$autoplay === void 0 ? false : _this$props$autoplay,
97
+ _this$props$circular = _this$props.circular,
98
+ circular = _this$props$circular === void 0 ? true : _this$props$circular,
99
+ _this$props$current = _this$props.current,
100
+ current = _this$props$current === void 0 ? 0 : _this$props$current,
101
+ _this$props$displayMu = _this$props.displayMultipleItems,
102
+ displayMultipleItems = _this$props$displayMu === void 0 ? 1 : _this$props$displayMu,
103
+ _this$props$duration = _this$props.duration,
104
+ duration = _this$props$duration === void 0 ? 500 : _this$props$duration,
105
+ _this$props$interval = _this$props.interval,
106
+ interval = _this$props$interval === void 0 ? 5000 : _this$props$interval,
107
+ spaceBetween = _this$props.spaceBetween,
108
+ vertical = _this$props.vertical;
109
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
132
110
  var that = this;
133
111
  var opt = {
134
112
  // 指示器
@@ -145,7 +123,6 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
145
123
  on: {
146
124
  slideChange: function slideChange() {
147
125
  var e = createEvent('touchend');
148
-
149
126
  try {
150
127
  Object.defineProperty(e, 'detail', {
151
128
  enumerable: true,
@@ -154,14 +131,11 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
154
131
  }
155
132
  });
156
133
  } catch (err) {} // eslint-disable-line no-empty
157
-
158
-
159
134
  that._$current = this.realIndex;
160
135
  that.handleOnChange(e);
161
136
  },
162
137
  transitionEnd: function transitionEnd() {
163
138
  var e = createEvent('touchend');
164
-
165
139
  try {
166
140
  Object.defineProperty(e, 'detail', {
167
141
  enumerable: true,
@@ -169,26 +143,21 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
169
143
  current: this.mySwiper.realIndex
170
144
  }
171
145
  });
172
-
173
146
  if (this.mySwiper.isBeginning) {
174
147
  this.mySwiper.slideToLoop(this.props.children.length - 1, 0);
175
148
  } else if (this.mySwiper.isEnd) {
176
149
  this.mySwiper.slideToLoop(0, 0);
177
150
  }
178
151
  } catch (err) {} // eslint-disable-line no-empty
179
-
180
-
181
152
  that.handleOnAnimationFinish(e);
182
153
  },
183
154
  observerUpdate: function observerUpdate(_swiper, e) {
184
155
  var target = e.target;
185
156
  var className = target && typeof target.className === 'string' ? target.className : '';
186
-
187
157
  if (className.includes('taro_page') && target.style.display !== 'none') {
188
158
  if (that.props.autoplay && target.contains(_swiper.$el[0])) {
189
159
  if (that.props.circular) {
190
160
  _swiper.slideToLoop(this.realIndex, 0); // 更新下标
191
-
192
161
  } else {
193
162
  _swiper.slideTo(this.realIndex);
194
163
  }
@@ -196,20 +165,18 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
196
165
  }
197
166
  }
198
167
  }
199
- }; // 自动播放
200
-
168
+ };
169
+ // 自动播放
201
170
  if (autoplay) {
202
171
  opt.autoplay = {
203
172
  delay: parseInt(String(interval), 10),
204
173
  disableOnInteraction: false
205
174
  };
206
- } // 两端距离
207
-
208
-
175
+ }
176
+ // 两端距离
209
177
  if (spaceBetween) {
210
178
  opt.spaceBetween = spaceBetween;
211
179
  }
212
-
213
180
  this.mySwiper = new Swipers(this.$el, opt);
214
181
  setTimeout(function () {
215
182
  _this2.mySwiper.update();
@@ -226,8 +193,8 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
226
193
  value: function UNSAFE_componentWillReceiveProps(nextProps) {
227
194
  if (this.mySwiper) {
228
195
  var nextCurrent = typeof nextProps.current === 'number' ? nextProps.current : this._$current || 0;
229
- this.handleSwiperLoop(); // 是否衔接滚动模式
230
-
196
+ this.handleSwiperLoop();
197
+ // 是否衔接滚动模式
231
198
  if (nextProps.circular) {
232
199
  if (!this.mySwiper.isBeginning && !this.mySwiper.isEnd) {
233
200
  this.mySwiper.slideToLoop(parseInt(nextCurrent, 10)); // 更新下标
@@ -236,21 +203,19 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
236
203
  this.mySwiper.slideTo(parseInt(nextCurrent, 10) + 1); // 更新下标
237
204
  }
238
205
 
239
- var autoplay = this.mySwiper.autoplay; // 判断是否需要停止或开始自动轮播
240
-
206
+ var autoplay = this.mySwiper.autoplay;
207
+ // 判断是否需要停止或开始自动轮播
241
208
  if (autoplay.running !== nextProps.autoplay) {
242
209
  if (nextProps.autoplay) {
243
210
  if (_typeof(this.mySwiper.params.autoplay) === 'object') {
244
211
  this.mySwiper.params.autoplay.disableOnInteraction = false;
245
212
  this.mySwiper.params.autoplay.delay = parseInt(String(this.props.interval) || '3000', 10);
246
213
  }
247
-
248
214
  autoplay.start();
249
215
  } else {
250
216
  autoplay.stop();
251
217
  }
252
218
  }
253
-
254
219
  this.mySwiper.update(); // 更新子元素
255
220
  }
256
221
  }
@@ -261,15 +226,12 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
261
226
  this.mySwiper.loopDestroy();
262
227
  this.mySwiper.loopCreate();
263
228
  }
264
-
265
229
  if (!this.mySwiper) return;
266
-
267
230
  if (this.props.autoplay) {
268
231
  if (this._$width !== this.mySwiper.width || this._$height !== this.mySwiper.height) {
269
232
  this.mySwiper.autoplay.start();
270
233
  }
271
234
  }
272
-
273
235
  this._$width = this.mySwiper.width;
274
236
  this._$height = this.mySwiper.height;
275
237
  }
@@ -277,7 +239,6 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
277
239
  key: "componentWillUnmount",
278
240
  value: function componentWillUnmount() {
279
241
  var _a, _b, _c, _d, _e, _f;
280
-
281
242
  this.$el = null;
282
243
  if (this.mySwiper) this.mySwiper.destroy();
283
244
  (_b = (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect) === null || _b === void 0 ? void 0 : _b.call(_a);
@@ -306,15 +267,14 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
306
267
  key: "render",
307
268
  value: function render() {
308
269
  var _this3 = this;
309
-
310
270
  var _this$props2 = this.props,
311
- className = _this$props2.className,
312
- style = _this$props2.style,
313
- vertical = _this$props2.vertical,
314
- previousMargin = _this$props2.previousMargin,
315
- nextMargin = _this$props2.nextMargin,
316
- indicatorColor = _this$props2.indicatorColor,
317
- indicatorActiveColor = _this$props2.indicatorActiveColor;
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;
318
278
  var defaultIndicatorColor = indicatorColor || 'rgba(0, 0, 0, .3)';
319
279
  var defaultIndicatorActiveColor = indicatorActiveColor || '#000';
320
280
  var cls = classNames("taro-swiper-".concat(this._id), className);
@@ -351,7 +311,6 @@ var Swiper = /*#__PURE__*/function (_React$Component2) {
351
311
  })));
352
312
  }
353
313
  }]);
354
-
355
314
  return Swiper;
356
315
  }(React.Component);
357
316