rox-react-components 0.0.44 → 0.0.46

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 (56) hide show
  1. package/dist/es/Button/Button.js +46 -1
  2. package/dist/es/Button/index.js +5 -1
  3. package/dist/es/Button/styles.js +40 -1
  4. package/dist/es/Card/Card.js +22 -1
  5. package/dist/es/Card/index.js +5 -1
  6. package/dist/es/Card/styles.js +18 -1
  7. package/dist/es/Container/Container.js +20 -1
  8. package/dist/es/Container/index.js +5 -1
  9. package/dist/es/Container/styles.js +30 -1
  10. package/dist/es/Loading/Inner.js +13 -1
  11. package/dist/es/Loading/Loading.js +67 -1
  12. package/dist/es/Loading/dom.js +11 -1
  13. package/dist/es/Loading/index.js +5 -1
  14. package/dist/es/Loading/styles.js +80 -1
  15. package/dist/es/Loading/type.js +3 -1
  16. package/dist/es/Popup/Popup.js +112 -1
  17. package/dist/es/Popup/index.js +5 -1
  18. package/dist/es/Popup/styles.js +138 -1
  19. package/dist/es/ScrollView/ScrollView.js +105 -1
  20. package/dist/es/ScrollView/index.js +5 -1
  21. package/dist/es/ScrollView/styles.js +23 -1
  22. package/dist/es/Swiper/Swiper.js +388 -1
  23. package/dist/es/Swiper/index.js +5 -1
  24. package/dist/es/Swiper/styles.js +48 -1
  25. package/dist/es/hooks/useShow.js +18 -1
  26. package/dist/es/index.js +9 -1
  27. package/dist/es/utils.js +69 -1
  28. package/dist/index.d.ts +4 -3
  29. package/dist/lib/Button/Button.js +50 -1
  30. package/dist/lib/Button/index.js +9 -1
  31. package/dist/lib/Button/styles.js +44 -1
  32. package/dist/lib/Card/Card.js +26 -1
  33. package/dist/lib/Card/index.js +9 -1
  34. package/dist/lib/Card/styles.js +22 -1
  35. package/dist/lib/Container/Container.js +24 -1
  36. package/dist/lib/Container/index.js +9 -1
  37. package/dist/lib/Container/styles.js +34 -1
  38. package/dist/lib/Loading/Inner.js +17 -1
  39. package/dist/lib/Loading/Loading.js +71 -1
  40. package/dist/lib/Loading/dom.js +15 -1
  41. package/dist/lib/Loading/index.js +9 -1
  42. package/dist/lib/Loading/styles.js +84 -1
  43. package/dist/lib/Loading/type.js +5 -1
  44. package/dist/lib/Popup/Popup.js +116 -1
  45. package/dist/lib/Popup/index.js +9 -1
  46. package/dist/lib/Popup/styles.js +143 -1
  47. package/dist/lib/ScrollView/ScrollView.js +109 -1
  48. package/dist/lib/ScrollView/index.js +9 -1
  49. package/dist/lib/ScrollView/styles.js +27 -1
  50. package/dist/lib/Swiper/Swiper.js +392 -1
  51. package/dist/lib/Swiper/index.js +9 -1
  52. package/dist/lib/Swiper/styles.js +52 -1
  53. package/dist/lib/hooks/useShow.js +22 -1
  54. package/dist/lib/index.js +23 -1
  55. package/dist/lib/utils.js +73 -1
  56. package/package.json +58 -58
@@ -1 +1,392 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),t=require("aphrodite/no-important"),n=require("react"),r=require("../utils.js"),u=require("./styles.js"),a=60,s={width:"10px",height:"10px",borderRadius:"50%",backgroundColor:"rgba(0,0,0,.3)",transition:"all 200ms linear"},l=e.__assign(e.__assign({},s),{backgroundColor:"rgba(255,255,255,.7)"}),i={data:[],renderItem:function(){return null},onChange:function(){return null},boundary:1/3,duration:500,delay:2e3,autoPlay:!0,active:0,dotVisible:!0,dotBoxStyle:{},dotStyle:s,activeDotStyle:l};var c=n.forwardRef((function(c,o){var d=e.__assign(e.__assign({},i),c),f=d.boundary,v=d.data,m=d.renderItem,h=d.children,_=d.dotVisible,b=d.renderDots,g=d.dotBoxStyle,p=d.activeDotStyle,y=d.dotStyle,w=v.length>=2,E=function(){var e=n.useRef(null),t=n.useState(0),r=t[0],u=t[1],a=n.useCallback((function(){var t,n;return u(Math.max((null===(t=e.current)||void 0===t?void 0:t.clientWidth)||0,(null===(n=e.current)||void 0===n?void 0:n.offsetWidth)||0))}),[]);return n.useEffect((function(){return a(),window.addEventListener("resize",a),function(){return window.removeEventListener("resize",a)}}),[a]),[e,r]}(),x=E[0],k=E[1],L=function(t){var u=this,s=t.active,l=t.data,i=t.width,c=t.duration,o=t.boundary,d=t.delay,f=t.ref,v=t.onChange,m=l.length>=2,h=n.useRef(),_=n.useRef(!0),b=n.useRef(s),g=n.useRef(!1),p=n.useRef(!1),y=n.useState(!1),w=y[0],E=y[1],x=n.useState(s),k=x[0],L=x[1],T=n.useRef(null),C=n.useMemo((function(){return i*o}),[i,o]),S=n.useCallback((function(e){if(!T.current)return 0;var t=getComputedStyle(T.current);try{var n=new WebKitCSSMatrix(t.transform);return{x:n.m41,y:n.m42,z:n.m43}[e]}catch(n){var r=t.transform.split(/\(|\)/),u=r[0],a=r[1];if(u.includes("3d")){var s=a.split(",").slice(-4),l=s[0],i=s[1],c=s[2];return Number({x:l,y:i,z:c}[e])}var o=a.split(",").slice(-2);return l=o[0],i=o[1],Number({x:l,y:i,z:0}[e])}}),[]),M=n.useCallback((function(e,t){void 0===e&&(e=!1),void 0===t&&(t=c),T.current&&(T.current.style.transition=e?"none":"all ".concat(t,"ms linear"),T.current.style.webkitTransition=e?"none":"all ".concat(t,"ms linear"))}),[c]),N=n.useCallback((function(e){if(T.current){var t=e;null==t&&(t=m?-i*b.current+"px":"0px"),T.current.style.transform="translate3d(".concat(t,", 0, 0)"),T.current.style.webkitTransform="translate3d(".concat(t,", 0, 0)")}}),[m,i]),R=n.useCallback((function(){return e.__awaiter(u,void 0,void 0,(function(){var t;return e.__generator(this,(function(e){switch(e.label){case 0:return g.current||!m?[2]:(g.current=!0,E(!0),b.current>=l.length+1?(g.current=!1,M(!0),b.current=1,N(),[4,r.default.sleep(a)]):[3,2]);case 1:return e.sent(),R(),[2];case 2:return M(),b.current++,(t=b.current-1)>=l.length&&(t=0),L(t),N(),[4,r.default.sleep(c)];case 3:return e.sent(),g.current=!1,E(!1),[2]}}))}))}),[m,l.length,M,N]),z=n.useCallback((function(){return e.__awaiter(u,void 0,void 0,(function(){var t;return e.__generator(this,(function(e){switch(e.label){case 0:return g.current||!m?[2]:(g.current=!0,E(!0),b.current<=0?(g.current=!1,M(!0),b.current=l.length,N(),[4,r.default.sleep(a)]):[3,2]);case 1:return e.sent(),z(),[2];case 2:return M(),b.current--,(t=b.current-1)<0&&(t=l.length-1),L(t),N(),[4,r.default.sleep(c)];case 3:return e.sent(),g.current=!1,E(!1),[2]}}))}))}),[m,l.length,M,N]),W=n.useCallback((function(t){return e.__awaiter(u,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return g.current||!m?[2]:(g.current=!0,E(!0),b.current<=0?(M(!0),b.current=l.length,N(),[4,r.default.sleep(a)]):[3,2]);case 1:e.sent(),e.label=2;case 2:return b.current>=l.length+1?(M(!0),b.current=1,N(),[4,r.default.sleep(a)]):[3,4];case 3:e.sent(),e.label=4;case 4:return M(),b.current=t+1,N(),L(t),[4,r.default.sleep(c)];case 5:return e.sent(),g.current=!1,E(!1),[2]}}))}))}),[m,M,l.length,N,c]);return n.useImperativeHandle(f,(function(){return{next:function(){return R()},pre:function(){return z()}}}),[R,z]),n.useEffect((function(){_.current=!0}),[i,l.length]),n.useEffect((function(){_.current?(E(!0),b.current=m?s+1:s,M(!0),N(),L(s),_.current=!1,r.default.sleep(a).then((function(){E(!1)}))):(_.current=!1,W(s))}),[s,m,l,M,N,W]),n.useEffect((function(){v(k)}),[k]),n.useEffect((function(){m&&t.autoPlay&&!w?h.current=setTimeout((function(){return R()}),d):clearTimeout(h.current)}),[m,t.autoPlay,w,d,R]),n.useEffect((function(){var t=T.current,n=0,u=0;function a(e){g.current||(p.current=!0,E(!0),M(!0),b.current<=0&&(b.current=l.length,N()),b.current>=l.length+1&&(b.current=1,N()),n=e,u=S("x"))}function s(e){p.current&&N(u+(e-n)+"px")}function o(t){return e.__awaiter(this,void 0,void 0,(function(){var u,a,s;return e.__generator(this,(function(e){switch(e.label){case 0:return p.current?((u=t-n)>=C?(b.current--,a=(i-Math.abs(u))*c/i,M(!1,a)):u<=-C?(b.current++,a=(i-Math.abs(u))*c/i,M(!1,a)):(a=Math.abs(u)*c/i,M(!1,a)),(s=b.current-1)>=l.length&&(s=0),L(s),p.current=!1,g.current=!0,N(),[4,r.default.sleep(c)]):[2];case 1:return e.sent(),E(!1),g.current=!1,[2]}}))}))}function d(e){e.preventDefault(),e.stopPropagation()}function f(e){d(e),a(e.targetTouches[0].pageX)}function v(e){d(e),a(e.pageX)}function h(e){d(e),s(e.targetTouches[0].pageX)}function _(e){d(e),s(e.pageX)}function y(e){d(e),o(e.changedTouches[0].pageX)}function w(e){d(e),o(e.pageX)}function x(e){d(e),o(e.changedTouches[0].pageX)}return t&&m&&(t.addEventListener("touchstart",f,{passive:!1}),t.addEventListener("touchmove",h,{passive:!1}),t.addEventListener("touchend",y,{passive:!1}),t.addEventListener("touchcancel",x,{passive:!1}),t.addEventListener("mousedown",v,{passive:!1}),t.addEventListener("mousemove",_,{passive:!1}),t.addEventListener("mouseup",w,{passive:!1}),t.addEventListener("mouseout",w,{passive:!1})),function(){null==t||t.removeEventListener("touchstart",f),null==t||t.removeEventListener("touchmove",h),null==t||t.removeEventListener("touchend",y),null==t||t.removeEventListener("touchcancel",x),null==t||t.removeEventListener("mousedown",v),null==t||t.removeEventListener("mousemove",_),null==t||t.removeEventListener("mouseup",w),null==t||t.removeEventListener("mouseout",w)}}),[m,M,S,N,C,c,l.length,i]),n.useEffect((function(){var e;function t(){clearTimeout(e),E(!0),M(!0),N(),e=setTimeout((function(){E(!1)}),60)}return window.addEventListener("resize",t),function(){return window.removeEventListener("resize",t)}}),[M,N]),n.useEffect((function(){var e=h.current;return function(){return clearTimeout(e)}}),[]),[T,k,W]}(e.__assign(e.__assign(e.__assign({},i),c),{width:k,ref:o})),T=L[0],C=L[1],S=L[2],M=n.useMemo((function(){return k&&w?k*(v.length+2)+"px":"100%"}),[k,w,v.length]);if("number"!=typeof f||f<=0||f>=1)throw new Error("property boundary must be number, and between 0 and 1, exclude 0 and 1");return n.createElement("div",{className:t.css(u.default.relative,u.default.w_full,u.default.border_box,u.default.overflow_hidden)},n.createElement("div",{ref:x,className:t.css(u.default.relative,u.default.w_full,u.default.border_box,u.default.overflow_hidden)},n.createElement("div",{ref:T,style:{width:M,backfaceVisibility:"hidden",MozBackfaceVisibility:"hidden",WebkitBackfaceVisibility:"hidden"},className:t.css(u.default.relative,u.default.w_full,u.default.flex,u.default.nowrap,u.default.border_box,u.default.item_center,u.default.justify_center)},w&&n.createElement("div",{style:{WebkitTransform:"translate3d(0,0,0)",msTransform:"translate3d(0,0,0)",transform:"translate3d(0,0,0)"},className:t.css(u.default.relative,u.default.flex_1,u.default.overflow_hidden,u.default.border_box)},m(v[v.length-1])),v.map((function(e,r){return n.createElement("div",{key:r,style:{WebkitTransform:"translate3d(0,0,0)",msTransform:"translate3d(0,0,0)",transform:"translate3d(0,0,0)"},className:t.css(u.default.relative,u.default.flex_1,u.default.overflow_hidden,u.default.border_box)},m(e))})),w&&n.createElement("div",{style:{WebkitTransform:"translate3d(0,0,0)",msTransform:"translate3d(0,0,0)",transform:"translate3d(0,0,0)"},className:t.css(u.default.relative,u.default.flex_1,u.default.overflow_hidden,u.default.border_box)},m(v[0])))),h,b||_&&n.createElement("ul",{style:g,className:t.css(u.default.absolute,u.default.w_full,u.default.left_0,u.default.flex,u.default.justify_center,u.default.item_center,u.default.bottom_20,u.default.style_none,u.default.gap)},v.map((function(t,r){return n.createElement("li",{key:r,onClick:function(){return S(r)},style:r===C?e.__assign(e.__assign({},l),p):e.__assign(e.__assign({},s),y)})}))))}));exports.default=c;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var noImportant = require('aphrodite/no-important');
7
+ var React = require('react');
8
+ var utils = require('../utils.js');
9
+ var styles = require('./styles.js');
10
+
11
+ var keyframe = 60;
12
+ var initDotStyle = { width: '10px', height: '10px', borderRadius: '50%', backgroundColor: 'rgba(0,0,0,.3)', transition: 'all 200ms linear' };
13
+ var initActiveDotStyle = tslib.__assign(tslib.__assign({}, initDotStyle), { backgroundColor: 'rgba(255,255,255,.7)' });
14
+ var initSwiperProps = {
15
+ data: [],
16
+ renderItem: function () { return null; },
17
+ onChange: function () { return null; },
18
+ boundary: 1 / 3,
19
+ duration: 500,
20
+ delay: 2000,
21
+ autoPlay: true,
22
+ active: 0,
23
+ dotVisible: true,
24
+ dotBoxStyle: {},
25
+ dotStyle: initDotStyle,
26
+ activeDotStyle: initActiveDotStyle,
27
+ };
28
+ function useClientWidth() {
29
+ var box_el = React.useRef(null);
30
+ var _a = React.useState(0), width = _a[0], setWidth = _a[1];
31
+ var resetWidth = React.useCallback(function () { var _a, _b; return setWidth(Math.max(((_a = box_el.current) === null || _a === void 0 ? void 0 : _a.clientWidth) || 0, ((_b = box_el.current) === null || _b === void 0 ? void 0 : _b.offsetWidth) || 0)); }, []);
32
+ React.useEffect(function () {
33
+ resetWidth();
34
+ window.addEventListener('resize', resetWidth);
35
+ return function () { return window.removeEventListener('resize', resetWidth); };
36
+ }, [resetWidth]);
37
+ return [box_el, width];
38
+ }
39
+ function useTouchMouseScrollEvent(props) {
40
+ var _this = this;
41
+ var active = props.active, data = props.data, width = props.width, duration = props.duration, boundary = props.boundary, delay = props.delay, ref = props.ref, onChange = props.onChange;
42
+ var gte2 = data.length >= 2;
43
+ var ticker = React.useRef();
44
+ var inited = React.useRef(true);
45
+ var idx_ref = React.useRef(active);
46
+ var is_moving = React.useRef(false);
47
+ var touch_mouse_started = React.useRef(false);
48
+ var _a = React.useState(false), interaction = _a[0], setInteraction = _a[1];
49
+ var _b = React.useState(active), current = _b[0], setCurrent = _b[1];
50
+ var scroll_el = React.useRef(null);
51
+ var bound = React.useMemo(function () { return width * boundary; }, [width, boundary]);
52
+ var getTranslateX = React.useCallback(function (axis) {
53
+ if (!scroll_el.current)
54
+ return 0;
55
+ var style = getComputedStyle(scroll_el.current);
56
+ try {
57
+ var _a = new WebKitCSSMatrix(style.transform), m41 = _a.m41, m42 = _a.m42, m43 = _a.m43;
58
+ return { x: m41, y: m42, z: m43 }[axis];
59
+ }
60
+ catch (e) {
61
+ var _b = style.transform.split(/\(|\)/), type = _b[0], str = _b[1];
62
+ if (type.includes('3d')) {
63
+ var _c = str.split(',').slice(-4), x = _c[0], y = _c[1], z = _c[2];
64
+ return Number({ x: x, y: y, z: z }[axis]);
65
+ }
66
+ else {
67
+ var _d = str.split(',').slice(-2), x = _d[0], y = _d[1];
68
+ return Number({ x: x, y: y, z: 0 }[axis]);
69
+ }
70
+ }
71
+ }, []);
72
+ var setD = React.useCallback(function (none, timestamp) {
73
+ if (none === void 0) { none = false; }
74
+ if (timestamp === void 0) { timestamp = duration; }
75
+ if (scroll_el.current) {
76
+ scroll_el.current.style.transition = none ? 'none' : "all ".concat(timestamp, "ms linear");
77
+ scroll_el.current.style.webkitTransition = none ? 'none' : "all ".concat(timestamp, "ms linear");
78
+ }
79
+ }, [duration]);
80
+ var setX = React.useCallback(function (x) {
81
+ if (scroll_el.current) {
82
+ var _x = x;
83
+ if (_x === undefined || _x === null)
84
+ _x = gte2 ? -width * idx_ref.current + 'px' : '0px';
85
+ scroll_el.current.style.transform = "translate3d(".concat(_x, ", 0, 0)");
86
+ scroll_el.current.style.webkitTransform = "translate3d(".concat(_x, ", 0, 0)");
87
+ }
88
+ }, [gte2, width]);
89
+ var next = React.useCallback(function () { return tslib.__awaiter(_this, void 0, void 0, function () {
90
+ var index;
91
+ return tslib.__generator(this, function (_a) {
92
+ switch (_a.label) {
93
+ case 0:
94
+ if (is_moving.current || !gte2)
95
+ return [2 /*return*/];
96
+ is_moving.current = true;
97
+ setInteraction(true);
98
+ if (!(idx_ref.current >= data.length + 1)) return [3 /*break*/, 2];
99
+ is_moving.current = false;
100
+ setD(true);
101
+ idx_ref.current = 1;
102
+ setX();
103
+ return [4 /*yield*/, utils.default.sleep(keyframe)];
104
+ case 1:
105
+ _a.sent();
106
+ next();
107
+ return [2 /*return*/];
108
+ case 2:
109
+ setD();
110
+ idx_ref.current++;
111
+ index = idx_ref.current - 1;
112
+ if (index >= data.length)
113
+ index = 0;
114
+ setCurrent(index);
115
+ setX();
116
+ return [4 /*yield*/, utils.default.sleep(duration)];
117
+ case 3:
118
+ _a.sent();
119
+ is_moving.current = false;
120
+ setInteraction(false);
121
+ return [2 /*return*/];
122
+ }
123
+ });
124
+ }); }, [gte2, data.length, setD, setX]);
125
+ var pre = React.useCallback(function () { return tslib.__awaiter(_this, void 0, void 0, function () {
126
+ var index;
127
+ return tslib.__generator(this, function (_a) {
128
+ switch (_a.label) {
129
+ case 0:
130
+ if (is_moving.current || !gte2)
131
+ return [2 /*return*/];
132
+ is_moving.current = true;
133
+ setInteraction(true);
134
+ if (!(idx_ref.current <= 0)) return [3 /*break*/, 2];
135
+ is_moving.current = false;
136
+ setD(true);
137
+ idx_ref.current = data.length;
138
+ setX();
139
+ return [4 /*yield*/, utils.default.sleep(keyframe)];
140
+ case 1:
141
+ _a.sent();
142
+ pre();
143
+ return [2 /*return*/];
144
+ case 2:
145
+ setD();
146
+ idx_ref.current--;
147
+ index = idx_ref.current - 1;
148
+ if (index < 0)
149
+ index = data.length - 1;
150
+ setCurrent(index);
151
+ setX();
152
+ return [4 /*yield*/, utils.default.sleep(duration)];
153
+ case 3:
154
+ _a.sent();
155
+ is_moving.current = false;
156
+ setInteraction(false);
157
+ return [2 /*return*/];
158
+ }
159
+ });
160
+ }); }, [gte2, data.length, setD, setX]);
161
+ var handleSetCurrent = React.useCallback(function (index) { return tslib.__awaiter(_this, void 0, void 0, function () {
162
+ return tslib.__generator(this, function (_a) {
163
+ switch (_a.label) {
164
+ case 0:
165
+ if (is_moving.current || !gte2)
166
+ return [2 /*return*/];
167
+ is_moving.current = true;
168
+ setInteraction(true);
169
+ if (!(idx_ref.current <= 0)) return [3 /*break*/, 2];
170
+ setD(true);
171
+ idx_ref.current = data.length;
172
+ setX();
173
+ return [4 /*yield*/, utils.default.sleep(keyframe)];
174
+ case 1:
175
+ _a.sent();
176
+ _a.label = 2;
177
+ case 2:
178
+ if (!(idx_ref.current >= data.length + 1)) return [3 /*break*/, 4];
179
+ setD(true);
180
+ idx_ref.current = 1;
181
+ setX();
182
+ return [4 /*yield*/, utils.default.sleep(keyframe)];
183
+ case 3:
184
+ _a.sent();
185
+ _a.label = 4;
186
+ case 4:
187
+ setD();
188
+ idx_ref.current = index + 1;
189
+ setX();
190
+ setCurrent(index);
191
+ return [4 /*yield*/, utils.default.sleep(duration)];
192
+ case 5:
193
+ _a.sent();
194
+ is_moving.current = false;
195
+ setInteraction(false);
196
+ return [2 /*return*/];
197
+ }
198
+ });
199
+ }); }, [gte2, setD, data.length, setX, duration]);
200
+ React.useImperativeHandle(ref, function () { return ({ next: function () { return next(); }, pre: function () { return pre(); } }); }, [next, pre]);
201
+ React.useEffect(function () {
202
+ inited.current = true;
203
+ }, [width, data.length]);
204
+ React.useEffect(function () {
205
+ if (inited.current) {
206
+ setInteraction(true);
207
+ idx_ref.current = gte2 ? active + 1 : active;
208
+ setD(true);
209
+ setX();
210
+ setCurrent(active);
211
+ inited.current = false;
212
+ utils.default.sleep(keyframe).then(function () {
213
+ setInteraction(false);
214
+ });
215
+ }
216
+ else {
217
+ inited.current = false;
218
+ handleSetCurrent(active);
219
+ }
220
+ }, [active, gte2, data, setD, setX, handleSetCurrent]);
221
+ React.useEffect(function () {
222
+ onChange(current);
223
+ }, [current]); // attention
224
+ React.useEffect(function () {
225
+ if (gte2 && props.autoPlay && !interaction) {
226
+ ticker.current = setTimeout(function () { return next(); }, delay);
227
+ }
228
+ else {
229
+ clearTimeout(ticker.current);
230
+ }
231
+ }, [gte2, props.autoPlay, interaction, delay, next]);
232
+ React.useEffect(function () {
233
+ var el = scroll_el.current;
234
+ var start = 0, offset = 0;
235
+ function adjustPositionOnBegin(x) {
236
+ if (is_moving.current)
237
+ return;
238
+ touch_mouse_started.current = true;
239
+ setInteraction(true);
240
+ setD(true);
241
+ if (idx_ref.current <= 0) {
242
+ idx_ref.current = data.length;
243
+ setX();
244
+ }
245
+ if (idx_ref.current >= data.length + 1) {
246
+ idx_ref.current = 1;
247
+ setX();
248
+ }
249
+ start = x;
250
+ offset = getTranslateX('x');
251
+ }
252
+ function adjustPositionOnMove(x) {
253
+ if (!touch_mouse_started.current)
254
+ return;
255
+ var diff_x = x - start;
256
+ setX(offset + diff_x + 'px');
257
+ }
258
+ function adjustPositionOnEnd(x) {
259
+ return tslib.__awaiter(this, void 0, void 0, function () {
260
+ var diff_x, timestamp, timestamp, timestamp, index;
261
+ return tslib.__generator(this, function (_a) {
262
+ switch (_a.label) {
263
+ case 0:
264
+ if (!touch_mouse_started.current)
265
+ return [2 /*return*/];
266
+ diff_x = x - start;
267
+ if (diff_x >= bound) {
268
+ idx_ref.current--;
269
+ timestamp = ((width - Math.abs(diff_x)) * duration) / width;
270
+ setD(false, timestamp);
271
+ }
272
+ else if (diff_x <= -bound) {
273
+ idx_ref.current++;
274
+ timestamp = ((width - Math.abs(diff_x)) * duration) / width;
275
+ setD(false, timestamp);
276
+ }
277
+ else {
278
+ timestamp = (Math.abs(diff_x) * duration) / width;
279
+ setD(false, timestamp);
280
+ }
281
+ index = idx_ref.current - 1;
282
+ if (index >= data.length)
283
+ index = 0;
284
+ setCurrent(index);
285
+ touch_mouse_started.current = false;
286
+ is_moving.current = true;
287
+ setX();
288
+ return [4 /*yield*/, utils.default.sleep(duration)];
289
+ case 1:
290
+ _a.sent();
291
+ setInteraction(false);
292
+ is_moving.current = false;
293
+ return [2 /*return*/];
294
+ }
295
+ });
296
+ });
297
+ }
298
+ function stop(ev) {
299
+ ev.preventDefault();
300
+ ev.stopPropagation();
301
+ }
302
+ function onTouchStart(ev) {
303
+ stop(ev);
304
+ adjustPositionOnBegin(ev.targetTouches[0].pageX);
305
+ }
306
+ function onMouseStart(ev) {
307
+ stop(ev);
308
+ adjustPositionOnBegin(ev.pageX);
309
+ }
310
+ function onTouchMove(ev) {
311
+ stop(ev);
312
+ adjustPositionOnMove(ev.targetTouches[0].pageX);
313
+ }
314
+ function onMouseMove(ev) {
315
+ stop(ev);
316
+ adjustPositionOnMove(ev.pageX);
317
+ }
318
+ function onTouchEnd(ev) {
319
+ stop(ev);
320
+ adjustPositionOnEnd(ev.changedTouches[0].pageX);
321
+ }
322
+ function onMouseEnd(ev) {
323
+ stop(ev);
324
+ adjustPositionOnEnd(ev.pageX);
325
+ }
326
+ function onCancel(ev) {
327
+ stop(ev);
328
+ adjustPositionOnEnd(ev.changedTouches[0].pageX);
329
+ }
330
+ if (el && gte2) {
331
+ el.addEventListener('touchstart', onTouchStart, { passive: false });
332
+ el.addEventListener('touchmove', onTouchMove, { passive: false });
333
+ el.addEventListener('touchend', onTouchEnd, { passive: false });
334
+ el.addEventListener('touchcancel', onCancel, { passive: false });
335
+ el.addEventListener('mousedown', onMouseStart, { passive: false });
336
+ el.addEventListener('mousemove', onMouseMove, { passive: false });
337
+ el.addEventListener('mouseup', onMouseEnd, { passive: false });
338
+ el.addEventListener('mouseout', onMouseEnd, { passive: false });
339
+ }
340
+ return function () {
341
+ el === null || el === void 0 ? void 0 : el.removeEventListener('touchstart', onTouchStart);
342
+ el === null || el === void 0 ? void 0 : el.removeEventListener('touchmove', onTouchMove);
343
+ el === null || el === void 0 ? void 0 : el.removeEventListener('touchend', onTouchEnd);
344
+ el === null || el === void 0 ? void 0 : el.removeEventListener('touchcancel', onCancel);
345
+ el === null || el === void 0 ? void 0 : el.removeEventListener('mousedown', onMouseStart);
346
+ el === null || el === void 0 ? void 0 : el.removeEventListener('mousemove', onMouseMove);
347
+ el === null || el === void 0 ? void 0 : el.removeEventListener('mouseup', onMouseEnd);
348
+ el === null || el === void 0 ? void 0 : el.removeEventListener('mouseout', onMouseEnd);
349
+ };
350
+ }, [gte2, setD, getTranslateX, setX, bound, duration, data.length, width]);
351
+ React.useEffect(function () {
352
+ var tick;
353
+ function onResize() {
354
+ clearTimeout(tick);
355
+ setInteraction(true);
356
+ setD(true);
357
+ setX();
358
+ tick = setTimeout(function () {
359
+ setInteraction(false);
360
+ }, 60);
361
+ }
362
+ window.addEventListener('resize', onResize);
363
+ return function () { return window.removeEventListener('resize', onResize); };
364
+ }, [setD, setX]);
365
+ React.useEffect(function () {
366
+ var tick = ticker.current;
367
+ return function () { return clearTimeout(tick); };
368
+ }, []);
369
+ return [scroll_el, current, handleSetCurrent];
370
+ }
371
+ function Swiper(props, ref) {
372
+ var _a = tslib.__assign(tslib.__assign({}, initSwiperProps), props), boundary = _a.boundary, data = _a.data, renderItem = _a.renderItem, children = _a.children, dotVisible = _a.dotVisible, renderDots = _a.renderDots, dotBoxStyle = _a.dotBoxStyle, activeDotStyle = _a.activeDotStyle, dotStyle = _a.dotStyle;
373
+ var gte2 = data.length >= 2;
374
+ var _b = useClientWidth(), box_el = _b[0], width = _b[1];
375
+ var _c = useTouchMouseScrollEvent(tslib.__assign(tslib.__assign(tslib.__assign({}, initSwiperProps), props), { width: width, ref: ref })), scroll_el = _c[0], current = _c[1], setCurrent = _c[2];
376
+ var scroll_width = React.useMemo(function () { return (width && gte2 ? width * (data.length + 2) + 'px' : '100%'); }, [width, gte2, data.length]);
377
+ if (typeof boundary !== 'number' || boundary <= 0 || boundary >= 1) {
378
+ throw new Error('property boundary must be number, and between 0 and 1, exclude 0 and 1');
379
+ }
380
+ return (React.createElement("div", { className: noImportant.css(styles.default.relative, styles.default.w_full, styles.default.border_box, styles.default.overflow_hidden) },
381
+ React.createElement("div", { ref: box_el, className: noImportant.css(styles.default.relative, styles.default.w_full, styles.default.border_box, styles.default.overflow_hidden) },
382
+ React.createElement("div", { ref: scroll_el, style: { width: scroll_width, backfaceVisibility: 'hidden', MozBackfaceVisibility: 'hidden', WebkitBackfaceVisibility: 'hidden' }, className: noImportant.css(styles.default.relative, styles.default.w_full, styles.default.flex, styles.default.nowrap, styles.default.border_box, styles.default.item_center, styles.default.justify_center) },
383
+ gte2 && (React.createElement("div", { style: { WebkitTransform: 'translate3d(0,0,0)', msTransform: 'translate3d(0,0,0)', transform: 'translate3d(0,0,0)' }, className: noImportant.css(styles.default.relative, styles.default.flex_1, styles.default.overflow_hidden, styles.default.border_box) }, renderItem(data[data.length - 1]))),
384
+ data.map(function (item, index) { return (React.createElement("div", { key: index, style: { WebkitTransform: 'translate3d(0,0,0)', msTransform: 'translate3d(0,0,0)', transform: 'translate3d(0,0,0)' }, className: noImportant.css(styles.default.relative, styles.default.flex_1, styles.default.overflow_hidden, styles.default.border_box) }, renderItem(item))); }),
385
+ gte2 && (React.createElement("div", { style: { WebkitTransform: 'translate3d(0,0,0)', msTransform: 'translate3d(0,0,0)', transform: 'translate3d(0,0,0)' }, className: noImportant.css(styles.default.relative, styles.default.flex_1, styles.default.overflow_hidden, styles.default.border_box) }, renderItem(data[0]))))),
386
+ children,
387
+ renderDots ||
388
+ (dotVisible && (React.createElement("ul", { style: dotBoxStyle, className: noImportant.css(styles.default.absolute, styles.default.w_full, styles.default.left_0, styles.default.flex, styles.default.justify_center, styles.default.item_center, styles.default.bottom_20, styles.default.style_none, styles.default.gap) }, data.map(function (_, i) { return (React.createElement("li", { key: i, onClick: function () { return setCurrent(i); }, style: i === current ? tslib.__assign(tslib.__assign({}, initActiveDotStyle), activeDotStyle) : tslib.__assign(tslib.__assign({}, initDotStyle), dotStyle) })); }))))));
389
+ }
390
+ var Swiper$1 = React.forwardRef(Swiper);
391
+
392
+ exports.default = Swiper$1;
@@ -1 +1,9 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Swiper.js");exports.default=e.default;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var Swiper = require('./Swiper.js');
6
+
7
+
8
+
9
+ exports.default = Swiper.default;
@@ -1 +1,52 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("aphrodite/no-important").StyleSheet.create({relative:{position:"relative"},absolute:{position:"absolute"},w_full:{width:"100%"},border_box:{boxSizing:"border-box"},overflow_hidden:{overflow:"hidden"},flex:{display:"flex"},nowrap:{flexWrap:"nowrap"},flex_1:{flex:1},item_center:{alignItems:"center"},justify_center:{justifyContent:"center"},left_0:{left:0},bottom_20:{bottom:"20px"},style_none:{listStyle:"none"},gap:{columnGap:"8px"}});exports.default=e;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var noImportant = require('aphrodite/no-important');
6
+
7
+ var styles = noImportant.StyleSheet.create({
8
+ relative: {
9
+ position: 'relative',
10
+ },
11
+ absolute: {
12
+ position: 'absolute',
13
+ },
14
+ w_full: {
15
+ width: '100%',
16
+ },
17
+ border_box: {
18
+ boxSizing: 'border-box',
19
+ },
20
+ overflow_hidden: {
21
+ overflow: 'hidden',
22
+ },
23
+ flex: {
24
+ display: 'flex',
25
+ },
26
+ nowrap: {
27
+ flexWrap: 'nowrap',
28
+ },
29
+ flex_1: {
30
+ flex: 1,
31
+ },
32
+ item_center: {
33
+ alignItems: 'center',
34
+ },
35
+ justify_center: {
36
+ justifyContent: 'center',
37
+ },
38
+ left_0: {
39
+ left: 0,
40
+ },
41
+ bottom_20: {
42
+ bottom: '20px',
43
+ },
44
+ style_none: {
45
+ listStyle: 'none',
46
+ },
47
+ gap: {
48
+ columnGap: '8px',
49
+ },
50
+ });
51
+
52
+ exports.default = styles;
@@ -1 +1,22 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");exports.default=function(t,n){void 0===n&&(n=[]);var i=e.useCallback((function(){return null==t?void 0:t()}),n);e.useEffect((function(){return i(),document.addEventListener("visibilitychange",i),function(){document.removeEventListener("visibilitychange",i)}}),[i])};
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ function useShow(method, dep) {
8
+ if (dep === void 0) { dep = []; }
9
+ var onShow = React.useCallback(function () {
10
+ if (document.visibilityState === 'visible')
11
+ method === null || method === void 0 ? void 0 : method();
12
+ }, dep);
13
+ React.useEffect(function () {
14
+ onShow();
15
+ document.addEventListener('visibilitychange', onShow);
16
+ return function () {
17
+ document.removeEventListener('visibilitychange', onShow);
18
+ };
19
+ }, [onShow]);
20
+ }
21
+
22
+ exports.default = useShow;
package/dist/lib/index.js CHANGED
@@ -1 +1,23 @@
1
- "use strict";var e=require("./utils.js"),r=require("./hooks/useShow.js"),t=require("./Button/Button.js"),u=require("./Card/Card.js"),o=require("./Container/Container.js"),s=require("./Loading/Loading.js"),i=require("./Popup/Popup.js"),a=require("./ScrollView/ScrollView.js"),p=require("./Swiper/Swiper.js");exports.utils=e.default,exports.useShow=r.default,exports.Button=t.default,exports.Card=u.default,exports.Container=o.default,exports.Loading=s.default,exports.Popup=i.default,exports.ScrollView=a.default,exports.Swiper=p.default;
1
+ 'use strict';
2
+
3
+ var utils = require('./utils.js');
4
+ var useShow = require('./hooks/useShow.js');
5
+ var Button = require('./Button/Button.js');
6
+ var Card = require('./Card/Card.js');
7
+ var Container = require('./Container/Container.js');
8
+ var Loading = require('./Loading/Loading.js');
9
+ var Popup = require('./Popup/Popup.js');
10
+ var ScrollView = require('./ScrollView/ScrollView.js');
11
+ var Swiper = require('./Swiper/Swiper.js');
12
+
13
+
14
+
15
+ exports.utils = utils.default;
16
+ exports.useShow = useShow.default;
17
+ exports.Button = Button.default;
18
+ exports.Card = Card.default;
19
+ exports.Container = Container.default;
20
+ exports.Loading = Loading.default;
21
+ exports.Popup = Popup.default;
22
+ exports.ScrollView = ScrollView.default;
23
+ exports.Swiper = Swiper.default;
package/dist/lib/utils.js CHANGED
@@ -1 +1,73 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var r=require("tslib");var e={sleep:function(e,t){return void 0===t&&(t=!1),r.__awaiter(this,void 0,void 0,(function(){return r.__generator(this,(function(r){return[2,new Promise((function(r){return setTimeout((function(){return r(t)}),e)}))]}))}))},parseUrl:function(r){var e=window.location.href.split("?").slice(1),t={};return e.forEach((function(r){var e=r.indexOf("/");(-1!==e?r.substring(0,e):r).split("&").forEach((function(r){var e=r.split("="),i=e[0],n=e[1],o=void 0===n||n;if(t.hasOwnProperty(i)){var s=t[i];Array.isArray(s)?s.push(o):t[i]=[o]}else t[i]=o}))})),void 0!==r?t[r]||void 0:t}};exports.default=e;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+
7
+ function sleep(timestamp_1) {
8
+ return tslib.__awaiter(this, arguments, void 0, function (timestamp, result) {
9
+ if (result === void 0) { result = false; }
10
+ return tslib.__generator(this, function (_a) {
11
+ return [2 /*return*/, new Promise(function (resolve) { return setTimeout(function () { return resolve(result); }, timestamp); })];
12
+ });
13
+ });
14
+ }
15
+ function parseUrl(key) {
16
+ var url = window.location.href;
17
+ var result = {};
18
+ // 处理哈希片段中的查询参数
19
+ var hashIndex = url.indexOf("#");
20
+ var queryString = "";
21
+ if (hashIndex !== -1) {
22
+ // 提取哈希片段
23
+ var hashPart = url.substring(hashIndex + 1);
24
+ var hashQueryIndex = hashPart.indexOf("?");
25
+ if (hashQueryIndex !== -1) {
26
+ // 哈希片段中包含查询参数
27
+ queryString += (queryString ? "&" : "") + hashPart.substring(hashQueryIndex + 1);
28
+ }
29
+ // 处理主查询字符串(在问号后,哈希前)
30
+ var mainQueryIndex = url.indexOf("?");
31
+ if (mainQueryIndex !== -1 && mainQueryIndex < hashIndex) {
32
+ var mainQuery = url.substring(mainQueryIndex + 1, hashIndex);
33
+ queryString = mainQuery + (queryString ? "&" + queryString : "");
34
+ }
35
+ }
36
+ else {
37
+ // 没有哈希片段,直接处理查询字符串
38
+ var mainQueryIndex = url.indexOf("?");
39
+ if (mainQueryIndex !== -1) {
40
+ queryString = url.substring(mainQueryIndex + 1);
41
+ }
42
+ }
43
+ // 如果没有查询参数,返回空对象或指定键的 undefined
44
+ if (!queryString) {
45
+ return key !== undefined ? undefined : result;
46
+ }
47
+ // 解析查询参数
48
+ var keyValuePairs = queryString.split("&");
49
+ keyValuePairs.forEach(function (pair) {
50
+ var _a = pair.split("="), key = _a[0], value = _a[1];
51
+ if (key) {
52
+ var _value = value === undefined ? true : decodeURIComponent(value);
53
+ if (result.hasOwnProperty(key)) {
54
+ var val = result[key];
55
+ if (Array.isArray(val)) {
56
+ val.push(_value);
57
+ }
58
+ else {
59
+ result[key] = [val, _value];
60
+ }
61
+ }
62
+ else {
63
+ result[key] = _value;
64
+ }
65
+ }
66
+ });
67
+ if (key !== undefined)
68
+ return result[key] || undefined;
69
+ return result;
70
+ }
71
+ var utils = { sleep: sleep, parseUrl: parseUrl };
72
+
73
+ exports.default = utils;