taro-react-uilib 1.1.0 → 1.2.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.
- package/CHANGELOG.md +38 -0
- package/dist/components/Checkbox/Group/index.js +2 -0
- package/dist/components/Checkbox/Group/index.js.map +1 -0
- package/dist/components/Checkbox/index.js +2 -0
- package/dist/components/Checkbox/index.js.map +1 -0
- package/dist/components/Picker/Picker.js +1 -1
- package/dist/components/Picker/Picker.js.map +1 -1
- package/dist/components/Picker/index.js +1 -1
- package/dist/components/Picker/index.js.map +1 -1
- package/dist/components/PickerSlot/index.js +2 -0
- package/dist/components/PickerSlot/index.js.map +1 -0
- package/dist/components/Radio/Group/index.js +2 -0
- package/dist/components/Radio/Group/index.js.map +1 -0
- package/dist/components/Radio/index.js +2 -0
- package/dist/components/Radio/index.js.map +1 -0
- package/dist/components/Space/Item.js +2 -0
- package/dist/components/Space/Item.js.map +1 -0
- package/dist/components/Space/config-provider.js +2 -0
- package/dist/components/Space/config-provider.js.map +1 -0
- package/dist/components/Space/index.js +2 -0
- package/dist/components/Space/index.js.map +1 -0
- package/dist/components/Step/Steps/index.js +2 -0
- package/dist/components/Step/Steps/index.js.map +1 -0
- package/dist/components/Step/index.js +2 -0
- package/dist/components/Step/index.js.map +1 -0
- package/dist/components/ThemeProvider/index.js +1 -1
- package/dist/components/ThemeProvider/index.js.map +1 -1
- package/dist/components/node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js +172 -0
- package/dist/components/node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js.map +1 -0
- package/dist/components/src/hooks/index.js +1 -1
- package/dist/components/src/hooks/index.js.map +1 -1
- package/dist/components/src/hooks/useFlexGapSupport.js +2 -0
- package/dist/components/src/hooks/useFlexGapSupport.js.map +1 -0
- package/dist/components/src/hooks/useGenerateId.js +2 -0
- package/dist/components/src/hooks/useGenerateId.js.map +1 -0
- package/dist/components/src/hooks/useRefs.js +2 -0
- package/dist/components/src/hooks/useRefs.js.map +1 -0
- package/dist/components/src/hooks/useTouch.js +2 -0
- package/dist/components/src/hooks/useTouch.js.map +1 -0
- package/dist/components/src/index.js +1 -1
- package/dist/components/src/utils/index.js +1 -1
- package/dist/components/src/utils/index.js.map +1 -1
- package/dist/index.js +173 -2
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +173 -2
- package/dist/index.umd.js.map +1 -1
- package/dist/styles/components/checkbox.scss +117 -0
- package/dist/styles/components/dialog.scss +2 -0
- package/dist/styles/components/font/.DS_Store +0 -0
- package/dist/styles/components/index.scss +5 -0
- package/dist/styles/components/numberkeyboard.scss +1 -3
- package/dist/styles/components/picker.scss +7 -112
- package/dist/styles/components/pickerslot.scss +98 -0
- package/dist/styles/components/radio.scss +102 -0
- package/dist/styles/components/space.scss +37 -0
- package/dist/styles/components/step.scss +173 -0
- package/dist/styles/components/themeprovider.scss +3 -0
- package/dist/styles/components/toast.scss +1 -1
- package/dist/styles/index.scss +1 -1
- package/dist/styles/themes/default.scss +13 -13
- package/dist/styles/themes/variable.scss +2 -0
- package/lib/components/Checkbox/Group/index.js +49 -0
- package/lib/components/Checkbox/Group/index.js.map +1 -0
- package/lib/components/Checkbox/index.js +43 -0
- package/lib/components/Checkbox/index.js.map +1 -0
- package/lib/components/Picker/Picker.js +192 -96
- package/lib/components/Picker/Picker.js.map +1 -1
- package/lib/components/Picker/index.js +2 -5
- package/lib/components/Picker/index.js.map +1 -1
- package/lib/components/PickerSlot/index.js +226 -0
- package/lib/components/PickerSlot/index.js.map +1 -0
- package/lib/components/Radio/Group/index.js +56 -0
- package/lib/components/Radio/Group/index.js.map +1 -0
- package/lib/components/Radio/index.js +43 -0
- package/lib/components/Radio/index.js.map +1 -0
- package/lib/components/Space/Item.js +25 -0
- package/lib/components/Space/Item.js.map +1 -0
- package/lib/components/Space/config-provider.js +8 -0
- package/lib/components/Space/config-provider.js.map +1 -0
- package/lib/components/Space/index.js +77 -0
- package/lib/components/Space/index.js.map +1 -0
- package/lib/components/Step/Steps/index.js +31 -0
- package/lib/components/Step/Steps/index.js.map +1 -0
- package/lib/components/Step/index.js +19 -0
- package/lib/components/Step/index.js.map +1 -0
- package/lib/components/ThemeProvider/index.js +4 -0
- package/lib/components/ThemeProvider/index.js.map +1 -1
- package/lib/hooks/index.js +0 -34
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/useFlexGapSupport.js +10 -0
- package/lib/hooks/useFlexGapSupport.js.map +1 -0
- package/lib/hooks/useGenerateId.js +12 -0
- package/lib/hooks/useGenerateId.js.map +1 -0
- package/lib/hooks/useRefs.js +13 -0
- package/lib/hooks/useRefs.js.map +1 -0
- package/lib/hooks/useTouch.js +67 -0
- package/lib/hooks/useTouch.js.map +1 -0
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/utils/index.js +39 -2
- package/lib/utils/index.js.map +1 -1
- package/package.json +2 -1
- package/types/components/Checkbox/Group/index.d.ts +23 -0
- package/types/components/Checkbox/index.d.ts +29 -0
- package/types/components/Picker/Picker.d.ts +21 -20
- package/types/components/Picker/index.d.ts +6 -7
- package/types/components/PickerSlot/index.d.ts +24 -0
- package/types/components/Radio/Group/index.d.ts +26 -0
- package/types/components/Radio/index.d.ts +29 -0
- package/types/components/Space/Item.d.ts +11 -0
- package/types/components/Space/config-provider.d.ts +12 -0
- package/types/components/Space/index.d.ts +21 -0
- package/types/components/Step/Steps/index.d.ts +13 -0
- package/types/components/Step/index.d.ts +18 -0
- package/types/hooks/index.d.ts +0 -22
- package/types/hooks/useFlexGapSupport.d.ts +2 -0
- package/types/hooks/useGenerateId.d.ts +1 -0
- package/types/hooks/useRefs.d.ts +1 -0
- package/types/hooks/useTouch.d.ts +18 -0
- package/types/index.d.ts +4 -0
- package/types/utils/index.d.ts +6 -0
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import React, { useState, useEffect, useRef, useImperativeHandle, } from "react";
|
|
2
|
+
import { View } from "@tarojs/components";
|
|
3
|
+
import { useTouch } from "../../hooks/useTouch";
|
|
4
|
+
import "./index.scss";
|
|
5
|
+
const InternalPickerSlot = (props, ref) => {
|
|
6
|
+
const { keyIndex = 0, defaultValue, data = [], mode = "normal", swipeDuration = 1000, visible = false, onConfirm, } = props;
|
|
7
|
+
const touch = useTouch();
|
|
8
|
+
const DEFAULT_DURATION = 200;
|
|
9
|
+
// 触发惯性滑动条件:
|
|
10
|
+
// 在手指离开屏幕时,如果和上一次 move 时的间隔小于 `MOMENTUM_TIME` 且 move
|
|
11
|
+
// 距离大于 `MOMENTUM_DISTANCE` 时,执行惯性滑动
|
|
12
|
+
const INERTIA_TIME = 300;
|
|
13
|
+
const INERTIA_DISTANCE = 15;
|
|
14
|
+
const [currIndex, setCurrIndex] = useState(1);
|
|
15
|
+
const lineSpacing = useRef(36);
|
|
16
|
+
const [touchTime, setTouchTime] = useState(0);
|
|
17
|
+
const [touchDeg, setTouchDeg] = useState("0deg");
|
|
18
|
+
const rotation = 20;
|
|
19
|
+
const moving = useRef(false);
|
|
20
|
+
let timer;
|
|
21
|
+
const listbox = useRef(null);
|
|
22
|
+
const rollerRef = useRef(null);
|
|
23
|
+
const pickerSlotRef = useRef(null);
|
|
24
|
+
const [startTime, setStartTime] = useState(0);
|
|
25
|
+
const [startY, setStartY] = useState(0);
|
|
26
|
+
const transformY = useRef(0);
|
|
27
|
+
const [scrollDistance, setScrollDistance] = useState(0);
|
|
28
|
+
const isHidden = (index) => {
|
|
29
|
+
if (index >= currIndex + 8 || index <= currIndex - 8) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
};
|
|
34
|
+
const setTransform = (translateY = 0, type, time = DEFAULT_DURATION, deg) => {
|
|
35
|
+
let nTime = time;
|
|
36
|
+
if (type !== "end") {
|
|
37
|
+
nTime = 0;
|
|
38
|
+
}
|
|
39
|
+
setTouchTime(nTime);
|
|
40
|
+
setTouchDeg(deg);
|
|
41
|
+
setScrollDistance(translateY);
|
|
42
|
+
};
|
|
43
|
+
const setMove = (move, type, time) => {
|
|
44
|
+
let updateMove = move + transformY.current;
|
|
45
|
+
if (type === "end") {
|
|
46
|
+
// 限定滚动距离
|
|
47
|
+
if (updateMove > 0) {
|
|
48
|
+
updateMove = 0;
|
|
49
|
+
}
|
|
50
|
+
if (updateMove < -(data.length - 1) * lineSpacing.current) {
|
|
51
|
+
updateMove = -(data.length - 1) * lineSpacing.current;
|
|
52
|
+
}
|
|
53
|
+
// 设置滚动距离为lineSpacing的倍数值
|
|
54
|
+
const endMove = Math.round(updateMove / lineSpacing.current) * lineSpacing.current;
|
|
55
|
+
const deg = `${(Math.abs(Math.round(endMove / lineSpacing.current)) + 1) * rotation}deg`;
|
|
56
|
+
setTransform(endMove, type, time, deg);
|
|
57
|
+
setCurrIndex(Math.abs(Math.round(endMove / lineSpacing.current)) + 1);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
let deg = 0;
|
|
61
|
+
const currentDeg = (-updateMove / lineSpacing.current + 1) * rotation;
|
|
62
|
+
// picker 滚动的最大角度
|
|
63
|
+
const maxDeg = (data.length + 1) * rotation;
|
|
64
|
+
const minDeg = 0;
|
|
65
|
+
deg = Math.min(Math.max(currentDeg, minDeg), maxDeg);
|
|
66
|
+
if (minDeg < deg && deg < maxDeg) {
|
|
67
|
+
setTransform(updateMove, "", undefined, `${deg}deg`);
|
|
68
|
+
setCurrIndex(Math.abs(Math.round(updateMove / lineSpacing.current)) + 1);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const setChooseValue = (move) => {
|
|
73
|
+
const index = Math.round(-move / lineSpacing.current);
|
|
74
|
+
onConfirm && onConfirm(data[index], keyIndex);
|
|
75
|
+
};
|
|
76
|
+
// 开始滚动
|
|
77
|
+
const touchStart = event => {
|
|
78
|
+
touch.start(event);
|
|
79
|
+
setStartY(touch.deltaY);
|
|
80
|
+
setStartTime(Date.now());
|
|
81
|
+
transformY.current = scrollDistance;
|
|
82
|
+
};
|
|
83
|
+
const touchMove = event => {
|
|
84
|
+
touch.move(event);
|
|
85
|
+
if (touch.isVertical()) {
|
|
86
|
+
moving.current = true;
|
|
87
|
+
preventDefault(event, true);
|
|
88
|
+
}
|
|
89
|
+
const move = touch.deltaY - startY;
|
|
90
|
+
setMove(move);
|
|
91
|
+
};
|
|
92
|
+
const touchEnd = () => {
|
|
93
|
+
if (!moving.current)
|
|
94
|
+
return;
|
|
95
|
+
const move = touch.deltaY - startY;
|
|
96
|
+
const moveTime = Date.now() - startTime;
|
|
97
|
+
// 区分是否为惯性滚动
|
|
98
|
+
if (moveTime <= INERTIA_TIME && Math.abs(move) > INERTIA_DISTANCE) {
|
|
99
|
+
// 惯性滚动
|
|
100
|
+
const distance = momentum(move, moveTime);
|
|
101
|
+
setMove(distance, "end", +swipeDuration);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
setMove(move, "end");
|
|
105
|
+
}
|
|
106
|
+
setTimeout(() => {
|
|
107
|
+
touch.reset();
|
|
108
|
+
}, 0);
|
|
109
|
+
};
|
|
110
|
+
// 惯性滚动 距离
|
|
111
|
+
const momentum = (distance, duration) => {
|
|
112
|
+
let nDistance = distance;
|
|
113
|
+
// 惯性滚动的速度
|
|
114
|
+
const speed = Math.abs(nDistance / duration);
|
|
115
|
+
// 惯性滚动的距离
|
|
116
|
+
nDistance = (speed / 0.003) * (nDistance < 0 ? -1 : 1);
|
|
117
|
+
return nDistance;
|
|
118
|
+
};
|
|
119
|
+
const modifyStatus = (type, val) => {
|
|
120
|
+
const value = val || defaultValue;
|
|
121
|
+
let index = -1;
|
|
122
|
+
if (value) {
|
|
123
|
+
data.some((item, idx) => {
|
|
124
|
+
if (typeof item === "string" ? item === value : item.value === value) {
|
|
125
|
+
index = idx;
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
return false;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
data.forEach((item, i) => {
|
|
133
|
+
if (typeof item === "string"
|
|
134
|
+
? item === defaultValue
|
|
135
|
+
: item.value === defaultValue) {
|
|
136
|
+
index = i;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
setCurrIndex(index === -1 ? 1 : index + 1);
|
|
141
|
+
const move = index === -1 ? 0 : index * lineSpacing.current;
|
|
142
|
+
type && setChooseValue(-move);
|
|
143
|
+
setMove(-move);
|
|
144
|
+
};
|
|
145
|
+
// 惯性滚动结束
|
|
146
|
+
const stopMomentum = () => {
|
|
147
|
+
moving.current = false;
|
|
148
|
+
setTouchTime(0);
|
|
149
|
+
setChooseValue(scrollDistance);
|
|
150
|
+
};
|
|
151
|
+
// 阻止默认事件
|
|
152
|
+
const preventDefault = (event, isStopPropagation) => {
|
|
153
|
+
/* istanbul ignore else */
|
|
154
|
+
if (typeof event.cancelable !== "boolean" || event.cancelable) {
|
|
155
|
+
event.preventDefault();
|
|
156
|
+
}
|
|
157
|
+
if (isStopPropagation) {
|
|
158
|
+
event.stopPropagation();
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
const getReference = async () => {
|
|
162
|
+
// const refe = await getRectByTaro(listbox?.current)
|
|
163
|
+
// lineSpacing.current = refe.height ? refe.height : 36
|
|
164
|
+
// lineSpacing.current = 36
|
|
165
|
+
modifyStatus(true);
|
|
166
|
+
};
|
|
167
|
+
const touchRollerStyle = () => {
|
|
168
|
+
return {
|
|
169
|
+
transition: `transform ${touchTime}ms cubic-bezier(0.17, 0.89, 0.45, 1)`,
|
|
170
|
+
transform: `rotate3d(1, 0, 0, ${touchDeg})`,
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
const touchTileStyle = () => {
|
|
174
|
+
return {
|
|
175
|
+
transition: `transform ${touchTime}ms cubic-bezier(0.17, 0.89, 0.45, 1)`,
|
|
176
|
+
transform: `translate3d(0, ${scrollDistance}px, 0)`,
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
useEffect(() => {
|
|
180
|
+
setScrollDistance(0);
|
|
181
|
+
transformY.current = 0;
|
|
182
|
+
modifyStatus(false);
|
|
183
|
+
return () => {
|
|
184
|
+
clearTimeout(timer);
|
|
185
|
+
};
|
|
186
|
+
}, [data]);
|
|
187
|
+
useEffect(() => {
|
|
188
|
+
if (visible) {
|
|
189
|
+
setTimeout(() => {
|
|
190
|
+
getReference();
|
|
191
|
+
}, 200);
|
|
192
|
+
}
|
|
193
|
+
}, [visible]);
|
|
194
|
+
useImperativeHandle(ref, () => ({
|
|
195
|
+
stopMomentum,
|
|
196
|
+
moving: moving.current,
|
|
197
|
+
}));
|
|
198
|
+
return (React.createElement(View, { className: "xh-picker-list", ref: pickerSlotRef, onTouchStart: touchStart, onTouchMove: touchMove, onTouchEnd: touchEnd },
|
|
199
|
+
React.createElement(View, { className: "xh-picker-roller", ref: rollerRef, style: mode === "3D" ? touchRollerStyle() : touchTileStyle(), onTransitionEnd: stopMomentum },
|
|
200
|
+
mode === "3D" &&
|
|
201
|
+
data.map((item, index) => {
|
|
202
|
+
return (React.createElement(View, { className: `xh-picker-roller-item ${isHidden(index + 1) && "nut-picker-roller-item-hidden"}`, style: {
|
|
203
|
+
transform: `rotate3d(1, 0, 0, ${-rotation * (index + 1)}deg) translate3d(0px, 0px, 104px)`,
|
|
204
|
+
height: `${lineSpacing.current}px`,
|
|
205
|
+
lineHeight: `${lineSpacing.current}px`,
|
|
206
|
+
}, key: typeof item === "string"
|
|
207
|
+
? index
|
|
208
|
+
: item.value
|
|
209
|
+
? item.value
|
|
210
|
+
: index },
|
|
211
|
+
React.createElement(React.Fragment, null, typeof item === "object" ? item.text : item)));
|
|
212
|
+
}),
|
|
213
|
+
mode === "normal" &&
|
|
214
|
+
data.map((item, index) => {
|
|
215
|
+
return (React.createElement(View, { className: "xh-picker-roller-item-title", key: typeof item === "object" ? item.value : item ? item : index, style: {
|
|
216
|
+
height: `${lineSpacing.current}px`,
|
|
217
|
+
lineHeight: `${lineSpacing.current}px`,
|
|
218
|
+
} },
|
|
219
|
+
React.createElement(React.Fragment, null, typeof item === "object" ? item.text : item)));
|
|
220
|
+
})),
|
|
221
|
+
React.createElement(View, { className: "xh-picker-mask" }),
|
|
222
|
+
React.createElement(View, { className: "xh-picker-indicator", ref: listbox })));
|
|
223
|
+
};
|
|
224
|
+
const PickerSlot = React.forwardRef(InternalPickerSlot);
|
|
225
|
+
export default PickerSlot;
|
|
226
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/PickerSlot/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import React, { useMemo, useState } from "react";
|
|
13
|
+
import classNames from "classnames";
|
|
14
|
+
import Radio from "..";
|
|
15
|
+
const RadioGroup = props => {
|
|
16
|
+
const { option, onChange, name, padding, border, radioStyle, defaultChecked } = props, rest = __rest(props, ["option", "onChange", "name", "padding", "border", "radioStyle", "defaultChecked"]);
|
|
17
|
+
let getOpions = useMemo(() => {
|
|
18
|
+
return option === null || option === void 0 ? void 0 : option.map(item => {
|
|
19
|
+
if (typeof item === "string") {
|
|
20
|
+
return {
|
|
21
|
+
label: item,
|
|
22
|
+
value: item,
|
|
23
|
+
checked: defaultChecked === item,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
if (defaultChecked === item.value) {
|
|
28
|
+
item.checked = true;
|
|
29
|
+
}
|
|
30
|
+
return item;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}, [option, defaultChecked]);
|
|
34
|
+
const [innerOptions, setInnerOptions] = useState(getOpions);
|
|
35
|
+
const handleChange = idx => {
|
|
36
|
+
let newoption = [...innerOptions];
|
|
37
|
+
let newValue = "";
|
|
38
|
+
for (let index = 0; index < newoption.length; index++) {
|
|
39
|
+
if (index === idx) {
|
|
40
|
+
newoption[index].checked = true;
|
|
41
|
+
newValue = newoption[index].value;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
newoption[index].checked = false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
setInnerOptions(newoption);
|
|
48
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
|
|
49
|
+
};
|
|
50
|
+
const cls = classNames("xh-radio-group", { padding }, { border });
|
|
51
|
+
return (React.createElement("div", { className: cls }, innerOptions.map((item, index) => {
|
|
52
|
+
return (React.createElement(Radio, Object.assign({ label: item.label, value: item.value, disabled: item.disabled, name: name, key: index, className: "xh-radio-group-list", circle: true, onChange: () => handleChange(index), checked: item.checked, style: radioStyle }, rest)));
|
|
53
|
+
})));
|
|
54
|
+
};
|
|
55
|
+
export default RadioGroup;
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Radio/Group/index.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAa,MAAM,OAAO,CAAC;AAC5D,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,MAAM,IAAI,CAAC;AA0BvB,MAAM,UAAU,GAA8B,KAAK,CAAC,EAAE;IACpD,MAAM,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,MAAM,EACN,UAAU,EACV,cAAc,KAEZ,KAAK,EADJ,IAAI,UACL,KAAK,EATH,mFASL,CAAQ,CAAC;IAEV,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;gBAC5B,OAAO;oBACL,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,cAAc,KAAK,IAAI;iBACjC,CAAC;aACH;iBAAM;gBACL,IAAI,cAAc,KAAK,IAAI,CAAC,KAAK,EAAE;oBACjC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;iBACrB;gBACD,OAAO,IAAI,CAAC;aACb;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;IAE7B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE5D,MAAM,YAAY,GAAG,GAAG,CAAC,EAAE;QACzB,IAAI,SAAS,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QAClC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrD,IAAI,KAAK,KAAK,GAAG,EAAE;gBACjB,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;gBAChC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;aACnC;iBAAM;gBACL,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;aAClC;SACF;QACD,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,QAAQ,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,UAAU,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAElE,OAAO,CACL,6BAAK,SAAS,EAAE,GAAG,IAChB,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAChC,OAAO,CACL,oBAAC,KAAK,kBACJ,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,KAAK,EACV,SAAS,EAAC,qBAAqB,EAC/B,MAAM,QACN,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EACnC,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,KAAK,EAAE,UAAU,IACb,IAAI,EACR,CACH,CAAC;IACJ,CAAC,CAAC,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { RadioGroup } from "@tarojs/components";
|
|
4
|
+
import useGenerateId from "@/hooks/useGenerateId";
|
|
5
|
+
import Group from "./Group";
|
|
6
|
+
import "./index.scss";
|
|
7
|
+
const XHRadio = props => {
|
|
8
|
+
const { className, name, label, id, circle, onChange, align, direction, justify, checked, disabled, value, style, color = "#f6ab00", } = props;
|
|
9
|
+
const finalId = useGenerateId(id, "xh-radio-id");
|
|
10
|
+
const handleOnchange = e => {
|
|
11
|
+
let finalchecked = checked || false;
|
|
12
|
+
let value = "";
|
|
13
|
+
if (process.env.TARO_ENV === "h5") {
|
|
14
|
+
finalchecked = e.target.checked;
|
|
15
|
+
value = e.target.value;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
finalchecked = e.detail.value.length > 0;
|
|
19
|
+
value = e.detail.value;
|
|
20
|
+
}
|
|
21
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(finalchecked, value);
|
|
22
|
+
};
|
|
23
|
+
const cls = classNames("xh-radio", className, align, direction, justify);
|
|
24
|
+
if (process.env.TARO_ENV !== "h5") {
|
|
25
|
+
return (React.createElement(RadioGroup, { onChange: handleOnchange },
|
|
26
|
+
React.createElement("label", { htmlFor: finalId, className: cls, style: style },
|
|
27
|
+
React.createElement("input", { type: "radio", id: finalId, name: name, className: classNames("xh-radio-input", {
|
|
28
|
+
tt: process.env.TARO_ENV === "tt",
|
|
29
|
+
}), onChange: handleOnchange, disabled: disabled, value: value, checked: checked, color: color }),
|
|
30
|
+
React.createElement("span", { className: classNames("xh-radio-input-fake", circle && "circle", {
|
|
31
|
+
tt: process.env.TARO_ENV === "tt",
|
|
32
|
+
}) }),
|
|
33
|
+
React.createElement("span", { className: "xh-radio-label" }, label))));
|
|
34
|
+
}
|
|
35
|
+
return (React.createElement("label", { htmlFor: finalId, className: cls, style: style },
|
|
36
|
+
React.createElement("input", { type: "radio", id: finalId, name: name, className: "xh-radio-input", onChange: handleOnchange, value: value, disabled: disabled, defaultChecked: checked }),
|
|
37
|
+
React.createElement("span", { className: classNames("xh-radio-input-fake", circle && "circle") }),
|
|
38
|
+
React.createElement("span", { className: "xh-radio-label" }, label)));
|
|
39
|
+
};
|
|
40
|
+
const Radio = XHRadio;
|
|
41
|
+
Radio.Group = Group;
|
|
42
|
+
export default Radio;
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Radio/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { SpaceContext } from ".";
|
|
3
|
+
export default function Item({ className, direction, index, marginDirection, children, split, wrap, }) {
|
|
4
|
+
const { horizontalSize, verticalSize, latestIndex, supportFlexGap } = React.useContext(SpaceContext);
|
|
5
|
+
let style = {};
|
|
6
|
+
if (!supportFlexGap) {
|
|
7
|
+
if (direction === "vertical") {
|
|
8
|
+
if (index < latestIndex) {
|
|
9
|
+
style = { marginBottom: horizontalSize / (split ? 2 : 1) };
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
style = Object.assign(Object.assign({}, (index < latestIndex && {
|
|
14
|
+
[marginDirection]: horizontalSize / (split ? 2 : 1),
|
|
15
|
+
})), (wrap && { paddingBottom: verticalSize }));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
if (children === null || children === undefined) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return (React.createElement(React.Fragment, null,
|
|
22
|
+
React.createElement("div", { className: className, style: style }, children),
|
|
23
|
+
index < latestIndex && split && (React.createElement("span", { className: `${className}-split`, style: style }, split))));
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=Item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../src/components/Space/Item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AAYjC,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,SAAS,EACT,SAAS,EACT,KAAK,EACL,eAAe,EACf,QAAQ,EACR,KAAK,EACL,IAAI,GACM;IACV,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,GACjE,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAEjC,IAAI,KAAK,GAAwB,EAAE,CAAC;IAEpC,IAAI,CAAC,cAAc,EAAE;QACnB,IAAI,SAAS,KAAK,UAAU,EAAE;YAC5B,IAAI,KAAK,GAAG,WAAW,EAAE;gBACvB,KAAK,GAAG,EAAE,YAAY,EAAE,cAAc,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D;SACF;aAAM;YACL,KAAK,mCACA,CAAC,KAAK,GAAG,WAAW,IAAI;gBACzB,CAAC,eAAe,CAAC,EAAE,cAAc,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpD,CAAC,GACC,CAAC,IAAI,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAC7C,CAAC;SACH;KACF;IAED,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;QAC/C,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ;QACb,6BAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,IACpC,QAAQ,CACL;QACL,KAAK,GAAG,WAAW,IAAI,KAAK,IAAI,CAC/B,8BAAM,SAAS,EAAE,GAAG,SAAS,QAAQ,EAAE,KAAK,EAAE,KAAK,IAChD,KAAK,CACD,CACR,CACc,CAClB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export const defaultGetPrefixCls = (suffixCls) => {
|
|
3
|
+
return suffixCls ? `xh-${suffixCls}` : "xh";
|
|
4
|
+
};
|
|
5
|
+
export const ConfigContext = React.createContext({
|
|
6
|
+
getPrefixCls: defaultGetPrefixCls,
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=config-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-provider.js","sourceRoot":"","sources":["../../../src/components/Space/config-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAkB,EAAE,EAAE;IACxD,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAsB;IACpE,YAAY,EAAE,mBAAmB;CAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import React from "react";
|
|
13
|
+
import { View } from "@tarojs/components";
|
|
14
|
+
import classNames from "classnames";
|
|
15
|
+
import useFlexGapSupport from "@/hooks/useFlexGapSupport";
|
|
16
|
+
import { toArray } from "@/utils";
|
|
17
|
+
import { ConfigContext } from "./config-provider";
|
|
18
|
+
import Item from "./Item";
|
|
19
|
+
import "./index.scss";
|
|
20
|
+
export const SpaceConfigContext = ConfigContext;
|
|
21
|
+
export const SpaceContext = React.createContext({
|
|
22
|
+
latestIndex: 0,
|
|
23
|
+
horizontalSize: 0,
|
|
24
|
+
verticalSize: 0,
|
|
25
|
+
supportFlexGap: false,
|
|
26
|
+
});
|
|
27
|
+
const spaceSize = {
|
|
28
|
+
small: 8,
|
|
29
|
+
normal: 16,
|
|
30
|
+
large: 24,
|
|
31
|
+
};
|
|
32
|
+
function getNumberSize(size) {
|
|
33
|
+
return typeof size === "string" ? spaceSize[size] : size || 0;
|
|
34
|
+
}
|
|
35
|
+
const XHSpace = props => {
|
|
36
|
+
const { getPrefixCls, space, direction: directionConfig, } = React.useContext(ConfigContext);
|
|
37
|
+
const { size = (space === null || space === void 0 ? void 0 : space.size) || "small", align, className, children, direction = "horizontal", split, style, wrap = false } = props, otherProps = __rest(props, ["size", "align", "className", "children", "direction", "split", "style", "wrap"]);
|
|
38
|
+
const supportFlexGap = useFlexGapSupport();
|
|
39
|
+
const [horizontalSize, verticalSize] = React.useMemo(() => (Array.isArray(size) ? size : [size, size]).map(item => getNumberSize(item)), [size]);
|
|
40
|
+
const childNodes = toArray(children, { keepEmpty: true });
|
|
41
|
+
const mergedAlign = align === undefined && direction === "horizontal" ? "center" : align;
|
|
42
|
+
const prefixCls = getPrefixCls("space");
|
|
43
|
+
const cn = classNames(prefixCls, `${prefixCls}-${direction}`, {
|
|
44
|
+
[`${prefixCls}-rtl`]: directionConfig === "rtl",
|
|
45
|
+
[`${prefixCls}-align-${mergedAlign}`]: mergedAlign,
|
|
46
|
+
}, className);
|
|
47
|
+
const itemClassName = `${prefixCls}-item`;
|
|
48
|
+
const marginDirection = directionConfig === "rtl" ? "marginLeft" : "marginRight";
|
|
49
|
+
// Calculate latest one
|
|
50
|
+
let latestIndex = 0;
|
|
51
|
+
const nodes = childNodes.map((child, i) => {
|
|
52
|
+
if (child !== null && child !== undefined) {
|
|
53
|
+
latestIndex = i;
|
|
54
|
+
}
|
|
55
|
+
const key = (child && child.key) || `${itemClassName}-${i}`;
|
|
56
|
+
return (React.createElement(Item, { className: itemClassName, key: key, direction: direction, index: i, marginDirection: marginDirection, split: split, wrap: wrap }, child));
|
|
57
|
+
});
|
|
58
|
+
const spaceContext = React.useMemo(() => ({ horizontalSize, verticalSize, latestIndex, supportFlexGap }), [horizontalSize, verticalSize, latestIndex, supportFlexGap]);
|
|
59
|
+
if (childNodes.length === 0) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const gapStyle = {};
|
|
63
|
+
if (wrap) {
|
|
64
|
+
gapStyle.flexWrap = "wrap";
|
|
65
|
+
if (!supportFlexGap) {
|
|
66
|
+
gapStyle.marginBottom = `-${verticalSize}px`;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (supportFlexGap) {
|
|
70
|
+
gapStyle.columnGap = `${horizontalSize}px`;
|
|
71
|
+
gapStyle.rowGap = `${verticalSize}px`;
|
|
72
|
+
}
|
|
73
|
+
return (React.createElement(View, Object.assign({ className: cn, style: Object.assign(Object.assign({}, gapStyle), style) }, otherProps),
|
|
74
|
+
React.createElement(SpaceContext.Provider, { value: spaceContext }, nodes)));
|
|
75
|
+
};
|
|
76
|
+
export default XHSpace;
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Space/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { View } from "@tarojs/components";
|
|
4
|
+
const classPrefix = `xh-steps`;
|
|
5
|
+
const stepClassPrefix = `xh-step`;
|
|
6
|
+
const defaultIcon = React.createElement("span", { className: `${stepClassPrefix}-icon-dot` });
|
|
7
|
+
const Steps = props => {
|
|
8
|
+
const { direction = "horizontal", current = 0, style, className } = props;
|
|
9
|
+
const classString = classNames(classPrefix, `${classPrefix}-${direction}`, className);
|
|
10
|
+
return (React.createElement(View, { className: classString, style: style }, React.Children.map(props.children, (child, index) => {
|
|
11
|
+
var _a;
|
|
12
|
+
if (!React.isValidElement(child)) {
|
|
13
|
+
return child;
|
|
14
|
+
}
|
|
15
|
+
const props = child.props;
|
|
16
|
+
let status = props.status || "wait";
|
|
17
|
+
if (index < current) {
|
|
18
|
+
status = props.status || "finish";
|
|
19
|
+
}
|
|
20
|
+
else if (index === current) {
|
|
21
|
+
status = props.status || "process";
|
|
22
|
+
}
|
|
23
|
+
const icon = (_a = props.icon) !== null && _a !== void 0 ? _a : defaultIcon;
|
|
24
|
+
return React.cloneElement(child, {
|
|
25
|
+
status,
|
|
26
|
+
icon,
|
|
27
|
+
});
|
|
28
|
+
})));
|
|
29
|
+
};
|
|
30
|
+
export default Steps;
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Step/Steps/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAK1C,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,eAAe,GAAG,SAAS,CAAC;AAElC,MAAM,WAAW,GAAG,8BAAM,SAAS,EAAE,GAAG,eAAe,WAAW,GAAI,CAAC;AAYvE,MAAM,KAAK,GAAmB,KAAK,CAAC,EAAE;IACpC,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IAC1E,MAAM,WAAW,GAAG,UAAU,CAC5B,WAAW,EACX,GAAG,WAAW,IAAI,SAAS,EAAE,EAC7B,SAAS,CACV,CAAC;IAEF,OAAO,CACL,oBAAC,IAAI,IAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,IACvC,KAAK,CAAC,QAAQ,CAAC,GAAG,CACjB,KAAK,CAAC,QAAQ,EACd,CAAC,KAA8B,EAAE,KAAK,EAAE,EAAE;;QACxC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;YAChC,OAAO,KAAK,CAAC;SACd;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC;QAEpC,IAAI,KAAK,GAAG,OAAO,EAAE;YACnB,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC;SACnC;aAAM,IAAI,KAAK,KAAK,OAAO,EAAE;YAC5B,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC;SACpC;QAED,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,WAAW,CAAC;QAEvC,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;YAC/B,MAAM;YACN,IAAI;SACL,CAAC,CAAC;IACL,CAAC,CACF,CACI,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import classNames from "classnames";
|
|
3
|
+
import { View } from "@tarojs/components";
|
|
4
|
+
import Steps from "./Steps";
|
|
5
|
+
import "./index.scss";
|
|
6
|
+
const classPrefix = "xh-step";
|
|
7
|
+
const Step = props => {
|
|
8
|
+
const { title, description, icon, status = "wait", fancy, style, className, } = props;
|
|
9
|
+
return (React.createElement(View, { className: classNames(`${classPrefix}`, `${classPrefix}-status-${status}`, className), style: style },
|
|
10
|
+
React.createElement(View, { className: `${classPrefix}-indicator` },
|
|
11
|
+
React.createElement(View, { className: classNames(`${classPrefix}-icon-container`, { fancy }) }, icon)),
|
|
12
|
+
React.createElement(View, { className: `${classPrefix}-content` },
|
|
13
|
+
React.createElement(View, { className: `${classPrefix}-title` }, title),
|
|
14
|
+
!!description && (React.createElement(View, { className: `${classPrefix}-description` }, description)))));
|
|
15
|
+
};
|
|
16
|
+
const XHStep = Step;
|
|
17
|
+
XHStep.Steps = Steps;
|
|
18
|
+
export default XHStep;
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Step/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAG1C,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,cAAc,CAAC;AAYtB,MAAM,WAAW,GAAG,SAAS,CAAC;AAE9B,MAAM,IAAI,GAAwB,KAAK,CAAC,EAAE;IACxC,MAAM,EACJ,KAAK,EACL,WAAW,EACX,IAAI,EACJ,MAAM,GAAG,MAAM,EACf,KAAK,EACL,KAAK,EACL,SAAS,GACV,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,oBAAC,IAAI,IACH,SAAS,EAAE,UAAU,CACnB,GAAG,WAAW,EAAE,EAChB,GAAG,WAAW,WAAW,MAAM,EAAE,EACjC,SAAS,CACV,EACD,KAAK,EAAE,KAAK;QAEZ,oBAAC,IAAI,IAAC,SAAS,EAAE,GAAG,WAAW,YAAY;YACzC,oBAAC,IAAI,IACH,SAAS,EAAE,UAAU,CAAC,GAAG,WAAW,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,IAEhE,IAAI,CACA,CACF;QACP,oBAAC,IAAI,IAAC,SAAS,EAAE,GAAG,WAAW,UAAU;YACvC,oBAAC,IAAI,IAAC,SAAS,EAAE,GAAG,WAAW,QAAQ,IAAG,KAAK,CAAQ;YACtD,CAAC,CAAC,WAAW,IAAI,CAChB,oBAAC,IAAI,IAAC,SAAS,EAAE,GAAG,WAAW,cAAc,IAAG,WAAW,CAAQ,CACpE,CACI,CACF,CACR,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,MAAM,GAAG,IAAuB,CAAC;AACvC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AAErB,eAAe,MAAM,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { createContext } from "react";
|
|
2
|
+
import cssVars from "css-vars-ponyfill";
|
|
2
3
|
const createTheme = (theme) => {
|
|
3
4
|
return createContext(Object.assign({}, theme));
|
|
4
5
|
};
|
|
@@ -22,6 +23,9 @@ const ThemeProvider = ({ children, value, scoped = false, }) => {
|
|
|
22
23
|
}
|
|
23
24
|
});
|
|
24
25
|
}
|
|
26
|
+
cssVars({
|
|
27
|
+
variables: value,
|
|
28
|
+
});
|
|
25
29
|
return (React.createElement(ThemeContext.Provider, { value: value }, clonedElement));
|
|
26
30
|
};
|
|
27
31
|
export default ThemeProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ThemeProvider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ThemeProvider/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAyBxC,MAAM,WAAW,GAAG,CAAC,KAAgC,EAAE,EAAE;IACvD,OAAO,aAAa,mBAAM,KAAK,EAAG,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;AAE5C,MAAM,aAAa,GAAiC,CAAC,EACnD,QAAQ,EACR,KAAK,EACL,MAAM,GAAG,KAAK,GACf,EAAE,EAAE;IACH,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC/B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5D,IAAI,KAAK,KAAK,CAAC,EAAE;gBACf,OAAO,KAAK,CAAC,YAAY,CAAC,KAAY,EAAE;oBACtC,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;aACJ;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,CAAC;QACN,SAAS,EAAE,KAAkC;KAC9C,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAAG,aAAa,CAAyB,CAC7E,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
package/lib/hooks/index.js
CHANGED
|
@@ -7,40 +7,6 @@ export const useTaroEnv = () => {
|
|
|
7
7
|
}, []);
|
|
8
8
|
return taroEnv;
|
|
9
9
|
};
|
|
10
|
-
export const useTouch = () => {
|
|
11
|
-
const [startPoint, setStartPoint] = useState({ x: 0, y: 0 }); // touch start的point
|
|
12
|
-
const [touchMoveDistance, setTouchMoveDistance] = useState({ x: 0, y: 0 }); // touch的距离
|
|
13
|
-
// const touchMoveDistance = useRef({ x: 0, y: 0 });
|
|
14
|
-
const [touchEndPoint, setTouchEndPoint] = useState({ x: 0, y: 0 }); // touch end的point
|
|
15
|
-
const formatPos = (num) => {
|
|
16
|
-
return Math.floor(num);
|
|
17
|
-
};
|
|
18
|
-
const touchstart = (e) => {
|
|
19
|
-
e.preventDefault();
|
|
20
|
-
const { clientX, clientY } = e.touches[0];
|
|
21
|
-
setStartPoint({ x: formatPos(clientX), y: formatPos(clientY) });
|
|
22
|
-
};
|
|
23
|
-
const touchmove = (e) => {
|
|
24
|
-
e.preventDefault();
|
|
25
|
-
const { pageX, pageY } = e.touches[0];
|
|
26
|
-
let distanceX, distanceY;
|
|
27
|
-
distanceX = formatPos(pageX - startPoint.x);
|
|
28
|
-
distanceY = formatPos(pageY - startPoint.y);
|
|
29
|
-
setTouchMoveDistance({ x: distanceX, y: distanceY });
|
|
30
|
-
};
|
|
31
|
-
const touchend = (e) => {
|
|
32
|
-
const { pageX, pageY } = e.changedTouches[0];
|
|
33
|
-
setTouchEndPoint({ x: formatPos(pageX), y: formatPos(pageY) });
|
|
34
|
-
};
|
|
35
|
-
return {
|
|
36
|
-
touchstart,
|
|
37
|
-
touchend,
|
|
38
|
-
touchmove,
|
|
39
|
-
startPoint: startPoint,
|
|
40
|
-
touchMoveDistance: touchMoveDistance,
|
|
41
|
-
touchEndPoint,
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
10
|
export const useAsyncEffect = async (fn, deps) => {
|
|
45
11
|
useEffect(() => {
|
|
46
12
|
fn().catch(err => {
|
package/lib/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;IAC/C,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { detectFlexGapSupported } from "../utils";
|
|
3
|
+
export default () => {
|
|
4
|
+
const [flexible, setFlexible] = React.useState(false);
|
|
5
|
+
React.useEffect(() => {
|
|
6
|
+
setFlexible(detectFlexGapSupported());
|
|
7
|
+
}, []);
|
|
8
|
+
return flexible;
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=useFlexGapSupport.js.map
|