backdoor-vconsole 1.1.1 → 1.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/dist/index.cjs.js +86 -106
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.d.ts +31 -0
- package/dist/index.min.mjs +1 -1
- package/dist/index.mjs +86 -106
- package/package.json +9 -1
- package/dist/index.cjs.js.map +0 -1
- package/dist/index.mjs.map +0 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1,120 +1,100 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
|
|
4
3
|
var VConsole = require('vconsole');
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
const DEFAULT_CONFIG = {
|
|
6
|
+
COUNT: 7,
|
|
7
|
+
INTERVAL: 300,
|
|
8
|
+
DURATION: 7 * 1000,
|
|
9
|
+
CLOSE_COUNT: 10,
|
|
10
|
+
CLOSE_DURATION: 10 * 1000,
|
|
12
11
|
};
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
var isMobile = function isMobile() {
|
|
25
|
-
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
26
|
-
};
|
|
27
|
-
var getTarget = function getTarget(target) {
|
|
28
|
-
if (typeof target === "string") {
|
|
29
|
-
var t = document.querySelector(target);
|
|
30
|
-
if (t) {
|
|
31
|
-
return t;
|
|
32
|
-
} else {
|
|
33
|
-
throw new Error("can not find target");
|
|
12
|
+
let vConsoleInstance = null;
|
|
13
|
+
const toggleVConsole = () => {
|
|
14
|
+
if (vConsoleInstance) {
|
|
15
|
+
vConsoleInstance.destroy();
|
|
16
|
+
vConsoleInstance = null;
|
|
17
|
+
console.log("vConsole is closed");
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
vConsoleInstance = new VConsole();
|
|
21
|
+
console.log("vConsole is started", vConsoleInstance);
|
|
34
22
|
}
|
|
35
|
-
} else if (target instanceof HTMLElement) {
|
|
36
|
-
return target;
|
|
37
|
-
} else {
|
|
38
|
-
throw new Error("target is required");
|
|
39
|
-
}
|
|
40
23
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
var threshold = vConsoleInstance ? closeCount : openCount;
|
|
58
|
-
if (clickCount === threshold) {
|
|
59
|
-
toggleVConsole();
|
|
60
|
-
clickCount = 0;
|
|
24
|
+
const isMobile = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
25
|
+
const getTarget = (target) => {
|
|
26
|
+
if (typeof target === "string") {
|
|
27
|
+
const t = document.querySelector(target);
|
|
28
|
+
if (t instanceof HTMLElement) {
|
|
29
|
+
return t;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
throw new Error(`can not find target`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else if (target instanceof HTMLElement) {
|
|
36
|
+
return target;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
throw new Error("target is required");
|
|
61
40
|
}
|
|
62
|
-
clickTimer = setTimeout(function () {
|
|
63
|
-
clickCount = 0;
|
|
64
|
-
}, interval);
|
|
65
|
-
};
|
|
66
|
-
t.addEventListener("click", handler);
|
|
67
|
-
return function () {
|
|
68
|
-
t.removeEventListener("click", handler);
|
|
69
|
-
clearTimeout(clickTimer);
|
|
70
|
-
};
|
|
71
41
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
clearTimer()
|
|
114
|
-
|
|
42
|
+
/**
|
|
43
|
+
* 快速点击 - 点击 openCount 次开启,点击 closeCount 次关闭
|
|
44
|
+
*/
|
|
45
|
+
const rapidClicks = (options) => {
|
|
46
|
+
const { target, openCount = DEFAULT_CONFIG.COUNT, closeCount = DEFAULT_CONFIG.CLOSE_COUNT, interval = DEFAULT_CONFIG.INTERVAL } = options;
|
|
47
|
+
const t = getTarget(target);
|
|
48
|
+
let clickTimer = null;
|
|
49
|
+
let clickCount = 0;
|
|
50
|
+
const handler = () => {
|
|
51
|
+
if (clickTimer)
|
|
52
|
+
clearTimeout(clickTimer);
|
|
53
|
+
clickCount += 1;
|
|
54
|
+
const threshold = vConsoleInstance ? closeCount : openCount;
|
|
55
|
+
if (clickCount === threshold) {
|
|
56
|
+
toggleVConsole();
|
|
57
|
+
clickCount = 0;
|
|
58
|
+
}
|
|
59
|
+
clickTimer = setTimeout(() => {
|
|
60
|
+
clickCount = 0;
|
|
61
|
+
}, interval);
|
|
62
|
+
};
|
|
63
|
+
t.addEventListener("click", handler);
|
|
64
|
+
return () => {
|
|
65
|
+
t.removeEventListener("click", handler);
|
|
66
|
+
if (clickTimer)
|
|
67
|
+
clearTimeout(clickTimer);
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* 长按 - 长按 openDuration 开启,长按 closeDuration 关闭
|
|
72
|
+
*/
|
|
73
|
+
const longPress = (options) => {
|
|
74
|
+
const { target, openDuration = DEFAULT_CONFIG.DURATION, closeDuration = DEFAULT_CONFIG.CLOSE_DURATION } = options;
|
|
75
|
+
const t = getTarget(target);
|
|
76
|
+
let timer = null;
|
|
77
|
+
const onPress = () => {
|
|
78
|
+
if (timer)
|
|
79
|
+
clearTimeout(timer);
|
|
80
|
+
const duration = vConsoleInstance ? closeDuration : openDuration;
|
|
81
|
+
timer = setTimeout(toggleVConsole, duration);
|
|
82
|
+
};
|
|
83
|
+
const clearTimer = () => {
|
|
84
|
+
if (timer)
|
|
85
|
+
clearTimeout(timer);
|
|
86
|
+
timer = null;
|
|
87
|
+
};
|
|
88
|
+
const events = isMobile()
|
|
89
|
+
? { touchstart: onPress, touchend: clearTimer, touchcancel: clearTimer }
|
|
90
|
+
: { mousedown: onPress, mouseup: clearTimer, mouseleave: clearTimer };
|
|
91
|
+
Object.entries(events).forEach(([event, handler]) => t.addEventListener(event, handler));
|
|
92
|
+
return () => {
|
|
93
|
+
Object.entries(events).forEach(([event, handler]) => t.removeEventListener(event, handler));
|
|
94
|
+
clearTimer();
|
|
95
|
+
};
|
|
115
96
|
};
|
|
116
97
|
|
|
117
98
|
exports.longPress = longPress;
|
|
118
99
|
exports.rapidClicks = rapidClicks;
|
|
119
100
|
exports.toggleVConsole = toggleVConsole;
|
|
120
|
-
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("
|
|
1
|
+
"use strict";var e=require("vconsole");const t={COUNT:7,INTERVAL:300,DURATION:7e3,CLOSE_COUNT:10,CLOSE_DURATION:1e4};let o=null;const n=()=>{o?(o.destroy(),o=null,console.log("vConsole is closed")):(o=new e,console.log("vConsole is started",o))},r=e=>{if("string"==typeof e){const t=document.querySelector(e);if(t instanceof HTMLElement)return t;throw new Error("can not find target")}if(e instanceof HTMLElement)return e;throw new Error("target is required")};exports.longPress=e=>{const{target:s,openDuration:i=t.DURATION,closeDuration:l=t.CLOSE_DURATION}=e,c=r(s);let u=null;const a=()=>{u&&clearTimeout(u);u=setTimeout(n,o?l:i)},T=()=>{u&&clearTimeout(u),u=null},d=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)?{touchstart:a,touchend:T,touchcancel:T}:{mousedown:a,mouseup:T,mouseleave:T};return Object.entries(d).forEach(([e,t])=>c.addEventListener(e,t)),()=>{Object.entries(d).forEach(([e,t])=>c.removeEventListener(e,t)),T()}},exports.rapidClicks=e=>{const{target:s,openCount:i=t.COUNT,closeCount:l=t.CLOSE_COUNT,interval:c=t.INTERVAL}=e,u=r(s);let a=null,T=0;const d=()=>{a&&clearTimeout(a),T+=1;T===(o?l:i)&&(n(),T=0),a=setTimeout(()=>{T=0},c)};return u.addEventListener("click",d),()=>{u.removeEventListener("click",d),a&&clearTimeout(a)}},exports.toggleVConsole=n;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
declare const toggleVConsole: () => void;
|
|
2
|
+
export interface RapidClicksOptions {
|
|
3
|
+
/** 选择器或 HTMLElement */
|
|
4
|
+
target: string | HTMLElement;
|
|
5
|
+
/** 开启次数,默认 7 */
|
|
6
|
+
openCount?: number;
|
|
7
|
+
/** 关闭次数,默认 10 */
|
|
8
|
+
closeCount?: number;
|
|
9
|
+
/** 点击间隔,默认 300ms */
|
|
10
|
+
interval?: number;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* 快速点击 - 点击 openCount 次开启,点击 closeCount 次关闭
|
|
14
|
+
*/
|
|
15
|
+
export declare const rapidClicks: (options: RapidClicksOptions) => (() => void);
|
|
16
|
+
export interface LongPressOptions {
|
|
17
|
+
/** 选择器或 HTMLElement */
|
|
18
|
+
target: string | HTMLElement;
|
|
19
|
+
/** 开启时长,默认 7000ms */
|
|
20
|
+
openDuration?: number;
|
|
21
|
+
/** 关闭时长,默认 10000ms */
|
|
22
|
+
closeDuration?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 长按 - 长按 openDuration 开启,长按 closeDuration 关闭
|
|
26
|
+
*/
|
|
27
|
+
export declare const longPress: (options: LongPressOptions) => (() => void);
|
|
28
|
+
/**
|
|
29
|
+
* 手动切换 vConsole 开关状态
|
|
30
|
+
*/
|
|
31
|
+
export { toggleVConsole };
|
package/dist/index.min.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"
|
|
1
|
+
import e from"vconsole";const t={COUNT:7,INTERVAL:300,DURATION:7e3,CLOSE_COUNT:10,CLOSE_DURATION:1e4};let o=null;const n=()=>{o?(o.destroy(),o=null,console.log("vConsole is closed")):(o=new e,console.log("vConsole is started",o))},r=e=>{if("string"==typeof e){const t=document.querySelector(e);if(t instanceof HTMLElement)return t;throw new Error("can not find target")}if(e instanceof HTMLElement)return e;throw new Error("target is required")},i=e=>{const{target:i,openCount:l=t.COUNT,closeCount:s=t.CLOSE_COUNT,interval:c=t.INTERVAL}=e,u=r(i);let a=null,T=0;const E=()=>{a&&clearTimeout(a),T+=1;T===(o?s:l)&&(n(),T=0),a=setTimeout(()=>{T=0},c)};return u.addEventListener("click",E),()=>{u.removeEventListener("click",E),a&&clearTimeout(a)}},l=e=>{const{target:i,openDuration:l=t.DURATION,closeDuration:s=t.CLOSE_DURATION}=e,c=r(i);let u=null;const a=()=>{u&&clearTimeout(u);u=setTimeout(n,o?s:l)},T=()=>{u&&clearTimeout(u),u=null},E=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)?{touchstart:a,touchend:T,touchcancel:T}:{mousedown:a,mouseup:T,mouseleave:T};return Object.entries(E).forEach(([e,t])=>c.addEventListener(e,t)),()=>{Object.entries(E).forEach(([e,t])=>c.removeEventListener(e,t)),T()}};export{l as longPress,i as rapidClicks,n as toggleVConsole};
|
package/dist/index.mjs
CHANGED
|
@@ -1,116 +1,96 @@
|
|
|
1
|
-
import _slicedToArray from '@babel/runtime-corejs3/helpers/slicedToArray';
|
|
2
1
|
import VConsole from 'vconsole';
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
const DEFAULT_CONFIG = {
|
|
4
|
+
COUNT: 7,
|
|
5
|
+
INTERVAL: 300,
|
|
6
|
+
DURATION: 7 * 1000,
|
|
7
|
+
CLOSE_COUNT: 10,
|
|
8
|
+
CLOSE_DURATION: 10 * 1000,
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
};
|
|
22
|
-
var isMobile = function isMobile() {
|
|
23
|
-
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
24
|
-
};
|
|
25
|
-
var getTarget = function getTarget(target) {
|
|
26
|
-
if (typeof target === "string") {
|
|
27
|
-
var t = document.querySelector(target);
|
|
28
|
-
if (t) {
|
|
29
|
-
return t;
|
|
30
|
-
} else {
|
|
31
|
-
throw new Error("can not find target");
|
|
10
|
+
let vConsoleInstance = null;
|
|
11
|
+
const toggleVConsole = () => {
|
|
12
|
+
if (vConsoleInstance) {
|
|
13
|
+
vConsoleInstance.destroy();
|
|
14
|
+
vConsoleInstance = null;
|
|
15
|
+
console.log("vConsole is closed");
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
vConsoleInstance = new VConsole();
|
|
19
|
+
console.log("vConsole is started", vConsoleInstance);
|
|
32
20
|
}
|
|
33
|
-
} else if (target instanceof HTMLElement) {
|
|
34
|
-
return target;
|
|
35
|
-
} else {
|
|
36
|
-
throw new Error("target is required");
|
|
37
|
-
}
|
|
38
21
|
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
var threshold = vConsoleInstance ? closeCount : openCount;
|
|
56
|
-
if (clickCount === threshold) {
|
|
57
|
-
toggleVConsole();
|
|
58
|
-
clickCount = 0;
|
|
22
|
+
const isMobile = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
|
|
23
|
+
const getTarget = (target) => {
|
|
24
|
+
if (typeof target === "string") {
|
|
25
|
+
const t = document.querySelector(target);
|
|
26
|
+
if (t instanceof HTMLElement) {
|
|
27
|
+
return t;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
throw new Error(`can not find target`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else if (target instanceof HTMLElement) {
|
|
34
|
+
return target;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
throw new Error("target is required");
|
|
59
38
|
}
|
|
60
|
-
clickTimer = setTimeout(function () {
|
|
61
|
-
clickCount = 0;
|
|
62
|
-
}, interval);
|
|
63
|
-
};
|
|
64
|
-
t.addEventListener("click", handler);
|
|
65
|
-
return function () {
|
|
66
|
-
t.removeEventListener("click", handler);
|
|
67
|
-
clearTimeout(clickTimer);
|
|
68
|
-
};
|
|
69
39
|
};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
clearTimer()
|
|
112
|
-
|
|
40
|
+
/**
|
|
41
|
+
* 快速点击 - 点击 openCount 次开启,点击 closeCount 次关闭
|
|
42
|
+
*/
|
|
43
|
+
const rapidClicks = (options) => {
|
|
44
|
+
const { target, openCount = DEFAULT_CONFIG.COUNT, closeCount = DEFAULT_CONFIG.CLOSE_COUNT, interval = DEFAULT_CONFIG.INTERVAL } = options;
|
|
45
|
+
const t = getTarget(target);
|
|
46
|
+
let clickTimer = null;
|
|
47
|
+
let clickCount = 0;
|
|
48
|
+
const handler = () => {
|
|
49
|
+
if (clickTimer)
|
|
50
|
+
clearTimeout(clickTimer);
|
|
51
|
+
clickCount += 1;
|
|
52
|
+
const threshold = vConsoleInstance ? closeCount : openCount;
|
|
53
|
+
if (clickCount === threshold) {
|
|
54
|
+
toggleVConsole();
|
|
55
|
+
clickCount = 0;
|
|
56
|
+
}
|
|
57
|
+
clickTimer = setTimeout(() => {
|
|
58
|
+
clickCount = 0;
|
|
59
|
+
}, interval);
|
|
60
|
+
};
|
|
61
|
+
t.addEventListener("click", handler);
|
|
62
|
+
return () => {
|
|
63
|
+
t.removeEventListener("click", handler);
|
|
64
|
+
if (clickTimer)
|
|
65
|
+
clearTimeout(clickTimer);
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* 长按 - 长按 openDuration 开启,长按 closeDuration 关闭
|
|
70
|
+
*/
|
|
71
|
+
const longPress = (options) => {
|
|
72
|
+
const { target, openDuration = DEFAULT_CONFIG.DURATION, closeDuration = DEFAULT_CONFIG.CLOSE_DURATION } = options;
|
|
73
|
+
const t = getTarget(target);
|
|
74
|
+
let timer = null;
|
|
75
|
+
const onPress = () => {
|
|
76
|
+
if (timer)
|
|
77
|
+
clearTimeout(timer);
|
|
78
|
+
const duration = vConsoleInstance ? closeDuration : openDuration;
|
|
79
|
+
timer = setTimeout(toggleVConsole, duration);
|
|
80
|
+
};
|
|
81
|
+
const clearTimer = () => {
|
|
82
|
+
if (timer)
|
|
83
|
+
clearTimeout(timer);
|
|
84
|
+
timer = null;
|
|
85
|
+
};
|
|
86
|
+
const events = isMobile()
|
|
87
|
+
? { touchstart: onPress, touchend: clearTimer, touchcancel: clearTimer }
|
|
88
|
+
: { mousedown: onPress, mouseup: clearTimer, mouseleave: clearTimer };
|
|
89
|
+
Object.entries(events).forEach(([event, handler]) => t.addEventListener(event, handler));
|
|
90
|
+
return () => {
|
|
91
|
+
Object.entries(events).forEach(([event, handler]) => t.removeEventListener(event, handler));
|
|
92
|
+
clearTimer();
|
|
93
|
+
};
|
|
113
94
|
};
|
|
114
95
|
|
|
115
96
|
export { longPress, rapidClicks, toggleVConsole };
|
|
116
|
-
//# sourceMappingURL=index.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "backdoor-vconsole",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "programmer backdoor trigger incident",
|
|
5
5
|
"homepage": "https://github.com/jackzer666/backdoor-vconsole",
|
|
6
6
|
"license": "MIT",
|
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "dist/index.cjs.min.js",
|
|
10
10
|
"module": "dist/index.min.mjs",
|
|
11
|
+
"types": "dist/index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.min.mjs",
|
|
16
|
+
"require": "./dist/index.cjs.min.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
11
19
|
"files": [
|
|
12
20
|
"dist"
|
|
13
21
|
],
|
package/dist/index.cjs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../index.js"],"sourcesContent":["import VConsole from \"vconsole\";\n\nconst DEFAULT_CONFIG = {\n COUNT: 7,\n INTERVAL: 300,\n DURATION: 7 * 1000,\n CLOSE_COUNT: 10,\n CLOSE_INTERVAL: 300,\n CLOSE_DURATION: 10 * 1000,\n};\n\nlet vConsoleInstance = null;\n\nconst toggleVConsole = () => {\n if (vConsoleInstance) {\n vConsoleInstance.destroy();\n vConsoleInstance = null;\n console.log(\"vConsole is closed\");\n } else {\n vConsoleInstance = new VConsole();\n console.log(\"vConsole is started\", vConsoleInstance);\n }\n};\n\nconst isMobile = () =>\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n\nconst getTarget = (target) => {\n if (typeof target === \"string\") {\n const t = document.querySelector(target);\n if (t) {\n return t;\n } else {\n throw new Error(`can not find target`);\n }\n } else if (target instanceof HTMLElement) {\n return target;\n } else {\n throw new Error(\"target is required\");\n }\n};\n\n// 快速点击 - 点击 openCount 次开启,点击 closeCount 次关闭\nconst rapidClicks = ({\n target,\n openCount = DEFAULT_CONFIG.COUNT,\n closeCount = DEFAULT_CONFIG.CLOSE_COUNT,\n interval = DEFAULT_CONFIG.INTERVAL,\n}) => {\n const t = getTarget(target);\n let clickTimer = null;\n let clickCount = 0;\n\n const handler = () => {\n clearTimeout(clickTimer);\n clickCount += 1;\n const threshold = vConsoleInstance ? closeCount : openCount;\n if (clickCount === threshold) {\n toggleVConsole();\n clickCount = 0;\n }\n clickTimer = setTimeout(() => {\n clickCount = 0;\n }, interval);\n };\n\n t.addEventListener(\"click\", handler);\n\n return () => {\n t.removeEventListener(\"click\", handler);\n clearTimeout(clickTimer);\n };\n};\n\n// 长按 - 长按 openDuration 开启,长按 closeDuration 关闭\nconst longPress = ({\n target,\n openDuration = DEFAULT_CONFIG.DURATION,\n closeDuration = DEFAULT_CONFIG.CLOSE_DURATION,\n}) => {\n const t = getTarget(target);\n let timer = null;\n\n const onPress = () => {\n clearTimeout(timer);\n const duration = vConsoleInstance ? closeDuration : openDuration;\n timer = setTimeout(toggleVConsole, duration);\n };\n\n const clearTimer = () => {\n clearTimeout(timer);\n timer = null;\n };\n\n const events = isMobile()\n ? { touchstart: onPress, touchend: clearTimer, touchcancel: clearTimer }\n : { mousedown: onPress, mouseup: clearTimer, mouseleave: clearTimer };\n\n Object.entries(events).forEach(([event, handler]) =>\n t.addEventListener(event, handler)\n );\n\n return () => {\n Object.entries(events).forEach(([event, handler]) =>\n t.removeEventListener(event, handler)\n );\n clearTimer();\n };\n};\n\nexport { rapidClicks, longPress, toggleVConsole };\n"],"names":["DEFAULT_CONFIG","COUNT","INTERVAL","DURATION","CLOSE_COUNT","CLOSE_INTERVAL","CLOSE_DURATION","vConsoleInstance","toggleVConsole","destroy","console","log","VConsole","isMobile","test","navigator","userAgent","getTarget","target","t","document","querySelector","Error","HTMLElement","rapidClicks","_ref","_ref$openCount","openCount","_ref$closeCount","closeCount","_ref$interval","interval","clickTimer","clickCount","handler","clearTimeout","threshold","setTimeout","addEventListener","removeEventListener","longPress","_ref2","_ref2$openDuration","openDuration","_ref2$closeDuration","closeDuration","timer","onPress","duration","clearTimer","events","touchstart","touchend","touchcancel","mousedown","mouseup","mouseleave","Object","entries","forEach","_ref3","_ref4","_slicedToArray","event","_ref5","_ref6"],"mappings":"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"}
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../index.js"],"sourcesContent":["import VConsole from \"vconsole\";\n\nconst DEFAULT_CONFIG = {\n COUNT: 7,\n INTERVAL: 300,\n DURATION: 7 * 1000,\n CLOSE_COUNT: 10,\n CLOSE_INTERVAL: 300,\n CLOSE_DURATION: 10 * 1000,\n};\n\nlet vConsoleInstance = null;\n\nconst toggleVConsole = () => {\n if (vConsoleInstance) {\n vConsoleInstance.destroy();\n vConsoleInstance = null;\n console.log(\"vConsole is closed\");\n } else {\n vConsoleInstance = new VConsole();\n console.log(\"vConsole is started\", vConsoleInstance);\n }\n};\n\nconst isMobile = () =>\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n\nconst getTarget = (target) => {\n if (typeof target === \"string\") {\n const t = document.querySelector(target);\n if (t) {\n return t;\n } else {\n throw new Error(`can not find target`);\n }\n } else if (target instanceof HTMLElement) {\n return target;\n } else {\n throw new Error(\"target is required\");\n }\n};\n\n// 快速点击 - 点击 openCount 次开启,点击 closeCount 次关闭\nconst rapidClicks = ({\n target,\n openCount = DEFAULT_CONFIG.COUNT,\n closeCount = DEFAULT_CONFIG.CLOSE_COUNT,\n interval = DEFAULT_CONFIG.INTERVAL,\n}) => {\n const t = getTarget(target);\n let clickTimer = null;\n let clickCount = 0;\n\n const handler = () => {\n clearTimeout(clickTimer);\n clickCount += 1;\n const threshold = vConsoleInstance ? closeCount : openCount;\n if (clickCount === threshold) {\n toggleVConsole();\n clickCount = 0;\n }\n clickTimer = setTimeout(() => {\n clickCount = 0;\n }, interval);\n };\n\n t.addEventListener(\"click\", handler);\n\n return () => {\n t.removeEventListener(\"click\", handler);\n clearTimeout(clickTimer);\n };\n};\n\n// 长按 - 长按 openDuration 开启,长按 closeDuration 关闭\nconst longPress = ({\n target,\n openDuration = DEFAULT_CONFIG.DURATION,\n closeDuration = DEFAULT_CONFIG.CLOSE_DURATION,\n}) => {\n const t = getTarget(target);\n let timer = null;\n\n const onPress = () => {\n clearTimeout(timer);\n const duration = vConsoleInstance ? closeDuration : openDuration;\n timer = setTimeout(toggleVConsole, duration);\n };\n\n const clearTimer = () => {\n clearTimeout(timer);\n timer = null;\n };\n\n const events = isMobile()\n ? { touchstart: onPress, touchend: clearTimer, touchcancel: clearTimer }\n : { mousedown: onPress, mouseup: clearTimer, mouseleave: clearTimer };\n\n Object.entries(events).forEach(([event, handler]) =>\n t.addEventListener(event, handler)\n );\n\n return () => {\n Object.entries(events).forEach(([event, handler]) =>\n t.removeEventListener(event, handler)\n );\n clearTimer();\n };\n};\n\nexport { rapidClicks, longPress, toggleVConsole };\n"],"names":["DEFAULT_CONFIG","COUNT","INTERVAL","DURATION","CLOSE_COUNT","CLOSE_INTERVAL","CLOSE_DURATION","vConsoleInstance","toggleVConsole","destroy","console","log","VConsole","isMobile","test","navigator","userAgent","getTarget","target","t","document","querySelector","Error","HTMLElement","rapidClicks","_ref","_ref$openCount","openCount","_ref$closeCount","closeCount","_ref$interval","interval","clickTimer","clickCount","handler","clearTimeout","threshold","setTimeout","addEventListener","removeEventListener","longPress","_ref2","_ref2$openDuration","openDuration","_ref2$closeDuration","closeDuration","timer","onPress","duration","clearTimer","events","touchstart","touchend","touchcancel","mousedown","mouseup","mouseleave","Object","entries","forEach","_ref3","_ref4","_slicedToArray","event","_ref5","_ref6"],"mappings":"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"}
|