efront 3.7.8 → 3.8.5
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/coms/basic/loader.js +7 -5
- package/coms/basic/strings.js +1 -1
- package/coms/compile/common.js +76 -10
- package/coms/compile/downLevel.js +11 -0
- package/coms/compile/scanner2.js +192 -34
- package/coms/zimoli/bggrid-func.less +16 -0
- package/coms/zimoli/color.js +18 -4
- package/coms/zimoli/colorlabel.js +3 -2
- package/coms/zimoli/colorlabel.less +24 -3
- package/coms/zimoli/colorpad.html +4 -0
- package/coms/zimoli/colorpad.js +120 -103
- package/coms/zimoli/colorpad.less +49 -47
- package/coms/zimoli/colorpicker.js +1 -1
- package/coms/zimoli/createElement.js +1 -1
- package/coms/zimoli/popup.js +2 -2
- package/coms/zimoli/select.js +3 -3
- package/coms/zimoli/selectList.js +35 -24
- package/coms/zimoli/selectList.less +4 -0
- package/coms/zimoli/selectListEdit.js +0 -1
- package/package.json +2 -2
- package/public/efront.js +1 -1
package/coms/zimoli/color.js
CHANGED
|
@@ -215,14 +215,24 @@ function hsl2rgb([h, s, l]) {
|
|
|
215
215
|
var b = h - 1 / 3;
|
|
216
216
|
return [r, g, b].map(t => t2rgb(t, p, q));
|
|
217
217
|
}
|
|
218
|
+
function percent(a) {
|
|
219
|
+
if (/%$/.test(a)) {
|
|
220
|
+
a = a.replace(/%$/, '') / 100;
|
|
221
|
+
}
|
|
222
|
+
return +a;
|
|
223
|
+
}
|
|
218
224
|
function parse(color) {
|
|
219
225
|
if (hslReg.test(color)) {
|
|
220
226
|
var [_, H, S, L, a] = hslReg.exec(color);
|
|
227
|
+
H = parseFloat(H);
|
|
228
|
+
S = percent(S);
|
|
229
|
+
L = percent(L);
|
|
230
|
+
a = percent(a);
|
|
221
231
|
[R, G, B] = hsl2rgb([H, S, L]);
|
|
222
232
|
return [R, G, B, a || 1];
|
|
223
233
|
} else if (rgbReg.test(color)) {
|
|
224
234
|
var [_, R, G, B, a] = rgbReg.exec(color);
|
|
225
|
-
return [R > 255 ? 255 : R, G > 255 ? 255 : G, B > 255 ? 255 : B, a
|
|
235
|
+
return [R > 255 ? 255 : +R, G > 255 ? 255 : +G, B > 255 ? 255 : +B, a ? +a : 1];
|
|
226
236
|
} else if (rgbHex.test(color)) {
|
|
227
237
|
var [_, R, G, B, A] = rgbHex.exec(color).map(a => parseInt(a + a, 16));
|
|
228
238
|
return [R, G, B, A >= 0 ? A / 0xff : 1];
|
|
@@ -234,6 +244,10 @@ function parse(color) {
|
|
|
234
244
|
function stringify(color) {
|
|
235
245
|
var [R, G, B, a] = color;
|
|
236
246
|
if (a >= 0 && a < 1) {
|
|
247
|
+
R = R.toFixed();
|
|
248
|
+
G = G.toFixed();
|
|
249
|
+
B = B.toFixed();
|
|
250
|
+
a = +a.toFixed(3);
|
|
237
251
|
return `rgba(${R},${G},${B},${a})`;
|
|
238
252
|
} else {
|
|
239
253
|
return "#" + [R, G, B].map(hex256).join("");
|
|
@@ -291,12 +305,12 @@ function equal(c1, c2) {
|
|
|
291
305
|
var [r2, g2, b2, a2] = parse(c2);
|
|
292
306
|
return abs(r1 - r2) < 1 && abs(g1 - g2) < 1 && abs(b1 - b2) < 1 && abs(a1 - a2) < .01;
|
|
293
307
|
}
|
|
294
|
-
var hslReg = /^hsla?\s*\(\s*(\d+)\s
|
|
295
|
-
var rgbReg = /^rgba?\s*\(\s*(\d+)\s
|
|
308
|
+
var hslReg = /^hsla?\s*\(\s*([\d\.]+(?:deg)?)\s*[,\s]\s*([\d\.]+%?)\s*[,\s]\s*([\d\.]+%?)(?:[,\/\s]\s*([\d\.]+%?))?\)$/i;
|
|
309
|
+
var rgbReg = /^rgba?\s*\(\s*([\d\.]+)\s*[,\s]\s*([\d\.]+)\s*[,\s]\s*([\d\.]+)(?:[,\s]\s*([\d\.]+))?\)$/i;
|
|
296
310
|
var rgbHex = /^#([\da-f])([\da-f])([\da-f])([\da-f])?$/i;
|
|
297
311
|
var rgbHex2 = /^#([\da-f]{2})([\da-f]{2})([\da-f]{2})([\da-f]{2})?$/i;
|
|
298
312
|
var rotated_base_color = "#d16969";
|
|
299
|
-
var colorReg = /
|
|
313
|
+
var colorReg = /(?:rgb|hsl)a?\s*\([\,\.\d\s%]+\)|#[\da-f]{3,8}/ig;
|
|
300
314
|
function isColor(text) {
|
|
301
315
|
return rgbReg.test(text) || rgbHex.test(text) || rgbHex2.test(text) || hslReg.test(text);
|
|
302
316
|
}
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
& {
|
|
2
|
-
width:
|
|
2
|
+
width: 180px;
|
|
3
3
|
height: 20px;
|
|
4
|
-
background: #ccc;
|
|
5
4
|
display: inline-block;
|
|
5
|
+
text-align: center;
|
|
6
|
+
font-size: 10px;
|
|
7
|
+
line-height: 20px;
|
|
8
|
+
position: relative;
|
|
9
|
+
.grid();
|
|
10
|
+
background-color: transparent;
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
>option {
|
|
13
|
+
position: relative;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&:before {
|
|
17
|
+
position: absolute;
|
|
18
|
+
left: 0;
|
|
19
|
+
top: 0;
|
|
20
|
+
right: 0;
|
|
21
|
+
bottom: 0;
|
|
22
|
+
content: "";
|
|
23
|
+
display: block;
|
|
24
|
+
background-color: inherit;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@import "./bggrid-func.less";
|
package/coms/zimoli/colorpad.js
CHANGED
|
@@ -13,12 +13,6 @@ var rgb2l = function (r, g, b) {
|
|
|
13
13
|
var max = Math.max(r, g, b), min = Math.min(r, g, b);
|
|
14
14
|
return (max + min) / 2;
|
|
15
15
|
};
|
|
16
|
-
// var rgb2s = function (r, g, b) {
|
|
17
|
-
// var l = rgb2l(r, g, b);
|
|
18
|
-
// var max = Math.max(r, g, b), min = Math.min(r, g, b);
|
|
19
|
-
// var m = Math.sqrt((r * r + g * g + b * b));
|
|
20
|
-
// return Math.sqrt((Math.pow(r - m, 2) + Math.pow(g - m, 2) + Math.pow(b - m, 2)) / 3);
|
|
21
|
-
// };
|
|
22
16
|
var rgb2v = color.rgb2v;
|
|
23
17
|
var rgb2s = function (r, g, b) {
|
|
24
18
|
var u = Math.sqrt((r * r + g * g + b * b) / 3);
|
|
@@ -34,8 +28,6 @@ var c4c = function (c, dark, light) {
|
|
|
34
28
|
};
|
|
35
29
|
|
|
36
30
|
var c2xy = function (c1, c2) {
|
|
37
|
-
var left = 0, right = 1, top = 0, bottom = 1;
|
|
38
|
-
var delta = 1 / 0xfffffff;
|
|
39
31
|
var [r1, g1, b1] = color.parse(c1);
|
|
40
32
|
var [r2, g2, b2] = color.parse(c2);
|
|
41
33
|
var s = function (x, y) {
|
|
@@ -52,41 +44,13 @@ var c2xy = function (c1, c2) {
|
|
|
52
44
|
}
|
|
53
45
|
}
|
|
54
46
|
}
|
|
55
|
-
// while (right - left > delta || bottom - top > delta) {
|
|
56
|
-
// var dx = (right - left) / 3;
|
|
57
|
-
// var dy = (bottom - top) / 3;
|
|
58
|
-
// var lx = left + dx;
|
|
59
|
-
// var rx = right - dx;
|
|
60
|
-
// var ty = top + dy;
|
|
61
|
-
// var by = bottom - dy;
|
|
62
|
-
// var res = [
|
|
63
|
-
// [lx, ty],
|
|
64
|
-
// [rx, ty],
|
|
65
|
-
// [lx, by],
|
|
66
|
-
// [rx, by]
|
|
67
|
-
// ];
|
|
68
|
-
// do {
|
|
69
|
-
// var [x, y] = res.pop();
|
|
70
|
-
// var r = s(x, y);
|
|
71
|
-
// if (r < t) {
|
|
72
|
-
// t = r;
|
|
73
|
-
// mx = x;
|
|
74
|
-
// my = y;
|
|
75
|
-
// }
|
|
76
|
-
// }
|
|
77
|
-
// while (res.length);
|
|
78
|
-
// left = mx - dx;
|
|
79
|
-
// right = mx + dx;
|
|
80
|
-
// top = my - dy;
|
|
81
|
-
// bottom = my + dy;
|
|
82
|
-
// }
|
|
83
47
|
return [mx, my];
|
|
84
48
|
};
|
|
85
49
|
var getCanvas = function (e) {
|
|
86
50
|
return e.getElementsByTagName('canvas')[0];
|
|
87
51
|
};
|
|
88
52
|
var sample = "#ff0000";
|
|
89
|
-
var buildpad = function (pad, c = sample) {
|
|
53
|
+
var buildpad = lazy(function (pad, c = sample) {
|
|
90
54
|
var canvas = getCanvas(pad);
|
|
91
55
|
canvas.width = 256;
|
|
92
56
|
canvas.height = 256;
|
|
@@ -126,7 +90,24 @@ var buildpad = function (pad, c = sample) {
|
|
|
126
90
|
}
|
|
127
91
|
}
|
|
128
92
|
context.putImageData(imagedata, 0, 0);
|
|
129
|
-
};
|
|
93
|
+
}, {});
|
|
94
|
+
var buildopa = lazy(function (pad, c = sample) {
|
|
95
|
+
var canvas = getCanvas(pad);
|
|
96
|
+
canvas.width = 1;
|
|
97
|
+
canvas.height = 256;
|
|
98
|
+
var [r, g, b] = color.parse(c);
|
|
99
|
+
var context = canvas.getContext("2d");
|
|
100
|
+
var imagedata = context.getImageData(0, 0, 1, 256);
|
|
101
|
+
var data = imagedata.data;
|
|
102
|
+
for (var cx = 0, dx = data.length; cx < dx;) {
|
|
103
|
+
data[cx++] = r;
|
|
104
|
+
data[cx++] = g;
|
|
105
|
+
data[cx++] = b;
|
|
106
|
+
data[cx++] = 255 - (cx >> 2);
|
|
107
|
+
}
|
|
108
|
+
context.putImageData(imagedata, 0, 0);
|
|
109
|
+
|
|
110
|
+
}, {});
|
|
130
111
|
var buildhue = function (hue) {
|
|
131
112
|
var canvas = getCanvas(hue);
|
|
132
113
|
canvas.width = 10;
|
|
@@ -149,86 +130,106 @@ var getpointer = function (e) {
|
|
|
149
130
|
return e.getElementsByTagName('pointer')[0];
|
|
150
131
|
};
|
|
151
132
|
var bindinput = function (input, callback) {
|
|
152
|
-
|
|
153
|
-
|
|
133
|
+
on("keydown.enter")(input, callback);
|
|
134
|
+
};
|
|
135
|
+
var color2xyz = function (c) {
|
|
136
|
+
var [r, g, b, a] = color.parse(c);
|
|
137
|
+
var z = color.rgb2h(r, g, b) / 360;
|
|
138
|
+
var c1 = z2c(z);
|
|
139
|
+
var [x, y] = c2xy(c1, c);
|
|
140
|
+
return [x, y, z, a];
|
|
154
141
|
};
|
|
155
|
-
|
|
156
142
|
function main(e) {
|
|
157
143
|
var elem = e || div();
|
|
158
144
|
elem.innerHTML = colorpad;
|
|
159
|
-
var [bg, pad, hue, val] = elem.children;
|
|
145
|
+
var [bg, pad, hue, opa, val] = elem.children;
|
|
160
146
|
buildpad(pad);
|
|
161
147
|
buildhue(hue);
|
|
148
|
+
buildopa(opa);
|
|
162
149
|
var [hex, rgb, hsl] = val.getElementsByTagName("input");
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
var
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
if (value !== this.value) this.value = value;
|
|
171
|
-
} else {
|
|
172
|
-
var angle = color.angle(sample, value) / (Math.PI + Math.PI)
|
|
173
|
-
if (angle >= 0) {
|
|
174
|
-
z = angle;
|
|
175
|
-
}
|
|
176
|
-
[x, y] = c2xy(z2c(z), value);
|
|
177
|
-
render();
|
|
150
|
+
var Hex = a => a > 15 ? a.toString(16) : "0" + a.toString(16);
|
|
151
|
+
hex.setValue = function (v) {
|
|
152
|
+
var [r, g, b, a] = color.parse(v);
|
|
153
|
+
var value = [r, g, b];
|
|
154
|
+
if (isFinite(a) && a !== 1) {
|
|
155
|
+
a = a * 255;
|
|
156
|
+
value[3] = a;
|
|
178
157
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
158
|
+
this.value = "#" + value.map(a => +a.toFixed()).map(Hex).join("");
|
|
159
|
+
};
|
|
160
|
+
rgb.setValue = function (v) {
|
|
161
|
+
var [r, g, b, a] = color.parse(v);
|
|
162
|
+
r = r.toFixed();
|
|
163
|
+
g = g.toFixed();
|
|
164
|
+
b = b.toFixed();
|
|
165
|
+
a = +a.toFixed(3);
|
|
166
|
+
var o = +a;
|
|
167
|
+
this.value = `rgb${o !== 1 ? 'a' : ''}(${r}, ${g}, ${b}${o !== 1 ? ', ' + a : ''})`;
|
|
168
|
+
};
|
|
169
|
+
hsl.setValue = function (v) {
|
|
170
|
+
var [r, g, b, a] = color.parse(v);
|
|
171
|
+
var [h, s, l] = color.rgb2hsl([r, g, b]);
|
|
172
|
+
s *= 100;
|
|
173
|
+
l *= 100;
|
|
174
|
+
a *= 100;
|
|
175
|
+
s = +s.toFixed();
|
|
176
|
+
l = +l.toFixed();
|
|
177
|
+
a = +a.toFixed();
|
|
178
|
+
h = h.toFixed();
|
|
179
|
+
var o = a !== 100;
|
|
180
|
+
this.value = `hsl${o ? 'a' : ''}(${h}deg ${s}% ${l}%${o ? " / " + a + "%" : ""})`;
|
|
181
|
+
};
|
|
182
|
+
elem.setValue = function (v) {
|
|
183
|
+
var [_x, _y, z, a] = color2xyz(v);
|
|
184
|
+
hue.value = z;
|
|
185
|
+
opa.value = 1 - a;
|
|
186
|
+
css(huepointer, { top: +(z * 100).toFixed(6) + '%' })
|
|
187
|
+
css(opapointer, { top: +(100 - a * 100).toFixed(6) + '%' })
|
|
188
|
+
x = _x;
|
|
189
|
+
y = _y;
|
|
190
|
+
render();
|
|
191
|
+
};
|
|
192
|
+
var inputv = function () {
|
|
193
|
+
elem.setValue(this.value);
|
|
194
|
+
};
|
|
195
|
+
bindinput(hex, inputv);
|
|
196
|
+
bindinput(hsl, inputv);
|
|
197
|
+
bindinput(rgb, inputv);
|
|
198
|
+
var x = 1, y = 0, z = 0;
|
|
198
199
|
var padpointer = getpointer(pad);
|
|
199
200
|
var huepointer = getpointer(hue);
|
|
201
|
+
var opapointer = getpointer(opa);
|
|
200
202
|
var render = function () {
|
|
201
|
-
z = trim(
|
|
203
|
+
z = trim(hue.value || 0);
|
|
202
204
|
x = trim(x);
|
|
203
205
|
y = trim(y);
|
|
206
|
+
var a = trim(1 - (opa.value || 0));
|
|
204
207
|
var c = z2c(z);
|
|
205
|
-
var
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
var [h = 0, s = 0, l] = color.rgb2hsl([r, g, b]);
|
|
209
|
-
cancelAnimationFrame(requester);
|
|
210
|
-
requester = requestAnimationFrame(function () {
|
|
211
|
-
buildpad(pad, c);
|
|
212
|
-
});
|
|
208
|
+
var c0 = color.parse(c).slice(0, 3).map(a => xy2c(a, x, y));
|
|
209
|
+
c0[3] = a;
|
|
210
|
+
var p = color.stringify(c0);
|
|
213
211
|
var value = p;
|
|
214
|
-
var valuergb = `rgb(${r}, ${g}, ${b})`;
|
|
215
|
-
var valuehsl = `hsl(${h.toFixed(0)}, ${(s * 100).toFixed(0)}%, ${(l * 100).toFixed(0)}%)`;
|
|
216
212
|
css(padpointer, {
|
|
217
213
|
left: +(x * 100).toFixed(6) + "%",
|
|
218
214
|
top: +(y * 100).toFixed(6) + "%",
|
|
219
|
-
background:
|
|
220
|
-
|
|
215
|
+
background: p,
|
|
216
|
+
outlineColor: color.pair(p),
|
|
221
217
|
});
|
|
222
218
|
css(huepointer, {
|
|
223
|
-
|
|
224
|
-
borderColor: c4c(c),
|
|
219
|
+
outlineColor: color.pair(c),
|
|
225
220
|
background: c
|
|
226
221
|
});
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
222
|
+
css(opapointer, {
|
|
223
|
+
outlineColor: color.pair(p),
|
|
224
|
+
background: p
|
|
225
|
+
});
|
|
226
|
+
buildopa(opa, p);
|
|
227
|
+
|
|
228
|
+
hex.setValue(value);
|
|
229
|
+
rgb.setValue(value);
|
|
230
|
+
hsl.setValue(value);
|
|
230
231
|
bg.style.borderColor = value;
|
|
231
|
-
val.style.color =
|
|
232
|
+
val.style.color = color.pair(value);
|
|
232
233
|
elem.value = value;
|
|
233
234
|
dispatch(elem, 'change');
|
|
234
235
|
// console.log(value, hex.value, valuergb, valuehsl);
|
|
@@ -237,12 +238,25 @@ function main(e) {
|
|
|
237
238
|
if (a < 0) a = 0;
|
|
238
239
|
if (a > 1) a = 1;
|
|
239
240
|
return a || 0;
|
|
240
|
-
}
|
|
241
|
-
var sethue = function (
|
|
241
|
+
};
|
|
242
|
+
var sethue = function (z) {
|
|
243
|
+
var c = z2c(z);
|
|
244
|
+
buildpad(pad, c);
|
|
245
|
+
};
|
|
246
|
+
var setpointer = function (event) {
|
|
242
247
|
var { clientY } = event;
|
|
243
|
-
var { top, height } = getScreenPosition(
|
|
244
|
-
z = (clientY - top) / height;
|
|
245
|
-
if (
|
|
248
|
+
var { top, height } = getScreenPosition(this);
|
|
249
|
+
var z = (clientY - top) / height;
|
|
250
|
+
if (z > 1) z = 1;
|
|
251
|
+
if (z < 0) z = 0;
|
|
252
|
+
this.value = z;
|
|
253
|
+
if (this === hue) {
|
|
254
|
+
sethue(z);
|
|
255
|
+
}
|
|
256
|
+
var pointer = getpointer(this);
|
|
257
|
+
css(pointer, {
|
|
258
|
+
top: +(z * 100).toFixed(6) + "%",
|
|
259
|
+
});
|
|
246
260
|
render();
|
|
247
261
|
};
|
|
248
262
|
var setpad = function (event) {
|
|
@@ -250,17 +264,20 @@ function main(e) {
|
|
|
250
264
|
var { top, left, height, width } = getScreenPosition(pad);
|
|
251
265
|
x = (clientX - left) / width;
|
|
252
266
|
y = (clientY - top) / height;
|
|
253
|
-
if (document.activeElement !== padpointer) padpointer.focus();
|
|
254
267
|
render();
|
|
255
268
|
};
|
|
256
269
|
moveupon(hue, {
|
|
257
|
-
start:
|
|
258
|
-
move:
|
|
270
|
+
start: setpointer,
|
|
271
|
+
move: setpointer
|
|
259
272
|
});
|
|
260
273
|
moveupon(pad, {
|
|
261
274
|
start: setpad,
|
|
262
275
|
move: setpad
|
|
263
276
|
});
|
|
277
|
+
moveupon(opa, {
|
|
278
|
+
start: setpointer,
|
|
279
|
+
move: setpointer
|
|
280
|
+
});
|
|
264
281
|
render();
|
|
265
282
|
onmousedown(elem, e => /^input$/i.test(e.target.tagName) || e.preventDefault());
|
|
266
283
|
return elem;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
+
@import "./bggrid-func.less";
|
|
2
|
+
|
|
1
3
|
pointer {
|
|
2
|
-
display
|
|
3
|
-
height
|
|
4
|
-
|
|
4
|
+
display: block;
|
|
5
|
+
height: 6px;
|
|
6
|
+
outline: 1px solid #fff;
|
|
5
7
|
background: #ccc;
|
|
6
|
-
top
|
|
7
|
-
left
|
|
8
|
+
top: 0;
|
|
9
|
+
left: 0;
|
|
8
10
|
box-sizing: border-box;
|
|
9
|
-
position
|
|
11
|
+
position: absolute;
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
>div {
|
|
13
|
-
display
|
|
15
|
+
display: inline-block;
|
|
14
16
|
position: relative;
|
|
15
17
|
|
|
16
18
|
|
|
@@ -22,34 +24,38 @@ pointer {
|
|
|
22
24
|
font-size: 0;
|
|
23
25
|
|
|
24
26
|
>pointer {
|
|
25
|
-
width
|
|
27
|
+
width: 6px;
|
|
26
28
|
margin: -3px;
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
>canvas {
|
|
30
|
-
width
|
|
31
|
-
height
|
|
32
|
+
width: 256px;
|
|
33
|
+
height: 256px;
|
|
32
34
|
background: #fff;
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
&.hue
|
|
38
|
+
&.hue,
|
|
39
|
+
&.opa {
|
|
37
40
|
font-size: 0;
|
|
38
41
|
|
|
39
42
|
>pointer {
|
|
40
43
|
margin: -3px -1px;
|
|
41
|
-
width
|
|
44
|
+
width: 10px;
|
|
45
|
+
padding: 0 1px;
|
|
46
|
+
box-sizing: content-box;
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
>canvas {
|
|
45
|
-
background: #
|
|
46
|
-
width
|
|
47
|
-
height
|
|
50
|
+
background: #fff;
|
|
51
|
+
width: 10px;
|
|
52
|
+
height: 256px;
|
|
53
|
+
.grid();
|
|
48
54
|
}
|
|
49
55
|
}
|
|
50
56
|
|
|
51
57
|
&.val {
|
|
52
|
-
margin
|
|
58
|
+
margin: 0;
|
|
53
59
|
padding: 10px 0 0 0;
|
|
54
60
|
|
|
55
61
|
>input {
|
|
@@ -59,55 +65,51 @@ pointer {
|
|
|
59
65
|
}
|
|
60
66
|
|
|
61
67
|
color: inherit;
|
|
62
|
-
text-transform
|
|
68
|
+
text-transform : lowercase;
|
|
63
69
|
background-color: transparent;
|
|
64
|
-
box-sizing
|
|
65
|
-
padding
|
|
66
|
-
position
|
|
67
|
-
font-size
|
|
68
|
-
border
|
|
69
|
-
text-align
|
|
70
|
-
min-width
|
|
71
|
-
width
|
|
72
|
-
|
|
73
|
-
&+input {
|
|
74
|
-
margin-left: 6px;
|
|
75
|
-
}
|
|
70
|
+
box-sizing : border-box;
|
|
71
|
+
padding : 0 3px;
|
|
72
|
+
position : relative;
|
|
73
|
+
font-size : 12px;
|
|
74
|
+
border : none;
|
|
75
|
+
text-align : left;
|
|
76
|
+
min-width : 40px;
|
|
77
|
+
width : 30%;
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
>.hex {
|
|
79
|
-
width:
|
|
81
|
+
width: 76px;
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
>.rgb {
|
|
83
|
-
width:
|
|
85
|
+
width: 156px;
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
>.hsl {
|
|
87
|
-
width:
|
|
89
|
+
width: 186px;
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
93
|
|
|
92
94
|
& {
|
|
93
|
-
width
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
width: 462px;
|
|
96
|
+
min-width: 372px;
|
|
97
|
+
background: #fff;
|
|
98
|
+
padding: 17px 0 7px 0;
|
|
99
|
+
text-align: center;
|
|
100
|
+
user-select: none;
|
|
98
101
|
border-radius: 3px;
|
|
99
|
-
position
|
|
102
|
+
position: relative;
|
|
100
103
|
}
|
|
101
104
|
|
|
102
105
|
&>.bg {
|
|
103
|
-
display
|
|
104
|
-
left
|
|
105
|
-
top
|
|
106
|
-
right
|
|
107
|
-
bottom
|
|
108
|
-
border-
|
|
109
|
-
border
|
|
110
|
-
border : 2px solid;
|
|
106
|
+
display: block;
|
|
107
|
+
left: 0;
|
|
108
|
+
top: 0;
|
|
109
|
+
right: 0;
|
|
110
|
+
bottom: 0;
|
|
111
|
+
border-color: inherit;
|
|
112
|
+
border: 2px solid;
|
|
111
113
|
border-bottom-width: 26px;
|
|
112
|
-
position
|
|
114
|
+
position: absolute;
|
|
113
115
|
}
|
|
@@ -2,7 +2,7 @@ function main(element = document.createElement("div")) {
|
|
|
2
2
|
element.innerHTML = colorpicker;
|
|
3
3
|
var saved_value;
|
|
4
4
|
var selector = element.firstChild;
|
|
5
|
-
select(selector, colorpad(), false);
|
|
5
|
+
select(selector, colorpad(), false, 'y');
|
|
6
6
|
render(element, {
|
|
7
7
|
a: button,
|
|
8
8
|
colorlabel,
|
|
@@ -58,7 +58,7 @@ var prototype = {
|
|
|
58
58
|
|
|
59
59
|
function createElement(name) {
|
|
60
60
|
var node = isNode(name) ? name.cloneNode() : isFunction(name) ? name() : document.createElement(name);
|
|
61
|
-
if (name.className) node
|
|
61
|
+
if (name.className) addClass(node, name.className);
|
|
62
62
|
appendChild(node, slice.call(arguments, 1));
|
|
63
63
|
extend(node, prototype);
|
|
64
64
|
return node;
|
package/coms/zimoli/popup.js
CHANGED
|
@@ -262,12 +262,12 @@ var _as_yextra = function (global, innerWidth, innerHeight, element, target, poi
|
|
|
262
262
|
viewrect.right = viewrect.left + viewrect.width;
|
|
263
263
|
viewrect.bottom = viewrect.top + viewrect.height;
|
|
264
264
|
}
|
|
265
|
-
var maxHeight = Math.max(position.top, innerHeight - position.top - position.height);
|
|
265
|
+
var maxHeight = Math.max(position.top, innerHeight - position.top - position.height) | 0;
|
|
266
266
|
var maxWidth = Math.max(position.left + position.width, innerWidth - position.left);
|
|
267
267
|
var height = element.offsetHeight;
|
|
268
268
|
//如果高度超出可视区,调整高度
|
|
269
269
|
if (height > maxHeight) {
|
|
270
|
-
css(element, { height: fromOffset(maxHeight) });
|
|
270
|
+
css(element, { height: fromOffset(maxHeight), maxHeight: fromOffset(maxHeight) });
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
css(element, `min-width:auto;`);
|
package/coms/zimoli/select.js
CHANGED
|
@@ -16,7 +16,7 @@ var _remove = function () {
|
|
|
16
16
|
}
|
|
17
17
|
once('blur')(activeElement, function () {
|
|
18
18
|
if (!isMounted(this)) return removing_list.target.focus();
|
|
19
|
-
|
|
19
|
+
_remove();
|
|
20
20
|
});
|
|
21
21
|
});
|
|
22
22
|
}
|
|
@@ -137,8 +137,8 @@ function select(target, list, removeOnSelect, direction) {
|
|
|
137
137
|
}
|
|
138
138
|
var mousedown = function () {
|
|
139
139
|
initList();
|
|
140
|
-
if (saved_list !== list) {
|
|
141
|
-
_remove();
|
|
140
|
+
if (saved_list !== list || !isMounted(list)) {
|
|
141
|
+
if (saved_list && saved_list !== list) _remove();
|
|
142
142
|
if (document.activeElement !== target) target.focus();
|
|
143
143
|
popup(list, target, direction);
|
|
144
144
|
saved_list = list;
|