efront 3.7.7 → 3.8.4
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/apps/kugou/api.js +1 -1
- package/apps/kugou/index.html +3 -0
- package/coms/basic/strings.js +1 -1
- package/coms/compile/common.js +26 -6
- package/coms/compile/scanner2.js +176 -34
- package/coms/kugou/buildScroll.less +3 -0
- 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/data.js +5 -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/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/data.js
CHANGED
|
@@ -155,6 +155,7 @@ function getUrlParamsForApi(api, url) {
|
|
|
155
155
|
cap.push(a.slice(1));
|
|
156
156
|
return r;
|
|
157
157
|
});
|
|
158
|
+
if (api.base) base = api.base + base;
|
|
158
159
|
var params = {};
|
|
159
160
|
url = url.replace(/[\?#]*$/g, function (match) {
|
|
160
161
|
match.split(/[&#\?]+/).forEach(function (s) {
|
|
@@ -844,7 +845,10 @@ var data = {
|
|
|
844
845
|
this.responseLoading(instance);
|
|
845
846
|
var params = privates.pack(sid, params1);
|
|
846
847
|
if (!privates.validApi(api, params)) throw aborted;
|
|
847
|
-
|
|
848
|
+
let url = api.url;
|
|
849
|
+
var base = api.base;
|
|
850
|
+
if (base) url = base + api.path;
|
|
851
|
+
var { method, uri, params, selector } = privates.prepare(api.method, url, params);
|
|
848
852
|
var promise = new Promise(function (ok, oh) {
|
|
849
853
|
var headers = api.headers;
|
|
850
854
|
if (headers) {
|
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;
|
|
@@ -24,8 +24,8 @@ var multipleClick = function () {
|
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
function main(children, multiple, addable) {
|
|
27
|
-
var
|
|
28
|
-
|
|
27
|
+
var page = div();
|
|
28
|
+
page.value = multiple ? [] : "";
|
|
29
29
|
var firstValue = false;
|
|
30
30
|
var clicker = multiple ? multipleClick : singleClick;
|
|
31
31
|
var itemMap = Object.create(null);
|
|
@@ -33,7 +33,6 @@ function main(children, multiple, addable) {
|
|
|
33
33
|
var key = option.key || option.value;
|
|
34
34
|
if (key in itemMap) return itemMap[key];
|
|
35
35
|
var item = itemMap[option.value] = document.createElement('div');
|
|
36
|
-
|
|
37
36
|
item.setAttribute("item", '');
|
|
38
37
|
item.innerHTML = option.innerHTML || option.name;
|
|
39
38
|
item.name = option.name || option.innerHTML;
|
|
@@ -47,12 +46,12 @@ function main(children, multiple, addable) {
|
|
|
47
46
|
iconed = icon;
|
|
48
47
|
if (multiple) {
|
|
49
48
|
item.setAttribute("selected", "");
|
|
50
|
-
|
|
49
|
+
page.value.push(option.value);
|
|
51
50
|
} else if (!firstValue) {
|
|
52
51
|
item.setAttribute("selected", "");
|
|
53
|
-
|
|
52
|
+
page.activeNode = item;
|
|
54
53
|
firstValue = true;
|
|
55
|
-
|
|
54
|
+
page.value = option.value
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
if (option.disabled) {
|
|
@@ -64,10 +63,22 @@ function main(children, multiple, addable) {
|
|
|
64
63
|
|
|
65
64
|
}
|
|
66
65
|
var hasIcon = false, iconed = '';
|
|
67
|
-
|
|
66
|
+
var page = list(page, function (i) {
|
|
67
|
+
if (i < 0 || i >= children.length) return;
|
|
68
|
+
return createItem(children[i]);
|
|
69
|
+
});
|
|
70
|
+
on("append")(page, function () {
|
|
71
|
+
page.clean();
|
|
72
|
+
page.go(0);
|
|
73
|
+
if (adder) {
|
|
74
|
+
remove(adder);
|
|
75
|
+
appendChild(page, adder);
|
|
76
|
+
}
|
|
77
|
+
})
|
|
68
78
|
if (addable) {
|
|
69
79
|
var adder = document.createElement("div");;
|
|
70
80
|
adder.innerHTML = "<a>添加</a><a>管理</a>";
|
|
81
|
+
adder.setAttribute('insert', '');
|
|
71
82
|
button(adder.firstChild);
|
|
72
83
|
button(adder.children[1]);
|
|
73
84
|
on("click")(adder, async function (event) {
|
|
@@ -81,43 +92,43 @@ function main(children, multiple, addable) {
|
|
|
81
92
|
return false;
|
|
82
93
|
}
|
|
83
94
|
});
|
|
84
|
-
|
|
95
|
+
page.with = a;
|
|
85
96
|
on('remove')(a, function () {
|
|
86
|
-
|
|
97
|
+
page.with = null;
|
|
87
98
|
});
|
|
88
99
|
a = await a;
|
|
89
100
|
if (a in itemMap) return false;
|
|
90
|
-
cast(
|
|
101
|
+
cast(page.target, "add-option", a);
|
|
91
102
|
children.push({ name: a, key: a });
|
|
92
|
-
|
|
103
|
+
page.insertBefore(createItem({
|
|
93
104
|
name: a,
|
|
94
105
|
value: a,
|
|
95
106
|
}), adder);
|
|
96
107
|
break;
|
|
97
108
|
case this.children[1]:
|
|
98
|
-
var options = [].slice.call(
|
|
109
|
+
var options = [].slice.call(children, 0, children.length);
|
|
99
110
|
var edit = selectListEdit(options.slice(0));
|
|
100
|
-
|
|
101
|
-
list.with = edit;
|
|
111
|
+
page.with = edit;
|
|
102
112
|
on("remove")(edit, function () {
|
|
103
|
-
|
|
104
|
-
remove([].slice.call(list.children, 0, list.children.length - 1));
|
|
113
|
+
page.with = null;
|
|
105
114
|
children.splice(0, children.length);
|
|
106
115
|
children.push.apply(children, edit.$scope.options.map(o => ({ key: o.key || o.value, name: o.name || o.innerHTML })))
|
|
107
|
-
|
|
108
|
-
|
|
116
|
+
cast(page.target, 'set-options', edit.$scope.options);
|
|
117
|
+
page.clean();
|
|
118
|
+
remove(adder);
|
|
119
|
+
page.go(0);
|
|
120
|
+
appendChild(page, adder);
|
|
109
121
|
});
|
|
110
122
|
popup(edit, [.5, .5]);
|
|
111
123
|
break;
|
|
112
124
|
}
|
|
113
|
-
})
|
|
125
|
+
});
|
|
114
126
|
adder.setAttribute("adder", '');
|
|
115
|
-
list.appendChild(adder)
|
|
116
127
|
}
|
|
117
128
|
if (hasIcon) {
|
|
118
|
-
|
|
129
|
+
page.setAttribute('iconed', '');
|
|
119
130
|
}
|
|
120
|
-
|
|
121
|
-
on('mousedown')(
|
|
122
|
-
return
|
|
131
|
+
page.icon = iconed;
|
|
132
|
+
on('mousedown')(page, e => e.preventDefault());
|
|
133
|
+
return page;
|
|
123
134
|
}
|