@whitesev/pops 2.0.7 → 2.0.8
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.amd.js +380 -55
- package/dist/index.amd.js.map +1 -1
- package/dist/index.cjs.js +380 -55
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +380 -55
- package/dist/index.esm.js.map +1 -1
- package/dist/index.iife.js +380 -55
- package/dist/index.iife.js.map +1 -1
- package/dist/index.system.js +380 -55
- package/dist/index.system.js.map +1 -1
- package/dist/index.umd.js +380 -55
- package/dist/index.umd.js.map +1 -1
- package/dist/types/src/Pops.d.ts +549 -199
- package/dist/types/src/components/rightClickMenu/index.d.ts +545 -199
- package/dist/types/src/components/tooltip/index.d.ts +9 -2
- package/dist/types/src/components/tooltip/indexType.d.ts +6 -4
- package/dist/types/src/utils/PopsUtils.d.ts +16 -0
- package/package.json +6 -5
- package/src/Pops.ts +2 -2
- package/src/components/drawer/index.ts +2 -2
- package/src/components/folder/index.ts +2 -2
- package/src/components/iframe/index.ts +1 -1
- package/src/components/panel/PanelHandleContentDetails.ts +9 -9
- package/src/components/rightClickMenu/index.ts +1 -1
- package/src/components/searchSuggestion/index.ts +2 -2
- package/src/components/tooltip/index.ts +56 -16
- package/src/components/tooltip/indexType.ts +11 -4
- package/src/utils/PopsDOMUtils.ts +1 -1
- package/src/utils/PopsInstanceUtils.ts +6 -6
- package/src/utils/PopsUtils.ts +53 -1
package/dist/index.system.js
CHANGED
|
@@ -5,12 +5,6 @@ System.register('pops', [], (function (exports) {
|
|
|
5
5
|
|
|
6
6
|
const SymbolEvents = Symbol("events_" + (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1));
|
|
7
7
|
|
|
8
|
-
const PopsCoreDefaultEnv = {
|
|
9
|
-
document: document,
|
|
10
|
-
window: window,
|
|
11
|
-
globalThis: globalThis,
|
|
12
|
-
self: self,
|
|
13
|
-
};
|
|
14
8
|
const PopsCoreEnv = {
|
|
15
9
|
document: document,
|
|
16
10
|
window: window,
|
|
@@ -18,12 +12,6 @@ System.register('pops', [], (function (exports) {
|
|
|
18
12
|
self: self,
|
|
19
13
|
};
|
|
20
14
|
const PopsCore = {
|
|
21
|
-
init(option) {
|
|
22
|
-
if (!option) {
|
|
23
|
-
option = Object.assign({}, PopsCoreDefaultEnv);
|
|
24
|
-
}
|
|
25
|
-
Object.assign(PopsCoreEnv, option);
|
|
26
|
-
},
|
|
27
15
|
get document() {
|
|
28
16
|
return PopsCoreEnv.document;
|
|
29
17
|
},
|
|
@@ -43,21 +31,266 @@ System.register('pops', [], (function (exports) {
|
|
|
43
31
|
},
|
|
44
32
|
};
|
|
45
33
|
|
|
46
|
-
|
|
34
|
+
const createCache = (lastNumberWeakMap) => {
|
|
35
|
+
return (collection, nextNumber) => {
|
|
36
|
+
lastNumberWeakMap.set(collection, nextNumber);
|
|
37
|
+
return nextNumber;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/*
|
|
42
|
+
* The value of the constant Number.MAX_SAFE_INTEGER equals (2 ** 53 - 1) but it
|
|
43
|
+
* is fairly new.
|
|
44
|
+
*/
|
|
45
|
+
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER === undefined ? 9007199254740991 : Number.MAX_SAFE_INTEGER;
|
|
46
|
+
const TWO_TO_THE_POWER_OF_TWENTY_NINE = 536870912;
|
|
47
|
+
const TWO_TO_THE_POWER_OF_THIRTY = TWO_TO_THE_POWER_OF_TWENTY_NINE * 2;
|
|
48
|
+
const createGenerateUniqueNumber = (cache, lastNumberWeakMap) => {
|
|
49
|
+
return (collection) => {
|
|
50
|
+
const lastNumber = lastNumberWeakMap.get(collection);
|
|
51
|
+
/*
|
|
52
|
+
* Let's try the cheapest algorithm first. It might fail to produce a new
|
|
53
|
+
* number, but it is so cheap that it is okay to take the risk. Just
|
|
54
|
+
* increase the last number by one or reset it to 0 if we reached the upper
|
|
55
|
+
* bound of SMIs (which stands for small integers). When the last number is
|
|
56
|
+
* unknown it is assumed that the collection contains zero based consecutive
|
|
57
|
+
* numbers.
|
|
58
|
+
*/
|
|
59
|
+
let nextNumber = lastNumber === undefined ? collection.size : lastNumber < TWO_TO_THE_POWER_OF_THIRTY ? lastNumber + 1 : 0;
|
|
60
|
+
if (!collection.has(nextNumber)) {
|
|
61
|
+
return cache(collection, nextNumber);
|
|
62
|
+
}
|
|
63
|
+
/*
|
|
64
|
+
* If there are less than half of 2 ** 30 numbers stored in the collection,
|
|
65
|
+
* the chance to generate a new random number in the range from 0 to 2 ** 30
|
|
66
|
+
* is at least 50%. It's benifitial to use only SMIs because they perform
|
|
67
|
+
* much better in any environment based on V8.
|
|
68
|
+
*/
|
|
69
|
+
if (collection.size < TWO_TO_THE_POWER_OF_TWENTY_NINE) {
|
|
70
|
+
while (collection.has(nextNumber)) {
|
|
71
|
+
nextNumber = Math.floor(Math.random() * TWO_TO_THE_POWER_OF_THIRTY);
|
|
72
|
+
}
|
|
73
|
+
return cache(collection, nextNumber);
|
|
74
|
+
}
|
|
75
|
+
// Quickly check if there is a theoretical chance to generate a new number.
|
|
76
|
+
if (collection.size > MAX_SAFE_INTEGER) {
|
|
77
|
+
throw new Error('Congratulations, you created a collection of unique numbers which uses all available integers!');
|
|
78
|
+
}
|
|
79
|
+
// Otherwise use the full scale of safely usable integers.
|
|
80
|
+
while (collection.has(nextNumber)) {
|
|
81
|
+
nextNumber = Math.floor(Math.random() * MAX_SAFE_INTEGER);
|
|
82
|
+
}
|
|
83
|
+
return cache(collection, nextNumber);
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const LAST_NUMBER_WEAK_MAP = new WeakMap();
|
|
88
|
+
const cache = createCache(LAST_NUMBER_WEAK_MAP);
|
|
89
|
+
const generateUniqueNumber = createGenerateUniqueNumber(cache, LAST_NUMBER_WEAK_MAP);
|
|
90
|
+
|
|
91
|
+
const isMessagePort = (sender) => {
|
|
92
|
+
return typeof sender.start === 'function';
|
|
93
|
+
};
|
|
47
94
|
|
|
48
|
-
const
|
|
95
|
+
const PORT_MAP = new WeakMap();
|
|
49
96
|
|
|
50
|
-
|
|
97
|
+
const extendBrokerImplementation = (partialBrokerImplementation) => ({
|
|
98
|
+
...partialBrokerImplementation,
|
|
99
|
+
connect: ({ call }) => {
|
|
100
|
+
return async () => {
|
|
101
|
+
const { port1, port2 } = new MessageChannel();
|
|
102
|
+
const portId = await call('connect', { port: port1 }, [port1]);
|
|
103
|
+
PORT_MAP.set(port2, portId);
|
|
104
|
+
return port2;
|
|
105
|
+
};
|
|
106
|
+
},
|
|
107
|
+
disconnect: ({ call }) => {
|
|
108
|
+
return async (port) => {
|
|
109
|
+
const portId = PORT_MAP.get(port);
|
|
110
|
+
if (portId === undefined) {
|
|
111
|
+
throw new Error('The given port is not connected.');
|
|
112
|
+
}
|
|
113
|
+
await call('disconnect', { portId });
|
|
114
|
+
};
|
|
115
|
+
},
|
|
116
|
+
isSupported: ({ call }) => {
|
|
117
|
+
return () => call('isSupported');
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
const ONGOING_REQUESTS = new WeakMap();
|
|
122
|
+
const createOrGetOngoingRequests = (sender) => {
|
|
123
|
+
if (ONGOING_REQUESTS.has(sender)) {
|
|
124
|
+
// @todo TypeScript needs to be convinced that has() works as expected.
|
|
125
|
+
return ONGOING_REQUESTS.get(sender);
|
|
126
|
+
}
|
|
127
|
+
const ongoingRequests = new Map();
|
|
128
|
+
ONGOING_REQUESTS.set(sender, ongoingRequests);
|
|
129
|
+
return ongoingRequests;
|
|
130
|
+
};
|
|
131
|
+
const createBroker = (brokerImplementation) => {
|
|
132
|
+
const fullBrokerImplementation = extendBrokerImplementation(brokerImplementation);
|
|
133
|
+
return (sender) => {
|
|
134
|
+
const ongoingRequests = createOrGetOngoingRequests(sender);
|
|
135
|
+
sender.addEventListener('message', (({ data: message }) => {
|
|
136
|
+
const { id } = message;
|
|
137
|
+
if (id !== null && ongoingRequests.has(id)) {
|
|
138
|
+
const { reject, resolve } = ongoingRequests.get(id);
|
|
139
|
+
ongoingRequests.delete(id);
|
|
140
|
+
if (message.error === undefined) {
|
|
141
|
+
resolve(message.result);
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
reject(new Error(message.error.message));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}));
|
|
148
|
+
if (isMessagePort(sender)) {
|
|
149
|
+
sender.start();
|
|
150
|
+
}
|
|
151
|
+
const call = (method, params = null, transferables = []) => {
|
|
152
|
+
return new Promise((resolve, reject) => {
|
|
153
|
+
const id = generateUniqueNumber(ongoingRequests);
|
|
154
|
+
ongoingRequests.set(id, { reject, resolve });
|
|
155
|
+
if (params === null) {
|
|
156
|
+
sender.postMessage({ id, method }, transferables);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
sender.postMessage({ id, method, params }, transferables);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
};
|
|
163
|
+
const notify = (method, params, transferables = []) => {
|
|
164
|
+
sender.postMessage({ id: null, method, params }, transferables);
|
|
165
|
+
};
|
|
166
|
+
let functions = {};
|
|
167
|
+
for (const [key, handler] of Object.entries(fullBrokerImplementation)) {
|
|
168
|
+
functions = { ...functions, [key]: handler({ call, notify }) };
|
|
169
|
+
}
|
|
170
|
+
return { ...functions };
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
// Prefilling the Maps with a function indexed by zero is necessary to be compliant with the specification.
|
|
175
|
+
const scheduledIntervalsState = new Map([[0, null]]); // tslint:disable-line no-empty
|
|
176
|
+
const scheduledTimeoutsState = new Map([[0, null]]); // tslint:disable-line no-empty
|
|
177
|
+
const wrap = createBroker({
|
|
178
|
+
clearInterval: ({ call }) => {
|
|
179
|
+
return (timerId) => {
|
|
180
|
+
if (typeof scheduledIntervalsState.get(timerId) === 'symbol') {
|
|
181
|
+
scheduledIntervalsState.set(timerId, null);
|
|
182
|
+
call('clear', { timerId, timerType: 'interval' }).then(() => {
|
|
183
|
+
scheduledIntervalsState.delete(timerId);
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
},
|
|
188
|
+
clearTimeout: ({ call }) => {
|
|
189
|
+
return (timerId) => {
|
|
190
|
+
if (typeof scheduledTimeoutsState.get(timerId) === 'symbol') {
|
|
191
|
+
scheduledTimeoutsState.set(timerId, null);
|
|
192
|
+
call('clear', { timerId, timerType: 'timeout' }).then(() => {
|
|
193
|
+
scheduledTimeoutsState.delete(timerId);
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
},
|
|
198
|
+
setInterval: ({ call }) => {
|
|
199
|
+
return (func, delay = 0, ...args) => {
|
|
200
|
+
const symbol = Symbol();
|
|
201
|
+
const timerId = generateUniqueNumber(scheduledIntervalsState);
|
|
202
|
+
scheduledIntervalsState.set(timerId, symbol);
|
|
203
|
+
const schedule = () => call('set', {
|
|
204
|
+
delay,
|
|
205
|
+
now: performance.timeOrigin + performance.now(),
|
|
206
|
+
timerId,
|
|
207
|
+
timerType: 'interval'
|
|
208
|
+
}).then(() => {
|
|
209
|
+
const state = scheduledIntervalsState.get(timerId);
|
|
210
|
+
if (state === undefined) {
|
|
211
|
+
throw new Error('The timer is in an undefined state.');
|
|
212
|
+
}
|
|
213
|
+
if (state === symbol) {
|
|
214
|
+
func(...args);
|
|
215
|
+
// Doublecheck if the interval should still be rescheduled because it could have been cleared inside of func().
|
|
216
|
+
if (scheduledIntervalsState.get(timerId) === symbol) {
|
|
217
|
+
schedule();
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
schedule();
|
|
222
|
+
return timerId;
|
|
223
|
+
};
|
|
224
|
+
},
|
|
225
|
+
setTimeout: ({ call }) => {
|
|
226
|
+
return (func, delay = 0, ...args) => {
|
|
227
|
+
const symbol = Symbol();
|
|
228
|
+
const timerId = generateUniqueNumber(scheduledTimeoutsState);
|
|
229
|
+
scheduledTimeoutsState.set(timerId, symbol);
|
|
230
|
+
call('set', {
|
|
231
|
+
delay,
|
|
232
|
+
now: performance.timeOrigin + performance.now(),
|
|
233
|
+
timerId,
|
|
234
|
+
timerType: 'timeout'
|
|
235
|
+
}).then(() => {
|
|
236
|
+
const state = scheduledTimeoutsState.get(timerId);
|
|
237
|
+
if (state === undefined) {
|
|
238
|
+
throw new Error('The timer is in an undefined state.');
|
|
239
|
+
}
|
|
240
|
+
if (state === symbol) {
|
|
241
|
+
// A timeout can be savely deleted because it is only called once.
|
|
242
|
+
scheduledTimeoutsState.delete(timerId);
|
|
243
|
+
func(...args);
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
return timerId;
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
const load = (url) => {
|
|
251
|
+
const worker = new Worker(url);
|
|
252
|
+
return wrap(worker);
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
const createLoadOrReturnBroker = (loadBroker, worker) => {
|
|
256
|
+
let broker = null;
|
|
257
|
+
return () => {
|
|
258
|
+
if (broker !== null) {
|
|
259
|
+
return broker;
|
|
260
|
+
}
|
|
261
|
+
const blob = new Blob([worker], { type: 'application/javascript; charset=utf-8' });
|
|
262
|
+
const url = URL.createObjectURL(blob);
|
|
263
|
+
broker = loadBroker(url);
|
|
264
|
+
// Bug #1: Edge up until v18 didn't like the URL to be revoked directly.
|
|
265
|
+
setTimeout(() => URL.revokeObjectURL(url));
|
|
266
|
+
return broker;
|
|
267
|
+
};
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
// This is the minified and stringified code of the worker-timers-worker package.
|
|
271
|
+
const worker = `(()=>{var e={455:function(e,t){!function(e){"use strict";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,s=2*o,a=function(e,t){return function(r){var a=t.get(r),i=void 0===a?r.size:a<s?a+1:0;if(!r.has(i))return e(r,i);if(r.size<o){for(;r.has(i);)i=Math.floor(Math.random()*s);return e(r,i)}if(r.size>n)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,u=r(i),c=a(u,i),d=t(c);e.addUniqueNumber=d,e.generateUniqueNumber=c}(t)}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,r),s.exports}(()=>{"use strict";const e=-32603,t=-32602,n=-32601,o=(e,t)=>Object.assign(new Error(e),{status:t}),s=t=>o('The handler of the method called "'.concat(t,'" returned an unexpected result.'),e),a=(t,r)=>async({data:{id:a,method:i,params:u}})=>{const c=r[i];try{if(void 0===c)throw(e=>o('The requested method called "'.concat(e,'" is not supported.'),n))(i);const r=void 0===u?c():c(u);if(void 0===r)throw(t=>o('The handler of the method called "'.concat(t,'" returned no required result.'),e))(i);const d=r instanceof Promise?await r:r;if(null===a){if(void 0!==d.result)throw s(i)}else{if(void 0===d.result)throw s(i);const{result:e,transferables:r=[]}=d;t.postMessage({id:a,result:e},r)}}catch(e){const{message:r,status:n=-32603}=e;t.postMessage({error:{code:n,message:r},id:a})}};var i=r(455);const u=new Map,c=(e,r,n)=>({...r,connect:({port:t})=>{t.start();const n=e(t,r),o=(0,i.generateUniqueNumber)(u);return u.set(o,(()=>{n(),t.close(),u.delete(o)})),{result:o}},disconnect:({portId:e})=>{const r=u.get(e);if(void 0===r)throw(e=>o('The specified parameter called "portId" with the given value "'.concat(e,'" does not identify a port connected to this worker.'),t))(e);return r(),{result:null}},isSupported:async()=>{if(await new Promise((e=>{const t=new ArrayBuffer(0),{port1:r,port2:n}=new MessageChannel;r.onmessage=({data:t})=>e(null!==t),n.postMessage(t,[t])}))){const e=n();return{result:e instanceof Promise?await e:e}}return{result:!1}}}),d=(e,t,r=()=>!0)=>{const n=c(d,t,r),o=a(e,n);return e.addEventListener("message",o),()=>e.removeEventListener("message",o)},l=e=>t=>{const r=e.get(t);if(void 0===r)return Promise.resolve(!1);const[n,o]=r;return clearTimeout(n),e.delete(t),o(!1),Promise.resolve(!0)},f=(e,t,r)=>(n,o,s)=>{const{expected:a,remainingDelay:i}=e(n,o);return new Promise((e=>{t.set(s,[setTimeout(r,i,a,t,e,s),e])}))},m=(e,t)=>{const r=performance.now(),n=e+t-r-performance.timeOrigin;return{expected:r+n,remainingDelay:n}},p=(e,t,r,n)=>{const o=e-performance.now();o>0?t.set(n,[setTimeout(p,o,e,t,r,n),r]):(t.delete(n),r(!0))},h=new Map,v=l(h),w=new Map,g=l(w),M=f(m,h,p),y=f(m,w,p);d(self,{clear:async({timerId:e,timerType:t})=>({result:await("interval"===t?v(e):g(e))}),set:async({delay:e,now:t,timerId:r,timerType:n})=>({result:await("interval"===n?M:y)(e,t,r)})})})()})();`; // tslint:disable-line:max-line-length
|
|
272
|
+
|
|
273
|
+
const loadOrReturnBroker = createLoadOrReturnBroker(load, worker);
|
|
274
|
+
const clearInterval = (timerId) => loadOrReturnBroker().clearInterval(timerId);
|
|
275
|
+
const clearTimeout$1 = (timerId) => loadOrReturnBroker().clearTimeout(timerId);
|
|
276
|
+
const setInterval = (...args) => loadOrReturnBroker().setInterval(...args);
|
|
277
|
+
const setTimeout$1 = (...args) => loadOrReturnBroker().setTimeout(...args);
|
|
278
|
+
|
|
279
|
+
let t$1 = class t{constructor(){this.__map={};}beforeEach(t){this.__interceptor=t;}on(t,i){const s=Array.isArray(t)?t:[t];for(const t of s){this.__map[t]=this.__map[t]||[];const s=this.__map[t];s&&s.push(i);}return this}emit(t,i,s){ void 0!==this.__interceptor?this.__interceptor(t,(()=>{this.__emit(t,i),s&&s();})):(this.__emit(t,i),s&&s());}__emit(t,i){const s=this.__map[t];if(Array.isArray(s)&&(null==s?void 0:s.length))for(const _ of s)_(i,t);this.event=i;}off(t,i){const s=this.__map[t];if(void 0!==s)if(void 0===i)delete this.__map[t];else {const t=s.findIndex((t=>t===i));s.splice(t,1);}}destroy(){this.__map={};}};
|
|
280
|
+
|
|
281
|
+
const n$1="clientX",e$2="clientY",t=16,c$3="start",o$1="move",s$1="cancel",u$3="end",a$2="left",i$3="right",r$4="up",d$1="down",m$2={4:"start",5:"move",1:"end",3:"cancel"};function v$1(n){return m$2[n]}function b(n,e,t){const c={1:{0:{move:4},4:{move:5,end:1,cancel:3},5:{move:5,end:1,cancel:3}},0:{4:{move:2,end:1,cancel:3},5:{start:2,move:2,end:1,cancel:3}}}[Number(n)][e];return void 0!==c&&c[t]||0}function g$1(n){[1,3,2].includes(n.state)&&(n.state=0);}function h$3(n){return [5,1,3].includes(n)}function j(n){if(n.disabled)return n.state=0,true}function O(n,e){return Object.assign(Object.assign(Object.assign({},n),e),{state:0,disabled:false})}function p$3(n){return Math.round(100*n)/100}
|
|
282
|
+
|
|
283
|
+
function r$3(){let t,o,i,r,a=0;return function(u){if(t=o,void 0!==u){a=Number.MAX_SAFE_INTEGER>a?++a:1;const h=function(t,o){const{phase:i,points:r,changedPoints:a,nativeEvent:u}=t,h=r.length,p=c$3===i,g=u$3===i&&0===h||s$1===i,l=Date.now(),{x:d,y:m}=c$2(r)||c$2(a),{currentTarget:v}=u;return Object.assign(t,{id:o,x:d,y:m,timestamp:l,isStart:p,isEnd:g,pointLength:h,currentTarget:v,getOffset(t=v){const e=t.getBoundingClientRect();return {x:d-Math.round(e.left),y:m-Math.round(e.top)}}})}(u,a);o=h;const{isStart:p,pointLength:g}=h;return p&&(i=h,t=void 0,r=1<g?h:void 0),Object.assign(Object.assign({},h),{prevInput:t,startMultiInput:r,startInput:i})}}}function c$2(t){const{length:e}=t;if(0<e){if(1===e){const{clientX:e,clientY:n}=t[0];return {x:Math.round(e),y:Math.round(n)}}const n=t.reduce(((t,e)=>(t.x+=e[n$1],t.y+=e[e$2],t)),{x:0,y:0});return {x:Math.round(n.x/e),y:Math.round(n.y/e)}}}function a$1(t,e,n,s){const o={};for(const t in n)["target","currentTarget","type"].includes(t)||(o[t]=n[t]);let i;return document.createEvent?(i=document.createEvent("HTMLEvents"),i.initEvent(t,null==s?void 0:s.bubbles,null==s?void 0:s.cancelable)):i=new Event(t,s),Object.assign(i,o,{match:()=>n.targets&&0<n.targets.length&&n.targets.every((t=>i.currentTarget.contains(t)))}),e.dispatchEvent(i)}function u$2(t,e){const{preventDefault:n}=e;return s=n,"[object Function]"===Object.prototype.toString.call(s)?n(t):!!n;var s;}const h$2=["touchstart","touchmove","touchend","touchcancel","mousedown"],p$2=["mousemove","mouseup"];const g={domEvents:{bubbles:true,cancelable:true},preventDefault:t=>{if(t.target&&"tagName"in t.target){const{tagName:e}=t.target;return !/^(?:INPUT|TEXTAREA|BUTTON|SELECT)$/.test(e)}return false}};let l$1 = class l extends t$1{constructor(t,e){super(),this.v="2.1.3",this.__computeFunctionList=[],this.__computeFunctionCreatorList=[],this.__pluginContexts=[],this.__isIgnoreMouse=false,this.el=t,this.c={},this.__options=Object.assign(Object.assign({},g),e);const n=function(t){const e=r$3();return function(n){const s=[],o=[];Array.from(n.touches).forEach((({clientX:e,clientY:n,target:i})=>{(null==t?void 0:t.contains(i))&&(s.push(i),o.push({clientX:e,clientY:n,target:i}));}));const i=Array.from(n.changedTouches).map((({clientX:t,clientY:e,target:n})=>({clientX:t,clientY:e,target:n})));return e({phase:n.type.replace("touch",""),changedPoints:i,points:o,nativeEvent:n,target:n.target,targets:s})}}(this.el),s=function(){let t,e=false,n=null;const s=r$3();return function(o){const{clientX:i,clientY:r,type:c,button:a,target:u}=o;let h,p=[{clientX:i,clientY:r,target:u}];if("mousedown"===c&&0===a)n=u,e=true,h="start";else {if(!e)return;"mousemove"===c?h="move":"mouseup"===c&&(p=[],h="end",e=false);}const g=t||[{clientX:i,clientY:r,target:u}];if(t=[{clientX:i,clientY:r,target:u}],void 0!==h)return s({phase:h,changedPoints:g,points:p,target:n,targets:[n],nativeEvent:o})}}();if(this.__inputCreatorMap={touchstart:n,touchmove:n,touchend:n,touchcancel:n,mousedown:s,mousemove:s,mouseup:s},this.on("at:after",(t=>{const{target:e,__type:n}=t,{domEvents:s}=this.__options;s&&void 0!==this.el&&e&&(a$1(n,e,t,s),a$1("at:after",e,t,s));})),void 0!==t){t.style.webkitTapHighlightColor="rgba(0,0,0,0)";let e=false;try{const t={};Object.defineProperty(t,"passive",{get(){e=!0;}}),window.addEventListener("_",(()=>{}),t);}catch(t){}this.on("u",function(t,e,n){return h$2.forEach((s=>{t.addEventListener(s,e,n);})),p$2.forEach((t=>{window.addEventListener(t,e,n);})),()=>{h$2.forEach((n=>{t.removeEventListener(n,e);})),p$2.forEach((t=>{window.removeEventListener(t,e);}));}}(t,this.catchEvent.bind(this),false===this.__options.preventDefault&&e?{passive:true}:{passive:false}));}}use(t,e){this.__pluginContexts.push(t(this,e));}catchEvent(t){const e=this.__inputCreatorMap[t.type](t);if(void 0!==e){const n=()=>t.stopPropagation(),s=()=>t.stopImmediatePropagation(),o=()=>t.preventDefault();if(u$2(t,this.__options))o();else if("touchstart"===t.type?this.__isIgnoreMouse=true:"touchmove"===t.type&&(this.__isIgnoreMouse=false),this.__isIgnoreMouse&&t.type.startsWith("mouse"))return void("mouseup"===t.type&&(this.__isIgnoreMouse=false));this.emit("input",e),this.emit2(`at:${e.phase}`,e,{});const i={};this.__computeFunctionList.forEach((t=>{const n=t(e,i);if(void 0!==n)for(const t in n)i[t]=n[t];})),this.emit("computed",Object.assign(Object.assign(Object.assign({},e),i),{stopPropagation:n,stopImmediatePropagation:s,preventDefault:o}));}}compute(t,e){for(const e of t)this.__computeFunctionCreatorList.includes(e)||(this.__computeFunctionCreatorList.push(e),this.__computeFunctionList.push(e()));this.on("computed",e);}beforeEach(t){super.beforeEach(((e,n)=>{var s;(null===(s=this.c)||void 0===s?void 0:s.name)?t(e,n):n();}));}get(t){return this.__pluginContexts.find((e=>t===e.name))}set(t){this.__options=Object.assign(Object.assign({},this.__options),t);}emit2(t,e,n){this.c=n,this.emit(t,Object.assign(Object.assign({},e),{type:t}),(()=>{this.emit("at:after",Object.assign(Object.assign({},e),{name:t,__type:t}));}));}destroy(){this.emit("u"),super.destroy();}};
|
|
51
284
|
|
|
52
285
|
var x=r=>Math.sqrt(r.x*r.x+r.y*r.y),y=(r,a)=>r.x*a.x+r.y*a.y,e$1=(r,a)=>{var t=x(r)*x(a);if(0===t)return 0;var h=y(r,a)/t;return h>1&&(h=1),Math.acos(h)},n=(r,a)=>r.x*a.y-a.x*r.y,o=r=>r/Math.PI*180,s=(r,a)=>{var t=e$1(r,a);return n(r,a)>0&&(t*=-1),o(t)},u$1=(x,y)=>{if(0!==x||0!==y)return Math.abs(x)>=Math.abs(y)?0<x?i$3:a$2:0<y?d$1:r$4};
|
|
53
286
|
|
|
54
287
|
function p$1(){let n=0,e=0;return function(o,r){const{prevVecotr:i,startVecotr:a,activeVecotr:c}=r;return c&&(e=Math.round(s(c,i)),n=Math.round(s(c,a))),{angle:n,deltaAngle:e}}}function d(){return function(t){const{prevInput:e}=t;let o$1=0,r=0,i=0;if(void 0!==e&&(o$1=t.x-e.x,r=t.y-e.y,0!==o$1||0!==r)){const t=Math.sqrt(Math.pow(o$1,2)+Math.pow(r,2));i=Math.round(o(Math.acos(Math.abs(o$1)/t)));}return {deltaX:o$1,deltaY:r,deltaXYAngle:i}}}function h$1(){let t,n=0,u=0,s=0,p=0,d=0;return function(h){const{phase:l,startInput:f}=h;return c$3===l?(n=0,u=0,s=0,p=0,d=0):o$1===l&&(n=Math.round(h.points[0][n$1]-f.points[0][n$1]),u=Math.round(h.points[0][e$2]-f.points[0][e$2]),s=Math.abs(n),p=Math.abs(u),d=Math.round(x({x:s,y:p})),t=u$1(n,u)),{displacementX:n,displacementY:u,distanceX:s,distanceY:p,distance:d,overallDirection:t}}}function l(){let t=1;return function(n,o){let r=1;const{prevVecotr:i,startVecotr:a,activeVecotr:c}=o;return c&&(r=p$3(x(c)/x(i)),t=p$3(x(c)/x(a))),{scale:t,deltaScale:r}}}function f(){let t$1,n,e=0,r=0,i=0,a=0;return function(c){if(void 0!==c){n=n||c.startInput;const u=c.timestamp-n.timestamp;if(t<u){const s=c.x-n.x,p=c.y-n.y;i=Math.round(s/u*100)/100,a=Math.round(p/u*100)/100,e=Math.abs(i),r=Math.abs(a),t$1=u$1(s,p),n=c;}}return {velocityX:e,velocityY:r,speedX:i,speedY:a,direction:t$1}}}function M(){let t=0;return function(n){const{phase:e}=n;return c$3===e&&(t=n.pointLength),{maxPointLength:t}}}function v(t){return {x:t.points[1][n$1]-t.points[0][n$1],y:t.points[1][e$2]-t.points[0][e$2]}}function m$1(){let t,n,e;return function(o){const{prevInput:r,startMultiInput:i}=o;return void 0!==i&&void 0!==r&&o.id!==i.id&&1<r.pointLength&&1<o.pointLength?(t=v(i),n=v(r),e=v(o)):e=void 0,{startVecotr:t,prevVecotr:n,activeVecotr:e}}}
|
|
55
288
|
|
|
56
|
-
const m={name:"tap",pointLength:1,tapTimes:1,waitNextTapTime:300,maxDistance:2,maxDistanceFromPrevTap:9,maxPressTime:250};function r$2(r,s){const c=O(m,s);let p,u,x$1,T=0;function f(){T=0,p=void 0,u=void 0;}return r.compute([h$1,M],(t=>{if(j(c))return;const{phase:i,x:o,y:m}=t;u$3===i&&(c.state=0,!function(){const{startInput:e,pointLength:n,timestamp:a}=t,i=a-e.timestamp,{distance:o,maxPointLength:m}=t;return m===c.pointLength&&0===n&&c.maxDistance>=o&&c.maxPressTime>i}()?(f(),c.state=2):(clearTimeout(x$1),function(t,e){if(void 0!==p){const n=x({x:t.x-p.x,y:t.y-p.y});return p=t,e.maxDistanceFromPrevTap>=n}return p=t
|
|
289
|
+
const m={name:"tap",pointLength:1,tapTimes:1,waitNextTapTime:300,maxDistance:2,maxDistanceFromPrevTap:9,maxPressTime:250};function r$2(r,s){const c=O(m,s);let p,u,x$1,T=0;function f(){T=0,p=void 0,u=void 0;}return r.compute([h$1,M],(t=>{if(j(c))return;const{phase:i,x:o,y:m}=t;u$3===i&&(c.state=0,!function(){const{startInput:e,pointLength:n,timestamp:a}=t,i=a-e.timestamp,{distance:o,maxPointLength:m}=t;return m===c.pointLength&&0===n&&c.maxDistance>=o&&c.maxPressTime>i}()?(f(),c.state=2):(clearTimeout(x$1),function(t,e){if(void 0!==p){const n=x({x:t.x-p.x,y:t.y-p.y});return p=t,e.maxDistanceFromPrevTap>=n}return p=t,true}({x:o,y:m},c)&&function(t){const e=performance.now();if(void 0===u)return u=e,true;{const n=e-u;return u=e,n<t}}(c.waitNextTapTime)?T++:T=1,0==T%c.tapTimes?(c.state=1,r.emit2(c.name,t,c),f()):x$1=setTimeout((()=>{c.state=2,f();}),c.waitNextTapTime)));})),c}
|
|
57
290
|
|
|
58
291
|
const p={name:"pan",threshold:10,pointLength:1};function u(u,d$1){const f$1=O(p,d$1);return u.compute([f,h$1,d],(t=>{if(g$1(f$1),j(f$1))return;const c=function(){const{pointLength:e,distance:n}=t;return f$1.pointLength===e&&f$1.threshold<=n}();if(f$1.state=b(c,f$1.state,t.phase),c||h$3(f$1.state)){const{name:e}=f$1;u.emit2(e,t,f$1),u.emit2(e+v$1(f$1.state),t,f$1),![u$3,s$1].includes(t.phase)&&t.direction&&u.emit2(e+t.direction,t,f$1);}})),f$1}
|
|
59
292
|
|
|
60
|
-
const c$1={name:"swipe",threshold:10,velocity:.3,pointLength:1};function a(a,r){const s=O(c$1,r);return a.compute([h$1,f,M],(t=>{if(s.state=0,!s.disabled&&function(){if(u$3!==t.phase)return
|
|
293
|
+
const c$1={name:"swipe",threshold:10,velocity:.3,pointLength:1};function a(a,r){const s=O(c$1,r);return a.compute([h$1,f,M],(t=>{if(s.state=0,!s.disabled&&function(){if(u$3!==t.phase)return false;const{velocityX:o,velocityY:n,distance:i,maxPointLength:c}=t;return c===s.pointLength&&0===t.points.length&&s.threshold<i&&s.velocity<Math.max(o,n)}()){const{name:e}=s;s.state=1,a.emit2(e,t,s),a.emit2(e+t.direction,t,s);}})),s}
|
|
61
294
|
|
|
62
295
|
const r$1={name:"press",pointLength:1,maxDistance:9,minPressTime:251};function c(c,u){const p=O(r$1,u);let f=0;return c.compute([h$1],(t=>{if(j(p))return;const{phase:o,startInput:r,pointLength:u}=t;if(c$3===o&&p.pointLength===u)g$1(p),clearTimeout(f),f=setTimeout((()=>{p.state=1,c.emit2(p.name,t,p);}),p.minPressTime);else if(u$3===o&&1===p.state)c.emit2(`${p.name}${r$4}`,t,p);else if(1!==p.state){const e=t.timestamp-r.timestamp;(!function(){const{distance:e}=t;return e&&p.maxDistance>e}()||p.minPressTime>e&&[u$3,s$1].includes(o))&&(clearTimeout(f),p.state=2);}})),p}
|
|
63
296
|
|
|
@@ -279,7 +512,7 @@ System.register('pops', [], (function (exports) {
|
|
|
279
512
|
formatByteToSize(byteSize, addType = true) {
|
|
280
513
|
byteSize = parseInt(byteSize.toString());
|
|
281
514
|
if (isNaN(byteSize)) {
|
|
282
|
-
throw new
|
|
515
|
+
throw new TypeError("Utils.formatByteToSize 参数 byteSize 格式不正确");
|
|
283
516
|
}
|
|
284
517
|
let result = 0;
|
|
285
518
|
let resultType = "KB";
|
|
@@ -312,6 +545,58 @@ System.register('pops', [], (function (exports) {
|
|
|
312
545
|
AnyTouch = () => {
|
|
313
546
|
return i;
|
|
314
547
|
};
|
|
548
|
+
/**
|
|
549
|
+
* 自动使用 Worker 执行 setTimeout
|
|
550
|
+
*/
|
|
551
|
+
setTimeout(callback, timeout = 0) {
|
|
552
|
+
try {
|
|
553
|
+
return setTimeout$1(callback, timeout);
|
|
554
|
+
}
|
|
555
|
+
catch (error) {
|
|
556
|
+
return globalThis.setTimeout(callback, timeout);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* 配合 .setTimeout 使用
|
|
561
|
+
*/
|
|
562
|
+
clearTimeout(timeId) {
|
|
563
|
+
try {
|
|
564
|
+
if (timeId != null) {
|
|
565
|
+
clearTimeout$1(timeId);
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
catch (error) {
|
|
569
|
+
}
|
|
570
|
+
finally {
|
|
571
|
+
globalThis.clearTimeout(timeId);
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
/**
|
|
575
|
+
* 自动使用 Worker 执行 setInterval
|
|
576
|
+
*/
|
|
577
|
+
setInterval(callback, timeout = 0) {
|
|
578
|
+
try {
|
|
579
|
+
return setInterval(callback, timeout);
|
|
580
|
+
}
|
|
581
|
+
catch (error) {
|
|
582
|
+
return globalThis.setInterval(callback, timeout);
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* 配合 .setInterval 使用
|
|
587
|
+
*/
|
|
588
|
+
clearInterval(timeId) {
|
|
589
|
+
try {
|
|
590
|
+
if (timeId != null) {
|
|
591
|
+
clearInterval(timeId);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
catch (error) {
|
|
595
|
+
}
|
|
596
|
+
finally {
|
|
597
|
+
globalThis.clearInterval(timeId);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
315
600
|
}
|
|
316
601
|
const popsUtils = new PopsUtils();
|
|
317
602
|
|
|
@@ -685,7 +970,7 @@ System.register('pops', [], (function (exports) {
|
|
|
685
970
|
}
|
|
686
971
|
if (checkDOMReadyState()) {
|
|
687
972
|
/* 检查document状态 */
|
|
688
|
-
setTimeout(callback);
|
|
973
|
+
popsUtils.setTimeout(callback, 0);
|
|
689
974
|
}
|
|
690
975
|
else {
|
|
691
976
|
/* 添加监听 */
|
|
@@ -1912,7 +2197,7 @@ System.register('pops', [], (function (exports) {
|
|
|
1912
2197
|
let popsElement = animElement.querySelector(".pops[type-value]");
|
|
1913
2198
|
if (popsType === "drawer") {
|
|
1914
2199
|
let drawerConfig = config;
|
|
1915
|
-
setTimeout(() => {
|
|
2200
|
+
popsUtils.setTimeout(() => {
|
|
1916
2201
|
maskElement.style.setProperty("display", "none");
|
|
1917
2202
|
if (["top", "bottom"].includes(drawerConfig.direction)) {
|
|
1918
2203
|
popsElement.style.setProperty("height", "0");
|
|
@@ -1978,7 +2263,7 @@ System.register('pops', [], (function (exports) {
|
|
|
1978
2263
|
let popsElement = animElement.querySelector(".pops[type-value]");
|
|
1979
2264
|
if (popsType === "drawer") {
|
|
1980
2265
|
let drawerConfig = config;
|
|
1981
|
-
setTimeout(() => {
|
|
2266
|
+
popsUtils.setTimeout(() => {
|
|
1982
2267
|
popsDOMUtils.css(maskElement, "display", "");
|
|
1983
2268
|
let direction = drawerConfig.direction;
|
|
1984
2269
|
let size = drawerConfig.size.toString();
|
|
@@ -1992,7 +2277,7 @@ System.register('pops', [], (function (exports) {
|
|
|
1992
2277
|
console.error("未知direction:", direction);
|
|
1993
2278
|
}
|
|
1994
2279
|
resolve();
|
|
1995
|
-
}, drawerConfig.openDelay);
|
|
2280
|
+
}, drawerConfig.openDelay ?? 0);
|
|
1996
2281
|
}
|
|
1997
2282
|
else {
|
|
1998
2283
|
let findLayerIns = layerConfigList.find((layerConfigItem) => layerConfigItem.guid === guid);
|
|
@@ -2084,7 +2369,7 @@ System.register('pops', [], (function (exports) {
|
|
|
2084
2369
|
}
|
|
2085
2370
|
}
|
|
2086
2371
|
if (popsType === "drawer") {
|
|
2087
|
-
setTimeout(() => {
|
|
2372
|
+
popsUtils.setTimeout(() => {
|
|
2088
2373
|
transitionendEvent();
|
|
2089
2374
|
}, drawerConfig.closeDelay);
|
|
2090
2375
|
}
|
|
@@ -2301,10 +2586,10 @@ System.register('pops', [], (function (exports) {
|
|
|
2301
2586
|
*/
|
|
2302
2587
|
sortElementListByProperty(getBeforeValueFun, getAfterValueFun, sortByDesc = true) {
|
|
2303
2588
|
if (typeof sortByDesc !== "boolean") {
|
|
2304
|
-
throw "参数 sortByDesc 必须为boolean类型";
|
|
2589
|
+
throw new TypeError("参数 sortByDesc 必须为boolean类型");
|
|
2305
2590
|
}
|
|
2306
2591
|
if (getBeforeValueFun == null || getAfterValueFun == null) {
|
|
2307
|
-
throw "获取前面的值或后面的值的方法不能为空";
|
|
2592
|
+
throw new Error("获取前面的值或后面的值的方法不能为空");
|
|
2308
2593
|
}
|
|
2309
2594
|
return function (after_obj, before_obj) {
|
|
2310
2595
|
var beforeValue = getBeforeValueFun(before_obj); /* 前 */
|
|
@@ -3901,7 +4186,7 @@ System.register('pops', [], (function (exports) {
|
|
|
3901
4186
|
config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
|
|
3902
4187
|
config = popsUtils.assign(config, details);
|
|
3903
4188
|
if (config.url == null) {
|
|
3904
|
-
throw "config.url不能为空";
|
|
4189
|
+
throw new Error("config.url不能为空");
|
|
3905
4190
|
}
|
|
3906
4191
|
config = PopsHandler.handleOnly(PopsType, config);
|
|
3907
4192
|
const { $shadowContainer, $shadowRoot } = PopsHandler.handlerShadow(config);
|
|
@@ -4359,8 +4644,8 @@ System.register('pops', [], (function (exports) {
|
|
|
4359
4644
|
config.beforeAppendToPageCallBack($shadowRoot, $shadowContainer);
|
|
4360
4645
|
}
|
|
4361
4646
|
popsDOMUtils.appendBody($shadowContainer);
|
|
4362
|
-
setTimeout(() => {
|
|
4363
|
-
setTimeout(() => {
|
|
4647
|
+
popsUtils.setTimeout(() => {
|
|
4648
|
+
popsUtils.setTimeout(() => {
|
|
4364
4649
|
$pops.style.setProperty("transform", "");
|
|
4365
4650
|
}, config.openDelay);
|
|
4366
4651
|
}, 50);
|
|
@@ -5081,12 +5366,12 @@ System.register('pops', [], (function (exports) {
|
|
|
5081
5366
|
let downloadIframeLinkElement = document.createElement("iframe");
|
|
5082
5367
|
downloadIframeLinkElement.src = downloadInfo.url;
|
|
5083
5368
|
downloadIframeLinkElement.onload = function () {
|
|
5084
|
-
setTimeout(() => {
|
|
5369
|
+
popsUtils.setTimeout(() => {
|
|
5085
5370
|
downloadIframeLinkElement.remove();
|
|
5086
5371
|
}, 1000);
|
|
5087
5372
|
};
|
|
5088
5373
|
$shadowRoot.appendChild(downloadIframeLinkElement);
|
|
5089
|
-
setTimeout(() => {
|
|
5374
|
+
popsUtils.setTimeout(() => {
|
|
5090
5375
|
downloadIframeLinkElement.remove();
|
|
5091
5376
|
}, 3 * 60 * 1000);
|
|
5092
5377
|
}
|
|
@@ -6328,11 +6613,11 @@ System.register('pops', [], (function (exports) {
|
|
|
6328
6613
|
let isSuccess = false;
|
|
6329
6614
|
let oldTotalWidth = this.$data.totalWidth;
|
|
6330
6615
|
let timer = void 0;
|
|
6331
|
-
let interval = setInterval(() => {
|
|
6616
|
+
let interval = popsUtils.setInterval(() => {
|
|
6332
6617
|
if (isSuccess) {
|
|
6333
6618
|
this.$interval.isCheck = false;
|
|
6334
|
-
clearTimeout(timer);
|
|
6335
|
-
clearInterval(interval);
|
|
6619
|
+
popsUtils.clearTimeout(timer);
|
|
6620
|
+
popsUtils.clearInterval(interval);
|
|
6336
6621
|
}
|
|
6337
6622
|
else {
|
|
6338
6623
|
this.initTotalWidth();
|
|
@@ -6352,8 +6637,8 @@ System.register('pops', [], (function (exports) {
|
|
|
6352
6637
|
}
|
|
6353
6638
|
}, checkStepTime);
|
|
6354
6639
|
/* 最长检测时间是10s */
|
|
6355
|
-
timer = setTimeout(() => {
|
|
6356
|
-
clearInterval(interval);
|
|
6640
|
+
timer = popsUtils.setTimeout(() => {
|
|
6641
|
+
popsUtils.clearInterval(interval);
|
|
6357
6642
|
}, maxTime);
|
|
6358
6643
|
},
|
|
6359
6644
|
/**
|
|
@@ -6721,16 +7006,16 @@ System.register('pops', [], (function (exports) {
|
|
|
6721
7006
|
return;
|
|
6722
7007
|
}
|
|
6723
7008
|
this.$data.isCheckingStopDragMove = true;
|
|
6724
|
-
let interval = setInterval(() => {
|
|
7009
|
+
let interval = popsUtils.setInterval(() => {
|
|
6725
7010
|
if (!this.$data.isMove) {
|
|
6726
7011
|
this.$data.isCheckingStopDragMove = false;
|
|
6727
7012
|
this.closeToolTip();
|
|
6728
|
-
clearInterval(interval);
|
|
7013
|
+
popsUtils.clearInterval(interval);
|
|
6729
7014
|
}
|
|
6730
7015
|
}, 200);
|
|
6731
|
-
setTimeout(() => {
|
|
7016
|
+
popsUtils.setTimeout(() => {
|
|
6732
7017
|
this.$data.isCheckingStopDragMove = false;
|
|
6733
|
-
clearInterval(interval);
|
|
7018
|
+
popsUtils.clearInterval(interval);
|
|
6734
7019
|
}, 2000);
|
|
6735
7020
|
},
|
|
6736
7021
|
/**
|
|
@@ -8608,7 +8893,7 @@ System.register('pops', [], (function (exports) {
|
|
|
8608
8893
|
config = popsUtils.assign(config, details);
|
|
8609
8894
|
config = PopsHandler.handleOnly(PopsType, config);
|
|
8610
8895
|
if (config.target == null) {
|
|
8611
|
-
throw "config.target 不能为空";
|
|
8896
|
+
throw new Error("config.target 不能为空");
|
|
8612
8897
|
}
|
|
8613
8898
|
if (details.data) {
|
|
8614
8899
|
// @ts-ignore
|
|
@@ -9094,7 +9379,7 @@ System.register('pops', [], (function (exports) {
|
|
|
9094
9379
|
config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
|
|
9095
9380
|
config = popsUtils.assign(config, details);
|
|
9096
9381
|
if (config.target == null) {
|
|
9097
|
-
throw new
|
|
9382
|
+
throw new Error("config.target 不能为空");
|
|
9098
9383
|
}
|
|
9099
9384
|
/* 做下兼容处理 */
|
|
9100
9385
|
if (config.inputTarget == null) {
|
|
@@ -9365,7 +9650,7 @@ System.register('pops', [], (function (exports) {
|
|
|
9365
9650
|
popsDOMUtils.on([config.inputTarget], ["focus", "click", "input"], void 0, SearchSuggestion.showEvent, option);
|
|
9366
9651
|
}
|
|
9367
9652
|
else {
|
|
9368
|
-
throw new
|
|
9653
|
+
throw new Error("未知followPosition:" + config.followPosition);
|
|
9369
9654
|
}
|
|
9370
9655
|
},
|
|
9371
9656
|
/**
|
|
@@ -9776,11 +10061,12 @@ System.register('pops', [], (function (exports) {
|
|
|
9776
10061
|
}
|
|
9777
10062
|
/**
|
|
9778
10063
|
* 计算 提示框的位置
|
|
10064
|
+
* @param event 触发的事件
|
|
9779
10065
|
* @param targetElement 目标元素
|
|
9780
10066
|
* @param arrowDistance 箭头和目标元素的距离
|
|
9781
10067
|
* @param otherDistance 其它位置的偏移
|
|
9782
10068
|
*/
|
|
9783
|
-
calcToolTipPosition(targetElement, arrowDistance, otherDistance) {
|
|
10069
|
+
calcToolTipPosition(targetElement, arrowDistance, otherDistance, event) {
|
|
9784
10070
|
let offsetInfo = popsDOMUtils.offset(targetElement, !this.$data.config.isFixed);
|
|
9785
10071
|
// 目标 宽
|
|
9786
10072
|
let targetElement_width = offsetInfo.width;
|
|
@@ -9798,6 +10084,31 @@ System.register('pops', [], (function (exports) {
|
|
|
9798
10084
|
let targetElement_X_center_pos = targetElement_left + targetElement_width / 2 - toolTipElement_width / 2;
|
|
9799
10085
|
/* 目标元素的Y轴的中间位置 */
|
|
9800
10086
|
let targetElement_Y_center_pos = targetElement_top + targetElement_height / 2 - toolTipElement_height / 2;
|
|
10087
|
+
let mouseX = 0;
|
|
10088
|
+
let mouseY = 0;
|
|
10089
|
+
if (event != null) {
|
|
10090
|
+
if (event instanceof MouseEvent || event instanceof PointerEvent) {
|
|
10091
|
+
mouseX = event.pageX;
|
|
10092
|
+
mouseY = event.y;
|
|
10093
|
+
}
|
|
10094
|
+
else if (event instanceof TouchEvent) {
|
|
10095
|
+
let touchEvent = event.touches[0];
|
|
10096
|
+
mouseX = touchEvent.pageX;
|
|
10097
|
+
mouseY = touchEvent.pageY;
|
|
10098
|
+
}
|
|
10099
|
+
else {
|
|
10100
|
+
// @ts-ignore
|
|
10101
|
+
if (typeof event.clientX === "number") {
|
|
10102
|
+
// @ts-ignore
|
|
10103
|
+
mouseX = event.clientX;
|
|
10104
|
+
}
|
|
10105
|
+
// @ts-ignore
|
|
10106
|
+
if (typeof event.clientY === "number") {
|
|
10107
|
+
// @ts-ignore
|
|
10108
|
+
mouseY = event.clientY;
|
|
10109
|
+
}
|
|
10110
|
+
}
|
|
10111
|
+
}
|
|
9801
10112
|
return {
|
|
9802
10113
|
TOP: {
|
|
9803
10114
|
left: targetElement_X_center_pos - otherDistance,
|
|
@@ -9823,13 +10134,19 @@ System.register('pops', [], (function (exports) {
|
|
|
9823
10134
|
arrow: "right",
|
|
9824
10135
|
motion: "fadeInLeft",
|
|
9825
10136
|
},
|
|
10137
|
+
FOLLOW: {
|
|
10138
|
+
left: mouseX + otherDistance,
|
|
10139
|
+
top: mouseY + otherDistance,
|
|
10140
|
+
arrow: "follow",
|
|
10141
|
+
motion: "",
|
|
10142
|
+
},
|
|
9826
10143
|
};
|
|
9827
10144
|
}
|
|
9828
10145
|
/**
|
|
9829
10146
|
* 动态修改tooltip的位置
|
|
9830
10147
|
*/
|
|
9831
|
-
changePosition() {
|
|
9832
|
-
let positionInfo = this.calcToolTipPosition(this.$data.config.target, this.$data.config.arrowDistance, this.$data.config.otherDistance);
|
|
10148
|
+
changePosition(event) {
|
|
10149
|
+
let positionInfo = this.calcToolTipPosition(this.$data.config.target, this.$data.config.arrowDistance, this.$data.config.otherDistance, event);
|
|
9833
10150
|
let positionKey = this.$data.config.position.toUpperCase();
|
|
9834
10151
|
let positionDetail = positionInfo[positionKey];
|
|
9835
10152
|
if (positionDetail) {
|
|
@@ -9889,13 +10206,13 @@ System.register('pops', [], (function (exports) {
|
|
|
9889
10206
|
if (typeof timeId === "number") {
|
|
9890
10207
|
// 只清除一个
|
|
9891
10208
|
if (timeId == currentTimeId) {
|
|
9892
|
-
clearTimeout(timeId);
|
|
10209
|
+
popsUtils.clearTimeout(timeId);
|
|
9893
10210
|
timeIdList.splice(index, 1);
|
|
9894
10211
|
break;
|
|
9895
10212
|
}
|
|
9896
10213
|
}
|
|
9897
10214
|
else {
|
|
9898
|
-
clearTimeout(currentTimeId);
|
|
10215
|
+
popsUtils.clearTimeout(currentTimeId);
|
|
9899
10216
|
timeIdList.splice(index, 1);
|
|
9900
10217
|
index--;
|
|
9901
10218
|
}
|
|
@@ -9929,7 +10246,7 @@ System.register('pops', [], (function (exports) {
|
|
|
9929
10246
|
// 更新内容
|
|
9930
10247
|
this.changeContent();
|
|
9931
10248
|
// 更新tip的位置
|
|
9932
|
-
this.changePosition();
|
|
10249
|
+
this.changePosition(event);
|
|
9933
10250
|
if (typeof this.$data.config.showAfterCallBack === "function") {
|
|
9934
10251
|
this.$data.config.showAfterCallBack(this.$el.$toolTip);
|
|
9935
10252
|
}
|
|
@@ -9974,16 +10291,24 @@ System.register('pops', [], (function (exports) {
|
|
|
9974
10291
|
this.$data.config.delayCloseTime <= 0)) {
|
|
9975
10292
|
this.$data.config.delayCloseTime = 100;
|
|
9976
10293
|
}
|
|
9977
|
-
let timeId = setTimeout(() => {
|
|
10294
|
+
let timeId = popsUtils.setTimeout(() => {
|
|
9978
10295
|
// 设置属性触发关闭动画
|
|
9979
10296
|
this.clearCloseTimeoutId(eventType, timeId);
|
|
9980
10297
|
if (this.$el.$toolTip == null) {
|
|
9981
10298
|
// 已清除了
|
|
9982
10299
|
return;
|
|
9983
10300
|
}
|
|
9984
|
-
this.$el.$toolTip.
|
|
9985
|
-
|
|
9986
|
-
|
|
10301
|
+
let motion = this.$el.$toolTip.getAttribute("data-motion");
|
|
10302
|
+
if (motion == null || motion.trim() === "") {
|
|
10303
|
+
// 没有动画
|
|
10304
|
+
this.toolTipAnimationFinishEvent();
|
|
10305
|
+
}
|
|
10306
|
+
else {
|
|
10307
|
+
// 修改data-motion触发动画关闭
|
|
10308
|
+
this.$el.$toolTip.setAttribute("data-motion", this.$el.$toolTip
|
|
10309
|
+
.getAttribute("data-motion")
|
|
10310
|
+
.replace("fadeIn", "fadeOut"));
|
|
10311
|
+
}
|
|
9987
10312
|
}, this.$data.config.delayCloseTime);
|
|
9988
10313
|
this.addCloseTimeoutId(eventType, timeId);
|
|
9989
10314
|
if (typeof this.$data.config.closeAfterCallBack === "function") {
|
|
@@ -10097,7 +10422,7 @@ System.register('pops', [], (function (exports) {
|
|
|
10097
10422
|
config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
|
|
10098
10423
|
config = popsUtils.assign(config, details);
|
|
10099
10424
|
if (!(config.target instanceof HTMLElement)) {
|
|
10100
|
-
throw "config.target 必须是HTMLElement类型";
|
|
10425
|
+
throw new TypeError("config.target 必须是HTMLElement类型");
|
|
10101
10426
|
}
|
|
10102
10427
|
config = PopsHandler.handleOnly(PopsType, config);
|
|
10103
10428
|
const { $shadowContainer, $shadowRoot } = PopsHandler.handlerShadow(config);
|
|
@@ -10130,7 +10455,7 @@ System.register('pops', [], (function (exports) {
|
|
|
10130
10455
|
/** 配置 */
|
|
10131
10456
|
config = {
|
|
10132
10457
|
/** 版本号 */
|
|
10133
|
-
version: "2025.5.
|
|
10458
|
+
version: "2025.5.26",
|
|
10134
10459
|
cssText: {
|
|
10135
10460
|
/** 主CSS */
|
|
10136
10461
|
index: indexCSS,
|
|
@@ -10239,7 +10564,7 @@ System.register('pops', [], (function (exports) {
|
|
|
10239
10564
|
popsDOMUtils.appendHead(animationStyle);
|
|
10240
10565
|
this.config.animation = null;
|
|
10241
10566
|
this.config.animation = PopsInstanceUtils.getKeyFrames(animationStyle.sheet);
|
|
10242
|
-
setTimeout(() => {
|
|
10567
|
+
popsUtils.setTimeout(() => {
|
|
10243
10568
|
animationStyle.remove();
|
|
10244
10569
|
}, 50);
|
|
10245
10570
|
}
|