@epam/ai-dial-attachment-input 1.1.0-dev.331 → 1.1.0-dev.336
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/index.js +51 -46
- package/package.json +2 -2
- package/utils/attachment.d.ts.map +1 -1
package/index.js
CHANGED
|
@@ -14,21 +14,26 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
14
14
|
video: "Video files",
|
|
15
15
|
text: "Text files",
|
|
16
16
|
"*": "All files"
|
|
17
|
-
}, he = (e, t = me) => e.map((e) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
}, he = { "image/jpeg": "JPEG" }, ge = (e, t = me) => e.map((e) => {
|
|
18
|
+
let r = e.toLowerCase().split(";")[0].trim();
|
|
19
|
+
if (r.endsWith("/*")) {
|
|
20
|
+
let e = r.slice(0, -2);
|
|
21
|
+
return t[e] ?? `${e} files`;
|
|
21
22
|
}
|
|
22
|
-
let
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
let i = he[r];
|
|
24
|
+
if (i) return i;
|
|
25
|
+
let a = n[r];
|
|
26
|
+
if (a) return a.toUpperCase();
|
|
27
|
+
let o = r.split("/")[1];
|
|
28
|
+
return o == null ? e.toUpperCase() : o.toUpperCase();
|
|
29
|
+
}).join(", "), _e = (e, t) => t.length === 0 ? !1 : t.some((t) => {
|
|
25
30
|
if (t === "*" || t === "*/*") return !0;
|
|
26
31
|
if (t.endsWith("/*")) {
|
|
27
32
|
let n = t.slice(0, -2);
|
|
28
33
|
return e.startsWith(`${n}/`);
|
|
29
34
|
}
|
|
30
35
|
return e === t;
|
|
31
|
-
}),
|
|
36
|
+
}), ve = (e) => {
|
|
32
37
|
if (!e) return h;
|
|
33
38
|
if (e.startsWith("image/")) switch (e) {
|
|
34
39
|
case "image/jpeg":
|
|
@@ -77,21 +82,21 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
77
82
|
case "text/x-vue": return I;
|
|
78
83
|
default: return h;
|
|
79
84
|
}
|
|
80
|
-
}, ve = (e) => {
|
|
81
|
-
let { type: n, contentType: r } = e;
|
|
82
|
-
return n === t.Prompt ? ne : n === t.Pasted ? f : n === t.Image ? H : _e(r ?? "");
|
|
83
85
|
}, ye = (e) => {
|
|
86
|
+
let { type: n, contentType: r } = e;
|
|
87
|
+
return n === t.Prompt ? ne : n === t.Pasted ? f : n === t.Image ? H : ve(r ?? "");
|
|
88
|
+
}, be = (e) => {
|
|
84
89
|
let t = e.toLowerCase().split(";")[0].trim(), r = n[t];
|
|
85
90
|
if (r) return r;
|
|
86
91
|
let i = t.split("/")[1];
|
|
87
92
|
if (i && !i.startsWith("vnd.") && !i.includes("+")) return i;
|
|
88
|
-
},
|
|
93
|
+
}, xe = (e, n) => {
|
|
89
94
|
let { type: r, name: i, contentType: a } = e;
|
|
90
95
|
if (r === t.Prompt) return n.promptLabel ?? "Prompt";
|
|
91
96
|
if (r === t.Pasted) return n.pastedLabel ?? "Pasted";
|
|
92
97
|
if (r === t.Image) return n.imageLabel ?? "Image";
|
|
93
98
|
if (a) {
|
|
94
|
-
let e =
|
|
99
|
+
let e = be(a);
|
|
95
100
|
if (e) return `.${e}`;
|
|
96
101
|
}
|
|
97
102
|
if (i == null) return "";
|
|
@@ -104,10 +109,10 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
104
109
|
isError: l,
|
|
105
110
|
isImage: u,
|
|
106
111
|
isLink: d,
|
|
107
|
-
BottomIcon: d ? null :
|
|
108
|
-
typeLabel: d ? null :
|
|
112
|
+
BottomIcon: d ? null : ye(e),
|
|
113
|
+
typeLabel: d ? null : xe(e, n)
|
|
109
114
|
};
|
|
110
|
-
},
|
|
115
|
+
}, Se = 5, Ce = "flex size-[84px] items-center justify-center rounded-xl border", Y = {
|
|
111
116
|
tile: "_tile_1whwz_1",
|
|
112
117
|
hovered: "_hovered_1whwz_5",
|
|
113
118
|
selected: "_selected_1whwz_15",
|
|
@@ -127,7 +132,7 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
127
132
|
onClick: (e) => {
|
|
128
133
|
e.stopPropagation(), r(i);
|
|
129
134
|
}
|
|
130
|
-
}),
|
|
135
|
+
}), we = ({ ...e }) => /* @__PURE__ */ G(X, {
|
|
131
136
|
icon: /* @__PURE__ */ G(te, {
|
|
132
137
|
size: U.SM,
|
|
133
138
|
"aria-hidden": !0,
|
|
@@ -135,36 +140,36 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
135
140
|
}),
|
|
136
141
|
className: Y.retryIcon,
|
|
137
142
|
...e
|
|
138
|
-
}),
|
|
143
|
+
}), Te = ({ ...e }) => /* @__PURE__ */ G(X, {
|
|
139
144
|
icon: /* @__PURE__ */ G(p, {
|
|
140
145
|
size: U.SM,
|
|
141
146
|
"aria-hidden": !0,
|
|
142
147
|
stroke: W
|
|
143
148
|
}),
|
|
144
149
|
...e
|
|
145
|
-
}),
|
|
150
|
+
}), Ee = ({ ...e }) => /* @__PURE__ */ G(X, {
|
|
146
151
|
icon: /* @__PURE__ */ G(m, {
|
|
147
152
|
size: U.SM,
|
|
148
153
|
"aria-hidden": !0,
|
|
149
154
|
stroke: W
|
|
150
155
|
}),
|
|
151
156
|
...e
|
|
152
|
-
}),
|
|
157
|
+
}), De = ({ ...e }) => /* @__PURE__ */ G(X, {
|
|
153
158
|
icon: /* @__PURE__ */ G(ie, {
|
|
154
159
|
size: U.SM,
|
|
155
160
|
"aria-hidden": !0,
|
|
156
161
|
stroke: W
|
|
157
162
|
}),
|
|
158
163
|
...e
|
|
159
|
-
}),
|
|
164
|
+
}), Oe = {
|
|
160
165
|
[e.Network]: "Upload failed · network error",
|
|
161
166
|
[e.UnsupportedType]: "Upload failed · unsupported file type"
|
|
162
|
-
},
|
|
163
|
-
let { clickLabel: b = "Download attachment", retryLabel: x = "Retry upload", sizeLabel: S, uploadingLabel: C = "Uploading", errorReasonLabels: w, genericErrorLabel: T = "Upload failed" } = u ?? {}, { typography: E, className: D } = d ?? {}, { id: O, name: k, status: A, errorReason: j } = t, M = A === r.Loading, N = A === r.Error, P = c(), F = N ? j && (w?.[j] ??
|
|
167
|
+
}, ke = ({ attachment: t, searchQuery: n = "", onClick: i, onRetry: s, labels: u, styles: d, onDownload: f, isPasted: p, isLink: m, cssVars: h, onExpand: g, isExpandable: _, onRemove: v, isSelected: y }) => {
|
|
168
|
+
let { clickLabel: b = "Download attachment", retryLabel: x = "Retry upload", sizeLabel: S, uploadingLabel: C = "Uploading", errorReasonLabels: w, genericErrorLabel: T = "Upload failed" } = u ?? {}, { typography: E, className: D } = d ?? {}, { id: O, name: k, status: A, errorReason: j } = t, M = A === r.Loading, N = A === r.Error, P = c(), F = N ? j && (w?.[j] ?? Oe[j]) || T : "", { BottomIcon: I, typeLabel: L } = J(t), R = !N && !M && f && !m, z = N && !!s && j !== e.UnsupportedType, B = R || z ? "pe-5" : void 0, ee = (e) => {
|
|
164
169
|
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), i?.(t.id));
|
|
165
170
|
}, V = l(() => p ? k : pe(k), [p, k]), H = o(() => {
|
|
166
171
|
window.open(t.referenceUrl, "_blank", "noopener,noreferrer");
|
|
167
|
-
}, [t]), te = a(
|
|
172
|
+
}, [t]), te = a(Ce, "group/attachment-tile relative flex-col justify-between items-start gap-1 overflow-hidden p-1.5", Y.tile, !N && Y.hovered, y && Y.selected, N && Y.tileError), ne = /* @__PURE__ */ G("div", {
|
|
168
173
|
title: V,
|
|
169
174
|
className: a(E?.nameClassName ?? "dial-caption-text", "line-clamp-2 min-w-0 break-words", Y.nameText, !N && B),
|
|
170
175
|
children: n ? /* @__PURE__ */ G(se, {
|
|
@@ -195,27 +200,27 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
195
200
|
/* @__PURE__ */ K("div", {
|
|
196
201
|
className: a("absolute right-0 top-0 flex gap-1"),
|
|
197
202
|
children: [
|
|
198
|
-
R && /* @__PURE__ */ G(
|
|
203
|
+
R && /* @__PURE__ */ G(Te, {
|
|
199
204
|
ariaLabel: b,
|
|
200
205
|
errorTitle: F,
|
|
201
206
|
errorDescId: P,
|
|
202
207
|
onClick: f,
|
|
203
208
|
id: O
|
|
204
209
|
}),
|
|
205
|
-
z && /* @__PURE__ */ G(
|
|
210
|
+
z && /* @__PURE__ */ G(we, {
|
|
206
211
|
ariaLabel: x,
|
|
207
212
|
errorTitle: F,
|
|
208
213
|
errorDescId: P,
|
|
209
214
|
onClick: s,
|
|
210
215
|
id: O
|
|
211
216
|
}),
|
|
212
|
-
m && /* @__PURE__ */ G(
|
|
217
|
+
m && /* @__PURE__ */ G(Ee, {
|
|
213
218
|
ariaLabel: x,
|
|
214
219
|
errorTitle: F,
|
|
215
220
|
errorDescId: P,
|
|
216
221
|
onClick: H
|
|
217
222
|
}),
|
|
218
|
-
v && /* @__PURE__ */ G(
|
|
223
|
+
v && /* @__PURE__ */ G(De, {
|
|
219
224
|
ariaLabel: x,
|
|
220
225
|
errorTitle: F,
|
|
221
226
|
errorDescId: P,
|
|
@@ -248,7 +253,7 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
248
253
|
});
|
|
249
254
|
}, Z = /* @__PURE__ */ function(e) {
|
|
250
255
|
return e.Idle = "idle", e.Loading = "loading", e.Loaded = "loaded", e.Error = "error", e;
|
|
251
|
-
}({}),
|
|
256
|
+
}({}), Ae = ({ enabled: e, src: t }) => {
|
|
252
257
|
let n = u(null), [r, i] = d("idle");
|
|
253
258
|
return s(() => {
|
|
254
259
|
i(e && t ? "loading" : "idle");
|
|
@@ -263,15 +268,15 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
263
268
|
imageRef: n,
|
|
264
269
|
imageLoadStatus: r
|
|
265
270
|
};
|
|
266
|
-
},
|
|
267
|
-
let { clickLabel: f = "Open attachment", expandLabel: p = "Expand pasted text" } = i ?? {}, { className: m } = u ?? {}, { id: h, name: g } = e, _ = e.previewUrl ?? e.url, v = e.type === t.Pasted && n !== void 0, { isLoading: y, isError: b, isImage: x } = l(() => J(e), [e]), S = r !== void 0 && !v && !y && !b, { imageRef: C, imageLoadStatus: w } =
|
|
271
|
+
}, je = ({ attachment: e, onExpand: n, onClick: r, labels: i, onRemove: o, cssVars: s, onDownload: c, styles: u, isSelected: d }) => {
|
|
272
|
+
let { clickLabel: f = "Open attachment", expandLabel: p = "Expand pasted text" } = i ?? {}, { className: m } = u ?? {}, { id: h, name: g } = e, _ = e.previewUrl ?? e.url, v = e.type === t.Pasted && n !== void 0, { isLoading: y, isError: b, isImage: x } = l(() => J(e), [e]), S = r !== void 0 && !v && !y && !b, { imageRef: C, imageLoadStatus: w } = Ae({
|
|
268
273
|
enabled: x,
|
|
269
274
|
src: _
|
|
270
275
|
}), T = () => {
|
|
271
276
|
v && n ? n(h) : S && r && r(h);
|
|
272
277
|
};
|
|
273
278
|
return /* @__PURE__ */ G("div", {
|
|
274
|
-
className: a(
|
|
279
|
+
className: a(Ce, "group/attachment-tile", S && "cursor-pointer", Y.tile, d && Y.selected, m),
|
|
275
280
|
onClick: T,
|
|
276
281
|
onKeyDown: (e) => {
|
|
277
282
|
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), T());
|
|
@@ -283,12 +288,12 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
283
288
|
children: /* @__PURE__ */ K("div", {
|
|
284
289
|
className: "relative h-full w-full overflow-hidden",
|
|
285
290
|
children: [
|
|
286
|
-
o && /* @__PURE__ */ G(
|
|
291
|
+
o && /* @__PURE__ */ G(De, {
|
|
287
292
|
onClick: o,
|
|
288
293
|
id: h,
|
|
289
294
|
className: Y.imageActionButton
|
|
290
295
|
}),
|
|
291
|
-
c && /* @__PURE__ */ G(
|
|
296
|
+
c && /* @__PURE__ */ G(Te, {
|
|
292
297
|
onClick: c,
|
|
293
298
|
id: h,
|
|
294
299
|
className: Y.imageActionButton
|
|
@@ -335,7 +340,7 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
335
340
|
"--ai-tile-hover-icon-color": p?.hoverIconColor,
|
|
336
341
|
"--ai-tile-progress-track": p?.trackBackground
|
|
337
342
|
}), { isImage: _, isLink: v } = l(() => J(e), [e]);
|
|
338
|
-
return _ ? /* @__PURE__ */ G(
|
|
343
|
+
return _ ? /* @__PURE__ */ G(je, {
|
|
339
344
|
attachment: e,
|
|
340
345
|
labels: u,
|
|
341
346
|
onClick: s,
|
|
@@ -345,7 +350,7 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
345
350
|
cssVars: g,
|
|
346
351
|
onDownload: c,
|
|
347
352
|
isSelected: f
|
|
348
|
-
}) : /* @__PURE__ */ G(
|
|
353
|
+
}) : /* @__PURE__ */ G(ke, {
|
|
349
354
|
attachment: e,
|
|
350
355
|
searchQuery: n,
|
|
351
356
|
onClick: s,
|
|
@@ -361,7 +366,7 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
361
366
|
isExpandable: h,
|
|
362
367
|
isSelected: f
|
|
363
368
|
});
|
|
364
|
-
},
|
|
369
|
+
}, Me = ({ attachments: e, onRemove: t, onRetry: n, onExpand: r, onAttachmentClick: i, labels: o, styles: s }) => {
|
|
365
370
|
let { ariaLabel: c = "Attached files", removeLabel: l, retryLabel: u, clickLabel: d } = o ?? {}, { className: f } = s ?? {};
|
|
366
371
|
return e.length === 0 ? null : /* @__PURE__ */ G("div", {
|
|
367
372
|
role: "list",
|
|
@@ -386,8 +391,8 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
386
391
|
}, $ = {
|
|
387
392
|
headerIcon: "_headerIcon_1dmgi_1",
|
|
388
393
|
headerLabel: "_headerLabel_1dmgi_2"
|
|
389
|
-
},
|
|
390
|
-
let { ariaLabel: d = "Attachments", clickLabel: f = "Download attachment", retryLabel: m = "Retry upload", downloadAllLabel: g = "Download all", openInNewTabLabel: _, getHeaderLabel: v = (e) =>
|
|
394
|
+
}, Ne = (e, t) => `${e} ${t}${e === 1 ? "" : "s"}`, Pe = ({ attachments: e, onAttachmentClick: n, onDownloadAll: o, onRetry: s, labels: c, styles: l, selectedAttachmentId: u }) => {
|
|
395
|
+
let { ariaLabel: d = "Attachments", clickLabel: f = "Download attachment", retryLabel: m = "Retry upload", downloadAllLabel: g = "Download all", openInNewTabLabel: _, getHeaderLabel: v = (e) => Ne(e, "attachment"), promptLabel: y, pastedLabel: b, imageLabel: x } = c ?? {}, { typography: S, colors: C, className: w } = l ?? {}, T = i({ "--ai-group-text": C?.text });
|
|
391
396
|
if (e.length === 0) return null;
|
|
392
397
|
let E = e.some((e) => e.type === t.Image), D = e.some((e) => e.type !== t.Image), O = E && D, k = e.length >= 5, A = O ? V : E ? H : h, j = v(e.length), M = () => {
|
|
393
398
|
let t = e.filter((e) => e.status === r.Idle);
|
|
@@ -447,24 +452,24 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
447
452
|
}, `${e.id}-${t}`))
|
|
448
453
|
})]
|
|
449
454
|
});
|
|
450
|
-
},
|
|
455
|
+
}, Fe = {
|
|
451
456
|
overlay: "_overlay_mzpdp_1",
|
|
452
457
|
icon: "_icon_mzpdp_5",
|
|
453
458
|
deniedIcon: "_deniedIcon_mzpdp_9"
|
|
454
|
-
},
|
|
459
|
+
}, Ie = ({ isVisible: e, isAttachmentsAllowed: t = !0, labels: n, styles: r }) => {
|
|
455
460
|
let { title: o, subtitle: s } = n ?? {}, { colors: c, typography: l } = r ?? {};
|
|
456
461
|
if (!e) return null;
|
|
457
462
|
let u = i({
|
|
458
463
|
"--ai-fd-bg": c?.background,
|
|
459
464
|
"--ai-fd-icon": c?.icon,
|
|
460
465
|
"--ai-fd-denied-icon": c?.deniedIcon
|
|
461
|
-
}), d = o ?? (t ? "Attach files" : "No attachments allowed"), f = s ?? (t ? "Drop files here to attach them to message" : "Attachments can't be added to message"), p = t ?
|
|
466
|
+
}), d = o ?? (t ? "Attach files" : "No attachments allowed"), f = s ?? (t ? "Drop files here to attach them to message" : "Attachments can't be added to message"), p = t ? Fe.icon : Fe.deniedIcon, m = (e) => {
|
|
462
467
|
e.preventDefault();
|
|
463
468
|
}, h = t ? g : B;
|
|
464
469
|
return /* @__PURE__ */ G("div", {
|
|
465
470
|
role: "status",
|
|
466
471
|
"aria-live": "polite",
|
|
467
|
-
className: a("fixed inset-0 z-[9999] flex items-center justify-center backdrop-blur-sm",
|
|
472
|
+
className: a("fixed inset-0 z-[9999] flex items-center justify-center backdrop-blur-sm", Fe.overlay, t ? "pointer-events-none" : "pointer-events-auto cursor-not-allowed"),
|
|
468
473
|
onDragOver: t ? void 0 : m,
|
|
469
474
|
onDrop: t ? void 0 : m,
|
|
470
475
|
style: u,
|
|
@@ -487,7 +492,7 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
487
492
|
]
|
|
488
493
|
})
|
|
489
494
|
});
|
|
490
|
-
},
|
|
495
|
+
}, Le = (e, n, i = {}) => {
|
|
491
496
|
let { screenshotName: a = "Screenshot.png", pastedTextName: s = "Pasted text" } = i;
|
|
492
497
|
return { handlePaste: o((i) => {
|
|
493
498
|
if (!i.clipboardData) return;
|
|
@@ -529,6 +534,6 @@ var q = () => `${Date.now()}-${Math.random().toString(36).slice(2)}`, pe = (e) =
|
|
|
529
534
|
a,
|
|
530
535
|
s
|
|
531
536
|
]) };
|
|
532
|
-
},
|
|
537
|
+
}, Re = 100;
|
|
533
538
|
//#endregion
|
|
534
|
-
export {
|
|
539
|
+
export { Se as ATTACHMENT_COLLAPSE_THRESHOLD, Q as AttachmentCard, Pe as AttachmentGroup, Me as AttachmentTray, Ie as FileDndOverlay, Z as LazyImageLoadStatus, Re as MAX_UPLOADS_PER_MINUTE, q as generateAttachmentId, J as getAttachmentCardState, ve as getAttachmentIcon, be as getExtFromContentType, pe as getNameWithoutExtension, _e as isMimeTypeAllowed, ge as mimeTypesToExtensionLabels, Le as useClipboardPaste, Ae as useLazyImageLoad };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/ai-dial-attachment-input",
|
|
3
3
|
"description": "File attachment input components with upload validation, drag-and-drop, and progress tracking",
|
|
4
|
-
"version": "1.1.0-dev.
|
|
4
|
+
"version": "1.1.0-dev.336",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./index.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@epam/ai-dial-chat-shared": "1.1.0-dev.
|
|
20
|
+
"@epam/ai-dial-chat-shared": "1.1.0-dev.336",
|
|
21
21
|
"@tabler/icons-react": "^3.44.0",
|
|
22
22
|
"react": "^19.0.0",
|
|
23
23
|
"@epam/ai-dial-ui-kit": "^0.14.0-dev.15"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/utils/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAMnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAgChD,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,QAAO,MACgB,CAAC;AAEzD,4GAA4G;AAC5G,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,MAItD,CAAC;
|
|
1
|
+
{"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../../src/utils/attachment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAMnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAgChD,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AAEnC,uDAAuD;AACvD,eAAO,MAAM,oBAAoB,QAAO,MACgB,CAAC;AAEzD,4GAA4G;AAC5G,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,KAAG,MAItD,CAAC;AAcF,uHAAuH;AACvH,eAAO,MAAM,0BAA0B,GACrC,OAAO,MAAM,EAAE,EACf,iBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAwB,KAC5D,MAeF,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,UAAU,MAAM,EAChB,cAAc,MAAM,EAAE,KACrB,OAUF,CAAC;AAEF,wGAAwG;AACxG,eAAO,MAAM,iBAAiB,GAAI,aAAa,MAAM,KAAG,IA0FvD,CAAC;AAUF,4GAA4G;AAC5G,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,KAClB,MAAM,GAAG,SAUX,CAAC;AA6BF,qHAAqH;AACrH,eAAO,MAAM,sBAAsB,GACjC,YAAY,iBAAiB,EAC7B,aAAY,oBAAyB,KACpC,mBAiBF,CAAC"}
|