@whitesev/pops 2.0.6 → 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.
Files changed (62) hide show
  1. package/dist/index.amd.js +506 -128
  2. package/dist/index.amd.js.map +1 -1
  3. package/dist/index.cjs.js +506 -128
  4. package/dist/index.cjs.js.map +1 -1
  5. package/dist/index.esm.js +506 -128
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.iife.js +506 -128
  8. package/dist/index.iife.js.map +1 -1
  9. package/dist/index.system.js +506 -128
  10. package/dist/index.system.js.map +1 -1
  11. package/dist/index.umd.js +506 -128
  12. package/dist/index.umd.js.map +1 -1
  13. package/dist/types/src/Pops.d.ts +20761 -15
  14. package/dist/types/src/components/alert/index.d.ts +3 -3
  15. package/dist/types/src/components/confirm/index.d.ts +3 -3
  16. package/dist/types/src/components/drawer/index.d.ts +3 -3
  17. package/dist/types/src/components/drawer/indexType.d.ts +10 -2
  18. package/dist/types/src/components/folder/index.d.ts +3 -3
  19. package/dist/types/src/components/folder/indexType.d.ts +4 -1
  20. package/dist/types/src/components/iframe/index.d.ts +6 -3
  21. package/dist/types/src/components/iframe/indexType.d.ts +2 -0
  22. package/dist/types/src/components/loading/index.d.ts +3 -3
  23. package/dist/types/src/components/loading/indexType.d.ts +3 -1
  24. package/dist/types/src/components/panel/index.d.ts +3 -3
  25. package/dist/types/src/components/panel/indexType.d.ts +1 -0
  26. package/dist/types/src/components/panel/sliderType.d.ts +14 -4
  27. package/dist/types/src/components/prompt/index.d.ts +3 -3
  28. package/dist/types/src/components/prompt/indexType.d.ts +1 -0
  29. package/dist/types/src/components/rightClickMenu/index.d.ts +20661 -3
  30. package/dist/types/src/components/rightClickMenu/indexType.d.ts +6 -2
  31. package/dist/types/src/components/searchSuggestion/index.d.ts +141 -3
  32. package/dist/types/src/components/searchSuggestion/indexType.d.ts +0 -108
  33. package/dist/types/src/components/tooltip/index.d.ts +60 -5
  34. package/dist/types/src/components/tooltip/indexType.d.ts +6 -4
  35. package/dist/types/src/utils/PopsUtils.d.ts +16 -0
  36. package/package.json +6 -5
  37. package/src/Pops.ts +26 -25
  38. package/src/components/alert/index.ts +6 -5
  39. package/src/components/confirm/index.ts +6 -5
  40. package/src/components/drawer/index.ts +8 -7
  41. package/src/components/drawer/indexType.ts +10 -2
  42. package/src/components/folder/index.ts +8 -7
  43. package/src/components/folder/indexType.ts +4 -1
  44. package/src/components/iframe/index.ts +5 -5
  45. package/src/components/iframe/indexType.ts +2 -0
  46. package/src/components/loading/index.ts +6 -5
  47. package/src/components/loading/indexType.ts +3 -1
  48. package/src/components/panel/PanelHandleContentDetails.ts +71 -38
  49. package/src/components/panel/index.ts +6 -5
  50. package/src/components/panel/indexType.ts +1 -0
  51. package/src/components/panel/sliderType.ts +14 -4
  52. package/src/components/prompt/index.ts +6 -5
  53. package/src/components/prompt/indexType.ts +1 -0
  54. package/src/components/rightClickMenu/index.ts +5 -6
  55. package/src/components/rightClickMenu/indexType.ts +6 -7
  56. package/src/components/searchSuggestion/index.ts +6 -6
  57. package/src/components/searchSuggestion/indexType.ts +0 -109
  58. package/src/components/tooltip/index.ts +65 -25
  59. package/src/components/tooltip/indexType.ts +11 -4
  60. package/src/utils/PopsDOMUtils.ts +1 -1
  61. package/src/utils/PopsInstanceUtils.ts +6 -6
  62. package/src/utils/PopsUtils.ts +53 -1
@@ -3,12 +3,6 @@ var pops = (function () {
3
3
 
4
4
  const SymbolEvents = Symbol("events_" + (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1));
5
5
 
6
- const PopsCoreDefaultEnv = {
7
- document: document,
8
- window: window,
9
- globalThis: globalThis,
10
- self: self,
11
- };
12
6
  const PopsCoreEnv = {
13
7
  document: document,
14
8
  window: window,
@@ -16,12 +10,6 @@ var pops = (function () {
16
10
  self: self,
17
11
  };
18
12
  const PopsCore = {
19
- init(option) {
20
- if (!option) {
21
- option = Object.assign({}, PopsCoreDefaultEnv);
22
- }
23
- Object.assign(PopsCoreEnv, option);
24
- },
25
13
  get document() {
26
14
  return PopsCoreEnv.document;
27
15
  },
@@ -41,21 +29,266 @@ var pops = (function () {
41
29
  },
42
30
  };
43
31
 
44
- 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={};}};
32
+ const createCache = (lastNumberWeakMap) => {
33
+ return (collection, nextNumber) => {
34
+ lastNumberWeakMap.set(collection, nextNumber);
35
+ return nextNumber;
36
+ };
37
+ };
38
+
39
+ /*
40
+ * The value of the constant Number.MAX_SAFE_INTEGER equals (2 ** 53 - 1) but it
41
+ * is fairly new.
42
+ */
43
+ const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER === undefined ? 9007199254740991 : Number.MAX_SAFE_INTEGER;
44
+ const TWO_TO_THE_POWER_OF_TWENTY_NINE = 536870912;
45
+ const TWO_TO_THE_POWER_OF_THIRTY = TWO_TO_THE_POWER_OF_TWENTY_NINE * 2;
46
+ const createGenerateUniqueNumber = (cache, lastNumberWeakMap) => {
47
+ return (collection) => {
48
+ const lastNumber = lastNumberWeakMap.get(collection);
49
+ /*
50
+ * Let's try the cheapest algorithm first. It might fail to produce a new
51
+ * number, but it is so cheap that it is okay to take the risk. Just
52
+ * increase the last number by one or reset it to 0 if we reached the upper
53
+ * bound of SMIs (which stands for small integers). When the last number is
54
+ * unknown it is assumed that the collection contains zero based consecutive
55
+ * numbers.
56
+ */
57
+ let nextNumber = lastNumber === undefined ? collection.size : lastNumber < TWO_TO_THE_POWER_OF_THIRTY ? lastNumber + 1 : 0;
58
+ if (!collection.has(nextNumber)) {
59
+ return cache(collection, nextNumber);
60
+ }
61
+ /*
62
+ * If there are less than half of 2 ** 30 numbers stored in the collection,
63
+ * the chance to generate a new random number in the range from 0 to 2 ** 30
64
+ * is at least 50%. It's benifitial to use only SMIs because they perform
65
+ * much better in any environment based on V8.
66
+ */
67
+ if (collection.size < TWO_TO_THE_POWER_OF_TWENTY_NINE) {
68
+ while (collection.has(nextNumber)) {
69
+ nextNumber = Math.floor(Math.random() * TWO_TO_THE_POWER_OF_THIRTY);
70
+ }
71
+ return cache(collection, nextNumber);
72
+ }
73
+ // Quickly check if there is a theoretical chance to generate a new number.
74
+ if (collection.size > MAX_SAFE_INTEGER) {
75
+ throw new Error('Congratulations, you created a collection of unique numbers which uses all available integers!');
76
+ }
77
+ // Otherwise use the full scale of safely usable integers.
78
+ while (collection.has(nextNumber)) {
79
+ nextNumber = Math.floor(Math.random() * MAX_SAFE_INTEGER);
80
+ }
81
+ return cache(collection, nextNumber);
82
+ };
83
+ };
84
+
85
+ const LAST_NUMBER_WEAK_MAP = new WeakMap();
86
+ const cache = createCache(LAST_NUMBER_WEAK_MAP);
87
+ const generateUniqueNumber = createGenerateUniqueNumber(cache, LAST_NUMBER_WEAK_MAP);
88
+
89
+ const isMessagePort = (sender) => {
90
+ return typeof sender.start === 'function';
91
+ };
92
+
93
+ const PORT_MAP = new WeakMap();
94
+
95
+ const extendBrokerImplementation = (partialBrokerImplementation) => ({
96
+ ...partialBrokerImplementation,
97
+ connect: ({ call }) => {
98
+ return async () => {
99
+ const { port1, port2 } = new MessageChannel();
100
+ const portId = await call('connect', { port: port1 }, [port1]);
101
+ PORT_MAP.set(port2, portId);
102
+ return port2;
103
+ };
104
+ },
105
+ disconnect: ({ call }) => {
106
+ return async (port) => {
107
+ const portId = PORT_MAP.get(port);
108
+ if (portId === undefined) {
109
+ throw new Error('The given port is not connected.');
110
+ }
111
+ await call('disconnect', { portId });
112
+ };
113
+ },
114
+ isSupported: ({ call }) => {
115
+ return () => call('isSupported');
116
+ }
117
+ });
118
+
119
+ const ONGOING_REQUESTS = new WeakMap();
120
+ const createOrGetOngoingRequests = (sender) => {
121
+ if (ONGOING_REQUESTS.has(sender)) {
122
+ // @todo TypeScript needs to be convinced that has() works as expected.
123
+ return ONGOING_REQUESTS.get(sender);
124
+ }
125
+ const ongoingRequests = new Map();
126
+ ONGOING_REQUESTS.set(sender, ongoingRequests);
127
+ return ongoingRequests;
128
+ };
129
+ const createBroker = (brokerImplementation) => {
130
+ const fullBrokerImplementation = extendBrokerImplementation(brokerImplementation);
131
+ return (sender) => {
132
+ const ongoingRequests = createOrGetOngoingRequests(sender);
133
+ sender.addEventListener('message', (({ data: message }) => {
134
+ const { id } = message;
135
+ if (id !== null && ongoingRequests.has(id)) {
136
+ const { reject, resolve } = ongoingRequests.get(id);
137
+ ongoingRequests.delete(id);
138
+ if (message.error === undefined) {
139
+ resolve(message.result);
140
+ }
141
+ else {
142
+ reject(new Error(message.error.message));
143
+ }
144
+ }
145
+ }));
146
+ if (isMessagePort(sender)) {
147
+ sender.start();
148
+ }
149
+ const call = (method, params = null, transferables = []) => {
150
+ return new Promise((resolve, reject) => {
151
+ const id = generateUniqueNumber(ongoingRequests);
152
+ ongoingRequests.set(id, { reject, resolve });
153
+ if (params === null) {
154
+ sender.postMessage({ id, method }, transferables);
155
+ }
156
+ else {
157
+ sender.postMessage({ id, method, params }, transferables);
158
+ }
159
+ });
160
+ };
161
+ const notify = (method, params, transferables = []) => {
162
+ sender.postMessage({ id: null, method, params }, transferables);
163
+ };
164
+ let functions = {};
165
+ for (const [key, handler] of Object.entries(fullBrokerImplementation)) {
166
+ functions = { ...functions, [key]: handler({ call, notify }) };
167
+ }
168
+ return { ...functions };
169
+ };
170
+ };
171
+
172
+ // Prefilling the Maps with a function indexed by zero is necessary to be compliant with the specification.
173
+ const scheduledIntervalsState = new Map([[0, null]]); // tslint:disable-line no-empty
174
+ const scheduledTimeoutsState = new Map([[0, null]]); // tslint:disable-line no-empty
175
+ const wrap = createBroker({
176
+ clearInterval: ({ call }) => {
177
+ return (timerId) => {
178
+ if (typeof scheduledIntervalsState.get(timerId) === 'symbol') {
179
+ scheduledIntervalsState.set(timerId, null);
180
+ call('clear', { timerId, timerType: 'interval' }).then(() => {
181
+ scheduledIntervalsState.delete(timerId);
182
+ });
183
+ }
184
+ };
185
+ },
186
+ clearTimeout: ({ call }) => {
187
+ return (timerId) => {
188
+ if (typeof scheduledTimeoutsState.get(timerId) === 'symbol') {
189
+ scheduledTimeoutsState.set(timerId, null);
190
+ call('clear', { timerId, timerType: 'timeout' }).then(() => {
191
+ scheduledTimeoutsState.delete(timerId);
192
+ });
193
+ }
194
+ };
195
+ },
196
+ setInterval: ({ call }) => {
197
+ return (func, delay = 0, ...args) => {
198
+ const symbol = Symbol();
199
+ const timerId = generateUniqueNumber(scheduledIntervalsState);
200
+ scheduledIntervalsState.set(timerId, symbol);
201
+ const schedule = () => call('set', {
202
+ delay,
203
+ now: performance.timeOrigin + performance.now(),
204
+ timerId,
205
+ timerType: 'interval'
206
+ }).then(() => {
207
+ const state = scheduledIntervalsState.get(timerId);
208
+ if (state === undefined) {
209
+ throw new Error('The timer is in an undefined state.');
210
+ }
211
+ if (state === symbol) {
212
+ func(...args);
213
+ // Doublecheck if the interval should still be rescheduled because it could have been cleared inside of func().
214
+ if (scheduledIntervalsState.get(timerId) === symbol) {
215
+ schedule();
216
+ }
217
+ }
218
+ });
219
+ schedule();
220
+ return timerId;
221
+ };
222
+ },
223
+ setTimeout: ({ call }) => {
224
+ return (func, delay = 0, ...args) => {
225
+ const symbol = Symbol();
226
+ const timerId = generateUniqueNumber(scheduledTimeoutsState);
227
+ scheduledTimeoutsState.set(timerId, symbol);
228
+ call('set', {
229
+ delay,
230
+ now: performance.timeOrigin + performance.now(),
231
+ timerId,
232
+ timerType: 'timeout'
233
+ }).then(() => {
234
+ const state = scheduledTimeoutsState.get(timerId);
235
+ if (state === undefined) {
236
+ throw new Error('The timer is in an undefined state.');
237
+ }
238
+ if (state === symbol) {
239
+ // A timeout can be savely deleted because it is only called once.
240
+ scheduledTimeoutsState.delete(timerId);
241
+ func(...args);
242
+ }
243
+ });
244
+ return timerId;
245
+ };
246
+ }
247
+ });
248
+ const load = (url) => {
249
+ const worker = new Worker(url);
250
+ return wrap(worker);
251
+ };
252
+
253
+ const createLoadOrReturnBroker = (loadBroker, worker) => {
254
+ let broker = null;
255
+ return () => {
256
+ if (broker !== null) {
257
+ return broker;
258
+ }
259
+ const blob = new Blob([worker], { type: 'application/javascript; charset=utf-8' });
260
+ const url = URL.createObjectURL(blob);
261
+ broker = loadBroker(url);
262
+ // Bug #1: Edge up until v18 didn't like the URL to be revoked directly.
263
+ setTimeout(() => URL.revokeObjectURL(url));
264
+ return broker;
265
+ };
266
+ };
267
+
268
+ // This is the minified and stringified code of the worker-timers-worker package.
269
+ 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
270
+
271
+ const loadOrReturnBroker = createLoadOrReturnBroker(load, worker);
272
+ const clearInterval = (timerId) => loadOrReturnBroker().clearInterval(timerId);
273
+ const clearTimeout$1 = (timerId) => loadOrReturnBroker().clearTimeout(timerId);
274
+ const setInterval = (...args) => loadOrReturnBroker().setInterval(...args);
275
+ const setTimeout$1 = (...args) => loadOrReturnBroker().setTimeout(...args);
276
+
277
+ 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={};}};
45
278
 
46
- 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,!0}function O(n,e){return Object.assign(Object.assign(Object.assign({},n),e),{state:0,disabled:!1})}function p$3(n){return Math.round(100*n)/100}
279
+ 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}
47
280
 
48
- 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:!0,cancelable:!0},preventDefault:t=>{if(t.target&&"tagName"in t.target){const{tagName:e}=t.target;return !/^(?:INPUT|TEXTAREA|BUTTON|SELECT)$/.test(e)}return !1}};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=!1,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=!1,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=!0,h="start";else {if(!e)return;"mousemove"===c?h="move":"mouseup"===c&&(p=[],h="end",e=!1);}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=!1;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),!1===this.__options.preventDefault&&e?{passive:!0}:{passive:!1}));}}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=!0:"touchmove"===t.type&&(this.__isIgnoreMouse=!1),this.__isIgnoreMouse&&t.type.startsWith("mouse"))return void("mouseup"===t.type&&(this.__isIgnoreMouse=!1));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();}};
281
+ 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();}};
49
282
 
50
283
  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};
51
284
 
52
285
  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}}}
53
286
 
54
- 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,!0}({x:o,y:m},c)&&function(t){const e=performance.now();if(void 0===u)return u=e,!0;{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}
287
+ 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}
55
288
 
56
289
  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}
57
290
 
58
- 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 !1;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}
291
+ 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}
59
292
 
60
293
  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}
61
294
 
@@ -277,7 +510,7 @@ var pops = (function () {
277
510
  formatByteToSize(byteSize, addType = true) {
278
511
  byteSize = parseInt(byteSize.toString());
279
512
  if (isNaN(byteSize)) {
280
- throw new Error("Utils.formatByteToSize 参数 byteSize 格式不正确");
513
+ throw new TypeError("Utils.formatByteToSize 参数 byteSize 格式不正确");
281
514
  }
282
515
  let result = 0;
283
516
  let resultType = "KB";
@@ -310,6 +543,58 @@ var pops = (function () {
310
543
  AnyTouch = () => {
311
544
  return i;
312
545
  };
546
+ /**
547
+ * 自动使用 Worker 执行 setTimeout
548
+ */
549
+ setTimeout(callback, timeout = 0) {
550
+ try {
551
+ return setTimeout$1(callback, timeout);
552
+ }
553
+ catch (error) {
554
+ return globalThis.setTimeout(callback, timeout);
555
+ }
556
+ }
557
+ /**
558
+ * 配合 .setTimeout 使用
559
+ */
560
+ clearTimeout(timeId) {
561
+ try {
562
+ if (timeId != null) {
563
+ clearTimeout$1(timeId);
564
+ }
565
+ }
566
+ catch (error) {
567
+ }
568
+ finally {
569
+ globalThis.clearTimeout(timeId);
570
+ }
571
+ }
572
+ /**
573
+ * 自动使用 Worker 执行 setInterval
574
+ */
575
+ setInterval(callback, timeout = 0) {
576
+ try {
577
+ return setInterval(callback, timeout);
578
+ }
579
+ catch (error) {
580
+ return globalThis.setInterval(callback, timeout);
581
+ }
582
+ }
583
+ /**
584
+ * 配合 .setInterval 使用
585
+ */
586
+ clearInterval(timeId) {
587
+ try {
588
+ if (timeId != null) {
589
+ clearInterval(timeId);
590
+ }
591
+ }
592
+ catch (error) {
593
+ }
594
+ finally {
595
+ globalThis.clearInterval(timeId);
596
+ }
597
+ }
313
598
  }
314
599
  const popsUtils = new PopsUtils();
315
600
 
@@ -683,7 +968,7 @@ var pops = (function () {
683
968
  }
684
969
  if (checkDOMReadyState()) {
685
970
  /* 检查document状态 */
686
- setTimeout(callback);
971
+ popsUtils.setTimeout(callback, 0);
687
972
  }
688
973
  else {
689
974
  /* 添加监听 */
@@ -1910,7 +2195,7 @@ var pops = (function () {
1910
2195
  let popsElement = animElement.querySelector(".pops[type-value]");
1911
2196
  if (popsType === "drawer") {
1912
2197
  let drawerConfig = config;
1913
- setTimeout(() => {
2198
+ popsUtils.setTimeout(() => {
1914
2199
  maskElement.style.setProperty("display", "none");
1915
2200
  if (["top", "bottom"].includes(drawerConfig.direction)) {
1916
2201
  popsElement.style.setProperty("height", "0");
@@ -1976,7 +2261,7 @@ var pops = (function () {
1976
2261
  let popsElement = animElement.querySelector(".pops[type-value]");
1977
2262
  if (popsType === "drawer") {
1978
2263
  let drawerConfig = config;
1979
- setTimeout(() => {
2264
+ popsUtils.setTimeout(() => {
1980
2265
  popsDOMUtils.css(maskElement, "display", "");
1981
2266
  let direction = drawerConfig.direction;
1982
2267
  let size = drawerConfig.size.toString();
@@ -1990,7 +2275,7 @@ var pops = (function () {
1990
2275
  console.error("未知direction:", direction);
1991
2276
  }
1992
2277
  resolve();
1993
- }, drawerConfig.openDelay);
2278
+ }, drawerConfig.openDelay ?? 0);
1994
2279
  }
1995
2280
  else {
1996
2281
  let findLayerIns = layerConfigList.find((layerConfigItem) => layerConfigItem.guid === guid);
@@ -2082,7 +2367,7 @@ var pops = (function () {
2082
2367
  }
2083
2368
  }
2084
2369
  if (popsType === "drawer") {
2085
- setTimeout(() => {
2370
+ popsUtils.setTimeout(() => {
2086
2371
  transitionendEvent();
2087
2372
  }, drawerConfig.closeDelay);
2088
2373
  }
@@ -2299,10 +2584,10 @@ var pops = (function () {
2299
2584
  */
2300
2585
  sortElementListByProperty(getBeforeValueFun, getAfterValueFun, sortByDesc = true) {
2301
2586
  if (typeof sortByDesc !== "boolean") {
2302
- throw "参数 sortByDesc 必须为boolean类型";
2587
+ throw new TypeError("参数 sortByDesc 必须为boolean类型");
2303
2588
  }
2304
2589
  if (getBeforeValueFun == null || getAfterValueFun == null) {
2305
- throw "获取前面的值或后面的值的方法不能为空";
2590
+ throw new Error("获取前面的值或后面的值的方法不能为空");
2306
2591
  }
2307
2592
  return function (after_obj, before_obj) {
2308
2593
  var beforeValue = getBeforeValueFun(before_obj); /* 前 */
@@ -3247,8 +3532,8 @@ var pops = (function () {
3247
3532
  };
3248
3533
  };
3249
3534
 
3250
- class PopsAlert {
3251
- constructor(details) {
3535
+ const PopsAlert = {
3536
+ init(details) {
3252
3537
  const guid = popsUtils.getRandomGUID();
3253
3538
  // 设置当前类型
3254
3539
  const PopsType = "alert";
@@ -3337,9 +3622,10 @@ var pops = (function () {
3337
3622
  endCallBack: config.dragEndCallBack,
3338
3623
  });
3339
3624
  }
3340
- return PopsHandler.handleResultDetails(eventDetails);
3341
- }
3342
- }
3625
+ let result = PopsHandler.handleResultDetails(eventDetails);
3626
+ return result;
3627
+ },
3628
+ };
3343
3629
 
3344
3630
  const PopsConfirmConfig = () => {
3345
3631
  return {
@@ -3429,8 +3715,8 @@ var pops = (function () {
3429
3715
  };
3430
3716
  };
3431
3717
 
3432
- class PopsConfirm {
3433
- constructor(details) {
3718
+ const PopsConfirm = {
3719
+ init(details) {
3434
3720
  const guid = popsUtils.getRandomGUID();
3435
3721
  // 设置当前类型
3436
3722
  const PopsType = "confirm";
@@ -3520,9 +3806,10 @@ var pops = (function () {
3520
3806
  endCallBack: config.dragEndCallBack,
3521
3807
  });
3522
3808
  }
3523
- return PopsHandler.handleResultDetails(eventDetails);
3524
- }
3525
- }
3809
+ let result = PopsHandler.handleResultDetails(eventDetails);
3810
+ return result;
3811
+ },
3812
+ };
3526
3813
 
3527
3814
  const PopsPromptConfig = () => {
3528
3815
  return {
@@ -3616,8 +3903,8 @@ var pops = (function () {
3616
3903
  };
3617
3904
  };
3618
3905
 
3619
- class PopsPrompt {
3620
- constructor(details) {
3906
+ const PopsPrompt = {
3907
+ init(details) {
3621
3908
  const guid = popsUtils.getRandomGUID();
3622
3909
  // 设置当前类型
3623
3910
  const PopsType = "prompt";
@@ -3723,9 +4010,10 @@ var pops = (function () {
3723
4010
  if (config.content.select) {
3724
4011
  $input.select();
3725
4012
  }
3726
- return PopsHandler.handleResultDetails(eventDetails);
3727
- }
3728
- }
4013
+ let result = PopsHandler.handleResultDetails(eventDetails);
4014
+ return result;
4015
+ },
4016
+ };
3729
4017
 
3730
4018
  const PopsLoadingConfig = () => {
3731
4019
  return {
@@ -3755,8 +4043,8 @@ var pops = (function () {
3755
4043
  };
3756
4044
  };
3757
4045
 
3758
- class PopsLoading {
3759
- constructor(details) {
4046
+ const PopsLoading = {
4047
+ init(details) {
3760
4048
  let config = PopsLoadingConfig();
3761
4049
  config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
3762
4050
  config = popsUtils.assign(config, details);
@@ -3824,9 +4112,10 @@ var pops = (function () {
3824
4112
  popsDOMUtils.css($anim, "position", "absolute !important");
3825
4113
  $mask && popsDOMUtils.css($mask, "position", "absolute !important");
3826
4114
  }
3827
- return PopsHandler.handleResultDetails(eventDetails);
3828
- }
3829
- }
4115
+ let result = PopsHandler.handleResultDetails(eventDetails);
4116
+ return result;
4117
+ },
4118
+ };
3830
4119
 
3831
4120
  const PopsIframeConfig = () => {
3832
4121
  return {
@@ -3886,8 +4175,8 @@ var pops = (function () {
3886
4175
  };
3887
4176
  };
3888
4177
 
3889
- class PopsIframe {
3890
- constructor(details) {
4178
+ const PopsIframe = {
4179
+ init(details) {
3891
4180
  const guid = popsUtils.getRandomGUID();
3892
4181
  // 设置当前类型
3893
4182
  const PopsType = "iframe";
@@ -3895,7 +4184,7 @@ var pops = (function () {
3895
4184
  config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
3896
4185
  config = popsUtils.assign(config, details);
3897
4186
  if (config.url == null) {
3898
- throw "config.url不能为空";
4187
+ throw new Error("config.url不能为空");
3899
4188
  }
3900
4189
  config = PopsHandler.handleOnly(PopsType, config);
3901
4190
  const { $shadowContainer, $shadowRoot } = PopsHandler.handlerShadow(config);
@@ -4117,8 +4406,8 @@ var pops = (function () {
4117
4406
  });
4118
4407
  let result = PopsHandler.handleResultDetails(eventDetails);
4119
4408
  return result;
4120
- }
4121
- }
4409
+ },
4410
+ };
4122
4411
 
4123
4412
  const PopsDrawerConfig = () => {
4124
4413
  return {
@@ -4207,8 +4496,8 @@ var pops = (function () {
4207
4496
  };
4208
4497
  };
4209
4498
 
4210
- class PopsDrawer {
4211
- constructor(details) {
4499
+ const PopsDrawer = {
4500
+ init(details) {
4212
4501
  const guid = popsUtils.getRandomGUID();
4213
4502
  // 设置当前类型
4214
4503
  const PopsType = "drawer";
@@ -4353,8 +4642,8 @@ var pops = (function () {
4353
4642
  config.beforeAppendToPageCallBack($shadowRoot, $shadowContainer);
4354
4643
  }
4355
4644
  popsDOMUtils.appendBody($shadowContainer);
4356
- setTimeout(() => {
4357
- setTimeout(() => {
4645
+ popsUtils.setTimeout(() => {
4646
+ popsUtils.setTimeout(() => {
4358
4647
  $pops.style.setProperty("transform", "");
4359
4648
  }, config.openDelay);
4360
4649
  }, 50);
@@ -4369,9 +4658,10 @@ var pops = (function () {
4369
4658
  $shadowContainer: $shadowContainer,
4370
4659
  $shadowRoot: $shadowRoot,
4371
4660
  });
4372
- return PopsHandler.handleResultDetails(eventDetails);
4373
- }
4374
- }
4661
+ let result = PopsHandler.handleResultDetails(eventDetails);
4662
+ return result;
4663
+ },
4664
+ };
4375
4665
 
4376
4666
  const PopsFolderConfig = () => {
4377
4667
  return {
@@ -4533,8 +4823,8 @@ var pops = (function () {
4533
4823
  dwg: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAMAAAC5zwKfAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAABaUExURUxpcXvGVIbNYXvHVHzJWYbNYXbDTWu9QHrGU4jOZHLBSW+/RYDJWmy+QoXMYHzHVYjOZHfET2m7P4LLXf3/+/T+7u3+5MXrsaXbiVyuMZjUeNb2xOP81bPjmuZ7vy0AAAAKdFJOUwA9z1wc33ign591Bg7OAAACdUlEQVRYw+2Yi3KjIBRAm51UI4gKxMei+f/f3PsQNU3SXtzOdGfWo0W4wBGFau3b28HBwYGYU1a85JSuOxfNZ/w6p/rem895TzQWTfOtxjP1qWCDtJoLK1WyMcM+VUUu1pJ3ls6nSDEW1UpTvSLBWFRf0iQZXwn93jFuhd7fK/2SJhgL9Hh0ecp5P4tn3xzwYmPhX0En2SL7nXkirEIPNA/xspAIL9Cw9CUmsV85dG3bBcjNgSUjeVJcykeG9nrtAmX9/MNJtk9Yk7B5cqbLvymsdwjr2LOmBIVtU3OMQ9xGJIQOQHSFGzBegR5zoV4Qj7DeQiumbVGIx26gEXICpAvr4bqlHe5r04WWhB1BQvsdwo5uX4/GvxCGgejBMv4mJpwZjoY0IY7C9nSZNB+jI1DY8tXfsJGVCi3Rt8tUjBoDelrn5mbBJxVi29qqG60XXDLtqFjYXudQd1N8VqEQUUNPTNA/jhCyE0cHRUNMEiq+cbiwV2E3cFTvGKHjqQ34bB0Jespy1NlkIQwR0aG7I2iOJwmVje1BG6atbwpQxbUqZYRq3ej9NIJ1GjGHwk21SKgiFndL7xQU0jvFLlWERJhHE3ehuQnTNI2WZmOxUQuhcDsK44xzJCx5vdyRJFzRYQShf6xQ+U8J9VOh3inU4NMAaTULccWUmopUrRQ3kAkfqQJgn1TsFBpaO+77hHp+xOwXmo9DhNVoOLipMlKh0dibd8waLq7HWDBGJDQJ/IgwM3zHIm5JlpQ33CV/wZ6wj1t7UT4KaLY5R4noMyB3EXN32BRiRHLF8H2rnRAt/JY65zJfLv8iPWf5l2Q7/ptxcHDw//IHYWiLelDcDu8AAAAASUVORK5CYII=",
4534
4824
  };
4535
4825
 
4536
- class PopsFolder {
4537
- constructor(details) {
4826
+ const PopsFolder = {
4827
+ init(details) {
4538
4828
  const guid = popsUtils.getRandomGUID();
4539
4829
  // 设置当前类型
4540
4830
  const PopsType = "folder";
@@ -5074,12 +5364,12 @@ var pops = (function () {
5074
5364
  let downloadIframeLinkElement = document.createElement("iframe");
5075
5365
  downloadIframeLinkElement.src = downloadInfo.url;
5076
5366
  downloadIframeLinkElement.onload = function () {
5077
- setTimeout(() => {
5367
+ popsUtils.setTimeout(() => {
5078
5368
  downloadIframeLinkElement.remove();
5079
5369
  }, 1000);
5080
5370
  };
5081
5371
  $shadowRoot.appendChild(downloadIframeLinkElement);
5082
- setTimeout(() => {
5372
+ popsUtils.setTimeout(() => {
5083
5373
  downloadIframeLinkElement.remove();
5084
5374
  }, 3 * 60 * 1000);
5085
5375
  }
@@ -5316,9 +5606,10 @@ var pops = (function () {
5316
5606
  $shadowContainer: $shadowContainer,
5317
5607
  $shadowRoot: $shadowRoot,
5318
5608
  });
5319
- return PopsHandler.handleResultDetails(eventDetails);
5320
- }
5321
- }
5609
+ let result = PopsHandler.handleResultDetails(eventDetails);
5610
+ return result;
5611
+ },
5612
+ };
5322
5613
 
5323
5614
  const PopsPanelConfig = () => {
5324
5615
  return {
@@ -6201,6 +6492,7 @@ var pops = (function () {
6201
6492
  */
6202
6493
  createSectionContainerItem_slider_new(formConfig) {
6203
6494
  let liElement = document.createElement("li");
6495
+ // @ts-ignore
6204
6496
  liElement["__formConfig__"] = formConfig;
6205
6497
  this.setElementClassName(liElement, formConfig.className);
6206
6498
  this.setElementAttributes(liElement, formConfig.attributes);
@@ -6301,15 +6593,15 @@ var pops = (function () {
6301
6593
  this.setPanEvent();
6302
6594
  this.setRunAwayClickEvent();
6303
6595
  this.intervalInit();
6304
- if (formConfig.disabled) {
6596
+ if (this.isFormConfigDisabledDrag()) {
6305
6597
  this.disableDrag();
6306
6598
  }
6307
6599
  },
6308
6600
  /**
6309
6601
  * 10s内循环获取slider的宽度等信息
6310
6602
  * 获取到了就可以初始化left的值
6311
- * @param {number} [checkStepTime=200] 每次检测的间隔时间
6312
- * @param {number} [maxTime=10000] 最大的检测时间
6603
+ * @param [checkStepTime=200] 每次检测的间隔时间
6604
+ * @param [maxTime=10000] 最大的检测时间
6313
6605
  */
6314
6606
  intervalInit(checkStepTime = 200, maxTime = 10000) {
6315
6607
  if (this.$interval.isCheck) {
@@ -6319,11 +6611,11 @@ var pops = (function () {
6319
6611
  let isSuccess = false;
6320
6612
  let oldTotalWidth = this.$data.totalWidth;
6321
6613
  let timer = void 0;
6322
- let interval = setInterval(() => {
6614
+ let interval = popsUtils.setInterval(() => {
6323
6615
  if (isSuccess) {
6324
6616
  this.$interval.isCheck = false;
6325
- clearTimeout(timer);
6326
- clearInterval(interval);
6617
+ popsUtils.clearTimeout(timer);
6618
+ popsUtils.clearInterval(interval);
6327
6619
  }
6328
6620
  else {
6329
6621
  this.initTotalWidth();
@@ -6343,8 +6635,8 @@ var pops = (function () {
6343
6635
  }
6344
6636
  }, checkStepTime);
6345
6637
  /* 最长检测时间是10s */
6346
- timer = setTimeout(() => {
6347
- clearInterval(interval);
6638
+ timer = popsUtils.setTimeout(() => {
6639
+ popsUtils.clearInterval(interval);
6348
6640
  }, maxTime);
6349
6641
  },
6350
6642
  /**
@@ -6355,9 +6647,13 @@ var pops = (function () {
6355
6647
  this.$ele.slider.setAttribute("data-max", this.max.toString());
6356
6648
  this.$ele.slider.setAttribute("data-value", this.value.toString());
6357
6649
  this.$ele.slider.setAttribute("data-step", this.step.toString());
6650
+ // @ts-ignore
6358
6651
  this.$ele.slider["data-min"] = this.min;
6652
+ // @ts-ignore
6359
6653
  this.$ele.slider["data-max"] = this.max;
6654
+ // @ts-ignore
6360
6655
  this.$ele.slider["data-value"] = this.value;
6656
+ // @ts-ignore
6361
6657
  this.$ele.slider["data-step"] = this.step;
6362
6658
  },
6363
6659
  /**
@@ -6472,7 +6768,6 @@ var pops = (function () {
6472
6768
  /**
6473
6769
  * 判断数字是否是浮点数
6474
6770
  * @param num
6475
- * @returns
6476
6771
  */
6477
6772
  isFloat(num) {
6478
6773
  return Number(num) === num && num % 1 !== 0;
@@ -6489,6 +6784,7 @@ var pops = (function () {
6489
6784
  },
6490
6785
  /**
6491
6786
  * 根据拖拽距离获取滑块应该在的区间和值
6787
+ * @param dragX
6492
6788
  */
6493
6789
  getDragInfo(dragX) {
6494
6790
  let result = this.$data.stepBlockMap.get(0);
@@ -6503,7 +6799,7 @@ var pops = (function () {
6503
6799
  },
6504
6800
  /**
6505
6801
  * 获取滑块的当前脱拖拽占据的百分比
6506
- * @param {number} dragWidth
6802
+ * @param dragWidth
6507
6803
  */
6508
6804
  getSliderPositonPercent(dragWidth) {
6509
6805
  return dragWidth / this.$data.totalWidth;
@@ -6555,6 +6851,21 @@ var pops = (function () {
6555
6851
  isDisabledDrag() {
6556
6852
  return this.$ele.runAway.classList.contains("pops-slider-is-disabled");
6557
6853
  },
6854
+ /**
6855
+ * 判断当前滑块是否被禁用(配置中判断)
6856
+ */
6857
+ isFormConfigDisabledDrag() {
6858
+ if (typeof formConfig.disabled === "function" ||
6859
+ typeof formConfig.disabled === "boolean") {
6860
+ let isDisabled = typeof formConfig.disabled === "function"
6861
+ ? formConfig.disabled()
6862
+ : formConfig.disabled;
6863
+ return isDisabled;
6864
+ }
6865
+ else {
6866
+ return false;
6867
+ }
6868
+ },
6558
6869
  /**
6559
6870
  * 设置进度条点击定位的事件
6560
6871
  */
@@ -6577,9 +6888,17 @@ var pops = (function () {
6577
6888
  */
6578
6889
  dragStartCallBack() {
6579
6890
  if (!this.$data.isMove) {
6580
- if (this.isDisabledDrag()) {
6891
+ if (this.isFormConfigDisabledDrag()) {
6892
+ // 禁止
6893
+ this.disableDrag();
6581
6894
  return false;
6582
6895
  }
6896
+ else {
6897
+ // 允许
6898
+ if (this.isDisabledDrag()) {
6899
+ this.allowDrag();
6900
+ }
6901
+ }
6583
6902
  this.$data.isMove = true;
6584
6903
  }
6585
6904
  return true;
@@ -6685,16 +7004,16 @@ var pops = (function () {
6685
7004
  return;
6686
7005
  }
6687
7006
  this.$data.isCheckingStopDragMove = true;
6688
- let interval = setInterval(() => {
7007
+ let interval = popsUtils.setInterval(() => {
6689
7008
  if (!this.$data.isMove) {
6690
7009
  this.$data.isCheckingStopDragMove = false;
6691
7010
  this.closeToolTip();
6692
- clearInterval(interval);
7011
+ popsUtils.clearInterval(interval);
6693
7012
  }
6694
7013
  }, 200);
6695
- setTimeout(() => {
7014
+ popsUtils.setTimeout(() => {
6696
7015
  this.$data.isCheckingStopDragMove = false;
6697
- clearInterval(interval);
7016
+ popsUtils.clearInterval(interval);
6698
7017
  }, 2000);
6699
7018
  },
6700
7019
  /**
@@ -6726,6 +7045,14 @@ var pops = (function () {
6726
7045
  passive: true,
6727
7046
  },
6728
7047
  showBeforeCallBack: () => {
7048
+ let isShowHoverTip = typeof formConfig.isShowHoverTip === "function"
7049
+ ? formConfig.isShowHoverTip()
7050
+ : typeof formConfig.isShowHoverTip === "boolean"
7051
+ ? formConfig.isShowHoverTip
7052
+ : true;
7053
+ if (!isShowHoverTip) {
7054
+ return false;
7055
+ }
6729
7056
  this.intervalInit();
6730
7057
  },
6731
7058
  showAfterCallBack: (toolTipNode) => {
@@ -8310,8 +8637,8 @@ var pops = (function () {
8310
8637
  };
8311
8638
  };
8312
8639
 
8313
- class PopsPanel {
8314
- constructor(details) {
8640
+ const PopsPanel = {
8641
+ init(details) {
8315
8642
  const guid = popsUtils.getRandomGUID();
8316
8643
  // 设置当前类型
8317
8644
  const PopsType = "panel";
@@ -8424,9 +8751,10 @@ var pops = (function () {
8424
8751
  endCallBack: config.dragEndCallBack,
8425
8752
  });
8426
8753
  }
8427
- return PopsHandler.handleResultDetails(eventDetails);
8428
- }
8429
- }
8754
+ let result = PopsHandler.handleResultDetails(eventDetails);
8755
+ return result;
8756
+ },
8757
+ };
8430
8758
 
8431
8759
  const rightClickMenuConfig = () => {
8432
8760
  return {
@@ -8553,8 +8881,8 @@ var pops = (function () {
8553
8881
  };
8554
8882
  };
8555
8883
 
8556
- class PopsRightClickMenu {
8557
- constructor(details) {
8884
+ const PopsRightClickMenu = {
8885
+ init(details) {
8558
8886
  const guid = popsUtils.getRandomGUID();
8559
8887
  // 设置当前类型
8560
8888
  const PopsType = "rightClickMenu";
@@ -8563,7 +8891,7 @@ var pops = (function () {
8563
8891
  config = popsUtils.assign(config, details);
8564
8892
  config = PopsHandler.handleOnly(PopsType, config);
8565
8893
  if (config.target == null) {
8566
- throw "config.target 不能为空";
8894
+ throw new Error("config.target 不能为空");
8567
8895
  }
8568
8896
  if (details.data) {
8569
8897
  // @ts-ignore
@@ -8980,8 +9308,8 @@ var pops = (function () {
8980
9308
  removeContextMenuEvent: PopsContextMenu.removeContextMenuEvent,
8981
9309
  addContextMenuEvent: PopsContextMenu.addContextMenuEvent,
8982
9310
  };
8983
- }
8984
- }
9311
+ },
9312
+ };
8985
9313
 
8986
9314
  const searchSuggestionConfig = () => {
8987
9315
  return {
@@ -9040,8 +9368,8 @@ var pops = (function () {
9040
9368
  };
9041
9369
  };
9042
9370
 
9043
- class PopsSearchSuggestion {
9044
- constructor(details) {
9371
+ const PopsSearchSuggestion = {
9372
+ init(details) {
9045
9373
  const guid = popsUtils.getRandomGUID();
9046
9374
  // 设置当前类型
9047
9375
  const PopsType = "searchSuggestion";
@@ -9049,7 +9377,7 @@ var pops = (function () {
9049
9377
  config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
9050
9378
  config = popsUtils.assign(config, details);
9051
9379
  if (config.target == null) {
9052
- throw new TypeError("config.target 不能为空");
9380
+ throw new Error("config.target 不能为空");
9053
9381
  }
9054
9382
  /* 做下兼容处理 */
9055
9383
  if (config.inputTarget == null) {
@@ -9320,7 +9648,7 @@ var pops = (function () {
9320
9648
  popsDOMUtils.on([config.inputTarget], ["focus", "click", "input"], void 0, SearchSuggestion.showEvent, option);
9321
9649
  }
9322
9650
  else {
9323
- throw new TypeError("未知followPosition:" + config.followPosition);
9651
+ throw new Error("未知followPosition:" + config.followPosition);
9324
9652
  }
9325
9653
  },
9326
9654
  /**
@@ -9579,8 +9907,8 @@ var pops = (function () {
9579
9907
  },
9580
9908
  };
9581
9909
  return SearchSuggestion;
9582
- }
9583
- }
9910
+ },
9911
+ };
9584
9912
 
9585
9913
  const PopsTooltipConfig = () => {
9586
9914
  // @ts-ignore
@@ -9731,11 +10059,12 @@ var pops = (function () {
9731
10059
  }
9732
10060
  /**
9733
10061
  * 计算 提示框的位置
10062
+ * @param event 触发的事件
9734
10063
  * @param targetElement 目标元素
9735
10064
  * @param arrowDistance 箭头和目标元素的距离
9736
10065
  * @param otherDistance 其它位置的偏移
9737
10066
  */
9738
- calcToolTipPosition(targetElement, arrowDistance, otherDistance) {
10067
+ calcToolTipPosition(targetElement, arrowDistance, otherDistance, event) {
9739
10068
  let offsetInfo = popsDOMUtils.offset(targetElement, !this.$data.config.isFixed);
9740
10069
  // 目标 宽
9741
10070
  let targetElement_width = offsetInfo.width;
@@ -9753,6 +10082,31 @@ var pops = (function () {
9753
10082
  let targetElement_X_center_pos = targetElement_left + targetElement_width / 2 - toolTipElement_width / 2;
9754
10083
  /* 目标元素的Y轴的中间位置 */
9755
10084
  let targetElement_Y_center_pos = targetElement_top + targetElement_height / 2 - toolTipElement_height / 2;
10085
+ let mouseX = 0;
10086
+ let mouseY = 0;
10087
+ if (event != null) {
10088
+ if (event instanceof MouseEvent || event instanceof PointerEvent) {
10089
+ mouseX = event.pageX;
10090
+ mouseY = event.y;
10091
+ }
10092
+ else if (event instanceof TouchEvent) {
10093
+ let touchEvent = event.touches[0];
10094
+ mouseX = touchEvent.pageX;
10095
+ mouseY = touchEvent.pageY;
10096
+ }
10097
+ else {
10098
+ // @ts-ignore
10099
+ if (typeof event.clientX === "number") {
10100
+ // @ts-ignore
10101
+ mouseX = event.clientX;
10102
+ }
10103
+ // @ts-ignore
10104
+ if (typeof event.clientY === "number") {
10105
+ // @ts-ignore
10106
+ mouseY = event.clientY;
10107
+ }
10108
+ }
10109
+ }
9756
10110
  return {
9757
10111
  TOP: {
9758
10112
  left: targetElement_X_center_pos - otherDistance,
@@ -9778,13 +10132,19 @@ var pops = (function () {
9778
10132
  arrow: "right",
9779
10133
  motion: "fadeInLeft",
9780
10134
  },
10135
+ FOLLOW: {
10136
+ left: mouseX + otherDistance,
10137
+ top: mouseY + otherDistance,
10138
+ arrow: "follow",
10139
+ motion: "",
10140
+ },
9781
10141
  };
9782
10142
  }
9783
10143
  /**
9784
10144
  * 动态修改tooltip的位置
9785
10145
  */
9786
- changePosition() {
9787
- let positionInfo = this.calcToolTipPosition(this.$data.config.target, this.$data.config.arrowDistance, this.$data.config.otherDistance);
10146
+ changePosition(event) {
10147
+ let positionInfo = this.calcToolTipPosition(this.$data.config.target, this.$data.config.arrowDistance, this.$data.config.otherDistance, event);
9788
10148
  let positionKey = this.$data.config.position.toUpperCase();
9789
10149
  let positionDetail = positionInfo[positionKey];
9790
10150
  if (positionDetail) {
@@ -9844,13 +10204,13 @@ var pops = (function () {
9844
10204
  if (typeof timeId === "number") {
9845
10205
  // 只清除一个
9846
10206
  if (timeId == currentTimeId) {
9847
- clearTimeout(timeId);
10207
+ popsUtils.clearTimeout(timeId);
9848
10208
  timeIdList.splice(index, 1);
9849
10209
  break;
9850
10210
  }
9851
10211
  }
9852
10212
  else {
9853
- clearTimeout(currentTimeId);
10213
+ popsUtils.clearTimeout(currentTimeId);
9854
10214
  timeIdList.splice(index, 1);
9855
10215
  index--;
9856
10216
  }
@@ -9884,7 +10244,7 @@ var pops = (function () {
9884
10244
  // 更新内容
9885
10245
  this.changeContent();
9886
10246
  // 更新tip的位置
9887
- this.changePosition();
10247
+ this.changePosition(event);
9888
10248
  if (typeof this.$data.config.showAfterCallBack === "function") {
9889
10249
  this.$data.config.showAfterCallBack(this.$el.$toolTip);
9890
10250
  }
@@ -9929,16 +10289,24 @@ var pops = (function () {
9929
10289
  this.$data.config.delayCloseTime <= 0)) {
9930
10290
  this.$data.config.delayCloseTime = 100;
9931
10291
  }
9932
- let timeId = setTimeout(() => {
10292
+ let timeId = popsUtils.setTimeout(() => {
9933
10293
  // 设置属性触发关闭动画
9934
10294
  this.clearCloseTimeoutId(eventType, timeId);
9935
10295
  if (this.$el.$toolTip == null) {
9936
10296
  // 已清除了
9937
10297
  return;
9938
10298
  }
9939
- this.$el.$toolTip.setAttribute("data-motion", this.$el.$toolTip
9940
- .getAttribute("data-motion")
9941
- .replace("fadeIn", "fadeOut"));
10299
+ let motion = this.$el.$toolTip.getAttribute("data-motion");
10300
+ if (motion == null || motion.trim() === "") {
10301
+ // 没有动画
10302
+ this.toolTipAnimationFinishEvent();
10303
+ }
10304
+ else {
10305
+ // 修改data-motion触发动画关闭
10306
+ this.$el.$toolTip.setAttribute("data-motion", this.$el.$toolTip
10307
+ .getAttribute("data-motion")
10308
+ .replace("fadeIn", "fadeOut"));
10309
+ }
9942
10310
  }, this.$data.config.delayCloseTime);
9943
10311
  this.addCloseTimeoutId(eventType, timeId);
9944
10312
  if (typeof this.$data.config.closeAfterCallBack === "function") {
@@ -10043,8 +10411,8 @@ var pops = (function () {
10043
10411
  popsDOMUtils.off(this.$el.$toolTip, "mouseleave touchend", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
10044
10412
  }
10045
10413
  }
10046
- class PopsTooltip {
10047
- constructor(details) {
10414
+ const PopsTooltip = {
10415
+ init(details) {
10048
10416
  const guid = popsUtils.getRandomGUID();
10049
10417
  // 设置当前类型
10050
10418
  const PopsType = "tooltip";
@@ -10052,7 +10420,7 @@ var pops = (function () {
10052
10420
  config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
10053
10421
  config = popsUtils.assign(config, details);
10054
10422
  if (!(config.target instanceof HTMLElement)) {
10055
- throw "config.target 必须是HTMLElement类型";
10423
+ throw new TypeError("config.target 必须是HTMLElement类型");
10056
10424
  }
10057
10425
  config = PopsHandler.handleOnly(PopsType, config);
10058
10426
  const { $shadowContainer, $shadowRoot } = PopsHandler.handlerShadow(config);
@@ -10072,20 +10440,20 @@ var pops = (function () {
10072
10440
  toolTip.show();
10073
10441
  }
10074
10442
  return {
10075
- guid: guid,
10076
- config: config,
10077
- $shadowContainer: $shadowContainer,
10078
- $shadowRoot: $shadowRoot,
10079
- toolTip: toolTip,
10443
+ guid,
10444
+ config,
10445
+ $shadowContainer,
10446
+ $shadowRoot,
10447
+ toolTip,
10080
10448
  };
10081
- }
10082
- }
10449
+ },
10450
+ };
10083
10451
 
10084
10452
  class Pops {
10085
10453
  /** 配置 */
10086
10454
  config = {
10087
10455
  /** 版本号 */
10088
- version: "2025.5.12",
10456
+ version: "2025.5.26",
10089
10457
  cssText: {
10090
10458
  /** 主CSS */
10091
10459
  index: indexCSS,
@@ -10194,7 +10562,7 @@ var pops = (function () {
10194
10562
  popsDOMUtils.appendHead(animationStyle);
10195
10563
  this.config.animation = null;
10196
10564
  this.config.animation = PopsInstanceUtils.getKeyFrames(animationStyle.sheet);
10197
- setTimeout(() => {
10565
+ popsUtils.setTimeout(() => {
10198
10566
  animationStyle.remove();
10199
10567
  }, 50);
10200
10568
  }
@@ -10231,42 +10599,47 @@ var pops = (function () {
10231
10599
  * @param details 配置
10232
10600
  */
10233
10601
  alert = (details) => {
10234
- return new PopsAlert(details);
10602
+ let dialog = PopsAlert.init(details);
10603
+ return dialog;
10235
10604
  };
10236
10605
  /**
10237
10606
  * 询问框
10238
10607
  * @param details 配置
10239
10608
  */
10240
10609
  confirm = (details) => {
10241
- return new PopsConfirm(details);
10610
+ let dialog = PopsConfirm.init(details);
10611
+ return dialog;
10242
10612
  };
10243
10613
  /**
10244
10614
  * 输入框
10245
10615
  * @param details 配置
10246
10616
  */
10247
10617
  prompt = (details) => {
10248
- return new PopsPrompt(details);
10618
+ let dialog = PopsPrompt.init(details);
10619
+ return dialog;
10249
10620
  };
10250
10621
  /**
10251
10622
  * 加载层
10252
10623
  * @param details 配置
10253
10624
  */
10254
10625
  loading = (details) => {
10255
- return new PopsLoading(details);
10626
+ let popsLoading = PopsLoading.init(details);
10627
+ return popsLoading;
10256
10628
  };
10257
10629
  /**
10258
10630
  * iframe层
10259
10631
  * @param details 配置
10260
10632
  */
10261
10633
  iframe = (details) => {
10262
- return new PopsIframe(details);
10634
+ let dialog = PopsIframe.init(details);
10635
+ return dialog;
10263
10636
  };
10264
10637
  /**
10265
10638
  * 提示框
10266
10639
  * @param details 配置
10267
10640
  */
10268
10641
  tooltip = (details) => {
10269
- let popsTooltip = new PopsTooltip(details);
10642
+ let popsTooltip = PopsTooltip.init(details);
10270
10643
  return popsTooltip;
10271
10644
  };
10272
10645
  /**
@@ -10274,35 +10647,40 @@ var pops = (function () {
10274
10647
  * @param details 配置
10275
10648
  */
10276
10649
  drawer = (details) => {
10277
- return new PopsDrawer(details);
10650
+ let dialog = PopsDrawer.init(details);
10651
+ return dialog;
10278
10652
  };
10279
10653
  /**
10280
10654
  * 文件夹
10281
10655
  * @param details 配置
10282
10656
  */
10283
10657
  folder = (details) => {
10284
- return new PopsFolder(details);
10658
+ let dialog = PopsFolder.init(details);
10659
+ return dialog;
10285
10660
  };
10286
10661
  /**
10287
10662
  * 配置面板
10288
10663
  * @param details 配置
10289
10664
  */
10290
10665
  panel = (details) => {
10291
- return new PopsPanel(details);
10666
+ let dialog = PopsPanel.init(details);
10667
+ return dialog;
10292
10668
  };
10293
10669
  /**
10294
10670
  * 右键菜单
10295
10671
  * @param details 配置
10296
10672
  */
10297
10673
  rightClickMenu = (details) => {
10298
- return new PopsRightClickMenu(details);
10674
+ let popsRightClickMenu = PopsRightClickMenu.init(details);
10675
+ return popsRightClickMenu;
10299
10676
  };
10300
10677
  /**
10301
10678
  * 搜索建议
10302
10679
  * @param details 配置
10303
10680
  */
10304
10681
  searchSuggestion = (details) => {
10305
- return new PopsSearchSuggestion(details);
10682
+ let popsSearchSuggestion = PopsSearchSuggestion.init(details);
10683
+ return popsSearchSuggestion;
10306
10684
  };
10307
10685
  }
10308
10686
  const pops = new Pops();