efront 4.13.2 → 4.14.2

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.
@@ -1,19 +1,8 @@
1
- .song {
2
- color: #fff;
3
- }
4
-
5
- .singer {
6
- color: #ccc;
7
- }
8
-
9
- .time {
10
- position: absolute;
11
- right: 8px;
12
- bottom: 4px;
13
- text-align: right;
14
- }
1
+ @avatar-left: 36px;
2
+ @avatar-top: -12px;
3
+ @avatar-size: 72px;
15
4
 
16
- @main-color: #2c7bb5;
5
+ @main-color: #021c;
17
6
 
18
7
  &.pause .play:before {
19
8
  content: "";
@@ -26,20 +15,22 @@
26
15
  vertical-align: middle;
27
16
  }
28
17
 
18
+ krc {
19
+ pointer-events: none;
20
+ }
21
+
29
22
  &.play .play:before {
30
- content: "";
31
- display: inline-block;
23
+ display: none;
32
24
  border: .4em solid;
33
25
  vertical-align: middle;
34
26
  }
35
27
 
36
- .avatar,
37
- &:after {
28
+ .avatar {
38
29
  border-radius: 50%;
39
- width: 72px;
40
- height: 72px;
41
- top: -12px;
42
- left: 8px;
30
+ width: @avatar-size;
31
+ height: @avatar-size;
32
+ top: @avatar-top;
33
+ left: @avatar-left;
43
34
  position: absolute;
44
35
  background-size: cover;
45
36
  border: 3px solid #000;
@@ -99,11 +90,25 @@
99
90
  overflow: hidden;
100
91
  z-index: -1;
101
92
 
93
+ &:before {
94
+ content: "";
95
+ left: @avatar-left+@border-width + 72px;
96
+ position: absolute;
97
+ min-width: 100px;
98
+ width: auto;
99
+ height: auto;
100
+ border-radius: 60px 0 0 0;
101
+ right: 0;
102
+ top: 0;
103
+ bottom: 0;
104
+ background-color: @main-color;
105
+ }
106
+
107
+ @blank-size : @avatar-size;
108
+ @border-width : 40px;
109
+ @border-size: @blank-size / 2 + @border-width;
110
+
102
111
  &:after {
103
- @size : 10000px;
104
- @blank-size : 70px;
105
- @margin-y: @size + 35px;
106
- @margin-x: @size + 35px;
107
112
  box-sizing: content-box;
108
113
  content: "";
109
114
  display: block;
@@ -111,33 +116,35 @@
111
116
  position: absolute;
112
117
  width: @blank-size;
113
118
  height: @blank-size;
114
- border: @size solid #000;
115
- margin: -@margin-x -@margin-y;
116
- top: 24px;
117
- left: 44px;
119
+ border: @border-width solid #000;
120
+ margin: -@border-size;
121
+ top: 12px-@avatar-top;
122
+ left: @avatar-left + @blank-size/2;
118
123
  }
119
124
 
120
125
  &:after {
121
- border-radius: 50%;
126
+ border-radius: @border-size;
122
127
  }
123
128
  }
124
129
 
125
130
  &>div.progress {
126
131
  z-index: 1;
132
+ pointer-events: none;
127
133
 
128
134
  >.track:after,
129
135
  >.avatar {
130
136
  border-color: @main-color;
131
137
  box-shadow: 0 0 6px -3px @main-color;
132
138
  }
133
-
139
+
134
140
  >.track {
135
141
  opacity: .7;
136
142
  transition: height .3s, opacity .3s;
137
- top: 12px;
143
+ top: -@avatar-top;
138
144
  }
139
-
145
+
140
146
  >.avatar {
147
+ border-color: lighten(@main-color, 100%);
141
148
  opacity: 1;
142
149
  top: 0;
143
150
  }
@@ -147,7 +154,7 @@
147
154
  overflow : hidden;
148
155
  padding : 0;
149
156
  height : 72px;
150
- margin-top: -12px;
157
+ margin-top: @avatar-top;
151
158
  }
152
159
 
153
160
  & {
@@ -158,7 +165,7 @@
158
165
  user-select: none;
159
166
  position: fixed;
160
167
  bottom: 0;
161
- color: #fff;
168
+ color: #ccc;
162
169
  left: 0;
163
170
  right: 0;
164
171
  padding: 0 0 0 78px;
@@ -168,47 +175,80 @@
168
175
 
169
176
  >btn,
170
177
  >sbtn {
178
+ @btn-width: 42px;
171
179
  text-align: center;
172
180
  line-height: 60px;
173
- width: 50px;
181
+ width: @btn-width;
174
182
  height: 60px;
175
183
  vertical-align: top;
176
- position: relative;
184
+ position: absolute;
177
185
  background: transparent;
186
+ z-index: 2;
178
187
 
179
- &.info,
180
- &.prev,
181
- &.list,
182
- &.next,
183
188
  &.play {
184
- z-index: 2;
189
+ top: @avatar-top/2;
190
+ pointer-events: none;
191
+ left: @avatar-left+16px;
192
+ }
193
+
194
+ &.next {
195
+ right: 0;
185
196
  }
197
+
198
+ &.prev {
199
+ top: 0;
200
+ left: @avatar-left - @btn-width+6px;
201
+ }
202
+
186
203
  }
187
204
 
188
- >.info {
189
- width: 100%;
190
- margin-right: -200px;
205
+ .time {
206
+ left: 6px;
207
+ text-align: center;
208
+ top: 46px;
209
+ color: #fff9;
191
210
  line-height: 1;
192
- text-align: left;
193
- padding: 46px 5px 0 5px;
194
211
  z-index: 2;
195
- position: relative;
196
- font-size: 8px;
212
+ font-size: 12px;
213
+ }
197
214
 
198
- .spliter {
199
- .singer;
200
- }
215
+ .total {
216
+ z-index: 2;
217
+ right: 6px;
218
+ top: 46px;
219
+ color: #fff9;
220
+ line-height: 1;
221
+ font-size: 12px;
222
+ }
201
223
 
224
+ .singer {
225
+ color: #fffc;
226
+ font-size: 8px;
227
+ display: block;
228
+ top: 46px;
229
+ z-index: 2;
230
+ left: @avatar-left+@avatar-size;
231
+ right: 60px;
232
+ }
202
233
 
203
- >div {
204
- text-overflow: ellipsis;
205
- white-space: nowrap;
206
- overflow: hidden;
207
- }
234
+
235
+ .song {
236
+ left: @avatar-left + @avatar-size + 6px;
237
+ line-height: 1;
238
+ top: 22px;
239
+ font-size: 16px;
240
+ right: 60px;
241
+ z-index: 2;
208
242
  }
209
243
 
244
+
210
245
  >div {
211
- display: inline-block;
246
+ text-align: left;
247
+ overflow: hidden;
248
+ text-overflow: ellipsis;
249
+ white-space: nowrap;
250
+ position: absolute;
251
+ pointer-events: none;
212
252
  height: 60px;
213
253
  }
214
254
  }
@@ -217,10 +257,16 @@
217
257
  height: 100%;
218
258
  z-index: 10;
219
259
  opacity: 1;
260
+ @ptop: -@avatar-top;
220
261
 
221
262
  >div.progress>.track {
222
263
  height: 3px;
223
264
  opacity: 1;
265
+ top: @ptop;
266
+
267
+ &:after {
268
+ top: 24px - @avatar-top - @ptop;
269
+ }
224
270
  }
225
271
 
226
272
  >.track {
@@ -246,7 +292,7 @@
246
292
  font-size: 8px;
247
293
  text-align: left;
248
294
  line-height: 16px;
249
- padding-left: 84px;
295
+ padding-left: @avatar-left+@avatar-size+4px;
250
296
 
251
297
  .active,
252
298
  .active+.after {
@@ -272,10 +318,6 @@
272
318
  font-size: 16px;
273
319
  }
274
320
 
275
- &:not(.play):not(.page)>.background {
276
- opacity: 0;
277
- transition: opacity .4s ease;
278
- }
279
321
 
280
322
  &>.background {
281
323
  background-color: #999;
@@ -398,32 +440,35 @@
398
440
  pointer-events: none;
399
441
 
400
442
  &+.avatar {
443
+ pointer-events: all;
401
444
  border-color: transparent;
402
- z-index: 1;
445
+ z-index: 2;
446
+ }
447
+ }
448
+
449
+ & {
450
+ text-align: right;
451
+
452
+ >.track {
453
+ height: 60px;
454
+ margin-top: 0;
455
+ border-top: 0 solid #666;
456
+ transition: margin-top .2s ease-out, border-top .2s ease-out, height .2s ease-out;
403
457
  }
404
458
  }
405
459
 
406
- // & {
407
- // >.track {
408
- // height: 60px;
409
- // margin-top: 0;
410
- // border-top: 0 solid #666;
411
- // transition: margin-top .2s ease-out, border-top .2s ease-out, height .2s ease-out;
412
- // }
413
- // }
414
-
415
- // &.effect {
416
- // opacity: 1;
417
-
418
- // >.track {
419
- // height: 420px;
420
- // margin-top: -360px;
421
- // border-top: 360px solid #666;
422
- // }
423
- // }
460
+ &.effect {
461
+ opacity: 1;
462
+
463
+ >.track {
464
+ height: 420px;
465
+ margin-top: -360px;
466
+ border-top: 360px solid #666;
467
+ }
468
+ }
424
469
 
425
470
  &:not(.page)>canvas {
426
- top: -12px;
471
+ top: @avatar-top;
427
472
  }
428
473
 
429
474
  &.dragging {
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ var EOL = require("os").EOL;
2
3
  var colored = Object.create(null);
3
4
  var lazy = require("../basic/lazy");
4
5
  var colors = require("./colors");
@@ -40,12 +41,17 @@ var renderColor = function (obj) {
40
41
  var write = function (hasNewLine, str) {
41
42
  process.stdout.cork();
42
43
  var hasNextLine = /[\r\n\u2028\u2029]$/.test(str);
44
+ var width = process.stdout.columns;
43
45
  if (process.stdout.isTTY) {
44
46
  if (lastLogLength) {
45
- var width = process.stdout.columns;
46
- var dx = lastLogLength % width;
47
- var dy = (lastLogLength - 1) / width | 0;
48
- process.stdout.moveCursor(-dx, -dy);
47
+ var loged = lastLogLength;
48
+ lastLogLength = 0;
49
+ loged.forEach(lastLogLength => {
50
+ var dx = lastLogLength % width;
51
+ var dy = (lastLogLength - 1) / width | 0;
52
+ process.stdout.moveCursor(- dx, -1 - dy);
53
+ });
54
+ process.stdout.moveCursor(0, 1);
49
55
  process.stdout.clearScreenDown();
50
56
  }
51
57
  }
@@ -67,8 +73,13 @@ var write = function (hasNewLine, str) {
67
73
  if (hasNewLine) {
68
74
  lastLogLength = 0;
69
75
  } else {
70
- str = String(str).replace(/\x1b\[\d+m/g, '').replace(/\b/g, '');
71
- lastLogLength = str.length + str.replace(/[\x20-\xff]/g, "").length;
76
+ var rs = String(str).split(/\r\n|\r|\n|\u2028|\u2029/);
77
+ var cr = r => {
78
+ if (!r) return r;
79
+ r = r.replace(/\x1b\[\d+m/g, '').replace(/\b/g, '');
80
+ return r.length + r.replace(/[\x20-\xff]/g, "").length;
81
+ };
82
+ lastLogLength = rs.map(cr).reverse();
72
83
  }
73
84
  process.stdout.uncork();
74
85
  };
@@ -88,7 +99,11 @@ var write = function (hasNewLine, str) {
88
99
  var logger = function () {
89
100
  var label = logger.tip ? fgColor + bgColor + logger.tip + reset : '';
90
101
  var time_stamp = '';
91
- var str = [time_stamp, label].filter(a => !!a).concat(Array.prototype.map.call(arguments, a => renderColor(a))).join(" ");
102
+ var mark = [time_stamp, label].filter(a => !!a)
103
+ var str = Array.prototype.map.call(arguments, a => renderColor(a)).join(" ").split(/\r\n|\r|\n/).map(a => {
104
+ if (a) return mark.concat(a).join(' ');
105
+ else return a;
106
+ }).join(EOL);
92
107
  write1(hasNewLine, str);
93
108
  };
94
109
  logger.tip = info;
@@ -121,7 +136,7 @@ var formatRows = function (arg, rows, deep, entry, leave) {
121
136
  var hasNextLine = false;
122
137
  var isArray = arg instanceof Array;
123
138
  for (var r of rows) {
124
- if (/[\r\n\u2028\u2029]/.test(r)) {
139
+ if (/[\r\n\u2028\u2029]$/.test(r)) {
125
140
  itemcount = 1;
126
141
  hasNextLine = true;
127
142
  break;
@@ -262,10 +277,15 @@ colored.line = function () {
262
277
  };
263
278
  var _log = console.log;
264
279
  colored.log = function () {
265
- if (lastLogLength > 0) write1(false, '');
280
+ if (lastLogLength) write1(false, '');
266
281
  if (needNextLine) needNextLine = false;
267
282
  _log.apply(console, arguments);
268
283
  };
284
+ colored.wrap = function (c, content) {
285
+ var c = getColor(c);
286
+ if (!c) throw new Error(i18n`${c}不是有效的色彩信息`);
287
+ return c + content + colors.Reset;
288
+ }
269
289
  colored.begin = function (c) {
270
290
  return write1(false, getColor(c));
271
291
  };
@@ -7,59 +7,31 @@ else {
7
7
  var Window = function () {
8
8
  };
9
9
  var window = new Window;
10
- Object.assign(window, {
11
- Date,
12
- Promise,
13
- Function,
14
- RegExp,
15
- Object,
16
- String,
17
- Array,
18
- Number,
19
- Boolean,
20
- Error,
21
- TypeError,
22
- Uint8Array,
23
- Uint16Array,
24
- Uint32Array,
25
- Uint8ClampedArray,
26
- ArrayBuffer,
27
- Int8Array,
28
- Int16Array,
29
- Int32Array,
30
- Float32Array,
31
- Float64Array,
32
- Map,
33
- Set,
34
- Proxy,
35
- WeakMap,
36
- Reflect,
37
- console,
38
- Math,
39
- JSON,
40
- NaN,
41
- Infinity,
42
- isNaN,
43
- isFinite,
44
- parseInt,
45
- parseFloat,
46
- decodeURI,
47
- encodeURI,
48
- decodeURIComponent,
49
- encodeURIComponent,
50
- document: global1.document,
51
- navigator: global1.navigator,
52
- process: global1.process,
53
- BigInt64Array: global1.BigInt64Array,
54
- Buffer: global1.Buffer,
55
- Intl: global1.Intl,
56
- BigInt: global1.BigInt,
57
- Symbol: global1.Symbol,
58
- SharedArrayBuffer: global1.SharedArrayBuffer,
59
- escape: global1.escape,
60
- unescape: global1.unescape,
10
+ [
11
+ 'Date', 'Promise', 'Function',
12
+ 'RegExp', 'Object', 'String',
13
+ 'Array', 'Number', 'Boolean',
14
+ 'Error', 'TypeError', 'Uint8Array',
15
+ 'Uint16Array', 'Uint32Array', 'Uint8ClampedArray',
16
+ 'ArrayBuffer', 'Int8Array', 'Int16Array',
17
+ 'Int32Array', 'Float32Array', 'Float64Array',
18
+ 'Map', 'Set', 'Proxy',
19
+ 'WeakMap', 'Reflect', 'console',
20
+ 'Math', 'JSON', 'NaN',
21
+ 'Infinity', 'isNaN', 'isFinite',
22
+ 'parseInt', 'parseFloat', 'decodeURI',
23
+ 'encodeURI', 'decodeURIComponent', 'encodeURIComponent',
24
+ 'document', 'navigator', 'process',
25
+ 'BigInt64Array', 'Buffer', 'Intl',
26
+ 'BigInt', 'Symbol', 'SharedArrayBuffer',
27
+ 'escape', 'unescape', 'clearImmediate',
28
+ 'setImmediate', 'clearInterval', 'clearTimeout',
29
+ 'setInterval', 'setTimeout', 'queueMicrotask',
30
+ 'structuredClone', 'atob', 'btoa',
31
+ 'performance', 'fetch', 'crypto'
32
+ ].forEach(k => {
33
+ if (k in global1) window[k] = global1[k];
61
34
  });
62
35
  window.globalThis = window.global = window.top = window.window = window;
63
- extendIfNeeded(window, global1);
64
36
  module.exports = window;
65
37
  }
@@ -2,7 +2,6 @@
2
2
  display: inline-block;
3
3
  width: auto;
4
4
  height: auto;
5
- background-color: #fff;
6
5
  box-shadow: 0 0 20px -6px rgba(0, 0, 0, .1);
7
6
  border: 1px solid #0003;
8
7
  padding: 6px 0;
@@ -169,6 +169,11 @@ var popup_with_mask = function (element, mask) {
169
169
  var isypop = function (target) {
170
170
  if (!target) return false;
171
171
  var { offsetParent, nextSibling, previousSibling } = target;
172
+ if (
173
+ target.offsetWidth >= (innerWidth >> 1) &&
174
+ target.offsetHeight < (innerHeight >> 1) ||
175
+ offsetParent.offsetWidth >= (innerWidth >> 1) &&
176
+ offsetParent.offsetHeight < (innerHeight >> 1)) return true;
172
177
  if (
173
178
  nextSibling
174
179
  && (
@@ -183,7 +188,6 @@ var isypop = function (target) {
183
188
  ) return true;
184
189
  var padding = offsetParent ? parseFloat(getComputedStyle(offsetParent).paddingTop) + parseFloat(getComputedStyle(offsetParent).paddingBottom) : 0;
185
190
  if (offsetParent && target.offsetTop / target.offsetHeight < .2 && (offsetParent.clientWidth - padding) / target.offsetWidth > 1.5) return true;
186
-
187
191
  };
188
192
  var isxpop = arriswise(isypop, arguments);
189
193
  var popup_as_extra = function (element, target, style) {
@@ -159,6 +159,10 @@ function ybox(generator) {
159
159
  box = getTargetIn(e => e === _box || /^(?:auto|scroll)$/i.test(getComputedStyle(e).overflowY) && e.scrollHeight - e.scrollTop > e.clientHeight, event.target);
160
160
  }
161
161
  if (box === _box) {
162
+ var wheelDelta = event.wheelDelta;
163
+ if (wheelDelta && wheelDelta !== deltay) {
164
+ deltay /= 6;
165
+ }
162
166
  scrollY.call(_box, -deltay, false);
163
167
  stop2();
164
168
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "efront",
3
- "version": "4.13.2",
3
+ "version": "4.14.2",
4
4
  "description": "简化前端开发,优化web性能",
5
5
  "main": "public/efront.js",
6
6
  "directories": {