@eonova/v3-directives 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +61 -0
- package/dist/index.d.mts +199 -0
- package/dist/index.d.ts +199 -0
- package/dist/index.js +1156 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1127 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +73 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,1156 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var vue = require('vue');
|
|
6
|
+
|
|
7
|
+
// src/directive/v-backtop/index.ts
|
|
8
|
+
var vBackTop = {
|
|
9
|
+
mounted(el, binding) {
|
|
10
|
+
const target = binding.arg ? document.getElementById(binding.arg) : window;
|
|
11
|
+
el.addEventListener("click", () => {
|
|
12
|
+
target.scrollTo({
|
|
13
|
+
behavior: "smooth",
|
|
14
|
+
top: 0
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
const handleScroll2 = () => {
|
|
18
|
+
const isScrolledUp = target.scrollTop < binding.value;
|
|
19
|
+
el.style.visibility = isScrolledUp ? "hidden" : "unset";
|
|
20
|
+
};
|
|
21
|
+
if (target.scrollTop < binding.value)
|
|
22
|
+
el.style.visibility = "hidden";
|
|
23
|
+
target.addEventListener("scroll", handleScroll2);
|
|
24
|
+
},
|
|
25
|
+
unmounted(el, binding) {
|
|
26
|
+
const target = binding.arg ? document.getElementById(binding.arg) : window;
|
|
27
|
+
const handleScroll2 = () => {
|
|
28
|
+
const isScrolledUp = target.scrollTop < binding.value;
|
|
29
|
+
el.style.visibility = isScrolledUp ? "hidden" : "unset";
|
|
30
|
+
};
|
|
31
|
+
target.removeEventListener("scroll", handleScroll2);
|
|
32
|
+
el.removeEventListener("click", handleScroll2);
|
|
33
|
+
},
|
|
34
|
+
updated(el, binding) {
|
|
35
|
+
const target = binding.arg ? document.getElementById(binding.arg) : window;
|
|
36
|
+
const handleScroll2 = () => {
|
|
37
|
+
const isScrolledUp = target.scrollTop < binding.value;
|
|
38
|
+
el.style.visibility = isScrolledUp ? "hidden" : "unset";
|
|
39
|
+
};
|
|
40
|
+
if (binding.value !== void 0)
|
|
41
|
+
target.addEventListener("scroll", handleScroll2);
|
|
42
|
+
else
|
|
43
|
+
target.removeEventListener("scroll", handleScroll2);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var v_backtop_default = vBackTop;
|
|
47
|
+
|
|
48
|
+
// src/directive/v-clickOutside/index.ts
|
|
49
|
+
var elMapToHandlers = /* @__PURE__ */ new WeakMap();
|
|
50
|
+
function addEventListener(el, binding) {
|
|
51
|
+
const handler2 = (e) => {
|
|
52
|
+
if (el.contains(e.target))
|
|
53
|
+
return;
|
|
54
|
+
const { value } = binding;
|
|
55
|
+
value();
|
|
56
|
+
};
|
|
57
|
+
window.addEventListener("click", handler2);
|
|
58
|
+
elMapToHandlers.set(el, handler2);
|
|
59
|
+
}
|
|
60
|
+
var vClickOut = {
|
|
61
|
+
beforeUnmount(el) {
|
|
62
|
+
if (elMapToHandlers.has(el)) {
|
|
63
|
+
const handler2 = elMapToHandlers.get(el);
|
|
64
|
+
handler2 && window.removeEventListener("click", handler2);
|
|
65
|
+
elMapToHandlers.delete(el);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
mounted(el, binding) {
|
|
69
|
+
addEventListener(el, binding);
|
|
70
|
+
},
|
|
71
|
+
updated(el, binding) {
|
|
72
|
+
if (elMapToHandlers.has(el)) {
|
|
73
|
+
const handler2 = elMapToHandlers.get(el);
|
|
74
|
+
handler2 && window.removeEventListener("click", handler2);
|
|
75
|
+
elMapToHandlers.delete(el);
|
|
76
|
+
}
|
|
77
|
+
addEventListener(el, binding);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
var v_clickOutside_default = vClickOut;
|
|
81
|
+
|
|
82
|
+
// src/directive/v-copy/index.ts
|
|
83
|
+
function addEventListener2(el, binding) {
|
|
84
|
+
const { value } = binding;
|
|
85
|
+
el.setAttribute("copyValue", String(value));
|
|
86
|
+
const copyHandler = () => {
|
|
87
|
+
navigator.clipboard.writeText(el.getAttribute("copyValue") || "").then(() => {
|
|
88
|
+
window.alert("\u590D\u5236\u6210\u529F\uFF01");
|
|
89
|
+
}).catch(() => {
|
|
90
|
+
window.alert("\u590D\u5236\u5931\u8D25\uFF01");
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
el.addEventListener("click", copyHandler);
|
|
94
|
+
}
|
|
95
|
+
var vCopy = {
|
|
96
|
+
mounted(el, binding) {
|
|
97
|
+
addEventListener2(el, binding);
|
|
98
|
+
},
|
|
99
|
+
updated(el, binding) {
|
|
100
|
+
const { value } = binding;
|
|
101
|
+
el.setAttribute("copyValue", String(value));
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
var v_copy_default = vCopy;
|
|
105
|
+
|
|
106
|
+
// src/utils/isBoolean.ts
|
|
107
|
+
function isBoolean(x) {
|
|
108
|
+
return typeof x === "boolean";
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// src/utils/isFunction.ts
|
|
112
|
+
function isFunction_default(value) {
|
|
113
|
+
return typeof value === "function";
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// src/utils/loadingSvg.ts
|
|
117
|
+
var loadingSvg_default = `
|
|
118
|
+
<svg width="57" height="57" viewBox="0 0 57 57" xmlns="http://www.w3.org/2000/svg" stroke="#fff">
|
|
119
|
+
<g fill="none" fill-rule="evenodd">
|
|
120
|
+
<g transform="translate(1 1)" stroke-width="2">
|
|
121
|
+
<circle cx="5" cy="50" r="5">
|
|
122
|
+
<animate attributeName="cy"
|
|
123
|
+
begin="0s" dur="2.2s"
|
|
124
|
+
values="50;5;50;50"
|
|
125
|
+
calcMode="linear"
|
|
126
|
+
repeatCount="indefinite" />
|
|
127
|
+
<animate attributeName="cx"
|
|
128
|
+
begin="0s" dur="2.2s"
|
|
129
|
+
values="5;27;49;5"
|
|
130
|
+
calcMode="linear"
|
|
131
|
+
repeatCount="indefinite" />
|
|
132
|
+
</circle>
|
|
133
|
+
<circle cx="27" cy="5" r="5">
|
|
134
|
+
<animate attributeName="cy"
|
|
135
|
+
begin="0s" dur="2.2s"
|
|
136
|
+
from="5" to="5"
|
|
137
|
+
values="5;50;50;5"
|
|
138
|
+
calcMode="linear"
|
|
139
|
+
repeatCount="indefinite" />
|
|
140
|
+
<animate attributeName="cx"
|
|
141
|
+
begin="0s" dur="2.2s"
|
|
142
|
+
from="27" to="27"
|
|
143
|
+
values="27;49;5;27"
|
|
144
|
+
calcMode="linear"
|
|
145
|
+
repeatCount="indefinite" />
|
|
146
|
+
</circle>
|
|
147
|
+
<circle cx="49" cy="50" r="5">
|
|
148
|
+
<animate attributeName="cy"
|
|
149
|
+
begin="0s" dur="2.2s"
|
|
150
|
+
values="50;50;5;50"
|
|
151
|
+
calcMode="linear"
|
|
152
|
+
repeatCount="indefinite" />
|
|
153
|
+
<animate attributeName="cx"
|
|
154
|
+
from="49" to="49"
|
|
155
|
+
begin="0s" dur="2.2s"
|
|
156
|
+
values="49;5;27;49"
|
|
157
|
+
calcMode="linear"
|
|
158
|
+
repeatCount="indefinite" />
|
|
159
|
+
</circle>
|
|
160
|
+
</g>
|
|
161
|
+
</g>
|
|
162
|
+
</svg>
|
|
163
|
+
`;
|
|
164
|
+
|
|
165
|
+
// src/directive/v-debounce/index.ts
|
|
166
|
+
var elMapToHandlers2 = /* @__PURE__ */ new WeakMap();
|
|
167
|
+
var elMapToEventName = /* @__PURE__ */ new WeakMap();
|
|
168
|
+
function addEventListener3(el, binding) {
|
|
169
|
+
const { arg, value } = binding;
|
|
170
|
+
if (!isFunction_default(value))
|
|
171
|
+
return;
|
|
172
|
+
const delay = arg ? Number(arg.split("-")[1]) : 300;
|
|
173
|
+
const eventName = arg ? arg.split("-")[0] : "click";
|
|
174
|
+
let timer;
|
|
175
|
+
const handler2 = () => {
|
|
176
|
+
if (timer === void 0) {
|
|
177
|
+
timer = window.setTimeout(() => {
|
|
178
|
+
value();
|
|
179
|
+
timer = void 0;
|
|
180
|
+
}, delay);
|
|
181
|
+
} else {
|
|
182
|
+
window.clearTimeout(timer);
|
|
183
|
+
timer = window.setTimeout(() => {
|
|
184
|
+
value();
|
|
185
|
+
timer = void 0;
|
|
186
|
+
}, delay);
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
elMapToHandlers2.set(el, handler2);
|
|
190
|
+
elMapToEventName.set(el, eventName);
|
|
191
|
+
el.addEventListener(eventName, handler2);
|
|
192
|
+
}
|
|
193
|
+
var vDebounce = {
|
|
194
|
+
beforeUnmount(el) {
|
|
195
|
+
elMapToHandlers2.delete(el);
|
|
196
|
+
elMapToEventName.delete(el);
|
|
197
|
+
},
|
|
198
|
+
mounted(el, binding) {
|
|
199
|
+
addEventListener3(el, binding);
|
|
200
|
+
},
|
|
201
|
+
updated(el, binding) {
|
|
202
|
+
if (elMapToHandlers2.has(el)) {
|
|
203
|
+
const eventName = elMapToEventName.get(el);
|
|
204
|
+
const handler2 = elMapToHandlers2.get(el);
|
|
205
|
+
handler2 && eventName && el.removeEventListener(eventName, handler2);
|
|
206
|
+
elMapToHandlers2.delete(el);
|
|
207
|
+
elMapToEventName.delete(el);
|
|
208
|
+
}
|
|
209
|
+
addEventListener3(el, binding);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
var v_debounce_default = vDebounce;
|
|
213
|
+
|
|
214
|
+
// src/directive/v-doubleClick/index.ts
|
|
215
|
+
var elMapToHandlers3 = /* @__PURE__ */ new WeakMap();
|
|
216
|
+
function addEventListener4(el, binding) {
|
|
217
|
+
const { arg, value } = binding;
|
|
218
|
+
if (!isFunction_default(value))
|
|
219
|
+
return;
|
|
220
|
+
let clickCount = 0;
|
|
221
|
+
let time = 0;
|
|
222
|
+
const handler2 = () => {
|
|
223
|
+
clickCount++;
|
|
224
|
+
const now = (/* @__PURE__ */ new Date()).getTime();
|
|
225
|
+
if (clickCount === 1) {
|
|
226
|
+
time = now;
|
|
227
|
+
setTimeout(
|
|
228
|
+
() => {
|
|
229
|
+
clickCount = 0;
|
|
230
|
+
time = 0;
|
|
231
|
+
},
|
|
232
|
+
arg ? Number(arg) : 300
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
if (clickCount === 2) {
|
|
236
|
+
if (now - time < (arg ? Number(arg) : 300))
|
|
237
|
+
value();
|
|
238
|
+
clickCount = 0;
|
|
239
|
+
time = 0;
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
elMapToHandlers3.set(el, handler2);
|
|
243
|
+
el.addEventListener("click", handler2);
|
|
244
|
+
}
|
|
245
|
+
var vDoubleClick = {
|
|
246
|
+
beforeUnmount(el) {
|
|
247
|
+
elMapToHandlers3.delete(el);
|
|
248
|
+
},
|
|
249
|
+
mounted(el, binding) {
|
|
250
|
+
addEventListener4(el, binding);
|
|
251
|
+
},
|
|
252
|
+
updated(el, binding) {
|
|
253
|
+
if (elMapToHandlers3.has(el)) {
|
|
254
|
+
const handler2 = elMapToHandlers3.get(el);
|
|
255
|
+
handler2 && el.removeEventListener("click", handler2);
|
|
256
|
+
elMapToHandlers3.delete(el);
|
|
257
|
+
}
|
|
258
|
+
addEventListener4(el, binding);
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
var v_doubleClick_default = vDoubleClick;
|
|
262
|
+
|
|
263
|
+
// src/directive/v-draggable/index.ts
|
|
264
|
+
var vDraggable = {
|
|
265
|
+
mounted(el) {
|
|
266
|
+
let startX = 0;
|
|
267
|
+
let startY = 0;
|
|
268
|
+
let offsetXX = 0;
|
|
269
|
+
let offsetYY = 0;
|
|
270
|
+
let endX = 0;
|
|
271
|
+
let endY = 0;
|
|
272
|
+
el.style.cursor = "move";
|
|
273
|
+
const transformValue = window.getComputedStyle(el).transform.split(",").map((item) => Number.parseInt(item)).slice(4, 6);
|
|
274
|
+
if (transformValue.length > 1) {
|
|
275
|
+
endX = transformValue[0];
|
|
276
|
+
endY = transformValue[1];
|
|
277
|
+
}
|
|
278
|
+
const handler2 = (e) => {
|
|
279
|
+
const { clientX, clientY } = e;
|
|
280
|
+
const offsetX = clientX - startX + endX;
|
|
281
|
+
const offsetY = clientY - startY + endY;
|
|
282
|
+
offsetXX = offsetX;
|
|
283
|
+
offsetYY = offsetY;
|
|
284
|
+
el.style.transform = `translate(${offsetX}px, ${offsetY}px)`;
|
|
285
|
+
};
|
|
286
|
+
el.addEventListener("mousedown", (e) => {
|
|
287
|
+
const { clientX, clientY } = e;
|
|
288
|
+
startX = clientX;
|
|
289
|
+
startY = clientY;
|
|
290
|
+
window.addEventListener("mousemove", handler2);
|
|
291
|
+
});
|
|
292
|
+
el.addEventListener("mouseup", () => {
|
|
293
|
+
endX = offsetXX;
|
|
294
|
+
endY = offsetYY;
|
|
295
|
+
window.removeEventListener("mousemove", handler2);
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
var v_draggable_default = vDraggable;
|
|
300
|
+
|
|
301
|
+
// src/directive/v-ellipsis/index.ts
|
|
302
|
+
function handler(el, binding) {
|
|
303
|
+
el.style.overflow = "hidden";
|
|
304
|
+
el.style.textOverflow = "ellipsis";
|
|
305
|
+
const { arg } = binding;
|
|
306
|
+
if (arg) {
|
|
307
|
+
el.style.display = "-webkit-box";
|
|
308
|
+
el.style.webkitLineClamp = String(Number(arg));
|
|
309
|
+
el.style.webkitBoxOrient = "vertical";
|
|
310
|
+
} else {
|
|
311
|
+
el.style.whiteSpace = "nowrap";
|
|
312
|
+
}
|
|
313
|
+
el.setAttribute("title", el.textContent);
|
|
314
|
+
}
|
|
315
|
+
var vEllipsis = {
|
|
316
|
+
mounted(el, binding) {
|
|
317
|
+
handler(el, binding);
|
|
318
|
+
},
|
|
319
|
+
updated(el, binding) {
|
|
320
|
+
handler(el, binding);
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
var v_ellipsis_default = vEllipsis;
|
|
324
|
+
|
|
325
|
+
// src/directive/v-emoji/index.ts
|
|
326
|
+
var vEmoji = {
|
|
327
|
+
mounted(el, _binding, _vnode) {
|
|
328
|
+
const handleInput = (event) => {
|
|
329
|
+
const inputElement = event.target;
|
|
330
|
+
const value = inputElement.value;
|
|
331
|
+
const newValue = value.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDE4F\uDE80-\uDEFF]|[\u2600-\u27FF]/g, "");
|
|
332
|
+
if (newValue !== value) {
|
|
333
|
+
inputElement.value = newValue;
|
|
334
|
+
inputElement.dispatchEvent(new Event("input", { bubbles: true }));
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
el.addEventListener("input", handleInput);
|
|
338
|
+
el.$destroy = () => {
|
|
339
|
+
el.removeEventListener("input", handleInput);
|
|
340
|
+
delete el.$destroy;
|
|
341
|
+
};
|
|
342
|
+
},
|
|
343
|
+
unmounted(el) {
|
|
344
|
+
if (el.$destroy)
|
|
345
|
+
el.$destroy();
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
var v_emoji_default = vEmoji;
|
|
349
|
+
var originalContent = "";
|
|
350
|
+
var emptyState = "";
|
|
351
|
+
function insertEmptyState(el, content, img) {
|
|
352
|
+
const image = img ? `<img src="${img}" style="width: 90%; border-radius: 5px;" />` : "";
|
|
353
|
+
emptyState = `
|
|
354
|
+
<div style="position: absolute; top: 0; left: 0; z-index: 9999; background: #fff; display: flex; justify-content: center; align-items: center; height: ${el.offsetHeight}px; width: ${el.offsetWidth}px; border-radius: 5px;">
|
|
355
|
+
<div style="display: flex; justify-content: center; align-items: center; flex-direction: column;">
|
|
356
|
+
${image}
|
|
357
|
+
<div style="color: #000">${content}</div>
|
|
358
|
+
</div>
|
|
359
|
+
</div>
|
|
360
|
+
`;
|
|
361
|
+
el.innerHTML = emptyState;
|
|
362
|
+
}
|
|
363
|
+
var vEmpty = {
|
|
364
|
+
beforeMount(el, _binding) {
|
|
365
|
+
originalContent = el.innerHTML;
|
|
366
|
+
},
|
|
367
|
+
mounted(el, binding) {
|
|
368
|
+
el.style.position = el.style.position || "relative";
|
|
369
|
+
const { content = "\u6682\u65E0\u6570\u636E", img, visible } = binding.value;
|
|
370
|
+
const insertContent = () => {
|
|
371
|
+
el.innerHTML = originalContent;
|
|
372
|
+
};
|
|
373
|
+
const handleVisibilityChange = () => {
|
|
374
|
+
const isVisible = vue.isRef(visible) ? visible.value : visible;
|
|
375
|
+
if (isVisible)
|
|
376
|
+
insertEmptyState(el, content, img);
|
|
377
|
+
else
|
|
378
|
+
insertContent();
|
|
379
|
+
};
|
|
380
|
+
if (vue.isRef(visible))
|
|
381
|
+
vue.watch(visible, handleVisibilityChange);
|
|
382
|
+
handleVisibilityChange();
|
|
383
|
+
},
|
|
384
|
+
updated(el, binding) {
|
|
385
|
+
const { visible } = binding.value;
|
|
386
|
+
const isVisible = vue.isRef(visible) ? visible.value : visible;
|
|
387
|
+
if (!isVisible)
|
|
388
|
+
el.innerHTML = originalContent.trim();
|
|
389
|
+
else
|
|
390
|
+
el.innerHTML = emptyState;
|
|
391
|
+
}
|
|
392
|
+
};
|
|
393
|
+
var v_empty_default = vEmpty;
|
|
394
|
+
|
|
395
|
+
// src/directive/v-flicker/index.ts
|
|
396
|
+
var style = null;
|
|
397
|
+
var animationStr = `
|
|
398
|
+
@keyframes v-flicker {
|
|
399
|
+
0% {
|
|
400
|
+
opacity: 0;
|
|
401
|
+
}
|
|
402
|
+
50% {
|
|
403
|
+
opacity: 1;
|
|
404
|
+
}
|
|
405
|
+
100% {
|
|
406
|
+
opacity: 0;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
`;
|
|
410
|
+
var vFlicker = {
|
|
411
|
+
mounted(el) {
|
|
412
|
+
if (style === null) {
|
|
413
|
+
style = document.createElement("style");
|
|
414
|
+
style.innerHTML = animationStr;
|
|
415
|
+
document.head.appendChild(style);
|
|
416
|
+
}
|
|
417
|
+
el.style.animation = "v-flicker 1s infinite";
|
|
418
|
+
}
|
|
419
|
+
};
|
|
420
|
+
var v_flicker_default = vFlicker;
|
|
421
|
+
|
|
422
|
+
// src/directive/v-focus/index.ts
|
|
423
|
+
var vFocus = {
|
|
424
|
+
mounted(el) {
|
|
425
|
+
el.focus && el.focus();
|
|
426
|
+
},
|
|
427
|
+
updated(el) {
|
|
428
|
+
el.focus && el.focus();
|
|
429
|
+
}
|
|
430
|
+
};
|
|
431
|
+
var v_focus_default = vFocus;
|
|
432
|
+
|
|
433
|
+
// src/directive/v-highlight/index.ts
|
|
434
|
+
var vHighlight = {
|
|
435
|
+
mounted(el, binding) {
|
|
436
|
+
const { arg } = binding;
|
|
437
|
+
el.style.backgroundColor = arg || "rgba(255, 255, 0, .8)";
|
|
438
|
+
}
|
|
439
|
+
};
|
|
440
|
+
var v_highlight_default = vHighlight;
|
|
441
|
+
|
|
442
|
+
// src/directive/v-hover/index.ts
|
|
443
|
+
var elMapToHandlers4 = /* @__PURE__ */ new WeakMap();
|
|
444
|
+
function addEventListener5(el, binding) {
|
|
445
|
+
const { value } = binding;
|
|
446
|
+
if (isFunction_default(value)) {
|
|
447
|
+
el.addEventListener("mouseenter", value);
|
|
448
|
+
elMapToHandlers4.set(el, value);
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
var vHover = {
|
|
452
|
+
beforeUnmount(el) {
|
|
453
|
+
elMapToHandlers4.delete(el);
|
|
454
|
+
},
|
|
455
|
+
mounted(el, binding) {
|
|
456
|
+
addEventListener5(el, binding);
|
|
457
|
+
},
|
|
458
|
+
updated(el, binding) {
|
|
459
|
+
if (elMapToHandlers4.has(el)) {
|
|
460
|
+
const handler2 = elMapToHandlers4.get(el);
|
|
461
|
+
handler2 && el.removeEventListener("mouseenter", handler2);
|
|
462
|
+
elMapToHandlers4.delete(el);
|
|
463
|
+
}
|
|
464
|
+
addEventListener5(el, binding);
|
|
465
|
+
}
|
|
466
|
+
};
|
|
467
|
+
var v_hover_default = vHover;
|
|
468
|
+
|
|
469
|
+
// src/directive/v-input/index.ts
|
|
470
|
+
function trigger(el, type) {
|
|
471
|
+
const e = document.createEvent("HTMLEvents");
|
|
472
|
+
e.initEvent(type, true, true);
|
|
473
|
+
el.dispatchEvent(e);
|
|
474
|
+
}
|
|
475
|
+
var vInput = {
|
|
476
|
+
mounted(el, binding) {
|
|
477
|
+
const _type = binding.arg;
|
|
478
|
+
const restrict = binding.value || 10;
|
|
479
|
+
const types = ["number", "decimal", "customize"];
|
|
480
|
+
if (!_type || !types.includes(_type))
|
|
481
|
+
return console.log(`\u4F7F\u7528v-input\u6307\u4EE4\u9700\u8981\u9009\u62E9\u7279\u5B9A\u529F\u80FD\uFF1Av-input:type="restrictValue"; type = ${types.join("/")}.`);
|
|
482
|
+
el.$handler = (el2) => {
|
|
483
|
+
switch (_type) {
|
|
484
|
+
case "number":
|
|
485
|
+
el2.value = el2.value.replace(/[^\d]/, "");
|
|
486
|
+
break;
|
|
487
|
+
case "decimal":
|
|
488
|
+
el2.value = el2.value.replace(/[^\d.]/g, "");
|
|
489
|
+
el2.value = el2.value.replace(/\.{2,}/g, ".");
|
|
490
|
+
el2.value = el2.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
|
|
491
|
+
const regexPattern = new RegExp(`^(-)*(\\d+)\\.(\\d{0,${restrict}}).*$`);
|
|
492
|
+
el2.value = el2.value.replace(regexPattern, "$1$2.$3");
|
|
493
|
+
!el2.value.includes(".") && el2.value !== "" && (el2.value = Number.parseFloat(el2.value));
|
|
494
|
+
el2.value.includes(".") && el2.value.length === 1 && (el2.value = "");
|
|
495
|
+
break;
|
|
496
|
+
case "customize":
|
|
497
|
+
const rule = restrict && new RegExp(restrict);
|
|
498
|
+
el2.value = el2.value.replace(rule, "");
|
|
499
|
+
break;
|
|
500
|
+
}
|
|
501
|
+
trigger(el2, "input");
|
|
502
|
+
};
|
|
503
|
+
el.$handler(el);
|
|
504
|
+
},
|
|
505
|
+
updated(el) {
|
|
506
|
+
el.$handler && el.$handler(el);
|
|
507
|
+
}
|
|
508
|
+
};
|
|
509
|
+
var v_input_default = vInput;
|
|
510
|
+
|
|
511
|
+
// src/directive/v-lazyImg/index.ts
|
|
512
|
+
var options;
|
|
513
|
+
var callback = (entries) => {
|
|
514
|
+
entries.forEach((entry) => {
|
|
515
|
+
if (entry.isIntersecting) {
|
|
516
|
+
const img = entry.target;
|
|
517
|
+
if (img.src !== img.dataset.src)
|
|
518
|
+
img.src = img.dataset.src || "";
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
};
|
|
522
|
+
var observer = null;
|
|
523
|
+
var observerHandler = (el, binding) => {
|
|
524
|
+
if (el.tagName !== "IMG")
|
|
525
|
+
return;
|
|
526
|
+
const { value } = binding;
|
|
527
|
+
el.setAttribute("data-src", String(value));
|
|
528
|
+
observer?.observe(el);
|
|
529
|
+
};
|
|
530
|
+
var vImgLazyLoad = {
|
|
531
|
+
beforeUnmount(el) {
|
|
532
|
+
if (observer)
|
|
533
|
+
observer.unobserve(el);
|
|
534
|
+
},
|
|
535
|
+
mounted(el, binding) {
|
|
536
|
+
if (observer === null)
|
|
537
|
+
observer = new IntersectionObserver(callback, options);
|
|
538
|
+
observerHandler(el, binding);
|
|
539
|
+
},
|
|
540
|
+
updated(el, binding) {
|
|
541
|
+
observerHandler(el, binding);
|
|
542
|
+
}
|
|
543
|
+
};
|
|
544
|
+
var v_lazyImg_default = vImgLazyLoad;
|
|
545
|
+
|
|
546
|
+
// src/directive/v-loading/index.ts
|
|
547
|
+
var elMapToMaskElement = /* @__PURE__ */ new WeakMap();
|
|
548
|
+
var elMapToHasChangedPosition = /* @__PURE__ */ new WeakMap();
|
|
549
|
+
function appendChild(el) {
|
|
550
|
+
const loadingWrapper = document.createElement("div");
|
|
551
|
+
const maskElement = document.createElement("div");
|
|
552
|
+
maskElement.style.position = "absolute";
|
|
553
|
+
maskElement.style.top = "0";
|
|
554
|
+
maskElement.style.left = "0";
|
|
555
|
+
maskElement.style.right = "0";
|
|
556
|
+
maskElement.style.bottom = "0";
|
|
557
|
+
maskElement.style.zIndex = "9999";
|
|
558
|
+
maskElement.style.backgroundColor = "rgba(0, 0, 0, 0.5)";
|
|
559
|
+
maskElement.style.pointerEvents = "none";
|
|
560
|
+
loadingWrapper.style.position = "absolute";
|
|
561
|
+
loadingWrapper.style.top = "50%";
|
|
562
|
+
loadingWrapper.style.left = "50%";
|
|
563
|
+
loadingWrapper.style.transform = "translate(-50%, -50%)";
|
|
564
|
+
loadingWrapper.style.pointerEvents = "none";
|
|
565
|
+
loadingWrapper.innerHTML = loadingSvg_default;
|
|
566
|
+
if (el.style.position === "static" || el.style.position === "") {
|
|
567
|
+
elMapToHasChangedPosition.set(el, true);
|
|
568
|
+
el.style.position = "relative";
|
|
569
|
+
}
|
|
570
|
+
maskElement.appendChild(loadingWrapper);
|
|
571
|
+
elMapToMaskElement.set(el, maskElement);
|
|
572
|
+
el.appendChild(maskElement);
|
|
573
|
+
}
|
|
574
|
+
var vLoading = {
|
|
575
|
+
beforeUnmount(el) {
|
|
576
|
+
elMapToMaskElement.delete(el);
|
|
577
|
+
elMapToHasChangedPosition.delete(el);
|
|
578
|
+
},
|
|
579
|
+
mounted(el, binding) {
|
|
580
|
+
const { value } = binding;
|
|
581
|
+
if (!isBoolean(value))
|
|
582
|
+
return;
|
|
583
|
+
if (!value)
|
|
584
|
+
return;
|
|
585
|
+
appendChild(el);
|
|
586
|
+
},
|
|
587
|
+
updated(el, binding) {
|
|
588
|
+
const { value } = binding;
|
|
589
|
+
const hasMaskElement = elMapToMaskElement.has(el);
|
|
590
|
+
const hasChangedPosition = elMapToHasChangedPosition.has(el);
|
|
591
|
+
if (value && hasMaskElement)
|
|
592
|
+
return;
|
|
593
|
+
if (value && !hasMaskElement)
|
|
594
|
+
appendChild(el);
|
|
595
|
+
if ((!value || !isBoolean(value)) && !hasMaskElement)
|
|
596
|
+
return;
|
|
597
|
+
if ((!value || !isBoolean(value)) && hasMaskElement) {
|
|
598
|
+
if (hasChangedPosition) {
|
|
599
|
+
el.style.position = "static";
|
|
600
|
+
elMapToHasChangedPosition.delete(el);
|
|
601
|
+
}
|
|
602
|
+
const maskElement = elMapToMaskElement.get(el);
|
|
603
|
+
maskElement && el.removeChild(maskElement);
|
|
604
|
+
elMapToMaskElement.delete(el);
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
};
|
|
608
|
+
var v_loading_default = vLoading;
|
|
609
|
+
|
|
610
|
+
// src/directive/v-longpress/index.ts
|
|
611
|
+
var elMapToMouseDownHandlers = /* @__PURE__ */ new WeakMap();
|
|
612
|
+
var elMapToMouseUpHandlers = /* @__PURE__ */ new WeakMap();
|
|
613
|
+
function addEventListener6(el, binding) {
|
|
614
|
+
const { arg, value } = binding;
|
|
615
|
+
if (!isFunction_default(value))
|
|
616
|
+
return;
|
|
617
|
+
let timer;
|
|
618
|
+
const pressHandler = () => {
|
|
619
|
+
timer = window.setTimeout(value, arg ? Number(arg) : 300);
|
|
620
|
+
};
|
|
621
|
+
const clearTimeoutHandler = () => {
|
|
622
|
+
clearTimeout(timer);
|
|
623
|
+
};
|
|
624
|
+
el.addEventListener("mousedown", pressHandler);
|
|
625
|
+
el.addEventListener("mouseup", clearTimeoutHandler);
|
|
626
|
+
elMapToMouseDownHandlers.set(el, pressHandler);
|
|
627
|
+
elMapToMouseUpHandlers.set(el, clearTimeoutHandler);
|
|
628
|
+
}
|
|
629
|
+
var vLongPress = {
|
|
630
|
+
beforeUnmount(el) {
|
|
631
|
+
elMapToMouseDownHandlers.delete(el);
|
|
632
|
+
elMapToMouseUpHandlers.delete(el);
|
|
633
|
+
},
|
|
634
|
+
mounted(el, binding) {
|
|
635
|
+
addEventListener6(el, binding);
|
|
636
|
+
},
|
|
637
|
+
updated(el, binding) {
|
|
638
|
+
if (elMapToMouseDownHandlers.has(el)) {
|
|
639
|
+
const pressHandler = elMapToMouseDownHandlers.get(el);
|
|
640
|
+
pressHandler && el.removeEventListener("mousedown", pressHandler);
|
|
641
|
+
elMapToMouseDownHandlers.delete(el);
|
|
642
|
+
}
|
|
643
|
+
if (elMapToMouseUpHandlers.has(el)) {
|
|
644
|
+
const pressHandler = elMapToMouseDownHandlers.get(el);
|
|
645
|
+
pressHandler && el.removeEventListener("mouseup", pressHandler);
|
|
646
|
+
elMapToMouseUpHandlers.delete(el);
|
|
647
|
+
}
|
|
648
|
+
addEventListener6(el, binding);
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
var v_longpress_default = vLongPress;
|
|
652
|
+
|
|
653
|
+
// src/directive/v-money/index.ts
|
|
654
|
+
function setInnerHTML(el, binding) {
|
|
655
|
+
const { value } = binding;
|
|
656
|
+
const parts = String(value).split(".");
|
|
657
|
+
const moneyReverse = Array.from(parts[0]).reverse();
|
|
658
|
+
const moneyArray = [];
|
|
659
|
+
for (let i = 0; i < moneyReverse.length; i++) {
|
|
660
|
+
if (i % 3 === 0 && i !== 0)
|
|
661
|
+
moneyArray.push(",");
|
|
662
|
+
moneyArray.push(moneyReverse[i]);
|
|
663
|
+
}
|
|
664
|
+
const moneyString = moneyArray.reverse().join("");
|
|
665
|
+
if (parts.length > 1)
|
|
666
|
+
el.innerHTML = `${moneyString}.${parts[1]}`;
|
|
667
|
+
else
|
|
668
|
+
el.innerHTML = moneyString;
|
|
669
|
+
}
|
|
670
|
+
var vMoney = {
|
|
671
|
+
mounted(el, binding) {
|
|
672
|
+
setInnerHTML(el, binding);
|
|
673
|
+
},
|
|
674
|
+
updated(el, binding) {
|
|
675
|
+
setInnerHTML(el, binding);
|
|
676
|
+
}
|
|
677
|
+
};
|
|
678
|
+
var v_money_default = vMoney;
|
|
679
|
+
|
|
680
|
+
// src/directive/v-onOnce/index.ts
|
|
681
|
+
var elMapToHandlers5 = /* @__PURE__ */ new WeakMap();
|
|
682
|
+
var elMapToEventName2 = /* @__PURE__ */ new WeakMap();
|
|
683
|
+
function addEventListener7(el, binding) {
|
|
684
|
+
const { arg, value } = binding;
|
|
685
|
+
if (!isFunction_default(value))
|
|
686
|
+
return;
|
|
687
|
+
const eventName = arg || "click";
|
|
688
|
+
const handler2 = () => {
|
|
689
|
+
value();
|
|
690
|
+
el.removeEventListener(eventName, handler2);
|
|
691
|
+
};
|
|
692
|
+
elMapToHandlers5.set(el, handler2);
|
|
693
|
+
elMapToEventName2.set(el, eventName);
|
|
694
|
+
el.addEventListener(eventName, handler2);
|
|
695
|
+
}
|
|
696
|
+
var vOnOnce = {
|
|
697
|
+
beforeUnmount(el) {
|
|
698
|
+
elMapToHandlers5.delete(el);
|
|
699
|
+
elMapToEventName2.delete(el);
|
|
700
|
+
},
|
|
701
|
+
mounted(el, binding) {
|
|
702
|
+
addEventListener7(el, binding);
|
|
703
|
+
},
|
|
704
|
+
updated(el, binding) {
|
|
705
|
+
if (elMapToHandlers5.has(el)) {
|
|
706
|
+
const eventName = elMapToEventName2.get(el);
|
|
707
|
+
const handler2 = elMapToHandlers5.get(el);
|
|
708
|
+
handler2 && eventName && el.removeEventListener(eventName, handler2);
|
|
709
|
+
elMapToHandlers5.delete(el);
|
|
710
|
+
elMapToEventName2.delete(el);
|
|
711
|
+
}
|
|
712
|
+
addEventListener7(el, binding);
|
|
713
|
+
}
|
|
714
|
+
};
|
|
715
|
+
var v_onOnce_default = vOnOnce;
|
|
716
|
+
|
|
717
|
+
// src/directive/v-permission/index.ts
|
|
718
|
+
var vPermission = {
|
|
719
|
+
mounted(el, binding) {
|
|
720
|
+
let permission = "add;del";
|
|
721
|
+
let permissionList = [];
|
|
722
|
+
permissionList = permission.split(";");
|
|
723
|
+
let inValue;
|
|
724
|
+
if (typeof binding.value === "string") {
|
|
725
|
+
inValue = binding.value;
|
|
726
|
+
} else if (Array.isArray(binding.value)) {
|
|
727
|
+
inValue = binding.value.join(";");
|
|
728
|
+
} else {
|
|
729
|
+
console.log("\u6570\u636E\u683C\u5F0F\u4E0D\u6B63\u786E\uFF0C\u8BF7\u8F93\u5165\u5B57\u7B26\u4E32\uFF08\u4EE5\u5206\u53F7\u5206\u9694\uFF09\u6216\u6570\u7EC4");
|
|
730
|
+
}
|
|
731
|
+
let passText = inValue;
|
|
732
|
+
let passTextArr = [];
|
|
733
|
+
if (!passText)
|
|
734
|
+
passText = "";
|
|
735
|
+
passTextArr = passText.split(";");
|
|
736
|
+
let flag = false;
|
|
737
|
+
for (let i = 0; i < passTextArr.length; i++) {
|
|
738
|
+
if (permissionList.includes(passTextArr[i])) {
|
|
739
|
+
flag = true;
|
|
740
|
+
break;
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
if (!flag)
|
|
744
|
+
el.parentNode && el.parentNode.removeChild(el);
|
|
745
|
+
}
|
|
746
|
+
};
|
|
747
|
+
var v_permission_default = vPermission;
|
|
748
|
+
|
|
749
|
+
// src/directive/v-resize/index.ts
|
|
750
|
+
function createYElement(type) {
|
|
751
|
+
const Element = document.createElement("div");
|
|
752
|
+
Element.style.position = "absolute";
|
|
753
|
+
if (type === "top")
|
|
754
|
+
Element.style.top = "0";
|
|
755
|
+
else
|
|
756
|
+
Element.style.bottom = "0";
|
|
757
|
+
Element.style.left = "0";
|
|
758
|
+
Element.style.right = "0";
|
|
759
|
+
Element.style.height = "5px";
|
|
760
|
+
Element.style.backgroundColor = "#1890ff";
|
|
761
|
+
Element.style.zIndex = "1";
|
|
762
|
+
Element.style.cursor = "ns-resize";
|
|
763
|
+
Element.style.display = "none";
|
|
764
|
+
return Element;
|
|
765
|
+
}
|
|
766
|
+
function createXElement(type) {
|
|
767
|
+
const Element = document.createElement("div");
|
|
768
|
+
Element.style.position = "absolute";
|
|
769
|
+
Element.style.top = "5px";
|
|
770
|
+
if (type === "left")
|
|
771
|
+
Element.style.left = "0";
|
|
772
|
+
else
|
|
773
|
+
Element.style.right = "0";
|
|
774
|
+
Element.style.bottom = "5px";
|
|
775
|
+
Element.style.width = "5px";
|
|
776
|
+
Element.style.backgroundColor = "#1890ff";
|
|
777
|
+
Element.style.zIndex = "1";
|
|
778
|
+
Element.style.cursor = "ew-resize";
|
|
779
|
+
Element.style.display = "none";
|
|
780
|
+
Element.style.transition = "all 0.3s";
|
|
781
|
+
return Element;
|
|
782
|
+
}
|
|
783
|
+
var vResize = {
|
|
784
|
+
mounted(el) {
|
|
785
|
+
const position = el.style.position;
|
|
786
|
+
if (position === "static" || position === "")
|
|
787
|
+
el.style.position = "relative";
|
|
788
|
+
const topElement = createYElement("top");
|
|
789
|
+
const bottomElement = createYElement("bottom");
|
|
790
|
+
const leftElement = createXElement("left");
|
|
791
|
+
const rightElement = createXElement("right");
|
|
792
|
+
const Y = [topElement, bottomElement];
|
|
793
|
+
const X = [leftElement, rightElement];
|
|
794
|
+
const all = [...Y, ...X];
|
|
795
|
+
Y.forEach((element) => {
|
|
796
|
+
element.addEventListener("mousedown", (e) => {
|
|
797
|
+
e.stopPropagation();
|
|
798
|
+
const startY = e.clientY;
|
|
799
|
+
const style2 = window.getComputedStyle(el);
|
|
800
|
+
const height = style2.height;
|
|
801
|
+
const windowMouseMoveHandler = (e2) => {
|
|
802
|
+
const offsetY = e2.clientY - startY;
|
|
803
|
+
el.style.height = `${Number.parseInt(height, 10) + offsetY}px`;
|
|
804
|
+
};
|
|
805
|
+
const windowMouseUpHandler = () => {
|
|
806
|
+
window.removeEventListener("mousemove", windowMouseMoveHandler);
|
|
807
|
+
window.removeEventListener("mouseup", windowMouseUpHandler);
|
|
808
|
+
};
|
|
809
|
+
window.addEventListener("mousemove", windowMouseMoveHandler);
|
|
810
|
+
window.addEventListener("mouseup", windowMouseUpHandler);
|
|
811
|
+
});
|
|
812
|
+
});
|
|
813
|
+
X.forEach((element) => {
|
|
814
|
+
element.addEventListener("mousedown", (e) => {
|
|
815
|
+
e.stopPropagation();
|
|
816
|
+
const startX = e.clientX;
|
|
817
|
+
const style2 = window.getComputedStyle(el);
|
|
818
|
+
const width = style2.width;
|
|
819
|
+
const windowMouseMoveHandler = (e2) => {
|
|
820
|
+
const offsetX = e2.clientX - startX;
|
|
821
|
+
el.style.width = `${Number.parseInt(width, 10) + offsetX}px`;
|
|
822
|
+
};
|
|
823
|
+
const windowMouseUpHandler = () => {
|
|
824
|
+
window.removeEventListener("mousemove", windowMouseMoveHandler);
|
|
825
|
+
window.removeEventListener("mouseup", windowMouseUpHandler);
|
|
826
|
+
};
|
|
827
|
+
window.addEventListener("mousemove", windowMouseMoveHandler);
|
|
828
|
+
window.addEventListener("mouseup", windowMouseUpHandler);
|
|
829
|
+
});
|
|
830
|
+
});
|
|
831
|
+
el.addEventListener("click", () => {
|
|
832
|
+
all.forEach((element) => {
|
|
833
|
+
element.style.display = "block";
|
|
834
|
+
});
|
|
835
|
+
});
|
|
836
|
+
const handler2 = (e) => {
|
|
837
|
+
if (el.contains(e.target))
|
|
838
|
+
return;
|
|
839
|
+
all.forEach((element) => {
|
|
840
|
+
element.style.display = "none";
|
|
841
|
+
});
|
|
842
|
+
};
|
|
843
|
+
window.addEventListener("click", handler2);
|
|
844
|
+
el.appendChild(topElement);
|
|
845
|
+
el.appendChild(bottomElement);
|
|
846
|
+
el.appendChild(leftElement);
|
|
847
|
+
el.appendChild(rightElement);
|
|
848
|
+
}
|
|
849
|
+
};
|
|
850
|
+
var v_resize_default = vResize;
|
|
851
|
+
|
|
852
|
+
// src/directive/v-ripple/index.ts
|
|
853
|
+
var Ripple = {
|
|
854
|
+
mounted(el, binding) {
|
|
855
|
+
const props = {
|
|
856
|
+
event: "mousedown",
|
|
857
|
+
transition: 600
|
|
858
|
+
};
|
|
859
|
+
setProps(Object.keys(binding.modifiers), props);
|
|
860
|
+
el.addEventListener(props.event, (event) => {
|
|
861
|
+
rippler(event, el, binding.value);
|
|
862
|
+
});
|
|
863
|
+
const bg = binding.value || Ripple.color || "rgba(0, 0, 0, 0.35)";
|
|
864
|
+
const zIndex = Ripple.zIndex || "9999";
|
|
865
|
+
function rippler(event, el2) {
|
|
866
|
+
const target = el2;
|
|
867
|
+
const targetBorder = Number.parseInt(getComputedStyle(target).borderWidth.replace("px", ""));
|
|
868
|
+
const rect = target.getBoundingClientRect();
|
|
869
|
+
const left = rect.left;
|
|
870
|
+
const top = rect.top;
|
|
871
|
+
const width = target.offsetWidth;
|
|
872
|
+
const height = target.offsetHeight;
|
|
873
|
+
const dx = event.clientX - left;
|
|
874
|
+
const dy = event.clientY - top;
|
|
875
|
+
const maxX = Math.max(dx, width - dx);
|
|
876
|
+
const maxY = Math.max(dy, height - dy);
|
|
877
|
+
const style2 = window.getComputedStyle(target);
|
|
878
|
+
const radius = Math.sqrt(maxX * maxX + maxY * maxY);
|
|
879
|
+
const border = targetBorder > 0 ? targetBorder : 0;
|
|
880
|
+
const ripple = document.createElement("div");
|
|
881
|
+
const rippleContainer = document.createElement("div");
|
|
882
|
+
rippleContainer.className = "ripple-container";
|
|
883
|
+
ripple.className = "ripple";
|
|
884
|
+
ripple.style.marginTop = "0px";
|
|
885
|
+
ripple.style.marginLeft = "0px";
|
|
886
|
+
ripple.style.width = "1px";
|
|
887
|
+
ripple.style.height = "1px";
|
|
888
|
+
ripple.style.transition = `all ${props.transition}ms cubic-bezier(0.4, 0, 0.2, 1)`;
|
|
889
|
+
ripple.style.borderRadius = "50%";
|
|
890
|
+
ripple.style.pointerEvents = "none";
|
|
891
|
+
ripple.style.position = "relative";
|
|
892
|
+
ripple.style.zIndex = zIndex;
|
|
893
|
+
ripple.style.backgroundColor = bg;
|
|
894
|
+
rippleContainer.style.position = "absolute";
|
|
895
|
+
rippleContainer.style.left = `${0 - border}px`;
|
|
896
|
+
rippleContainer.style.top = `${0 - border}px`;
|
|
897
|
+
rippleContainer.style.height = "0";
|
|
898
|
+
rippleContainer.style.width = "0";
|
|
899
|
+
rippleContainer.style.pointerEvents = "none";
|
|
900
|
+
rippleContainer.style.overflow = "hidden";
|
|
901
|
+
const storedTargetPosition = target.style.position.length > 0 ? target.style.position : getComputedStyle(target).position;
|
|
902
|
+
if (storedTargetPosition !== "relative")
|
|
903
|
+
target.style.position = "relative";
|
|
904
|
+
rippleContainer.appendChild(ripple);
|
|
905
|
+
target.appendChild(rippleContainer);
|
|
906
|
+
ripple.style.marginLeft = `${dx}px`;
|
|
907
|
+
ripple.style.marginTop = `${dy}px`;
|
|
908
|
+
rippleContainer.style.width = `${width}px`;
|
|
909
|
+
rippleContainer.style.height = `${height}px`;
|
|
910
|
+
rippleContainer.style.borderTopLeftRadius = style2.borderTopLeftRadius;
|
|
911
|
+
rippleContainer.style.borderTopRightRadius = style2.borderTopRightRadius;
|
|
912
|
+
rippleContainer.style.borderBottomLeftRadius = style2.borderBottomLeftRadius;
|
|
913
|
+
rippleContainer.style.borderBottomRightRadius = style2.borderBottomRightRadius;
|
|
914
|
+
rippleContainer.style.direction = "ltr";
|
|
915
|
+
setTimeout(() => {
|
|
916
|
+
ripple.style.width = `${radius * 2}px`;
|
|
917
|
+
ripple.style.height = `${radius * 2}px`;
|
|
918
|
+
ripple.style.marginLeft = `${dx - radius}px`;
|
|
919
|
+
ripple.style.marginTop = `${dy - radius}px`;
|
|
920
|
+
}, 0);
|
|
921
|
+
function clearRipple() {
|
|
922
|
+
setTimeout(() => {
|
|
923
|
+
ripple.style.backgroundColor = "rgba(0, 0, 0, 0)";
|
|
924
|
+
}, 250);
|
|
925
|
+
setTimeout(() => {
|
|
926
|
+
rippleContainer.parentNode.removeChild(rippleContainer);
|
|
927
|
+
}, 850);
|
|
928
|
+
el2.removeEventListener("mouseup", clearRipple, false);
|
|
929
|
+
setTimeout(() => {
|
|
930
|
+
let clearPosition = true;
|
|
931
|
+
for (let i = 0; i < target.childNodes.length; i++) {
|
|
932
|
+
if (target.childNodes[i].className === "ripple-container")
|
|
933
|
+
clearPosition = false;
|
|
934
|
+
}
|
|
935
|
+
if (clearPosition) {
|
|
936
|
+
if (storedTargetPosition !== "static")
|
|
937
|
+
target.style.position = storedTargetPosition;
|
|
938
|
+
else
|
|
939
|
+
target.style.position = "";
|
|
940
|
+
}
|
|
941
|
+
}, props.transition + 250);
|
|
942
|
+
}
|
|
943
|
+
if (event.type === "mousedown")
|
|
944
|
+
el2.addEventListener("mouseup", clearRipple, false);
|
|
945
|
+
else
|
|
946
|
+
clearRipple();
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
};
|
|
950
|
+
function setProps(modifiers, props) {
|
|
951
|
+
modifiers.forEach((item) => {
|
|
952
|
+
if (Number.isNaN(Number(item)))
|
|
953
|
+
props.event = item;
|
|
954
|
+
else
|
|
955
|
+
props.transition = item;
|
|
956
|
+
});
|
|
957
|
+
}
|
|
958
|
+
var v_ripple_default = Ripple;
|
|
959
|
+
|
|
960
|
+
// src/directive/v-slideIn/index.ts
|
|
961
|
+
var DISTANCE = 100;
|
|
962
|
+
var ANIMATIONTIME = 500;
|
|
963
|
+
var distance = null;
|
|
964
|
+
var animationtime = null;
|
|
965
|
+
var map = /* @__PURE__ */ new WeakMap();
|
|
966
|
+
function isBelowViewport(el) {
|
|
967
|
+
const rect = el.getBoundingClientRect();
|
|
968
|
+
return rect.top - (distance || DISTANCE) > window.innerHeight;
|
|
969
|
+
}
|
|
970
|
+
function handleScroll() {
|
|
971
|
+
const elements = document.querySelectorAll("[v-slideIn]");
|
|
972
|
+
elements.forEach((el) => {
|
|
973
|
+
if (isBelowViewport(el))
|
|
974
|
+
return;
|
|
975
|
+
const animation = map.get(el);
|
|
976
|
+
if (animation && !el.hasAttribute("v-slideIn-played")) {
|
|
977
|
+
animation.play();
|
|
978
|
+
el.removeAttribute("v-slideIn");
|
|
979
|
+
el.setAttribute("v-slideIn-played", "");
|
|
980
|
+
}
|
|
981
|
+
});
|
|
982
|
+
}
|
|
983
|
+
var vSlideIn = {
|
|
984
|
+
mounted(el, binding) {
|
|
985
|
+
if (binding.value) {
|
|
986
|
+
distance = binding.value.px;
|
|
987
|
+
animationtime = binding.value.time;
|
|
988
|
+
}
|
|
989
|
+
if (!isBelowViewport(el))
|
|
990
|
+
return;
|
|
991
|
+
const animation = el.animate(
|
|
992
|
+
[
|
|
993
|
+
{
|
|
994
|
+
opacity: 0,
|
|
995
|
+
transform: `translateY(${distance || DISTANCE}px)`
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
opacity: 1,
|
|
999
|
+
transform: `translateY(0px)`
|
|
1000
|
+
}
|
|
1001
|
+
],
|
|
1002
|
+
{
|
|
1003
|
+
duration: animationtime || ANIMATIONTIME,
|
|
1004
|
+
easing: "ease-in-out",
|
|
1005
|
+
fill: "forwards"
|
|
1006
|
+
}
|
|
1007
|
+
);
|
|
1008
|
+
animation.pause();
|
|
1009
|
+
map.set(el, animation);
|
|
1010
|
+
el.setAttribute("v-slideIn", "");
|
|
1011
|
+
window.addEventListener("scroll", handleScroll);
|
|
1012
|
+
},
|
|
1013
|
+
unmounted(el) {
|
|
1014
|
+
map.delete(el);
|
|
1015
|
+
window.removeEventListener("scroll", handleScroll);
|
|
1016
|
+
}
|
|
1017
|
+
};
|
|
1018
|
+
var v_slideIn_default = vSlideIn;
|
|
1019
|
+
|
|
1020
|
+
// src/directive/v-throttle/index.ts
|
|
1021
|
+
var elMapToHandlers6 = /* @__PURE__ */ new WeakMap();
|
|
1022
|
+
var elMapToEventName3 = /* @__PURE__ */ new WeakMap();
|
|
1023
|
+
function addEventListener8(el, binding) {
|
|
1024
|
+
const { arg, value } = binding;
|
|
1025
|
+
if (!isFunction_default(value))
|
|
1026
|
+
return;
|
|
1027
|
+
const delay = arg ? Number(arg.split("-")[1]) : 300;
|
|
1028
|
+
const eventName = arg ? arg.split("-")[0] : "click";
|
|
1029
|
+
let lastExecTime = 0;
|
|
1030
|
+
const handler2 = () => {
|
|
1031
|
+
const currentTime = Date.now();
|
|
1032
|
+
if (currentTime - lastExecTime < delay)
|
|
1033
|
+
return;
|
|
1034
|
+
lastExecTime = currentTime;
|
|
1035
|
+
value();
|
|
1036
|
+
};
|
|
1037
|
+
const existingHandler = elMapToHandlers6.get(el);
|
|
1038
|
+
if (existingHandler)
|
|
1039
|
+
el.removeEventListener(eventName, existingHandler);
|
|
1040
|
+
elMapToHandlers6.set(el, handler2);
|
|
1041
|
+
elMapToEventName3.set(el, eventName);
|
|
1042
|
+
el.addEventListener(eventName, handler2);
|
|
1043
|
+
}
|
|
1044
|
+
var vThrottle = {
|
|
1045
|
+
beforeUnmount(el) {
|
|
1046
|
+
if (elMapToHandlers6.has(el)) {
|
|
1047
|
+
const eventName = elMapToEventName3.get(el);
|
|
1048
|
+
const handler2 = elMapToHandlers6.get(el);
|
|
1049
|
+
handler2 && eventName && el.removeEventListener(eventName, handler2);
|
|
1050
|
+
elMapToHandlers6.delete(el);
|
|
1051
|
+
elMapToEventName3.delete(el);
|
|
1052
|
+
}
|
|
1053
|
+
},
|
|
1054
|
+
mounted(el, binding) {
|
|
1055
|
+
addEventListener8(el, binding);
|
|
1056
|
+
},
|
|
1057
|
+
updated(el, binding) {
|
|
1058
|
+
if (elMapToHandlers6.has(el)) {
|
|
1059
|
+
const eventName = elMapToEventName3.get(el);
|
|
1060
|
+
const handler2 = elMapToHandlers6.get(el);
|
|
1061
|
+
handler2 && eventName && el.removeEventListener(eventName, handler2);
|
|
1062
|
+
elMapToHandlers6.delete(el);
|
|
1063
|
+
elMapToEventName3.delete(el);
|
|
1064
|
+
}
|
|
1065
|
+
addEventListener8(el, binding);
|
|
1066
|
+
}
|
|
1067
|
+
};
|
|
1068
|
+
var v_throttle_default = vThrottle;
|
|
1069
|
+
|
|
1070
|
+
// src/directive/v-waterMarker/index.ts
|
|
1071
|
+
var addWaterMarker = (str, parentNode, font, textColor) => {
|
|
1072
|
+
const can = document.createElement("canvas");
|
|
1073
|
+
parentNode.appendChild(can);
|
|
1074
|
+
can.width = 200;
|
|
1075
|
+
can.height = 150;
|
|
1076
|
+
can.style.display = "none";
|
|
1077
|
+
const cans = can.getContext("2d");
|
|
1078
|
+
cans.rotate(-20 * Math.PI / 180);
|
|
1079
|
+
cans.font = font || "16px Microsoft JhengHei";
|
|
1080
|
+
cans.fillStyle = textColor || "rgba(180, 180, 180, 0.3)";
|
|
1081
|
+
cans.textAlign = "left";
|
|
1082
|
+
cans.textBaseline = "Middle";
|
|
1083
|
+
cans.fillText(str, can.width / 10, can.height / 2);
|
|
1084
|
+
parentNode.style.backgroundImage = `url(${can.toDataURL("image/png")})`;
|
|
1085
|
+
};
|
|
1086
|
+
var waterMarker = {
|
|
1087
|
+
mounted(el, binding) {
|
|
1088
|
+
addWaterMarker(binding.value.text, el, binding.value.font, binding.value.textColor);
|
|
1089
|
+
}
|
|
1090
|
+
};
|
|
1091
|
+
var v_waterMarker_default = waterMarker;
|
|
1092
|
+
|
|
1093
|
+
// src/index.ts
|
|
1094
|
+
var directives = {
|
|
1095
|
+
backtop: v_backtop_default,
|
|
1096
|
+
clickOutside: v_clickOutside_default,
|
|
1097
|
+
copy: v_copy_default,
|
|
1098
|
+
debounce: v_debounce_default,
|
|
1099
|
+
doubleClick: v_doubleClick_default,
|
|
1100
|
+
draggable: v_draggable_default,
|
|
1101
|
+
ellipsis: v_ellipsis_default,
|
|
1102
|
+
emoji: v_emoji_default,
|
|
1103
|
+
empty: v_empty_default,
|
|
1104
|
+
flicker: v_flicker_default,
|
|
1105
|
+
focus: v_focus_default,
|
|
1106
|
+
highlight: v_highlight_default,
|
|
1107
|
+
hover: v_hover_default,
|
|
1108
|
+
input: v_input_default,
|
|
1109
|
+
lazyImg: v_lazyImg_default,
|
|
1110
|
+
loading: v_loading_default,
|
|
1111
|
+
longpress: v_longpress_default,
|
|
1112
|
+
money: v_money_default,
|
|
1113
|
+
onOnce: v_onOnce_default,
|
|
1114
|
+
permission: v_permission_default,
|
|
1115
|
+
resize: v_resize_default,
|
|
1116
|
+
ripple: v_ripple_default,
|
|
1117
|
+
slideIn: v_slideIn_default,
|
|
1118
|
+
throttle: v_throttle_default,
|
|
1119
|
+
waterMarker: v_waterMarker_default
|
|
1120
|
+
};
|
|
1121
|
+
var src_default = {
|
|
1122
|
+
install(app) {
|
|
1123
|
+
Object.keys(directives).forEach((key) => {
|
|
1124
|
+
app.directive(key, directives[key]);
|
|
1125
|
+
});
|
|
1126
|
+
}
|
|
1127
|
+
};
|
|
1128
|
+
|
|
1129
|
+
exports.default = src_default;
|
|
1130
|
+
exports.vBacktop = v_backtop_default;
|
|
1131
|
+
exports.vClickOutside = v_clickOutside_default;
|
|
1132
|
+
exports.vCopy = v_copy_default;
|
|
1133
|
+
exports.vDebounce = v_debounce_default;
|
|
1134
|
+
exports.vDoubleClick = v_doubleClick_default;
|
|
1135
|
+
exports.vDraggable = v_draggable_default;
|
|
1136
|
+
exports.vEllipsis = v_ellipsis_default;
|
|
1137
|
+
exports.vEmoji = v_emoji_default;
|
|
1138
|
+
exports.vEmpty = v_empty_default;
|
|
1139
|
+
exports.vFlicker = v_flicker_default;
|
|
1140
|
+
exports.vFocus = v_focus_default;
|
|
1141
|
+
exports.vHighlight = v_highlight_default;
|
|
1142
|
+
exports.vHover = v_hover_default;
|
|
1143
|
+
exports.vInput = v_input_default;
|
|
1144
|
+
exports.vLazyImg = v_lazyImg_default;
|
|
1145
|
+
exports.vLoading = v_loading_default;
|
|
1146
|
+
exports.vLongpress = v_longpress_default;
|
|
1147
|
+
exports.vMoney = v_money_default;
|
|
1148
|
+
exports.vOnOnce = v_onOnce_default;
|
|
1149
|
+
exports.vPermission = v_permission_default;
|
|
1150
|
+
exports.vResize = v_resize_default;
|
|
1151
|
+
exports.vRipple = v_ripple_default;
|
|
1152
|
+
exports.vSlideIn = v_slideIn_default;
|
|
1153
|
+
exports.vThrottle = v_throttle_default;
|
|
1154
|
+
exports.vWaterMarker = v_waterMarker_default;
|
|
1155
|
+
//# sourceMappingURL=out.js.map
|
|
1156
|
+
//# sourceMappingURL=index.js.map
|