@aurouscia/au-color-picker 2.1.0 → 2.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/README.md
CHANGED
|
@@ -125,6 +125,8 @@ export interface NamedPreset{
|
|
|
125
125
|
}
|
|
126
126
|
```
|
|
127
127
|
## 更新记录
|
|
128
|
+
### 2.2.0
|
|
129
|
+
新增 Tab 键输入框循环聚焦功能。面板打开时按 Tab 键可在输入框间循环切换,并自动选中已有值。
|
|
128
130
|
### 2.1.0
|
|
129
131
|
新增 `color-mode-storage-key` 和 `color-mode` 属性,支持通过 `localStorage` 持久化用户选择的输入模式(HEX / RGB / HSV)。默认不启用持久化,向后兼容。
|
|
130
132
|
### 2.0.0
|
package/dist/au-color-picker.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.acpRingBody[data-v-a0477470]{position:relative}canvas[data-v-a0477470]{position:absolute;inset:0;width:100%;height:100%}[data-v-
|
|
1
|
+
.acpRingBody[data-v-a0477470]{position:relative}canvas[data-v-a0477470]{position:absolute;inset:0;width:100%;height:100%}[data-v-0a352b8c]{margin:0;padding:0}.acpSep[data-v-0a352b8c]{height:2px;border-radius:100px;flex-grow:0;flex-shrink:0;background-color:#ddd}.acpPresetBody[data-v-0a352b8c]{width:25px;height:25px;border-radius:1000px;cursor:pointer}.acpDoneBtn[data-v-0a352b8c]{display:flex;justify-content:center;align-items:center;margin:8px;-webkit-user-select:none;user-select:none}.acpDoneBtn button[data-v-0a352b8c]{background:none;border:none;font-weight:700;color:gray;font-size:16px;cursor:pointer}.acpDoneBtn button[data-v-0a352b8c]:hover{color:#000}.acpEntry[data-v-0a352b8c]{width:30px;height:30px;cursor:pointer;border-radius:5px;box-shadow:0 0 5px #000;background-color:#fff}.acpPanel[data-v-0a352b8c]{border-radius:5px;box-shadow:0 0 5px #000;background-color:#fff;margin-top:3px;position:absolute}.acp[data-v-0a352b8c]{position:relative;width:fit-content}.acp label[data-v-0a352b8c]{-webkit-user-select:none;user-select:none;white-space:nowrap;cursor:pointer}.acp input[type=radio][data-v-0a352b8c]{cursor:pointer}.acpPackageName[data-v-0a352b8c]{position:absolute;left:2px;bottom:3px;font-size:8px;color:#ccc;text-align:right;cursor:pointer;-webkit-user-select:none;user-select:none}.acpParams[data-v-0a352b8c]{display:flex;justify-content:space-between;align-items:center;padding:5px}.acpParams select[data-v-0a352b8c],.acpParams input[data-v-0a352b8c]{margin:0;padding:2px;display:block;font-size:16px;box-sizing:border-box;height:24px;line-height:24px}.acpParams select[data-v-0a352b8c]{-webkit-user-select:none;user-select:none}.acpParams input[data-v-0a352b8c]{text-align:center}.acpParams .acpSingleInput input[data-v-0a352b8c]{width:120px}.acpParams .acpTripleInputs[data-v-0a352b8c]{display:flex;justify-content:space-around}.acpParams .acpTripleInputs input[data-v-0a352b8c]{width:40px}[data-v-9fbc3723]{margin:0;padding:0}.acpSep[data-v-9fbc3723]{height:2px;border-radius:100px;flex-grow:0;flex-shrink:0;background-color:#ddd}.acpPresetBody[data-v-9fbc3723]{width:25px;height:25px;border-radius:1000px;cursor:pointer}.acpDoneBtn[data-v-9fbc3723]{display:flex;justify-content:center;align-items:center;margin:8px;-webkit-user-select:none;user-select:none}.acpDoneBtn button[data-v-9fbc3723]{background:none;border:none;font-weight:700;color:gray;font-size:16px;cursor:pointer}.acpDoneBtn button[data-v-9fbc3723]:hover{color:#000}.acpEntry[data-v-9fbc3723]{width:30px;height:30px;cursor:pointer;border-radius:5px;box-shadow:0 0 5px #000;background-color:#fff}.acpPanel[data-v-9fbc3723]{border-radius:5px;box-shadow:0 0 5px #000;background-color:#fff;margin-top:3px;position:absolute}.acp[data-v-9fbc3723]{position:relative;width:fit-content}.acp label[data-v-9fbc3723]{-webkit-user-select:none;user-select:none;white-space:nowrap;cursor:pointer}.acp input[type=radio][data-v-9fbc3723]{cursor:pointer}.acpNamedPresets[data-v-9fbc3723]{margin:5px;display:flex;flex-direction:column;gap:4px}.acpNamedPresets[data-v-9fbc3723]>*{display:flex;justify-content:flex-start;align-items:center;gap:5px}.acpNamedPresets>* .acpPresetName[data-v-9fbc3723]{color:#666}.acpNamedPresets>* .acpPresetName[data-v-9fbc3723]:hover{color:#000}
|
|
@@ -1,204 +1,204 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
function Be(
|
|
4
|
-
const
|
|
5
|
-
return
|
|
1
|
+
import { defineComponent as ae, ref as S, onMounted as ke, onUnmounted as pe, openBlock as R, createElementBlock as b, isRef as Pe, normalizeStyle as X, createElementVNode as f, computed as J, watch as A, onBeforeMount as ge, useTemplateRef as q, nextTick as Se, unref as m, normalizeClass as Ie, createVNode as ye, withDirectives as oe, vModelSelect as Ce, createCommentVNode as le, vModelRadio as ue, Fragment as we, renderList as Re, toDisplayString as be } from "vue";
|
|
2
|
+
import V from "color-convert";
|
|
3
|
+
function Be(s, h) {
|
|
4
|
+
const v = s.x - h.x, o = s.y - h.y;
|
|
5
|
+
return v ** 2 + o ** 2;
|
|
6
6
|
}
|
|
7
|
-
function
|
|
8
|
-
const
|
|
9
|
-
return Math.atan2(
|
|
7
|
+
function Ve(s, h) {
|
|
8
|
+
const v = s.x - h.x, o = s.y - h.y;
|
|
9
|
+
return Math.atan2(o, v);
|
|
10
10
|
}
|
|
11
|
-
const
|
|
11
|
+
const w = 400, L = 400, ne = 200, Me = 200, ie = 190, ce = 150, W = 200, fe = 16, de = 3, Te = /* @__PURE__ */ ae({
|
|
12
12
|
__name: "AuColorPickerRing",
|
|
13
13
|
props: {
|
|
14
14
|
initialHex: {}
|
|
15
15
|
},
|
|
16
16
|
emits: ["changed"],
|
|
17
|
-
setup(
|
|
18
|
-
const
|
|
19
|
-
let
|
|
20
|
-
const
|
|
17
|
+
setup(s, { expose: h, emit: v }) {
|
|
18
|
+
const o = S(), p = S();
|
|
19
|
+
let i, c;
|
|
20
|
+
const x = { x: 199, y: 199 }, M = (ie + ce) / 2, T = ie ** 2, K = ce ** 2, I = (w - W) / 2, U = I + W, k = S(0), y = S(100), P = S(100), C = s;
|
|
21
21
|
let a;
|
|
22
|
-
function
|
|
23
|
-
createImageBitmap(a).then((
|
|
24
|
-
|
|
22
|
+
function r() {
|
|
23
|
+
createImageBitmap(a).then((n) => {
|
|
24
|
+
i.drawImage(n, 0, 0);
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
function
|
|
28
|
-
const
|
|
29
|
-
if (!
|
|
27
|
+
function d() {
|
|
28
|
+
const n = o.value?.getContext("2d"), e = p.value?.getContext("2d");
|
|
29
|
+
if (!n || !e)
|
|
30
30
|
throw Error("canvas context getting error");
|
|
31
|
-
if (
|
|
32
|
-
const
|
|
33
|
-
|
|
31
|
+
if (C.initialHex) {
|
|
32
|
+
const t = V.hex.hsv(C.initialHex);
|
|
33
|
+
k.value = t[0], y.value = t[1], P.value = t[2];
|
|
34
34
|
}
|
|
35
|
-
|
|
35
|
+
i = n, c = e, a = i.createImageData(w, L), N(), D(), Y(), r();
|
|
36
36
|
}
|
|
37
|
-
function
|
|
38
|
-
for (let
|
|
39
|
-
for (let
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
42
|
-
const
|
|
43
|
-
a.data[
|
|
37
|
+
function N() {
|
|
38
|
+
for (let n = 0; n < w; n++)
|
|
39
|
+
for (let e = 0; e < L; e++) {
|
|
40
|
+
const t = { x: n, y: e };
|
|
41
|
+
if (Q(t)) {
|
|
42
|
+
const u = t.y * w * 4 + t.x * 4, l = _(t), g = V.hsv.rgb([l, 100, 100]);
|
|
43
|
+
a.data[u] = g[0], a.data[u + 1] = g[1], a.data[u + 2] = g[2], a.data[u + 3] = 255;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
function
|
|
48
|
-
return 360 * ((
|
|
47
|
+
function _(n) {
|
|
48
|
+
return 360 * ((Ve(n, x) + Math.PI) / (2 * Math.PI));
|
|
49
49
|
}
|
|
50
|
-
function
|
|
51
|
-
const
|
|
52
|
-
return
|
|
50
|
+
function Q(n) {
|
|
51
|
+
const e = Be(x, n);
|
|
52
|
+
return e > K && e < T;
|
|
53
53
|
}
|
|
54
|
-
function
|
|
55
|
-
for (let
|
|
56
|
-
for (let
|
|
57
|
-
const
|
|
58
|
-
if (
|
|
59
|
-
const
|
|
60
|
-
a.data[
|
|
54
|
+
function D() {
|
|
55
|
+
for (let n = 0; n < w; n++)
|
|
56
|
+
for (let e = 0; e < L; e++) {
|
|
57
|
+
const t = { x: n, y: e };
|
|
58
|
+
if (z(t)) {
|
|
59
|
+
const u = t.y * w * 4 + t.x * 4, { s: l, v: g } = Z(t), F = V.hsv.rgb([k.value, l, g]);
|
|
60
|
+
a.data[u] = F[0], a.data[u + 1] = F[1], a.data[u + 2] = F[2], a.data[u + 3] = 255;
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
function
|
|
65
|
-
const
|
|
66
|
-
let
|
|
67
|
-
return
|
|
64
|
+
function Z(n) {
|
|
65
|
+
const e = n.x - I, t = n.y - I;
|
|
66
|
+
let u = e / W, l = 1 - t / W;
|
|
67
|
+
return u > 1 ? u = 1 : u < 0 && (u = 0), l > 1 ? l = 1 : l < 0 && (l = 0), { s: 100 * u, v: 100 * l };
|
|
68
68
|
}
|
|
69
|
-
function
|
|
70
|
-
return !(
|
|
69
|
+
function z(n) {
|
|
70
|
+
return !(n.x < I || n.x > U || n.y < I || n.y > U);
|
|
71
71
|
}
|
|
72
|
-
let
|
|
73
|
-
function
|
|
74
|
-
if (
|
|
72
|
+
let O = !1, B = "none", H = S(!1);
|
|
73
|
+
function $(n, e) {
|
|
74
|
+
if (O || e && !H.value)
|
|
75
75
|
return;
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
|
|
76
|
+
O = !0;
|
|
77
|
+
const t = ee(n);
|
|
78
|
+
if (B === "none" && (z(t) ? B = "square" : Q(t) && (B = "ring")), B === "ring" && (n.preventDefault(), k.value = _(t), D(), r()), B === "square") {
|
|
79
|
+
n.preventDefault();
|
|
80
|
+
const u = Z(t);
|
|
81
|
+
y.value = u.s, P.value = u.v;
|
|
82
82
|
}
|
|
83
|
-
|
|
83
|
+
B !== "none" && Y(!0), O = !1;
|
|
84
84
|
}
|
|
85
|
-
function
|
|
86
|
-
|
|
85
|
+
function E() {
|
|
86
|
+
B = "none", H.value = !1;
|
|
87
87
|
}
|
|
88
|
-
function
|
|
89
|
-
let
|
|
90
|
-
if (!
|
|
88
|
+
function ee(n) {
|
|
89
|
+
let e, t;
|
|
90
|
+
if (!o.value)
|
|
91
91
|
return { x: -1, y: -1 };
|
|
92
|
-
if ("touches" in
|
|
93
|
-
const
|
|
94
|
-
|
|
92
|
+
if ("touches" in n) {
|
|
93
|
+
const u = o.value.getBoundingClientRect();
|
|
94
|
+
e = n.touches[0].clientX - u.left, t = n.touches[0].clientY - u.top;
|
|
95
95
|
} else
|
|
96
|
-
|
|
97
|
-
return
|
|
96
|
+
e = n.offsetX, t = n.offsetY;
|
|
97
|
+
return e = e * w / ne, t = t * w / ne, { x: e, y: t };
|
|
98
98
|
}
|
|
99
|
-
function
|
|
100
|
-
if (
|
|
101
|
-
const
|
|
102
|
-
|
|
99
|
+
function Y(n) {
|
|
100
|
+
if (n) {
|
|
101
|
+
const xe = V.hsv.hex([k.value, y.value, P.value]);
|
|
102
|
+
G("changed", xe);
|
|
103
103
|
}
|
|
104
|
-
const
|
|
105
|
-
c.clearRect(0, 0,
|
|
106
|
-
const
|
|
107
|
-
c.strokeStyle =
|
|
104
|
+
const e = (k.value / 360 * 2 + 1) * Math.PI, t = Math.cos(e) * M + w / 2, u = Math.sin(e) * M + L / 2, l = y.value / 100 * W + I, g = (1 - P.value / 100) * W + I;
|
|
105
|
+
c.clearRect(0, 0, w, L), c.lineWidth = 4, c.strokeStyle = "black", c.fillStyle = "black", c.beginPath(), c.arc(t, u, fe - 2, 0, 2 * Math.PI), c.stroke(), c.beginPath(), c.arc(t, u, de, 0, 2 * Math.PI), c.fill();
|
|
106
|
+
const F = P.value > 50 ? "black" : "#ddd";
|
|
107
|
+
c.strokeStyle = F, c.fillStyle = F, c.beginPath(), c.arc(l, g, fe - 2, 0, 2 * Math.PI), c.stroke(), c.beginPath(), c.arc(l, g, de, 0, 2 * Math.PI), c.fill();
|
|
108
108
|
}
|
|
109
|
-
function
|
|
110
|
-
const
|
|
111
|
-
|
|
109
|
+
function te(n) {
|
|
110
|
+
const e = V.hex.hsv(n);
|
|
111
|
+
k.value = e[0], y.value = e[1], P.value = e[2], D(), r(), Y();
|
|
112
112
|
}
|
|
113
|
-
const
|
|
114
|
-
return h({ enforceTo:
|
|
115
|
-
|
|
116
|
-
}),
|
|
117
|
-
window.removeEventListener("touchend",
|
|
118
|
-
}), (
|
|
113
|
+
const G = v;
|
|
114
|
+
return h({ enforceTo: te }), ke(() => {
|
|
115
|
+
d(), window.addEventListener("touchend", E), window.addEventListener("mouseup", E);
|
|
116
|
+
}), pe(() => {
|
|
117
|
+
window.removeEventListener("touchend", E), window.removeEventListener("mouseup", E);
|
|
118
|
+
}), (n, e) => (R(), b("div", {
|
|
119
119
|
class: "acpRingBody",
|
|
120
|
-
style:
|
|
121
|
-
onTouchstart:
|
|
122
|
-
onTouchmove:
|
|
123
|
-
onTouchend:
|
|
124
|
-
onMousemove:
|
|
125
|
-
onMousedown:
|
|
126
|
-
|
|
120
|
+
style: X({ width: ne + "px", height: Me + "px" }),
|
|
121
|
+
onTouchstart: $,
|
|
122
|
+
onTouchmove: $,
|
|
123
|
+
onTouchend: E,
|
|
124
|
+
onMousemove: e[0] || (e[0] = (t) => $(t, !0)),
|
|
125
|
+
onMousedown: e[1] || (e[1] = (t) => {
|
|
126
|
+
$(t), Pe(H) ? H.value = !0 : H = !0;
|
|
127
127
|
})
|
|
128
128
|
}, [
|
|
129
|
-
|
|
130
|
-
width:
|
|
131
|
-
height:
|
|
129
|
+
f("canvas", {
|
|
130
|
+
width: w,
|
|
131
|
+
height: L,
|
|
132
132
|
ref_key: "cvs",
|
|
133
|
-
ref:
|
|
133
|
+
ref: o
|
|
134
134
|
}, null, 512),
|
|
135
|
-
|
|
136
|
-
width:
|
|
137
|
-
height:
|
|
135
|
+
f("canvas", {
|
|
136
|
+
width: w,
|
|
137
|
+
height: L,
|
|
138
138
|
ref_key: "cursorCvs",
|
|
139
|
-
ref:
|
|
139
|
+
ref: p
|
|
140
140
|
}, null, 512)
|
|
141
141
|
], 36));
|
|
142
142
|
}
|
|
143
|
-
}),
|
|
144
|
-
const
|
|
145
|
-
for (const [
|
|
146
|
-
|
|
147
|
-
return
|
|
148
|
-
},
|
|
149
|
-
function
|
|
150
|
-
return /^#?([0-9A-F]{3}|[0-9A-F]{6})$/i.test(
|
|
143
|
+
}), re = (s, h) => {
|
|
144
|
+
const v = s.__vccOpts || s;
|
|
145
|
+
for (const [o, p] of h)
|
|
146
|
+
v[o] = p;
|
|
147
|
+
return v;
|
|
148
|
+
}, Ne = /* @__PURE__ */ re(Te, [["__scopeId", "data-v-a0477470"]]);
|
|
149
|
+
function se(s) {
|
|
150
|
+
return /^#?([0-9A-F]{3}|[0-9A-F]{6})$/i.test(s);
|
|
151
151
|
}
|
|
152
|
-
function
|
|
153
|
-
const
|
|
154
|
-
let
|
|
155
|
-
return
|
|
152
|
+
function me(s, h) {
|
|
153
|
+
const v = S(!1), o = J(() => {
|
|
154
|
+
let x = {};
|
|
155
|
+
return v.value || (x.boxShadow = "none"), s.entryStyles && Object.assign(x, s.entryStyles), v.value && (x.transition = "0s", Object.assign(x, s.entryActiveStyles)), x.backgroundColor = h.value, x;
|
|
156
156
|
});
|
|
157
|
-
function
|
|
158
|
-
|
|
157
|
+
function p() {
|
|
158
|
+
v.value = !1;
|
|
159
159
|
}
|
|
160
|
-
let
|
|
160
|
+
let i = 0;
|
|
161
161
|
function c() {
|
|
162
|
-
if (
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
},
|
|
162
|
+
if (s.entryRespondDelay && (window.clearTimeout(i), !v.value)) {
|
|
163
|
+
i = window.setTimeout(() => {
|
|
164
|
+
v.value = !0;
|
|
165
|
+
}, s.entryRespondDelay);
|
|
166
166
|
return;
|
|
167
167
|
}
|
|
168
|
-
|
|
168
|
+
v.value = !v.value;
|
|
169
169
|
}
|
|
170
|
-
return { panelShow:
|
|
170
|
+
return { panelShow: v, closePanel: p, togglePanel: c, entryStylesActual: o };
|
|
171
171
|
}
|
|
172
|
-
function
|
|
172
|
+
function ve() {
|
|
173
173
|
window.alert("https://www.npmjs.com/package/@aurouscia/au-color-picker");
|
|
174
174
|
}
|
|
175
|
-
function
|
|
176
|
-
return
|
|
175
|
+
function j(s) {
|
|
176
|
+
return s.startsWith("#") ? s.toUpperCase() : "#" + s.toUpperCase();
|
|
177
177
|
}
|
|
178
|
-
function
|
|
178
|
+
function he(s) {
|
|
179
179
|
return {
|
|
180
|
-
panelStyles:
|
|
181
|
-
const
|
|
182
|
-
let
|
|
183
|
-
const
|
|
184
|
-
return typeof
|
|
185
|
-
zIndex: (
|
|
186
|
-
left:
|
|
187
|
-
right:
|
|
180
|
+
panelStyles: J(() => {
|
|
181
|
+
const v = s.panelBaseZIndex;
|
|
182
|
+
let o, p;
|
|
183
|
+
const i = s.pos;
|
|
184
|
+
return typeof i == "number" ? o = i + "px" : i == "left" ? p = "0px" : o = "0px", {
|
|
185
|
+
zIndex: (v || 0) + 100,
|
|
186
|
+
left: o,
|
|
187
|
+
right: p
|
|
188
188
|
};
|
|
189
189
|
})
|
|
190
190
|
};
|
|
191
191
|
}
|
|
192
|
-
const
|
|
192
|
+
const De = { class: "acp" }, He = { class: "acpRing" }, Ee = { class: "acpParams" }, Ae = {
|
|
193
193
|
key: 0,
|
|
194
194
|
class: "acpSingleInput"
|
|
195
|
-
},
|
|
195
|
+
}, _e = ["value"], $e = {
|
|
196
196
|
key: 1,
|
|
197
197
|
class: "acpTripleInputs"
|
|
198
|
-
},
|
|
198
|
+
}, qe = ["value"], Le = ["value"], Ke = ["value"], Ue = {
|
|
199
199
|
key: 2,
|
|
200
200
|
class: "acpTripleInputs"
|
|
201
|
-
},
|
|
201
|
+
}, ze = ["value"], Oe = ["value"], Fe = ["value"], We = { class: "acpDoneBtn" }, je = /* @__PURE__ */ ae({
|
|
202
202
|
__name: "AuColorPicker",
|
|
203
203
|
props: {
|
|
204
204
|
modelValue: {},
|
|
@@ -215,184 +215,216 @@ const Re = { class: "acp" }, Ne = { class: "acpRing" }, De = { class: "acpParams
|
|
|
215
215
|
colorMode: {}
|
|
216
216
|
},
|
|
217
217
|
emits: ["done", "update:modelValue"],
|
|
218
|
-
setup(
|
|
219
|
-
const
|
|
220
|
-
function
|
|
221
|
-
return
|
|
218
|
+
setup(s, { expose: h, emit: v }) {
|
|
219
|
+
const o = s, p = S(), i = S("#ff0000"), { panelShow: c, closePanel: x, togglePanel: M, entryStylesActual: T } = me(o, i), { panelStyles: K } = he(o);
|
|
220
|
+
function I() {
|
|
221
|
+
return o.colorModeStorageKey === !1 || o.colorModeStorageKey === "" ? !1 : o.colorModeStorageKey || !1;
|
|
222
222
|
}
|
|
223
|
-
function
|
|
224
|
-
const
|
|
225
|
-
if (!
|
|
223
|
+
function U() {
|
|
224
|
+
const n = I();
|
|
225
|
+
if (!n) return null;
|
|
226
226
|
try {
|
|
227
|
-
const e = localStorage.getItem(
|
|
227
|
+
const e = localStorage.getItem(n);
|
|
228
228
|
if (e === "rgb" || e === "hsv" || e === "hex")
|
|
229
229
|
return e;
|
|
230
230
|
} catch {
|
|
231
231
|
}
|
|
232
232
|
return null;
|
|
233
233
|
}
|
|
234
|
-
function
|
|
235
|
-
const e =
|
|
234
|
+
function k(n) {
|
|
235
|
+
const e = I();
|
|
236
236
|
if (e)
|
|
237
237
|
try {
|
|
238
|
-
localStorage.setItem(e,
|
|
238
|
+
localStorage.setItem(e, n);
|
|
239
239
|
} catch {
|
|
240
240
|
}
|
|
241
241
|
}
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
function
|
|
245
|
-
|
|
242
|
+
const y = S(U() || o.colorMode || "hex");
|
|
243
|
+
A(y, k);
|
|
244
|
+
function P(n) {
|
|
245
|
+
i.value = j(n), _();
|
|
246
246
|
}
|
|
247
|
-
const
|
|
248
|
-
function
|
|
249
|
-
const e =
|
|
247
|
+
const C = J(() => V.hex.rgb(i.value)), a = J(() => V.hex.hsv(i.value));
|
|
248
|
+
function r(n) {
|
|
249
|
+
const e = n.target;
|
|
250
250
|
if ("value" in e) {
|
|
251
|
-
const
|
|
252
|
-
if (
|
|
253
|
-
|
|
251
|
+
const t = e.value;
|
|
252
|
+
if (t && se(t)) {
|
|
253
|
+
i.value = j(t), p.value?.enforceTo(i.value), _();
|
|
254
254
|
return;
|
|
255
255
|
}
|
|
256
|
-
e.value =
|
|
256
|
+
e.value = i.value;
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
|
-
function
|
|
260
|
-
const
|
|
261
|
-
if ("value" in
|
|
262
|
-
const
|
|
263
|
-
if (
|
|
264
|
-
let
|
|
265
|
-
if (isNaN(
|
|
266
|
-
|
|
259
|
+
function d(n, e) {
|
|
260
|
+
const t = n.target;
|
|
261
|
+
if ("value" in t) {
|
|
262
|
+
const u = t.value;
|
|
263
|
+
if (u) {
|
|
264
|
+
let l = parseInt(u);
|
|
265
|
+
if (isNaN(l))
|
|
266
|
+
t.value = "0";
|
|
267
267
|
else {
|
|
268
|
-
|
|
269
|
-
const
|
|
270
|
-
e == "r" ?
|
|
268
|
+
l > 255 ? l = 255 : l < 0 && (l = 0);
|
|
269
|
+
const g = [...C.value];
|
|
270
|
+
e == "r" ? g[0] = l : e == "g" ? g[1] = l : g[2] = l, i.value = j(V.rgb.hex(g)), p.value?.enforceTo(i.value), t.value = l.toString(), _();
|
|
271
271
|
return;
|
|
272
272
|
}
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
|
-
function
|
|
277
|
-
const
|
|
278
|
-
if ("value" in
|
|
279
|
-
const
|
|
280
|
-
if (
|
|
281
|
-
let
|
|
282
|
-
if (isNaN(
|
|
283
|
-
|
|
276
|
+
function N(n, e) {
|
|
277
|
+
const t = n.target;
|
|
278
|
+
if ("value" in t) {
|
|
279
|
+
const u = t.value;
|
|
280
|
+
if (u) {
|
|
281
|
+
let l = parseInt(u);
|
|
282
|
+
if (isNaN(l))
|
|
283
|
+
t.value = "0";
|
|
284
284
|
else {
|
|
285
|
-
e === "h" ?
|
|
286
|
-
const
|
|
287
|
-
e == "h" ?
|
|
285
|
+
e === "h" ? l > 359 && (l = 359) : l > 100 && (l = 100), l < 0 && (l = 0);
|
|
286
|
+
const g = [...a.value];
|
|
287
|
+
e == "h" ? g[0] = l : e == "s" ? g[1] = l : g[2] = l, i.value = j(V.hsv.hex(g)), t.value = l.toString(), p.value?.enforceTo(i.value), _();
|
|
288
288
|
return;
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
|
-
function
|
|
294
|
-
|
|
293
|
+
function _() {
|
|
294
|
+
Z("update:modelValue", i.value);
|
|
295
295
|
}
|
|
296
|
-
function
|
|
297
|
-
return
|
|
296
|
+
function Q() {
|
|
297
|
+
return i.value;
|
|
298
298
|
}
|
|
299
|
-
function
|
|
300
|
-
if (
|
|
301
|
-
const e =
|
|
302
|
-
|
|
299
|
+
function D(n) {
|
|
300
|
+
if (se(n)) {
|
|
301
|
+
const e = j(n);
|
|
302
|
+
i.value = e, p.value?.enforceTo(e);
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
|
-
|
|
306
|
-
|
|
305
|
+
ge(() => {
|
|
306
|
+
o.modelValue ? D(o.modelValue) : o.initial && D(o.initial);
|
|
307
|
+
});
|
|
308
|
+
const Z = v;
|
|
309
|
+
h({ closePanel: x, getCurrentHex: Q, enforceTo: D }), A(() => o.modelValue, (n) => {
|
|
310
|
+
n && n !== i.value && D(n);
|
|
311
|
+
}), A(c, (n) => {
|
|
312
|
+
n === !1 && Z("done");
|
|
307
313
|
});
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
314
|
+
const z = q("hexInputRef"), O = q("rgbInputRef0"), B = q("rgbInputRef1"), H = q("rgbInputRef2"), $ = q("hsvInputRef0"), E = q("hsvInputRef1"), ee = q("hsvInputRef2");
|
|
315
|
+
function Y() {
|
|
316
|
+
return y.value === "hex" ? z.value ? [z.value] : [] : y.value === "rgb" ? [O.value, B.value, H.value].filter(Boolean) : [$.value, E.value, ee.value].filter(Boolean);
|
|
317
|
+
}
|
|
318
|
+
function te() {
|
|
319
|
+
const n = Y();
|
|
320
|
+
if (n.length === 0) return;
|
|
321
|
+
const e = document.activeElement, t = n.findIndex((g) => g === e), u = t >= 0 ? (t + 1) % n.length : 0, l = n[u];
|
|
322
|
+
l && (l.focus(), l.select());
|
|
323
|
+
}
|
|
324
|
+
function G(n) {
|
|
325
|
+
n.key === "Tab" && (n.preventDefault(), te());
|
|
326
|
+
}
|
|
327
|
+
return A(c, async (n) => {
|
|
328
|
+
n === !0 ? (await Se(), window.addEventListener("keydown", G)) : window.removeEventListener("keydown", G);
|
|
329
|
+
}), pe(() => {
|
|
330
|
+
window.removeEventListener("keydown", G);
|
|
331
|
+
}), (n, e) => (R(), b("div", De, [
|
|
332
|
+
f("div", {
|
|
333
|
+
class: Ie(s.entryClassName || "acpEntry"),
|
|
334
|
+
style: X(m(T)),
|
|
317
335
|
onClick: e[0] || (e[0] = //@ts-ignore
|
|
318
|
-
(...
|
|
336
|
+
(...t) => m(M) && m(M)(...t))
|
|
319
337
|
}, null, 6),
|
|
320
|
-
|
|
338
|
+
m(c) ? (R(), b("div", {
|
|
321
339
|
key: 0,
|
|
322
340
|
class: "acpPanel",
|
|
323
|
-
style:
|
|
324
|
-
onClick: e[10] || (e[10] = (
|
|
341
|
+
style: X(m(K)),
|
|
342
|
+
onClick: e[10] || (e[10] = (t) => s.panelClickStopPropagation && t.stopPropagation())
|
|
325
343
|
}, [
|
|
326
|
-
|
|
327
|
-
|
|
344
|
+
f("div", He, [
|
|
345
|
+
ye(Ne, {
|
|
328
346
|
ref_key: "ring",
|
|
329
|
-
ref:
|
|
330
|
-
"initial-hex":
|
|
331
|
-
onChanged:
|
|
332
|
-
"show-package-name":
|
|
347
|
+
ref: p,
|
|
348
|
+
"initial-hex": i.value,
|
|
349
|
+
onChanged: P,
|
|
350
|
+
"show-package-name": s.showPackageName
|
|
333
351
|
}, null, 8, ["initial-hex", "show-package-name"])
|
|
334
352
|
]),
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
"onUpdate:modelValue": e[1] || (e[1] = (
|
|
353
|
+
f("div", Ee, [
|
|
354
|
+
oe(f("select", {
|
|
355
|
+
"onUpdate:modelValue": e[1] || (e[1] = (t) => y.value = t)
|
|
338
356
|
}, [...e[11] || (e[11] = [
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
357
|
+
f("option", { value: "hex" }, "HEX", -1),
|
|
358
|
+
f("option", { value: "rgb" }, "RGB", -1),
|
|
359
|
+
f("option", { value: "hsv" }, "HSV", -1)
|
|
342
360
|
])], 512), [
|
|
343
|
-
[
|
|
361
|
+
[Ce, y.value]
|
|
344
362
|
]),
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
363
|
+
y.value == "hex" ? (R(), b("div", Ae, [
|
|
364
|
+
f("input", {
|
|
365
|
+
ref_key: "hexInputRef",
|
|
366
|
+
ref: z,
|
|
367
|
+
value: i.value,
|
|
368
|
+
onBlur: r,
|
|
349
369
|
spellcheck: "false",
|
|
350
370
|
maxlength: "7"
|
|
351
|
-
}, null, 40,
|
|
352
|
-
])) :
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
value: b.value[1],
|
|
359
|
-
onBlur: e[3] || (e[3] = (n) => v(n, "g"))
|
|
371
|
+
}, null, 40, _e)
|
|
372
|
+
])) : y.value == "rgb" ? (R(), b("div", $e, [
|
|
373
|
+
f("input", {
|
|
374
|
+
ref_key: "rgbInputRef0",
|
|
375
|
+
ref: O,
|
|
376
|
+
value: C.value[0],
|
|
377
|
+
onBlur: e[2] || (e[2] = (t) => d(t, "r"))
|
|
360
378
|
}, null, 40, qe),
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
d("input", {
|
|
367
|
-
value: a.value[0],
|
|
368
|
-
onBlur: e[5] || (e[5] = (n) => E(n, "h"))
|
|
379
|
+
f("input", {
|
|
380
|
+
ref_key: "rgbInputRef1",
|
|
381
|
+
ref: B,
|
|
382
|
+
value: C.value[1],
|
|
383
|
+
onBlur: e[3] || (e[3] = (t) => d(t, "g"))
|
|
369
384
|
}, null, 40, Le),
|
|
370
|
-
|
|
385
|
+
f("input", {
|
|
386
|
+
ref_key: "rgbInputRef2",
|
|
387
|
+
ref: H,
|
|
388
|
+
value: C.value[2],
|
|
389
|
+
onBlur: e[4] || (e[4] = (t) => d(t, "b"))
|
|
390
|
+
}, null, 40, Ke)
|
|
391
|
+
])) : (R(), b("div", Ue, [
|
|
392
|
+
f("input", {
|
|
393
|
+
ref_key: "hsvInputRef0",
|
|
394
|
+
ref: $,
|
|
395
|
+
value: a.value[0],
|
|
396
|
+
onBlur: e[5] || (e[5] = (t) => N(t, "h"))
|
|
397
|
+
}, null, 40, ze),
|
|
398
|
+
f("input", {
|
|
399
|
+
ref_key: "hsvInputRef1",
|
|
400
|
+
ref: E,
|
|
371
401
|
value: a.value[1],
|
|
372
|
-
onBlur: e[6] || (e[6] = (
|
|
373
|
-
}, null, 40,
|
|
374
|
-
|
|
402
|
+
onBlur: e[6] || (e[6] = (t) => N(t, "s"))
|
|
403
|
+
}, null, 40, Oe),
|
|
404
|
+
f("input", {
|
|
405
|
+
ref_key: "hsvInputRef2",
|
|
406
|
+
ref: ee,
|
|
375
407
|
value: a.value[2],
|
|
376
|
-
onBlur: e[7] || (e[7] = (
|
|
377
|
-
}, null, 40,
|
|
408
|
+
onBlur: e[7] || (e[7] = (t) => N(t, "v"))
|
|
409
|
+
}, null, 40, Fe)
|
|
378
410
|
]))
|
|
379
411
|
]),
|
|
380
|
-
|
|
381
|
-
|
|
412
|
+
f("div", We, [
|
|
413
|
+
f("button", {
|
|
382
414
|
onClick: e[8] || (e[8] = //@ts-ignore
|
|
383
|
-
(...
|
|
415
|
+
(...t) => m(x) && m(x)(...t))
|
|
384
416
|
}, "OK")
|
|
385
417
|
]),
|
|
386
|
-
|
|
418
|
+
s.showPackageName ? (R(), b("div", {
|
|
387
419
|
key: 0,
|
|
388
420
|
class: "acpPackageName",
|
|
389
421
|
onClick: e[9] || (e[9] = //@ts-ignore
|
|
390
|
-
(...
|
|
391
|
-
}, " au-color-picker ")) :
|
|
392
|
-
], 4)) :
|
|
422
|
+
(...t) => m(ve) && m(ve)(...t))
|
|
423
|
+
}, " au-color-picker ")) : le("", !0)
|
|
424
|
+
], 4)) : le("", !0)
|
|
393
425
|
]));
|
|
394
426
|
}
|
|
395
|
-
}),
|
|
427
|
+
}), Xe = /* @__PURE__ */ re(je, [["__scopeId", "data-v-0a352b8c"]]), Ze = { class: "acp" }, Ye = { class: "acpNamedPresets" }, Ge = ["for", "onClick"], Je = ["id", "value"], Qe = { class: "acpPresetName" }, et = { class: "acpDoneBtn" }, tt = /* @__PURE__ */ ae({
|
|
396
428
|
__name: "AuColorPickerPresetsNested",
|
|
397
429
|
props: {
|
|
398
430
|
modelValueSelectedPreset: {},
|
|
@@ -413,111 +445,111 @@ const Re = { class: "acp" }, Ne = { class: "acpRing" }, De = { class: "acpParams
|
|
|
413
445
|
colorMode: {}
|
|
414
446
|
},
|
|
415
447
|
emits: ["done", "update:modelValue", "update:modelValueSelectedPreset"],
|
|
416
|
-
setup(
|
|
417
|
-
const
|
|
448
|
+
setup(s, { expose: h, emit: v }) {
|
|
449
|
+
const o = s, p = S(), i = S(), c = S("#ff0000"), x = J(() => {
|
|
418
450
|
let a = null;
|
|
419
|
-
return
|
|
420
|
-
}), { panelShow:
|
|
421
|
-
function
|
|
422
|
-
|
|
451
|
+
return p.value && (a = o.presets?.find((d) => d.name == p.value)?.colorHex), a || c.value;
|
|
452
|
+
}), { panelShow: M, closePanel: T, togglePanel: K, entryStylesActual: I } = me(o, x), { panelStyles: U } = he(o);
|
|
453
|
+
function k(a) {
|
|
454
|
+
p.value = a?.name, y("update:modelValueSelectedPreset", a?.name);
|
|
423
455
|
}
|
|
424
|
-
const
|
|
425
|
-
|
|
426
|
-
|
|
456
|
+
const y = v;
|
|
457
|
+
A(c, (a) => {
|
|
458
|
+
y("update:modelValue", a);
|
|
427
459
|
});
|
|
428
|
-
function
|
|
429
|
-
if (
|
|
430
|
-
const
|
|
431
|
-
c.value =
|
|
460
|
+
function P(a) {
|
|
461
|
+
if (se(a)) {
|
|
462
|
+
const r = j(a);
|
|
463
|
+
c.value = r, i.value?.enforceTo(r);
|
|
432
464
|
}
|
|
433
465
|
}
|
|
434
|
-
function
|
|
435
|
-
a ||
|
|
436
|
-
const
|
|
437
|
-
|
|
466
|
+
function C(a) {
|
|
467
|
+
a || k(void 0);
|
|
468
|
+
const r = o.presets?.find((d) => d.name === a);
|
|
469
|
+
r && k(r);
|
|
438
470
|
}
|
|
439
|
-
return h({ closePanel:
|
|
440
|
-
a === !1 &&
|
|
441
|
-
}),
|
|
442
|
-
a &&
|
|
443
|
-
}),
|
|
444
|
-
|
|
445
|
-
}),
|
|
446
|
-
|
|
447
|
-
}), (a,
|
|
448
|
-
|
|
471
|
+
return h({ closePanel: T, enforceCustomValueTo: P, enforcePresetTo: C }), A(M, (a) => {
|
|
472
|
+
a === !1 && y("done");
|
|
473
|
+
}), A(() => o.modelValue, (a) => {
|
|
474
|
+
a && P(a);
|
|
475
|
+
}), A(() => o.modelValueSelectedPreset, (a) => {
|
|
476
|
+
C(a);
|
|
477
|
+
}), ge(() => {
|
|
478
|
+
o.modelValue ? P(o.modelValue) : o.initial && P(o.initial), o.modelValueSelectedPreset ? C(o.modelValueSelectedPreset) : o.initialSelectedPreset && C(o.initialSelectedPreset);
|
|
479
|
+
}), (a, r) => (R(), b("div", Ze, [
|
|
480
|
+
f("div", {
|
|
449
481
|
class: "acpEntry",
|
|
450
|
-
style:
|
|
451
|
-
onClick:
|
|
452
|
-
(...
|
|
482
|
+
style: X(m(I)),
|
|
483
|
+
onClick: r[0] || (r[0] = //@ts-ignore
|
|
484
|
+
(...d) => m(K) && m(K)(...d))
|
|
453
485
|
}, null, 4),
|
|
454
|
-
|
|
486
|
+
m(M) ? (R(), b("div", {
|
|
455
487
|
key: 0,
|
|
456
488
|
class: "acpPanel",
|
|
457
|
-
style:
|
|
458
|
-
onClick:
|
|
489
|
+
style: X(m(U)),
|
|
490
|
+
onClick: r[6] || (r[6] = (d) => s.panelClickStopPropagation && d.stopPropagation())
|
|
459
491
|
}, [
|
|
460
|
-
|
|
461
|
-
|
|
492
|
+
f("div", Ye, [
|
|
493
|
+
f("label", {
|
|
462
494
|
for: "acpColorPresetCustom",
|
|
463
|
-
onClick:
|
|
495
|
+
onClick: r[3] || (r[3] = (d) => k(void 0))
|
|
464
496
|
}, [
|
|
465
|
-
|
|
497
|
+
ye(Xe, {
|
|
466
498
|
modelValue: c.value,
|
|
467
|
-
"onUpdate:modelValue":
|
|
468
|
-
onDone:
|
|
499
|
+
"onUpdate:modelValue": r[1] || (r[1] = (d) => c.value = d),
|
|
500
|
+
onDone: m(T),
|
|
469
501
|
"entry-class-name": "acpPresetBody",
|
|
470
502
|
ref_key: "customPicker",
|
|
471
|
-
ref:
|
|
472
|
-
"show-package-name":
|
|
473
|
-
pos:
|
|
503
|
+
ref: i,
|
|
504
|
+
"show-package-name": s.showPackageName,
|
|
505
|
+
pos: s.posInternal
|
|
474
506
|
}, null, 8, ["modelValue", "onDone", "show-package-name", "pos"]),
|
|
475
|
-
|
|
507
|
+
oe(f("input", {
|
|
476
508
|
name: "colorType",
|
|
477
509
|
type: "radio",
|
|
478
510
|
id: "acpColorPresetCustom",
|
|
479
511
|
value: void 0,
|
|
480
|
-
"onUpdate:modelValue":
|
|
512
|
+
"onUpdate:modelValue": r[2] || (r[2] = (d) => p.value = d)
|
|
481
513
|
}, null, 512), [
|
|
482
|
-
[
|
|
514
|
+
[ue, p.value]
|
|
483
515
|
]),
|
|
484
|
-
|
|
516
|
+
r[7] || (r[7] = f("div", { class: "acpPresetName" }, "自定义", -1))
|
|
485
517
|
]),
|
|
486
|
-
|
|
487
|
-
(R(!0),
|
|
488
|
-
for: `acpColorPreset${
|
|
489
|
-
onClick: (
|
|
490
|
-
key:
|
|
518
|
+
r[8] || (r[8] = f("div", { class: "acpSep" }, null, -1)),
|
|
519
|
+
(R(!0), b(we, null, Re(s.presets, (d) => (R(), b("label", {
|
|
520
|
+
for: `acpColorPreset${d.name}`,
|
|
521
|
+
onClick: (N) => k(d),
|
|
522
|
+
key: d.name
|
|
491
523
|
}, [
|
|
492
|
-
|
|
524
|
+
f("div", {
|
|
493
525
|
class: "acpPresetBody",
|
|
494
|
-
style:
|
|
526
|
+
style: X({ backgroundColor: d.colorHex })
|
|
495
527
|
}, null, 4),
|
|
496
|
-
|
|
528
|
+
oe(f("input", {
|
|
497
529
|
name: "colorType",
|
|
498
530
|
type: "radio",
|
|
499
|
-
id: `acpColorPreset${
|
|
500
|
-
value:
|
|
501
|
-
"onUpdate:modelValue":
|
|
502
|
-
}, null, 8,
|
|
503
|
-
[
|
|
531
|
+
id: `acpColorPreset${d.name}`,
|
|
532
|
+
value: d.name,
|
|
533
|
+
"onUpdate:modelValue": r[4] || (r[4] = (N) => p.value = N)
|
|
534
|
+
}, null, 8, Je), [
|
|
535
|
+
[ue, p.value]
|
|
504
536
|
]),
|
|
505
|
-
|
|
506
|
-
], 8,
|
|
507
|
-
|
|
537
|
+
f("div", Qe, be(d.name), 1)
|
|
538
|
+
], 8, Ge))), 128)),
|
|
539
|
+
r[9] || (r[9] = f("div", { class: "acpSep" }, null, -1))
|
|
508
540
|
]),
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
onClick:
|
|
512
|
-
(...
|
|
541
|
+
f("div", et, [
|
|
542
|
+
f("button", {
|
|
543
|
+
onClick: r[5] || (r[5] = //@ts-ignore
|
|
544
|
+
(...d) => m(T) && m(T)(...d))
|
|
513
545
|
}, "OK")
|
|
514
546
|
])
|
|
515
|
-
], 4)) :
|
|
547
|
+
], 4)) : le("", !0)
|
|
516
548
|
]));
|
|
517
549
|
}
|
|
518
|
-
}),
|
|
550
|
+
}), lt = /* @__PURE__ */ re(tt, [["__scopeId", "data-v-9fbc3723"]]);
|
|
519
551
|
export {
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
552
|
+
Xe as AuColorPicker,
|
|
553
|
+
lt as AuColorPickerPresetsNested,
|
|
554
|
+
Ne as AuColorPickerRing
|
|
523
555
|
};
|
|
@@ -38,5 +38,12 @@ declare const _default: import('vue').DefineComponent<PickerProps, {
|
|
|
38
38
|
}>, {
|
|
39
39
|
enforceTo: (hex: HEX) => void;
|
|
40
40
|
}, {}, {}, {}, {}> | null;
|
|
41
|
+
hexInputRef: HTMLInputElement;
|
|
42
|
+
rgbInputRef0: HTMLInputElement;
|
|
43
|
+
rgbInputRef1: HTMLInputElement;
|
|
44
|
+
rgbInputRef2: HTMLInputElement;
|
|
45
|
+
hsvInputRef0: HTMLInputElement;
|
|
46
|
+
hsvInputRef1: HTMLInputElement;
|
|
47
|
+
hsvInputRef2: HTMLInputElement;
|
|
41
48
|
}, HTMLDivElement>;
|
|
42
49
|
export default _default;
|
|
@@ -50,6 +50,13 @@ declare const _default: import('vue').DefineComponent<PickerWithPresetsProps, {
|
|
|
50
50
|
}>, {
|
|
51
51
|
enforceTo: (hex: import('color-convert').HEX) => void;
|
|
52
52
|
}, {}, {}, {}, {}> | null;
|
|
53
|
+
hexInputRef: HTMLInputElement;
|
|
54
|
+
rgbInputRef0: HTMLInputElement;
|
|
55
|
+
rgbInputRef1: HTMLInputElement;
|
|
56
|
+
rgbInputRef2: HTMLInputElement;
|
|
57
|
+
hsvInputRef0: HTMLInputElement;
|
|
58
|
+
hsvInputRef1: HTMLInputElement;
|
|
59
|
+
hsvInputRef2: HTMLInputElement;
|
|
53
60
|
}, HTMLDivElement, import('vue').ComponentProvideOptions, {
|
|
54
61
|
P: {};
|
|
55
62
|
B: {};
|