@solar-taro/ui-sun 1.6.5 → 2.1.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 +31 -0
- package/accordion/index.vue.d.ts +22 -16
- package/chip/index.vue.d.ts +15 -36
- package/circular-progress/index.vue.d.ts +4 -30
- package/fab/fab-group.vue.d.ts +9 -3
- package/fab/fab.vue.d.ts +9 -3
- package/fab/index.scss +11 -3
- package/icon/index.scss +4 -3
- package/icon/index.vue.d.ts +3 -22
- package/index.d.ts +3 -0
- package/index.js +32 -26
- package/index10.js +24 -33
- package/index11.js +33 -75
- package/index12.js +75 -19
- package/index13.js +19 -49
- package/index14.js +46 -141
- package/index15.js +142 -27
- package/index16.js +29 -21
- package/index17.js +18 -21
- package/index18.js +42 -11
- package/index19.js +21 -26
- package/index20.js +11 -118
- package/index21.js +33 -10
- package/index22.js +123 -10
- package/index23.js +12 -8
- package/index24.js +10 -2
- package/index25.js +10 -2
- package/index26.js +10 -2
- package/index28.js +1 -1
- package/index29.js +1 -1
- package/index31.js +1 -1
- package/index32.js +1 -1
- package/index33.js +1 -1
- package/index34.js +1 -1
- package/index35.js +1 -1
- package/index36.js +1 -1
- package/index38.js +1 -1
- package/index39.js +1 -1
- package/index40.js +1 -1
- package/index41.js +1 -1
- package/index42.js +1 -1
- package/index43.js +2 -526
- package/index44.js +2 -3
- package/index45.js +2 -66
- package/index46.js +2 -12
- package/index47.js +2 -25
- package/index48.js +526 -14
- package/index49.js +3 -5
- package/index50.js +66 -26
- package/index51.js +12 -2
- package/index52.js +25 -506
- package/index53.js +14 -79
- package/index54.js +4 -69
- package/index55.js +24 -67
- package/index56.js +2 -543
- package/index57.js +506 -2
- package/index58.js +79 -2
- package/index59.js +70 -2
- package/index60.js +68 -3
- package/index61.js +543 -2
- package/index62.js +2 -4
- package/index64.js +2 -2
- package/index65.js +4 -2
- package/index66.js +2 -48
- package/index67.js +4 -82
- package/index69.js +2 -2
- package/index7.js +7 -9
- package/index70.js +2 -2
- package/index71.js +48 -2
- package/index72.js +84 -0
- package/index73.js +4 -0
- package/index74.js +4 -0
- package/index75.js +4 -0
- package/index76.js +4 -0
- package/index8.js +29 -17
- package/index9.js +19 -25
- package/item/index.d.ts +1 -0
- package/item/index.scss +40 -0
- package/item/index.vue.d.ts +26 -0
- package/lazy-render/index.vue.d.ts +13 -29
- package/list-header/index.scss +1 -1
- package/list-header/index.vue.d.ts +9 -3
- package/navbar/index.vue.d.ts +10 -4
- package/package.json +2 -2
- package/page-header/index.d.ts +1 -0
- package/page-header/index.scss +5 -0
- package/page-header/index.vue.d.ts +17 -0
- package/plugin.d.ts +0 -1
- package/popover/index.scss +1 -0
- package/popover/index.vue.d.ts +24 -41
- package/qrcode/index.vue.d.ts +6 -31
- package/segment/injection.d.ts +0 -1
- package/segment/segment-btn.vue.d.ts +12 -16
- package/segment/segment.vue.d.ts +16 -20
- package/slider-captcha/index.vue.d.ts +7 -36
- package/spinner/index.scss +1 -0
- package/spinner/index.vue.d.ts +14 -33
- package/sudoku/sudoku-item.vue.d.ts +9 -3
- package/sudoku/sudoku.vue.d.ts +9 -3
- package/tabbar/index.d.ts +1 -0
- package/tabbar/index.scss +74 -0
- package/tabbar/index.vue.d.ts +38 -0
- package/table/_table.scss +1 -1
- package/table/table-cell.vue.d.ts +13 -24
- package/table/table-row.vue.d.ts +12 -17
- package/table/table.vue.d.ts +17 -43
- package/virtual-scroll/index.vue.d.ts +35 -74
package/index12.js
CHANGED
|
@@ -1,25 +1,81 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { defineComponent as C, watch as I, onMounted as L, onUnmounted as M, createElementVNode as k, unref as w, openBlock as z, createElementBlock as R } from "vue";
|
|
2
|
+
import { createSelectorQuery as y, getWindowInfo as Q, previewImage as S } from "@tarojs/taro";
|
|
3
|
+
import { QrCode as U, QrCodeEcc as a } from "./index48.js";
|
|
4
|
+
const h = k, A = w, B = z, D = R;
|
|
5
|
+
let T = 1;
|
|
6
|
+
const N = /* @__PURE__ */ C({
|
|
7
|
+
__name: "index",
|
|
5
8
|
props: {
|
|
6
|
-
value: {}
|
|
9
|
+
value: {},
|
|
10
|
+
color: { default: "#000000" },
|
|
11
|
+
backgroundColor: { default: "transparent" },
|
|
12
|
+
level: { default: "M" }
|
|
7
13
|
},
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
emits: ["rendered"],
|
|
15
|
+
setup(m, { expose: v, emit: g }) {
|
|
16
|
+
let n, i, l, s = !1;
|
|
17
|
+
const u = `sun-qrcode-captcha-${T++}`, x = {
|
|
18
|
+
L: a.LOW,
|
|
19
|
+
M: a.MEDIUM,
|
|
20
|
+
Q: a.QUARTILE,
|
|
21
|
+
H: a.HIGH
|
|
22
|
+
}, _ = g, c = m;
|
|
23
|
+
v({
|
|
24
|
+
getDataURL: p
|
|
25
|
+
});
|
|
26
|
+
function d() {
|
|
27
|
+
setTimeout(() => {
|
|
28
|
+
y().select(`#${u}`).fields({ node: !0, size: !0 }).exec(([{ node: t, width: e, height: r }]) => {
|
|
29
|
+
if (s) return;
|
|
30
|
+
if (!r || !e)
|
|
31
|
+
return d();
|
|
32
|
+
const o = Q().pixelRatio;
|
|
33
|
+
n = t, l = n.getContext("2d"), i = e, n.width = e * o, n.height = r * o, l.scale(o, o), f();
|
|
34
|
+
});
|
|
35
|
+
}, 50);
|
|
36
|
+
}
|
|
37
|
+
function f() {
|
|
38
|
+
const t = U.encodeText(c.value, x[c.level]), e = i / (t.size + 2);
|
|
39
|
+
l.fillStyle = c.backgroundColor, l.fillRect(0, 0, n.width, n.height), l.fillStyle = c.color;
|
|
40
|
+
for (let r = 0; r < t.size; r++)
|
|
41
|
+
for (let o = 0; o < t.size; o++)
|
|
42
|
+
t.getModule(o, r) && l.fillRect(
|
|
43
|
+
o * e + e,
|
|
44
|
+
// +moduleSize 留出边距
|
|
45
|
+
r * e + e,
|
|
46
|
+
e,
|
|
47
|
+
e
|
|
48
|
+
);
|
|
49
|
+
_("rendered");
|
|
50
|
+
}
|
|
51
|
+
function p() {
|
|
52
|
+
return n.toDataURL("image/png", 1);
|
|
53
|
+
}
|
|
54
|
+
function E() {
|
|
55
|
+
const t = p();
|
|
56
|
+
S({
|
|
57
|
+
current: t,
|
|
58
|
+
urls: [t]
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return I(() => c.value, () => {
|
|
62
|
+
l && f();
|
|
63
|
+
}), L(() => {
|
|
64
|
+
d();
|
|
65
|
+
}), M(() => {
|
|
66
|
+
s = !0;
|
|
67
|
+
}), (t, e) => (B(), D("view", {
|
|
68
|
+
class: "sun-qrcode",
|
|
69
|
+
onTap: e[0] || (e[0] = (r) => A(n) && E())
|
|
70
|
+
}, [
|
|
71
|
+
h("canvas", {
|
|
72
|
+
id: u,
|
|
73
|
+
type: "2d",
|
|
74
|
+
class: "sun-slider-captcha-canvas"
|
|
75
|
+
})
|
|
76
|
+
], 32));
|
|
21
77
|
}
|
|
22
78
|
});
|
|
23
79
|
export {
|
|
24
|
-
|
|
80
|
+
N as default
|
|
25
81
|
};
|
package/index13.js
CHANGED
|
@@ -1,55 +1,25 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { ACTIVE_CHILD as
|
|
3
|
-
const
|
|
4
|
-
__name: "segment",
|
|
1
|
+
import { defineComponent as p, inject as a, getCurrentInstance as c, onUnmounted as m, unref as u, renderSlot as i, mergeProps as _, openBlock as f, createElementBlock as v } from "vue";
|
|
2
|
+
import { ACTIVE_CHILD as d, PARENT as g } from "./index49.js";
|
|
3
|
+
const o = u, k = i, C = _, B = f, E = v, $ = /* @__PURE__ */ p({
|
|
4
|
+
__name: "segment-btn",
|
|
5
5
|
props: {
|
|
6
|
-
|
|
6
|
+
value: {}
|
|
7
7
|
},
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
},
|
|
22
|
-
unlink: (e) => {
|
|
23
|
-
t.slice(t.indexOf(e), 1);
|
|
24
|
-
},
|
|
25
|
-
active: (e) => {
|
|
26
|
-
r("change", {
|
|
27
|
-
value: e.props.value,
|
|
28
|
-
index: d.value
|
|
29
|
-
}), r("update:modelValue", e.props.value), o.value = e;
|
|
30
|
-
}
|
|
31
|
-
}), C(() => c.modelValue, (e) => {
|
|
32
|
-
o.value = t.find((n) => n.props.value === e);
|
|
33
|
-
});
|
|
34
|
-
function u() {
|
|
35
|
-
return m.subTree.children[0].children[0].children.filter((e) => typeof e.type != "symbol");
|
|
36
|
-
}
|
|
37
|
-
return w(() => {
|
|
38
|
-
const e = u();
|
|
39
|
-
t.forEach((n) => {
|
|
40
|
-
const s = e.findIndex((l) => l === n.vnode);
|
|
41
|
-
n.props.value === void 0 && (n.props.value = s), n.props.value === c.modelValue && (o.value = n);
|
|
42
|
-
});
|
|
43
|
-
}), (e, n) => (L(), S("view", b(e.$attrs, {
|
|
44
|
-
class: "sun-segment",
|
|
45
|
-
style: g.value
|
|
46
|
-
}), [
|
|
47
|
-
T("view", $, [
|
|
48
|
-
R(e.$slots, "default")
|
|
49
|
-
])
|
|
50
|
-
], 16));
|
|
8
|
+
setup(b) {
|
|
9
|
+
const l = a(d), e = a(g), n = c();
|
|
10
|
+
return m(() => {
|
|
11
|
+
e.unlink(n);
|
|
12
|
+
}), e.link(n), (t, r) => {
|
|
13
|
+
var s;
|
|
14
|
+
return B(), E("view", C(t.$attrs, {
|
|
15
|
+
class: ["sun-segment-btn", { "sun-segment-btn-active": ((s = o(l)) == null ? void 0 : s.props.value) === t.value }],
|
|
16
|
+
onTap: r[0] || (r[0] = (I) => o(e).active(o(n)))
|
|
17
|
+
}), [
|
|
18
|
+
k(t.$slots, "default")
|
|
19
|
+
], 16);
|
|
20
|
+
};
|
|
51
21
|
}
|
|
52
22
|
});
|
|
53
23
|
export {
|
|
54
|
-
|
|
24
|
+
$ as default
|
|
55
25
|
};
|
package/index14.js
CHANGED
|
@@ -1,150 +1,55 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { filterResult as ie } from "@solar-kit/planets/sun";
|
|
6
|
-
import { useCommonInterceptor as re } from "@solar-taro/http";
|
|
7
|
-
import { SunSpinner as ce } from "@solar-taro/ui-sun";
|
|
8
|
-
import { createSelectorQuery as le, getWindowInfo as pe } from "@tarojs/taro";
|
|
9
|
-
import { a as ue } from "./index45.js";
|
|
10
|
-
import { e as D } from "./index46.js";
|
|
11
|
-
import de from "./index47.js";
|
|
12
|
-
import me from "./index48.js";
|
|
13
|
-
import { attachLoading as ve } from "./index49.js";
|
|
14
|
-
const g = K, H = O, o = Q, w = X, fe = Y, N = ee, he = te, U = ae, $ = ne, ye = { class: "sun-slider-captcha" }, ge = { class: "sun-slider-captcha-container" }, we = { class: "sun-slider-captcha-mask" }, ke = { class: "sun-slider-captcha-track" }, _e = ["x", "disabled"], V = "sun-slider-captcha", be = 155, Ie = 310, ze = 155, xe = 50, Le = /* @__PURE__ */ J({
|
|
15
|
-
__name: "index",
|
|
1
|
+
import { defineComponent as x, getCurrentInstance as V, shallowRef as E, shallowReactive as k, computed as a, provide as i, watch as C, onMounted as w, renderSlot as y, createElementVNode as B, mergeProps as I, openBlock as O, createElementBlock as A } from "vue";
|
|
2
|
+
import { ACTIVE_CHILD as N, PARENT as P } from "./index49.js";
|
|
3
|
+
const R = y, T = B, b = I, L = O, S = A, $ = { class: "sun-segment-inner" }, M = /* @__PURE__ */ x({
|
|
4
|
+
__name: "segment",
|
|
16
5
|
props: {
|
|
17
|
-
|
|
18
|
-
width: { default: 375 },
|
|
19
|
-
url: {},
|
|
20
|
-
verifyUrl: {},
|
|
21
|
-
verifyData: {}
|
|
6
|
+
modelValue: {}
|
|
22
7
|
},
|
|
23
|
-
emits: ["
|
|
24
|
-
setup(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
type: "success",
|
|
36
|
-
content: ""
|
|
37
|
-
}), h = d({ type: "primary" }), r = { key: "", token: "" };
|
|
38
|
-
function z() {
|
|
39
|
-
f.value = !0, I.post(i.url, { captchaType: S.BlockPuzzle }).pipe(
|
|
40
|
-
ie()
|
|
41
|
-
).subscribe(async ({ data: t }) => {
|
|
42
|
-
r.key = t.secretKey, r.token = t.token, m = c.createImage(), v = c.createImage(), m.src = `data:image/png;base64,${t.originalImageBase64}`, v.src = `data:image/png;base64,${t.jigsawImageBase64}`, await Promise.all([
|
|
43
|
-
new Promise((e) => m.onload = () => e()),
|
|
44
|
-
new Promise((e) => v.onload = () => e())
|
|
45
|
-
]), k = Date.now(), x(), f.value = !1;
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
function x(t = 0) {
|
|
49
|
-
const e = i.width, a = i.height;
|
|
50
|
-
p.clearRect(0, 0, e, a), p.drawImage(m, 0, 0, e, a), p.drawImage(v, t, 0, y.value.width * xe, y.value.height * ze), l.value = t;
|
|
51
|
-
}
|
|
52
|
-
function W(t) {
|
|
53
|
-
t = t / y.value.width;
|
|
54
|
-
const e = Date.now(), a = JSON.stringify({ x: t, y: 5 }), s = r.key ? E(a, r.key) : a, C = {
|
|
55
|
-
captchaType: S.BlockPuzzle,
|
|
56
|
-
pointJson: s,
|
|
57
|
-
token: r.token,
|
|
58
|
-
...i.verifyData
|
|
59
|
-
};
|
|
60
|
-
I.post(i.verifyUrl, C).pipe(
|
|
61
|
-
ve(b)
|
|
62
|
-
).subscribe({
|
|
63
|
-
next: (u) => {
|
|
64
|
-
if (u.code !== 0)
|
|
65
|
-
n.value.type = "danger", n.value.content = u.msg, n.value.visible = !0, h.value.type = "danger", setTimeout(() => {
|
|
66
|
-
n.value.visible = !1, z();
|
|
67
|
-
}, 1e3);
|
|
68
|
-
else {
|
|
69
|
-
const G = ((e - k) / 1e3).toFixed(2);
|
|
70
|
-
n.value.type = "success", n.value.content = `验证成功,耗时 ${G} 秒`, n.value.visible = !0, h.value.type = "primary";
|
|
71
|
-
const P = u.data.token + "---" + a;
|
|
72
|
-
u.data.captcha = r.key ? E(P, r.key) : P;
|
|
73
|
-
}
|
|
74
|
-
R("verified", u);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
function E(t, e) {
|
|
79
|
-
const a = D.parse(e), s = D.parse(t);
|
|
80
|
-
return ue.encrypt(s, a, { mode: de, padding: me }).toString();
|
|
81
|
-
}
|
|
82
|
-
function j(t) {
|
|
83
|
-
l.value = t.x, x(l.value);
|
|
84
|
-
}
|
|
85
|
-
function A() {
|
|
86
|
-
W(l.value);
|
|
87
|
-
}
|
|
88
|
-
function T() {
|
|
89
|
-
setTimeout(() => {
|
|
90
|
-
le().select(`#${V}`).fields({ node: !0, size: !0 }).exec(([{ node: t, width: e, height: a }]) => {
|
|
91
|
-
if (_) return;
|
|
92
|
-
if (!a || !e)
|
|
93
|
-
return T();
|
|
94
|
-
const s = pe().pixelRatio;
|
|
95
|
-
c = t, p = c.getContext("2d"), c.width = e * s, c.height = a * s, p.scale(s, s), z();
|
|
8
|
+
emits: ["update:modelValue", "change"],
|
|
9
|
+
setup(p, { emit: v }) {
|
|
10
|
+
const r = v, c = p, m = V(), o = E(null), t = k([]), d = a(() => t.indexOf(o.value)), f = a(() => t.length), g = a(() => ({
|
|
11
|
+
"--segment-length": f.value,
|
|
12
|
+
"--segment-active-index": d.value
|
|
13
|
+
}));
|
|
14
|
+
i(N, o), i(P, {
|
|
15
|
+
link: (e) => {
|
|
16
|
+
const n = u();
|
|
17
|
+
t.push(e), t.sort((s, l) => {
|
|
18
|
+
const h = n.indexOf(s.vnode), _ = n.indexOf(l.vnode);
|
|
19
|
+
return h - _;
|
|
96
20
|
});
|
|
97
|
-
},
|
|
21
|
+
},
|
|
22
|
+
unlink: (e) => {
|
|
23
|
+
t.slice(t.indexOf(e), 1);
|
|
24
|
+
},
|
|
25
|
+
active: (e) => {
|
|
26
|
+
r("change", {
|
|
27
|
+
value: e.props.value,
|
|
28
|
+
index: d.value
|
|
29
|
+
}), r("update:modelValue", e.props.value), o.value = e;
|
|
30
|
+
}
|
|
31
|
+
}), C(() => c.modelValue, (e) => {
|
|
32
|
+
o.value = t.find((n) => n.props.value === e);
|
|
33
|
+
});
|
|
34
|
+
function u() {
|
|
35
|
+
return m.subTree.children[0].children[0].children.filter((e) => typeof e.type != "symbol");
|
|
98
36
|
}
|
|
99
|
-
return
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
o("view", we, [
|
|
112
|
-
f.value ? (w(), fe(g(ce), { key: 0 })) : N("", !0),
|
|
113
|
-
n.value.visible ? (w(), $("view", {
|
|
114
|
-
key: 1,
|
|
115
|
-
class: U(["sun-slider-captcha-alert", {
|
|
116
|
-
"sun-slider-captcha-alert-success": n.value.type === "success",
|
|
117
|
-
"sun-slider-captcha-alert-danger": n.value.type === "danger"
|
|
118
|
-
}])
|
|
119
|
-
}, he(n.value.content), 3)) : N("", !0)
|
|
120
|
-
])
|
|
121
|
-
]),
|
|
122
|
-
o("movable-area", ke, [
|
|
123
|
-
e[3] || (e[3] = o("view", { class: "sun-slider-captcha-hint" }, "拖动滑块以完成拼图", -1)),
|
|
124
|
-
o("view", {
|
|
125
|
-
class: U(["sun-slider-captcha-indicator", {
|
|
126
|
-
"sun-slider-captcha-indicator-primary": h.value.type === "primary",
|
|
127
|
-
"sun-slider-captcha-indicator-danger": h.value.type === "danger"
|
|
128
|
-
}]),
|
|
129
|
-
style: H({ transform: `translateX(calc(-100% + ${l.value}px))` })
|
|
130
|
-
}, null, 6),
|
|
131
|
-
o("movable-view", {
|
|
132
|
-
class: "sun-slider-captcha-handler",
|
|
133
|
-
x: l.value,
|
|
134
|
-
direction: "horizontal",
|
|
135
|
-
disabled: f.value || b.value,
|
|
136
|
-
onChangePassive: e[0] || (e[0] = (a) => j(a.detail)),
|
|
137
|
-
onTouchendPassive: e[1] || (e[1] = (a) => A())
|
|
138
|
-
}, e[2] || (e[2] = [
|
|
139
|
-
o("van-icon", {
|
|
140
|
-
name: "wap-nav",
|
|
141
|
-
style: { transform: "rotate(90deg)" }
|
|
142
|
-
}, null, -1)
|
|
143
|
-
]), 40, _e)
|
|
37
|
+
return w(() => {
|
|
38
|
+
const e = u();
|
|
39
|
+
t.forEach((n) => {
|
|
40
|
+
const s = e.findIndex((l) => l === n.vnode);
|
|
41
|
+
n.props.value === void 0 && (n.props.value = s), n.props.value === c.modelValue && (o.value = n);
|
|
42
|
+
});
|
|
43
|
+
}), (e, n) => (L(), S("view", b(e.$attrs, {
|
|
44
|
+
class: "sun-segment",
|
|
45
|
+
style: g.value
|
|
46
|
+
}), [
|
|
47
|
+
T("view", $, [
|
|
48
|
+
R(e.$slots, "default")
|
|
144
49
|
])
|
|
145
|
-
]));
|
|
50
|
+
], 16));
|
|
146
51
|
}
|
|
147
52
|
});
|
|
148
53
|
export {
|
|
149
|
-
|
|
54
|
+
M as default
|
|
150
55
|
};
|
package/index15.js
CHANGED
|
@@ -1,35 +1,150 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { defineComponent as J, ref as d, computed as M, onMounted as q, onUnmounted as F, unref as K, normalizeStyle as O, createElementVNode as Q, openBlock as X, createBlock as Y, createCommentVNode as ee, toDisplayString as te, normalizeClass as ae, createElementBlock as ne } from "vue";
|
|
2
|
+
import { HttpClient as se, withInterceptors as oe } from "@ngify/http";
|
|
3
|
+
import { withPixel as B } from "@solar-kit/core";
|
|
4
|
+
import { CaptchaType as S } from "@solar-kit/planets/mercury";
|
|
5
|
+
import { filterResult as ie } from "@solar-kit/planets/sun";
|
|
6
|
+
import { useCommonInterceptor as re } from "@solar-taro/http";
|
|
7
|
+
import { SunSpinner as ce } from "@solar-taro/ui-sun";
|
|
8
|
+
import { createSelectorQuery as le, getWindowInfo as pe } from "@tarojs/taro";
|
|
9
|
+
import { a as ue } from "./index50.js";
|
|
10
|
+
import { e as D } from "./index51.js";
|
|
11
|
+
import de from "./index52.js";
|
|
12
|
+
import me from "./index53.js";
|
|
13
|
+
import { attachLoading as ve } from "./index54.js";
|
|
14
|
+
const g = K, H = O, o = Q, w = X, fe = Y, N = ee, he = te, U = ae, $ = ne, ye = { class: "sun-slider-captcha" }, ge = { class: "sun-slider-captcha-container" }, we = { class: "sun-slider-captcha-mask" }, ke = { class: "sun-slider-captcha-track" }, _e = ["x", "disabled"], V = "sun-slider-captcha", be = 155, Ie = 310, ze = 155, xe = 50, Le = /* @__PURE__ */ J({
|
|
6
15
|
__name: "index",
|
|
7
16
|
props: {
|
|
8
|
-
|
|
9
|
-
|
|
17
|
+
height: { default: 187.5 },
|
|
18
|
+
width: { default: 375 },
|
|
19
|
+
url: {},
|
|
20
|
+
verifyUrl: {},
|
|
21
|
+
verifyData: {}
|
|
10
22
|
},
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
emits: ["verified"],
|
|
24
|
+
setup(Z, { emit: L }) {
|
|
25
|
+
let c, p, m, v, k, _ = !1;
|
|
26
|
+
const i = Z, R = L, l = d(0), f = d(!1), b = d(!1), y = M(() => ({
|
|
27
|
+
width: i.width / Ie,
|
|
28
|
+
height: i.height / be
|
|
29
|
+
})), I = new se(
|
|
30
|
+
oe([
|
|
31
|
+
re()
|
|
32
|
+
])
|
|
33
|
+
), n = d({
|
|
34
|
+
visible: !1,
|
|
35
|
+
type: "success",
|
|
36
|
+
content: ""
|
|
37
|
+
}), h = d({ type: "primary" }), r = { key: "", token: "" };
|
|
38
|
+
function z() {
|
|
39
|
+
f.value = !0, I.post(i.url, { captchaType: S.BlockPuzzle }).pipe(
|
|
40
|
+
ie()
|
|
41
|
+
).subscribe(async ({ data: t }) => {
|
|
42
|
+
r.key = t.secretKey, r.token = t.token, m = c.createImage(), v = c.createImage(), m.src = `data:image/png;base64,${t.originalImageBase64}`, v.src = `data:image/png;base64,${t.jigsawImageBase64}`, await Promise.all([
|
|
43
|
+
new Promise((e) => m.onload = () => e()),
|
|
44
|
+
new Promise((e) => v.onload = () => e())
|
|
45
|
+
]), k = Date.now(), x(), f.value = !1;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
function x(t = 0) {
|
|
49
|
+
const e = i.width, a = i.height;
|
|
50
|
+
p.clearRect(0, 0, e, a), p.drawImage(m, 0, 0, e, a), p.drawImage(v, t, 0, y.value.width * xe, y.value.height * ze), l.value = t;
|
|
51
|
+
}
|
|
52
|
+
function W(t) {
|
|
53
|
+
t = t / y.value.width;
|
|
54
|
+
const e = Date.now(), a = JSON.stringify({ x: t, y: 5 }), s = r.key ? E(a, r.key) : a, C = {
|
|
55
|
+
captchaType: S.BlockPuzzle,
|
|
56
|
+
pointJson: s,
|
|
57
|
+
token: r.token,
|
|
58
|
+
...i.verifyData
|
|
59
|
+
};
|
|
60
|
+
I.post(i.verifyUrl, C).pipe(
|
|
61
|
+
ve(b)
|
|
62
|
+
).subscribe({
|
|
63
|
+
next: (u) => {
|
|
64
|
+
if (u.code !== 0)
|
|
65
|
+
n.value.type = "danger", n.value.content = u.msg, n.value.visible = !0, h.value.type = "danger", setTimeout(() => {
|
|
66
|
+
n.value.visible = !1, z();
|
|
67
|
+
}, 1e3);
|
|
68
|
+
else {
|
|
69
|
+
const G = ((e - k) / 1e3).toFixed(2);
|
|
70
|
+
n.value.type = "success", n.value.content = `验证成功,耗时 ${G} 秒`, n.value.visible = !0, h.value.type = "primary";
|
|
71
|
+
const P = u.data.token + "---" + a;
|
|
72
|
+
u.data.captcha = r.key ? E(P, r.key) : P;
|
|
73
|
+
}
|
|
74
|
+
R("verified", u);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function E(t, e) {
|
|
79
|
+
const a = D.parse(e), s = D.parse(t);
|
|
80
|
+
return ue.encrypt(s, a, { mode: de, padding: me }).toString();
|
|
81
|
+
}
|
|
82
|
+
function j(t) {
|
|
83
|
+
l.value = t.x, x(l.value);
|
|
84
|
+
}
|
|
85
|
+
function A() {
|
|
86
|
+
W(l.value);
|
|
87
|
+
}
|
|
88
|
+
function T() {
|
|
89
|
+
setTimeout(() => {
|
|
90
|
+
le().select(`#${V}`).fields({ node: !0, size: !0 }).exec(([{ node: t, width: e, height: a }]) => {
|
|
91
|
+
if (_) return;
|
|
92
|
+
if (!a || !e)
|
|
93
|
+
return T();
|
|
94
|
+
const s = pe().pixelRatio;
|
|
95
|
+
c = t, p = c.getContext("2d"), c.width = e * s, c.height = a * s, p.scale(s, s), z();
|
|
96
|
+
});
|
|
97
|
+
}, 50);
|
|
98
|
+
}
|
|
99
|
+
return q(() => {
|
|
100
|
+
T();
|
|
101
|
+
}), F(() => {
|
|
102
|
+
_ = !0;
|
|
103
|
+
}), (t, e) => (w(), $("view", ye, [
|
|
104
|
+
o("view", ge, [
|
|
105
|
+
o("canvas", {
|
|
106
|
+
id: V,
|
|
107
|
+
type: "2d",
|
|
108
|
+
class: "sun-slider-captcha-canvas",
|
|
109
|
+
style: H({ height: g(B)(t.height), width: g(B)(t.width) })
|
|
110
|
+
}, null, 4),
|
|
111
|
+
o("view", we, [
|
|
112
|
+
f.value ? (w(), fe(g(ce), { key: 0 })) : N("", !0),
|
|
113
|
+
n.value.visible ? (w(), $("view", {
|
|
114
|
+
key: 1,
|
|
115
|
+
class: U(["sun-slider-captcha-alert", {
|
|
116
|
+
"sun-slider-captcha-alert-success": n.value.type === "success",
|
|
117
|
+
"sun-slider-captcha-alert-danger": n.value.type === "danger"
|
|
118
|
+
}])
|
|
119
|
+
}, he(n.value.content), 3)) : N("", !0)
|
|
120
|
+
])
|
|
26
121
|
]),
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
122
|
+
o("movable-area", ke, [
|
|
123
|
+
e[3] || (e[3] = o("view", { class: "sun-slider-captcha-hint" }, "拖动滑块以完成拼图", -1)),
|
|
124
|
+
o("view", {
|
|
125
|
+
class: U(["sun-slider-captcha-indicator", {
|
|
126
|
+
"sun-slider-captcha-indicator-primary": h.value.type === "primary",
|
|
127
|
+
"sun-slider-captcha-indicator-danger": h.value.type === "danger"
|
|
128
|
+
}]),
|
|
129
|
+
style: H({ transform: `translateX(calc(-100% + ${l.value}px))` })
|
|
130
|
+
}, null, 6),
|
|
131
|
+
o("movable-view", {
|
|
132
|
+
class: "sun-slider-captcha-handler",
|
|
133
|
+
x: l.value,
|
|
134
|
+
direction: "horizontal",
|
|
135
|
+
disabled: f.value || b.value,
|
|
136
|
+
onChangePassive: e[0] || (e[0] = (a) => j(a.detail)),
|
|
137
|
+
onTouchendPassive: e[1] || (e[1] = (a) => A())
|
|
138
|
+
}, e[2] || (e[2] = [
|
|
139
|
+
o("van-icon", {
|
|
140
|
+
name: "wap-nav",
|
|
141
|
+
style: { transform: "rotate(90deg)" }
|
|
142
|
+
}, null, -1)
|
|
143
|
+
]), 40, _e)
|
|
144
|
+
])
|
|
145
|
+
]));
|
|
31
146
|
}
|
|
32
147
|
});
|
|
33
148
|
export {
|
|
34
|
-
|
|
149
|
+
Le as default
|
|
35
150
|
};
|
package/index16.js
CHANGED
|
@@ -1,27 +1,35 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
const
|
|
3
|
-
|
|
1
|
+
import { defineComponent as a, computed as c, renderList as d, Fragment as m, openBlock as p, createElementBlock as u, createElementVNode as _, renderSlot as f, createCommentVNode as k, normalizeClass as g } from "vue";
|
|
2
|
+
const v = d, B = m, e = p, n = u, o = _, C = f, N = k, w = g, z = { class: "sun-spinner-dot" }, E = {
|
|
3
|
+
key: 0,
|
|
4
|
+
class: "sun-spinner-desc"
|
|
5
|
+
}, y = /* @__PURE__ */ a({
|
|
6
|
+
__name: "index",
|
|
4
7
|
props: {
|
|
5
|
-
size:
|
|
6
|
-
|
|
7
|
-
type: Number,
|
|
8
|
-
default: 9
|
|
9
|
-
}
|
|
8
|
+
size: { default: "middle" },
|
|
9
|
+
spinning: { type: Boolean, default: !0 }
|
|
10
10
|
},
|
|
11
|
-
setup(
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
setup(r) {
|
|
12
|
+
const s = r, l = c(() => [
|
|
13
|
+
{
|
|
14
|
+
"sun-spinner-spinning": s.spinning
|
|
15
|
+
},
|
|
16
|
+
`sun-spinner-${s.size}`
|
|
17
|
+
]);
|
|
18
|
+
return (t, V) => (e(), n("view", {
|
|
19
|
+
class: w(["sun-spinner", l.value])
|
|
20
|
+
}, [
|
|
21
|
+
o("view", z, [
|
|
22
|
+
(e(), n(B, null, v(4, (i) => o("view", {
|
|
23
|
+
key: i,
|
|
24
|
+
class: "sun-spinner-dot-item"
|
|
25
|
+
})), 64))
|
|
26
|
+
]),
|
|
27
|
+
t.$slots.default ? (e(), n("view", E, [
|
|
28
|
+
C(t.$slots, "default")
|
|
29
|
+
])) : N("", !0)
|
|
30
|
+
], 2));
|
|
23
31
|
}
|
|
24
32
|
});
|
|
25
33
|
export {
|
|
26
|
-
|
|
34
|
+
y as default
|
|
27
35
|
};
|