zcw-shared 1.28.0 → 1.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/dist/functions/algorithm/lcsVisual.d.ts +6 -0
  2. package/dist/functions/algorithm/lcsVisual.js +88 -0
  3. package/dist/functions/algorithm/lcsVisual.js.map +1 -0
  4. package/dist/functions/algorithm/mergeSortVisual.d.ts +5 -0
  5. package/dist/functions/algorithm/mergeSortVisual.js +103 -0
  6. package/dist/functions/algorithm/mergeSortVisual.js.map +1 -0
  7. package/dist/functions/algorithm/nQueensVisual.d.ts +14 -0
  8. package/dist/functions/algorithm/nQueensVisual.js +94 -0
  9. package/dist/functions/algorithm/nQueensVisual.js.map +1 -0
  10. package/dist/functions/algorithm/numIslandsVisual.d.ts +17 -0
  11. package/dist/functions/algorithm/numIslandsVisual.js +102 -0
  12. package/dist/functions/algorithm/numIslandsVisual.js.map +1 -0
  13. package/dist/functions/algorithm/quickSortVisual.d.ts +18 -0
  14. package/dist/functions/algorithm/quickSortVisual.js +104 -0
  15. package/dist/functions/algorithm/quickSortVisual.js.map +1 -0
  16. package/dist/functions/browser/detectDevice.d.ts +10 -0
  17. package/dist/functions/browser/detectDevice.js +49 -0
  18. package/dist/functions/browser/detectDevice.js.map +1 -0
  19. package/dist/functions/cookie/getCookie.d.ts +5 -0
  20. package/dist/functions/cookie/getCookie.js +14 -0
  21. package/dist/functions/cookie/getCookie.js.map +1 -0
  22. package/dist/functions/cookie/removeCookie.d.ts +8 -0
  23. package/dist/functions/cookie/removeCookie.js +12 -0
  24. package/dist/functions/cookie/removeCookie.js.map +1 -0
  25. package/dist/functions/cookie/setCookie.d.ts +11 -0
  26. package/dist/functions/cookie/setCookie.js +23 -0
  27. package/dist/functions/cookie/setCookie.js.map +1 -0
  28. package/dist/functions/data-structures/EventEmitter.d.ts +32 -0
  29. package/dist/functions/data-structures/EventEmitter.js +108 -0
  30. package/dist/functions/data-structures/EventEmitter.js.map +1 -0
  31. package/dist/functions/data-structures/MyPromise.d.ts +32 -0
  32. package/dist/functions/data-structures/MyPromise.js +254 -0
  33. package/dist/functions/data-structures/MyPromise.js.map +1 -0
  34. package/dist/functions/image/generatePlaceholderImage.d.ts +43 -0
  35. package/dist/functions/image/generatePlaceholderImage.js +331 -0
  36. package/dist/functions/image/generatePlaceholderImage.js.map +1 -0
  37. package/dist/functions/reactive/useReactiveCookie.d.ts +19 -0
  38. package/dist/functions/reactive/useReactiveCookie.js +84 -0
  39. package/dist/functions/reactive/useReactiveCookie.js.map +1 -0
  40. package/dist/hooks/useClickOutside.d.ts +12 -0
  41. package/dist/hooks/useClickOutside.js +16 -0
  42. package/dist/hooks/useClickOutside.js.map +1 -0
  43. package/dist/hooks/useClipboard.d.ts +20 -0
  44. package/dist/hooks/useClipboard.js +33 -0
  45. package/dist/hooks/useClipboard.js.map +1 -0
  46. package/dist/hooks/useCounter.d.ts +19 -0
  47. package/dist/hooks/useCounter.js +44 -0
  48. package/dist/hooks/useCounter.js.map +1 -0
  49. package/dist/hooks/useEventListener.d.ts +14 -0
  50. package/dist/hooks/useEventListener.js +18 -0
  51. package/dist/hooks/useEventListener.js.map +1 -0
  52. package/dist/hooks/useInterval.d.ts +19 -0
  53. package/dist/hooks/useInterval.js +33 -0
  54. package/dist/hooks/useInterval.js.map +1 -0
  55. package/dist/hooks/useTimeout.d.ts +20 -0
  56. package/dist/hooks/useTimeout.js +40 -0
  57. package/dist/hooks/useTimeout.js.map +1 -0
  58. package/dist/hooks/useToggle.d.ts +15 -0
  59. package/dist/hooks/useToggle.js +23 -0
  60. package/dist/hooks/useToggle.js.map +1 -0
  61. package/dist/reactive/createGlobalState.d.ts +2 -0
  62. package/dist/reactive/createGlobalState.js +11 -0
  63. package/dist/reactive/createGlobalState.js.map +1 -0
  64. package/dist/reactive/createSharedComposable.d.ts +2 -0
  65. package/dist/reactive/createSharedComposable.js +13 -0
  66. package/dist/reactive/createSharedComposable.js.map +1 -0
  67. package/dist/reactive/errorManager.d.ts +63 -0
  68. package/dist/reactive/errorManager.js +199 -0
  69. package/dist/reactive/errorManager.js.map +1 -0
  70. package/dist/reactive/i18n.d.ts +27 -0
  71. package/dist/reactive/i18n.js +119 -0
  72. package/dist/reactive/i18n.js.map +1 -0
  73. package/dist/reactive/permission.d.ts +40 -0
  74. package/dist/reactive/permission.js +189 -0
  75. package/dist/reactive/permission.js.map +1 -0
  76. package/dist/reactive/pinia.d.ts +52 -0
  77. package/dist/reactive/pinia.js +183 -0
  78. package/dist/reactive/pinia.js.map +1 -0
  79. package/dist/reactive/useAltool.d.ts +39 -0
  80. package/dist/reactive/useAltool.js +350 -0
  81. package/dist/reactive/useAltool.js.map +1 -0
  82. package/dist/reactive/useCache.d.ts +18 -0
  83. package/dist/reactive/useCache.js +82 -0
  84. package/dist/reactive/useCache.js.map +1 -0
  85. package/dist/reactive/useLocalStorage.d.ts +8 -0
  86. package/dist/reactive/useLocalStorage.js +101 -0
  87. package/dist/reactive/useLocalStorage.js.map +1 -0
  88. package/dist/reactive/usePluginSystem.d.ts +11 -0
  89. package/dist/reactive/usePluginSystem.js +34 -0
  90. package/dist/reactive/usePluginSystem.js.map +1 -0
  91. package/dist/reactive/useSessionStorage.d.ts +8 -0
  92. package/dist/reactive/useSessionStorage.js +101 -0
  93. package/dist/reactive/useSessionStorage.js.map +1 -0
  94. package/dist/reactive/useStorage.d.ts +13 -0
  95. package/dist/reactive/useStorage.js +62 -0
  96. package/dist/reactive/useStorage.js.map +1 -0
  97. package/dist/reactive/useStorageWithIndexedDB.d.ts +8 -0
  98. package/dist/reactive/useStorageWithIndexedDB.js +132 -0
  99. package/dist/reactive/useStorageWithIndexedDB.js.map +1 -0
  100. package/dist/vue-hooks/browser/useFileUpload.d.ts +25 -0
  101. package/dist/vue-hooks/browser/useFileUpload.js +81 -0
  102. package/dist/vue-hooks/browser/useFileUpload.js.map +1 -0
  103. package/package.json +4 -2
  104. package/dist/functions/platform/tencent-cloud/deploy.tcb.d.ts +0 -13
  105. package/dist/functions/platform/tencent-cloud/deploy.tcb.js +0 -46
  106. package/dist/functions/platform/tencent-cloud/deploy.tcb.js.map +0 -1
  107. package/dist/functions/platform/tencent-cloud/getSecret.d.ts +0 -4
  108. package/dist/functions/platform/tencent-cloud/getSecret.js +0 -19
  109. package/dist/functions/platform/tencent-cloud/getSecret.js.map +0 -1
  110. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.d.ts +0 -27
  111. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js +0 -287
  112. package/dist/functions/platform/uniapp/app-plus/buildAndroidApp.js.map +0 -1
  113. package/dist/functions/platform/uniapp/build.d.ts +0 -21
  114. package/dist/functions/platform/uniapp/build.js +0 -83
  115. package/dist/functions/platform/uniapp/build.js.map +0 -1
  116. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.d.ts +0 -11
  117. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js +0 -30
  118. package/dist/functions/platform/uniapp/detectAndroidProjectStructure.js.map +0 -1
  119. package/dist/functions/platform/uniapp/detectProjectType.d.ts +0 -20
  120. package/dist/functions/platform/uniapp/detectProjectType.js +0 -68
  121. package/dist/functions/platform/uniapp/detectProjectType.js.map +0 -1
  122. package/dist/functions/platform/uniapp/parseManifest.d.ts +0 -18
  123. package/dist/functions/platform/uniapp/parseManifest.js +0 -49
  124. package/dist/functions/platform/uniapp/parseManifest.js.map +0 -1
  125. package/dist/functions/platform/uniapp/waitForPages.d.ts +0 -7
  126. package/dist/functions/platform/uniapp/waitForPages.js +0 -20
  127. package/dist/functions/platform/uniapp/waitForPages.js.map +0 -1
  128. package/dist/functions/string/visualizeRegexSteps.d.ts +0 -39
  129. package/dist/functions/string/visualizeRegexSteps.js +0 -446
  130. package/dist/functions/string/visualizeRegexSteps.js.map +0 -1
  131. package/dist/functions/utils/createI18n.d.ts +0 -2
  132. package/dist/functions/utils/createI18n.js +0 -97
  133. package/dist/functions/utils/createI18n.js.map +0 -1
  134. package/dist/functions/utils/formatString.d.ts +0 -5
  135. package/dist/functions/utils/formatString.js +0 -9
  136. package/dist/functions/utils/formatString.js.map +0 -1
  137. package/dist/hooks/usePermission.d.ts +0 -7
  138. package/dist/hooks/usePermission.js +0 -123
  139. package/dist/hooks/usePermission.js.map +0 -1
  140. package/dist/vue-hooks/dom/useKeyboard.d.ts +0 -29
  141. package/dist/vue-hooks/dom/useKeyboard.js +0 -129
  142. package/dist/vue-hooks/dom/useKeyboard.js.map +0 -1
@@ -0,0 +1,331 @@
1
+ const COLOR_PALETTES = [
2
+ { bg: '#f0f4f8', shape: '#3b82f6', text: '#64748b' },
3
+ { bg: '#fef3e2', shape: '#f59e0b', text: '#92400e' },
4
+ { bg: '#f0fdf4', shape: '#10b981', text: '#065f46' },
5
+ { bg: '#fef2f2', shape: '#ef4444', text: '#991b1b' },
6
+ { bg: '#f5f3ff', shape: '#8b5cf6', text: '#5b21b6' },
7
+ { bg: '#ecfdf5', shape: '#14b8a6', text: '#0f766e' },
8
+ { bg: '#fff7ed', shape: '#f97316', text: '#9a3412' },
9
+ { bg: '#fdf2f8', shape: '#ec4899', text: '#9f1239' }
10
+ ];
11
+ export function generatePlaceholderImage(options, deps) {
12
+ const { width, aspectRatio } = options;
13
+ const height = Math.round(width / aspectRatio);
14
+ const palette = COLOR_PALETTES[Math.floor(Math.random() * COLOR_PALETTES.length)];
15
+ const patternTypes = ['simple', 'card-back', 'mandala', 'geometric', 'ornamental'];
16
+ const patternType = patternTypes[Math.floor(Math.random() * patternTypes.length)];
17
+ const polygonSides = Math.floor(Math.random() * 4) + 5;
18
+ const starSpikes = Math.floor(Math.random() * 3) + 4;
19
+ const simpleShapes = ['rectangle', 'circle', 'triangle', 'star', 'diamond', 'polygon'];
20
+ const simpleShape = simpleShapes[Math.floor(Math.random() * simpleShapes.length)];
21
+ const canvas = deps.createCanvas(width, height);
22
+ const ctx = canvas.getContext('2d');
23
+ if (!ctx) {
24
+ throw new Error('无法创建 Canvas 上下文');
25
+ }
26
+ ctx.fillStyle = palette.bg;
27
+ ctx.fillRect(0, 0, width, height);
28
+ const centerX = width / 2;
29
+ const centerY = height / 2;
30
+ const size = Math.min(width, height);
31
+ ctx.save();
32
+ ctx.fillStyle = palette.shape;
33
+ ctx.strokeStyle = palette.shape;
34
+ switch (patternType) {
35
+ case 'simple': {
36
+ drawSimpleShape(ctx, centerX, centerY, size * 0.6, simpleShape, polygonSides, starSpikes);
37
+ break;
38
+ }
39
+ case 'card-back': {
40
+ drawCardBackPattern(ctx, width, height, centerX, centerY, size, palette);
41
+ break;
42
+ }
43
+ case 'mandala': {
44
+ drawMandalaPattern(ctx, centerX, centerY, size * 0.8, palette, starSpikes);
45
+ break;
46
+ }
47
+ case 'geometric': {
48
+ drawGeometricPattern(ctx, width, height, palette);
49
+ break;
50
+ }
51
+ case 'ornamental': {
52
+ drawOrnamentalPattern(ctx, width, height, centerX, centerY, size, palette);
53
+ break;
54
+ }
55
+ }
56
+ ctx.restore();
57
+ ctx.fillStyle = palette.text;
58
+ ctx.font = `${Math.max(12, Math.min(width, height) / 30)}px system-ui, -apple-system, sans-serif`;
59
+ ctx.textAlign = 'center';
60
+ ctx.textBaseline = 'middle';
61
+ const text = `${width} × ${height}`;
62
+ ctx.fillText(text, centerX, centerY + size * 0.35 + Math.max(20, height / 20));
63
+ const result = {
64
+ canvas
65
+ };
66
+ if (typeof canvas.toDataURL === 'function') {
67
+ result.toDataURL = (type = 'image/png', quality) => {
68
+ return canvas.toDataURL(type, quality);
69
+ };
70
+ }
71
+ return result;
72
+ }
73
+ function drawSimpleShape(ctx, cx, cy, size, shape, polygonSides, starSpikes) {
74
+ const radius = size / 2;
75
+ switch (shape) {
76
+ case 'rectangle': {
77
+ ctx.fillRect(cx - size / 2, cy - size * 0.375, size, size * 0.75);
78
+ break;
79
+ }
80
+ case 'circle': {
81
+ ctx.beginPath();
82
+ ctx.arc(cx, cy, radius, 0, Math.PI * 2);
83
+ ctx.fill();
84
+ break;
85
+ }
86
+ case 'triangle': {
87
+ ctx.beginPath();
88
+ ctx.moveTo(cx, cy - radius);
89
+ ctx.lineTo(cx - radius * 0.866, cy + radius * 0.5);
90
+ ctx.lineTo(cx + radius * 0.866, cy + radius * 0.5);
91
+ ctx.closePath();
92
+ ctx.fill();
93
+ break;
94
+ }
95
+ case 'diamond': {
96
+ ctx.beginPath();
97
+ ctx.moveTo(cx, cy - radius);
98
+ ctx.lineTo(cx + radius, cy);
99
+ ctx.lineTo(cx, cy + radius);
100
+ ctx.lineTo(cx - radius, cy);
101
+ ctx.closePath();
102
+ ctx.fill();
103
+ break;
104
+ }
105
+ case 'star': {
106
+ drawStar(ctx, cx, cy, starSpikes, radius, radius * 0.5);
107
+ ctx.fill();
108
+ break;
109
+ }
110
+ case 'polygon': {
111
+ drawPolygon(ctx, cx, cy, polygonSides, radius);
112
+ ctx.fill();
113
+ break;
114
+ }
115
+ }
116
+ }
117
+ function drawCardBackPattern(ctx, width, height, centerX, centerY, size, palette) {
118
+ const borderWidth = Math.min(width, height) * 0.08;
119
+ const innerWidth = width - borderWidth * 2;
120
+ const innerHeight = height - borderWidth * 2;
121
+ ctx.fillStyle = palette.shape;
122
+ ctx.fillRect(0, 0, width, height);
123
+ ctx.fillStyle = palette.bg;
124
+ ctx.fillRect(borderWidth, borderWidth, innerWidth, innerHeight);
125
+ ctx.fillStyle = palette.shape;
126
+ const centerSize = size * 0.4;
127
+ ctx.beginPath();
128
+ ctx.arc(centerX, centerY, centerSize * 0.3, 0, Math.PI * 2);
129
+ ctx.fill();
130
+ const cornerSize = size * 0.15;
131
+ const padding = borderWidth * 1.5;
132
+ drawCornerOrnament(ctx, padding, padding, cornerSize, palette.shape, 0);
133
+ drawCornerOrnament(ctx, width - padding, padding, cornerSize, palette.shape, Math.PI / 2);
134
+ drawCornerOrnament(ctx, width - padding, height - padding, cornerSize, palette.shape, Math.PI);
135
+ drawCornerOrnament(ctx, padding, height - padding, cornerSize, palette.shape, -Math.PI / 2);
136
+ const ringCount = 3;
137
+ for (let i = 1; i <= ringCount; i++) {
138
+ ctx.beginPath();
139
+ ctx.arc(centerX, centerY, centerSize * 0.3 + i * centerSize * 0.15, 0, Math.PI * 2);
140
+ ctx.lineWidth = 2;
141
+ ctx.stroke();
142
+ }
143
+ const smallPatternCount = 8;
144
+ for (let i = 0; i < smallPatternCount; i++) {
145
+ const angle = (i * Math.PI * 2) / smallPatternCount;
146
+ const dist = centerSize * 0.5;
147
+ const px = centerX + Math.cos(angle) * dist;
148
+ const py = centerY + Math.sin(angle) * dist;
149
+ ctx.beginPath();
150
+ ctx.arc(px, py, centerSize * 0.08, 0, Math.PI * 2);
151
+ ctx.fill();
152
+ }
153
+ }
154
+ function drawCornerOrnament(ctx, x, y, size, color, rotation) {
155
+ ctx.save();
156
+ ctx.translate(x, y);
157
+ ctx.rotate(rotation);
158
+ ctx.fillStyle = color;
159
+ ctx.fillRect(-size * 0.3, -size * 0.3, size * 0.6, size * 0.2);
160
+ ctx.fillRect(-size * 0.3, -size * 0.3, size * 0.2, size * 0.6);
161
+ ctx.beginPath();
162
+ ctx.arc(-size * 0.2, -size * 0.2, size * 0.08, 0, Math.PI * 2);
163
+ ctx.fill();
164
+ ctx.restore();
165
+ }
166
+ function drawMandalaPattern(ctx, centerX, centerY, size, palette, layers) {
167
+ const layerCount = layers;
168
+ const baseRadius = size * 0.4;
169
+ for (let layer = 0; layer < layerCount; layer++) {
170
+ const radius = baseRadius * (1 - layer * 0.15);
171
+ const petalCount = 6 + layer * 2;
172
+ for (let i = 0; i < petalCount; i++) {
173
+ const angle = (i * Math.PI * 2) / petalCount;
174
+ const px = centerX + Math.cos(angle) * radius;
175
+ const py = centerY + Math.sin(angle) * radius;
176
+ ctx.save();
177
+ ctx.translate(px, py);
178
+ ctx.rotate(angle + Math.PI / 2);
179
+ ctx.beginPath();
180
+ if (ctx.ellipse) {
181
+ ctx.ellipse(0, 0, radius * 0.3, radius * 0.15, 0, 0, Math.PI * 2);
182
+ }
183
+ else {
184
+ ctx.arc(0, 0, radius * 0.3, 0, Math.PI * 2);
185
+ }
186
+ ctx.fill();
187
+ ctx.restore();
188
+ }
189
+ if (layer > 0) {
190
+ ctx.beginPath();
191
+ for (let i = 0; i < petalCount; i++) {
192
+ const angle = (i * Math.PI * 2) / petalCount;
193
+ const px = centerX + Math.cos(angle) * radius;
194
+ const py = centerY + Math.sin(angle) * radius;
195
+ if (i === 0) {
196
+ ctx.moveTo(px, py);
197
+ }
198
+ else {
199
+ ctx.lineTo(px, py);
200
+ }
201
+ }
202
+ ctx.closePath();
203
+ ctx.lineWidth = 2;
204
+ ctx.stroke();
205
+ }
206
+ }
207
+ ctx.beginPath();
208
+ ctx.arc(centerX, centerY, baseRadius * 0.2, 0, Math.PI * 2);
209
+ ctx.fill();
210
+ }
211
+ function drawGeometricPattern(ctx, width, height, palette) {
212
+ const tileSize = Math.min(width, height) / 8;
213
+ const cols = Math.ceil(width / tileSize) + 1;
214
+ const rows = Math.ceil(height / tileSize) + 1;
215
+ for (let row = 0; row < rows; row++) {
216
+ for (let col = 0; col < cols; col++) {
217
+ const x = col * tileSize - tileSize / 2;
218
+ const y = row * tileSize - tileSize / 2;
219
+ const pattern = (row + col) % 4;
220
+ ctx.save();
221
+ ctx.translate(x, y);
222
+ switch (pattern) {
223
+ case 0: {
224
+ ctx.beginPath();
225
+ ctx.arc(0, 0, tileSize * 0.3, 0, Math.PI * 2);
226
+ ctx.fill();
227
+ break;
228
+ }
229
+ case 1: {
230
+ ctx.fillRect(-tileSize * 0.3, -tileSize * 0.3, tileSize * 0.6, tileSize * 0.6);
231
+ break;
232
+ }
233
+ case 2: {
234
+ ctx.beginPath();
235
+ ctx.moveTo(0, -tileSize * 0.3);
236
+ ctx.lineTo(-tileSize * 0.3, tileSize * 0.3);
237
+ ctx.lineTo(tileSize * 0.3, tileSize * 0.3);
238
+ ctx.closePath();
239
+ ctx.fill();
240
+ break;
241
+ }
242
+ case 3: {
243
+ ctx.beginPath();
244
+ ctx.moveTo(0, -tileSize * 0.3);
245
+ ctx.lineTo(tileSize * 0.3, 0);
246
+ ctx.lineTo(0, tileSize * 0.3);
247
+ ctx.lineTo(-tileSize * 0.3, 0);
248
+ ctx.closePath();
249
+ ctx.fill();
250
+ break;
251
+ }
252
+ }
253
+ ctx.restore();
254
+ }
255
+ }
256
+ }
257
+ function drawOrnamentalPattern(ctx, width, height, centerX, centerY, size, palette) {
258
+ const borderWidth = size * 0.05;
259
+ ctx.lineWidth = borderWidth;
260
+ ctx.strokeStyle = palette.shape;
261
+ ctx.strokeRect(borderWidth / 2, borderWidth / 2, width - borderWidth, height - borderWidth);
262
+ const mainSize = size * 0.5;
263
+ const outerElements = 12;
264
+ for (let i = 0; i < outerElements; i++) {
265
+ const angle = (i * Math.PI * 2) / outerElements;
266
+ const dist = mainSize * 0.45;
267
+ const px = centerX + Math.cos(angle) * dist;
268
+ const py = centerY + Math.sin(angle) * dist;
269
+ ctx.save();
270
+ ctx.translate(px, py);
271
+ ctx.rotate(angle);
272
+ ctx.beginPath();
273
+ if (ctx.ellipse) {
274
+ ctx.ellipse(0, 0, mainSize * 0.1, mainSize * 0.2, 0, 0, Math.PI * 2);
275
+ }
276
+ else {
277
+ ctx.arc(0, 0, mainSize * 0.15, 0, Math.PI * 2);
278
+ }
279
+ ctx.fill();
280
+ ctx.restore();
281
+ }
282
+ const midElements = 8;
283
+ for (let i = 0; i < midElements; i++) {
284
+ const angle = (i * Math.PI * 2) / midElements;
285
+ const dist = mainSize * 0.3;
286
+ const px = centerX + Math.cos(angle) * dist;
287
+ const py = centerY + Math.sin(angle) * dist;
288
+ ctx.beginPath();
289
+ ctx.arc(px, py, mainSize * 0.08, 0, Math.PI * 2);
290
+ ctx.fill();
291
+ }
292
+ ctx.beginPath();
293
+ ctx.arc(centerX, centerY, mainSize * 0.15, 0, Math.PI * 2);
294
+ ctx.fill();
295
+ drawStar(ctx, centerX, centerY, 8, mainSize * 0.2, mainSize * 0.1);
296
+ ctx.fillStyle = palette.bg;
297
+ ctx.fill();
298
+ }
299
+ function drawStar(ctx, cx, cy, spikes, outerRadius, innerRadius) {
300
+ ctx.beginPath();
301
+ const step = Math.PI / spikes;
302
+ for (let i = 0; i < spikes * 2; i++) {
303
+ const r = i % 2 === 0 ? outerRadius : innerRadius;
304
+ const angle = i * step - Math.PI / 2;
305
+ const x = cx + Math.cos(angle) * r;
306
+ const y = cy + Math.sin(angle) * r;
307
+ if (i === 0) {
308
+ ctx.moveTo(x, y);
309
+ }
310
+ else {
311
+ ctx.lineTo(x, y);
312
+ }
313
+ }
314
+ ctx.closePath();
315
+ }
316
+ function drawPolygon(ctx, cx, cy, sides, radius) {
317
+ ctx.beginPath();
318
+ for (let i = 0; i < sides; i++) {
319
+ const angle = (i * 2 * Math.PI) / sides - Math.PI / 2;
320
+ const x = cx + Math.cos(angle) * radius;
321
+ const y = cy + Math.sin(angle) * radius;
322
+ if (i === 0) {
323
+ ctx.moveTo(x, y);
324
+ }
325
+ else {
326
+ ctx.lineTo(x, y);
327
+ }
328
+ }
329
+ ctx.closePath();
330
+ }
331
+ //# sourceMappingURL=generatePlaceholderImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatePlaceholderImage.js","sourceRoot":"","sources":["../../../src/functions/image/generatePlaceholderImage.ts"],"names":[],"mappings":"AAyDA,MAAM,cAAc,GAAG;IACrB,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;IACpD,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;CACrD,CAAA;AA0CD,MAAM,UAAU,wBAAwB,CACtC,OAAwC,EACxC,IAAkC;IAElC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;IAGtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,CAAA;IAG9C,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;IACjF,MAAM,YAAY,GAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;IACjG,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;IAGjF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAA;IACpD,MAAM,YAAY,GAAsB,CAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;IACzG,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;IAGjF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAEnC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAGD,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAC1B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAGjC,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,CAAA;IACzB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAA;IAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAGpC,GAAG,CAAC,IAAI,EAAE,CAAA;IACV,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAA;IAC7B,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAA;IAE/B,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;YACzF,MAAK;QACP,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YACxE,MAAK;QACP,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;YAC1E,MAAK;QACP,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YACjD,MAAK;QACP,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;YAC1E,MAAK;QACP,CAAC;IACH,CAAC;IAED,GAAG,CAAC,OAAO,EAAE,CAAA;IAGb,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAA;IAC5B,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,yCAAyC,CAAA;IACjG,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAA;IACxB,GAAG,CAAC,YAAY,GAAG,QAAQ,CAAA;IAC3B,MAAM,IAAI,GAAG,GAAG,KAAK,MAAM,MAAM,EAAE,CAAA;IACnC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC,CAAA;IAG9E,MAAM,MAAM,GAAmC;QAC7C,MAAM;KACP,CAAA;IAGD,IAAI,OAAQ,MAAc,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QACpD,MAAM,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,WAAW,EAAE,OAAgB,EAAE,EAAE;YAC1D,OAAQ,MAAc,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACjD,CAAC,CAAA;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAKD,SAAS,eAAe,CACtB,GAAwB,EACxB,EAAU,EACV,EAAU,EACV,IAAY,EACZ,KAAsB,EACtB,YAAoB,EACpB,UAAkB;IAElB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAA;IAEvB,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,GAAG,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAA;YACjE,MAAK;QACP,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YACvC,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,MAAK;QACP,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAA;YAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,EAAE,EAAE,GAAG,MAAM,GAAG,GAAG,CAAC,CAAA;YAClD,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,KAAK,EAAE,EAAE,GAAG,MAAM,GAAG,GAAG,CAAC,CAAA;YAClD,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,MAAK;QACP,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAA;YAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAA;YAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAA;YAC3B,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAA;YAC3B,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,MAAK;QACP,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,CAAA;YACvD,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,MAAK;QACP,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,WAAW,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,CAAA;YAC9C,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,MAAK;QACP,CAAC;IACH,CAAC;AACH,CAAC;AAKD,SAAS,mBAAmB,CAC1B,GAAwB,EACxB,KAAa,EACb,MAAc,EACd,OAAe,EACf,OAAe,EACf,IAAY,EACZ,OAAiC;IAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IAClD,MAAM,UAAU,GAAG,KAAK,GAAG,WAAW,GAAG,CAAC,CAAA;IAC1C,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,CAAC,CAAA;IAG5C,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAA;IAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACjC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAC1B,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;IAG/D,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAA;IAC7B,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,CAAA;IAG7B,GAAG,CAAC,SAAS,EAAE,CAAA;IACf,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC3D,GAAG,CAAC,IAAI,EAAE,CAAA;IAGV,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAA;IAC9B,MAAM,OAAO,GAAG,WAAW,GAAG,GAAG,CAAA;IAGjC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAEvE,kBAAkB,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAEzF,kBAAkB,CAAC,GAAG,EAAE,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;IAE9F,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAG3F,MAAM,SAAS,GAAG,CAAC,CAAA;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,GAAG,GAAG,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACnF,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;QACjB,GAAG,CAAC,MAAM,EAAE,CAAA;IACd,CAAC;IAGD,MAAM,iBAAiB,GAAG,CAAC,CAAA;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAA;QACnD,MAAM,IAAI,GAAG,UAAU,GAAG,GAAG,CAAA;QAC7B,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAC3C,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAC3C,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAClD,GAAG,CAAC,IAAI,EAAE,CAAA;IACZ,CAAC;AACH,CAAC;AAKD,SAAS,kBAAkB,CACzB,GAAwB,EACxB,CAAS,EACT,CAAS,EACT,IAAY,EACZ,KAAa,EACb,QAAgB;IAEhB,GAAG,CAAC,IAAI,EAAE,CAAA;IACV,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACnB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IACpB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;IAGrB,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,CAAA;IAC9D,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,CAAA;IAG9D,GAAG,CAAC,SAAS,EAAE,CAAA;IACf,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC9D,GAAG,CAAC,IAAI,EAAE,CAAA;IAEV,GAAG,CAAC,OAAO,EAAE,CAAA;AACf,CAAC;AAKD,SAAS,kBAAkB,CACzB,GAAwB,EACxB,OAAe,EACf,OAAe,EACf,IAAY,EACZ,OAAiC,EACjC,MAAc;IAEd,MAAM,UAAU,GAAG,MAAM,CAAA;IACzB,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,CAAA;IAE7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAA;QAC9C,MAAM,UAAU,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA;QAGhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAA;YAC5C,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;YAC7C,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;YAE7C,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YACrB,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YAG/B,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YACnE,CAAC;iBAAM,CAAC;gBAEN,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;YAC7C,CAAC;YACD,GAAG,CAAC,IAAI,EAAE,CAAA;YAEV,GAAG,CAAC,OAAO,EAAE,CAAA;QACf,CAAC;QAGD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAA;gBAC5C,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;gBAC7C,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;gBAC7C,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACZ,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBACpB,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;YACD,GAAG,CAAC,SAAS,EAAE,CAAA;YACf,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;YACjB,GAAG,CAAC,MAAM,EAAE,CAAA;QACd,CAAC;IACH,CAAC;IAGD,GAAG,CAAC,SAAS,EAAE,CAAA;IACf,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC3D,GAAG,CAAC,IAAI,EAAE,CAAA;AACZ,CAAC;AAKD,SAAS,oBAAoB,CAC3B,GAAwB,EACxB,KAAa,EACb,MAAc,EACd,OAAiC;IAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAE7C,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;QACpC,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAA;YACvC,MAAM,CAAC,GAAG,GAAG,GAAG,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAA;YAGvC,MAAM,OAAO,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;YAE/B,GAAG,CAAC,IAAI,EAAE,CAAA;YACV,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YAEnB,QAAQ,OAAO,EAAE,CAAC;gBAChB,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEP,GAAG,CAAC,SAAS,EAAE,CAAA;oBACf,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;oBAC7C,GAAG,CAAC,IAAI,EAAE,CAAA;oBACV,MAAK;gBACP,CAAC;gBAED,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEP,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAA;oBAC9E,MAAK;gBACP,CAAC;gBAED,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEP,GAAG,CAAC,SAAS,EAAE,CAAA;oBACf,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;oBAC9B,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAA;oBAC3C,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAA;oBAC1C,GAAG,CAAC,SAAS,EAAE,CAAA;oBACf,GAAG,CAAC,IAAI,EAAE,CAAA;oBACV,MAAK;gBACP,CAAC;gBAED,KAAK,CAAC,CAAC,CAAC,CAAC;oBAEP,GAAG,CAAC,SAAS,EAAE,CAAA;oBACf,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;oBAC9B,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;oBAC7B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAA;oBAC7B,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;oBAC9B,GAAG,CAAC,SAAS,EAAE,CAAA;oBACf,GAAG,CAAC,IAAI,EAAE,CAAA;oBACV,MAAK;gBACP,CAAC;YACH,CAAC;YAED,GAAG,CAAC,OAAO,EAAE,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAKD,SAAS,qBAAqB,CAC5B,GAAwB,EACxB,KAAa,EACb,MAAc,EACd,OAAe,EACf,OAAe,EACf,IAAY,EACZ,OAAiC;IAGjC,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAA;IAC/B,GAAG,CAAC,SAAS,GAAG,WAAW,CAAA;IAC3B,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAA;IAC/B,GAAG,CAAC,UAAU,CAAC,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,EAAE,MAAM,GAAG,WAAW,CAAC,CAAA;IAG3F,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAA;IAG3B,MAAM,aAAa,GAAG,EAAE,CAAA;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,aAAa,CAAA;QAC/C,MAAM,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAA;QAC5B,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAC3C,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAE3C,GAAG,CAAC,IAAI,EAAE,CAAA;QACV,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QACrB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAGjB,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QACtE,CAAC;aAAM,CAAC;YAEN,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAChD,CAAC;QACD,GAAG,CAAC,IAAI,EAAE,CAAA;QAEV,GAAG,CAAC,OAAO,EAAE,CAAA;IACf,CAAC;IAGD,MAAM,WAAW,GAAG,CAAC,CAAA;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,WAAW,CAAA;QAC7C,MAAM,IAAI,GAAG,QAAQ,GAAG,GAAG,CAAA;QAC3B,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAC3C,MAAM,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAE3C,GAAG,CAAC,SAAS,EAAE,CAAA;QACf,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAChD,GAAG,CAAC,IAAI,EAAE,CAAA;IACZ,CAAC;IAGD,GAAG,CAAC,SAAS,EAAE,CAAA;IACf,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC1D,GAAG,CAAC,IAAI,EAAE,CAAA;IAGV,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAA;IAClE,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAA;IAC1B,GAAG,CAAC,IAAI,EAAE,CAAA;AACZ,CAAC;AAKD,SAAS,QAAQ,CACf,GAAwB,EACxB,EAAU,EACV,EAAU,EACV,MAAc,EACd,WAAmB,EACnB,WAAmB;IAEnB,GAAG,CAAC,SAAS,EAAE,CAAA;IACf,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAA;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAA;QACjD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACpC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAClC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IACD,GAAG,CAAC,SAAS,EAAE,CAAA;AACjB,CAAC;AAKD,SAAS,WAAW,CAClB,GAAwB,EACxB,EAAU,EACV,EAAU,EACV,KAAa,EACb,MAAc;IAEd,GAAG,CAAC,SAAS,EAAE,CAAA;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACrD,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;QACvC,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAA;QACvC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IACD,GAAG,CAAC,SAAS,EAAE,CAAA;AACjB,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface UseReactiveCookieDeps {
2
+ getCookie: () => string;
3
+ setCookie: (value: string) => void;
4
+ }
5
+ export interface CookieOptions {
6
+ days?: number;
7
+ path?: string;
8
+ domain?: string;
9
+ secure?: boolean;
10
+ sameSite?: 'Strict' | 'Lax' | 'None';
11
+ }
12
+ export interface ReactiveCookie {
13
+ value: string | null;
14
+ set: (value: string, options?: CookieOptions) => void;
15
+ remove: (options?: Pick<CookieOptions, 'path' | 'domain'>) => void;
16
+ subscribe: (listener: () => void) => () => void;
17
+ dispose: () => void;
18
+ }
19
+ export declare function useReactiveCookie(name: string, deps: UseReactiveCookieDeps): ReactiveCookie;
@@ -0,0 +1,84 @@
1
+ import { createReactive } from '../utils/createReactive';
2
+ export function useReactiveCookie(name, deps) {
3
+ const parseCookie = () => {
4
+ const cookies = deps.getCookie().split(';');
5
+ for (const cookie of cookies) {
6
+ const [key, value] = cookie.trim().split('=');
7
+ if (key === name) {
8
+ return decodeURIComponent(value);
9
+ }
10
+ }
11
+ return null;
12
+ };
13
+ const state = createReactive({ value: parseCookie() }, {
14
+ subscribers: new Set(),
15
+ notify: () => { },
16
+ subscribe: (listener) => {
17
+ const subs = new Set();
18
+ subs.add(listener);
19
+ return () => subs.delete(listener);
20
+ },
21
+ dispose: () => { },
22
+ createProxy: (target, deps) => {
23
+ return new Proxy(target, {
24
+ get(target, property) {
25
+ if (property === 'subscribe' || property === 'notify' || property === 'dispose') {
26
+ return deps[property];
27
+ }
28
+ return target[property];
29
+ },
30
+ set(target, property, value) {
31
+ target[property] = value;
32
+ deps.notify();
33
+ return true;
34
+ }
35
+ });
36
+ },
37
+ getChangePath: (target, property) => [String(property)]
38
+ });
39
+ const set = (value, options = {}) => {
40
+ const { days, path = '/', domain, secure = false, sameSite = 'Lax' } = options;
41
+ let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
42
+ if (days) {
43
+ const date = new Date();
44
+ date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
45
+ cookieString += `; expires=${date.toUTCString()}`;
46
+ }
47
+ if (path) {
48
+ cookieString += `; path=${path}`;
49
+ }
50
+ if (domain) {
51
+ cookieString += `; domain=${domain}`;
52
+ }
53
+ if (secure) {
54
+ cookieString += '; secure';
55
+ }
56
+ if (sameSite) {
57
+ cookieString += `; SameSite=${sameSite}`;
58
+ }
59
+ deps.setCookie(cookieString);
60
+ state.value = value;
61
+ };
62
+ const remove = (options = {}) => {
63
+ const { path = '/', domain } = options;
64
+ let cookieString = `${encodeURIComponent(name)}=; expires=Thu, 01 Jan 1970 00:00:00 GMT`;
65
+ if (path) {
66
+ cookieString += `; path=${path}`;
67
+ }
68
+ if (domain) {
69
+ cookieString += `; domain=${domain}`;
70
+ }
71
+ deps.setCookie(cookieString);
72
+ state.value = null;
73
+ };
74
+ return {
75
+ get value() {
76
+ return state.value;
77
+ },
78
+ set,
79
+ remove,
80
+ subscribe: state.subscribe,
81
+ dispose: state.dispose
82
+ };
83
+ }
84
+ //# sourceMappingURL=useReactiveCookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReactiveCookie.js","sourceRoot":"","sources":["../../../src/functions/reactive/useReactiveCookie.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Ref } from '../../references/vue.d';
2
+ import type { Document, HTMLElement, Event } from '../../references/dom.d';
3
+ export interface VueCompositionAPI {
4
+ onMounted: (fn: () => void) => void;
5
+ onUnmounted: (fn: () => void) => void;
6
+ }
7
+ export interface UseClickOutsideDeps {
8
+ vue: VueCompositionAPI;
9
+ addEventListener: Document['addEventListener'];
10
+ removeEventListener: Document['removeEventListener'];
11
+ }
12
+ export declare function useClickOutside(target: Ref<HTMLElement | undefined>, handler: (event: Event) => void, deps: UseClickOutsideDeps): void;
@@ -0,0 +1,16 @@
1
+ export function useClickOutside(target, handler, deps) {
2
+ const listener = (event) => {
3
+ const el = target.value;
4
+ if (!el || el === event.target || el.contains(event.target)) {
5
+ return;
6
+ }
7
+ handler(event);
8
+ };
9
+ deps.vue.onMounted(() => {
10
+ deps.addEventListener('click', listener, true);
11
+ });
12
+ deps.vue.onUnmounted(() => {
13
+ deps.removeEventListener('click', listener, true);
14
+ });
15
+ }
16
+ //# sourceMappingURL=useClickOutside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClickOutside.js","sourceRoot":"","sources":["../../src/hooks/useClickOutside.ts"],"names":[],"mappings":"AAmDA,MAAM,UAAU,eAAe,CAC7B,MAAoC,EACpC,OAA+B,EAC/B,IAAyB;IAEzB,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;QAChC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE,CAAC;YACpE,OAAM;QACR,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC,CAAA;IAED,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;QACtB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAyB,EAAE,IAAI,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE;QACxB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAyB,EAAE,IAAI,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { Ref } from '../../references/vue.d';
2
+ import type { Navigator } from '../../references/browser.d';
3
+ import type { setTimeout, clearTimeout } from '../../references/timer.d';
4
+ export interface VueCompositionAPI {
5
+ ref: <T>(value: T) => Ref<T>;
6
+ }
7
+ export interface UseClipboardDeps {
8
+ vue: VueCompositionAPI;
9
+ writeText: Navigator['clipboard']['writeText'];
10
+ readText: Navigator['clipboard']['readText'];
11
+ setTimeout: typeof setTimeout;
12
+ clearTimeout: typeof clearTimeout;
13
+ }
14
+ export interface UseClipboardReturn {
15
+ text: Ref<string>;
16
+ copied: Ref<boolean>;
17
+ isSupported: Ref<boolean>;
18
+ copy: (text: string) => Promise<void>;
19
+ }
20
+ export declare function useClipboard(deps: UseClipboardDeps): UseClipboardReturn;
@@ -0,0 +1,33 @@
1
+ export function useClipboard(deps) {
2
+ const text = deps.vue.ref('');
3
+ const copied = deps.vue.ref(false);
4
+ const isSupported = deps.vue.ref(!!deps.writeText && !!deps.readText);
5
+ let timeoutId = null;
6
+ const copy = async (value) => {
7
+ if (!isSupported.value) {
8
+ throw new Error('Clipboard API is not supported');
9
+ }
10
+ try {
11
+ await deps.writeText(value);
12
+ text.value = value;
13
+ copied.value = true;
14
+ if (timeoutId) {
15
+ deps.clearTimeout(timeoutId);
16
+ }
17
+ timeoutId = deps.setTimeout(() => {
18
+ copied.value = false;
19
+ }, 3000);
20
+ }
21
+ catch (error) {
22
+ copied.value = false;
23
+ throw error;
24
+ }
25
+ };
26
+ return {
27
+ text,
28
+ copied,
29
+ isSupported,
30
+ copy
31
+ };
32
+ }
33
+ //# sourceMappingURL=useClipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClipboard.js","sourceRoot":"","sources":["../../src/hooks/useClipboard.ts"],"names":[],"mappings":"AAiEA,MAAM,UAAU,YAAY,CAAC,IAAsB;IACjD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAS,EAAE,CAAC,CAAA;IACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAU,KAAK,CAAC,CAAA;IAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAU,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAE9E,IAAI,SAAS,GAAQ,IAAI,CAAA;IAEzB,MAAM,IAAI,GAAG,KAAK,EAAE,KAAa,EAAiB,EAAE;QAClD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;YAClB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA;YAGnB,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YAC9B,CAAC;YACD,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC/B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;YACtB,CAAC,EAAE,IAAI,CAAC,CAAA;QACV,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;YACpB,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,WAAW;QACX,IAAI;KACL,CAAA;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Ref } from '../../references/vue.d';
2
+ export interface VueCompositionAPI {
3
+ ref: <T>(value: T) => Ref<T>;
4
+ }
5
+ export interface UseCounterDeps {
6
+ vue: VueCompositionAPI;
7
+ }
8
+ export interface UseCounterOptions {
9
+ min?: number;
10
+ max?: number;
11
+ }
12
+ export interface UseCounterReturn {
13
+ count: Ref<number>;
14
+ inc: (delta?: number) => void;
15
+ dec: (delta?: number) => void;
16
+ reset: () => void;
17
+ set: (val: number) => void;
18
+ }
19
+ export declare function useCounter(initialValue: number | undefined, options: UseCounterOptions | undefined, deps: UseCounterDeps): UseCounterReturn;
@@ -0,0 +1,44 @@
1
+ export function useCounter(initialValue = 0, options = {}, deps) {
2
+ const { min, max } = options;
3
+ const count = deps.vue.ref(initialValue);
4
+ const inc = (delta = 1) => {
5
+ const newValue = count.value + delta;
6
+ if (max !== undefined && newValue > max) {
7
+ count.value = max;
8
+ }
9
+ else {
10
+ count.value = newValue;
11
+ }
12
+ };
13
+ const dec = (delta = 1) => {
14
+ const newValue = count.value - delta;
15
+ if (min !== undefined && newValue < min) {
16
+ count.value = min;
17
+ }
18
+ else {
19
+ count.value = newValue;
20
+ }
21
+ };
22
+ const reset = () => {
23
+ count.value = initialValue;
24
+ };
25
+ const set = (val) => {
26
+ if (min !== undefined && val < min) {
27
+ count.value = min;
28
+ }
29
+ else if (max !== undefined && val > max) {
30
+ count.value = max;
31
+ }
32
+ else {
33
+ count.value = val;
34
+ }
35
+ };
36
+ return {
37
+ count,
38
+ inc,
39
+ dec,
40
+ reset,
41
+ set
42
+ };
43
+ }
44
+ //# sourceMappingURL=useCounter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCounter.js","sourceRoot":"","sources":["../../src/hooks/useCounter.ts"],"names":[],"mappings":"AAmEA,MAAM,UAAU,UAAU,CACxB,eAAuB,CAAC,EACxB,UAA6B,EAAE,EAC/B,IAAoB;IAEpB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAS,YAAY,CAAC,CAAA;IAEhD,MAAM,GAAG,GAAG,CAAC,QAAgB,CAAC,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;QACpC,IAAI,GAAG,KAAK,SAAS,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACxC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAA;QACxB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,CAAC,QAAgB,CAAC,EAAE,EAAE;QAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAA;QACpC,IAAI,GAAG,KAAK,SAAS,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACxC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAA;QACxB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,KAAK,CAAC,KAAK,GAAG,YAAY,CAAA;IAC5B,CAAC,CAAA;IAED,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;QAC1B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YACnC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAA;QACnB,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YAC1C,KAAK,CAAC,KAAK,GAAG,GAAG,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,GAAG,GAAG,CAAA;QACnB,CAAC;IACH,CAAC,CAAA;IAED,OAAO;QACL,KAAK;QACL,GAAG;QACH,GAAG;QACH,KAAK;QACL,GAAG;KACJ,CAAA;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Ref } from '../../references/vue.d';
2
+ import type { EventListener, AddEventListenerOptions, EventListenerOptions } from '../../references/dom.d';
3
+ export interface VueCompositionAPI {
4
+ onMounted: (fn: () => void) => void;
5
+ onUnmounted: (fn: () => void) => void;
6
+ }
7
+ export interface EventTarget {
8
+ addEventListener(type: string, listener: EventListener, options?: boolean | AddEventListenerOptions): void;
9
+ removeEventListener(type: string, listener: EventListener, options?: boolean | EventListenerOptions): void;
10
+ }
11
+ export interface UseEventListenerDeps {
12
+ vue: VueCompositionAPI;
13
+ }
14
+ export declare function useEventListener(target: Ref<EventTarget | undefined> | EventTarget, event: string, handler: EventListener, options: (boolean | AddEventListenerOptions) | undefined, deps: UseEventListenerDeps): void;