@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
@@ -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
- 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={};}};
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
+ };
94
+
95
+ const PORT_MAP = new WeakMap();
96
+
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={};}};
47
280
 
48
- 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}
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}
49
282
 
50
- 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();}};
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,!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}
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 !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}
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 Error("Utils.formatByteToSize 参数 byteSize 格式不正确");
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); /* 前 */
@@ -3249,8 +3534,8 @@ System.register('pops', [], (function (exports) {
3249
3534
  };
3250
3535
  };
3251
3536
 
3252
- class PopsAlert {
3253
- constructor(details) {
3537
+ const PopsAlert = {
3538
+ init(details) {
3254
3539
  const guid = popsUtils.getRandomGUID();
3255
3540
  // 设置当前类型
3256
3541
  const PopsType = "alert";
@@ -3339,9 +3624,10 @@ System.register('pops', [], (function (exports) {
3339
3624
  endCallBack: config.dragEndCallBack,
3340
3625
  });
3341
3626
  }
3342
- return PopsHandler.handleResultDetails(eventDetails);
3343
- }
3344
- }
3627
+ let result = PopsHandler.handleResultDetails(eventDetails);
3628
+ return result;
3629
+ },
3630
+ };
3345
3631
 
3346
3632
  const PopsConfirmConfig = () => {
3347
3633
  return {
@@ -3431,8 +3717,8 @@ System.register('pops', [], (function (exports) {
3431
3717
  };
3432
3718
  };
3433
3719
 
3434
- class PopsConfirm {
3435
- constructor(details) {
3720
+ const PopsConfirm = {
3721
+ init(details) {
3436
3722
  const guid = popsUtils.getRandomGUID();
3437
3723
  // 设置当前类型
3438
3724
  const PopsType = "confirm";
@@ -3522,9 +3808,10 @@ System.register('pops', [], (function (exports) {
3522
3808
  endCallBack: config.dragEndCallBack,
3523
3809
  });
3524
3810
  }
3525
- return PopsHandler.handleResultDetails(eventDetails);
3526
- }
3527
- }
3811
+ let result = PopsHandler.handleResultDetails(eventDetails);
3812
+ return result;
3813
+ },
3814
+ };
3528
3815
 
3529
3816
  const PopsPromptConfig = () => {
3530
3817
  return {
@@ -3618,8 +3905,8 @@ System.register('pops', [], (function (exports) {
3618
3905
  };
3619
3906
  };
3620
3907
 
3621
- class PopsPrompt {
3622
- constructor(details) {
3908
+ const PopsPrompt = {
3909
+ init(details) {
3623
3910
  const guid = popsUtils.getRandomGUID();
3624
3911
  // 设置当前类型
3625
3912
  const PopsType = "prompt";
@@ -3725,9 +4012,10 @@ System.register('pops', [], (function (exports) {
3725
4012
  if (config.content.select) {
3726
4013
  $input.select();
3727
4014
  }
3728
- return PopsHandler.handleResultDetails(eventDetails);
3729
- }
3730
- }
4015
+ let result = PopsHandler.handleResultDetails(eventDetails);
4016
+ return result;
4017
+ },
4018
+ };
3731
4019
 
3732
4020
  const PopsLoadingConfig = () => {
3733
4021
  return {
@@ -3757,8 +4045,8 @@ System.register('pops', [], (function (exports) {
3757
4045
  };
3758
4046
  };
3759
4047
 
3760
- class PopsLoading {
3761
- constructor(details) {
4048
+ const PopsLoading = {
4049
+ init(details) {
3762
4050
  let config = PopsLoadingConfig();
3763
4051
  config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
3764
4052
  config = popsUtils.assign(config, details);
@@ -3826,9 +4114,10 @@ System.register('pops', [], (function (exports) {
3826
4114
  popsDOMUtils.css($anim, "position", "absolute !important");
3827
4115
  $mask && popsDOMUtils.css($mask, "position", "absolute !important");
3828
4116
  }
3829
- return PopsHandler.handleResultDetails(eventDetails);
3830
- }
3831
- }
4117
+ let result = PopsHandler.handleResultDetails(eventDetails);
4118
+ return result;
4119
+ },
4120
+ };
3832
4121
 
3833
4122
  const PopsIframeConfig = () => {
3834
4123
  return {
@@ -3888,8 +4177,8 @@ System.register('pops', [], (function (exports) {
3888
4177
  };
3889
4178
  };
3890
4179
 
3891
- class PopsIframe {
3892
- constructor(details) {
4180
+ const PopsIframe = {
4181
+ init(details) {
3893
4182
  const guid = popsUtils.getRandomGUID();
3894
4183
  // 设置当前类型
3895
4184
  const PopsType = "iframe";
@@ -3897,7 +4186,7 @@ System.register('pops', [], (function (exports) {
3897
4186
  config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
3898
4187
  config = popsUtils.assign(config, details);
3899
4188
  if (config.url == null) {
3900
- throw "config.url不能为空";
4189
+ throw new Error("config.url不能为空");
3901
4190
  }
3902
4191
  config = PopsHandler.handleOnly(PopsType, config);
3903
4192
  const { $shadowContainer, $shadowRoot } = PopsHandler.handlerShadow(config);
@@ -4119,8 +4408,8 @@ System.register('pops', [], (function (exports) {
4119
4408
  });
4120
4409
  let result = PopsHandler.handleResultDetails(eventDetails);
4121
4410
  return result;
4122
- }
4123
- }
4411
+ },
4412
+ };
4124
4413
 
4125
4414
  const PopsDrawerConfig = () => {
4126
4415
  return {
@@ -4209,8 +4498,8 @@ System.register('pops', [], (function (exports) {
4209
4498
  };
4210
4499
  };
4211
4500
 
4212
- class PopsDrawer {
4213
- constructor(details) {
4501
+ const PopsDrawer = {
4502
+ init(details) {
4214
4503
  const guid = popsUtils.getRandomGUID();
4215
4504
  // 设置当前类型
4216
4505
  const PopsType = "drawer";
@@ -4355,8 +4644,8 @@ System.register('pops', [], (function (exports) {
4355
4644
  config.beforeAppendToPageCallBack($shadowRoot, $shadowContainer);
4356
4645
  }
4357
4646
  popsDOMUtils.appendBody($shadowContainer);
4358
- setTimeout(() => {
4359
- setTimeout(() => {
4647
+ popsUtils.setTimeout(() => {
4648
+ popsUtils.setTimeout(() => {
4360
4649
  $pops.style.setProperty("transform", "");
4361
4650
  }, config.openDelay);
4362
4651
  }, 50);
@@ -4371,9 +4660,10 @@ System.register('pops', [], (function (exports) {
4371
4660
  $shadowContainer: $shadowContainer,
4372
4661
  $shadowRoot: $shadowRoot,
4373
4662
  });
4374
- return PopsHandler.handleResultDetails(eventDetails);
4375
- }
4376
- }
4663
+ let result = PopsHandler.handleResultDetails(eventDetails);
4664
+ return result;
4665
+ },
4666
+ };
4377
4667
 
4378
4668
  const PopsFolderConfig = () => {
4379
4669
  return {
@@ -4535,8 +4825,8 @@ System.register('pops', [], (function (exports) {
4535
4825
  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=",
4536
4826
  };
4537
4827
 
4538
- class PopsFolder {
4539
- constructor(details) {
4828
+ const PopsFolder = {
4829
+ init(details) {
4540
4830
  const guid = popsUtils.getRandomGUID();
4541
4831
  // 设置当前类型
4542
4832
  const PopsType = "folder";
@@ -5076,12 +5366,12 @@ System.register('pops', [], (function (exports) {
5076
5366
  let downloadIframeLinkElement = document.createElement("iframe");
5077
5367
  downloadIframeLinkElement.src = downloadInfo.url;
5078
5368
  downloadIframeLinkElement.onload = function () {
5079
- setTimeout(() => {
5369
+ popsUtils.setTimeout(() => {
5080
5370
  downloadIframeLinkElement.remove();
5081
5371
  }, 1000);
5082
5372
  };
5083
5373
  $shadowRoot.appendChild(downloadIframeLinkElement);
5084
- setTimeout(() => {
5374
+ popsUtils.setTimeout(() => {
5085
5375
  downloadIframeLinkElement.remove();
5086
5376
  }, 3 * 60 * 1000);
5087
5377
  }
@@ -5318,9 +5608,10 @@ System.register('pops', [], (function (exports) {
5318
5608
  $shadowContainer: $shadowContainer,
5319
5609
  $shadowRoot: $shadowRoot,
5320
5610
  });
5321
- return PopsHandler.handleResultDetails(eventDetails);
5322
- }
5323
- }
5611
+ let result = PopsHandler.handleResultDetails(eventDetails);
5612
+ return result;
5613
+ },
5614
+ };
5324
5615
 
5325
5616
  const PopsPanelConfig = () => {
5326
5617
  return {
@@ -6203,6 +6494,7 @@ System.register('pops', [], (function (exports) {
6203
6494
  */
6204
6495
  createSectionContainerItem_slider_new(formConfig) {
6205
6496
  let liElement = document.createElement("li");
6497
+ // @ts-ignore
6206
6498
  liElement["__formConfig__"] = formConfig;
6207
6499
  this.setElementClassName(liElement, formConfig.className);
6208
6500
  this.setElementAttributes(liElement, formConfig.attributes);
@@ -6303,15 +6595,15 @@ System.register('pops', [], (function (exports) {
6303
6595
  this.setPanEvent();
6304
6596
  this.setRunAwayClickEvent();
6305
6597
  this.intervalInit();
6306
- if (formConfig.disabled) {
6598
+ if (this.isFormConfigDisabledDrag()) {
6307
6599
  this.disableDrag();
6308
6600
  }
6309
6601
  },
6310
6602
  /**
6311
6603
  * 10s内循环获取slider的宽度等信息
6312
6604
  * 获取到了就可以初始化left的值
6313
- * @param {number} [checkStepTime=200] 每次检测的间隔时间
6314
- * @param {number} [maxTime=10000] 最大的检测时间
6605
+ * @param [checkStepTime=200] 每次检测的间隔时间
6606
+ * @param [maxTime=10000] 最大的检测时间
6315
6607
  */
6316
6608
  intervalInit(checkStepTime = 200, maxTime = 10000) {
6317
6609
  if (this.$interval.isCheck) {
@@ -6321,11 +6613,11 @@ System.register('pops', [], (function (exports) {
6321
6613
  let isSuccess = false;
6322
6614
  let oldTotalWidth = this.$data.totalWidth;
6323
6615
  let timer = void 0;
6324
- let interval = setInterval(() => {
6616
+ let interval = popsUtils.setInterval(() => {
6325
6617
  if (isSuccess) {
6326
6618
  this.$interval.isCheck = false;
6327
- clearTimeout(timer);
6328
- clearInterval(interval);
6619
+ popsUtils.clearTimeout(timer);
6620
+ popsUtils.clearInterval(interval);
6329
6621
  }
6330
6622
  else {
6331
6623
  this.initTotalWidth();
@@ -6345,8 +6637,8 @@ System.register('pops', [], (function (exports) {
6345
6637
  }
6346
6638
  }, checkStepTime);
6347
6639
  /* 最长检测时间是10s */
6348
- timer = setTimeout(() => {
6349
- clearInterval(interval);
6640
+ timer = popsUtils.setTimeout(() => {
6641
+ popsUtils.clearInterval(interval);
6350
6642
  }, maxTime);
6351
6643
  },
6352
6644
  /**
@@ -6357,9 +6649,13 @@ System.register('pops', [], (function (exports) {
6357
6649
  this.$ele.slider.setAttribute("data-max", this.max.toString());
6358
6650
  this.$ele.slider.setAttribute("data-value", this.value.toString());
6359
6651
  this.$ele.slider.setAttribute("data-step", this.step.toString());
6652
+ // @ts-ignore
6360
6653
  this.$ele.slider["data-min"] = this.min;
6654
+ // @ts-ignore
6361
6655
  this.$ele.slider["data-max"] = this.max;
6656
+ // @ts-ignore
6362
6657
  this.$ele.slider["data-value"] = this.value;
6658
+ // @ts-ignore
6363
6659
  this.$ele.slider["data-step"] = this.step;
6364
6660
  },
6365
6661
  /**
@@ -6474,7 +6770,6 @@ System.register('pops', [], (function (exports) {
6474
6770
  /**
6475
6771
  * 判断数字是否是浮点数
6476
6772
  * @param num
6477
- * @returns
6478
6773
  */
6479
6774
  isFloat(num) {
6480
6775
  return Number(num) === num && num % 1 !== 0;
@@ -6491,6 +6786,7 @@ System.register('pops', [], (function (exports) {
6491
6786
  },
6492
6787
  /**
6493
6788
  * 根据拖拽距离获取滑块应该在的区间和值
6789
+ * @param dragX
6494
6790
  */
6495
6791
  getDragInfo(dragX) {
6496
6792
  let result = this.$data.stepBlockMap.get(0);
@@ -6505,7 +6801,7 @@ System.register('pops', [], (function (exports) {
6505
6801
  },
6506
6802
  /**
6507
6803
  * 获取滑块的当前脱拖拽占据的百分比
6508
- * @param {number} dragWidth
6804
+ * @param dragWidth
6509
6805
  */
6510
6806
  getSliderPositonPercent(dragWidth) {
6511
6807
  return dragWidth / this.$data.totalWidth;
@@ -6557,6 +6853,21 @@ System.register('pops', [], (function (exports) {
6557
6853
  isDisabledDrag() {
6558
6854
  return this.$ele.runAway.classList.contains("pops-slider-is-disabled");
6559
6855
  },
6856
+ /**
6857
+ * 判断当前滑块是否被禁用(配置中判断)
6858
+ */
6859
+ isFormConfigDisabledDrag() {
6860
+ if (typeof formConfig.disabled === "function" ||
6861
+ typeof formConfig.disabled === "boolean") {
6862
+ let isDisabled = typeof formConfig.disabled === "function"
6863
+ ? formConfig.disabled()
6864
+ : formConfig.disabled;
6865
+ return isDisabled;
6866
+ }
6867
+ else {
6868
+ return false;
6869
+ }
6870
+ },
6560
6871
  /**
6561
6872
  * 设置进度条点击定位的事件
6562
6873
  */
@@ -6579,9 +6890,17 @@ System.register('pops', [], (function (exports) {
6579
6890
  */
6580
6891
  dragStartCallBack() {
6581
6892
  if (!this.$data.isMove) {
6582
- if (this.isDisabledDrag()) {
6893
+ if (this.isFormConfigDisabledDrag()) {
6894
+ // 禁止
6895
+ this.disableDrag();
6583
6896
  return false;
6584
6897
  }
6898
+ else {
6899
+ // 允许
6900
+ if (this.isDisabledDrag()) {
6901
+ this.allowDrag();
6902
+ }
6903
+ }
6585
6904
  this.$data.isMove = true;
6586
6905
  }
6587
6906
  return true;
@@ -6687,16 +7006,16 @@ System.register('pops', [], (function (exports) {
6687
7006
  return;
6688
7007
  }
6689
7008
  this.$data.isCheckingStopDragMove = true;
6690
- let interval = setInterval(() => {
7009
+ let interval = popsUtils.setInterval(() => {
6691
7010
  if (!this.$data.isMove) {
6692
7011
  this.$data.isCheckingStopDragMove = false;
6693
7012
  this.closeToolTip();
6694
- clearInterval(interval);
7013
+ popsUtils.clearInterval(interval);
6695
7014
  }
6696
7015
  }, 200);
6697
- setTimeout(() => {
7016
+ popsUtils.setTimeout(() => {
6698
7017
  this.$data.isCheckingStopDragMove = false;
6699
- clearInterval(interval);
7018
+ popsUtils.clearInterval(interval);
6700
7019
  }, 2000);
6701
7020
  },
6702
7021
  /**
@@ -6728,6 +7047,14 @@ System.register('pops', [], (function (exports) {
6728
7047
  passive: true,
6729
7048
  },
6730
7049
  showBeforeCallBack: () => {
7050
+ let isShowHoverTip = typeof formConfig.isShowHoverTip === "function"
7051
+ ? formConfig.isShowHoverTip()
7052
+ : typeof formConfig.isShowHoverTip === "boolean"
7053
+ ? formConfig.isShowHoverTip
7054
+ : true;
7055
+ if (!isShowHoverTip) {
7056
+ return false;
7057
+ }
6731
7058
  this.intervalInit();
6732
7059
  },
6733
7060
  showAfterCallBack: (toolTipNode) => {
@@ -8312,8 +8639,8 @@ System.register('pops', [], (function (exports) {
8312
8639
  };
8313
8640
  };
8314
8641
 
8315
- class PopsPanel {
8316
- constructor(details) {
8642
+ const PopsPanel = {
8643
+ init(details) {
8317
8644
  const guid = popsUtils.getRandomGUID();
8318
8645
  // 设置当前类型
8319
8646
  const PopsType = "panel";
@@ -8426,9 +8753,10 @@ System.register('pops', [], (function (exports) {
8426
8753
  endCallBack: config.dragEndCallBack,
8427
8754
  });
8428
8755
  }
8429
- return PopsHandler.handleResultDetails(eventDetails);
8430
- }
8431
- }
8756
+ let result = PopsHandler.handleResultDetails(eventDetails);
8757
+ return result;
8758
+ },
8759
+ };
8432
8760
 
8433
8761
  const rightClickMenuConfig = () => {
8434
8762
  return {
@@ -8555,8 +8883,8 @@ System.register('pops', [], (function (exports) {
8555
8883
  };
8556
8884
  };
8557
8885
 
8558
- class PopsRightClickMenu {
8559
- constructor(details) {
8886
+ const PopsRightClickMenu = {
8887
+ init(details) {
8560
8888
  const guid = popsUtils.getRandomGUID();
8561
8889
  // 设置当前类型
8562
8890
  const PopsType = "rightClickMenu";
@@ -8565,7 +8893,7 @@ System.register('pops', [], (function (exports) {
8565
8893
  config = popsUtils.assign(config, details);
8566
8894
  config = PopsHandler.handleOnly(PopsType, config);
8567
8895
  if (config.target == null) {
8568
- throw "config.target 不能为空";
8896
+ throw new Error("config.target 不能为空");
8569
8897
  }
8570
8898
  if (details.data) {
8571
8899
  // @ts-ignore
@@ -8982,8 +9310,8 @@ System.register('pops', [], (function (exports) {
8982
9310
  removeContextMenuEvent: PopsContextMenu.removeContextMenuEvent,
8983
9311
  addContextMenuEvent: PopsContextMenu.addContextMenuEvent,
8984
9312
  };
8985
- }
8986
- }
9313
+ },
9314
+ };
8987
9315
 
8988
9316
  const searchSuggestionConfig = () => {
8989
9317
  return {
@@ -9042,8 +9370,8 @@ System.register('pops', [], (function (exports) {
9042
9370
  };
9043
9371
  };
9044
9372
 
9045
- class PopsSearchSuggestion {
9046
- constructor(details) {
9373
+ const PopsSearchSuggestion = {
9374
+ init(details) {
9047
9375
  const guid = popsUtils.getRandomGUID();
9048
9376
  // 设置当前类型
9049
9377
  const PopsType = "searchSuggestion";
@@ -9051,7 +9379,7 @@ System.register('pops', [], (function (exports) {
9051
9379
  config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
9052
9380
  config = popsUtils.assign(config, details);
9053
9381
  if (config.target == null) {
9054
- throw new TypeError("config.target 不能为空");
9382
+ throw new Error("config.target 不能为空");
9055
9383
  }
9056
9384
  /* 做下兼容处理 */
9057
9385
  if (config.inputTarget == null) {
@@ -9322,7 +9650,7 @@ System.register('pops', [], (function (exports) {
9322
9650
  popsDOMUtils.on([config.inputTarget], ["focus", "click", "input"], void 0, SearchSuggestion.showEvent, option);
9323
9651
  }
9324
9652
  else {
9325
- throw new TypeError("未知followPosition:" + config.followPosition);
9653
+ throw new Error("未知followPosition:" + config.followPosition);
9326
9654
  }
9327
9655
  },
9328
9656
  /**
@@ -9581,8 +9909,8 @@ System.register('pops', [], (function (exports) {
9581
9909
  },
9582
9910
  };
9583
9911
  return SearchSuggestion;
9584
- }
9585
- }
9912
+ },
9913
+ };
9586
9914
 
9587
9915
  const PopsTooltipConfig = () => {
9588
9916
  // @ts-ignore
@@ -9733,11 +10061,12 @@ System.register('pops', [], (function (exports) {
9733
10061
  }
9734
10062
  /**
9735
10063
  * 计算 提示框的位置
10064
+ * @param event 触发的事件
9736
10065
  * @param targetElement 目标元素
9737
10066
  * @param arrowDistance 箭头和目标元素的距离
9738
10067
  * @param otherDistance 其它位置的偏移
9739
10068
  */
9740
- calcToolTipPosition(targetElement, arrowDistance, otherDistance) {
10069
+ calcToolTipPosition(targetElement, arrowDistance, otherDistance, event) {
9741
10070
  let offsetInfo = popsDOMUtils.offset(targetElement, !this.$data.config.isFixed);
9742
10071
  // 目标 宽
9743
10072
  let targetElement_width = offsetInfo.width;
@@ -9755,6 +10084,31 @@ System.register('pops', [], (function (exports) {
9755
10084
  let targetElement_X_center_pos = targetElement_left + targetElement_width / 2 - toolTipElement_width / 2;
9756
10085
  /* 目标元素的Y轴的中间位置 */
9757
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
+ }
9758
10112
  return {
9759
10113
  TOP: {
9760
10114
  left: targetElement_X_center_pos - otherDistance,
@@ -9780,13 +10134,19 @@ System.register('pops', [], (function (exports) {
9780
10134
  arrow: "right",
9781
10135
  motion: "fadeInLeft",
9782
10136
  },
10137
+ FOLLOW: {
10138
+ left: mouseX + otherDistance,
10139
+ top: mouseY + otherDistance,
10140
+ arrow: "follow",
10141
+ motion: "",
10142
+ },
9783
10143
  };
9784
10144
  }
9785
10145
  /**
9786
10146
  * 动态修改tooltip的位置
9787
10147
  */
9788
- changePosition() {
9789
- 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);
9790
10150
  let positionKey = this.$data.config.position.toUpperCase();
9791
10151
  let positionDetail = positionInfo[positionKey];
9792
10152
  if (positionDetail) {
@@ -9846,13 +10206,13 @@ System.register('pops', [], (function (exports) {
9846
10206
  if (typeof timeId === "number") {
9847
10207
  // 只清除一个
9848
10208
  if (timeId == currentTimeId) {
9849
- clearTimeout(timeId);
10209
+ popsUtils.clearTimeout(timeId);
9850
10210
  timeIdList.splice(index, 1);
9851
10211
  break;
9852
10212
  }
9853
10213
  }
9854
10214
  else {
9855
- clearTimeout(currentTimeId);
10215
+ popsUtils.clearTimeout(currentTimeId);
9856
10216
  timeIdList.splice(index, 1);
9857
10217
  index--;
9858
10218
  }
@@ -9886,7 +10246,7 @@ System.register('pops', [], (function (exports) {
9886
10246
  // 更新内容
9887
10247
  this.changeContent();
9888
10248
  // 更新tip的位置
9889
- this.changePosition();
10249
+ this.changePosition(event);
9890
10250
  if (typeof this.$data.config.showAfterCallBack === "function") {
9891
10251
  this.$data.config.showAfterCallBack(this.$el.$toolTip);
9892
10252
  }
@@ -9931,16 +10291,24 @@ System.register('pops', [], (function (exports) {
9931
10291
  this.$data.config.delayCloseTime <= 0)) {
9932
10292
  this.$data.config.delayCloseTime = 100;
9933
10293
  }
9934
- let timeId = setTimeout(() => {
10294
+ let timeId = popsUtils.setTimeout(() => {
9935
10295
  // 设置属性触发关闭动画
9936
10296
  this.clearCloseTimeoutId(eventType, timeId);
9937
10297
  if (this.$el.$toolTip == null) {
9938
10298
  // 已清除了
9939
10299
  return;
9940
10300
  }
9941
- this.$el.$toolTip.setAttribute("data-motion", this.$el.$toolTip
9942
- .getAttribute("data-motion")
9943
- .replace("fadeIn", "fadeOut"));
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
+ }
9944
10312
  }, this.$data.config.delayCloseTime);
9945
10313
  this.addCloseTimeoutId(eventType, timeId);
9946
10314
  if (typeof this.$data.config.closeAfterCallBack === "function") {
@@ -10045,8 +10413,8 @@ System.register('pops', [], (function (exports) {
10045
10413
  popsDOMUtils.off(this.$el.$toolTip, "mouseleave touchend", this.toolTipMouseLeaveEvent, this.$data.config.eventOption);
10046
10414
  }
10047
10415
  }
10048
- class PopsTooltip {
10049
- constructor(details) {
10416
+ const PopsTooltip = {
10417
+ init(details) {
10050
10418
  const guid = popsUtils.getRandomGUID();
10051
10419
  // 设置当前类型
10052
10420
  const PopsType = "tooltip";
@@ -10054,7 +10422,7 @@ System.register('pops', [], (function (exports) {
10054
10422
  config = popsUtils.assign(config, GlobalConfig.getGlobalConfig());
10055
10423
  config = popsUtils.assign(config, details);
10056
10424
  if (!(config.target instanceof HTMLElement)) {
10057
- throw "config.target 必须是HTMLElement类型";
10425
+ throw new TypeError("config.target 必须是HTMLElement类型");
10058
10426
  }
10059
10427
  config = PopsHandler.handleOnly(PopsType, config);
10060
10428
  const { $shadowContainer, $shadowRoot } = PopsHandler.handlerShadow(config);
@@ -10074,20 +10442,20 @@ System.register('pops', [], (function (exports) {
10074
10442
  toolTip.show();
10075
10443
  }
10076
10444
  return {
10077
- guid: guid,
10078
- config: config,
10079
- $shadowContainer: $shadowContainer,
10080
- $shadowRoot: $shadowRoot,
10081
- toolTip: toolTip,
10445
+ guid,
10446
+ config,
10447
+ $shadowContainer,
10448
+ $shadowRoot,
10449
+ toolTip,
10082
10450
  };
10083
- }
10084
- }
10451
+ },
10452
+ };
10085
10453
 
10086
10454
  class Pops {
10087
10455
  /** 配置 */
10088
10456
  config = {
10089
10457
  /** 版本号 */
10090
- version: "2025.5.12",
10458
+ version: "2025.5.26",
10091
10459
  cssText: {
10092
10460
  /** 主CSS */
10093
10461
  index: indexCSS,
@@ -10196,7 +10564,7 @@ System.register('pops', [], (function (exports) {
10196
10564
  popsDOMUtils.appendHead(animationStyle);
10197
10565
  this.config.animation = null;
10198
10566
  this.config.animation = PopsInstanceUtils.getKeyFrames(animationStyle.sheet);
10199
- setTimeout(() => {
10567
+ popsUtils.setTimeout(() => {
10200
10568
  animationStyle.remove();
10201
10569
  }, 50);
10202
10570
  }
@@ -10233,42 +10601,47 @@ System.register('pops', [], (function (exports) {
10233
10601
  * @param details 配置
10234
10602
  */
10235
10603
  alert = (details) => {
10236
- return new PopsAlert(details);
10604
+ let dialog = PopsAlert.init(details);
10605
+ return dialog;
10237
10606
  };
10238
10607
  /**
10239
10608
  * 询问框
10240
10609
  * @param details 配置
10241
10610
  */
10242
10611
  confirm = (details) => {
10243
- return new PopsConfirm(details);
10612
+ let dialog = PopsConfirm.init(details);
10613
+ return dialog;
10244
10614
  };
10245
10615
  /**
10246
10616
  * 输入框
10247
10617
  * @param details 配置
10248
10618
  */
10249
10619
  prompt = (details) => {
10250
- return new PopsPrompt(details);
10620
+ let dialog = PopsPrompt.init(details);
10621
+ return dialog;
10251
10622
  };
10252
10623
  /**
10253
10624
  * 加载层
10254
10625
  * @param details 配置
10255
10626
  */
10256
10627
  loading = (details) => {
10257
- return new PopsLoading(details);
10628
+ let popsLoading = PopsLoading.init(details);
10629
+ return popsLoading;
10258
10630
  };
10259
10631
  /**
10260
10632
  * iframe层
10261
10633
  * @param details 配置
10262
10634
  */
10263
10635
  iframe = (details) => {
10264
- return new PopsIframe(details);
10636
+ let dialog = PopsIframe.init(details);
10637
+ return dialog;
10265
10638
  };
10266
10639
  /**
10267
10640
  * 提示框
10268
10641
  * @param details 配置
10269
10642
  */
10270
10643
  tooltip = (details) => {
10271
- let popsTooltip = new PopsTooltip(details);
10644
+ let popsTooltip = PopsTooltip.init(details);
10272
10645
  return popsTooltip;
10273
10646
  };
10274
10647
  /**
@@ -10276,35 +10649,40 @@ System.register('pops', [], (function (exports) {
10276
10649
  * @param details 配置
10277
10650
  */
10278
10651
  drawer = (details) => {
10279
- return new PopsDrawer(details);
10652
+ let dialog = PopsDrawer.init(details);
10653
+ return dialog;
10280
10654
  };
10281
10655
  /**
10282
10656
  * 文件夹
10283
10657
  * @param details 配置
10284
10658
  */
10285
10659
  folder = (details) => {
10286
- return new PopsFolder(details);
10660
+ let dialog = PopsFolder.init(details);
10661
+ return dialog;
10287
10662
  };
10288
10663
  /**
10289
10664
  * 配置面板
10290
10665
  * @param details 配置
10291
10666
  */
10292
10667
  panel = (details) => {
10293
- return new PopsPanel(details);
10668
+ let dialog = PopsPanel.init(details);
10669
+ return dialog;
10294
10670
  };
10295
10671
  /**
10296
10672
  * 右键菜单
10297
10673
  * @param details 配置
10298
10674
  */
10299
10675
  rightClickMenu = (details) => {
10300
- return new PopsRightClickMenu(details);
10676
+ let popsRightClickMenu = PopsRightClickMenu.init(details);
10677
+ return popsRightClickMenu;
10301
10678
  };
10302
10679
  /**
10303
10680
  * 搜索建议
10304
10681
  * @param details 配置
10305
10682
  */
10306
10683
  searchSuggestion = (details) => {
10307
- return new PopsSearchSuggestion(details);
10684
+ let popsSearchSuggestion = PopsSearchSuggestion.init(details);
10685
+ return popsSearchSuggestion;
10308
10686
  };
10309
10687
  }
10310
10688
  const pops = exports("default", new Pops());