@tarojs/components-react 3.5.0-canary.0 → 3.5.0-theta.1

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.
@@ -1,21 +1,17 @@
1
- import _objectSpread from '@babel/runtime/helpers/objectSpread2';
2
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
4
2
  import _createClass from '@babel/runtime/helpers/createClass';
5
3
  import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';
6
4
  import _inherits from '@babel/runtime/helpers/inherits';
7
5
  import _createSuper from '@babel/runtime/helpers/createSuper';
8
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
6
+ import { _ as __rest } from '../tslib.es6.js';
9
7
  import '../weui.js';
10
- import React from 'react';
11
8
  import { s as styleInject, c as classNames } from '../index.js';
9
+ import React from 'react';
12
10
  import '@babel/runtime/helpers/typeof';
13
11
 
14
12
  var css_248z = "img[src=\"\"] {\n opacity: 0;\n}\n\n.taro-img {\n display: inline-block;\n overflow: hidden;\n position: relative;\n font-size: 0;\n width: 320px;\n height: 240px;\n}\n\n.taro-img.taro-img__widthfix {\n height: 100%;\n}\n\n.taro-img__mode-scaletofill {\n object-fit: contain;\n width: 100%;\n height: 100%;\n}\n\n.taro-img__mode-aspectfit {\n object-fit: contain;\n width: 100%;\n height: 100%;\n}\n\n.taro-img__mode-aspectfill {\n object-fit: cover;\n width: 100%;\n height: 100%;\n}\n\n.taro-img__mode-widthfix {\n width: 100%;\n}\n\n.taro-img__mode-top {\n width: 100%;\n}\n\n.taro-img__mode-bottom {\n width: 100%;\n position: absolute;\n bottom: 0;\n}\n\n.taro-img__mode-left {\n height: 100%;\n}\n\n.taro-img__mode-right {\n position: absolute;\n height: 100%;\n right: 0;\n}\n\n.taro-img__mode-topright {\n position: absolute;\n right: 0;\n}\n\n.taro-img__mode-bottomleft {\n position: absolute;\n bottom: 0;\n}\n\n.taro-img__mode-bottomright {\n position: absolute;\n right: 0;\n bottom: 0;\n}\n";
15
13
  styleInject(css_248z,{"insertAt":"top"});
16
14
 
17
- var _excluded = ["className", "src", "style", "mode", "onError", "lazyLoad", "imgProps"];
18
-
19
15
  require('intersection-observer');
20
16
 
21
17
  var Image = /*#__PURE__*/function (_React$Component) {
@@ -29,11 +25,8 @@ var Image = /*#__PURE__*/function (_React$Component) {
29
25
  _classCallCheck(this, Image);
30
26
 
31
27
  _this = _super.call(this, props);
32
-
33
- _defineProperty(_assertThisInitialized(_this), "observer", {});
34
-
35
- _defineProperty(_assertThisInitialized(_this), "imgRef", null);
36
-
28
+ _this.observer = {};
29
+ _this.imgRef = null;
37
30
  _this.state = {
38
31
  isLoaded: false
39
32
  };
@@ -88,25 +81,25 @@ var Image = /*#__PURE__*/function (_React$Component) {
88
81
  value: function render() {
89
82
  var _this3 = this;
90
83
 
91
- var _this$props = this.props,
92
- className = _this$props.className,
93
- src = _this$props.src,
94
- _this$props$style = _this$props.style,
95
- style = _this$props$style === void 0 ? {} : _this$props$style,
96
- mode = _this$props.mode,
97
- onError = _this$props.onError,
98
- lazyLoad = _this$props.lazyLoad,
99
- imgProps = _this$props.imgProps,
100
- reset = _objectWithoutProperties(_this$props, _excluded);
84
+ var _a = this.props,
85
+ className = _a.className,
86
+ _a$style = _a.style,
87
+ style = _a$style === void 0 ? {} : _a$style,
88
+ src = _a.src,
89
+ mode = _a.mode,
90
+ onError = _a.onError,
91
+ lazyLoad = _a.lazyLoad,
92
+ imgProps = _a.imgProps,
93
+ reset = __rest(_a, ["className", "style", "src", "mode", "onError", "lazyLoad", "imgProps"]);
101
94
 
102
95
  var cls = classNames('taro-img', {
103
96
  'taro-img__widthfix': mode === 'widthFix'
104
97
  }, className);
105
98
  var imgCls = classNames('taro-img__mode-' + (mode || 'scaleToFill').toLowerCase().replace(/\s/g, ''));
106
- return React.createElement("div", _objectSpread({
99
+ return React.createElement("div", Object.assign({
107
100
  className: cls,
108
101
  style: style
109
- }, reset), lazyLoad ? React.createElement("img", _objectSpread({
102
+ }, reset), lazyLoad ? React.createElement("img", Object.assign({
110
103
  ref: function ref(img) {
111
104
  return _this3.imgRef = img;
112
105
  },
@@ -114,7 +107,7 @@ var Image = /*#__PURE__*/function (_React$Component) {
114
107
  "data-src": src,
115
108
  onLoad: this.imageOnLoad,
116
109
  onError: onError
117
- }, imgProps)) : React.createElement("img", _objectSpread({
110
+ }, imgProps)) : React.createElement("img", Object.assign({
118
111
  ref: function ref(img) {
119
112
  return _this3.imgRef = img;
120
113
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/components/image/index.tsx"],"sourcesContent":["import 'weui'\nimport React from 'react'\nimport classNames from 'classnames'\nimport './style/index.css'\n\nrequire('intersection-observer')\n\ninterface IProps{\n className?: string,\n src: string,\n style?: Record<string, string>,\n mode: string,\n onError: () => void,\n onLoad: (e) => void,\n lazyLoad?: boolean,\n imgProps?: Record<string, any>,\n}\n\nclass Image extends React.Component<IProps> {\n constructor (props) {\n super(props)\n this.state = {\n isLoaded: false\n }\n this.imageOnLoad = this.imageOnLoad.bind(this)\n // this.observer = {}\n }\n\n observer: any = {}\n imgRef: any = null\n\n componentDidMount () {\n if (this.props.lazyLoad) {\n this.observer = new IntersectionObserver((entries) => {\n // 异步 api 关系\n if (entries[entries.length - 1].isIntersecting) {\n this.setState({ isLoaded: true }, () => {\n // findDOMNode(this).children[0].src = this.props.src\n this.imgRef.src = this.props.src\n })\n }\n }, {\n rootMargin: '300px 0px'\n })\n this.observer.observe(this.imgRef)\n }\n }\n\n componentWillUnmount () {\n this.observer.disconnect && this.observer.disconnect()\n }\n\n imageOnLoad (e) {\n const { onLoad } = this.props\n Object.defineProperty(e, 'detail', {\n enumerable: true,\n writable: true,\n value: {\n width: e.target.width,\n height: e.target.height\n }\n })\n\n onLoad && onLoad(e)\n }\n\n render () {\n const {\n className,\n src,\n style = {},\n mode,\n onError,\n lazyLoad,\n imgProps,\n ...reset\n } = this.props\n const cls = classNames(\n 'taro-img',\n {\n 'taro-img__widthfix': mode === 'widthFix'\n },\n className\n )\n const imgCls = classNames(\n 'taro-img__mode-' +\n (mode || 'scaleToFill').toLowerCase().replace(/\\s/g, '')\n )\n\n return (\n <div className={cls} style={style} {...reset}>\n {lazyLoad ? (\n <img\n ref={img => (this.imgRef = img)}\n className={imgCls}\n data-src={src}\n onLoad={this.imageOnLoad}\n onError={onError}\n {...imgProps}\n />\n ) : (\n <img\n ref={img => (this.imgRef = img)}\n className={imgCls}\n src={src}\n onLoad={this.imageOnLoad}\n onError={onError}\n {...imgProps}\n />\n )}\n </div>\n )\n }\n}\n\nexport default Image\n"],"names":["require","Image","props","state","isLoaded","imageOnLoad","bind","lazyLoad","observer","IntersectionObserver","entries","length","isIntersecting","setState","imgRef","src","rootMargin","observe","disconnect","e","onLoad","Object","defineProperty","enumerable","writable","value","width","target","height","className","style","mode","onError","imgProps","reset","cls","classNames","imgCls","toLowerCase","replace","React","ref","img","Component"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/components/image/index.tsx"],"sourcesContent":["import 'weui'\nimport './style/index.css'\n\nimport classNames from 'classnames'\nimport React from 'react'\n\nrequire('intersection-observer')\n\ninterface IProps extends React.HTMLAttributes<HTMLDivElement> {\n src: string\n mode: string\n onError: () => void\n onLoad: (e) => void\n lazyLoad?: boolean\n imgProps?: Record<string, any>\n}\n\nclass Image extends React.Component<IProps> {\n constructor (props) {\n super(props)\n this.state = {\n isLoaded: false\n }\n this.imageOnLoad = this.imageOnLoad.bind(this)\n // this.observer = {}\n }\n\n observer: any = {}\n imgRef: any = null\n\n componentDidMount () {\n if (this.props.lazyLoad) {\n this.observer = new IntersectionObserver(\n entries => {\n // 异步 api 关系\n if (entries[entries.length - 1].isIntersecting) {\n this.setState({ isLoaded: true }, () => {\n // findDOMNode(this).children[0].src = this.props.src\n this.imgRef.src = this.props.src\n })\n }\n },\n {\n rootMargin: '300px 0px'\n }\n )\n this.observer.observe(this.imgRef)\n }\n }\n\n componentWillUnmount () {\n this.observer.disconnect && this.observer.disconnect()\n }\n\n imageOnLoad (e) {\n const { onLoad } = this.props\n Object.defineProperty(e, 'detail', {\n enumerable: true,\n writable: true,\n value: {\n width: e.target.width,\n height: e.target.height\n }\n })\n\n onLoad && onLoad(e)\n }\n\n render () {\n const {\n className,\n style = {},\n src,\n mode,\n onError,\n lazyLoad,\n imgProps,\n ...reset\n } = this.props\n const cls = classNames(\n 'taro-img',\n {\n 'taro-img__widthfix': mode === 'widthFix'\n },\n className\n )\n const imgCls = classNames(\n 'taro-img__mode-' +\n (mode || 'scaleToFill').toLowerCase().replace(/\\s/g, '')\n )\n\n return (\n <div className={cls} style={style} {...reset}>\n {lazyLoad ? (\n <img\n ref={img => (this.imgRef = img)}\n className={imgCls}\n data-src={src}\n onLoad={this.imageOnLoad}\n onError={onError}\n {...imgProps}\n />\n ) : (\n <img\n ref={img => (this.imgRef = img)}\n className={imgCls}\n src={src}\n onLoad={this.imageOnLoad}\n onError={onError}\n {...imgProps}\n />\n )}\n </div>\n )\n }\n}\n\nexport default Image\n"],"names":["require","Image","props","observer","imgRef","state","isLoaded","imageOnLoad","bind","lazyLoad","IntersectionObserver","entries","length","isIntersecting","setState","src","rootMargin","observe","disconnect","e","onLoad","Object","defineProperty","enumerable","writable","value","width","target","height","_a","className","style","mode","onError","imgProps","reset","__rest","cls","classNames","imgCls","toLowerCase","replace","React","createElement","assign","ref","img","Component"],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/style-inject/dist/style-inject.es.js","../../../node_modules/classnames/index.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","module","exports","default","window"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index2.js ADDED
@@ -0,0 +1,44 @@
1
+ function throttle(fn) {
2
+ var threshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
3
+ var scope = arguments.length > 2 ? arguments[2] : undefined;
4
+ var lastTime = 0;
5
+ var deferTimer;
6
+ return function () {
7
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
8
+ args[_key] = arguments[_key];
9
+ }
10
+
11
+ var context = scope || this;
12
+ var now = Date.now();
13
+
14
+ if (now - lastTime > threshold) {
15
+ fn.apply(this, args);
16
+ lastTime = now;
17
+ } else {
18
+ clearTimeout(deferTimer);
19
+ deferTimer = setTimeout(function () {
20
+ lastTime = now;
21
+ fn.apply(context, args);
22
+ }, threshold);
23
+ }
24
+ };
25
+ }
26
+ function debounce(fn) {
27
+ var ms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 250;
28
+ var scope = arguments.length > 2 ? arguments[2] : undefined;
29
+ var timer;
30
+ return function () {
31
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
32
+ args[_key2] = arguments[_key2];
33
+ }
34
+
35
+ var context = scope || this;
36
+ clearTimeout(timer);
37
+ timer = setTimeout(function () {
38
+ fn.apply(context, args);
39
+ }, ms);
40
+ };
41
+ }
42
+
43
+ export { debounce as d, throttle as t };
44
+ //# sourceMappingURL=index2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","sources":["../src/utils/index.ts"],"sourcesContent":["export function throttle (fn, threshold = 250, scope?) {\n let lastTime = 0\n let deferTimer: ReturnType<typeof setTimeout>\n return function (...args) {\n const context = scope || this\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, args)\n lastTime = now\n } else {\n clearTimeout(deferTimer)\n deferTimer = setTimeout(() => {\n lastTime = now\n fn.apply(context, args)\n }, threshold)\n }\n }\n}\n\nexport function debounce (fn, ms = 250, scope?) {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args) {\n const context = scope || this\n clearTimeout(timer)\n timer = setTimeout(function () {\n fn.apply(context, args)\n }, ms)\n }\n}\n"],"names":["throttle","fn","threshold","scope","lastTime","deferTimer","args","context","now","Date","apply","clearTimeout","setTimeout","debounce","ms","timer"],"mappings":"AAAM,SAAUA,QAAV,CAAoBC,EAApB,EAA+C;EAAA,IAAvBC,SAAuB,uEAAX,GAAW,CAAA;AAAA,EAAA,IAANC,KAAM,GAAA,SAAA,CAAA,MAAA,GAAA,CAAA,GAAA,SAAA,CAAA,CAAA,CAAA,GAAA,SAAA,CAAA;EACnD,IAAIC,QAAQ,GAAG,CAAf,CAAA;AACA,EAAA,IAAIC,UAAJ,CAAA;AACA,EAAA,OAAO,YAAiB;AAAA,IAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAAJC,IAAI,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;MAAJA,IAAI,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA;;AACtB,IAAA,IAAMC,OAAO,GAAGJ,KAAK,IAAI,IAAzB,CAAA;AACA,IAAA,IAAMK,GAAG,GAAGC,IAAI,CAACD,GAAL,EAAZ,CAAA;;AACA,IAAA,IAAIA,GAAG,GAAGJ,QAAN,GAAiBF,SAArB,EAAgC;AAC9BD,MAAAA,EAAE,CAACS,KAAH,CAAS,IAAT,EAAeJ,IAAf,CAAA,CAAA;AACAF,MAAAA,QAAQ,GAAGI,GAAX,CAAA;AACD,KAHD,MAGO;MACLG,YAAY,CAACN,UAAD,CAAZ,CAAA;MACAA,UAAU,GAAGO,UAAU,CAAC,YAAK;AAC3BR,QAAAA,QAAQ,GAAGI,GAAX,CAAA;AACAP,QAAAA,EAAE,CAACS,KAAH,CAASH,OAAT,EAAkBD,IAAlB,CAAA,CAAA;OAFqB,EAGpBJ,SAHoB,CAAvB,CAAA;AAID,KAAA;GAZH,CAAA;AAcD,CAAA;AAEK,SAAUW,QAAV,CAAoBZ,EAApB,EAAwC;EAAA,IAAhBa,EAAgB,uEAAX,GAAW,CAAA;AAAA,EAAA,IAANX,KAAM,GAAA,SAAA,CAAA,MAAA,GAAA,CAAA,GAAA,SAAA,CAAA,CAAA,CAAA,GAAA,SAAA,CAAA;AAC5C,EAAA,IAAIY,KAAJ,CAAA;AAEA,EAAA,OAAO,YAAiB;AAAA,IAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAAJT,IAAI,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;MAAJA,IAAI,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;;AACtB,IAAA,IAAMC,OAAO,GAAGJ,KAAK,IAAI,IAAzB,CAAA;IACAQ,YAAY,CAACI,KAAD,CAAZ,CAAA;IACAA,KAAK,GAAGH,UAAU,CAAC,YAAA;AACjBX,MAAAA,EAAE,CAACS,KAAH,CAASH,OAAT,EAAkBD,IAAlB,CAAA,CAAA;KADgB,EAEfQ,EAFe,CAAlB,CAAA;GAHF,CAAA;AAOD;;;;"}
@@ -1,22 +1,18 @@
1
- import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
- import _objectSpread from '@babel/runtime/helpers/objectSpread2';
3
1
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
2
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
5
3
  import _createClass from '@babel/runtime/helpers/createClass';
6
4
  import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';
7
5
  import _inherits from '@babel/runtime/helpers/inherits';
8
6
  import _createSuper from '@babel/runtime/helpers/createSuper';
9
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
10
- import React from 'react';
7
+ import { _ as __rest } from '../tslib.es6.js';
11
8
  import { s as styleInject, c as classNames } from '../index.js';
12
9
  import Taro from '@tarojs/taro';
10
+ import React from 'react';
13
11
  import '@babel/runtime/helpers/typeof';
14
12
 
15
- var css_248z = ".rmc-pull-to-refresh-content {\r\n transform-origin: left top 0px;\r\n}\r\n.rmc-pull-to-refresh-content-wrapper {\r\n overflow: hidden;\r\n}\r\n\r\n.rmc-pull-to-refresh-transition {\r\n transition: transform 0.3s;\r\n}\r\n\r\n\r\n@keyframes rmc-pull-to-refresh-indicator {\r\n 50% {\r\n opacity: 0.2;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n.rmc-pull-to-refresh-indicator {\r\n text-align: center;\r\n height: 30px;\r\n line-height: 10px;\r\n}\r\n\r\n.rmc-pull-to-refresh-indicator > div {\r\n background-color: grey;\r\n width: 6px;\r\n height: 6px;\r\n border-radius: 100%;\r\n margin: 3px;\r\n animation-fill-mode: both;\r\n display: inline-block;\r\n animation: rmc-pull-to-refresh-indicator 0.5s 0s infinite linear;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(0) {\r\n animation-delay: -0.1s !important;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(1) {\r\n animation-delay: -0.2s !important;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(2) {\r\n animation-delay: -0.3s !important;\r\n}\r\n.rmc-pull-to-refresh-down .rmc-pull-to-refresh-indicator {\r\n margin-top: -25px;\r\n}\r\n";
13
+ var css_248z = ".rmc-pull-to-refresh-content {\r\n transform-origin: left top 0px;\r\n}\r\n.rmc-pull-to-refresh-content-wrapper {\r\n overflow: hidden;\r\n min-height: 100vh;\r\n}\r\n\r\n.rmc-pull-to-refresh-transition {\r\n transition: transform 0.3s;\r\n}\r\n\r\n\r\n@keyframes rmc-pull-to-refresh-indicator {\r\n 50% {\r\n opacity: 0.2;\r\n }\r\n 100% {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n.rmc-pull-to-refresh-indicator {\r\n text-align: center;\r\n height: 30px;\r\n line-height: 10px;\r\n}\r\n\r\n.rmc-pull-to-refresh-indicator > div {\r\n background-color: grey;\r\n width: 6px;\r\n height: 6px;\r\n border-radius: 100%;\r\n margin: 3px;\r\n animation-fill-mode: both;\r\n display: inline-block;\r\n animation: rmc-pull-to-refresh-indicator 0.5s 0s infinite linear;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(0) {\r\n animation-delay: -0.1s !important;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(1) {\r\n animation-delay: -0.2s !important;\r\n}\r\n.rmc-pull-to-refresh-indicator > div:nth-child(2) {\r\n animation-delay: -0.3s !important;\r\n}\r\n.rmc-pull-to-refresh-down .rmc-pull-to-refresh-indicator {\r\n margin-top: -25px;\r\n}\r\n";
16
14
  styleInject(css_248z,{"insertAt":"top"});
17
15
 
18
- var _excluded = ["className", "prefixCls", "children"];
19
-
20
16
  function setTransform(nodeStyle, value) {
21
17
  nodeStyle.transform = value;
22
18
  nodeStyle.webkitTransform = value;
@@ -69,34 +65,20 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
69
65
 
70
66
  _classCallCheck(this, PullDownRefresh);
71
67
 
72
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
73
- args[_key] = arguments[_key];
74
- }
75
-
76
- _this = _super.call.apply(_super, [this].concat(args));
68
+ _this = _super.apply(this, arguments); // https://github.com/yiminghe/zscroller/blob/2d97973287135745818a0537712235a39a6a62a1/src/Scroller.js#L355
69
+ // currSt: `activate` / `deactivate` / `release` / `finish`
77
70
 
78
- _defineProperty(_assertThisInitialized(_this), "state", {
71
+ _this.state = {
79
72
  currSt: PullDownState.deactivate,
80
73
  dragOnEdge: false
81
- });
82
-
83
- _defineProperty(_assertThisInitialized(_this), "containerRef", void 0);
84
-
85
- _defineProperty(_assertThisInitialized(_this), "contentRef", void 0);
86
-
87
- _defineProperty(_assertThisInitialized(_this), "_to", void 0);
88
-
89
- _defineProperty(_assertThisInitialized(_this), "_ScreenY", 0);
90
-
91
- _defineProperty(_assertThisInitialized(_this), "_startScreenY", 0);
92
-
93
- _defineProperty(_assertThisInitialized(_this), "_lastScreenY", 0);
94
-
95
- _defineProperty(_assertThisInitialized(_this), "_isMounted", false);
96
-
97
- _defineProperty(_assertThisInitialized(_this), "listeners", []);
98
-
99
- _defineProperty(_assertThisInitialized(_this), "triggerPullDownRefresh", function (flag) {
74
+ };
75
+ _this._ScreenY = 0;
76
+ _this._startScreenY = 0;
77
+ _this._lastScreenY = 0;
78
+ _this._isMounted = false;
79
+ _this.listeners = [];
80
+
81
+ _this.triggerPullDownRefresh = function (flag) {
100
82
  // 在初始化时、用代码 自动 触发 pullDownRefresh
101
83
  // 添加this._isMounted的判断,否则组建一实例化,currSt就会是finish
102
84
  if (!_this.state.dragOnEdge && _this._isMounted) {
@@ -116,9 +98,9 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
116
98
  });
117
99
  }
118
100
  }
119
- });
101
+ };
120
102
 
121
- _defineProperty(_assertThisInitialized(_this), "init", function () {
103
+ _this.init = function () {
122
104
  var ele = _this.scrollContainer;
123
105
  _this._to = {
124
106
  touchstart: _this.onTouchStart.bind(_assertThisInitialized(_this), ele),
@@ -129,22 +111,22 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
129
111
  Object.keys(_this._to).forEach(function (key) {
130
112
  ele.addEventListener(key, _this._to[key], willPreventDefault);
131
113
  });
132
- });
114
+ };
133
115
 
134
- _defineProperty(_assertThisInitialized(_this), "destroy", function () {
116
+ _this.destroy = function () {
135
117
  var ele = _this.scrollContainer;
136
118
  Object.keys(_this._to).forEach(function (key) {
137
119
  ele.removeEventListener(key, _this._to[key]);
138
120
  });
139
- });
121
+ };
140
122
 
141
- _defineProperty(_assertThisInitialized(_this), "onTouchStart", function (_, e) {
123
+ _this.onTouchStart = function (_, e) {
142
124
  _this._ScreenY = _this._startScreenY = e.touches[0].screenY; // 一开始 refreshing 为 true 时 this._lastScreenY 有值
143
125
 
144
126
  _this._lastScreenY = _this._lastScreenY || 0;
145
- });
127
+ };
146
128
 
147
- _defineProperty(_assertThisInitialized(_this), "isEdge", function (ele) {
129
+ _this.isEdge = function (ele) {
148
130
  var container = _this.scrollContainer;
149
131
 
150
132
  if (container && container === document.body) {
@@ -154,9 +136,9 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
154
136
  }
155
137
 
156
138
  return ele.scrollTop <= 0;
157
- });
139
+ };
158
140
 
159
- _defineProperty(_assertThisInitialized(_this), "damping", function (dy) {
141
+ _this.damping = function (dy) {
160
142
  if (Math.abs(_this._lastScreenY) > _this.props.damping) {
161
143
  return 0;
162
144
  }
@@ -164,9 +146,9 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
164
146
  var ratio = Math.abs(_this._ScreenY - _this._startScreenY) / window.screen.height;
165
147
  dy *= (1 - ratio) * 0.6;
166
148
  return dy;
167
- });
149
+ };
168
150
 
169
- _defineProperty(_assertThisInitialized(_this), "onTouchMove", function (ele, e) {
151
+ _this.onTouchMove = function (ele, e) {
170
152
  // 使用 pageY 对比有问题
171
153
  var _screenY = e.touches[0].screenY; // 拖动方向不符合的不处理
172
154
 
@@ -221,9 +203,11 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
221
203
  _this.onTouchEnd();
222
204
  }
223
205
  }
224
- });
206
+ };
207
+
208
+ _this.onTouchEnd = function () {
209
+ var _a, _b;
225
210
 
226
- _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function () {
227
211
  if (_this.state.dragOnEdge) {
228
212
  _this.setState({
229
213
  dragOnEdge: false
@@ -231,13 +215,11 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
231
215
  }
232
216
 
233
217
  if (_this.state.currSt === PullDownState.activate) {
234
- var _this$props$onRefresh, _this$props;
235
-
236
218
  _this.setState({
237
219
  currSt: PullDownState.release
238
220
  });
239
221
 
240
- (_this$props$onRefresh = (_this$props = _this.props).onRefresh) === null || _this$props$onRefresh === void 0 ? void 0 : _this$props$onRefresh.call(_this$props);
222
+ (_b = (_a = _this.props).onRefresh) === null || _b === void 0 ? void 0 : _b.call(_a);
241
223
  _this._lastScreenY = _this.props.distanceToRefresh + 1;
242
224
 
243
225
  _this.setContentStyle(_this._lastScreenY);
@@ -248,16 +230,16 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
248
230
  } else {
249
231
  _this.reset();
250
232
  }
251
- });
233
+ };
252
234
 
253
- _defineProperty(_assertThisInitialized(_this), "reset", function () {
235
+ _this.reset = function () {
254
236
  _this._lastScreenY = 0;
255
237
 
256
238
  _this.setContentStyle(0);
257
- });
239
+ };
258
240
 
259
- _defineProperty(_assertThisInitialized(_this), "setContentStyle", function (ty) {
260
- // todos: Why sometimes do not have `this.contentRef` ?
241
+ _this.setContentStyle = function (ty) {
242
+ // TODO: Why sometimes do not have `this.contentRef` ?
261
243
  if (_this.contentRef) {
262
244
  // translate3d 不清理 会影响内部元素定位
263
245
  if (ty) {
@@ -266,7 +248,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
266
248
  setTransform(_this.contentRef.style, '');
267
249
  }
268
250
  }
269
- });
251
+ };
270
252
 
271
253
  return _this;
272
254
  }
@@ -274,7 +256,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
274
256
  _createClass(PullDownRefresh, [{
275
257
  key: "scrollContainer",
276
258
  get: function get() {
277
- return document.querySelector('.taro-tabbar__panel') || document.body;
259
+ return document.querySelector('.taro_page_stationed') || document.querySelector('.taro_page') || document.querySelector('.taro_router') || document.querySelector('.taro-tabbar__panel') || document.body;
278
260
  }
279
261
  }, {
280
262
  key: "componentDidMount",
@@ -337,15 +319,13 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
337
319
  }, {
338
320
  key: "componentDidUpdate",
339
321
  value: function componentDidUpdate(_, prevState) {
340
- if (prevState.currSt !== this.state.currSt && this.state.currSt === PullDownState.release) {
341
- var _this$contentRef;
342
-
343
- var pageEl = (_this$contentRef = this.contentRef) === null || _this$contentRef === void 0 ? void 0 : _this$contentRef.closest('.taro_page');
322
+ var _a, _b;
344
323
 
345
- if (pageEl !== null && pageEl !== void 0 && pageEl.__page) {
346
- var _pageEl$__page;
324
+ if (prevState.currSt !== this.state.currSt && this.state.currSt === PullDownState.release) {
325
+ var pageEl = (_a = this.contentRef) === null || _a === void 0 ? void 0 : _a.closest('.taro_page');
347
326
 
348
- (_pageEl$__page = pageEl.__page) === null || _pageEl$__page === void 0 ? void 0 : _pageEl$__page.onPullDownRefresh();
327
+ if (pageEl === null || pageEl === void 0 ? void 0 : pageEl.__page) {
328
+ (_b = pageEl.__page) === null || _b === void 0 ? void 0 : _b.onPullDownRefresh();
349
329
  }
350
330
  }
351
331
  }
@@ -354,8 +334,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
354
334
  value: function render() {
355
335
  var _this3 = this;
356
336
 
357
- var props = _objectSpread({}, this.props);
358
-
337
+ var props = Object.assign({}, this.props);
359
338
  delete props.damping;
360
339
  delete props.indicator;
361
340
  delete props.distanceToRefresh;
@@ -364,7 +343,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
364
343
  var className = props.className,
365
344
  prefixCls = props.prefixCls,
366
345
  children = props.children,
367
- restProps = _objectWithoutProperties(props, _excluded);
346
+ restProps = __rest(props, ["className", "prefixCls", "children"]);
368
347
 
369
348
  var renderRefresh = function renderRefresh(cls) {
370
349
  var _this3$state = _this3.state,
@@ -388,7 +367,7 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
388
367
  return renderRefresh("".concat(prefixCls, "-content ").concat(prefixCls, "-down"));
389
368
  }
390
369
 
391
- return React.createElement("pull-down-refresh", _objectSpread({
370
+ return React.createElement("pull-down-refresh", Object.assign({
392
371
  ref: function ref(el) {
393
372
  _this3.containerRef = el;
394
373
  },
@@ -400,12 +379,12 @@ var PullDownRefresh = /*#__PURE__*/function (_React$Component) {
400
379
  return PullDownRefresh;
401
380
  }(React.Component);
402
381
 
403
- _defineProperty(PullDownRefresh, "defaultProps", {
382
+ PullDownRefresh.defaultProps = {
404
383
  prefixCls: 'rmc-pull-to-refresh',
405
384
  distanceToRefresh: 50,
406
385
  damping: 100,
407
386
  indicator: INDICATOR
408
- });
387
+ };
409
388
 
410
389
  export { PullDownRefresh as default };
411
390
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/components/pull-down-refresh/index.tsx"],"sourcesContent":["import React from 'react'\r\nimport classNames from 'classnames'\r\nimport Taro from '@tarojs/taro'\r\n\r\nimport './style/index.css'\r\n\r\nfunction setTransform (nodeStyle, value) {\r\n nodeStyle.transform = value\r\n nodeStyle.webkitTransform = value\r\n nodeStyle.MozTransform = value\r\n}\r\n\r\nconst isWebView = typeof navigator !== 'undefined' &&\r\n /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent)\r\n\r\nenum PullDownState {\r\n activate = 'activate',\r\n deactivate = 'deactivate',\r\n release = 'release',\r\n finish = 'finish'\r\n}\r\n\r\nenum INDICATOR {\r\n activate = 'release',\r\n deactivate = 'pull',\r\n release = 'loading',\r\n finish = 'finish'\r\n}\r\n\r\nlet supportsPassive = false\r\ntry {\r\n const opts = Object.defineProperty({}, 'passive', {\r\n get () {\r\n supportsPassive = true\r\n }\r\n })\r\n window.addEventListener('cancel', () => ({}), opts)\r\n} catch (e) {}\r\n\r\nconst willPreventDefault = supportsPassive ? { passive: false } : false\r\n\r\ninterface IProps {\r\n className?: string\r\n prefixCls: string\r\n distanceToRefresh: number\r\n damping: number\r\n indicator: INDICATOR\r\n onRefresh?: () => void\r\n}\r\n\r\ninterface IState {\r\n currSt: PullDownState,\r\n dragOnEdge: boolean\r\n}\r\n\r\nclass PullDownRefresh extends React.Component<IProps, IState> {\r\n static defaultProps = {\r\n prefixCls: 'rmc-pull-to-refresh',\r\n distanceToRefresh: 50,\r\n damping: 100,\r\n indicator: INDICATOR\r\n }\r\n\r\n // https://github.com/yiminghe/zscroller/blob/2d97973287135745818a0537712235a39a6a62a1/src/Scroller.js#L355\r\n // currSt: `activate` / `deactivate` / `release` / `finish`\r\n state = {\r\n currSt: PullDownState.deactivate,\r\n dragOnEdge: false\r\n }\r\n\r\n containerRef: HTMLElement | null\r\n contentRef: HTMLDivElement | null\r\n _to: Record<string, EventListener>\r\n _ScreenY = 0\r\n _startScreenY = 0\r\n _lastScreenY = 0\r\n _isMounted = false\r\n listeners: [string, (...args: any[]) => void][] = []\r\n\r\n get scrollContainer () {\r\n return document.querySelector('.taro-tabbar__panel') || document.body\r\n }\r\n\r\n componentDidMount () {\r\n this.init()\r\n this._isMounted = true\r\n this.listeners = [\r\n ['__taroStartPullDownRefresh', ({ successHandler, errorHandler }) => {\r\n try {\r\n this.triggerPullDownRefresh(true)\r\n successHandler({\r\n errMsg: 'startPullDownRefresh: ok'\r\n })\r\n } catch (e) {\r\n errorHandler({\r\n errMsg: 'startPullDownRefresh: fail'\r\n })\r\n }\r\n }],\r\n ['__taroStopPullDownRefresh', ({ successHandler, errorHandler }) => {\r\n try {\r\n this.triggerPullDownRefresh(false)\r\n successHandler({\r\n errMsg: 'stopPullDownRefresh: ok'\r\n })\r\n } catch (e) {\r\n errorHandler({\r\n errMsg: 'stopPullDownRefresh: fail'\r\n })\r\n }\r\n }]\r\n ]\r\n this.listeners.forEach(([evtName, callback]) => {\r\n Taro.eventCenter.on(evtName, callback)\r\n })\r\n }\r\n\r\n componentWillUnmount () {\r\n this.destroy()\r\n this.listeners.forEach(([evtName, callback]) => {\r\n Taro.eventCenter.off(evtName, callback)\r\n })\r\n }\r\n\r\n componentDidUpdate (_, prevState: IState) {\r\n if (prevState.currSt !== this.state.currSt && this.state.currSt === PullDownState.release) {\r\n const pageEl: any = this.contentRef?.closest('.taro_page')\r\n if (pageEl?.__page) {\r\n pageEl.__page?.onPullDownRefresh()\r\n }\r\n }\r\n }\r\n\r\n triggerPullDownRefresh = (flag: boolean) => {\r\n // 在初始化时、用代码 自动 触发 pullDownRefresh\r\n // 添加this._isMounted的判断,否则组建一实例化,currSt就会是finish\r\n if (!this.state.dragOnEdge && this._isMounted) {\r\n if (flag) {\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n // change dom need after setState\r\n this.setState({ currSt: PullDownState.release }, () => this.setContentStyle(this._lastScreenY))\r\n } else {\r\n this.setState({ currSt: PullDownState.finish }, () => this.reset())\r\n }\r\n }\r\n }\r\n\r\n init = () => {\r\n const ele = this.scrollContainer\r\n this._to = {\r\n touchstart: this.onTouchStart.bind(this, ele),\r\n touchmove: this.onTouchMove.bind(this, ele),\r\n touchend: this.onTouchEnd.bind(this, ele),\r\n touchcancel: this.onTouchEnd.bind(this, ele)\r\n }\r\n Object.keys(this._to).forEach(key => {\r\n ele.addEventListener(key, this._to[key], willPreventDefault)\r\n })\r\n }\r\n\r\n destroy = () => {\r\n const ele = this.scrollContainer\r\n Object.keys(this._to).forEach(key => {\r\n ele.removeEventListener(key, this._to[key])\r\n })\r\n }\r\n\r\n onTouchStart = (_, e: TouchEvent) => {\r\n this._ScreenY = this._startScreenY = e.touches[0].screenY\r\n // 一开始 refreshing 为 true 时 this._lastScreenY 有值\r\n this._lastScreenY = this._lastScreenY || 0\r\n }\r\n\r\n isEdge = (ele: HTMLElement) => {\r\n const container = this.scrollContainer\r\n if (container && container === document.body) {\r\n // In chrome61 `document.body.scrollTop` is invalid\r\n const scrollNode = document.scrollingElement ? document.scrollingElement : document.body\r\n return scrollNode.scrollTop <= 0\r\n }\r\n return ele.scrollTop <= 0\r\n }\r\n\r\n damping = (dy: number) => {\r\n if (Math.abs(this._lastScreenY) > this.props.damping) {\r\n return 0\r\n }\r\n\r\n const ratio = Math.abs(this._ScreenY - this._startScreenY) / window.screen.height\r\n dy *= (1 - ratio) * 0.6\r\n\r\n return dy\r\n }\r\n\r\n onTouchMove = (ele: HTMLElement, e: TouchEvent) => {\r\n // 使用 pageY 对比有问题\r\n const _screenY = e.touches[0].screenY\r\n\r\n // 拖动方向不符合的不处理\r\n if (this._startScreenY > _screenY) {\r\n return\r\n }\r\n\r\n if (this.isEdge(ele)) {\r\n if (!this.state.dragOnEdge) {\r\n // 当用户开始往上滑的时候isEdge还是false的话,会导致this._ScreenY不是想要的,只有当isEdge为true时,再上滑,才有意义\r\n // 下面这行代码解决了上面这个问题\r\n this._ScreenY = this._startScreenY = e.touches[0].screenY\r\n this.setState({ dragOnEdge: true })\r\n }\r\n if (e.cancelable) {\r\n e.preventDefault()\r\n }\r\n // add stopPropagation with fastclick will trigger content onClick event. why?\r\n // ref https://github.com/ant-design/ant-design-mobile/issues/2141\r\n // e.stopPropagation();\r\n\r\n const _diff = Math.round(_screenY - this._ScreenY)\r\n this._ScreenY = _screenY\r\n this._lastScreenY += this.damping(_diff)\r\n\r\n this.setContentStyle(this._lastScreenY)\r\n\r\n if (Math.abs(this._lastScreenY) < this.props.distanceToRefresh) {\r\n if (this.state.currSt !== PullDownState.deactivate) {\r\n // console.log('back to the distance');\r\n this.setState({ currSt: PullDownState.deactivate })\r\n }\r\n } else {\r\n if (this.state.currSt === PullDownState.deactivate) {\r\n // console.log('reach to the distance');\r\n this.setState({ currSt: PullDownState.activate })\r\n }\r\n }\r\n\r\n // https://github.com/ant-design/ant-design-mobile/issues/573#issuecomment-339560829\r\n // iOS UIWebView issue, It seems no problem in WKWebView\r\n if (isWebView && e.changedTouches[0].clientY < 0) {\r\n this.onTouchEnd()\r\n }\r\n }\r\n }\r\n\r\n onTouchEnd = () => {\r\n if (this.state.dragOnEdge) {\r\n this.setState({ dragOnEdge: false })\r\n }\r\n if (this.state.currSt === PullDownState.activate) {\r\n this.setState({ currSt: PullDownState.release })\r\n this.props.onRefresh?.()\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n this.setContentStyle(this._lastScreenY)\r\n } else if (this.state.currSt === 'release') {\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n this.setContentStyle(this._lastScreenY)\r\n } else {\r\n this.reset()\r\n }\r\n }\r\n\r\n reset = () => {\r\n this._lastScreenY = 0\r\n this.setContentStyle(0)\r\n }\r\n\r\n setContentStyle = (ty) => {\r\n // todos: Why sometimes do not have `this.contentRef` ?\r\n if (this.contentRef) {\r\n // translate3d 不清理 会影响内部元素定位\r\n if (ty) {\r\n setTransform(this.contentRef.style, `translate3d(0px,${ty}px,0)`)\r\n } else {\r\n setTransform(this.contentRef.style, '')\r\n }\r\n }\r\n }\r\n\r\n render () {\r\n const props: Partial<IProps> & {\r\n children?: React.ReactNode\r\n } = { ...this.props }\r\n delete props.damping\r\n delete props.indicator\r\n delete props.distanceToRefresh\r\n delete props.onRefresh\r\n\r\n const {\r\n className,\r\n prefixCls,\r\n children,\r\n ...restProps\r\n } = props\r\n\r\n const renderRefresh = (cls: string) => {\r\n const { currSt, dragOnEdge } = this.state\r\n const cla = classNames(cls, !dragOnEdge && `${prefixCls}-transition`)\r\n const showIndicator = currSt === 'activate' || currSt === 'release'\r\n return (\r\n <div className={`${prefixCls}-content-wrapper`}>\r\n <div\r\n className={cla}\r\n ref={el => {\r\n this.contentRef = el\r\n }}>\r\n {showIndicator && (\r\n <div className={`${prefixCls}-indicator`}>\r\n <div />\r\n <div />\r\n <div />\r\n </div>\r\n )}\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n if (this.scrollContainer) {\r\n return renderRefresh(`${prefixCls}-content ${prefixCls}-down`)\r\n }\r\n return (\r\n <pull-down-refresh\r\n ref={el => {\r\n this.containerRef = el\r\n }}\r\n className={classNames(className, prefixCls, `${prefixCls}-down`)}\r\n {...restProps}\r\n >\r\n {renderRefresh(`${prefixCls}-content`)}\r\n </pull-down-refresh>\r\n )\r\n }\r\n}\r\n\r\nexport default PullDownRefresh\r\n"],"names":["setTransform","nodeStyle","value","transform","webkitTransform","MozTransform","isWebView","navigator","test","userAgent","PullDownState","INDICATOR","supportsPassive","opts","Object","defineProperty","get","window","addEventListener","e","willPreventDefault","passive","PullDownRefresh","currSt","deactivate","dragOnEdge","flag","state","_isMounted","_lastScreenY","props","distanceToRefresh","setState","release","setContentStyle","finish","reset","ele","scrollContainer","_to","touchstart","onTouchStart","bind","touchmove","onTouchMove","touchend","onTouchEnd","touchcancel","keys","forEach","key","removeEventListener","_","_ScreenY","_startScreenY","touches","screenY","container","document","body","scrollNode","scrollingElement","scrollTop","dy","Math","abs","damping","ratio","screen","height","_screenY","isEdge","cancelable","preventDefault","_diff","round","activate","changedTouches","clientY","onRefresh","ty","contentRef","style","querySelector","init","listeners","successHandler","errorHandler","triggerPullDownRefresh","errMsg","evtName","callback","Taro","eventCenter","on","destroy","off","prevState","pageEl","closest","__page","onPullDownRefresh","indicator","className","prefixCls","children","restProps","renderRefresh","cls","cla","classNames","showIndicator","React","ref","el","containerRef","Component"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/components/pull-down-refresh/index.tsx"],"sourcesContent":["import './style/index.css'\r\n\r\nimport Taro from '@tarojs/taro'\r\nimport classNames from 'classnames'\r\nimport React from 'react'\r\n\r\nfunction setTransform (nodeStyle, value) {\r\n nodeStyle.transform = value\r\n nodeStyle.webkitTransform = value\r\n nodeStyle.MozTransform = value\r\n}\r\n\r\nconst isWebView =\r\n typeof navigator !== 'undefined' && /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent)\r\n\r\nenum PullDownState {\r\n activate = 'activate',\r\n deactivate = 'deactivate',\r\n release = 'release',\r\n finish = 'finish'\r\n}\r\n\r\nenum INDICATOR {\r\n activate = 'release',\r\n deactivate = 'pull',\r\n release = 'loading',\r\n finish = 'finish'\r\n}\r\n\r\nlet supportsPassive = false\r\ntry {\r\n const opts = Object.defineProperty({}, 'passive', {\r\n get () {\r\n supportsPassive = true\r\n }\r\n })\r\n window.addEventListener('cancel', () => ({}), opts)\r\n} catch (e) {}\r\n\r\nconst willPreventDefault = supportsPassive ? { passive: false } : false\r\n\r\ninterface IProps extends React.HTMLAttributes<HTMLBaseElement> {\r\n prefixCls: string\r\n distanceToRefresh: number\r\n damping: number\r\n indicator: INDICATOR\r\n onRefresh?: () => void\r\n}\r\n\r\ninterface IState {\r\n currSt: PullDownState\r\n dragOnEdge: boolean\r\n}\r\n\r\nclass PullDownRefresh extends React.Component<IProps, IState> {\r\n static defaultProps = {\r\n prefixCls: 'rmc-pull-to-refresh',\r\n distanceToRefresh: 50,\r\n damping: 100,\r\n indicator: INDICATOR\r\n }\r\n\r\n // https://github.com/yiminghe/zscroller/blob/2d97973287135745818a0537712235a39a6a62a1/src/Scroller.js#L355\r\n // currSt: `activate` / `deactivate` / `release` / `finish`\r\n state = {\r\n currSt: PullDownState.deactivate,\r\n dragOnEdge: false\r\n }\r\n\r\n containerRef: HTMLElement | null\r\n contentRef: HTMLDivElement | null\r\n _to: Record<string, EventListener>\r\n _ScreenY = 0\r\n _startScreenY = 0\r\n _lastScreenY = 0\r\n _isMounted = false\r\n listeners: [string, (...args: any[]) => void][] = []\r\n\r\n get scrollContainer () {\r\n return (\r\n document.querySelector('.taro_page_stationed') ||\r\n document.querySelector('.taro_page') ||\r\n document.querySelector('.taro_router') ||\r\n document.querySelector('.taro-tabbar__panel') ||\r\n document.body\r\n )\r\n }\r\n\r\n componentDidMount () {\r\n this.init()\r\n this._isMounted = true\r\n this.listeners = [\r\n [\r\n '__taroStartPullDownRefresh',\r\n ({ successHandler, errorHandler }) => {\r\n try {\r\n this.triggerPullDownRefresh(true)\r\n successHandler({\r\n errMsg: 'startPullDownRefresh: ok'\r\n })\r\n } catch (e) {\r\n errorHandler({\r\n errMsg: 'startPullDownRefresh: fail'\r\n })\r\n }\r\n }\r\n ],\r\n [\r\n '__taroStopPullDownRefresh',\r\n ({ successHandler, errorHandler }) => {\r\n try {\r\n this.triggerPullDownRefresh(false)\r\n successHandler({\r\n errMsg: 'stopPullDownRefresh: ok'\r\n })\r\n } catch (e) {\r\n errorHandler({\r\n errMsg: 'stopPullDownRefresh: fail'\r\n })\r\n }\r\n }\r\n ]\r\n ]\r\n this.listeners.forEach(([evtName, callback]) => {\r\n Taro.eventCenter.on(evtName, callback)\r\n })\r\n }\r\n\r\n componentWillUnmount () {\r\n this.destroy()\r\n this.listeners.forEach(([evtName, callback]) => {\r\n Taro.eventCenter.off(evtName, callback)\r\n })\r\n }\r\n\r\n componentDidUpdate (_, prevState: IState) {\r\n if (prevState.currSt !== this.state.currSt && this.state.currSt === PullDownState.release) {\r\n const pageEl: any = this.contentRef?.closest('.taro_page')\r\n if (pageEl?.__page) {\r\n pageEl.__page?.onPullDownRefresh()\r\n }\r\n }\r\n }\r\n\r\n triggerPullDownRefresh = (flag: boolean) => {\r\n // 在初始化时、用代码 自动 触发 pullDownRefresh\r\n // 添加this._isMounted的判断,否则组建一实例化,currSt就会是finish\r\n if (!this.state.dragOnEdge && this._isMounted) {\r\n if (flag) {\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n // change dom need after setState\r\n this.setState({ currSt: PullDownState.release }, () => this.setContentStyle(this._lastScreenY))\r\n } else {\r\n this.setState({ currSt: PullDownState.finish }, () => this.reset())\r\n }\r\n }\r\n }\r\n\r\n init = () => {\r\n const ele = this.scrollContainer\r\n this._to = {\r\n touchstart: this.onTouchStart.bind(this, ele),\r\n touchmove: this.onTouchMove.bind(this, ele),\r\n touchend: this.onTouchEnd.bind(this, ele),\r\n touchcancel: this.onTouchEnd.bind(this, ele)\r\n }\r\n Object.keys(this._to).forEach(key => {\r\n ele.addEventListener(key, this._to[key], willPreventDefault)\r\n })\r\n }\r\n\r\n destroy = () => {\r\n const ele = this.scrollContainer\r\n Object.keys(this._to).forEach(key => {\r\n ele.removeEventListener(key, this._to[key])\r\n })\r\n }\r\n\r\n onTouchStart = (_, e: TouchEvent) => {\r\n this._ScreenY = this._startScreenY = e.touches[0].screenY\r\n // 一开始 refreshing 为 true 时 this._lastScreenY 有值\r\n this._lastScreenY = this._lastScreenY || 0\r\n }\r\n\r\n isEdge = (ele: HTMLElement) => {\r\n const container = this.scrollContainer\r\n if (container && container === document.body) {\r\n // In chrome61 `document.body.scrollTop` is invalid\r\n const scrollNode = document.scrollingElement ? document.scrollingElement : document.body\r\n return scrollNode.scrollTop <= 0\r\n }\r\n return ele.scrollTop <= 0\r\n }\r\n\r\n damping = (dy: number) => {\r\n if (Math.abs(this._lastScreenY) > this.props.damping) {\r\n return 0\r\n }\r\n\r\n const ratio = Math.abs(this._ScreenY - this._startScreenY) / window.screen.height\r\n dy *= (1 - ratio) * 0.6\r\n\r\n return dy\r\n }\r\n\r\n onTouchMove = (ele: HTMLElement, e: TouchEvent) => {\r\n // 使用 pageY 对比有问题\r\n const _screenY = e.touches[0].screenY\r\n\r\n // 拖动方向不符合的不处理\r\n if (this._startScreenY > _screenY) {\r\n return\r\n }\r\n\r\n if (this.isEdge(ele)) {\r\n if (!this.state.dragOnEdge) {\r\n // 当用户开始往上滑的时候isEdge还是false的话,会导致this._ScreenY不是想要的,只有当isEdge为true时,再上滑,才有意义\r\n // 下面这行代码解决了上面这个问题\r\n this._ScreenY = this._startScreenY = e.touches[0].screenY\r\n this.setState({ dragOnEdge: true })\r\n }\r\n if (e.cancelable) {\r\n e.preventDefault()\r\n }\r\n // add stopPropagation with fastclick will trigger content onClick event. why?\r\n // ref https://github.com/ant-design/ant-design-mobile/issues/2141\r\n // e.stopPropagation();\r\n\r\n const _diff = Math.round(_screenY - this._ScreenY)\r\n this._ScreenY = _screenY\r\n this._lastScreenY += this.damping(_diff)\r\n\r\n this.setContentStyle(this._lastScreenY)\r\n\r\n if (Math.abs(this._lastScreenY) < this.props.distanceToRefresh) {\r\n if (this.state.currSt !== PullDownState.deactivate) {\r\n // console.log('back to the distance');\r\n this.setState({ currSt: PullDownState.deactivate })\r\n }\r\n } else {\r\n if (this.state.currSt === PullDownState.deactivate) {\r\n // console.log('reach to the distance');\r\n this.setState({ currSt: PullDownState.activate })\r\n }\r\n }\r\n\r\n // https://github.com/ant-design/ant-design-mobile/issues/573#issuecomment-339560829\r\n // iOS UIWebView issue, It seems no problem in WKWebView\r\n if (isWebView && e.changedTouches[0].clientY < 0) {\r\n this.onTouchEnd()\r\n }\r\n }\r\n }\r\n\r\n onTouchEnd = () => {\r\n if (this.state.dragOnEdge) {\r\n this.setState({ dragOnEdge: false })\r\n }\r\n if (this.state.currSt === PullDownState.activate) {\r\n this.setState({ currSt: PullDownState.release })\r\n this.props.onRefresh?.()\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n this.setContentStyle(this._lastScreenY)\r\n } else if (this.state.currSt === 'release') {\r\n this._lastScreenY = this.props.distanceToRefresh + 1\r\n this.setContentStyle(this._lastScreenY)\r\n } else {\r\n this.reset()\r\n }\r\n }\r\n\r\n reset = () => {\r\n this._lastScreenY = 0\r\n this.setContentStyle(0)\r\n }\r\n\r\n setContentStyle = ty => {\r\n // TODO: Why sometimes do not have `this.contentRef` ?\r\n if (this.contentRef) {\r\n // translate3d 不清理 会影响内部元素定位\r\n if (ty) {\r\n setTransform(this.contentRef.style, `translate3d(0px,${ty}px,0)`)\r\n } else {\r\n setTransform(this.contentRef.style, '')\r\n }\r\n }\r\n }\r\n\r\n render () {\r\n const props: Partial<IProps> & {\r\n children?: React.ReactNode\r\n } = { ...this.props }\r\n delete props.damping\r\n delete props.indicator\r\n delete props.distanceToRefresh\r\n delete props.onRefresh\r\n\r\n const { className, prefixCls, children, ...restProps } = props\r\n\r\n const renderRefresh = (cls: string) => {\r\n const { currSt, dragOnEdge } = this.state\r\n const cla = classNames(cls, !dragOnEdge && `${prefixCls}-transition`)\r\n const showIndicator = currSt === 'activate' || currSt === 'release'\r\n return (\r\n <div className={`${prefixCls}-content-wrapper`}>\r\n <div\r\n className={cla}\r\n ref={el => {\r\n this.contentRef = el\r\n }}\r\n >\r\n {showIndicator && (\r\n <div className={`${prefixCls}-indicator`}>\r\n <div />\r\n <div />\r\n <div />\r\n </div>\r\n )}\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n if (this.scrollContainer) {\r\n return renderRefresh(`${prefixCls}-content ${prefixCls}-down`)\r\n }\r\n return (\r\n <pull-down-refresh\r\n ref={el => {\r\n this.containerRef = el\r\n }}\r\n className={classNames(className, prefixCls, `${prefixCls}-down`)}\r\n {...restProps}\r\n >\r\n {renderRefresh(`${prefixCls}-content`)}\r\n </pull-down-refresh>\r\n )\r\n }\r\n}\r\n\r\nexport default PullDownRefresh\r\n"],"names":["setTransform","nodeStyle","value","transform","webkitTransform","MozTransform","isWebView","navigator","test","userAgent","PullDownState","INDICATOR","supportsPassive","opts","Object","defineProperty","get","window","addEventListener","e","willPreventDefault","passive","PullDownRefresh","state","currSt","deactivate","dragOnEdge","_ScreenY","_startScreenY","_lastScreenY","_isMounted","listeners","triggerPullDownRefresh","flag","props","distanceToRefresh","setState","release","setContentStyle","finish","reset","init","ele","scrollContainer","_to","touchstart","onTouchStart","bind","touchmove","onTouchMove","touchend","onTouchEnd","touchcancel","keys","forEach","key","destroy","removeEventListener","_","touches","screenY","isEdge","container","document","body","scrollNode","scrollingElement","scrollTop","damping","dy","Math","abs","ratio","screen","height","_screenY","cancelable","preventDefault","_diff","round","activate","changedTouches","clientY","_b","onRefresh","ty","contentRef","style","querySelector","successHandler","errorHandler","errMsg","evtName","callback","Taro","eventCenter","on","off","prevState","pageEl","_a","closest","__page","onPullDownRefresh","assign","indicator","className","prefixCls","children","restProps","__rest","renderRefresh","cls","cla","classNames","showIndicator","React","createElement","ref","el","containerRef","Component","defaultProps"],"mappings":"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"}