@aleph-alpha/chat-kit 2.2.0 → 2.3.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.
- package/dist/{CkInput.vue_vue_type_script_setup_true_lang-CjfKRuZs.js → CkInput.vue_vue_type_script_setup_true_lang-DYTizPsB.js} +74 -15
- package/dist/components/base/CkFileItemsList/CkFileItemsList.stories.d.ts +7 -0
- package/dist/components/base/CkFileItemsList/CkFileItemsList.stories.d.ts.map +1 -1
- package/dist/components/base/CkFileItemsList/CkFileItemsList.vue.d.ts +1 -0
- package/dist/components/base/CkFileItemsList/CkFileItemsList.vue.d.ts.map +1 -1
- package/dist/components/base/CkFileItemsList/types.d.ts +9 -0
- package/dist/components/base/CkFileItemsList/types.d.ts.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/composables/fileUpload/types.d.ts +1 -1
- package/dist/composables/fileUpload/types.d.ts.map +1 -1
- package/dist/composables/fileUpload/useFileUpload.d.ts.map +1 -1
- package/dist/composables/index.js +1 -1
- package/dist/{index-CfXEGjc7.js → index-THzZwfMU.js} +6 -4
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/src/components/base/CkFileItemsList/CkFileItemsList.spec.ts +67 -0
- package/src/components/base/CkFileItemsList/CkFileItemsList.stories.ts +48 -0
- package/src/components/base/CkFileItemsList/CkFileItemsList.vue +78 -4
- package/src/components/base/CkFileItemsList/types.ts +9 -0
- package/src/composables/fileUpload/types.ts +1 -1
- package/src/composables/fileUpload/useFileUpload.spec.ts +26 -0
- package/src/composables/fileUpload/useFileUpload.ts +12 -3
- package/src/composables/fileUpload/useFileUploadWrapper.ts +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, openBlock, createElementBlock, createElementVNode, renderSlot, createCommentVNode, ref, onMounted, nextTick, onUnmounted, watch, Fragment, renderList, normalizeStyle, createBlock, unref, mergeProps, withCtx, createVNode, Transition, toDisplayString, createStaticVNode, computed, onBeforeUnmount, Teleport, withModifiers, normalizeClass, toRefs, h, useId, createTextVNode, useAttrs, useSlots, resolveDynamicComponent, useTemplateRef, createSlots, normalizeProps, guardReactiveProps } from "vue";
|
|
2
2
|
import { u as useChatKitLabels, d as defaultChatKitLabels, a as useMarkdownParser } from "./useChatKitLabels-ZutacPad.js";
|
|
3
|
-
import { UiButton, UiTooltip, UiIcon, UiDialog, UiDialogContent, UiDialogDescription, UiFieldLabel, UiToggleGroup, UiToggleGroupItem, UiField, UiTextarea, UiFileItem, UiPopover, UiPopoverTrigger, UiFileType, UiPopoverContent, Primitive, UiAvatar, UiAvatarImage, UiSpinner, UiAvatarFallback, UiSidebarPopoverMenu, UiSidebarPopoverMenuItem } from "@aleph-alpha/ui-library";
|
|
3
|
+
import { UiButton, UiTooltip, UiIcon, UiDialog, UiDialogContent, UiDialogDescription, UiFieldLabel, UiToggleGroup, UiToggleGroupItem, UiField, UiTextarea, UiFileItem, UiPopover, UiPopoverTrigger, UiFileType, UiProgress, UiPopoverContent, Primitive, UiAvatar, UiAvatarImage, UiSpinner, UiAvatarFallback, UiSidebarPopoverMenu, UiSidebarPopoverMenuItem } from "@aleph-alpha/ui-library";
|
|
4
4
|
const MINUTE = 60;
|
|
5
5
|
const HOUR = 60 * MINUTE;
|
|
6
6
|
const DAY = 24 * HOUR;
|
|
@@ -96,7 +96,7 @@ const _hoisted_4$6 = {
|
|
|
96
96
|
class: "body-14-regular text-content-on-surface-muted min-w-0 flex-1 [word-break:break-word]"
|
|
97
97
|
};
|
|
98
98
|
const _hoisted_5$5 = { class: "text-content-on-surface-primary text-base leading-7" };
|
|
99
|
-
const _hoisted_6$
|
|
99
|
+
const _hoisted_6$4 = {
|
|
100
100
|
key: 1,
|
|
101
101
|
class: "flex items-center gap-4"
|
|
102
102
|
};
|
|
@@ -117,7 +117,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
|
|
|
117
117
|
createElementVNode("div", _hoisted_5$5, [
|
|
118
118
|
renderSlot(_ctx.$slots, "default")
|
|
119
119
|
]),
|
|
120
|
-
_ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_6$
|
|
120
|
+
_ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_6$4, [
|
|
121
121
|
renderSlot(_ctx.$slots, "footer")
|
|
122
122
|
])) : createCommentVNode("", true)
|
|
123
123
|
]);
|
|
@@ -444,7 +444,7 @@ const _hoisted_5$4 = {
|
|
|
444
444
|
key: 0,
|
|
445
445
|
class: "body-16-regular"
|
|
446
446
|
};
|
|
447
|
-
const _hoisted_6$
|
|
447
|
+
const _hoisted_6$3 = {
|
|
448
448
|
key: 0,
|
|
449
449
|
"data-slot": "drop-zone-errors",
|
|
450
450
|
class: "pointer-events-none fixed bottom-6 left-1/2 z-50 max-w-[36rem] -translate-x-1/2 flex list-inside list-disc flex-col gap-1 rounded-md border border-border-surface-default bg-background-surface-default p-3 text-sm text-content-on-surface-secondary",
|
|
@@ -631,7 +631,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
|
631
631
|
}),
|
|
632
632
|
createVNode(Transition, { name: "ck-drop-overlay" }, {
|
|
633
633
|
default: withCtx(() => [
|
|
634
|
-
__props.showErrors && errors.value.length ? (openBlock(), createElementBlock("ul", _hoisted_6$
|
|
634
|
+
__props.showErrors && errors.value.length ? (openBlock(), createElementBlock("ul", _hoisted_6$3, [
|
|
635
635
|
(openBlock(true), createElementBlock(Fragment, null, renderList(errors.value, (msg, i) => {
|
|
636
636
|
return openBlock(), createElementBlock("li", { key: i }, toDisplayString(msg), 1);
|
|
637
637
|
}), 128))
|
|
@@ -1113,8 +1113,20 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
1113
1113
|
const _hoisted_1$5 = ["aria-label"];
|
|
1114
1114
|
const _hoisted_2$4 = ["onClick"];
|
|
1115
1115
|
const _hoisted_3$3 = ["disabled", "aria-label"];
|
|
1116
|
-
const _hoisted_4$3 =
|
|
1117
|
-
|
|
1116
|
+
const _hoisted_4$3 = {
|
|
1117
|
+
key: 3,
|
|
1118
|
+
class: "flex min-w-0 flex-1 flex-col items-start gap-0.5"
|
|
1119
|
+
};
|
|
1120
|
+
const _hoisted_5$3 = {
|
|
1121
|
+
key: 1,
|
|
1122
|
+
class: "label-12-medium w-full truncate text-content-on-status-error-inverse"
|
|
1123
|
+
};
|
|
1124
|
+
const _hoisted_6$2 = {
|
|
1125
|
+
key: 2,
|
|
1126
|
+
class: "label-12-medium w-full truncate text-content-on-surface-muted"
|
|
1127
|
+
};
|
|
1128
|
+
const _hoisted_7$2 = ["aria-label"];
|
|
1129
|
+
const _hoisted_8$1 = ["onClick"];
|
|
1118
1130
|
const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
1119
1131
|
...{
|
|
1120
1132
|
name: "CkFileItemsList"
|
|
@@ -1127,6 +1139,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
1127
1139
|
isRemovable: { type: Boolean, default: false },
|
|
1128
1140
|
removeLabel: { default: "Remove file" },
|
|
1129
1141
|
disabled: { type: Boolean, default: false },
|
|
1142
|
+
showStatus: { type: Boolean, default: false },
|
|
1130
1143
|
triggerLabel: { default: void 0 },
|
|
1131
1144
|
triggerAriaLabel: { default: void 0 },
|
|
1132
1145
|
listLabel: { default: void 0 },
|
|
@@ -1145,9 +1158,40 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
1145
1158
|
const resolvedTriggerLabel = computed(
|
|
1146
1159
|
() => props.triggerLabel ?? defaultTriggerLabel.value
|
|
1147
1160
|
);
|
|
1148
|
-
|
|
1149
|
-
|
|
1161
|
+
function hasError(file) {
|
|
1162
|
+
return file.error != null && file.error !== "";
|
|
1163
|
+
}
|
|
1164
|
+
const failedFiles = computed(() => props.files.filter(hasError));
|
|
1165
|
+
const uploadingFiles = computed(
|
|
1166
|
+
() => props.files.filter(
|
|
1167
|
+
(f) => !hasError(f) && f.progress != null && f.progress < 100
|
|
1168
|
+
)
|
|
1150
1169
|
);
|
|
1170
|
+
const hasFailures = computed(() => failedFiles.value.length > 0);
|
|
1171
|
+
const uploadInProgress = computed(() => uploadingFiles.value.length > 0);
|
|
1172
|
+
const aggregateProgress = computed(() => {
|
|
1173
|
+
const list = uploadingFiles.value;
|
|
1174
|
+
if (!list.length) return 0;
|
|
1175
|
+
const total = list.reduce((sum, f) => sum + (f.progress ?? 0), 0);
|
|
1176
|
+
return Math.round(total / list.length);
|
|
1177
|
+
});
|
|
1178
|
+
const failedStatusLabel = computed(() => {
|
|
1179
|
+
const n = failedFiles.value.length;
|
|
1180
|
+
return `${n} ${n === 1 ? "upload" : "uploads"} failed`;
|
|
1181
|
+
});
|
|
1182
|
+
const countStatusLabel = computed(() => `${props.files.length} files`);
|
|
1183
|
+
const triggerStatusText = computed(() => {
|
|
1184
|
+
if (!props.showStatus) return "";
|
|
1185
|
+
if (uploadInProgress.value) return `uploading ${aggregateProgress.value}%`;
|
|
1186
|
+
if (hasFailures.value) return failedStatusLabel.value;
|
|
1187
|
+
if (props.triggerLabel) return countStatusLabel.value;
|
|
1188
|
+
return "";
|
|
1189
|
+
});
|
|
1190
|
+
const resolvedTriggerAriaLabel = computed(() => {
|
|
1191
|
+
if (props.triggerAriaLabel) return props.triggerAriaLabel;
|
|
1192
|
+
const base = props.triggerLabel ?? defaultTriggerLabel.value;
|
|
1193
|
+
return triggerStatusText.value ? `${base}, ${triggerStatusText.value}` : base;
|
|
1194
|
+
});
|
|
1151
1195
|
function handleRemove(file) {
|
|
1152
1196
|
if (isRowDisabled(file)) return;
|
|
1153
1197
|
emit("remove", file.id);
|
|
@@ -1202,13 +1246,28 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
1202
1246
|
class: normalizeClass(["relative flex w-full max-w-64 min-w-0 items-center gap-3 rounded-xl bg-background-surface-muted-subtle text-left transition-colors hover:bg-background-surface-muted focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-border-focus disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:bg-background-surface-muted-subtle", __props.size === "small" ? "p-2" : "p-3"]),
|
|
1203
1247
|
"aria-label": resolvedTriggerAriaLabel.value
|
|
1204
1248
|
}, [
|
|
1205
|
-
|
|
1249
|
+
__props.showStatus && hasFailures.value && !uploadInProgress.value ? (openBlock(), createBlock(unref(UiFileType), {
|
|
1250
|
+
key: 0,
|
|
1251
|
+
error: true
|
|
1252
|
+
})) : (openBlock(), createBlock(unref(UiFileType), {
|
|
1253
|
+
key: 1,
|
|
1206
1254
|
icon: "paperclip",
|
|
1207
1255
|
tone: "default"
|
|
1208
|
-
}),
|
|
1209
|
-
|
|
1256
|
+
})),
|
|
1257
|
+
!__props.showStatus ? (openBlock(), createElementBlock("span", {
|
|
1258
|
+
key: 2,
|
|
1210
1259
|
class: normalizeClass(["min-w-0 flex-1 truncate text-content-on-surface-primary", __props.size === "small" ? "label-12-medium" : "body-14-medium"])
|
|
1211
|
-
}, toDisplayString(resolvedTriggerLabel.value), 3),
|
|
1260
|
+
}, toDisplayString(resolvedTriggerLabel.value), 3)) : (openBlock(), createElementBlock("div", _hoisted_4$3, [
|
|
1261
|
+
createElementVNode("span", {
|
|
1262
|
+
class: normalizeClass(["w-full truncate text-content-on-surface-primary", __props.size === "small" ? "label-12-medium" : "body-14-medium"])
|
|
1263
|
+
}, toDisplayString(resolvedTriggerLabel.value), 3),
|
|
1264
|
+
uploadInProgress.value ? (openBlock(), createBlock(unref(UiProgress), {
|
|
1265
|
+
key: 0,
|
|
1266
|
+
"model-value": aggregateProgress.value,
|
|
1267
|
+
class: "h-1 w-full",
|
|
1268
|
+
"aria-label": `${resolvedTriggerLabel.value} upload progress`
|
|
1269
|
+
}, null, 8, ["model-value", "aria-label"])) : hasFailures.value ? (openBlock(), createElementBlock("span", _hoisted_5$3, toDisplayString(failedStatusLabel.value), 1)) : __props.triggerLabel ? (openBlock(), createElementBlock("span", _hoisted_6$2, toDisplayString(countStatusLabel.value), 1)) : createCommentVNode("", true)
|
|
1270
|
+
])),
|
|
1212
1271
|
createVNode(unref(UiIcon), {
|
|
1213
1272
|
name: "chevron-down",
|
|
1214
1273
|
size: 16,
|
|
@@ -1249,9 +1308,9 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
1249
1308
|
]),
|
|
1250
1309
|
_: 3
|
|
1251
1310
|
}, 8, ["file", "size", "is-removable", "remove-label", "disabled", "onRemove"])
|
|
1252
|
-
], 8,
|
|
1311
|
+
], 8, _hoisted_8$1);
|
|
1253
1312
|
}), 128))
|
|
1254
|
-
], 8,
|
|
1313
|
+
], 8, _hoisted_7$2)
|
|
1255
1314
|
]),
|
|
1256
1315
|
_: 3
|
|
1257
1316
|
}, 8, ["class"])
|
|
@@ -13,6 +13,13 @@ export declare const Inline: Story;
|
|
|
13
13
|
* popover trigger. Click it to reveal the full vertical list of files.
|
|
14
14
|
*/
|
|
15
15
|
export declare const Collapsed: Story;
|
|
16
|
+
/**
|
|
17
|
+
* With `show-status`, the collapsed trigger becomes a two-line summary derived
|
|
18
|
+
* from each entry's `progress`/`error`: an aggregate progress bar while
|
|
19
|
+
* uploading, an "N uploads failed" line (error tone) once any entry fails, and
|
|
20
|
+
* otherwise an "N files" count. Open the popover to see the per-file rows.
|
|
21
|
+
*/
|
|
22
|
+
export declare const UploadStatus: Story;
|
|
16
23
|
/**
|
|
17
24
|
* Each row exposes a remove control when `isRemovable` is `true`. The component
|
|
18
25
|
* emits `remove` with the corresponding file `id`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkFileItemsList.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/CkFileItemsList.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAGpD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,eAAe,CAoBtC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,eAAe,CAAC,CAAC;AAqE9C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,KAWpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAWvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAiBvB,CAAC;AAsBF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAoBxB,CAAC;AAmBF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,KAwBvB,CAAC;AAiBF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KAiCtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"CkFileItemsList.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/CkFileItemsList.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,eAAe,MAAM,uBAAuB,CAAC;AAGpD,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,eAAe,CAoBtC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,eAAe,CAAC,CAAC;AAqE9C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,KAWpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAWvB,CAAC;AAqBF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,KAqB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,KAiBvB,CAAC;AAsBF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAoBxB,CAAC;AAmBF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,KAwBvB,CAAC;AAiBF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KAiCtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CkFileItemsList.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/CkFileItemsList.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CkFileItemsList.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/CkFileItemsList.vue"],"names":[],"mappings":"AAqPA,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EACV,WAAW,EAEX,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAyBjB,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,CAAC,KAAK,EAAE;QACZ,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,IAAI,EAAE,cAAc,CAAC;QACrB,WAAW,EAAE,OAAO,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;KACnB,KAAK,OAAO,CAAC;CACf,CAAC;AA6cF,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -41,6 +41,15 @@ export interface CkFileItemsListProps {
|
|
|
41
41
|
removeLabel?: string;
|
|
42
42
|
/** Disable every row + the collapsed trigger. @default false */
|
|
43
43
|
disabled?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Render a two-line collapsed trigger that summarises upload state derived
|
|
46
|
+
* from each entry's `progress`/`error`: an aggregate progress bar while any
|
|
47
|
+
* entry is uploading, an "N uploads failed" line (error tone) once any entry
|
|
48
|
+
* fails, otherwise an "N files" count (shown only when an explicit
|
|
49
|
+
* `triggerLabel` is set). Off by default so static lists keep the original
|
|
50
|
+
* single-line trigger. @default false
|
|
51
|
+
*/
|
|
52
|
+
showStatus?: boolean;
|
|
44
53
|
/** Visible label on the collapsed trigger. Defaults to `"{n} files"`. */
|
|
45
54
|
triggerLabel?: string;
|
|
46
55
|
/** A11y label for the trigger. Falls back to `triggerLabel`, then count. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3E"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/base/CkFileItemsList/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,2CAA2C;IAC3C,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,8DAA8D;IAC9D,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3E"}
|
package/dist/components/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _, a, b, C, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t } from "../CkInput.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
import { _, a, b, C, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t } from "../CkInput.vue_vue_type_script_setup_true_lang-DYTizPsB.js";
|
|
2
2
|
export {
|
|
3
3
|
_ as CkAgentMessage,
|
|
4
4
|
a as CkConversation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/composables/fileUpload/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/composables/fileUpload/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFileUpload.d.ts","sourceRoot":"","sources":["../../../src/composables/fileUpload/useFileUpload.ts"],"names":[],"mappings":"AACA,OAAO,EAkBL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAKzB,MAAM,SAAS,CAAC;AAEjB,cAAc,SAAS,CAAC;AAybxB,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB,GAC5B,mBAAmB,
|
|
1
|
+
{"version":3,"file":"useFileUpload.d.ts","sourceRoot":"","sources":["../../../src/composables/fileUpload/useFileUpload.ts"],"names":[],"mappings":"AACA,OAAO,EAkBL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAKzB,MAAM,SAAS,CAAC;AAEjB,cAAc,SAAS,CAAC;AAybxB,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB,GAC5B,mBAAmB,CAozBrB"}
|
|
@@ -1087,6 +1087,7 @@ function useFileUpload(options) {
|
|
|
1087
1087
|
} catch {
|
|
1088
1088
|
data = {};
|
|
1089
1089
|
}
|
|
1090
|
+
const isFailure = data.status === "failed" || data.status === "error" || event.event === "error";
|
|
1090
1091
|
const runEvent = {
|
|
1091
1092
|
id: data.id ?? "",
|
|
1092
1093
|
status: data.status ?? event.event
|
|
@@ -1100,16 +1101,17 @@ function useFileUpload(options) {
|
|
|
1100
1101
|
Array.isArray(data.documents) ? data.documents : []
|
|
1101
1102
|
);
|
|
1102
1103
|
emit({ type: "workflow:completed", runId });
|
|
1103
|
-
} else if (
|
|
1104
|
+
} else if (isFailure) {
|
|
1104
1105
|
workflowRun.value.status = "failed";
|
|
1105
1106
|
workflowRun.value.completedAt = now();
|
|
1107
|
+
const message = typeof data.error === "string" && data.error.trim() || `Workflow run ${runId} failed.`;
|
|
1106
1108
|
workflowRun.value.error = {
|
|
1107
1109
|
code: "WORKFLOW_RUN_FAILED",
|
|
1108
|
-
message
|
|
1110
|
+
message
|
|
1109
1111
|
};
|
|
1110
1112
|
const workflowErr = {
|
|
1111
1113
|
code: "UPLOAD_FAILED",
|
|
1112
|
-
message
|
|
1114
|
+
message,
|
|
1113
1115
|
occurredAt: now()
|
|
1114
1116
|
};
|
|
1115
1117
|
for (const key of involvedStateKeys) {
|
|
@@ -1333,7 +1335,7 @@ function createDocumentUploadProvider(config) {
|
|
|
1333
1335
|
maxFilesPerUpload
|
|
1334
1336
|
} = config;
|
|
1335
1337
|
const defaultHeaders = {
|
|
1336
|
-
"x-user-id": userId,
|
|
1338
|
+
...userId ? { "x-user-id": userId } : {},
|
|
1337
1339
|
...config.headers ?? {}
|
|
1338
1340
|
};
|
|
1339
1341
|
const httpClient = buildHttpClient(baseUrl, defaultHeaders);
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { u } from "./useMessageHandler-CMdy-lm0.js";
|
|
2
2
|
import { C, d, p, u as u2, a } from "./useChatKitLabels-ZutacPad.js";
|
|
3
|
-
import { S, c, d as d2, a as a2, u as u3, b, e, f } from "./index-
|
|
4
|
-
import { _, a as a3, b as b2, C as C2, c as c2, d as d3, e as e2, f as f2, g, h, i, j, k, l, m, n, o, p as p2, q, r, s, t, u as u4 } from "./CkInput.vue_vue_type_script_setup_true_lang-
|
|
3
|
+
import { S, c, d as d2, a as a2, u as u3, b, e, f } from "./index-THzZwfMU.js";
|
|
4
|
+
import { _, a as a3, b as b2, C as C2, c as c2, d as d3, e as e2, f as f2, g, h, i, j, k, l, m, n, o, p as p2, q, r, s, t, u as u4 } from "./CkInput.vue_vue_type_script_setup_true_lang-DYTizPsB.js";
|
|
5
5
|
export {
|
|
6
6
|
C as CHAT_KIT_LABELS,
|
|
7
7
|
_ as CkAgentMessage,
|
package/package.json
CHANGED
|
@@ -41,6 +41,73 @@ describe('CkFileItemsList', () => {
|
|
|
41
41
|
expect(screen.getByRole('button')).toHaveTextContent('+1 more attachment');
|
|
42
42
|
});
|
|
43
43
|
|
|
44
|
+
it('keeps a single-line trigger (no count subtitle) when showStatus is off', () => {
|
|
45
|
+
render(CkFileItemsList, {
|
|
46
|
+
props: { files, triggerLabel: 'Uploaded documents' },
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const trigger = screen.getByRole('button');
|
|
50
|
+
expect(trigger).toHaveTextContent('Uploaded documents');
|
|
51
|
+
expect(trigger).not.toHaveTextContent('4 files');
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
describe('showStatus summary on the collapsed trigger', () => {
|
|
55
|
+
it('summarises the number of failed uploads in an error line', () => {
|
|
56
|
+
const withFailures: CkFileEntry[] = [
|
|
57
|
+
{ id: 'a', filename: 'a.pdf', error: 'Upload failed' },
|
|
58
|
+
{ id: 'b', filename: 'b.md', error: 'Upload failed' },
|
|
59
|
+
{ id: 'c', filename: 'c.csv' },
|
|
60
|
+
{ id: 'd', filename: 'd.docx' },
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
render(CkFileItemsList, {
|
|
64
|
+
props: {
|
|
65
|
+
files: withFailures,
|
|
66
|
+
showStatus: true,
|
|
67
|
+
triggerLabel: 'Uploading documents',
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
const trigger = screen.getByRole('button', {
|
|
72
|
+
name: /Uploading documents, 2 uploads failed/i,
|
|
73
|
+
});
|
|
74
|
+
expect(trigger).toHaveTextContent('2 uploads failed');
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('renders an aggregate progress bar while files are uploading', () => {
|
|
78
|
+
const uploading: CkFileEntry[] = [
|
|
79
|
+
{ id: 'a', filename: 'a.pdf', progress: 20 },
|
|
80
|
+
{ id: 'b', filename: 'b.md', progress: 60 },
|
|
81
|
+
{ id: 'c', filename: 'c.csv', progress: 40 },
|
|
82
|
+
{ id: 'd', filename: 'd.docx', progress: 80 },
|
|
83
|
+
];
|
|
84
|
+
|
|
85
|
+
const { container } = render(CkFileItemsList, {
|
|
86
|
+
props: {
|
|
87
|
+
files: uploading,
|
|
88
|
+
showStatus: true,
|
|
89
|
+
triggerLabel: 'Uploading documents',
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
expect(container.querySelector('[data-slot="progress"]')).toBeTruthy();
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it('shows the file count once all uploads succeed', () => {
|
|
97
|
+
render(CkFileItemsList, {
|
|
98
|
+
props: {
|
|
99
|
+
files,
|
|
100
|
+
showStatus: true,
|
|
101
|
+
triggerLabel: 'Uploaded documents',
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
const trigger = screen.getByRole('button');
|
|
106
|
+
expect(trigger).toHaveTextContent('Uploaded documents');
|
|
107
|
+
expect(trigger).toHaveTextContent('4 files');
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
|
|
44
111
|
it('emits remove with the file id from inline items', async () => {
|
|
45
112
|
const user = userEvent.setup();
|
|
46
113
|
const { emitted } = render(CkFileItemsList, {
|
|
@@ -130,6 +130,54 @@ export const Collapsed: Story = {
|
|
|
130
130
|
parameters: { docs: { source: { code: collapsedTemplateSource } } },
|
|
131
131
|
};
|
|
132
132
|
|
|
133
|
+
const uploadingFiles: CkFileEntry[] = [
|
|
134
|
+
{ id: 1, filename: 'project-proposal.pdf', typeLabel: 'PDF', progress: 35 },
|
|
135
|
+
{ id: 2, filename: 'meeting-notes.md', typeLabel: 'MD', progress: 70 },
|
|
136
|
+
{ id: 3, filename: 'q3-revenue.csv', typeLabel: 'CSV', progress: 50 },
|
|
137
|
+
{ id: 4, filename: 'design-spec.docx', typeLabel: 'DOCX', progress: 20 },
|
|
138
|
+
];
|
|
139
|
+
|
|
140
|
+
const failedFiles: CkFileEntry[] = [
|
|
141
|
+
{ id: 1, filename: 'project-proposal.pdf', error: 'Upload failed' },
|
|
142
|
+
{ id: 2, filename: 'meeting-notes.md', error: 'Upload failed' },
|
|
143
|
+
{ id: 3, filename: 'q3-revenue.csv', typeLabel: 'CSV', sizeLabel: '320 KB' },
|
|
144
|
+
{
|
|
145
|
+
id: 4,
|
|
146
|
+
filename: 'design-spec.docx',
|
|
147
|
+
typeLabel: 'DOCX',
|
|
148
|
+
sizeLabel: '880 KB',
|
|
149
|
+
},
|
|
150
|
+
];
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* With `show-status`, the collapsed trigger becomes a two-line summary derived
|
|
154
|
+
* from each entry's `progress`/`error`: an aggregate progress bar while
|
|
155
|
+
* uploading, an "N uploads failed" line (error tone) once any entry fails, and
|
|
156
|
+
* otherwise an "N files" count. Open the popover to see the per-file rows.
|
|
157
|
+
*/
|
|
158
|
+
export const UploadStatus: Story = {
|
|
159
|
+
render: () => ({
|
|
160
|
+
components: { CkFileItemsList },
|
|
161
|
+
setup: () => ({ uploadingFiles, failedFiles, doneFiles: overflowFiles }),
|
|
162
|
+
template: `
|
|
163
|
+
<div class="flex flex-col gap-6 bg-background-surface-primary p-4 w-[28rem]">
|
|
164
|
+
<div>
|
|
165
|
+
<p class="label-12-medium text-content-on-surface-muted mb-2">Uploading</p>
|
|
166
|
+
<CkFileItemsList :files="uploadingFiles" show-status trigger-label="Uploading documents" />
|
|
167
|
+
</div>
|
|
168
|
+
<div>
|
|
169
|
+
<p class="label-12-medium text-content-on-surface-muted mb-2">Some uploads failed</p>
|
|
170
|
+
<CkFileItemsList :files="failedFiles" show-status is-removable trigger-label="Uploading documents" />
|
|
171
|
+
</div>
|
|
172
|
+
<div>
|
|
173
|
+
<p class="label-12-medium text-content-on-surface-muted mb-2">All uploaded</p>
|
|
174
|
+
<CkFileItemsList :files="doneFiles" show-status trigger-label="Uploaded documents" />
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
`,
|
|
178
|
+
}),
|
|
179
|
+
};
|
|
180
|
+
|
|
133
181
|
/**
|
|
134
182
|
* Each row exposes a remove control when `isRemovable` is `true`. The component
|
|
135
183
|
* emits `remove` with the corresponding file `id`.
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
UiPopover,
|
|
6
6
|
UiPopoverContent,
|
|
7
7
|
UiPopoverTrigger,
|
|
8
|
+
UiProgress,
|
|
8
9
|
type UiFileItemSize,
|
|
9
10
|
} from '@aleph-alpha/ui-library';
|
|
10
11
|
import { computed, ref } from 'vue';
|
|
@@ -25,6 +26,7 @@ const props = withDefaults(defineProps<CkFileItemsListProps>(), {
|
|
|
25
26
|
isRemovable: false,
|
|
26
27
|
removeLabel: 'Remove file',
|
|
27
28
|
disabled: false,
|
|
29
|
+
showStatus: false,
|
|
28
30
|
triggerLabel: undefined,
|
|
29
31
|
triggerAriaLabel: undefined,
|
|
30
32
|
listLabel: undefined,
|
|
@@ -57,10 +59,49 @@ const defaultTriggerLabel = computed(() => `${props.files.length} files`);
|
|
|
57
59
|
const resolvedTriggerLabel = computed(
|
|
58
60
|
() => props.triggerLabel ?? defaultTriggerLabel.value,
|
|
59
61
|
);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
|
|
63
|
+
// --- upload status summary (only used when `showStatus` is set) ------------
|
|
64
|
+
|
|
65
|
+
function hasError(file: CkFileEntry): boolean {
|
|
66
|
+
return file.error != null && file.error !== '';
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const failedFiles = computed(() => props.files.filter(hasError));
|
|
70
|
+
const uploadingFiles = computed(() =>
|
|
71
|
+
props.files.filter(
|
|
72
|
+
(f) => !hasError(f) && f.progress != null && f.progress < 100,
|
|
73
|
+
),
|
|
63
74
|
);
|
|
75
|
+
const hasFailures = computed(() => failedFiles.value.length > 0);
|
|
76
|
+
const uploadInProgress = computed(() => uploadingFiles.value.length > 0);
|
|
77
|
+
|
|
78
|
+
const aggregateProgress = computed(() => {
|
|
79
|
+
const list = uploadingFiles.value;
|
|
80
|
+
if (!list.length) return 0;
|
|
81
|
+
const total = list.reduce((sum, f) => sum + (f.progress ?? 0), 0);
|
|
82
|
+
return Math.round(total / list.length);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
const failedStatusLabel = computed(() => {
|
|
86
|
+
const n = failedFiles.value.length;
|
|
87
|
+
return `${n} ${n === 1 ? 'upload' : 'uploads'} failed`;
|
|
88
|
+
});
|
|
89
|
+
const countStatusLabel = computed(() => `${props.files.length} files`);
|
|
90
|
+
|
|
91
|
+
/** Status portion appended to the trigger's accessible name. */
|
|
92
|
+
const triggerStatusText = computed(() => {
|
|
93
|
+
if (!props.showStatus) return '';
|
|
94
|
+
if (uploadInProgress.value) return `uploading ${aggregateProgress.value}%`;
|
|
95
|
+
if (hasFailures.value) return failedStatusLabel.value;
|
|
96
|
+
if (props.triggerLabel) return countStatusLabel.value;
|
|
97
|
+
return '';
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
const resolvedTriggerAriaLabel = computed(() => {
|
|
101
|
+
if (props.triggerAriaLabel) return props.triggerAriaLabel;
|
|
102
|
+
const base = props.triggerLabel ?? defaultTriggerLabel.value;
|
|
103
|
+
return triggerStatusText.value ? `${base}, ${triggerStatusText.value}` : base;
|
|
104
|
+
});
|
|
64
105
|
|
|
65
106
|
function handleRemove(file: CkFileEntry) {
|
|
66
107
|
if (isRowDisabled(file)) return;
|
|
@@ -116,13 +157,46 @@ function handleRowClick(file: CkFileEntry, event: MouseEvent) {
|
|
|
116
157
|
:class="size === 'small' ? 'p-2' : 'p-3'"
|
|
117
158
|
:aria-label="resolvedTriggerAriaLabel"
|
|
118
159
|
>
|
|
119
|
-
<UiFileType
|
|
160
|
+
<UiFileType
|
|
161
|
+
v-if="showStatus && hasFailures && !uploadInProgress"
|
|
162
|
+
:error="true"
|
|
163
|
+
/>
|
|
164
|
+
<UiFileType v-else icon="paperclip" tone="default" />
|
|
165
|
+
|
|
120
166
|
<span
|
|
167
|
+
v-if="!showStatus"
|
|
121
168
|
class="min-w-0 flex-1 truncate text-content-on-surface-primary"
|
|
122
169
|
:class="size === 'small' ? 'label-12-medium' : 'body-14-medium'"
|
|
123
170
|
>
|
|
124
171
|
{{ resolvedTriggerLabel }}
|
|
125
172
|
</span>
|
|
173
|
+
<div v-else class="flex min-w-0 flex-1 flex-col items-start gap-0.5">
|
|
174
|
+
<span
|
|
175
|
+
class="w-full truncate text-content-on-surface-primary"
|
|
176
|
+
:class="size === 'small' ? 'label-12-medium' : 'body-14-medium'"
|
|
177
|
+
>
|
|
178
|
+
{{ resolvedTriggerLabel }}
|
|
179
|
+
</span>
|
|
180
|
+
<UiProgress
|
|
181
|
+
v-if="uploadInProgress"
|
|
182
|
+
:model-value="aggregateProgress"
|
|
183
|
+
class="h-1 w-full"
|
|
184
|
+
:aria-label="`${resolvedTriggerLabel} upload progress`"
|
|
185
|
+
/>
|
|
186
|
+
<span
|
|
187
|
+
v-else-if="hasFailures"
|
|
188
|
+
class="label-12-medium w-full truncate text-content-on-status-error-inverse"
|
|
189
|
+
>
|
|
190
|
+
{{ failedStatusLabel }}
|
|
191
|
+
</span>
|
|
192
|
+
<span
|
|
193
|
+
v-else-if="triggerLabel"
|
|
194
|
+
class="label-12-medium w-full truncate text-content-on-surface-muted"
|
|
195
|
+
>
|
|
196
|
+
{{ countStatusLabel }}
|
|
197
|
+
</span>
|
|
198
|
+
</div>
|
|
199
|
+
|
|
126
200
|
<UiIcon
|
|
127
201
|
name="chevron-down"
|
|
128
202
|
:size="16"
|
|
@@ -46,6 +46,15 @@ export interface CkFileItemsListProps {
|
|
|
46
46
|
removeLabel?: string;
|
|
47
47
|
/** Disable every row + the collapsed trigger. @default false */
|
|
48
48
|
disabled?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Render a two-line collapsed trigger that summarises upload state derived
|
|
51
|
+
* from each entry's `progress`/`error`: an aggregate progress bar while any
|
|
52
|
+
* entry is uploading, an "N uploads failed" line (error tone) once any entry
|
|
53
|
+
* fails, otherwise an "N files" count (shown only when an explicit
|
|
54
|
+
* `triggerLabel` is set). Off by default so static lists keep the original
|
|
55
|
+
* single-line trigger. @default false
|
|
56
|
+
*/
|
|
57
|
+
showStatus?: boolean;
|
|
49
58
|
/** Visible label on the collapsed trigger. Defaults to `"{n} files"`. */
|
|
50
59
|
triggerLabel?: string;
|
|
51
60
|
/** A11y label for the trigger. Falls back to `triggerLabel`, then count. */
|
|
@@ -128,6 +128,32 @@ describe('useFileUpload runWorkflow', () => {
|
|
|
128
128
|
expect(upload.getFileState('key-1')?.status).toBe('success');
|
|
129
129
|
expect(upload.getFileState('key-1')?.metadata.documentId).toBeUndefined();
|
|
130
130
|
});
|
|
131
|
+
|
|
132
|
+
it('marks involved files failed on a bare SSE `error` event (no status field)', async () => {
|
|
133
|
+
const captured: { cb?: (event: SseEvent) => void } = {};
|
|
134
|
+
const events: string[] = [];
|
|
135
|
+
const upload = useFileUpload({
|
|
136
|
+
client: createMockClient(captured),
|
|
137
|
+
workflowId: 'wf',
|
|
138
|
+
storeId: 'ss-1',
|
|
139
|
+
onEvent: (e) => events.push(e.type),
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
upload.files.value.set('key-1', makeEntry('key-1', 'file-1'));
|
|
143
|
+
|
|
144
|
+
await upload.runWorkflow(['file-1']);
|
|
145
|
+
captured.cb!({
|
|
146
|
+
event: 'error',
|
|
147
|
+
data: JSON.stringify({ error: 'ActivityError: Activity task failed' }),
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
expect(upload.getFileState('key-1')?.status).toBe('failed');
|
|
151
|
+
expect(upload.getFileState('key-1')?.error?.message).toBe(
|
|
152
|
+
'ActivityError: Activity task failed',
|
|
153
|
+
);
|
|
154
|
+
expect(upload.workflowRun.value?.status).toBe('failed');
|
|
155
|
+
expect(events).toContain('workflow:failed');
|
|
156
|
+
});
|
|
131
157
|
});
|
|
132
158
|
|
|
133
159
|
describe('useFileUpload maxFilesPerUpload', () => {
|
|
@@ -1126,6 +1126,7 @@ export function useFileUpload(
|
|
|
1126
1126
|
let data: {
|
|
1127
1127
|
id?: string;
|
|
1128
1128
|
status?: string;
|
|
1129
|
+
error?: string;
|
|
1129
1130
|
documents?: Array<{ document_id?: string; file_id?: string }>;
|
|
1130
1131
|
};
|
|
1131
1132
|
try {
|
|
@@ -1134,6 +1135,11 @@ export function useFileUpload(
|
|
|
1134
1135
|
data = {};
|
|
1135
1136
|
}
|
|
1136
1137
|
|
|
1138
|
+
const isFailure =
|
|
1139
|
+
data.status === 'failed' ||
|
|
1140
|
+
data.status === 'error' ||
|
|
1141
|
+
event.event === 'error';
|
|
1142
|
+
|
|
1137
1143
|
const runEvent: WorkflowRunEvent = {
|
|
1138
1144
|
id: data.id ?? '',
|
|
1139
1145
|
status: data.status ?? event.event,
|
|
@@ -1149,16 +1155,19 @@ export function useFileUpload(
|
|
|
1149
1155
|
Array.isArray(data.documents) ? data.documents : [],
|
|
1150
1156
|
);
|
|
1151
1157
|
emit({ type: 'workflow:completed', runId });
|
|
1152
|
-
} else if (
|
|
1158
|
+
} else if (isFailure) {
|
|
1153
1159
|
workflowRun.value.status = 'failed';
|
|
1154
1160
|
workflowRun.value.completedAt = now();
|
|
1161
|
+
const message =
|
|
1162
|
+
(typeof data.error === 'string' && data.error.trim()) ||
|
|
1163
|
+
`Workflow run ${runId} failed.`;
|
|
1155
1164
|
workflowRun.value.error = {
|
|
1156
1165
|
code: 'WORKFLOW_RUN_FAILED',
|
|
1157
|
-
message
|
|
1166
|
+
message,
|
|
1158
1167
|
};
|
|
1159
1168
|
const workflowErr: FileUploadError = {
|
|
1160
1169
|
code: 'UPLOAD_FAILED',
|
|
1161
|
-
message
|
|
1170
|
+
message,
|
|
1162
1171
|
occurredAt: now(),
|
|
1163
1172
|
};
|
|
1164
1173
|
for (const key of involvedStateKeys) {
|