@solar-taro/ui-sun 2.9.0 → 3.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.
Files changed (99) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/empty/index.d.ts +1 -0
  3. package/empty/index.scss +23 -0
  4. package/empty/index.vue.d.ts +18 -0
  5. package/index.d.ts +4 -0
  6. package/index.js +44 -36
  7. package/index10.js +29 -17
  8. package/index11.js +19 -25
  9. package/index12.js +81 -34
  10. package/index13.js +24 -75
  11. package/index14.js +34 -20
  12. package/index15.js +72 -46
  13. package/index16.js +19 -144
  14. package/index17.js +48 -28
  15. package/index18.js +144 -21
  16. package/index19.js +28 -42
  17. package/index20.js +77 -26
  18. package/index21.js +19 -10
  19. package/index22.js +41 -27
  20. package/index23.js +24 -18
  21. package/index24.js +14 -32
  22. package/index25.js +27 -117
  23. package/index26.js +17 -9
  24. package/index27.js +34 -11
  25. package/index28.js +123 -11
  26. package/index29.js +14 -8
  27. package/index30.js +10 -9
  28. package/index31.js +8 -7
  29. package/index32.js +11 -2
  30. package/index33.js +8 -2
  31. package/index34.js +10 -2
  32. package/index35.js +10 -2
  33. package/index36.js +1 -1
  34. package/index37.js +1 -1
  35. package/index38.js +2 -7
  36. package/index39.js +1 -1
  37. package/index4.js +1 -1
  38. package/index40.js +1 -1
  39. package/index41.js +1 -1
  40. package/index42.js +7 -2
  41. package/index43.js +1 -1
  42. package/index44.js +1 -1
  43. package/index45.js +1 -1
  44. package/index46.js +1 -1
  45. package/index47.js +1 -1
  46. package/index48.js +1 -1
  47. package/index49.js +1 -1
  48. package/index50.js +1 -1
  49. package/index51.js +1 -1
  50. package/index52.js +1 -1
  51. package/index53.js +1 -1
  52. package/index54.js +1 -1
  53. package/index55.js +2 -526
  54. package/index56.js +2 -3
  55. package/index57.js +2 -66
  56. package/index58.js +2 -12
  57. package/index59.js +2 -25
  58. package/index60.js +2 -14
  59. package/index61.js +1 -1
  60. package/index62.js +1 -1
  61. package/index63.js +2 -26
  62. package/index64.js +3 -2
  63. package/index65.js +525 -505
  64. package/index66.js +65 -78
  65. package/index67.js +12 -70
  66. package/index68.js +25 -69
  67. package/index69.js +14 -543
  68. package/index7.js +18 -17
  69. package/index70.js +26 -2
  70. package/index72.js +506 -2
  71. package/index73.js +78 -3
  72. package/index74.js +70 -2
  73. package/index75.js +69 -4
  74. package/index76.js +543 -2
  75. package/index79.js +2 -2
  76. package/index8.js +13 -14
  77. package/index80.js +3 -47
  78. package/index81.js +2 -82
  79. package/index82.js +4 -2
  80. package/index83.js +2 -2
  81. package/index84.js +2 -2
  82. package/index85.js +4 -0
  83. package/index86.js +50 -0
  84. package/index87.js +84 -0
  85. package/index88.js +4 -0
  86. package/index89.js +4 -0
  87. package/index9.js +16 -30
  88. package/index90.js +4 -0
  89. package/index91.js +4 -0
  90. package/item-divider/index.d.ts +1 -0
  91. package/item-divider/index.scss +9 -0
  92. package/item-divider/index.vue.d.ts +18 -0
  93. package/list/index.d.ts +1 -0
  94. package/list/index.vue.d.ts +90 -0
  95. package/package.json +1 -1
  96. package/stepper/index.d.ts +1 -0
  97. package/stepper/index.scss +61 -0
  98. package/stepper/index.vue.d.ts +19 -0
  99. package/toggle/index.vue.d.ts +2 -2
package/index15.js CHANGED
@@ -1,55 +1,81 @@
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 "./index56.js";
3
- const R = y, T = B, b = I, L = O, S = A, $ = { class: "sun-segment-inner" }, M = /* @__PURE__ */ x({
4
- __name: "segment",
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 "./index65.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
- modelValue: {}
9
+ value: {},
10
+ color: { default: "#000000" },
11
+ backgroundColor: { default: "transparent" },
12
+ level: { default: "M" }
7
13
  },
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 - _;
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);
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
33
25
  });
34
- function u() {
35
- return m.subTree.children[0].children[0].children.filter((e) => typeof e.type != "symbol");
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");
36
50
  }
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);
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]
42
59
  });
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));
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));
51
77
  }
52
78
  });
53
79
  export {
54
- M as default
80
+ N as default
55
81
  };
package/index16.js CHANGED
@@ -1,150 +1,25 @@
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 { attachLoading as le } from "@solar-vue/core";
9
- import { createSelectorQuery as pe, getWindowInfo as ue } from "@tarojs/taro";
10
- import { a as de } from "./index57.js";
11
- import { e as D } from "./index58.js";
12
- import me from "./index59.js";
13
- import ve from "./index60.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 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 "./index64.js";
3
+ const o = u, k = i, C = _, B = f, E = v, $ = /* @__PURE__ */ p({
4
+ __name: "segment-btn",
16
5
  props: {
17
- height: { default: 187.5 },
18
- width: { default: 375 },
19
- url: {},
20
- verifyUrl: {},
21
- verifyData: {}
6
+ value: {}
22
7
  },
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
- le(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 de.encrypt(s, a, { mode: me, padding: ve }).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
- pe().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 = ue().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
- ])
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)
144
- ])
145
- ]));
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
+ };
146
21
  }
147
22
  });
148
23
  export {
149
- Le as default
24
+ $ as default
150
25
  };
package/index17.js CHANGED
@@ -1,35 +1,55 @@
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",
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 "./index64.js";
3
+ const R = y, T = B, b = I, L = O, S = A, $ = { class: "sun-segment-inner" }, M = /* @__PURE__ */ x({
4
+ __name: "segment",
7
5
  props: {
8
- size: { default: "middle" },
9
- spinning: { type: Boolean, default: !0 }
6
+ modelValue: {}
10
7
  },
11
- setup(r) {
12
- const s = r, l = c(() => [
13
- {
14
- "sun-spinner-spinning": s.spinning
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 - _;
20
+ });
15
21
  },
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));
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));
31
51
  }
32
52
  });
33
53
  export {
34
- y as default
54
+ M as default
35
55
  };
package/index18.js CHANGED
@@ -1,27 +1,150 @@
1
- import { defineComponent as u, computed as n, renderSlot as c, mergeProps as r, openBlock as l, createElementBlock as d } from "vue";
2
- const a = c, m = r, p = l, k = d, _ = /* @__PURE__ */ u({
3
- __name: "sudoku",
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 { attachLoading as le } from "@solar-vue/core";
9
+ import { createSelectorQuery as pe, getWindowInfo as ue } from "@tarojs/taro";
10
+ import { a as de } from "./index66.js";
11
+ import { e as D } from "./index67.js";
12
+ import me from "./index68.js";
13
+ import ve from "./index69.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",
4
16
  props: {
5
- size: String,
6
- count: {
7
- type: Number,
8
- default: 9
9
- }
17
+ height: { default: 187.5 },
18
+ width: { default: 375 },
19
+ url: {},
20
+ verifyUrl: {},
21
+ verifyData: {}
10
22
  },
11
- setup(o) {
12
- const e = o, t = n(() => ({
13
- "sun-sudoku-sm": e.count === 1,
14
- "sun-sudoku-md": e.count === 2 || e.count === 4,
15
- "sun-sudoku-lg": e.count === 3 || e.count > 4
16
- }));
17
- return (s, i) => (p(), k("view", m(s.$attrs, {
18
- class: ["sun-sudoku", t.value],
19
- style: { "--sudoku-width": o.size }
20
- }), [
21
- a(s.$slots, "default")
22
- ], 16));
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
+ le(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 de.encrypt(s, a, { mode: me, padding: ve }).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
+ pe().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 = ue().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
+ ])
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)
144
+ ])
145
+ ]));
23
146
  }
24
147
  });
25
148
  export {
26
- _ as default
149
+ Le as default
27
150
  };
package/index19.js CHANGED
@@ -1,49 +1,35 @@
1
- import { defineComponent as u, computed as p, renderList as _, Fragment as f, openBlock as d, createElementBlock as g, renderSlot as v, unref as b, createBlock as k, createCommentVNode as h, toDisplayString as B, createTextVNode as y, normalizeClass as C, mergeProps as $ } from "vue";
2
- import w from "./index26.js";
3
- const N = _, S = f, r = d, n = g, T = v, V = b, L = k, z = h, D = B, E = y, F = C, P = $, j = ["scroll-left"], q = ["onTap"], I = /* @__PURE__ */ u({
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({
4
6
  __name: "index",
5
7
  props: {
6
- tabs: {},
7
- active: { default: 0 }
8
+ size: { default: "middle" },
9
+ spinning: { type: Boolean, default: !0 }
8
10
  },
9
- emits: ["update:active", "toggle"],
10
- setup(s, { emit: c }) {
11
- const a = c, l = s, i = p(() => l.active > 2 ? (l.active - 2) * 150 + "rpx" : 0);
12
- function m(e) {
13
- a("toggle", e), a("update:active", e);
14
- }
15
- return (e, x) => (r(), n("scroll-view", P(e.$attrs, {
16
- class: "sun-tabbar",
17
- "scroll-x": !0,
18
- "enable-flex": !0,
19
- enhanced: !0,
20
- "show-scrollbar": !1,
21
- "scroll-with-animation": !0,
22
- "scroll-left": i.value
23
- }), [
24
- (r(!0), n(S, null, N(e.tabs, (t, o) => (r(), n("view", {
25
- key: o,
26
- class: F(["sun-tabbar-item", {
27
- "sun-tabbar-item-active": e.active === o,
28
- "sun-tabbar-item-icon-only": !t.text
29
- }]),
30
- onTap: (A) => m(o)
31
- }, [
32
- T(e.$slots, "default", {
33
- tab: t,
34
- index: o
35
- }, () => [
36
- t.icon ? (r(), L(V(w), {
37
- key: 0,
38
- class: "sun-tabbar-item-icon",
39
- name: e.active === o ? t.icon[0] : t.icon[1] || `${t.icon[0]}-outline`
40
- }, null, 8, ["name"])) : z("", !0),
41
- E(" " + D(t.text), 1)
42
- ])
43
- ], 42, q))), 128))
44
- ], 16, j));
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));
45
31
  }
46
32
  });
47
33
  export {
48
- I as default
34
+ y as default
49
35
  };